遵守 Amazon 的DMARC身份验证协议 SES - Amazon Simple Email Service

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

遵守 Amazon 的DMARC身份验证协议 SES

基于域的邮件身份验证、报告和一致性 (DMARC) 是一种电子邮件身份验证协议,它使用发件人策略框架 (SPF) 和 DomainKeys 识别邮件 (DKIM) 来检测电子邮件欺骗和网络钓鱼。为了遵守规定DMARC,必须通过SPF或对邮件进行身份验证DKIM,但理想情况下,当两者同时使用时DMARC,您将确保电子邮件发送得到尽可能高级别的保护。

让我们简要回顾一下各自的作用以及它们是如何DMARC联系在一起的:

  • SPF— 标识允许哪些邮件服务器通过使用的DNSTXT记录代表您的自定义MAILFROM域发送邮件DNS。收件人邮件系统会参考该SPFTXT记录,以确定来自您的自定义域的邮件是否来自授权的邮件服务器。基本上,SPF旨在帮助防止欺骗,但是有些欺骗技术在实践中SPF很容易受到影响,这就是为什么你还需要同时使用的原因。DKIM DMARC

  • DKIM— 在电子邮件标题中为您的出站邮件添加数字签名。接收电子邮件的系统可以使用此数字签名来帮助验证传入的电子邮件是否由该域拥有的密钥签名。但是,当接收电子邮件的系统转发邮件时,邮件的信封会被更改,从而使身份验证失效SPF。由于数字签名是电子邮件标题的一部分,因此即使邮件服务器之间已转发邮件(只要邮件内容未被修改),因此数字签名仍然DKIM有效。

  • DMARC— 确保域与SPF和中的至少一个保持一致DKIM。DKIM单独使用 and SPF 并不能确保发件人地址经过身份验证(这是您的收件人在电子邮件客户端中看到的电子邮件地址)。SPF仅检查MAILFROM地址中指定的域名(收件人看不见)。DKIM仅检查DKIM签名中指定的域(而且,您的收件人看不到)。DMARC通过要求域对齐方式正确解决了这两个问题DKIM:SPF

    • SPF要通过DMARC对齐,发件人地址中的域必须与地址中的域匹配(也称为返回路径和信封发件人MAILFROM地址)。对于转发的邮件,这种情况很少发生,因为邮件会被删除,或者在通过第三方批量电子邮件提供商发送邮件时,这是因为 Return-Path (MAILFROM) 用于提供商 (SES) 使用他们拥有的地址跟踪的退回邮件和投诉。

    • DKIM为了通过DMARC对齐,DKIM签名中指定的域必须与发件人地址中的域相匹配。如果您使用第三方发件人或服务代表您发送邮件,则可以通过确保第三方发件人的DKIM签名配置正确,并且您在域中添加了相应的DNS记录来实现这一点。然后,接收邮件的服务器将能够验证您的第三方发送给他们的电子邮件,就好像该电子邮件是由授权使用域内地址的人发送的电子邮件一样。

把所有东西放在一起 DMARC

我们在上面讨论的DMARC对齐检查显示了SPFDKIM、和DMARC它们如何协同工作,以增加对你的域名的信任以及向收件箱发送电子邮件的信任。DMARC通过确保收件人看到的发件人地址经过以下任SPF一机构的身份验证来实现此目的:DKIM

  • DMARC如果所描述SPF的或两项DKIM检查均通过,则消息通过。

  • DMARC如果所述SPF或DKIM检查均失败,则消息将失败。

因此,DMARC为了最大限度地提高对发送的电子邮件进行身份验证的机会,两者SPFDKIM都是必不可少的,通过使用这三者,您将有助于确保您的发送域名受到完全保护。

DMARC还允许您通过您设置的策略指示电子邮件服务器在无法通过DMARC身份验证时如何处理电子邮件。这将在下一节中进行解释为您的域名设置DMARC政策,其中包含有关如何配置SES域的信息,以使您发送的电子邮件符合通过SPF和的DMARC身份验证协议DKIM。

为您的域名设置DMARC政策

要进行设置DMARC,您必须修改域名的DNS设置。您的域名的DNS设置应包括一条指定域名DMARC设置的TXT记录。向DNS配置中添加TXT记录的过程取决于您使用的托管服务提供商DNS或托管服务提供商。如果您使用 Route 53,请参阅《Amazon Route 53 开发人员指南》中的使用记录。如果您使用其他提供商,请参阅您的提供商的DNS配置文档。

您创建的TXT记录的名称应为_dmarc.example.com,您的域名在example.com哪里。TXT记录的值包含适用于您的域名的DMARC政策。以下是包含DMARC策略的TXT记录的示例:

名称 Type
_dmarc.example.com TXT "v=DMARC1;p=quarantine;rua=mailto:my_dmarc_report@example.com"

在前面的DMARC策略示例中,该政策要求电子邮件提供商执行以下操作:

  • 对于任何未通过身份验证的邮件,请按照策略参数的指定将其发送到垃圾邮件文件夹p=quarantine。其他选项包括使用不执行任何操作p=none,或者使用直接拒绝消息。p=reject

    • 下一节将讨论如何以及何时使用这三种策略设置—— 在错误的时间使用错误的策略设置可能会导致您的电子邮件无法送达,请参阅实施的最佳实践 DMARC

  • 按照报告参数(r u a 代表 Reporting for Aggregate 报告),在摘要(即汇总特定时间段内数据的报告,而不是为每个事件发送单独的报告)中发送有关所有未通过身份验证URI的电子邮件的报告。rua=mailto:my_dmarc_report@example.com电子邮件提供商通常每天发送一次此类汇总报告,但具体政策因提供商而异。

要了解有关DMARC为您的域名进行配置的更多信息,请参阅DMARC网站上的概述

有关DMARC系统的完整规格,请参阅 Internet 工程任务组 (IETF) DMARC 草稿

实施的最佳实践 DMARC

最好以循序渐进和分阶段的方法实施DMARC策略,这样它就不会中断邮件流的其余部分。按照这些步骤制定并实施一项推出计划。在继续下一步之前,先对每个子域名执行每一个步骤,最后使用组织中的顶级域名。

  1. 监控实施的影响DMARC(p=none)。

    • 从一个或多个子域的简单监控模式记录开始,该记录要求邮件接收组织向您发送有关他们使用该域名看到的邮件的统计信息。监控模式记录是指其策略设置为 “无” 的DMARCTXT记录。p=none

    • 通过生成的报告DMARC将提供通过这些检查的消息的数量和来源,以及未通过检查的消息的数量和来源。您可以很容易地看到您的合法流量中有多少被它们覆盖或未被覆盖。你会看到转发的迹象,因为转发的邮件会失败SPF,DKIM如果内容被修改。您还将开始看到有多少欺诈性邮件被发送,以及它们是从哪里发送的。

    • 此步骤的目标是了解当你实施接下来的两个步骤之一时,哪些电子邮件会受到影响,并让任何第三方或授权发件人调整其SPF或DKIM政策。

    • 最适合现有域名。

  2. 请求外部邮件系统隔离失败的邮件DMARC(p=隔离)。

    • 当您认为所有或大部分合法流量发送的域名都与SPF或一致DKIM,并且您了解实施的影响时DMARC,就可以实施隔离政策。隔离策略是将其策略设置为隔离的DMARCTXT记录p=quarantine。通过这样做,你就是在要求DMARC收件人将来自你的域名但失败的邮件放DMARC到相当于垃圾邮件文件夹的本地邮件中,而不是客户的收件箱。

    • 最适合过渡在步骤 1 中分析过DMARC报告的域名。

  3. 请求外部邮件系统不接受失败的邮件DMARC(p=reject)。

    • 实施拒绝政策通常是最后一步。拒绝策略是将其策略设置为拒绝的DMARCTXT记录p=reject。当你这样做时,你是在要求DMARC收件人不要接受未通过DMARC检查的邮件,这意味着它们甚至不会被隔离到垃圾邮件或垃圾文件夹,而是会被彻底拒绝。

    • 使用拒绝策略时,您将确切地知道哪些邮件未通过该DMARC策略,因为拒绝将导致SMTP退回。通过隔离,汇总数据可提供有关电子邮件通过或失败的百分比的信息 SPFDKIM,并DMARC进行检查。

    • 最适合已完成前两个步骤的新域名或现有域名。

DMARC通过以下方式遵守 SPF

要使DMARC电子邮件符合以下两个条件:SPF

  • 该邮件必须根据您必须发布到自定义MAILFROM域名的DNS配置中的有效SPF(类型TXT)记录通过SPF检查。

  • 电子邮件标题的 “发件人” 地址中的域名必须与MAILFROM地址中指定的域名或子域名对齐(匹配)。为了与之SPF保持一致SES,域的DMARC策略不得指定严格的SPF策略 (aspf=s)。

要满足上述要求,请完成以下步骤:

  • 通过完成中的步骤来设置自定义MAILFROM域使用自定义 MAIL FROM 域

  • 确保您的发送域使用宽松的政策SPF。如果您没有更改域名的政策一致性,则默认情况下,它会像以前一样使用宽松的政策SES。

    注意

    您可以SPF通过在命令行键入以下命令来确定域的DMARC对齐方式,将其example.com替换为您的域:

    dig TXT _dmarc.example.com

    在此命令的输出中,在 Non-authoritative answer 下查找以 v=DMARC1 开头的记录。如果此记录包含字符串aspf=r,或者该aspf字符串根本不存在,则您的域名将使用宽松对齐方式SPF。如果记录包含字符串aspf=s,则您的域名将使用严格的对齐方式SPF。您的系统管理员需要从您的域DNS配置DMARCTXT记录中删除此标记。

    或者,您可以使用基于 Web 的DMARC查找工具,例如 dmarcian 网站的 DMARCIn spector 或 MxToolBox网站上的DMARC检查工具来确定您的域名的政策一致性。SPF

DMARC通过以下方式遵守 DKIM

要使DMARC电子邮件符合以下两个条件:DKIM

  • 邮件必须具有有效的DKIM签名并通过DKIM检查。

  • DKIM签名中指定的域必须与发件人地址中的域对齐(匹配)。如果域名的DMARC政策规定严格对齐DKIM,则这些域名必须完全匹配(默认SES使用严格的DKIM策略)。

要满足上述要求,请完成以下步骤:

  • 完成中的步骤DKIM即可设置 Easy Amazon SES 中的 Easy DKIM。当您使用 Easy 时DKIM,Amazon SES 会自动为您的电子邮件签名。

    注意

    除了使用 Easy 之外DKIM,您还可以手动签署消息。但是,如果您选择这样做,请谨慎行事,因为Amazon SES 不会验证您构造的DKIM签名。因此,我们强烈建议使用 Easy DKIM。

  • 确保DKIM签名中指定的域与发件人地址中的域名对齐。或者,如果从发件人地址中该域的子域名发送,请确保将您的DMARC策略设置为宽松一致。

    注意

    您可以DKIM通过在命令行键入以下命令来确定域的DMARC对齐方式,将其example.com替换为您的域:

    dig TXT _dmarc.example.com

    在此命令的输出中,在 Non-authoritative answer 下查找以 v=DMARC1 开头的记录。如果此记录包含字符串adkim=r,或者该adkim字符串根本不存在,则您的域名将使用宽松对齐方式DKIM。如果记录包含字符串adkim=s,则您的域名将使用严格的对齐方式DKIM。您的系统管理员需要从您的域DNS配置DMARCTXT记录中删除此标记。

    或者,您可以使用基于 Web 的DMARC查找工具,例如 dmarcian 网站的 DMARCIn spector 或 MxToolBox 网站上的DMARC检查工具来确定您的域名的政策一致性。DKIM