DKIM 常见问题
什么是 DKIM?
DKIM 是 DomainKeys Identified Mail 的缩写,它是一种邮件验证的方法,用来检测伪造的头域和邮件内容。它使得接收者能够检查邮件头域和内容是否在传输过程中曾经被篡改。
为什么使用 DKIM?
DKIM 使得接收者能够检查邮件头域和内容是否在传输过程中曾经被篡改。如果是这样的话,DKIM 检查会返回 fail 结果,表明邮件完整性已经被破坏。
在 DMARC 的层面,可以指定 p=reject 策略来拒绝 DKIM 验证失败 (以及 SPF 验证失败) 的邮件。这样的话,可以阻止恶意软件抵达用户邮箱。
谁对邮件进行签名?
邮件由发起 SMTP 会话的发送服务器来签名。服务器使用保存在本地的密钥对邮件进行签名。
DKIM 签名如何工作?
DKIM 签名包含以下的步骤:
- 选择需要包含到数据中的头域以及消息体;
- 计算数据的哈希值,包括头域和消息体;
- 使用私有密钥对哈希值进行加密;得到的结果被称为"签名";
- 添加一个包含该签名的 DKIM-Signature 头域到该邮件。
谁校验邮件?
接收服务器负责校验邮件。
校验完成以后,返回这些值中的一个 (到上层的模块,比如 DMARC):none, pass, fail, policy, neutral, temperror, 以及 permerror。
DKIM 校验如何工作?
当邮件抵达目的主机时,接收服务器检查邮件中是否存在 DKIM-Signature
头域。
如果找到 DKIM-Signature
头域的话,服务器通过下面的步骤验证邮件的真实性:
- 根据 DKIM-Signature 中使用
s=
指定的选择子,在 DNS 中查找域名上的 DKIM 记录; - 如果找到的话,从 DKIM 记录中提取公钥;
- 根据
a=
标签指定的算法,计算h=
标签指定的数据的哈希值; - 使用公钥来解码签名,来找到发送者计算的哈希值;
- 如果第 4 步中的哈希值和第 3 步中的一样,校验通过,这意味这邮件没有经过篡改;否则校验失败,邮件已经被篡改。
了解更多关于 DKIM 校验的信息。
为什么会有多个 DKIM 签名?
当邮件被转发时,该邮件会包含多个 DKIM 签名。了解更多。
Protect Business Email & Improve Email Deliverability
Get a 14 day trial. No credit card required.
Create Account