什么是 DMARC? 了解 DMARC 记录
已发表: 2020-03-05基于域的消息身份验证、报告和一致性或 DMARC 是一种使用发件人策略框架 ( SPF)和域密钥识别邮件 ( DKIM)来确定电子邮件消息真实性的协议。
DMARC 记录使 Internet 服务提供商 (ISP) 能够更轻松地防止恶意电子邮件行为,例如域欺骗以通过网络钓鱼获取收件人的个人信息。
本质上,它允许电子邮件发件人指定如何处理未使用 SPF 或 DKIM 进行身份验证的电子邮件。 发件人可以选择将这些电子邮件发送到垃圾文件夹或让它们一起阻止它们。 通过这样做,ISP 可以更好地识别垃圾邮件发送者并防止恶意电子邮件侵入消费者收件箱,同时最大限度地减少误报并提供更好的身份验证报告以提高市场透明度。
您的 DMARC 记录与您的 DNS 记录一起发布,包括:
- 防晒指数
- 一个记录
- CNAME
- (DKIM)
重要的是要注意,并非所有接收服务器都会在接受消息之前执行 DMARC 检查,但所有主要 ISP 都会这样做,并且实施正在增长。
DMARC 有什么好处?
您希望实施 DMARC 有几个关键原因:
- 声誉:发布 DMARC 记录可防止未经身份验证的各方从您的域发送邮件,从而保护您的品牌。 在某些情况下,简单地发布 DMARC 记录可能会带来积极的声誉提升。
- 可见性: DMARC 报告通过让您知道谁从您的域发送电子邮件来提高对您的电子邮件程序的可见性。
- 安全性: DMARC 帮助电子邮件社区建立一致的策略来处理未能通过身份验证的邮件。 这有助于整个电子邮件生态系统变得更加安全和值得信赖。
DMARC 记录是什么样的?
您可以通过在终端中键入 <dig txt_dmarc.sendgrid.net >来查看 DMARC 记录的样子。 您也可以访问https://www.valimail.com/查看任何域的 DMARC 记录(如果它们已发布 1 个)。
这是 DMARC 记录的示例——这是 SendGrid 的 DMARC 记录:
v=DMARC1\;p=none\;rua=mailto:[email protected]\;ruf=mailto:[email protected]\;rf=afrf\;pct=100
让我们分解一下
“v=DMARC1”
版本 – 这是接收服务器在扫描从其接收消息的域的 DNS 记录时查找的标识符。 如果域没有以 v=DMARC1 开头的 txt 记录,则接收服务器将不会运行 DMARC 检查。
“p=无”
政策 – 您在 DMARC 记录中选择的政策将告诉参与的收件人电子邮件服务器如何处理未通过 SPF 和 DKIM 但声称来自您的域的邮件。 在这种情况下,策略设置为“无”。 您可以设置 3 种类型的策略:
- p=none – 告诉接收者不对不合格的邮件执行任何操作,但仍将电子邮件报告发送到 mailto: 在 DMARC 记录中的任何违规行为。
- p=quarantine – 告诉收件人隔离不合格的邮件,这通常意味着“将其直接发送到垃圾邮件文件夹”。
- p=reject – 告诉收件人完全拒绝该域的任何不合格邮件。 启用此功能后,只有被验证为 100% 由您的域签名的邮件才有机会进入收件箱。 任何未通过的邮件都会被拒绝——不会被退回——因此无法捕捉误报。
“rua= mailto:[email protected] ”
这部分告诉接收服务器将 DMARC 失败的聚合报告发送到哪里。 每天将汇总报告发送给 DMARC 记录所属域的管理员。 它们包括有关 DMARC 故障的高级信息,但不提供有关每个事件的详细信息。 这可以是您选择的任何电子邮件地址。
“ruf=mailto:[email protected]”
这部分告诉接收服务器将 DMARC 故障的取证报告发送到哪里。 这些取证报告实时发送给 DMARC 记录所属域的管理员,并包含有关每个单独故障的详细信息。 此电子邮件地址必须来自为其发布 DMARC 记录的域。
“ rf=afrf”
报告格式。 这部分告诉接收服务器投保人想要什么样的报告。 在这种情况下, rf=afrf表示聚合故障报告格式。
“pct=100”
百分比——这部分告诉接收服务器有多少邮件应该遵守 DMARC 策略的规范。 您可以选择 1-100 之间的任何数字。 在这种情况下,如果 p= 设置为拒绝,则 100% 未通过 DMARC 的邮件将被拒绝。
还有许多其他机制可以包含在 DMARC 记录中。 一些值得注意的包括:
“sp=”这部分将告诉接收服务器是否将 DMARC 策略应用于子域。
“adkim=”这将设置 DKIM 对齐方式。 它可以设置为“s”表示严格或“r”表示宽松。 严格意味着 DMARC 身份验证的 DKIM 部分只有在 DKIM 签名中的 d= 字段与 from 域完全匹配时才会通过。 如果设置为宽松,如果 DKIM d= 字段与发件人地址的根域匹配,则邮件将通过 DMARC 身份验证的 DKIM 部分。
“ri=”这设置了您希望接收有关 DMARC 故障的汇总报告的频率间隔。
如何使用 Twilio SendGrid 实现 DMARC?
在完成实施 DMARC 的工作之前,请注意它并不适合所有人。 如果您拥有一个小域,那么没有它您可能没问题。 但是,如果您过去曾遇到过网络钓鱼问题或拥有处理敏感信息的财务导向业务,那么这是一个明智之举。
要记住的另一件事是 DMARC 汇总和取证报告旨在为机器可读。 人类可能很难理解它们,因此您还需要使用 DMARC 报告监控服务来收集报告并访问信息。 Twilio SendGrid 已与 ValiMail 合作。
一旦您决定实施并选择了正确的服务,设置 DMARC 的过程包括 5 个阶段:
1. 在您的 Sendgrid IP 上部署带有发件人身份验证的 DKIM 和 SPF
为您的帐户完成发件人身份验证过程。 这可确保通过您的 Twilio SendGrid 帐户发送的电子邮件将使用DKIM和SPF为您的唯一域正确签名。
如果您不确定如何完成第一步,请在此处访问我们的文档以获取帮助。
2. 为您允许的域验证正确的 DKIM 和 SPF 签名
给自己发送一些测试电子邮件,以帮助确认一切正常。 您正在寻找验证电子邮件标头中的 DKIM 和 SPF 签名是否与您用于允许您的 SendGrid 帐户的域一致。 只要两者都通过,您就可以开展业务!
3. 向您的 DNS 注册商发布 DMARC 记录,然后监控结果
在您的 DNS 注册商中,您需要创建一个 TXT 资源记录,接收者可以使用该记录来确定您的 DMARC 首选项。 这是在域主机的 DNS 注册器中完成的,这可能与您为发件人身份验证创建 DNS 记录的位置相同。 此记录是在域的根级别创建的,而不是子域。
一个简单的 DMARC 记录可能如下所示:
“v=DMARC1; p=quarantine; pct=100;
rua=mailto:[email protected]”
“v=DMARC1; p=隔离; 百分比=100; rua=mailto:[email protected]”*
- v=DMARC1;
设置为使用 DMARC 版本 1,目前没有其他版本。 所以总是设置为 1。 - p=隔离;*
该政策告诉收件人隔离不合格的邮件,这通常意味着“将其直接发送到垃圾邮件文件夹”。 - 百分比=100;
这指示接收者评估 100% 声称来自域的消息,这可以是 1 到 100 之间的任何数字。 - rua=mailto:[email protected]
这告诉收件人将汇总报告发送到[email protected] 。 将此设置为您控制且受到密切监控的电子邮件地址。
*此示例使用 p=quarantine 策略,但我们建议始终首先使用 p=none 策略。
4. 分析您收到的反馈并根据需要调整您的邮件流
如果不合格的电子邮件被发送到参与 DMARC 的收件人并由其接收,收件人将为这些邮件生成报告并将它们发送回您的 DMARC 记录中指定的 mailto: 地址。
在这些报告中,您将获得帮助您准确评估哪些服务可能代表您的域发送邮件的信息。
这是一个只有 1 条记录的示例报告,显示了 2 封邮件的结果。 (请注意,列出的 SPF 和 DKIM auth_results 是原始结果,与 s= 对齐方式无关。文件名的格式为:filename = receiver “!” policy-domain “!” begin-timestamp “!” end-timestamp “。 ” 扩展名(例如:receiver.org!sender.com!1335571200!1335657599.zip))
<报告元数据>
<org_name>receiver.com
<extra_contact_info>http://receiver.com/dmarc/support
<report_id>9391651994964116463
<日期范围>
1335571200
1335657599
<policy_published> sender.com
r
r
没有
没有
100
<source_ip>72.150.241.94
2 <policy_evaluate> 无
失败
经过
<header_from>sender.com
<auth_results>
发件人.com
失败
<human_result>
发件人网
经过
<human_result>
发件人.com
经过
*注意:汇总报告以 .zip 附件的形式发送,因此请确保您定义的地址可以接受此文件类型的附件。
5. 在学习时升级您的 DMARC 政策标签
现在您已经测试并调整了您的邮件流,以确定谁在为您的域发送电子邮件,是时候将其提高一个档次了。
到目前为止,您应该只使用 p=none 策略来获取任何错误行为的报告,并且您应该对电子邮件的来源有一个很好的了解。 下一步是调整您的 DMARC 记录的政策,以开始控制接收者如何处理声称来自您的域的邮件。 记住:
- p=none – 您会收到违规报告,但收件人不会自行处理邮件。
- p=quarantine – 不合格的邮件直接进入垃圾邮件,但可以恢复。 当您相当确定您知道邮件来自的所有位置时,这很有用,但想要“软失败”任何不合格的邮件,直到您 100% 确定为止。
- p=reject – 当您绝对确定您知道为您的域发送电子邮件的每台服务器和服务,并且这些服务中的每一项都已签名并且您希望任何大胆地声称否则完全被拒绝时,请使用此选项。 不合格的邮件被收件人邮件服务器完全删除,再也看不到了。
为什么 DMARC 如此重要
DMARC 记录是电子邮件身份验证的重要演变。 这只是电子邮件发件人和 ISP 合作保护电子邮件渠道的另一个很好的例子。 要了解有关 DMARC 的更多信息,请访问该组织的网站 www.dmarc.org。 要了解有关身份验证的更多信息,请阅读此博客文章。
其他资源
- DMARC.org 的常见问题
- 雅虎 DMARC 政策更新
- 首先是雅虎,现在是 AOL。 您需要更改哪些内容才能符合 DMARC?