自定义域名的反欺骗(SPF、DKIM 和 DMARC)
- 阅读
- 1 分钟
- 类别
- 域名设置
电子邮件的开放性和去中心化特性虽然带来了巨大的好处,但这种自由也使电子邮件容易被滥用。例如,任何连接到互联网的服务器都可以冒充您,向您的朋友发送电子邮件,这种攻击被称为 电子邮件欺骗。
我们强烈建议所有在 Proton Mail 中使用自定义域名的用户设置 SPF、DKIM 和 DMARC,以确保您的电子邮件能够正常送达。
请继续阅读,了解我们如何保护您的自定义域名免受此类攻击。
SPF
发件人策略框架(SPF)记录基本上向外界声明哪些主机或 IP 地址被允许为您的域名发送电子邮件。当邮件服务器收到声称来自您域名的电子邮件时,可以查询您的 SPF 记录,查看发送服务器是否包含在内。
虽然并非必需,但我们强烈建议您设置一条包含 Proton Mail 的 SPF 记录。
这不仅能让您的电子邮件看起来更合法,从而降低被送入垃圾邮件文件夹的可能性,还能帮助保护您的域名免受那些伪造邮件标题并冒充您发送电子邮件的攻击者的侵害。
在浏览器中登录您的 Proton Mail 帐户,前往 设置 → 所有设置 → 域名,然后点击要为其添加 SPF 记录的域名旁的 审核。

选择 SPF 标签页。此处显示了建议添加到域名注册商的域名管理门户的 SPF 记录。您可以点击条目左侧的小图标,将其复制到系统的剪贴板。

文本字符串中的“include:_spf.protonmail.ch”部分表示您允许 Proton Mail 服务器代表您的域名发送电子邮件。如果您想保留现有的 SPF 记录,只需将“include:_spf.protonmail.ch”文本字符串添加到现有记录的右侧、“v=spf1”之后即可。“mx”还包含您域名的 MX 记录。
“~all”部分表示,如果电子邮件是从文本字符串中未包含的任何服务器发送的,它将被视为 SoftFail。这意味着接收邮件服务器会接受该电子邮件的投递,但会将其标记为 SPF failed。另一种选择是使用“-all”(HardFail)参数。
这会导致电子邮件被拒收,从而可能给合法电子邮件带来投递问题。例如,在电子邮件转发过程中 SPF 经常会失败:您发送到地址 A,而该地址会自动转发到地址 B。一旦我们检测到您域名的 SPF 记录包含 Proton Mail,SPF 标签页就会显示绿色对勾图标。
DKIM
域名密钥识别邮件(DKIM)是一种电子邮件身份验证方法,通过加密方式验证电子邮件是否由受信任的服务器发送且未被篡改。
基本上,当服务器使用您的域名发送电子邮件时,它会使用私钥(只有受信任的服务器知道)计算出电子邮件内容的加密哈希值,并将其作为 DKIM 签名添加到电子邮件标题中。
接收服务器会通过在您域名的 DNS 记录中查找相应的公钥、解密加密哈希值,并根据收到的电子邮件内容计算新的哈希值来验证电子邮件内容。然后,它会将解密后的哈希值与新哈希值进行比较。如果两者匹配,则说明电子邮件未被篡改,DKIM 验证通过;否则,DKIM 验证失败,该电子邮件将被视为可疑邮件。
我们使用 CNAME 记录来管理自动 DKIM 密钥轮换,这是一种公认的安全最佳实践。我们请您添加并保留三条 CNAME 记录。这可以确保始终有一个处于启用状态的密钥来提供不间断的服务,同时其他密钥会定期自动停用并重新创建,以提高安全性。
这一切听起来很复杂,但在 Proton Mail 中为您的域名实施 DKIM 非常简单。首次更改其 DNS 记录以配合 Proton Mail 使用时,验证您的自定义域名需要几个小时。自定义域名验证完成后,Proton Mail 会生成您在域名 DNS 门户中所需的主机名和值,然后创建自动 DKIM 密钥轮换所需的 CNAME 记录。
我们会向您发送一封电子邮件通知,告知您的自定义域名、主机名和值已准备就绪。
新用户
在浏览器中登录您的 Proton Mail 帐户,然后前往 设置 → 所有设置 → 组织 → 域名 → 操作 列 → 要为其添加 DKIM 记录的域名旁的 审核 按钮。
选择 DKIM 标签页。您将在此处看到需要添加到域名 DNS 设置中的三条主机名和值。

添加这些记录后,Proton Mail 会为您处理其余工作。遵循当前的安全最佳实践,我们会每六个月生成一个新的 2048 位密钥,并使用它为您的电子邮件签名。
您添加到域名 DNS 设置中的 CNAME 记录必须与设置向导中显示的记录完全一致。一旦我们在您的 DNS 中检测到这些记录,DKIM 标签页就会显示绿色对勾图标。随后我们会通知您,并开始像对其他 Proton Mail 地址一样,使用 DKIM 为从您的自定义域名发出的电子邮件签名。
注意:某些注册商不接受以句点结尾的 CNAME 值(而有些注册商则要求必须如此)。如果您的注册商不接受您的 CNAME 记录,请删除每个 CNAME 值末尾的句点,然后重试
目前使用手动 DKIM 密钥轮换的用户
我们强烈建议所有目前使用手动 DKIM 密钥轮换的用户升级到新的自动密钥轮换系统。 这不仅可以免除您手动轮换密钥的麻烦,还会自动升级您的密钥强度(如果您使用的是 1024 位密钥)。
如果您之前使用 TXT 记录为域名配置了手动 DKIM 密钥轮换,则需要在输入 CNAME 记录之前从 DNS 设置中移除此记录。
您需要使用 CNAME 记录重新配置 DNS 设置,因为 CNAME 记录让我们能够设置自动密钥轮换,而您目前的 TXT 记录则无法做到这一点。
删除此 TXT 记录后,您可以按照新用户的说明进行操作。删除 TXT 记录后,DKIM 将停止为您的电子邮件签名。为了保持 DKIM 防护,您应立即在 DNS 设置中输入您的 CNAME 主机名和值。
DMARC
在了解 SPF 和 DKIM(见上文)时,您可能想知道接收服务器如何处理未通过检查的电子邮件。这正是基于域名的消息身份验证、报告和一致性(DMARC)的作用所在。
DMARC 允许域名所有者指定如何处理未通过的电子邮件,并在这些邮件到达时获得反馈。基本上,如果 SPF 和 DKIM 检查均未通过,接收服务器可以采取三种操作:none、quarantine和 reject。
在浏览器中登录您的 Proton Mail 帐户,然后前往 设置 → 转至设置→ 组织 → 域名 → 操作 列 → 要为其添加 DMARC 记录的域名旁的 审核 按钮。

复制 DMARC TXT 主机名和值字符串,然后在域名注册商的域名管理控制台中将其添加到您的域名。

“p=”值指定对未通过 DMARC 的电子邮件采取的操作。以下是可用的操作:
- p=quarantine:请求收件人平台将未经授权的电子邮件标记为垃圾邮件或将其隔离。
- p=reject:请求收件人平台拒收未经授权的电子邮件。
- p=none:不隔离也不拒收未经授权的电子邮件。通常,人们只在排查问题或测试时才使用此策略。
默认设置为 none。但是,为了提高您的安全性,我们建议将此值设置为 p=quarantine。
一旦您确信自己的合法电子邮件都能通过 DMARC 验证,就可以将其设置得更加严格,即 p=reject。如果您认为自己可能成为电子邮件欺骗的目标,我们建议这样做。例如,Yahoo、PayPal 和 eBay 都使用 p=reject 来防止垃圾邮件发送者冒充它们。
另一个参数是 rua=,它指定一个电子邮件地址,其他电子邮件服务可以向该地址发送汇总报告,以便您了解有多少电子邮件未通过 DMARC。

但请记住,选择更严格的 DMARC 操作存在风险。例如,当您向邮件列表发送电子邮件,而该列表随后转发给各个收件人时,这会破坏 SPF。更麻烦的是,有些邮件列表还会更改电子邮件内容,这会破坏 DKIM 并导致 DMARC 验证失败,如果您已将 DMARC 设置为 quarantine 或 reject,就会产生投递问题。这就是 DMARC 默认设置为 none 的原因。
测试电子邮件
设置好自定义域名后,您可以通过Mail Tester(新窗口)发送电子邮件来进行测试。
只需使用您的自定义域名地址,向 Mail Tester 网页上显示的唯一地址发送一封电子邮件。然后查看您的垃圾邮件评分。

如果您同时正确设置了 SPF 和 DKIM,就应该能获得 10/10 的满分!