🔑 DKIM(DomainKeys Identified Mail)とは?電子署名で守るメールの信頼性
🌟 はじめに
DKIM(DomainKeys Identified Mail)は、メール送信者のドメインを確認するための技術です。SPFが「送信元サーバーの正当性」を確認するのに対し、DKIMは「メール本文やヘッダが改ざんされていないこと」を電子署名で保証します。本記事では、DKIMの誕生背景から仕組み、メリットと限界について解説します。
📜 背景:なぜDKIMが生まれたのか
✉️ SPFの限界
-
SPFはReturn-Path(エンベロープFrom)しか検証しないため、表示されるFromヘッダを偽装できる。
-
メール転送が行われると、送信元IPが変わりSPF認証が失敗しやすい。
💡 DKIMの登場
-
Yahoo!の「DomainKeys」とCiscoの「Identified Internet Mail」が統合され、2007年にRFC4871として標準化。
-
その後、RFC6376で更新。
-
SPFと補完関係にあり、両者を統合する仕組みがDMARC。
⚙️ DKIMの仕組み
🔍 基本の考え方
「送信ドメインが持つ秘密鍵で電子署名を付与し、受信側は公開鍵で検証する」仕組みです。
動作の流れ
-
送信サーバーが秘密鍵でメール本文や一部ヘッダに署名を生成。
-
署名は「DKIM-Signature」ヘッダに付与される。
-
受信サーバーは送信者ドメインのDNSに登録された公開鍵を取得。
-
公開鍵で検証し、改ざんがないかチェック。
DKIM-Signatureヘッダ例
DKIM-Signature: v=1; a=rsa-sha256; d=example.com; s=selector1;
h=from:to:subject:date;
bh=E4NzbY1...base64...;
b=Rj7cF+z...base64...
-
d=example.com
: 署名したドメイン -
s=selector1
: 公開鍵を格納するDNSのセレクタ名 -
h=from:to:subject:date
: 署名対象のヘッダ -
bh=
: 本文ハッシュ -
b=
: 電子署名本体
🛡️ DKIMの効果
-
改ざん検知:メール本文・ヘッダが配送中に書き換えられていないか確認できる。
-
送信者認証:秘密鍵を持つ正規のドメインであることを保証。
-
転送に強い:SPFと異なり、転送で送信元IPが変わっても署名は有効。
Gmailなど多くのメールプロバイダはDKIM署名があると信頼度を高め、迷惑メールフォルダに入れられる確率が下がります。
⚠️ DKIMの限界と課題
📌 限界
-
Fromヘッダ偽装は防げない
DKIMは署名されたドメイン(d=example.com)を保証するだけで、表示用Fromとの一致までは見ない。 -
メール途中の改変で署名が無効化
メーリングリストで件名に「[ML]」などが付加されると署名が壊れることがある。 -
鍵管理の難しさ
秘密鍵漏洩やDNSへの誤登録で認証が崩れるリスク。
「DKIM passだから安全なメール」とは限りません。From偽装や弱い鍵長による突破などの脆弱性が残ります。
🧩 SPF・DKIM・DMARCの関係
-
SPF:送信サーバーIPの正当性を確認。
-
DKIM:署名で改ざん検知と送信ドメイン認証。
-
DMARC:FromヘッダとSPF/DKIMの結果を統合して最終判断。
SPFとDKIMはそれぞれ片輪の存在であり、DMARCを組み合わせて初めて「ユーザーが見るFromアドレス」と「技術的に検証できる送信元」が一致する仕組みになります。
✅ まとめ
-
DKIMは、秘密鍵と公開鍵を用いた電子署名で、メールの改ざん検知とドメイン認証を実現。
-
転送にも強く、SPFの弱点を補完。
-
ただし、From偽装やメーリングリストでの改変には弱点がある。
-
現代のメールセキュリティは、SPF + DKIM + DMARCをセットで導入するのが基本。