假设我有这些记录:
- 一个mail.somedomain:127.0.0.1
- 一个mail.mailserverdomain:127.0.0.1
- MX somedomain:mail.somedomain
MTA 连接mail.somedomain
以传递邮件somedomain
并获得证书以供mail.mailserverdomain
提交,MTA 将其主机名显示mail.mailserverdomain
为HELO
.
这是一个有效的 TLS 会话还是意味着一个错误主机名的证书(期望somedomain
或reverse.somedomain
)?
惊喜!对于与邮件服务器的 TLS 协商,通常根本不检查主题名称。邮件服务器之间的大部分加密完全是机会主义的,只使用自签名证书,通常使用 localhost 的主题名称。
不幸的是,实际上不可能做得比这更好,因为有可能 MitM 连接并阻止加密协商的发生。在 DNSSEC(或等效的)完全部署并且每个人都需要其他人的适当证书之前,不可能阻止这种攻击。在我们退休之前,这不太可能发生。
如果您的电子邮件必须端到端加密,您需要自己进行。