DKIM

什么是DKIM签名?

DKIM-Signature标头是接收方检查的证据。

[快速解答]

A DKIM signature is the DKIM-Signature header added to an email. It contains the signing domain (d=), selector (s=), algorithm (a=), signed headers (h=), body hash (bh=) and the signature itself (b=).

主要事实

  • ›d= must align with the From domain for DMARC.
  • ›bh= is a hash of the body; any change after signing breaks it.
  • ›与SPF不同,转发通常会保留DKIM 。

由EmailAuth研究团队审核

A DKIM-Signature is a header your sending server adds to each message.它在消息正文和一组选定的标头上携带加密签名,以及接收者验证它所需的信息:哪个域对邮件进行了签名、哪个选择器持有公钥以及使用了哪种算法。 The receiver reads this header, fetches your public key from DNS , and confirms the signature. A pass means the mail was authorized by your domain and was not altered in transit.

DKIM-Signature内的标签

The header is a set of tag=value pairs separated by semicolons. Each tag tells the receiver something it needs to verify the message.最重要的是这些。

  • v: DKIM版本,当前为 1。
  • a:签名算法,例如rsa-sha256。
  • d: the signing domain, the domain that takes responsibility for the message.
  • s: the selector, which points to the public key in DNS.
  • bh:消息体的哈希值。
  • b: the actual cryptographic signature over the headers and body hash.
  • h:已签名的标头字段列表,例如 from:subject:date:to。

DKIM-Signature标头示例

v=1; a=rsa-sha256; d=example.com; s=s1; h=from:subject:date:to; bh=frcCV1k9oG9...; b=dzdVyOfAKCdLXd...

How verification works

当消息到达时,接收者读取 d= 域和 s= 选择器,然后在 s 处查找公钥。 _domainkey.d ,例如s1._domainkey.example.com 。它重新计算主体哈希并将其与 bh 标签进行比较,然后使用公钥根据 h 中列出的签名标头检查 b 签名。如果两者匹配, DKIM通过。如果正文或任何签名标头在发送后发生更改,则哈希值会有所不同并且验证会失败,这就是DKIM捕获篡改的方式。

h 和 bh 标签的作用

The bh tag is a hash of the body, so any change to the message content breaks it. The h tag lists which headers are protected, and the b signature covers exactly those headers. Signing From is essential, since that is the address recipients see.签名者通常会让正文哈希容忍尾随空格,因此普通邮件处理不会破坏签名,同时仍然捕获真正的编辑。

签名、对齐和DMARC

有效的DKIM签名是必要的,但对于DMARC来说还不够。 DMARC还会检查 d= 域是否与您可见的发件人域一致。当它们匹配时, DKIM已对齐并且可以自行满足DMARC 。 SPF提供第二条对齐路径。由于DKIM签名随邮件一起传输,因此在SPF中断的情况下,它通常不会被转发,这使得DKIM对齐对于到达收件箱很有价值。

随着时间的推移观察您的签名

当供应商更改签名、选择器退役或密钥过时时,签名可能会悄然中断。 EmailAuth会读取真实邮件上的DKIM-Signature 、监控您的选择器,并在收件人拒绝您的邮件之前标记弱密钥或过期密钥。免费的域扫描会报告您的活动选择器、密钥强度以及DKIM是否与DMARC保持一致,以便您可以确认每个签名路径是否正常。

常见问题

DKIM-Signature中的 b 标签是什么意思?

b 标签保存实际的加密签名,使用您的私钥对签名标头和主体哈希进行计算。 The receiver verifies it with the public key from DNS . If the b value does not check out, DKIM fails and the message is treated as unsigned or suspect.

What is the difference between the bh and b tags?

bh 标签只是消息正文的哈希值,因此对内容的任何更改都会破坏它。 b 标签是所选标头加上主体哈希的签名。接收方首先检查 bh,然后验证 b,两者都必须通过才能使DKIM成功。

DKIM签署哪些标头?

h 标签列出了签名的标头,通常是“发件人”、“主题”、“日期”和“收件人”,但确切的集合是由签名者选择的。发件人是最重要的,因为它是收件人看到的地址。发送后对签名标头进行的任何更改都将破坏验证。

为什么DKIM有时转发后仍然通过?

DKIM-Signature在邮件内传输,因此即使发送 IP 发生变化,转发的电子邮件也会保留其签名。只要签名的正文和标头保持完整,验证仍然可以通过。这就是为什么DKIM比SPF更能经受住转发,而 SPF 在发送服务器更改时会中断。

Why does DKIM fail?

常见原因是公钥丢失或输入错误、选择器不匹配,或者邮件列表或安全网关在签名后更改了消息。

[ DKIM 指导 ]

知识库的一部分DKIM · 48 指南

企业出处

为什么顶级金融机构和政府 退役了他们的电子邮件安全仪表板。

传统的电子邮件身份验证平台会向您出售仪表板并要求您的工程师来完成这项工作。在高风险环境中,手动监督意味着延迟执行、配置漂移和不受监控的影子域。

EmailAuth是代理电子邮件来源平台。 我们的代理人强制执行 p=reject,保持第三方发件人一致并将您的域名移至完整状态 RFC 9989 合规性、新的DMARC标准,以及人机交互审核能力。

政府 大型企业 一级金融机构

SaaS · 专用租赁 · 气隙本地部署 · BYOK 加密

请参阅您自己的域上的EmailAuth

开始为期 14 天的概念验证。我们绘制每个发件人的地图,量化您的暴露程度,并为您提供全面执行的安全途径。