gpt4 book ai didi

php - IMAP 通过 PHP :/ssl and/tls choose different TLS version

转载 作者:太空宇宙 更新时间:2023-11-03 13:47:21 25 4
gpt4 key购买 nike

我正在使用 z-push-contrib从 IMAP 服务器(也是由我运行)获取电子邮件。

如果我使用 imap_open 选项 /ssl 并连接到端口 993,则使用的是 TLS 1.2。

如果我使用 /tls 并使用 STARTTLS 连接到端口 143,则使用的是 TLS 1.0 和不同的密码。

SMTP 行为相同(STARTTLS 仅使用 TLS 1.0)

如果我从命令行使用 openssl,则使用的是 TLS 1.2:

无论我使用 STARTTLS 连接到端口 993 还是连接到 143,我总是使用相同的强现代密码获得 TLS 1.2 连接。

这是 PHP 的 Openssl 实现中的错误吗?

最佳答案

不,它定义在PHP documentation :

  • /tls:强制使用 start-TLS 加密 session ,并拒绝连接到不支持它的服务器
  • /ssl:使用安全套接字层加密 session

区别非常微妙。基本上 StatTLS 连接到一个未加密的端口/连接,然后要求加密,而 TLS/SSL session 在传输任何文本之前被加密(参见 STARTTLS )。它们通常使用不同的端口,但邮件服务器通常在两个端口上都支持这两种端口(因此它们支持更广泛的客户端)。

Cipher 和 TLS 版本选择基于客户端-服务器协商,但 STARTTLS 可以理解为功能较弱的客户端或服务器,因此决策参数不同。

据我所知,通过 STARTTLS 连接时,对 TLS1.1 和 TLS1.2 的使用没有限制,但它们的连接方式与 TLS/SSL 不同。

如有疑问,请使用 TLS/SSL,因为它更安全:)


更新

PHP IMAP 扩展使用 c-Client library用于 IMAP 协议(protocol)特定的功能。该库有些过时(2007 年)——并且处理 STARTTLS 命令的方式可能与调用 openssl 的方式不同——这就是使用的加密/密码不同的原因。

关于php - IMAP 通过 PHP :/ssl and/tls choose different TLS version,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35148406/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com