DMARCbis 中 forensic failure report(RUF)的报告机制和格式有什么变化?

鉴证失败报告(Forensic Failure Report,简称 RUF/FR)是 DMARC 体系中用于发送方获取具体认证失败邮件细节的机制。DMARCbis 对这一功能进行了全面修订,重点解决了原标准中学界和业界长期存在的若干争议。

一、原 RFC 7489 中 RUF 的问题

二、DMARCbis 中 RUF 的主要修订

1. 触发条件(fo=)的语义明确化

原 RFC 7489 定义了四个 fo 值(0、1、d、s),但语义重叠且实现不一致。DMARCbis 重新定义 fo 标签:

fo值RFC 7489 含义RFC 9989 含义(修订后)
0仅 SPF/DKIM 均失败时生成RUF仅 DMARC 验证失败时生成RUF(SPF且DKIM均不对齐)
1SPF或DKIM任意一个失败时生成RUFDMARC 验证失败或单个认证失败时生成RUF
dDKIM 失败时生成RUF保留,明确仅指 DKIM 验证失败
sSPF 失败时生成RUF保留,明确仅指 SPF 验证失败

最重要的变化:fo=0 的默认行为更窄了。在 RFC 7489 下,fo=0 的含义在实践中解释不一;DMARCbis 将其严格限制为"DMARC 评估结果为 fail 时才生成 RUF",避免了过去"即使邮件通过了 DMARC 也会生成 RUF"的问题。

2. 原始邮件内容变为可选(OPTIONAL)

这是最受业界欢迎的修订之一。RFC 9989 明确:

3. 新增结构化失败字段

DMARCbis 标准化的 AFRF(Abuse Feedback Report Format)扩展字段包括:

X-DMARC-Failure-Reason: both-fail
X-DMARC-Failure-Detail: dkim-result=fail, spf-result=fail
X-DMARC-Policy-Action: reject
X-DMARC-ARC-Status: none

这些字段在邮件头级别直接标注失败原因,接收方无需解析 XML 格式的 RUF 内容即可获取关键信息。

三、DMARCbis 中配置 RUF 的示例

; DMARCbis RUF 配置示例
v=DMARC1; p=reject; fo=1;
rua=mailto:rua@example.com;
ruf=mailto:ruf@example.com!summary;
; !summary 参数表示只需要摘要(不含原始邮件内容)

注意 !summary 参数是 DMARCbis 新引入的 ruf URI 扩展语法。类似地:

四、RUF 与隐私合规(GDPR/PIPL)

原 RFC 7489 的 RUF 设计在 GDPR 生效后实际上已无法广泛使用——发送未经授权的个人通信内容到第三方地址明显违反数据最小化原则。DMARCbis 的修订使 RUF 重新变得合规:

五、部署建议

  1. 如果之前因为隐私顾虑没有启用 ruf,现在可以试用 !summary 模式
  2. fo=1 开始监控,确认报告量在可接受范围内再调整
  3. 确保 ruf 接收地址支持 AFRF 格式解析
  4. 定期审查 RUF 报告内容,确保没有泄露敏感信息

参考文献

  1. RFC 9989 Section 6.7 — fo= tag and forensic reporting updates
  2. RFC 6590 — Redefinition of ARF (Abuse Feedback Report Format)
  3. RFC 5965 — ARF Format for Email Feedback Reports
  4. RFC 7489 Section 7.1 — Original RUF specification (obsoleted)

引用格式:ztpop.net 邮件技术知识库. "DMARCbis forensic failure report(RUF)报告机制和格式变化." https://www.ztpop.net/kb/faq/dmarcbis-faq-05.html. 2026-07-29. CC-BY 4.0