DKIM 记录由其选择器标识,该选择器可能是default
,dkim
或者其他内容(可能有多个)。
当确保电子邮件的内容有效时,可以使用电子邮件中提到的 DKIM 选择器进行查找{selectorname}._domainkey.{hostname}
(例如google._domainkey.protodave.com
:)。
但是,当只是想确保一个域至少设置了一个 DKIM(以确保该域的管理员已尽职尽责)时,我们还没有选择器。
如果没有这个选择器,我们如何查询 DNS?这可能吗?
答案1
不,无法直接查询,因为没有通配符 DNS 查询。由于您正在检查最佳实践,因此这不一定是个问题。
目前的最佳做法是全部采用 SPF + DKIM + DMARC。通过检查 DMARC,您也可以间接推断出有关 DKIM 的一些信息。如果管理员设置了 DMARC,他可能也知道 DKIM。
有两种方法可以获取完整的区域,但是如果您成功使用其中任何一种,则可以判断该域未遵循 DNS 设置方面的最佳实践:
区域传输不应向任何人开放。如果是,这将给出结果:
dig axfr example.com @ns1.example.com | grep "_domainkey"
DNSSEC 哈希认证否认存在 介绍
NCES3
/NSEC3PARAM
解决区域行走(RFC 5155)。 这ldns-walk
NSEC
如果仍在使用就会产生结果。ldns-walk example.com | grep "_domainkey"
我不知道这种验证的目的,但我能想到的所有情况都涵盖了:
如果是接收邮件,您已经拥有带有或不带有 DKIM 签名的电子邮件,如果没有,DMARC 会告诉您是否应该有签名。拥有带有签名的邮件也是确保 DKIM 正确实施的唯一方法。
如果是在继续操作之前验证客户的做法,验证表单可以要求选择器。同样,通过检查实际邮件来自动化服务对您和您的客户来说都更容易。
答案2
确保域名至少设置了一个 DKIM(以确保该域名的管理员已尽职尽责)
如果你想做真正的尽职调查,请管理员从该域向你发送电子邮件,因为DKIM DNS 的存在单独录制并不意味着 DKIM 实际上已在其邮件服务器上正确实施。
这将为您提供选择器和许多其他您需要的东西,以便正确检查其设置。
可靠的电子邮件传递需要许多其他设置,请参阅此规范 问答以及链接中诸如 DMARC、SPF、反向 DNS 记录、黑名单等的示例。
答案3
大多数名称服务器不允许将区域传输给任何人,这意味着如果您不在白名单中,您就无法列出区域的记录。虽然在极少数情况下,如果将 DNSSEC 与 NSEC 一起使用,您可以使用区域行走,但这种情况不太可能发生。
除了猜测选择器之外,您实际上没有其他选择,只能检查 DMARC 是否与 DKIM 对齐,这可能表明 DKIM 也已设置,但如果 DMARC 也没有设置,则无法得出结论。