1. 最新百科/

什么是DMARC Record

阿里邮箱更多产品服务

DMARC记录(Domain-based Message Authentication, Reporting & Conformance Record)是一种电子邮件验证协议,用于防止电子邮件欺骗(email spoofing)。它建立在现有的SPF(Sender Policy Framework)和DKIM(DomainKeys Identified Mail)协议之上,通过统一的策略和报告机制,帮助邮件接收方判断一封邮件是否来自其声称的发件人,并规定如何处理伪造的邮件。

DMARC记录存储在域名的DNS(域名系统)中,是一个文本记录(TXT record),用于告知邮件接收服务器如何验证来自该域名的邮件,并指定如何处理未通过验证的邮件。


背景与起源 #

随着电子邮件的普及,垃圾邮件、钓鱼邮件和网络诈骗等问题日益严重。攻击者常常伪造邮件来源,冒充知名机构或可信联系人发送恶意邮件。为了解决这一问题,业界发展出多个电子邮件身份验证技术,如SPF和DKIM。

然而,SPF和DKIM各自存在局限性,例如:

  • SPF无法处理邮件转发(forwarding)问题;
  • DKIM签名可能被绕过;
  • 接收方对未通过验证的邮件缺乏统一的处理策略。

为了解决这些问题,2012年,PayPal、Google、Yahoo、Microsoft等公司联合推出了DMARC协议,并在IETF(互联网工程任务组)标准化为RFC 7489。该协议通过整合SPF和DKIM的结果,提供统一的验证机制和策略执行能力。


DMARC的工作原理 #

DMARC的工作流程可以分为以下几个步骤:

1. 邮件发送方配置DMARC记录 #

邮件发送方在其域名的DNS中添加一条DMARC记录,格式如下:

v=DMARC1; p=none; rua=mailto:reports@example.com; ruf=mailto:forensics@example.com;

其中各字段含义如下:

  • v:协议版本,目前为DMARC1;
  • p:策略(policy),指示接收方如何处理未通过DMARC验证的邮件。可选值为:
    • none:仅监测,不采取行动;
    • quarantine:隔离邮件(如放入垃圾邮件);
    • reject:直接拒绝邮件;
  • rua:Aggregated Reports接收地址,用于接收汇总报告;
  • ruf:Forensic Reports接收地址,用于接收详细失败报告;
  • sp:子域名策略(可选);
  • adkimaspf:分别指定DKIM和SPF对齐方式(strict或relaxed);
  • pct:策略应用的邮件比例(默认100%);
  • rf:报告格式(默认为afrf);
  • ri:报告间隔(默认为86400秒,即24小时)。

2. 邮件接收方验证邮件 #

当邮件接收服务器收到一封来自该域名的邮件时,会执行以下操作:

  • 检查邮件是否通过SPF验证;
  • 检查邮件是否通过DKIM验证;
  • 检查是否与DMARC策略中的“对齐”要求匹配;
  • 根据DMARC记录中的策略决定如何处理邮件(拒绝、隔离或放行);
  • 向发送方发送一份报告(根据rua/ruf设置)。

3. 发送方分析报告并优化策略 #

DMARC支持两种类型的报告:

  • Aggregated Reports(汇总报告):XML格式,定期发送,包含通过/未通过验证的邮件来源统计信息;
  • Forensic Reports(详细报告):当邮件未通过验证时立即发送,包含邮件头部和部分正文信息。

通过分析这些报告,发送方可以了解哪些邮件通过了验证,哪些未通过,从而调整SPF、DKIM或DMARC配置,提高邮件送达率和安全性。


DMARC的对齐机制 #

DMARC的“对齐”机制是指SPF或DKIM的验证结果必须与邮件的“发件人地址”(即From头部)的域名保持一致。对齐分为两种模式:

  • Strict(严格对齐):要求验证域名与From域名完全相同
  • Relaxed(宽松对齐):允许子域名与主域名一致(例如marketing.example.comexample.com视为对齐)。

DMARC支持以下两种对齐方式:

  • adkim:DKIM对齐方式;
  • aspf:SPF对齐方式。

DMARC的部署建议 #

部署DMARC通常分为以下几个阶段:

阶段一:监测模式(p=none) #

在初始阶段,设置策略为none,收集汇总报告,了解当前邮件来源是否通过SPF/DKIM验证。此阶段不阻止任何邮件,但可以发现潜在问题。

阶段二:隔离模式(p=quarantine) #

确认大部分合法邮件已通过验证后,可将策略改为quarantine,将未通过验证的邮件隔离,减少对用户的影响。

阶段三:拒绝模式(p=reject) #

在确保所有合法邮件都通过验证后,设置策略为reject,彻底阻止伪造邮件。


实施DMARC的好处 #

  1. 防止邮件欺骗:有效防止攻击者伪造你的域名发送钓鱼邮件;
  2. 提高邮件送达率:通过验证的邮件更容易被接收方信任;
  3. 增强品牌保护:避免品牌被用于欺诈活动;
  4. 获得详细的邮件流量报告:帮助识别异常发送行为;
  5. 符合行业标准:越来越多的行业规范和法规要求企业部署DMARC。

常见问题与误区 #

1. 部署DMARC是否会影响邮件发送? #

如果SPF和DKIM配置正确,DMARC通常不会影响合法邮件的发送。建议先以p=none模式部署,观察报告后再逐步收紧策略。

2. DMARC能100%阻止伪造邮件吗? #

DMARC是一个强大的工具,但不能完全阻止所有伪造邮件,特别是攻击者使用拼写错误的域名(如examp1e.com)进行欺骗。

3. 是否所有邮件服务提供商都支持DMARC? #

主流邮件服务提供商(如Gmail、Outlook、Yahoo等)都支持DMARC。建议企业与邮件服务提供商合作,确保配置正确。

4. 是否需要同时部署SPF和DKIM? #

是的。DMARC依赖SPF和DKIM的结果进行验证。建议同时部署SPF和DKIM以获得最佳效果。


示例DMARC记录 #

以下是一些常见的DMARC记录示例:

示例一:仅监测模式 #

v=DMARC1; p=none; rua=mailto:dmarc-reports@example.com;

示例二:隔离模式并启用报告 #

v=DMARC1; p=quarantine; rua=mailto:dmarc-reports@example.com; ruf=mailto:dmarc-forensics@example.com;

示例三:严格策略并限制对齐方式 #

v=DMARC1; p=reject; adkim=s; aspf=s; rua=mailto:dmarc-reports@example.com;

相关术语解释 #

  • SPF(Sender Policy Framework):通过DNS记录指定哪些IP地址可以代表该域名发送邮件;
  • DKIM(DomainKeys Identified Mail):通过加密签名验证邮件来源;
  • DNS(Domain Name System):域名解析系统,用于将域名转换为IP地址;
  • From头部:邮件中显示的发件人地址;
  • Mailbox Provider(邮件服务提供商):如Gmail、Outlook等接收邮件的服务;
  • Email Spoofing(邮件欺骗):伪造邮件来源地址的行为;
  • Phishing(钓鱼攻击):通过伪造邮件诱导用户泄露敏感信息。

如何检查DMARC记录 #

可以使用以下工具检查域名的DMARC记录:

此外,也可以使用命令行工具dig查询:

dig TXT _dmarc.example.com

总结 #

DMARC是一项关键的电子邮件安全协议,通过整合SPF和DKIM的验证结果,提供统一的邮件来源验证机制。它不仅有助于防止邮件欺骗,还能提高邮件送达率和品牌信誉。企业应积极部署DMARC,并根据报告不断优化配置,以提升电子邮件系统的安全性和可靠性。

随着网络攻击手段的不断演进,DMARC已成为现代电子邮件安全体系中不可或缺的一环。通过正确配置和持续监控,组织可以有效保护自身域名免受滥用,提升用户对电子邮件的信任度。