DMARC 的 DKIM 域

DKIM 域名对齐如何影响 DMARC 认证?

DMARC(基于域的消息认证、报告和合规性),
是一项电子邮件认证标准,旨在防范伪造域名的邮件。

在“3.1. 标识符对齐”一章中提到:

   电子邮件认证技术用于验证单个邮件的各种(且
   互不相关的)方面。例如,[DKIM]
   用于验证为邮件添加签名的域,
   而[SPF]则可验证[SMTP]中RFC5321.MailFrom(Mail-From)部分
   显示的域,或RFC5321.EHLO/
   HELO域,或两者兼有。这些可能是不同的域名,且通常
   不会被最终用户所察觉。

   DMARC 通过要求 RFC5322.From 域必须与
   某个“经过认证的标识符”相匹配(保持一致)来验证其使用。
   
   -- https://tools.ietf.org/html/rfc7489#section-3.1

这只是意味着:

   当发件人使用 SPF 和/或 DKIM 对电子邮件进行身份验证时,  
   至少有一个域名必须与发件人域名一致

我们不确定一封邮件是否可能在 SPFDKIM 验证中失败
却仍能通过 DMARC 认证。

我们使用了一种人人都能用的工具进行了测试:Gmail 邮箱。
要查看结果,请打开该邮件并选择“显示原始邮件”:

测试 1 - 转发邮件:SPF 验证失败,DKIM 验证通过(已对齐)
SPF 验证失败,DMARC 验证通过

测试 2 - DKIM 密钥损坏:DKIM 失败,SPF 通过(已对齐)
DKIM 验证失败,DMARC 验证通过

The result is evident, the message passes DMARC authentication if it occurs:
SPF and domain alignment <OR> DKIM and domain alignment

因此,为了通过 DMARC 验证,在某些情况下验证 DKIM 签名至关重要:
签名域(d=example.com)必须与“发件人”域一致。

以下是“DMARC-PASS”结果的示例,如果没有这些设置,这些邮件原本无法送达:

案例 1- 转发导致 SPF 验证失败

  • SPF-FAIL:SPF 身份验证检查大多会失败,
    因为发送转发邮件的实体未包含在原始发件人的 SPF 记录中

  • DKIM-PASS(对齐):邮件转发不会影响 DKIM 签名

结果:DKIM 验证通过,该邮件通过了 DMARC 检查。

案例 2- ESP(电子邮件服务提供商)
提供的 SPF 域 不能与“发件人”域保持一致

  • SPF~PASS(未对齐):SPF 认证因域名对齐失败而失败,
    因为 ESP 在 Mail-From 地址中使用的域名与 From 发件人中的域名不同

  • DKIM-PASS(匹配):DKIM签名使用的域名与发件人“From”字段中的域名一致

结果:DKIM 验证通过,该邮件通过了 DMARC 检查。