本文へスキップ
ecdsa.com

DKIM(DomainKeys Identified Mail)

送信ドメインがメッセージの選択したヘッダーと本文に署名し、公開鍵を DNS で公開する RFC 6376 のメール認証規格で、受信者はメッセージがそのドメインから改変されずに届いたことを検証できます。
別表記DomainKeys Identified MailDKIM signatureRFC 6376

署名者は DKIM-Signature ヘッダーを追加し、そこに自身のドメイン(d=)、セレクター(s=)、署名したヘッダー(h=)、正規化した本文のハッシュ(bh=)、署名(b=)を記載します。受信者は selector._domainkey.domain の TXT レコードから鍵を取得し、本文ハッシュを再計算して、正規化したヘッダーに対する署名を検証します。アルゴリズムは rsa-sha256 と ed25519-sha256(RFC 8463)です。RFC 8301 は rsa-sha1 を禁止し、1,024 ビット以上の鍵を必須とし、2,048 ビットを推奨しています。

DKIM が認証するのは署名ドメインであり、表示される From アドレスではありません。DMARC は、アライメントによってこの 2 つを結び付けます。中継者が署名対象の内容を変更すると(メーリングリストのフッター、件名のタグ、一部のセキュリティゲートウェイ)署名が壊れます。ARC が存在するのはこのためです。また、有効な署名付きメッセージは新しい受信者に再送できてしまいます(DKIM リプレイ)。

2025年2月に憲章が改定された IETF の DKIM ワーキンググループは、すべてのホップで署名し、エンベロープを署名に結び付ける後継規格(DKIM2)を設計しています。2026年の時点でも、DKIM2 はまだインターネットドラフトの段階でした。DKIM デバッガーは、ブラウザー上でメッセージを段階的に検証します。

規格と参考文献

すべての用語