DKIMとは?電子署名でメールを守る仕組みをわかりやすく解説
DKIM(DomainKeys Identified Mail)とは、送信するメールに電子署名を付け、受信側がその署名を検証することで「確かにそのドメインから送られ、途中で改ざんされていない」ことを確認できるメール認証の仕組みです。
一言でいうと:DKIMはメールに付ける”電子的な封蝋(封印)“。封が壊れていなければ「本物の差出人が出し、誰にも中身をいじられていない」と受信側が確認できます。
SPF が「送信サーバーの住所」を照合するのに対し、DKIMは「電子署名」によってメールそのものの正当性を保証します。アプローチが異なるため、両方を設定することで補完し合います。
DKIMの仕組み ― 公開鍵暗号で署名する
DKIMは公開鍵暗号方式を使います。流れは次のとおりです。
- 鍵ペアを用意する:送信側で「秘密鍵」と「公開鍵」のペアを生成する
- 公開鍵をDNSに公開する:公開鍵を
セレクタ._domainkey.ドメイン名というTXTレコードに登録する - 送信時に署名する:メール送信時、本文と一部ヘッダーから計算した値を秘密鍵で署名し、
DKIM-Signatureヘッダーとしてメールに付与する - 受信側が検証する:受信サーバーはメールのセレクタからDNSの公開鍵を取得し、署名を公開鍵で検証する
検証に成功すれば、「署名に使われたドメインから送られ、署名対象が改ざんされていない」ことが確認できます。秘密鍵は送信側だけが持つため、第三者は正しい署名を作れません。
セレクタと公開鍵レコード
DKIMでは、1つのドメインで複数の鍵を使い分けるために セレクタ(selector) を用います。
selector1._domainkey.your-company.co.jp. IN TXT "v=DKIM1; k=rsa; p=MIGfMA0GCSq..."
| 記述 | 意味 |
|---|---|
v=DKIM1 | DKIMレコードであることの宣言 |
k=rsa | 鍵の方式(通常RSA) |
p=... | 公開鍵の本体(Base64文字列) |
送信されたメールの DKIM-Signature ヘッダーには、d=(署名ドメイン)と s=(セレクタ)が含まれており、受信側はこれを手がかりに上記のレコードを引き当てます。
SPFとDKIMの違い
| 観点 | SPF | DKIM |
|---|---|---|
| 検証する対象 | 送信元IPアドレス | 電子署名(本文・ヘッダー) |
| 改ざん検知 | できない | できる |
| 転送への耐性 | 弱い(IPが変わると失敗) | 強い(署名が保たれれば成功) |
| 設定するDNS | TXTレコード1件 | セレクタごとのTXTレコード |
SPFとDKIMは「どちらが優れているか」ではなく、役割が異なるため両方を設定するのが正解です。
クラウドメールでのDKIM
Microsoft 365 や Google Workspace では、管理コンソールからDKIMを有効化できます。
- Microsoft 365:Defender ポータルで対象ドメインのDKIMを有効化し、表示される2つのCNAMEレコードをDNSに登録する
- Google Workspace:管理コンソールの「アプリ > Gmail > メールの認証」でDKIMキーを生成し、表示されるTXTレコードをDNSに登録する
いずれも鍵の生成からDNSレコードの提示まで自動化されているため、表示された値をDNSに追加するだけで設定できます。
DKIMの限界 ― DMARCが必要な理由
DKIMは強力ですが、署名ドメインと受信者が見るFromドメインが一致しているかは検証しません。攻撃者が自分の正規ドメインで正しく署名しつつ、Fromヘッダーだけを別ドメインに偽装することも理論上は可能です。
この「Fromとの一致(アライメント)」を確認し、不一致だった場合に受信側へ処理方針(拒否・隔離など)を指示するのが DMARC です。
まとめ
- DKIMとは、電子署名でメールの正当性と非改ざんを保証する仕組み
- 送信側が秘密鍵で署名し、受信側がDNSの公開鍵で検証する
- SPFと違い改ざん検知ができ、転送に強いため、両方を設定するのが基本
- DKIM単体ではFromの偽装を防げないため、DMARCとセットで運用する
具体的な設定手順は 【2026年版】DMARC・DKIM・SPF設定 完全ガイド を、用語ごとの解説は メール認証 用語集 をご覧ください。
メール認証の設計・設定にお困りの中小企業さまは、情シス365(IT運用代行)にお気軽にご相談ください。