メインコンテンツへスキップ

🔑 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の仕組み

🔍 基本の考え方

「送信ドメインが持つ秘密鍵で電子署名を付与し、受信側は公開鍵で検証する」仕組みです。

動作の流れ

  1. 送信サーバーが秘密鍵でメール本文や一部ヘッダに署名を生成。

  2. 署名は「DKIM-Signature」ヘッダに付与される。

  3. 受信サーバーは送信者ドメインのDNSに登録された公開鍵を取得。

  4. 公開鍵で検証し、改ざんがないかチェック。

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をセットで導入するのが基本。