根据定义RFC4408,发件人策略框架仅检查信封发件人(又名MAIL FROM
)。From:
标头未经过测试。由于From:
标头的值通常显示在电子邮件客户端中,因此攻击者可能会使用随机信封发件人,该发件人甚至可能拥有所用 IP 的有效 SPF 记录。收件人只有在手动检查标头(由 MTA 设置为信封发件人的值)时
才会发现伪造的标头。From:
Return-Path:
那么,SPF 检查如何防止垃圾邮件或网络钓鱼?
答案1
SPF 本身并不能完全阻止垃圾邮件,因为正如您所指出的,它使用 MAIL FROM 域来加载 SPF 策略。由于攻击者可以操纵 MAIL FROM 以谋取利益,因此他们可以自由地使用他们控制的域中的 MAIL FROM,然后在 From: 标头中欺骗您的域。
当 SPF 与 DMARC 结合使用时,其才会真正有效。
DMARC 将查看邮件并查看其是否使用 SPF 或 DKIM 获得授权(只需其中一种)。在其中一个机制通过后,所有通过检查的域都会与 From: 域进行比较。如果任何这些域和 From: 域匹配,则它们被认为是一致的,并且从 DMARC 的角度来看该邮件被视为已获得授权。但是,如果对齐失败,则将应用您通过 DNS 发布的 DMARC 策略。
您可以选择要求将未通过 DMARC 的邮件发送到隔离/垃圾邮件文件夹系统,甚至要求直接拒绝这些邮件。
DMARC 还允许您请求接收者向您发送汇总报告,以便您了解您的电子邮件在全球范围内的处理情况。
Gmail、Yahoo、Hotmail 和许多其他组织已经参与 DMARC。
DMARC.org 有一系列资源可帮助你了解有关 DMARC 的更多信息。
还有Scott Kitterman 的 DMARC 配置助手
DMARC 并非万灵药;它无法阻止发件人:域不受您控制的垃圾邮件。但是,阻止攻击者欺骗您的域是一项高价值选择,因为它可以迫使攻击者使用其他更易于在您的垃圾邮件管道中进行智能过滤的策略。
答案2
与大多数安全问题一样,这种机制并不能完全预防问题,但它使坏人更难以克服。
在这种情况下,所提供的保护并不是电子邮件客户端中显示的,而是帮助接收方的邮件中继决定是否接受邮件(或可能将其标记为垃圾邮件)。这是在邮件到达最终客户端之前进行的。通过将发送中继的 IP 与发送域的 SPF 记录中包含的“允许”IP 进行检查,中继可以查看邮件是否来自已批准的 IP。
当然,如果你能伪造源 IP,或者针对 SPF 记录毒害目标中继的 DNS 查询,你就能击败系统。但这更难。