Qqw*_*qwy 6 domain-name-system dkim
DKIM 记录由其选择器标识,该选择器可能是default
,dkim
或其他东西(并且可能有多个)。
当确保电子邮件的内容有效时,可以使用电子邮件中提到的 DKIM 选择器进行查找{selectorname}._domainkey.{hostname}
(例如:google._domainkey.protodave.com
)。
然而,当只是想确保某个域至少设置了一个 DKIM(以确保该域的管理员已尽职尽责)时,我们还没有选择器。
如果没有这个选择器,我们如何查询 DNS?有可能吗?
不,不可能直接查询,因为不存在通配符 DNS 查询之类的东西。当您检查最佳实践时,这不一定是问题。
目前的最佳实践是拥有所有 SPF + DKIM + DMARC。通过检查 DMARC,您也可以间接推断出有关 DKIM 的信息。如果管理员设置了 DMARC,他可能也知道 DKIM。
有两种可用的方法来获取完整的区域,但如果您成功使用其中任何一种方法,您就已经可以看出该域没有遵循 DNS 设置的最佳实践:
区域转移不应向任何人开放。如果是这样的话,这会给你结果:
dig axfr example.com @ns1.example.com | grep "_domainkey"
Run Code Online (Sandbox Code Playgroud)
引入DNSSEC 哈希验证拒绝存在NCES3
/NSEC3PARAM
以解决区域行走( RFC 5155 )。如果仍在使用,则会ldns-walk
给出结果。NSEC
ldns-walk example.com | grep "_domainkey"
Run Code Online (Sandbox Code Playgroud)
我不知道此验证的目的,但涵盖了我能想象到的所有情况:
如果是用于传入邮件,则您已经拥有带有或不带有 DKIM 签名的电子邮件,并且 DMARC 会告诉您是否应该有一个(如果没有)。拥有带有签名的邮件也是确保正确实施 DKIM 的唯一方法。
如果是在继续之前验证您的客户实践,验证表单可能会要求选择器。同样,通过检查实际邮件来实现服务自动化对于您和您的客户来说都会更容易。
小智 2
大多数域名服务器不允许将区域传输给任何人,这意味着如果您没有列入白名单,则无法列出区域的记录。尽管在极少数情况下,如果 DNSSEC 与 NSEC 一起使用,您可以使用区域行走,但这不太可能。
除了猜测选择器之外,除了检查 DMARC 是否有 DKIM 对齐之外,您实际上没有其他选择,这可能表明 DKIM 也已设置,但如果 DMARC 也未设置,则这是不确定的。