DKIM(DomainKeys Identified Mail) でぃーけーあいえむ
簡単に言うとこんな感じ!
メールに「本物の差出人が送りました」という電子署名を付けて、受け取った側が「確かに本物だ」と確認できる仕組みだよ!手紙に社判と印鑑を押すイメージで、なりすましメールを見破るための技術なんだ!
DKIMとは
DKIM(DomainKeys Identified Mail) は、送信されたメールが正規のドメイン所有者によって送られたものかどうかを検証するための電子署名技術です。メールの本文やヘッダーの内容を元に生成した署名データをメールに付加することで、受信側が「このメールは本当に〇〇.comのサーバーから送られた、改ざんされていない正規のメールだ」と確認できるようになります。
DKIMが登場する以前、電子メールには差出人を証明する仕組みがほとんどなく、なりすましメール(フィッシング詐欺)や迷惑メールが横行していました。DKIMはこれを技術的に抑止するために設計されており、現在では大手メールサービス(Gmail・Microsoft 365など)が標準的に対応しています。
DKIMは単体でも効果がありますが、SPF(送信元IPアドレスを検証する仕組み)やDMARC(SPF・DKIMの結果に基づいてポリシーを適用する仕組み)と組み合わせて使うことで、より強力なメール認証基盤が構築できます。
DKIMの仕組み・構造
DKIMは「公開鍵暗号方式」を応用しています。送信側が秘密鍵で署名し、受信側がDNSに公開された公開鍵で検証するという流れです。
| ステップ | 場所 | 内容 |
|---|---|---|
| ① 鍵ペアの生成 | 送信側(管理者) | 秘密鍵・公開鍵のペアを作成する |
| ② 公開鍵をDNSに登録 | 送信ドメインのDNS | TXTレコードとして公開鍵を公開する |
| ③ メール送信時に署名 | 送信メールサーバー | 秘密鍵を使ってメールに署名(DKIM-Signatureヘッダーを付加)する |
| ④ 受信時に署名検証 | 受信メールサーバー | DNSから公開鍵を取得し、署名を検証する |
| ⑤ 検証結果の判定 | 受信メールサーバー | 一致すれば「正規メール」、不一致なら「疑わしいメール」として処理 |
DKIMヘッダーの例
メールに付加される DKIM-Signature ヘッダーは以下のような形式です。
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=example.com; s=mail2024;
h=from:to:subject:date:message-id;
bh=47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=;
b=AbCdEf1234...(署名データ)
主なパラメーターの意味:
| パラメーター | 意味 |
|---|---|
d= | 署名に使うドメイン名 |
s= | セレクター(DNSで公開鍵を引くための識別子) |
h= | 署名の対象にしたヘッダー項目 |
bh= | メール本文のハッシュ値 |
b= | 署名データ本体 |
覚え方:「DKIMは手紙の封蝋(ふうろう)」
昔の手紙は封筒の封をするときに蝋(ろう)で封印し、その上に家紋の判を押していました。受け取った相手は「この判が本物なら、差出人が確かにこの内容で送った」と確認できる。DKIMもまったく同じ発想で、メールという手紙に差出人ドメインの「電子封蝋」を押す技術です。
歴史と背景
- 2004年 — Yahoo!が「DomainKeys」、Cisco が「Identified Internet Mail」をそれぞれ提案
- 2005年 — 両技術を統合し「DomainKeys Identified Mail(DKIM)」として共同開発開始
- 2007年 — IETF(Internet Engineering Task Force)が RFC 4871 として標準化
- 2011年 — RFC 4871 を改訂した RFC 6376 が発行(現行の主要標準)
- 2012年 — DMARCの策定によりDKIM・SPFが三位一体のメール認証基盤として普及加速
- 2022年〜 — GmailやYahoo!メールが大量送信者(1日5,000通以上)に対してDKIM設定を必須要件として要求し、企業での導入が急増
SPF・DKIM・DMARCの関係
メールセキュリティの3つの技術は、それぞれ異なる視点から「このメールは本物か」を検証します。
DKIMの限界と注意点
| 項目 | 内容 |
|---|---|
| 署名の対象 | 署名時に指定したヘッダー・本文のみ。署名対象外の部分は改ざん検知できない |
| 転送時の問題 | メーリングリストやメール転送で本文が変更されると署名が無効になることがある |
| なりすましの完全防止 | DKIMはドメインを検証するが「From:に表示される表示名のなりすまし」は防げない(DMARCで補完) |
| 鍵管理 | 秘密鍵が漏えいすると悪用されるため、定期的なローテーション(鍵の更新)が必要 |
関連する規格・RFC
| 規格・RFC番号 | 内容 |
|---|---|
| RFC 6376 | DKIMの現行標準仕様(2011年。RFC 4871を廃止・改訂) |
| RFC 4871 | DKIMの初版標準仕様(2007年。現在はRFC 6376に置き換え) |
| RFC 8301 | DKIMで使用する暗号アルゴリズムの更新(SHA-1廃止・RSA鍵長の要件強化) |
| RFC 8463 | DKIMにEd25519署名アルゴリズムを追加 |
| RFC 7489 | DMARC(SPF・DKIMの結果を活用するポリシー仕様) |
| RFC 7208 | SPF(Sender Policy Framework)の標準仕様 |