最终编辑:我似乎对 DKIM 完全错误,签名域不必与发件人域相同,因此我的问题的整个前提是有缺陷的。非常感谢保罗指出我的错误!
下面的原始问题:
我已尝试阅读 SPF 和 DKIM,但我不明白同时使用两者的意义,至少在打击垃圾邮件的情况下(伪造的发件人地址,这可能导致我的电子邮件服务器/域被列入黑名单)。据我所知,仅 DKIM 就应该完成 SPF 应该完成的工作。
到目前为止,我的理解如下:
- 发送电子邮件时,发件人可以声明他们想要的任何内容(例如虚假发件人地址)
- DKIM 允许检测伪造的发件人电子邮件地址,因为您可以根据 DNS TXT 记录中的公钥验证 DKIM 签名。
- SPF 允许您验证电子邮件是从有权为给定发件人地址发送电子邮件的邮件服务器发送的。
我不明白的是:除非 DKIM 私钥以某种方式受到损害,否则仅 DKIM 验证就足以验证电子邮件是从授权的电子邮件服务器发送的,否则电子邮件服务器将不会用于签署电子邮件的私钥。
我在这里看到了一个非常相似的问题的答案:https ://serverfault.com/a/780248/154775 ,其中作者声称 DKIM 无法防止重放攻击。我会承认这一点,但我发现这是一个极端情况,我认为迄今为止最大的问题是带有虚假发件人地址的垃圾邮件 - DKIM 应该可以自己轻松地防止这种情况。
与仅 DKIM 相比,是否存在 SPF 提供额外保护的重放攻击以外的场景?
编辑:我用粗体标记了我的问题的核心,以澄清我到底想要回答什么。