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