什么是 DKIM 记录?
DKIM 为你的外发邮件添加一个加密签名;接收方用你发布在 DNS 中 selector._domainkey.your-domain 的公钥来验证它。由于 DNS 无法列出有哪些选择器,IPeek 会探测 Google、Microsoft、Amazon SES 等主流服务商所使用的选择器。
DKIM 签名与验证如何工作
当你发送邮件时,你的服务商会用私钥对选定的邮件头和正文进行签名,并在邮件中添加一个 DKIM-Signature 头。接收方从该头读取 d=(域名)和 s=(选择器)标签,到 selector._domainkey.d 取对应的公钥,并验证签名。如果验证通过,说明内容在传输中未被篡改,且确实来自该域名的密钥持有者。私钥始终保留在发送服务器上,只有公钥存放在 DNS 中。
DNS 中的选择器与公钥
选择器让一个域名能够发布多个 DKIM 密钥——便于密钥轮换或区分不同的发送服务。公钥是位于 selector._domainkey.your-domain 的一条 TXT 记录,例如 google._domainkey.example.com,内容为 v=DKIM1; k=rsa; p=<base64 公钥>。由于 DNS 没有提供选择器目录,你无法直接查询某域名使用了哪些选择器。正因如此,IPeek 会探测 Google(google)、Microsoft、Amazon SES 等主流服务商常用的选择器,来定位你已发布的密钥。
DKIM 与 SPF 和 DMARC 的关系
在三者中,DKIM 是内容验证层。SPF 按 IP 授权发送主机,而 DKIM 通过加密手段证明邮件的头和正文未被篡改,并将其与一个签名域名绑定。随后 DMARC 检查 DKIM 签名域名是否与可见的 From 地址对齐。DKIM 相比 SPF 有一个关键优势:由于签名随邮件一同传递,它在转发后依然有效,而转发往往会破坏 SPF。要获得强送达率,请发布 DKIM 并在 DMARC 下让它对齐。