[ DKIM ]

解释标头分析器和接收器之间的分歧

在将稍后的DKIM检查视为更正之前,比较消息字节、计时、 DNS和信任边界。

由EmailAuth研究团队提供 · 3 分钟阅读

[ 要点 ]

  • 将存储的接收者报告与新验证分开。
  • 记录所选的样本、密钥状态、时间和签名。
  • 保留观察结果并标记缺失的历史输入。
在此页面上

标头分析器可能与原始接收器不一致,而无需伪造任何观察结果。他们可能在不同时间评估了不同的消息字节、不同的DNS密钥状态或不同的验证策略。在决定分歧的含义之前,保留原始证据并比较条件。

显示的历史结果和新的密码验证是不同的操作。一些工具总结 Authentication-Results 已经存在于样本中。其他人检索密钥并验证当前样本。在将分析仪的输出与接收系统的结果进行比较之前,确定分析仪执行的操作。

保留原貌,明确边界

使用保留消息表示的方法导出原始消息。保留未经编辑的原始文件并计算文件哈希值以供以后比较。记录取件方式、投递时间及来源邮箱。文件哈希可以显示两个导出的文件不同;它本身并没有解释哪个差异对 DKIM.

识别接收方生成的Authentication-Results及其可信的 authserv-id。不受信任的发送者提供的标头不是权威的接收者证据。 RFC 8601 §7.1 描述了这个信任边界。还要确定接收方是否在后续网关或导出进程更改消息之前评估了该消息。

比较分析仪的实际输入

对于普通的完整签名,复制的标头块会省略重新计算其DKIM所需的正文 正文哈希。特殊情况l=0对零主体八位位组进行哈希处理,并且不提供主体完整性保护;它不会放弃标头、密钥或其他验证检查。看 RFC 6376 §3.5, §3.7 和 §5.4.1。粘贴文本还可以更改折叠或行结尾。如果分析器缺少完整消息,它可能会解释报告的结果,而不是独立验证整个签名。它的界面标签本身并不能解决这个问题。

比较可用的完整样本。 DKIM 规范化 在 RFC 6376 §3.4 容忍指定的转换,而不是呈现内容的任意等效。不同的文件哈希并不自动意味着DKIM失败,因为某些字节更改可能会正常化;相同的文件哈希仅建立相同的提供字节,而不是相同的DNS或策略上下文。

检查DNS和时间发生了什么变化

读取每个签名的 d 和 s,并记录在以后检查期间观察到的关键答案。原始密钥可能自交付后已停用、撤销或更换。 RFC 6376 §6.1.2 验证依赖于检索适当的验证材料,因此历史通行证可以与后来的无密钥结果共存。

还要检查任何签名过期 x 值和验证者的时间处理。稍后的工具可能会在签名过期后进行评估。 RFC 6376 §6.1.1 允许验证者忽略过期的签名;必须检查特定工具的行为而不是假设。不要将该结果标记为接收者最初处理签名时签名已过期的证据。如果旧的DNS答案不可用,请说明无法从当前证据完全重现历史密码计算。

通过两个对比示例进行研究

说明性示例一:接收方报告传递 选择器 星期一old1,星期五发送者退休old1。周六复查报告没有钥匙。尽管独立重现周一的验证需要相关的历史输入,但后来的结果并没有消除周一的可信观察结果。

说明性示例二:原始接收的文件经过验证,而粘贴的副本在页脚或MIME序列化更改后失败。比较覆盖的表示和发生更改的点。问题可能在于样本处理而不是发件人的原始签名。这些是比较装置,而不是关于真实分析器或租户的声明。

准确报告分歧

创建包含样本哈希、收集方法、观察时间、d 和 s、关键答案、验证者版本、报告结果和已知策略差异的比较记录。单独检查多个签名,因为工具可能会突出显示不同的签名。保持DKIM有效性与 DMARC 结盟 和最终交付。

仅得出证据支持的结论:不同的字节、更改的DNS 、已过的有效性、不同的选定签名或未解析的上下文。当原始输入丢失时保留不确定性。后来的分析器是有用的诊断证据,但它不是时间机器,不应该默默地覆盖可信的原始接收器结果。

下一步决定所需的证据

对每个签名使用比较行:原始样本哈希/时间、后来样本哈希/时间、d/s、观察到的密钥、x(如果存在)、工具/版本、操作(报告解析或验证)、结果和剩余间隙。相同的样本字节与不可用的历史DNS会留下关键状态差距,并不能证明这两个工具都是错误的。如果样本不同,请在分配因果关系之前比较所涵盖的规范表示。

[ 外卖 ]

将存储的接收者报告与新验证分开。记录所选的样本、密钥状态、时间和签名。保留观察结果并标记缺失的历史输入。

[ 按角色 ]

这对您意味着什么

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

IT/邮件管理员

建立可重复的比较

字节、密钥状态和验证者假设都属于证据记录。

后续步骤

  1. 散列并保存每个原始样本。
  2. 记录 d、s 和DNS答案。
  3. 确定每个工具评估的签名。

CISO / SecOps

保留历史证据完整

不可信的标头和回顾性检查都可能扭曲事件叙述。

后续步骤

  1. 验证结果来源。
  2. 将历史观察与复查分开。
  3. 记录缺失的输入和剩余的不确定性。

创始人/非技术人员

询问该工具实际检查了什么

红色结果可能描述了更改的样本或后来的查找,而不是失败的原始传递。

后续步骤

  1. 保留原始消息。
  2. 比较观察时间。
  3. 避免从摘要标签中得出业务结论。

[ 常见问题解答 ]

常见问题

分析器可以仅从标头验证DKIM吗?

对于普通的全身签名,不需要:正文哈希验证需要正文。当l=0,零个主体八位字节被散列,因此签名不提供主体完整性保护;标头、密钥和其他检查仍然适用。仅标题分析器可能会总结报告的结果。

RFC 6376 §3.5 RFC 6376 §3.7 RFC 6376 §5.4.1 RFC 6376 §6.1.3

不同的文件哈希是否证明DKIM应该失败?

不会。某些字节差异可能会通过DKIM规范化进行规范化;检查实际覆盖的表示。

RFC 6376 §3.4

相同的样品能保证相同的结果吗?

不会DNS 、评估时间、所选签名和策略可能有所不同。

RFC 6376 §6.1 RFC 6376 §6.1.2

废弃密钥可以解释以后的故障吗?

是的。后来的验证者可能不再检索交付时使用的密钥。

RFC 6376 §6.1.2

每个Authentication-Results字段都可信吗?

否。建立接收者的可信边界和 authserv-id。

RFC 8601 §7.1

过期会影响以后复检吗?

是的。即使原始评估较早发生,稍后的验证也可能发生在 x 之后。

RFC 6376 §3.5 RFC 6376 §6.1.1

应该保留哪个结果?

保留两者的时代和背景。不要默默地替换历史接收器观察。

历史DNS不可用怎么办?

说明该限制。仅靠现有的DNS无法完全重现原始的验证条件。

[ 来源 ]

来源

  1. RFC 6376

    部分 §1 · §3.1 · §3.4 · §3.5 · §3.7 · §6.1 · §6.1.1 · §6.1.2 · §6.1.3 · §5.4.1

  2. RFC 8601

    部分 §1.2 · §2.5 · §7.1

  3. RFC 9989

    部分 §4.4

[ 词汇表 ]

词汇表

DKIM
对所选消息内容的域关联签名,使用公钥数据进行验证。

RFC 6376 §1

选择器
s 值与 d 签名域一起使用来查找验证数据。

RFC 6376 §3.1 RFC 6376 §3.5

DMARC对齐
经过身份验证的标识符和作者域之间所需的关系。

RFC 9989 §4.4

规范化
指定在DKIM哈希和验证之前准备标头或正文。

RFC 6376 §3.4

认证服务标识符
报告结果的认证服务的标识符;信任还取决于接收边界。

RFC 8601 §2.5 RFC 8601 §7.1

企业出处

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

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

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

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

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

知识库