什么是 MTA-STS?
MTA-STS(邮件传输代理严格传输安全)允许域声明传入 SMTP 连接必须使用带有有效证书的 TLS。它将 _mta-sts.yourdomain.com 处的 DNS TXT 记录与 mta-sts.yourdomain.com/.well-known/mta-sts.txt 处通过 HTTPS 提供的策略文件结合在一起。 DNS 记录通告策略存在,并携带一个 ID,该 ID 会在策略更新时发生变化。
如果没有 MTA-STS,SMTP 的机会主义 TLS 可能会被路径上的攻击者悄悄剥离,迫使邮件以明文形式传送。 MTA-STS 通过指示发送服务器在无法协商 TLS 时拒绝传送来弥补这一差距。它自然地与 TLS-RPT 配对,当发件人无法遵守该策略时,TLS-RPT 会通过电子邮件向您报告。该标准在 RFC 8461 中定义。
为什么要检查您的 MTA-STS 记录?
1确认该策略可发现
如果 DNS 记录丢失或格式错误,发件人永远不会查找您的策略文件 - 验证其解析
2捕获一个永远不会改变的id
id 必须在每次策略更改时更新,否则缓存会提供过时的策略 - 检查器会显示当前值
3防止静默 TLS 降级
工作记录向发件人发出信号要求加密,以保护传输中的邮件免遭拦截
4强制模式前验证
在测试模式下确认记录和策略一致,以便切换到强制不会退回合法邮件
MTA-STS 的工作原理 — 一步一步
您可以在 https://mta-sts.yourdomain.com/.well-known/mta-sts.txt 托管一个策略文件,描述模式、MX 主机和 max_age。
您在 _mta-sts.yourdomain.com 上发布一条 TXT 记录,其中包含版本和唯一 ID。
发送服务器将要传送 TXT 记录的邮件查询并查看已通告的策略。
它获取 HTTPS 策略文件,根据该文件验证接收 MX 及其 TLS 证书。
如果策略处于强制模式并且无法验证 TLS,则发送方将拒绝发送而不是退回到明文。
MTA-STS 记录语法
_mta-sts.example.com. 3600 IN TXT "v=STSv1; id=20240118T120000Z"
# https://mta-sts.example.com/.well-known/mta-sts.txt
version: STSv1
mode: enforce
mx: mail.example.com
max_age: 604800DNS 标签细分
v=STSv1— 协议版本,始终优先编号=— 独特的令牌,每次政策更新时都会发生变化策略文件字段
常见 MTA-STS 故障和修复
策略文件无法访问
.wellknown 文件必须使用有效证书通过 HTTPS 加载 - 在发件人可以应用它之前修复主机
过时的 ID
编辑策略后忘记修改 ID 会使发件人保留旧的 ID — 每次更新时更改它
MX 不匹配
如果 MX 条目与您的真实 MX 记录不匹配,强制模式会阻止合法邮件 - 保持它们同步
直接跳跃执行
开始使用 TLS-RPT 进行测试,以便您在强制模式退回邮件之前发现问题
常见问题解答
MTA-STS(邮件传输代理严格传输安全)让您的域告诉发送服务器必须使用有效证书通过 TLS 传送邮件。它将 _mta-sts.yourdomain.com 处的 DNS TXT 记录与 HTTPS 托管的策略文件相结合。如果没有它,网络路径上的攻击者可能会破坏 SMTP 的机会性加密,从而迫使您的邮件以明文形式传输。
_mta-sts.yourdomain.com 上的 TXT 记录包含两件事:版本 (v=STSv1) 和 ID — 每次更新策略文件时都必须更改的唯一令牌。该记录不包含政策本身;它只是通告策略存在,并通过更改的 ID 发出信号,告知发送者何时应重新获取策略。
该模式是在 HTTPS 策略文件中设置的,而不是在 DNS 记录中设置的。在测试模式下,发件人会报告 TLS 故障(通过 TLS-RPT),但仍会传送邮件,让您安全地发现问题。在强制模式下,如果 TLS 无法验证,发件人将拒绝投递。最佳实践是首先在启用报告的情况下运行测试,然后在确认一切正常后切换到强制执行。
两者都要求入站邮件使用 TLS,但它们的信任锚定方式不同。 DANE 使用 DNSSEC 和 TLSA 记录来固定证书,因此它取决于部署的 DNSSEC。 MTA-STS 使用公共 Web PKI 和 HTTPS 托管策略,因此无需 DNSSEC 即可工作。许多域首先采用 MTA-STS,因为它在现有基础设施上部署起来更简单。
常见原因包括 TXT 记录丢失或格式错误、策略更改后未更新 ID,或者策略文件未通过 HTTPS 加载有效证书。该检查器验证 DNS 记录;还要确认 /.well-known/mta-sts.txt 中的文件可访问,并且其 mx 条目与您的真实 MX 记录匹配。