只用 DKIM 签署域的一些电子邮件是不是很糟糕?

信息安全 电子邮件
2021-08-21 04:39:15

如果我签署域电子邮件的子集是否可以,或者这是一个全有或全无的游戏?

我们使用亚马逊的 Simple-Email-Service 发送电子商务电子邮件。

我们想与DKIM签署这些协议。

同一域也用于此电子商务操作背后的公司的所有电子邮件地址。

由于一些 IT 限制,看起来我们在未来几个月内都无法签署员工电子邮件。

垃圾邮件保护服务器是否查看域并查看 DKIM 公钥并说“好的,所有电子邮件都必须签名”,或者他们是否逐个查看电子邮件,如果找到签名,那么他们会去寻找公钥?

3个回答

DKIM 不会告诉您邮件是否为垃圾邮件(尽管设置起来需要更多工作,但有很多垃圾邮件都使用有效的 DKIM 签名进行签名)。DKIM 是关于身份的——我是否知道这条消息来自指定的发件人(并且它没有以任何有意义的方式被更改)?

没有好的反垃圾邮件服务会仅仅因为缺少 DKIM 签名而拒绝邮件。如果存在无效签名,则需要考虑(即,这可能是网络钓鱼);但是,在这种情况下拒绝是有风险的(因为签名可能在传输过程中被破坏),并且大多数反垃圾邮件过滤器不会这样做(至少默认情况下)。

使用 DKIM(没有其他任何东西)是为了允许邮件客户端向用户指示消息发送者已经过验证(就像浏览器向用户指示流量是通过 SSL 发送的,或者证书是受信任的)。

因此,简单的答案是肯定的,即使您不能全部签名,对消息进行签名也很有用。您不能告诉用户他们应该只信任已签名的消息,但他们至少可以信任其中的一些。(不幸的是,还没有很多邮件客户端公开这些信息,而且用户还没有接受过查找它的培训,所以好处并不大 - 还没有)。

第二个问题的简单答案是否定的,任何体面的垃圾邮件过滤器都会忽略 DKIM 签名的缺失。

除此之外,还有两种方法可以扩展您对 DKIM 的使用,当仅对某些消息进行签名时,它们确实会产生影响。

Author Domain Signing Practices (ADSP) 是 DKIM 的可选扩展,您可以在其中指定未签名消息的处理方式。具体来说,您可以从三个选项中进行选择:

  • 未知(如果您不使用 ADSP,这是您得到的行为) - 域签署部分或全部邮件(或者没有,我想,虽然设置记录会很奇怪)
  • all - 域签署所有邮件。收件人(或他们的反垃圾邮件过滤器)可以选择如何处理没有有效签名的邮件;通常这些会被放入某种隔离或以某种方式标记,以便用户意识到他们可能是欺诈性的。
  • 可丢弃- 域对所有邮件进行签名,并指示收件人(或其反垃圾邮件过滤器)静默丢弃任何没有有效签名的邮件。这与“全部”相同,只是发件人而不是收件人决定如何处理没有有效签名的消息。反垃圾邮件(或反网络钓鱼,在这种情况下)过滤器不必遵守 ADSP 指令,但它们很可能会遵守。

所以现在,您应该确保您没有 ADSP 记录,或者如果您有,则将其设置为“未知”。一旦您能够签署所有消息,您就可以根据您想要的行为移至“全部”或“可丢弃”。

与 ADSP 类似(但更新)的是基于域的消息身份验证、报告和一致性(DMARC)。DMARC 合并了针对 SPF 故障和 DKIM 故障的策略,并合并了有关向(假定的发送者域)提供有关故障的反馈的信息。您的选择与 ADSP 基本相同,但工作方式更加灵活。规范提供的关于如何开始使用 DKIM/SPF 的示例大致如下:

  1. 部署 DKIM 和 SPF。
  2. 发布带有反馈报告地址的“无”的 DMARC 政策(这就像 ADSP 的“未知”,除了您还声明您想要有关失败的反馈,所以如果它们真的来自您,您可以弄清楚如何修复问题)。
  3. 调整您的 DKIM/SPF 使用,直到反馈报告表明您的所有邮件都经过了适当的身份验证。
  4. 将 DMARC 策略强度提高到“隔离”一小部分(这指示接收者隔离任何不符合策略的邮件,但仅针对随机选择的邮件百分比)。
  5. 随着您对所有邮件都经过适当的身份验证更有信心,逐渐增加百分比(至 100%)。
  6. 将 DMARC 策略设置为“拒绝”(同样从小百分比开始,随着时间的推移将其提高到 100%),这样不符合策略的消息不会被隔离,而是被简单地拒绝。

DMARC 是新的,因此目前只有少数反垃圾邮件过滤器在使用它,但随着时间的推移(可能)会增加,而且现在采用它几乎没有成本。

如果您选择使用 DMARC,那么现在您可以进入第 2 步,然后在您设法让所有邮件签名时继续执行这些步骤。

我认为这个问题没有明确的答案。有这么多垃圾邮件过滤器,它们的工作方式各不相同,因此很难预测它们将如何处理这种情况。

我的直觉是,如果您的 DNS 表明它支持 DKIM,但该邮件没有任何 DKIM 签名,那么您肯定会增加您的公司邮件被阻止的机会。例如,Gmail 似乎会检查 ebay 和 paypal然而,这是一个相当具体的案例,我无法想象 Google 可以将其应用于任何域,因为并非所有域都可以保证所有电子邮件都经过 DKIM 签名。

RFC 4870声明签名域(您)可以Outbound Signing Policy通过 DNS 为您的电子邮件指定一个,具体而言:

o = 出站签名策略(“-”表示该域签署所有电子邮件;“~”是默认值,表示该域可能使用 DomainKeys 签署某些电子邮件)。

所以理论上,垃圾邮件过滤器应该尊重这一点,如果你指定不是所有的电子邮件都被签名。

但是,此 RFC 已被RFC 4871取代- 我在其中找不到类似的部分...

我认为这只是说明情况可能是多么模糊,以及一个垃圾邮件过滤器如何决定采取与另一个完全不同的行动......

正如 Tony 所提到的,当您想要实施 DMARC 时,在域的所有电子邮件上使用 DKIM 变得很重要。在他回答您的问题时,DMARC 变得更加相关,雅虎和 AOL 都为其域设置了拒绝政策。主要的 ISP(谷歌、雅虎、康卡斯特等)现在也都支持 DMARC。

DMARC 的问题在于了解与 SPF 和 DKIM 不一致的发送源。我们刚刚在http://dmarc.postmarkapp.com发布了一个免费的实验室项目来帮助解决这个问题看看有多少来源代表您的域发送电子邮件真的很有趣。

因此,随着 DMARC 的快速采用,明确的答案是“是的,只为域签署一些消息是不好的”。