SPF、DKIM、DMARC 能挡住 AI 生成的钓鱼邮件吗?边界在哪?

先说清楚它们各自验证什么
  • RFC 7208 Sender Policy Framework (SPF), Version 1:验证发送 IP 是否被该域授权,作用于信封发件人域。
  • RFC 6376 DomainKeys Identified Mail (DKIM) Signatures:验证邮件在传输中未被篡改,且签名域拥有对应密钥
  • RFC 7489 Domain-based Message Authentication, Reporting, and Conformance (DMARC):在前两者之上要求与头部 From 域对齐,并给出策略与报告机制。
  • RFC 8601 Message Header Field for Indicating Message Authentication Status:把上述判定结果记录在 Authentication-Results 头部,供后续环节使用。

共同的边界:它们验证的是「这封信确实来自它声称的域」,不验证「这个域是不是好人」,更不验证「这封信的要求是否合理」。把这句话理解透,就知道该在哪里补。

能挡住什么:直接冒充本域

若本域发布了 RFC 7489 Domain-based Message Authentication, Reporting, and Conformance (DMARC) 的拒收策略并达成对齐,攻击者直接用本域作为 From 发信的路径基本被封死。这一类攻击(伪装成公司内部通知、伪装成本域高管)是危害最大也最常见的形态之一,能挡住它已经非常有价值。

CISA Binding Operational Directive 18-01 正是要求联邦机构完成此类策略收敛,NIST SP 800-177 Rev.1 Trustworthy Email 也把发件人鉴别列为可信邮件的基础技术要求。这是地基,不是可选项。

挡不住场景一:攻击者用自己的域,且鉴别完全通过

这是最常被误解的一点。攻击者注册一个近似域名,为它正确配置 SPF、DKIM、DMARC,鉴别结果全部通过。协议层没有任何异常——因为这封信确实来自它声称的那个域,只不过那个域是攻击者的。

需要补的控制:

  • 近似域名检测:与本域及重要合作方域名的字符相似度、同形字符替换、增删连字符、不同顶级域。
  • 域名注册时间:新注册域用于商务往来是强信号。
  • 首次通信标记:该域与本组织此前是否有通信历史。
  • 显示名冒充检测:显示名匹配内部人员但域名为外部。

这四项都不属于协议层,必须在网关侧另行实现。它们的实现成本不高,但覆盖的正是鉴别的盲区。

挡不住场景二:合法账号已失陷

当供应商或本方员工的邮箱被控制后,攻击者从真实账号、真实域名、真实历史线程中发信。鉴别全部通过,发件人确实是本人,通信历史完整,语气用词一致——所有基于「这封信是不是真的来自他」的判据在此全部失效。

AI 进一步降低了这类攻击的门槛:接续既有线程、模仿既往行文风格所需的工作量大幅下降。

需要补的控制:身份侧按 NIST SP 800-63B Digital Identity Guidelines: Authentication and Lifecycle Management 部署抗钓鱼多因素认证以降低失陷概率;运营侧对自动转发规则变更、异常登录设置告警;流程侧对资金与权限类请求强制带外核验(这是唯一能在账号已失陷时仍然生效的防线)。

挡不住场景三:间接邮件流导致的判定失真

邮件列表、自动转发、第三方代发会改写或中转邮件,RFC 7960 Interoperability Issues between DMARC and Indirect Email Flows 系统描述了这些间接流与 DMARC 的互操作问题。后果是双向的:合法邮件可能鉴别失败被误拦,而对间接流放宽处理又可能被攻击者利用。

处理方式:对确需支持的间接流,采用 RFC 8617 The Authenticated Received Chain (ARC) Protocol 的 ARC 机制保留并传递上游鉴别结论;对 ARC 的信任必须限定在明确的签名域白名单内,不可无条件信任任意 ARC 链——否则等于开了后门。必要时可结合 RFC 9057 Email Author Header Field 定义的 Author 头部保留原始作者信息。

挡不住场景四:不依赖发件域的载荷

还有一类攻击的落点根本不在发件域上:来自合法邮箱服务的免费账号、通过合法文档协作平台发出的分享通知、正文无链接而把载荷放在附件或二维码中。

这些邮件的鉴别结果通常完全正常,因为它们确实由那些平台发出。此时唯一的判据只剩内容与上下文,需要靠附件与 URL 的深度检查、以及请求语义层面的判断来覆盖。

正确的定位与优先级
  1. 先做鉴别:本域发布策略并收敛到拒收,入站执行校验并记录 RFC 8601 Message Header Field for Indicating Message Authentication Status 结果。这是确定性防护,优先级最高。
  2. 再补鉴别盲区:近似域、新注册域、首次通信、显示名冒充四项检测。
  3. 再补身份侧:抗钓鱼多因素认证与失陷检测。
  4. 再补流程侧:资金与权限类请求的带外核验与熔断条件。
  5. 最后才是内容判分:作为概率性增强,不作为地基。

把顺序搞反——先上内容判分、后补鉴别——是最常见也是代价最高的错误。

参考:RFC 7489 Domain-based Message Authentication, Reporting, and Conformance (DMARC)RFC 7960 Interoperability Issues between DMARC and Indirect Email FlowsRFC 8617 The Authenticated Received Chain (ARC) ProtocolNIST SP 800-177 Rev.1 Trustworthy Email