在SMTP 服务器、STARTTLS 命令或直接 TLS 层上保护提交端口 587 的建议方法是什么?
我目前倾向于使用(强制)STARTTLS命令而不是直接 TLS 层。如果出现问题,可以在不更改 MUA 配置的情况下禁用STARTTLS命令。我认为在直接使用 TLS 层的情况下,它不会那么简单。
还有其他的建议、意见吗?我没有发现它是否在某些 RFC 中被标准化。
你别无选择。端口 587 始终是 STARTTLS 命令。唯一允许 SSL 包装(“直接 TLS”)连接的标准端口是端口 465。
RFC 4409 仅讨论使用可选 STARTTLS 命令提交端口 587 进行纯文本通信。
忽略其他 SSL/TLS 安全问题,重要的是确保对 SSL/TLS 剥离攻击的保护。
如果 MUA 配置为使用 STARTTLS 连接到端口 587,则当 MITM 攻击者剥离 EHLO 命令 STARTTLS 时,它必须拒绝连接。
如果服务器配置为使用 SSL/TLS 包裹的 SMTP 层,客户端配置为使用包裹层,那么当 MITM 攻击者剥离整个 SSL/TLS 层时,MUA 客户端必须再次拒绝连接。
从安全的角度来看,这两种方法没有区别。
尽管如此,通常建议尊重 RFC 并在端口 587 上使用 STARTTLS。