在 ServerFault 问题中“STARTTLS 比 TLS/SSL 更安全吗?“问题实际上是关于 Thunderbird 而不是实际协议的。此外,如果您在 Google 上搜索此主题,您会发现许多相互矛盾的不同答案。
Thunderbird(指的是当前版本 17,但从版本 3 开始就这样)在配置对话框中提供了三种加密传输的方法:
- 没有任何
- SSL/TLS
- 启动TLS
在 Thunderbird 中前版本 3 中有以下选项:
- 没有任何
- SSL
- TLS
- TLS(如果可用)
从 Thunderbird 3 开始,“SSL”选项被重命名为“SSL/TLS”,最后两个选项合并并重命名为“STARTTLS”。STARTTLS 成为默认配置选项。
然而,根据这个问题和答案,当使用 STARTTLS 时,Thunderbird 可能会在没有通知我的情况下恢复到纯文本传输!
我的问题是:
- Thunderbird 真的可以在不告诉我的情况下恢复到纯文本传输,并且仍然建立连接(这会存在安全风险)吗?
- Thunderbird 支持哪些版本的 SSL、TLS 和 STARTTLS?
- Thunderbird 中是否有一些指示器来显示实际正在使用哪种加密方法(协议和版本)?
- 有没有办法强制 Thunderbird 使用 TLS,如果服务器不支持则根本无法连接?(“SSL/TLS”选项似乎无法处理 TLS(我试过了),而可以执行 TLS 的 STARTTLS 可能存在“静默回退”安全风险。)
答案1
- 这是有可能的。根据规格:
2.3. 明文密码要求
实施 STARTTLS 的客户端和服务器必须可配置为拒绝所有明文登录命令或机制(包括标准轨道和非标准机制),除非激活了足够强度的加密层。
因此,必须有一个复选框来专门限制纯文本登录。但是没有。我预计这是 Thunderbird 中的默认行为,但我不确定,所以我们可以期待这一点。
我猜它支持所有主要版本。SSL 已经过时,正在慢慢被 TLS 取代。然而与其名称相反,STARTTLS 可以使用 SSL 作为加密协议,这完全取决于服务器支持的协议。
我不知道有这种可能性。
我想 1) 也回答了这个问题(即您不能强制执行,但很可能这是默认行为)。注意:“SSL/TLS”和“STARTTLS”不是可互操作的协议(这就是它们使用不同端口的原因)。
答案2
SMTPS+STARTTLS(显式 SSL/TLS)和 SMTPS(隐式 SSL/TLS)同样安全,只要您的电子邮件客户端正确实现,并且在 SSL/TLS 不可用时不会让您自动降级。
本质上,如果配置为使用 STARTTLS 的实施良好的电子邮件客户端无法使用STARTTLS
并建立此 SSL/TLS 连接,则它应该会失败(就像它无法首先为 SMTPS 建立 SSL/TLS 连接一样)。具体来说,它应该会失败前在适用的情况下,发送任何用户凭证。
- 你说得对,Thunderbird 曾经有一个选项可以降级其连接(某种程度上类似于通过 HTTP/HTTPS 中的 sslstrip 进行攻击)。幸运的是,这个选项早在 2010 年就被删除了(参见这个问题)。
- Thunderbird 支持 SSLv3、TLSv1.0、1.1 和 1.2。(请注意,将 SSL、TLS 和 STARTTLS 放在同一个包中实际上没有任何意义,请参阅Server Fault 上的这个问题)您可能对以下内容感兴趣
security.ssl.version.*
选项(在高级选项中)选择某些版本。(一般来说,security.ssl*
选项也可能会引起人们的兴趣。 - 除了使用 Wireshark 之类的工具来查看实际连接之外,我不知道还有什么方法可以查看它。
- 是的,之前就已经这样了这已经修复,只要您没有使用“如果可用”选项。
答案3
但是,RFC 规范规定,如果 starttls 失败,则应发送未加密的邮件。因此,如果您不想发送未加密的邮件,那么最好使用强制 tls。当降级攻击不可能发生和/或指定 starttls 应该不是发送未加密的,那么就好了。。这相当于你上面提到的 ssl/tls。在此之前,请强制执行!