DKIMとは?メール改ざん防止の仕組み

DKIMとは?

DKIMの仕組みを理解してメールの改ざんやなりすましを防ごう

メールセキュリティ対策として、現在ではSPF・DKIM・DMARCの3つが重要な技術として利用されています。

その中でもDKIM(DomainKeys Identified Mail)は、メールに電子署名を付与することで改ざん検知や送信者の正当性確認を行う仕組みです。

近年増加しているフィッシングメールやなりすましメール対策として、多くの企業やクラウドメールサービスで採用されています。

Google WorkspaceやMicrosoft 365などでもDKIM設定が推奨されており、メール到達率向上にも重要な役割を果たしています。

本記事ではDKIMの仕組みや動作原理、SPFとの違いについて解説します。

DKIMとは

DKIM(DomainKeys Identified Mail)は、メールに電子署名を付与して送信し、受信側で署名検証を行う技術です。

メール送信時に秘密鍵で署名し、受信時に公開鍵で検証します。

これにより以下の確認が可能になります。

  • メールが改ざんされていないこと
  • 送信ドメインが正当であること
  • メール内容の完全性

メールの信頼性を高める重要な仕組みです。

なぜDKIMが必要なのか

SMTPには元々メール内容の改ざんを検知する仕組みがありません。

そのため理論上は配送経路上でメール内容を書き換えられる可能性があります。

また、送信者情報を偽装したなりすましメールも問題となっています。

DKIMはこれらの問題に対応するために開発されました。

DKIMの基本的な考え方

DKIMは公開鍵暗号方式を利用します。

送信側は秘密鍵を保持し、受信側はDNSから公開鍵を取得します。

送信サーバ
   ↓
秘密鍵で署名
   ↓
メール送信
   ↓
受信サーバ
   ↓
DNSから公開鍵取得
   ↓
署名検証

署名が一致すればメールは正当と判断されます。

DKIMの処理の流れ

実際の処理は次のように行われます。

  1. メール作成
  2. 送信サーバが署名作成
  3. DKIM-Signatureヘッダ追加
  4. メール送信
  5. 受信サーバが公開鍵取得
  6. 署名検証
  7. 結果判定

受信者は特別な操作を行う必要はありません。

公開鍵暗号方式とは

DKIMでは公開鍵暗号方式が利用されます。

鍵用途
秘密鍵署名作成
公開鍵署名検証

秘密鍵は送信サーバのみが保持します。

公開鍵はDNSで公開されます。

DKIM-Signatureヘッダとは

DKIMを利用するとメールヘッダに署名情報が追加されます。

例です。

DKIM-Signature:
v=1;
a=rsa-sha256;
d=example.com;
s=mail;

この情報を利用して署名検証が行われます。

d=の意味

d=は署名対象ドメインを表します。

d=example.com

このドメインの公開鍵をDNSから取得します。

s=の意味

s=はセレクタ(Selector)です。

s=mail

複数のDKIM鍵を管理するために利用されます。

公開鍵検索時に使用されます。

DKIM公開鍵の保存場所

公開鍵はDNSのTXTレコードへ登録します。

例えば次のようになります。

mail._domainkey.example.com

TXTレコードとして登録されます。

DNS登録例

公開鍵登録例です。

mail._domainkey.example.com.
IN TXT
"v=DKIM1; k=rsa; p=MIGfMA..."

受信側はこの情報を利用して検証します。

セレクタとは

セレクタはDKIM鍵を識別するための名前です。

例えば以下のような運用が可能です。

mail._domainkey.example.com

smtp._domainkey.example.com

gw._domainkey.example.com

複数サーバの鍵管理が容易になります。

DKIM検証の流れ

受信サーバでは以下の処理が行われます。

DKIM-Signature確認
        ↓
DNS問い合わせ
        ↓
公開鍵取得
        ↓
署名検証
        ↓
結果判定

メール受信時に自動実行されます。

DKIMの判定結果

受信側では主に以下の結果が返されます。

結果意味
Pass認証成功
Fail認証失敗
NoneDKIM未設定
TempError一時エラー
PermError設定エラー

メールヘッダから確認できます。

SPFとの違い

DKIMとSPFは役割が異なります。

技術確認内容
SPF送信元IPアドレス
DKIM電子署名

どちらか一方ではなく両方を利用することが推奨されています。

SPFの弱点を補完する

SPFはメール転送時に失敗する場合があります。

しかしDKIMはメール本文やヘッダに対して署名を行うため、転送後も認証できるケースがあります。

このためSPFとDKIMは相互補完関係にあります。

DMARCとの関係

DMARCはSPFやDKIMの結果を利用して最終判定を行います。

現在のメール認証は次の3つがセットです。

  • SPF
  • DKIM
  • DMARC

企業ドメインでは導入が推奨されています。

PostfixでDKIMを利用する方法

Postfix単体ではDKIM機能はありません。

一般的にはOpenDKIMを利用します。

Postfix
    ↓
OpenDKIM
    ↓
署名付与

Linuxメールサーバでは標準的な構成です。

OpenDKIMとは

OpenDKIMはDKIM署名を行うためのソフトウェアです。

主な機能は以下の通りです。

  • 署名生成
  • 署名検証
  • 鍵管理
  • DNS連携

多くのLinux環境で利用されています。

Google Workspaceでも利用されている

Google WorkspaceではDKIM設定を有効化できます。

Gmailの到達率向上やなりすまし防止のため推奨されています。

Microsoft 365でも同様です。

DKIM導入のメリット

  • メール改ざん検知
  • なりすまし対策
  • メール信頼性向上
  • 到達率向上
  • DMARC利用可能

現在では企業メール運用の基本技術です。

実務での導入例

以下のような環境で広く利用されています。

  • 企業メールサーバ
  • Google Workspace
  • Microsoft 365
  • レンタルサーバ
  • クラウドメールサービス

大規模なメールサービスではほぼ標準となっています。

まとめ

DKIMはメールへ電子署名を付与し、改ざん検知や送信者の正当性確認を行う技術です。

送信側は秘密鍵で署名し、受信側はDNSに登録された公開鍵で検証を行います。

SPFだけでは対応できない問題を補完できるため、現在ではSPF・DKIM・DMARCを組み合わせた運用が一般的です。

メールの信頼性向上やなりすまし対策のために、DKIMは非常に重要な技術となっています。