DMARC 介绍
DMARC 是什么?
DMARC 是 “Domain-based Message Authentication, Reporting & Conformance” 的缩写。它用来检查一封电邮是否来自所声称的发送者。DMARC 建立在广泛使用的 SPF 和 DKIM 协议上, 并且添加了域名对齐检查和报告发送功能。这样可以改善域名免受钓鱼攻击的保护。
这是来自 dmarc.org 的示意图:
为什么 DMARC 如此重要?
根据 dmarc.org 的说法:
随着社交网络和电子商务的繁荣,垃圾邮件发送者和钓鱼攻击发起者基于利益的原因,想要入侵用户的账户,破解用户的信用卡等。Email 的相对容易攻击的特性备受罪犯们的青睐。只是简单地把企业的 logo 嵌入到 email 中,就能获取用户的信任。用户很难辨别一封假的 email,邮件提供商也很难判断哪些邮件有可能会伤害用户。邮件发送者基本上对邮件认证的问题一无所知,因为他们缺少合理的反馈机制。那些尝试部署 SPF 和 DKIM 的企业的进展非常慢,因为没有监督进度和除错的机制。
DMARC 解决了这些问题。它帮助 email 发送者和接收者来共同保护 email,避免了昂贵的入侵损失。
DMARC 记录是什么?
DMARC 记录作为 TXT 资源记录发布到 DNS 中。它指示当验证失败时,应当如何处理收到的 email。
考察以下的发布在域名 “sender.exampledomain.com” 上的 DMARC 记录:
v=DMARC1;p=reject;pct=100;rua=mailto:postmaster@exampledomain.com
在这个例子中,发送者请求接收者完全拒绝验证未通过的 email,并且发送相关报告至 postmaster@exampledomain.com。如果发送者是在测试配置的话,"reject" 有可能被替换成 "quarantine",意味着验证未通过的 email将被隔离。DMARC 记录使用可扩展的 “标签-值” 语法。
DMARC 记录标签是什么?
这是一个典型的 DMARC 记录:
v=DMARC1; p=none; ri=3600; rua=mailto:5b06a240321f1@ag.dmarcly.com; ruf=mailto:5b06a240321f1@fo.dmarcly.com; sp=none; adkim=s; aspf=s; fo=0:1:d:s;
它由多个标签组成。这些标签告诉邮件服务提供商应该如何发送 DMARC 报告。我们在下面逐一解释这些标签。
v 是 DMARC 协议版本。它的值必须是 DMARC1。
p 是策略。该策略将被应用到验证失败的邮件上。可以设置成 'none', 'quarantine', 或者 'reject'。'none' 用来收集 DMARC 报告。'quarantine' 用来隔离可疑邮件。'reject' 拒收可疑邮件。
ri 是以秒为单位的报告发送间隔。
rua 是一系列用来接受聚合报告的电邮。
ruf 是一系列用来接受失败报告的电邮。
sp 是子域名策略。
adkim 制定 DKIM 的对齐策略。
aspf 制定 SPF 的对齐策略。
fo 是法庭选项。
rf 制定失败报告的格式。
pct 对失败邮件应用策略的百分比。
DMARC 策略是什么?
DMARC 策略是在 DMARC 记录中制定的 p 标签。它指示邮件服务提供商应该如何处理验证失败的邮件。
DMARC 策略可以取三个值中的一个:none (monitor), quarantine 和 reject。
– none: 邮件提供商对验证失败邮件不采取任何处理。这个模式用来收集 DMARC 报告。
– quarantine: 邮件提供商把验证失败邮件放到垃圾邮件文件夹。
– reject: 邮件提供商拒收验证失败邮件。
发布 DMARC 记录
在发布之前,你需要创建一条 DMARC 记录。接下来我们登陆 DMARCLY 后台 来创建一条 DMARC 记录。
登录成功后,点击 DNS Records/DMARC Setup,页面看起来像这样:
生成的 DMARC 记录出现在上面的圈选区域。
接下来,你需要把记录发布到 DNS 中。以下是步骤:
登录到你的 DNS 管理后台;
选择需要发布 DMARC 记录的域名;
创建一条 TXT 记录:
Type: TXT Host: _dmarc TXT Value: (DMARC record generated above) TTL: 1 hour
如果你在 GoDaddy's DNS 管理后台发布的话,看起来是这样的:
如果你是用其他的域名服务的话,界面应该类似。
保存更改。现在你已经在域名 yourdomain.com 上面成功发布 DMARC 记录了。
本文翻译自 DMARCLY 的 blog:Getting Started with DMARC,已经经过作者的授权。