5

大多数支持 SSL/TLS 的邮件客户端只需要用户说明是否应该启用 SSL。用户不必知道任何关于显式和隐式 SSL 以及它们之间的区别。

那么,邮件客户端如何确定使用哪种类型的 SSL?它是否基于默认端口号?它只是尝试一个然后另一个?

4

3 回答 3

4

邮件客户端在连接时必须知道是否使用了隐式 SSL,因为它负责使用ClientHello消息启动 SSL 握手。如何确定这取决于客户。端口号是一个很好的提示,但在某些 UI 中也可能有一个复选框,即使使用标准(未受保护的)端口号也会强制使用它。

有用于安全邮件的 IANA 注册端口号,但一些 ISP 可能使用其他端口。

  • IMAP/SSL:993
  • POP3/SSL:995

SMTP/SSL 通常在端口 465 上提供,但这没有注册,并且不太常见,因为 SMTP 代理广泛支持显式 SSL。

服务器可以使用特定于协议的协商来通告对显式 SSL 的支持。例如,当客户端连接到 SMTP 服务器并发出 EHLO 命令时,服务器将列出其功能,其中可能包括对 STARTTLS 命令的支持。

于 2009-04-29T19:36:46.040 回答
3

端口 465 在商业邮件服务器中非常常见,并且经常使用。大多数情况下,它用于隐式 SSL。当您远程登录到此端口时,您将获得超时,因为您必须先设置 SSL 连接,然后才能与邮件服务器通信。因此,超时可能是您拥有隐式 SSL 连接的第一个线索。您不能使用 EHLO 来返回结果,因为除了 SSL 连接之外不允许任何连接。并且不,您不只是连接到运行隐式 SSL 的 SMTP 服务器,它不会响应并且只会断开连接。这就是它应该做的。显式 SSL 将首先允许连接,然后设置 SSL。是的,经常使用隐式 SSL。缺点是 RFC 标准并没有具体说明它是如何实现的,因此不同的开发人员以不同的方式设置它,

于 2014-03-23T22:12:18.903 回答
0

我相信大多数支持 SMTP over SSL 的客户端都是从未加密的连接开始的,然后发出 EHLO 而不是 HELO。前者有额外的标志响应,其中一个指示服务器是否支持 STARTTLS 命令。如果他们这样做,那么客户端可以使用 STARTTLS,然后从那时起使用 SSL。

例子:

% telnet quack.kfu.com 25
220 quack.kfu.com ESMTP ready NO UCE
EHLO client
250-quack.kfu.com Hello client [xx.xx.xx.xx] (may be forged), pleased to meet you
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-8BITMIME
250-SIZE 25000000
250-ETRN
250-AUTH PLAIN LOGIN
250-STARTTLS
250-DELIVERBY
250 HELP
starttls
220 2.0.0 Ready to start TLS
于 2009-04-29T19:32:56.317 回答