RPT-001等级 1 · 入门邮件安全阅读约 5 分钟

SPF、DKIM 和 DMARC 详解:防止他人冒用您的域名发邮件

任何人都可以把您的域名填进邮件的“发件人”字段。SPF、DKIM 和 DMARC 是三条 DNS 记录,决定其他人是否相信这封邮件。

Iron Cyber Tech 团队

01问题所在:电子邮件没有内置的身份验证

最初的电子邮件系统允许发件人在“发件人”一行写任何地址。攻击者利用这一点发送假发票、密码重置和“紧急”请求,看起来就像来自您的公司。这些邮件并不是从您的服务器被入侵发出的,只是被伪造了。

三条 DNS 记录可以堵上这个漏洞。您只需在 DNS 服务商处添加一次,Gmail、Outlook 等收件服务器就会在每封邮件上检查它们。

02SPF:谁可以代表您发信

SPF 是允许为您的域名发送邮件的服务器列表。它是域名本身上的一条 TXT 记录。

example.com 上的 TXT 记录
v=spf1 include:_spf.mx.cloudflare.net -all

从左到右阅读:使用 SPF 第 1 版,信任 include 列出的内容,-all 表示“拒绝其他所有来源”。~all 是较温和的版本,会把其他邮件标记为可疑而不是直接拒绝。

03DKIM:每封邮件上的签名

使用 DKIM 时,您的邮件服务商会用私钥为每封发出的邮件签名。对应的公钥放在您的 DNS 中,收件方可以据此验证邮件未被篡改,且确实经由您的服务商发出。这条记录通常不需要自己编写:服务商会给出要粘贴的确切名称和值。

selector1._domainkey.example.com 上的 TXT 记录
v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A...

04DMARC:把一切串起来的策略

DMARC 告诉收件方:当邮件未通过与可见“发件人”域名一致的 SPF 和 DKIM 检查时该如何处理,以及把相关报告发送到哪里。

_dmarc.example.com 上的 TXT 记录
v=DMARC1; p=none; rua=mailto:reports@example.com
  • p=none:只观察并发送报告,不拦截任何邮件。
  • p=quarantine:可疑邮件进入垃圾箱。
  • p=reject:伪造的邮件被完全拒收。

05检查您自己的域名

在下方输入您的域名。检查在您的浏览器中针对公开 DNS 运行,不会保存任何内容。

实时模块

邮件与 DNS 检测

有人能冒充您的域名发送邮件吗?检查 SPF、DMARC、DNSSEC 和 CAA。

06安全的推行计划

  1. 添加或修正 SPF 记录,使用 ~all。
  2. 在邮件服务商处启用 DKIM,并发布它提供的记录。
  3. 添加 DMARC,设为 p=none,并填写一个您会阅读的报告地址。
  4. 连续两到四周报告正常后,改为 p=quarantine。
  5. 确有把握时,改为 p=reject,并把 SPF 改成 -all。

要点

  • SPF 列出谁可以发信,DKIM 证明邮件未被篡改,DMARC 决定验证失败时怎么办。
  • DMARC 从 p=none 开始,逐步收紧。
  • 每个域名只有一条 SPF 记录,并保持在 10 次查询以内。

想让我们也看看您的网站吗?给我们留言,我们很乐意帮忙。

联系我们

更多信号

← 全部信号