SMTP STARTTLS 是什么?为什么明文 25 端口必须升级为加密连接?

1 SMTP STARTTLS 是什么?为什么明文 25 端口必须升级为加密连接?
定义

STARTTLS(RFC 3207)是一条 SMTP 服务扩展:客户端在明文会话中先发 EHLO,若服务器在响应里列出 STARTTLS,客户端即可发 STARTTLS 命令,把现有明文连接“升级”为 TLS 加密连接,之后才进行 MAIL/RCPT/DATA。它让同一端口既能明文又能加密,是邮件传输加密的事实标准。

为何重要

传统 SMTP 25 端口全程明文,邮件在多个中继跳之间可被窃听或篡改;STARTTLS 在不更换端口的前提下为传输加密封装,保护邮件内容、信头与认证凭据不被中间人读取。现代 MTA 之间普遍要求 STARTTLS。

Opportunistic 与 Enforced

机会型(opportunistic)STARTTLS:服务器支持就加密、不支持就退回明文(不保证安全,可能遭 STRIPTLS 降级攻击);强制型(enforced)则在协商失败时拒绝投递。RFC 3207 本身定义机制,策略强度由运维决定。

风险与加固

纯机会型易被主动攻击者为中间人剥离(STRIPTLS),导致降级到明文;应结合 MTA-STS(策略强制)、DANE(基于 DNSSEC 的 TLSA 校验)、REQUIRETLS(端到端强加密)与 TLS-RPT(监控)形成完整防护链。

参考:RFC 3207(SMTP Service Extension for Secure SMTP over TLS);MTA-STS(RFC 8461)、DANE(RFC 7672)