DMARC Forensic Report 深度解读 · RFC 9991

一、引言

2026 年 5 月正式发布的 RFC 9991 是 DMARC 标准发展的重要里程碑。它替代了 RFC 7489,并将 Forensic Report(故障报告)作为独立规范进行标准化。Forensic Report(也称 Failure Report)与聚合报告(Aggregate Report)不同,它针对每一封认证失败的邮件生成详细的个体报告,包含完整的邮件头部甚至部分内容。

RFC 9991 由 DMARC.org 工作组编辑完成,同时更新了 RFC 6591(AFRF 格式规范),使其格式协议能够承载 DMARC 故障报告。本文将深入解读 Forensic Report 的格式、部署与隐私考量。

二、Forensic Report vs Aggregate Report

对比维度 Aggregate Report(聚合报告) Forensic Report(故障报告)
数据粒度按域、按时间段汇总每封失败邮件逐条报告
典型发送频率每日一次实时或近实时
是否包含邮件内容否(仅统计数据)是(按策略包含头部/全文)
隐私风险高(可能泄露用户通信内容)
协议格式XML(RFC 7489/指定schema)AFRF(RFC 6591 / RFC 9991)

三、Forensic Report 的格式定义

3.1 AFRF 格式基础

RFC 9991 第 4 节定义了如何使用 Abuse Feedback Report Format (AFRF) 封装 DMARC 故障报告。AFRF 最初由 RFC 5965 标准化,后经 RFC 6591 扩展以支持 DKIM/DMARC 反馈。RFC 9991 进一步扩展以支持 SPF 对齐失败等情况。

标准 Forensic Report 的 MIME 结构为:

3.2 新增字段(RFC 9991)

RFC 9991 引入或明确了以下字段:

四、DNS 发布与接收配置

4.1 DMARC 记录中的 ruaf 标签

RFC 9991 第 6.2 节定义了 ruaf 标签,用于指定 Forensic Report 的接收 URI。与聚合报告的 rua 不同,ruaf 是可选的——域所有者可以选择不接收 Forensic Report 以避免隐私风险。

示例 DMARC DNS 记录:

v=DMARC1; p=reject; rua=mailto:dmarc-aggregate@example.com;
ruaf=mailto:dmarc-forensic@example.com; fo=1

4.2 fo 标签的细化

fo(Failure Reporting Option)标签控制何时发送 Forensic Report。RFC 9991 第 6.3 节明确了可取值:

五、隐私与安全考量

RFC 9991 第 10 节用大量篇幅讨论了 Forensic Report 的隐私风险。由于报告可能包含原始邮件的头部甚至正文,接收报告的一方可能泄露用户隐私。M3AAWG 的《DMARC Forensic Report Handling Best Practices》建议:

六、运维建议

在实际运维中,大规模部署 Forensic Report 可能面临报告量巨大的挑战。建议:

相关文章