DMARC(基于域名的消息身份验证、报告与合规)
DMARC(Domain‑based Message Authentication, Reporting & Conformance,基于域名的消息身份验证、报告与合规)是一项邮件安全标准。域名所有者借助它可以监控哪些主体正在使用自身域名发送邮件;同时可以指示 Gmail 这类邮件接收方,对未通过身份校验的邮件执行放行、隔离或者拒绝操作。
DMARC 的设计初衷是防范垃圾发送者域名伪造(spoofing),欺骗收件人做出有利于诈骗者的操作。典型场景为仿冒 PayPal 的钓鱼邮件:诈骗者伪装成 paypal.com 发送邮件,企图窃取用户账号信息。DMARC 可以在这类欺诈邮件抵达收件箱之前将其拦截。
除帮助收发双方辨别邮件真伪外,DMARC 还会向邮箱服务商(如 AOL、Gmail)下达指令:当收到看似合法,但不满足邮件身份验证标准的邮件时,应当如何处置。
#DMARC 核心要点
- 我是否需要 DMARC
- DMARC 的工作原理
- DMARC 的三种策略:无操作、隔离、拒绝
- 如何解读 DMARC 报告
#我是否需要 DMARC
如果你重视邮件送达率,那么你就需要部署 DMARC。
域名伪造与钓鱼攻击会损害你的品牌在客户与邮箱服务商心中的信誉。此外,当收件人把伪造的诈骗邮件标记为垃圾邮件时,你的域名信誉同样会遭受伤害,进而导致你的正规邮件无法送达客户。
#DMARC 的工作原理
DMARC 构建在两项邮件身份验证技术之上:
- DKIM:验证邮件在传输途中未被篡改
- SPF:验证邮件来自经过许可的发送服务器
简单来讲,DMARC 告诉邮箱服务商:只要 SPF、DKIM 其中一项校验通过且完成域名对齐,即可认定邮件合法。如果两项校验全部失败或者缺失,则判定邮件存在嫌疑,接收方按照该域名的 DMARC 策略执行处置。
提示:DMARC 强依赖 SPF / DKIM 的**域名对齐(alignment)**规则,仅仅单纯通过 SPF/DKIM 校验还不足以满足 DMARC 判定条件。
#DMARC 的三种策略:none、quarantine、reject
DMARC 策略定义了当邮件未通过 DMARC 校验时,收件服务器应当采取什么动作,一共包含三种策略:
- 监控策略(
p=none):即使邮件 DMARC 校验失败,接收方依旧正常投递至收件箱或对应文件夹,不做拦截处理,仅生成报告。 - 隔离策略(
p=quarantine):接收方将邮件判定为可疑邮件,投递到收件人的垃圾邮件文件夹。 - 拒绝策略(
p=reject):接收方直接丢弃邮件,完全不向用户投递该邮件。
#DMARC 记录配置示例
前提:已经配置好 SPF 和 DKIM,在域名 DNS 中添加一条 TXT 记录,示例如下:
v=DMARC1; p=none; sp=reject; pct=100; rua=mailto:dmarc-reports@domain.com;
字段释义:
v=:DMARC 协议版本p=:主域名策略(none/quarantine/reject)sp=:子域名专属策略pct=:策略生效的邮件百分比rua=:接收汇总报告的邮箱地址
⚠️ 重要提醒:DMARC 上线是分步实施的过程,存在配置失误风险。 在没有梳理清楚全部邮件发送源(邮箱、营销系统、CRM、事务邮件、服务器告警等)的情况下直接设置严格策略,有可能直接拦截你的正规邮件,而你甚至不会察觉邮件投递失败。建议先使用
p=none收集报告,排查全部合法发信源之后再逐步提升策略严格度。
#如何解读 DMARC 报告
配置 DMARC 策略之后,Google、Yahoo 等邮箱服务商将每日以 XML 格式向你发送 DMARC 汇总报告。报告会列出收到的来自你域名的邮件,以及这些邮件是否满足 DMARC 对齐要求。
原生 XML 报告可读性差,很难人工直接分析。市面上有大量 DMARC 工具可以把原始 XML 转换成可视化统计报表,降低分析成本。
#常见问答
#DMARC 和 DKIM 的区别是什么?
DMARC 是邮件安全标准,用于防止未经域名所有者许可,冒用该域名发送邮件的行为。 DKIM 是 DMARC 所使用的两项身份验证手段之一,用于验证邮件本身。 DMARC 并不强制要求 DKIM,但配置 DKIM 可以最大限度减少 DMARC 的误判情况。