メールセキュリティ

DKIM(DomainKeys Identified Mail) でぃーけーあいえむ

電子署名メール認証なりすまし対策SPFDMARCDNS
DKIMについて教えて

簡単に言うとこんな感じ!

メールに「本物の差出人が送りました」という電子署名を付けて、受け取った側が「確かに本物だ」と確認できる仕組みだよ!手紙に社判と印鑑を押すイメージで、なりすましメールを見破るための技術なんだ!


DKIMとは

DKIM(DomainKeys Identified Mail) は、送信されたメールが正規のドメイン所有者によって送られたものかどうかを検証するための電子署名技術です。メールの本文やヘッダーの内容を元に生成した署名データをメールに付加することで、受信側が「このメールは本当に〇〇.comのサーバーから送られた、改ざんされていない正規のメールだ」と確認できるようになります。

DKIMが登場する以前、電子メールには差出人を証明する仕組みがほとんどなく、なりすましメール(フィッシング詐欺)や迷惑メールが横行していました。DKIMはこれを技術的に抑止するために設計されており、現在では大手メールサービス(Gmail・Microsoft 365など)が標準的に対応しています。

DKIMは単体でも効果がありますが、SPF(送信元IPアドレスを検証する仕組み)やDMARC(SPF・DKIMの結果に基づいてポリシーを適用する仕組み)と組み合わせて使うことで、より強力なメール認証基盤が構築できます。


DKIMの仕組み・構造

DKIMは「公開鍵暗号方式」を応用しています。送信側が秘密鍵で署名し、受信側がDNSに公開された公開鍵で検証するという流れです。

ステップ場所内容
① 鍵ペアの生成送信側(管理者)秘密鍵・公開鍵のペアを作成する
② 公開鍵をDNSに登録送信ドメインのDNSTXTレコードとして公開鍵を公開する
③ メール送信時に署名送信メールサーバー秘密鍵を使ってメールに署名(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つの技術は、それぞれ異なる視点から「このメールは本物か」を検証します。

メール認証の3層構造 SPF Sender Policy Framework 検証対象: 送信元IPアドレス 「このIPから送っていい」 をDNSで宣言する DKIM DomainKeys Identified Mail 検証対象: メール内容の署名 「このドメインが署名した」 ことを電子署名で証明 DMARC Domain-based Message Authentication 検証対象: SPF+DKIMの結果 失敗時に「拒否・隔離・ 報告」のどれかを指定 メール受信フロー(3段階チェック) ①SPFチェック IPアドレス検証 ②DKIMチェック 電子署名検証 ③DMARCチェック ポリシー適用 3つすべてをパスして初めて「信頼できるメール」と判定される DKIM単体でも有効だが、SPF・DMARCとの併用が推奨

DKIMの限界と注意点

項目内容
署名の対象署名時に指定したヘッダー・本文のみ。署名対象外の部分は改ざん検知できない
転送時の問題メーリングリストやメール転送で本文が変更されると署名が無効になることがある
なりすましの完全防止DKIMはドメインを検証するが「From:に表示される表示名のなりすまし」は防げない(DMARCで補完)
鍵管理秘密鍵が漏えいすると悪用されるため、定期的なローテーション(鍵の更新)が必要

関連する規格・RFC

規格・RFC番号内容
RFC 6376DKIMの現行標準仕様(2011年。RFC 4871を廃止・改訂)
RFC 4871DKIMの初版標準仕様(2007年。現在はRFC 6376に置き換え)
RFC 8301DKIMで使用する暗号アルゴリズムの更新(SHA-1廃止・RSA鍵長の要件強化)
RFC 8463DKIMにEd25519署名アルゴリズムを追加
RFC 7489DMARC(SPF・DKIMの結果を活用するポリシー仕様)
RFC 7208SPF(Sender Policy Framework)の標準仕様

関連用語

  • SPF — 送信元IPアドレスを検証してなりすましを防ぐメール認証技術
  • DMARC — SPF・DKIMの検証結果に基づいてメールの扱いを決めるポリシー技術
  • DNS — DKIMの公開鍵を登録・配布するためのインターネット上の名前解決システム
  • 公開鍵暗号 — DKIMが署名・検証に利用する暗号技術の基本概念
  • フィッシング詐欺 — DKIMで防ごうとしているなりすましメールを使った詐欺手口
  • メールヘッダー — DKIMの署名情報(DKIM-Signature)が格納されるメールの管理情報領域
  • TLSメール暗号化 — メールの盗聴を防ぐ通信経路の暗号化(DKIMとは異なる目的の技術)