[ 运输安全 ]

MTA-STS策略缓存和延迟更改

围绕发件人的获取策略生命周期以及DNS TTL 规划策略更改,而不是期望一次编辑即可更新每个发件人。

由EmailAuth研究团队提供

[ 要点 ]

  • 单独的DNS TTL、获取策略 max_age 和托管新鲜度。
  • 新的较短策略不会缩短发件人已持有的副本。
  • 诊断实际的旧状态,而不是调用每个延迟传播。
在此页面上

MTA-STS 策略缓存不是普通的浏览器缓存。该策略的 max_age 控制其自上次成功获取以来的生命周期。发现TXT有自己的DNS TTL。这些时钟可能存在很大差异,并解释了为什么两个发送者同时应用不同的策略版本。

记录发件人仍可持有的策略

参考: RFC 8461 §3.2, RFC 8461 §3.3.

保留每个已发布的策略主体、发现 ID、发布时间和 max_age。当前端点屏幕截图无法告诉您发件人昨天获取了什么。在发生事件期间,请求应用的策略并从可用的发件人日志中获取时间,而不是假设最新的正文是通用的。

RFC 8461表示,发件人应将策略缓存最多 max_age,并应在过期前主动刷新,建议每日刷新。这些建议并不能保证同步更新。实现可能会在不同时间检查更新,并且当实时发现或获取失败时,发送者可以继续应用有效的缓存策略。

将两个到期计算分开

参考: RFC 8461 §3.2, RFC 8461 §5.1.

在标记的算术装置中,在纪元时间 1000000 处获取且 max_age 86400 DNS策略的到期边界为 1086400。DNS TTL 为 300 不会更改该计算。如果运营商发布 max_age 360​​0 的新主体,则已缓存的旧主体不会追溯获取新的生命周期。

新的有界离线装置计算该边界。保留的历史传输实验室记录还记录了旧缓存的深层副本、寿命较短的策略获取以及旧快照及其过期时间在明确替换之前保持不变的断言。缓存部分是显式状态/算术模型,而不是真实的 MTA、 DNS缓存或刷新调度程序;单独保留的环回DNS /HTTPS 交换不会扩大该缓存声明。要扩展测试,请使用可检查的策略缓存配置受控发送方,并保留其实际的获取、刷新和传送日志。

按安全顺序更新

参考: RFC 8461 §8.1, RFC 8461 §8.2.

发布新的 HTTPS 正文,验证它,然后更改DNS id。 RFC 8461建议在端点更新和TXT TTL 传递时保持旧策略与交付兼容。对于计划的路由更改,还允许发件人保留旧策略,直到其生命周期结束或成功刷新。

使协议策略缓存与 CDN 的源缓存不同。发件人不得使用 HTTP 缓存进行策略检索。然而, RFC 8461 §8.2 允许源端反向代理缓存;验证其新鲜度和发布行为,而不是将每个代理缓存视为禁止的。从公共端点验证实际正文并确保托管发布工作流程公开预期的修订。

无需猜测即可诊断延迟变化

参考: RFC 8461 §3.3.

比较DNS答案、HTTPS 响应字节、缓存的策略元数据和发件人的失败日志。旧主体的新 ID 表明出版物订购或托管新鲜度有问题。递归答案中的旧 ID 可能反映DNS缓存状态。提取中断期间旧的但有效的缓存策略可以是预期的协议行为。

不要将每个延迟都声明为传播。识别哪个缓存或依赖项保留旧状态,修复该组件并在整个转换过程中保留合规的接收路径。本文没有执行实时发件人缓存实验。

保留的历史证据和剩余范围

以下描述了保留的 2026 年 11 月 7 日观察结果,而不是为本次审查重新运行的网络实验。新执行的离线检查单独记录。

捕获的逻辑缓存装置保留在 1000000 处获取的 A1,过期时间为 1086400。实验室发布 B2,通过实际的 UDP DNS应答宣布 B2,并通过 HTTPS 使用 max_age 3600 获取 B2。然后,它断言深度复制的 A1 快照仍然等于其原始内容并保留过期时间 1086400。一个单独的最后服务的分类帐计算A1 的最大可能到期时间为 1000300 + 86400 = 1086700,晚于 B2 的 1000600 + 3600 = 1004200 和 C3 的 1000900 + 3600 = 1004500。到期值是使用显式逻辑时间计算得出的;缓存保留比较是一个执行的断言。两者都不是 MTA 刷新调度程序的模拟。实际发送者选择刷新、重试或保留状态仍然是一个实现测试。

[ 外卖 ]

诊断实际的旧状态,而不是调用每个延迟传播。

[ 按角色 ]

这对您意味着什么

选择您的角色以执行后续实际步骤。

IT/邮件管理员

记录实际获取的元数据

仅当前的公共政策无法解释较早的交付决定。

后续步骤

  1. 比较DNS和策略缓存状态。
  2. 记录实际的获取时间。
  3. 检查公共身体的新鲜度。

CISO / SecOps

保持兼容性

在刷新失败期间,有效的缓存策略仍然很重要。

后续步骤

  1. 保持旧策略的兼容性。
  2. 检查刷新失败监控。
  3. 将缓存证据与假设分开。

创始人/非技术人员

旧州预算

分布式缓存可防止即时通用策略替换。

后续步骤

  1. 预算过渡重叠。
  2. 保留修订历史记录。
  3. 避免承诺立即改变。

[ 常见问题解答 ]

常见问题

DNS TTL 是否等于策略生存期?

不会TXT缓存和 fetched-policy max_age 是分开的。

RFC 8461 §3.2 RFC 8461 §8.1

max_age什么时候开始?

在发送者缓存中的策略获取时间。

RFC 8461 §3.2

降低 max_age 会更新旧副本吗?

不会。现有的缓存策略保留其旧值。

RFC 8461 §5.1

所有发件人都必须每天刷新吗?

建议每日刷新,但不保证同步通用。

RFC 8461 §3.3

获取失败是否可以使强制执行保持活动状态?

是的,当发件人仍然具有有效的缓存强制策略时。

RFC 8461 §3.3

HTTP 缓存标头可以替代策略 max_age 吗?

不。

RFC 8461 §3.3

修订历史记录应该保留什么?

正文字节、id、发布时间和每个发布的生命周期。

如何证明哪项政策影响了交付?

发件人缓存和传送日志(如果可用),而不仅仅是当前的公共机构。

[ 来源 ]

来源

  1. RFC 8461

    部分 §3.2 · §3.3 · §5.1 · §8.1 · §8.2

  2. RFC 8767

    部分 §4

[ 词汇表 ]

词汇表

策略缓存
发送方存储所获取的策略及其有效性元数据。

RFC 8461 §3.2

DNS生存时间
必须再次查阅源之前的DNS新鲜度间隔;当权威刷新失败时,标准允许有限的过时服务。它独立于MTA-STS策略 max_age。

RFC 8767 §4

刷新
缓存副本老化之前或之后的新策略检索。

RFC 8461 §3.3

企业出处

为什么顶级金融机构和政府 退役了他们的电子邮件安全仪表板。

传统的电子邮件身份验证平台会向您出售仪表板并要求您的工程师来完成这项工作。在高风险环境中,手动监督意味着延迟执行、配置漂移和不受监控的影子域。

EmailAuth是代理电子邮件来源平台。 我们的代理人强制执行 p=reject,保持第三方发件人一致并将您的域名移至完整状态 RFC 9989 合规性、新的DMARC标准,以及人机交互审核能力。

政府 大型企业 一级金融机构

SaaS · 专用租赁 · 气隙本地部署 · BYOK 加密

知识库