如果已经为 DKIM 设置了 DMARC,为什么还要为 SPF 设置 DMARC?

信息安全 电子邮件 垃圾邮件 dkim SPF dmarc
2021-08-14 21:03:55

我有 SPF 和 DKIM。我计划添加 DMARC 来告诉接收者期待 SPF 和/或 DKIM。我读过最好将 DMARC 与 SPF 和 DKIM 一起设置,但我不明白什么时候同时拥有它会比只拥有 DKIM 更好。在某些情况下,对于 SPF 和 DKIM 使用 DMARC 会比仅对 DKIM 使用 DMARC 更好地分类电子邮件?这种情况有多普遍?

1个回答

我认为您的问题没有简单的答案。SPF 和 DKIM 本身都可用于打击垃圾邮件,但与 SMTP 信封 (SPF) 或签名 (DKIM) 相比,它们错过了邮件标头中声明的发件人之间的对齐方式。只有 DMARC 提供了这种重要的对齐方式,并在顶部添加了如何处理故障的策略。

但是,通过允许 DKIM 或 SPF 提供必要的对齐 DMARC,成功欺骗其中之一就足够了。这意味着要么成功地滥用过于宽泛的 SPF 策略,要么利用通常以次充好的 DKIM 签名来更改邮件内容,同时保持签名完好无损。因此,通过只要求 SPF 或 DKIM 中的一个来成功 DMARC,攻击者可以专注于较弱的问题。

因此,一种建议可能是正确且严格地实施一种机制,而根本不实施另一种机制,这样可以从攻击者那里选择较弱的目标。在这种情况下,我倾向于实施 DKIM,但要正确实施:签署所有相关的邮件标头(有很多),对所有这些标头进行过度签名以防止标头重复,并确保已签名的邮件是 7 位干净的。有关这方面的更多信息,请参阅Breaking DKIM - on purpose and by Chance(免责声明:这是我自己的研究)。

仅实施 DKIM 的优点是可以集中资源来正确地做这件事。除此之外,如果实施得当,它可以提供更强的保护。但是,它们也是不使用 SPF 的一大缺点:SPF 比 DKIM 或 DMARC 实施得更广泛,因此反垃圾邮件解决方案仅实施 SPF 而不是 DMARC 和/或 DKIM 的可能性更高。虽然不同来源的数字差异很大,但在我访问的邮件中,大约 40% 的邮件被 SPF 覆盖,但只有大约 9% 有 DKIM 签名,大约 6% 有 DMARC 政策。

总之:最好的事情可能是同时拥有强大的 DKIM 签名和小而严格的 SPF 策略。正确地做到这一点并不像看起来那么简单。因此,对于一组更有限的资源,最好选择其中一个(推荐:DKIM)并完全跳过另一个,这样攻击者就无法选择选择较弱的问题。