SPF、DKIM、DMARC:电子邮件身份验证协议详细指南

已发表: 2023-09-05

电子邮件身份验证涉及各种简单和复杂的过程,可防止恶意行为者破坏您的营销活动。 SPF、DKIM 和 DMARC 是三种主要的电子邮件身份验证方法,它们支持高级功能,用于验证电子邮件的真实性并防止网络犯罪分子窃取订阅者信息、发送有害或不需要的内容或损害您的声誉。

但尽管这一点至关重要,但由于身份验证协议的复杂性和设置过程的复杂性,许多营销人员不使用身份验证协议。 更重要的是,这些方法并非没有限制,因此建立一个有效的电子邮件验证系统可能具有挑战性,特别是如果您不精通技术的话。

在本指南博客文章中,我们详细分析了这些电子邮件身份验证协议,以帮助您了解其操作背后的基本原理。 你会学到什么?

  • SPF、DKIM 和 DMARC 的基础知识
  • 如何设置这些身份验证协议
  • SPF、DKIM 和 DMARC 记录的组成部分
  • 电子邮件身份验证的好处

目录

什么是SPF?

SPF 代表发件人策略框架。 它是一种电子邮件身份验证协议,允许接收电子邮件服务器接受来自授权发件人的传入电子邮件。 它使您能够限制可以使用您的域名发送电子邮件的电子邮件发件人的数量。

发件人策略框架使用称为 SPF 记录的既定策略,其中包含有用的数据,可帮助接收电子邮件服务器识别非法电子邮件发件人。

SPF 记录是 DNS 区域文件中的一种 TXT 记录形式,其中包含授权使用您的域发送电子邮件的 IP 地址列表。 通常,电子邮件服务器会拒绝来自未在此记录中列出的 IP 地址的电子邮件,从而防止欺骗者和垃圾邮件发送者利用您的身份发送有害内容。 如果电子邮件标头中的 IP 地址不在 SPF 记录中,服务器将拒绝其或将其标记为垃圾邮件。

显示 SPF 工作原理的信息图表
来源

SPF如何发挥作用?

SPF 使用信封发件人地址来验证电子邮件的来源,以匹配所有者的 DNS 服务器中的记录。 以下五个主要步骤总结了 SPF 的工作原理:

  1. 域管理员将 SPF 记录发布到 DNS 数据库,设置电子邮件服务器在看到传入电子邮件时应遵循的规则
  2. 接收电子邮件服务器对传入电子邮件执行 DNS 查找、检索 SPF 记录并检查返回路径或退回地址中的域规则
  3. 然后,电子邮件服务器将发件人的 IP 与记录中的授权地址列表进行比较
  4. 根据规则,服务器决定是否应该发送、标记或拒绝电子邮件
    • 如果发送IP在SPF记录中,则邮件认证通过
    • 如果发送IP不在SPF记录中,则认证失败

SPF 记录是什么样的?

SPF 记录包含标签,这些标签向接收电子邮件服务器提供有关如何匹配传入电子邮件和处理失败身份验证的说明。 SPF 记录有两个主要组成部分:

  1. 机制
  2. 预选赛

它可能是这样的:

 v=spf1 a:mail.solarmora.com ip4:192.72.10.10 包括:_spf.google.com ~all 
SPF记录
来源

1. 机制

SPF 机制是 SPF 记录中的特殊元素或标记,用于向电子邮件服务器显示与发件人地址相匹配的内容。 以下是其中一些要素:

  • v:这是每个 SPF 记录中的第一个机制。 它指定 SPF 版本,在本例中,值为 1
  • a:指定域的A或AAAA记录中的授权IP地址。 如果域有返回发件人 IP 地址的 A 记录,则此机制通过
  • Ip4 或 Ip6:分别指定 Ip4 或 Ip6 地址。 IP地址范围在记录中给出,如果发送者的地址与网络范围内的地址匹配,则该机制通过
  • mx:这指定发件人用于代表域中继邮件的授权电子邮件服务器。 域的 mx 记录在 SPF 记录中定义,如果发件人的 IP 链接到记录中的地址列表,则匹配成功
  • include:这指定授权为域中继电子邮件的第三方 IP 地址。 此机制使用外部邮件服务器的 SPF 记录来匹配发件人的 IP 地址。 如果第三方服务器没有 SPF 记录,则返回永久错误(PermError)
  • all:这是 SPF 记录中的最后一个机制,它定义传入电子邮件服务器将如何处理与其他机制不匹配的任何地址。 在使用其他机制评估地址后,它使用限定符来确定电子邮件会发生什么情况

2. 预选赛

限定符是一个前缀,指定服务器在将地址与记录匹配后所采取的操作。 四大预选赛包括:

预选赛结果意义
+ 经过此限定符允许接收电子邮件服务器接受所有传入电子邮件,即使它在 SPF 记录中没有匹配项
失败这就是硬失败。 当发送服务器未经授权或 SPF 记录不匹配时,它指示接收服务器拒绝电子邮件
软故障软失败指示服务器接受所有电子邮件,但如果发件人未经授权,可能会将其标记为垃圾邮件
中性的即使发件人未经授权,此限定符也没有明确说明是否通过或失败身份验证

如何设置SPF记录

设置 SPF 记录是一个复杂的过程,配置不当可能会导致多个错误。 不过,以下是设置过程的总体概述:

  1. 获取有权代表您发送电子邮件的 IP 地址、电子邮件服务器或域的列表
  2. 创建指定授权地址的 SPF TXT 记录。 您可以根据您的域名托管服务商在 DNS 设置中执行此操作
  3. 发布记录并测试以确保配置正确

创建 SPF 记录时要考虑的要点

  • 您的 SPF 记录只能包含小写字符
  • 它有 255 个字符的限制
  • 每个域只能有一个 SPF 记录
  • 避免使用“+all”或“?all”机制
  • SPF 记录不应超过 10 次 DNS 查找

SPF 有哪些限制?

  • 如果您的记录超过 10 次 DNS 查找,接收电子邮件服务器将无法通过身份验证
  • 转发的消息无法通过身份验证,因为新的返回路径可能不在 SPF 记录中
  • SPF 记录设置很复杂,公司需要在更改电子邮件服务器时更新它们
  • SPF 仅匹配退回地址,而不匹配发件人地址,从而使您的客户容易受到垃圾邮件和网络钓鱼攻击

另请阅读:如何避免垃圾邮件过滤器以提高电子邮件送达率

什么是 DKIM?

DKIM 代表域名密钥识别邮件。 它是一种电子邮件身份验证协议,在消息标头中使用加密(数字)签名来验证消息的完整性和合法性。 与 SPF 不同,DKIM 为您的域提供加密密钥,使您能够签署电子邮件以证明它们来自您。

此方法可防止网络犯罪分子欺骗您的域,因为他们无权访问对电子邮件标头中的加密签名进行加密的私钥 - 任何有权访问您的私钥的人都可以代表您签署电子邮件。 DKIM 通过告诉接收邮件服务器邮件来自您并且在传输过程中没有被更改,为 SPF 添加了额外的安全层。

DKIM 记录是包含 DKIM 公钥的 DNS 区域文件中 TXT 记录的一种形式。 公钥是非对称密钥,用于解密私钥签名的签名。

DKIM 的工作原理
来源

DKIM 如何运作?

DKIM 使用非对称加密技术来保护和验证电子邮件消息。 此过程的工作原理是分别使用私钥和公钥对您的电子邮件签名进行加密和解密。

以下是总结 DKIM 工作原理的主要步骤:

  1. 域管理员创建加密密钥对(私钥/公钥对),保护私钥,并以 TXT 格式在 DKIM 记录中发布公钥。
  2. 通过使用邮件标头和内容生成哈希值(任何这些字段的更改都可以更改哈希值),为每封电子邮件创建数字签名。 该哈希值使用域的私钥加密并附加到电子邮件标头。
  3. 接收邮件服务器检查传入的电子邮件,执行 DNS 查找以查找 DKIM 记录中的公钥,并根据电子邮件内容生成另一个哈希值。 它还使用公钥来解密电子邮件标头中的 DKIM 签名。
  4. 最后,接收邮件服务器比较两个哈希值。 如果匹配,则身份验证通过并且电子邮件是安全的。 但如果两个值不匹配,则身份验证失败,这意味着消息已被更改或电子邮件发件人未获得授权。

DKIM 签名是什么样的?

DKIM 签名是由消息中的多个组件(正文、标头或域)创建的一长串随机字符。 一个简单的 DKIM 签名由几个部分组成,可能如下所示:

 DKIM 签名:v=1; a=rsa-sha256; c=放松/放松;
        d=google.com; s=20221208; t=1692863043; x=1693467843;
        h=to:from:subject:message-id:list-unsubscribe:list-id:date
        :mime-版本:从:到:抄送:主题:日期:消息ID:回复;
        bh=SfaVTjqWfy4F1BcCTHCVE5SzBwTD7kOvDT0R5O2ycPg=;
        b=A3oKUoYntA0fSc1tgJ+iD+gIGYnWGEmywyLxpyByrHZh/gWo84p/N73ZNJiT82AkSe
        MxdveUN/4b5PLJ0VQmumix/EfmlIO2jssTLq3tDoKiM97UJaUyfPRiLuluuYCMiaYAKk
        ZUbZYCaRp0I0VYikf5i6BdzxQwrtxH0gyZOppXf+JXp0rhA+lz+Bjm87+kess5g/DqIJ
        qFjBIm0KBkd9AcBHeM8vpYhra9t4yyVzj0mburc+1zFyogChd4ATSVpkkazAEl1hYTCr
        I7t3/PkNvLyOQFLaj2Z7Ee9fVKyeWmyAm7DQ6BKc0LCHy8wX2W/SEzmonxo7l5B/t4Ie
        /nEw==

签名包含的标签包括:

  • v=指定DKIM版本,当前值设置为1
  • a=指定签名者用来生成签名的哈希算法。 通常,该值为 rsa-sha256 或 rsa-rsa1。
  • d=指定电子邮件发件人的域名
  • s=这指定了选择器。 接收邮件服务器使用它来查找给定签名的公钥。
  • h=指定标头哈希值。 它包含电子邮件标题中的所有信息 – 发件人:收件人:主题:日期:等。
  • b=指定以 Base64 编码的标头和正文的数字签名
  • bh=指定电子邮件正文哈希值。 它是代表消息内容的加密版本的字符串。
  • t=指定创建签名时的时间戳。 格式是自 1970 年 1 月 1 日 00:00:00(UTC 时区)以来的秒数。

如何设置 DKIM

与 SPF 一样,DKIM 设置是一个复杂且耗时的过程。 然而,这是值得的,因为它可以保护您的品牌声誉并保护您的电子邮件订阅者免受垃圾邮件和网络钓鱼攻击。 以下是可帮助您设置 DKIM 电子邮件身份验证的一般提示。

  1. 生成用于加密和解密 DKIM 签名的公钥/私钥对
  2. 将您的 DNS 区域文件中的公钥作为 TXT 记录发布 - 并保护您的私钥
  3. 生成您的签名并测试您的电子邮件以确保配置正确
DKIM 加密密钥对
来源

创建 DKIM 记录时要考虑的要点

  • 私钥应妥善保管
  • 避免 DKIM 记录中出现气体或错误
  • 确保定期轮换密钥,以减少密钥被泄露时可能发生的影响
  • 确保您的记录与电子邮件标头详细信息一致
  • 您可以通过使用可信的 DKIM 记录生成器来减少错误

DKIM 有哪些限制?

  • DKIM 实施起来很复杂,因为它涉及管理加密密钥和生成电子邮件签名
  • 如果电子邮件服务器或其他程序在传输过程中更改邮件,则该邮件可能会无法通过身份验证
  • DKIM 仅验证发件人的域名,而不验证发件人本身,因此如果网络犯罪分子有权访问您的帐户,他们发送的邮件将通过身份验证。
  • 有时,DKIM 签名不会覆盖电子邮件的所有部分,因此即使电子邮件的一部分被更改,它也可能通过身份验证
  • DKIM 签名不覆盖返回路径(退回地址)。

另请阅读:避免垃圾邮件文件夹:电子邮件传递能力简介

什么是 DMARC?

DMARC 代表基于域的消息身份验证、报告和一致性。 它是一种电子邮件身份验证协议,使域管理员能够发布处理传入电子邮件的策略。 此方法建立在 SPF 和 DKIM 框架之上,从而为您的电子邮件添加了额外的安全层。

  • DMARC + SPF: DMARC 确保标头“发件人:”地址与 SPF 记录中的返回路径或信封“发件人:”地址匹配,从而验证电子邮件的来源。
  • DMARC + DKIM: DMARC 确保标头“From:”域与 DKIM 签名中的 d= 域匹配。 这验证了消息的真实性。
DMARC 的工作原理
来源

DMARC 将这些电子邮件身份验证协议结合在一起,以查找可能的对齐信号,并建议接收邮件服务器在电子邮件身份验证失败时应采取的操作。 此外,它还提供 XML 格式的详细报告,以帮助域管理员监控其域在电子邮件通信中的使用方式。

DMARC 通过确保不需要或有害的内容不会进入收件箱来防止网络钓鱼和欺骗。 它使用 SPF 和 DKIM 的记录来结合标准身份验证和加密工具,确保只有授权发件人才能代表您的公司发送电子邮件。 通常,DMARC 记录包含处理这些电子邮件的策略。

DMARC 记录是在 DNS 数据库中发布的 TXT 记录的一种形式,其中包含告诉接收邮件服务器如何处理未通过 SPF 和 DKIM 电子邮件身份验证的邮件的策略。 它还包含使发件人能够接收有关使用该域发送的电子邮件的报告的说明。

DMARC 如何工作?

DMARC 不是独立的身份验证方法。 它与其他协议一起识别合法的电子邮件发件人,并建议针对不需要或有害的电子邮件采取的措施。

以下是总结 DMAARC 工作原理的主要步骤:

  1. 域管理员在 DNZ 区域文件中生成并发布 TXT 格式的 DMARC 记录。
  2. 当接收邮件服务器发现传入电子邮件时,它会执行 DNS 查找以查找 DMARC 记录。 它还进行 SPF 和 DKIM 身份验证以验证电子邮件的合法性。
    • 使用 SPF 记录来查明 IP 地址是否经过授权
    • 它检查“发件人:”地址和域是否与记录一致
    • 使用 DKIM 记录验证电子邮件签名
  1. DMARC 记录包含三个主要指令,如果一项或多项身份验证失败,接收邮件服务器应遵循这些指令。 这些政策包括:
    • 无:不对电子邮件执行任何操作
    • 隔离:将失败的电子邮件放入垃圾邮件文件夹中
    • 拒绝:删除电子邮件
  1. 最后,电子邮件服务器发送一份报告,总结从您的域发送的电子邮件的性能。
DMARC 的工作原理
来源

DMARC 记录是什么样的?

DMARC 记录可能如下所示:

 v=DMARC1; p=拒绝; rua=mailto:[email protected]

该记录包含标签,其中包括:

  • v=指定 DMARC 版本,当前值设置为 1。它是 DMARC 记录中的第一个标签。
  • p=这是策略标签。 它指定接收服务器应如何处理未通过身份验证的电子邮件。 这三个值是none、quarantine
  • pct=这指定将受到隔离或拒绝策略影响的电子邮件的百分比。 它与“p”配合使用,逐步测试未通过 DMARC 身份验证的邮件的小样本,以确保接收服务器不会将合法电子邮件标记为垃圾邮件。
  • rua=这指定您接收 DMARC 聚合报告的一个或多个电子邮件地址。 这些报告为您提供有关电子邮件发件人如何使用您的域的宝贵见解。
  • ruf=这指定您接收 DMARC 取证报告的一个或多个电子邮件地址。 与聚合报告不同,这些报告可以深入了解未通过 SPF、DKIM 和 DMARC 身份验证的电子邮件。
  • adkim 和 aspf= adkim 和 aspf 标签分别指定 DKIM 和 SPF 的对齐指令
  • sp=指定子域策略。 与“p”标签一样,该策略给出了对通过公司子域发送的电子邮件采取的操作

如何设置 DMARC 记录

与 SPF 和 DKIM 不同,DMARC 的设置相当容易。 然而,它仍然需要关键流程来避免错误。 以下是帮助您设置 DMARC 电子邮件身份验证的一般提示:

  1. 在 DNS 数据库中生成并发布 TXT 格式的 DMARC 记录
  2. 确保正确设置 SPF 和 DKIM
  3. 监控您的电子邮件以识别和分析未通过身份验证的电子邮件
  4. 逐渐收紧您的 DMARC 策略,从无隔离、拒绝,并选择用于接收 DMARC 报告的电子邮件地址
  5. 识别未通过身份验证的合法和非法来源。 这为您提供了见解,以帮助您调整其他安全协议

创建 DMARC 记录时要考虑的要点

  • 使用 DMARC 报告(汇总和取证)来识别授权和未经授权的电子邮件发件人
  • 一个域只能有一条 DMARC 记录
  • 逐渐从一种策略转向另一种策略,使用“pct”标签对一小部分邮件样本进行身份验证,以防止合法电子邮件被标记为垃圾邮件
  • 定期检查并更新您的 SPF 和 DKIM 记录,看看它们是否符合您当前的安全要求
SPF、DKIM 和 DMARC
来源

另请阅读:退回率和电子邮件送达率 – 简单指南

SPF、DKIM 与 DMARC

SPF 德基姆DMARC
认证框架SPF 使用 IP 地址来验证电子邮件发件人DKIM 使用数字签名来验证电子邮件内容的真实性DMARC 同时使用
报告SPF 不提供电子邮件报告DKIM 不提供电子邮件报告DMARC 提供汇总和取证报告
电子邮件的一部分SPF 分析返回路径或跳出地址DKIM 分析电子邮件签名DMARC 分析两者,包括发件人:地址
依赖SPF可以单独发挥作用DKIM 可以单独运行DMARC 依赖 SPF 和 DKIM
政策SPF 使用限定符来确定电子邮件服务器应如何处理失败的电子邮件身份验证DKIM 没有处理失败的电子邮件身份验证的策略DMARC 对于处理失败的电子邮件身份验证有明确的策略

另请阅读:针对初学者的电子邮件日落政策 101

如何检查您的电子邮件是否已通过 SPF、DKIM 和 DMARC

1. 使用您的电子邮件服务提供商 (ESP)

检查电子邮件身份验证方法状态的最简单方法是查看原始 HTML 格式的电子邮件的完整标头。 在这里,您可以查看其他标头详细信息,例如 IP 地址、DKIM 签名、发件人详细信息等。

您可以通过以下方法检查 Gmail 中的设置:

  • 首先,发送一封测试电子邮件到您的地址
  • 您可以单击向下箭头来显示第一个标题。
  • 如果“mailed-by”和“signed-by”标头与您的域匹配,则您的 SPF 和 DKIM 通过。

电子邮件标头

  • 您还可以点击左上角的三个点来查看 HTML 格式的完整标题

完整的电子邮件标题

  • 如果邮件通过,会显示“PASS”

SPF、DKIM 和 DMARC 身份验证

2.使用电子邮件工具

这最好是检查您的电子邮件身份验证设置并获取有关您的电子邮件的其他信息的最简单方法。

  • 转到Mx工具箱
  • 输入所需的详细信息

MxToolbox DMARC 检查

  • 如果电子邮件通过身份验证,结果可能如下所示

MxToolbox DMARC 检查

此工具中的数据可帮助您分析 SPF、DKIM 和 DMARC 记录并识别内部或外部来源。

另请阅读:退回电子邮件:它们是什么以及如何修复它们

电子邮件身份验证协议 SPF、DKIM 和 DMARC 如何提供帮助

1.保护品牌声誉

当网络犯罪分子利用您的身份欺骗您的订阅者或向他们发送未经请求的电子邮件时,您就会对您的品牌失去兴趣,并转而使用“更安全”的品牌。

更重要的是,他们会将您的电子邮件标记为垃圾邮件。 这会向垃圾邮件过滤器发送信号,随着时间的推移,您的品牌声誉会下降。

但通过电子邮件身份验证,您可以确保只有来自您公司的合法电子邮件才会发送给您的订阅者。 这可以帮助您开展安全、成功的电子邮件营销活动,以建立信任和更牢固的客户关系。

2. 防止网络钓鱼和欺骗

恶意行为者可以绕过简单的安全检查,攻击您的电子邮件服务器,并使用您的域窃取收件人的信息。 但是,SPF、DKIM 和 DMARC 等协议可以帮助您防止这种情况发生。

这些身份验证方法可确保只有来自合法发件人的电子邮件才能到达收件箱。 此外,它们还确保消息在传输过程中不被篡改。 当接收服务器发现可疑内容时,它们可以拒绝或将其标记为垃圾邮件。

3. 提高电子邮件送达率

身份验证协议具有通过降低垃圾邮件分数并拒绝恶意、不需要或有害的电子邮件来增强电子邮件送达率的功能。

当订阅者收到更多来自您品牌的未经请求的电子邮件时,他们可能会将其移至垃圾邮件文件夹。 这会增加您的垃圾邮件分数并损害您的声誉。 随着时间的推移,垃圾邮件过滤器可能会将您的合法电子邮件过滤到垃圾邮件文件夹中,您的收件人将看不到它们,从而损害您的营销活动。

另请阅读:ISP 和电子邮件送达率:如何始终到达收件箱

包起来

SPF、DKIM 和 DMARC 是强大的身份验证方法,可增强您的整体电子邮件安全性。 虽然您可以单独使用 SPF 和 DKIM,但最好将这三个协议结合起来以弥补它们的局限性。

这样,您可以识别代表您发送电子邮件的来源、保护您的电子邮件内容并接收有价值的电子邮件报告。

您可以使用 EngageBay 验证您的电子邮件,以提高您的品牌声誉并确保电子邮件营销活动取得成功。