WhiteMail
返回博客
·WhiteMail 安全团队#explainer#glossary#email-authentication

安全术语解析——SPF、DKIM、DMARC,以及为什么“通过”不等于“安全”

这系列报告中反复出现一个主题:“通过认证”不代表“安全”。本文将用平实的语言,解析三种电子邮件认证标准各自实际检查了什么,以及缺口究竟在哪里。

三种检查

  • SPF(发件人策略框架, Sender Policy Framework) 回答的问题是:这封邮件是否从域名所有者授权的服务器发出?域名会公开允许的发送 IP 列表,收件方则检查连接而来的服务器是否在该列表之中。SPF 验证的是路径,而不是人。
  • DKIM(域名密钥识别邮件, DomainKeys Identified Mail) 回答的问题是:消息是否由该域名签署,且在传输过程中未遭篡改?发件人使用私钥签署邮件头与正文,收件方则以公开的公钥验证。DKIM 证明的是签名的完整性与来源,而非意图。
  • DMARC 将前两者结合并加入策略。它会确认你实际看到的 From 域名,是否与通过 SPF 或 DKIM 的域名一致(align),并指示收件方在验证失败时该如何处理(none / quarantine / reject)。DMARC 补上了“可见 From 遭伪造”的缺口。

能抓到什么,又抓不到什么

这三者合在一起,能阻挡相当多的域名伪造(Domain Spoofing)。外部人士无法轻易伪造出一封看似来自受保护域名的邮件。

但以下情况它们无法处理。

  • 真实却遭盗用的账号(VEC) — 因为是真正的域名,所有检查都会通过。
  • 相似域名 — 一个只是外观相似的不同域名,能完美通过属于它自己的认证。
  • 意图 — 这些标准没有一个会读取邮件实际要求了什么。

对任何阅读邮件头的人来说,这正是关键所在。认证只能告诉你信封是真的,却无法告诉你信封里的要求是否正当。WhiteHat 的 SA-02 会检查这三项标准,但它刻意只是四个代理中的其中一个——因为通过这些检查是必要条件,而非充分条件。

一句话总结

SPF:是被授权的服务器吗?DKIM:已签名且未遭篡改吗?DMARC:可见的发件人是否一致,或该如何处理?三者合起来:信封是真的。仍未回答的问题:你该不该照这封信要求的去做?


想同时看到认证结果、身份、链接与意图的分析吗?把邮件粘贴到分析控制台试试看。