DKIMの仕組みとDNS設定|電子署名によるメール認証技術を理解する

目次
DKIMの仕組みとDNS設定
メールシステムのセキュリティ対策として、SPF・DKIM・DMARCは現在必須とも言える技術になっています。
特にGmailやMicrosoft 365などの大手メールサービスは送信ドメイン認証を重視しており、適切に設定されていないメールは迷惑メールとして扱われることがあります。
その中でもDKIM(DomainKeys Identified Mail)は、メール本文が改ざんされていないことを証明する仕組みとして利用されています。
本記事ではDKIMの仕組みや公開鍵・秘密鍵の役割、DNS設定方法、実務でよくあるトラブルについて解説します。
DKIMとは
DKIMは電子署名を利用してメールの正当性を確認する仕組みです。
送信サーバはメール送信時に秘密鍵で署名を行います。
受信サーバはDNSから公開鍵を取得し、その署名を検証します。
これによりメールの改ざん検知が可能になります。
なぜDKIMが必要なのか
SMTPは元々セキュリティを重視して設計されたプロトコルではありません。
そのため途中経路でメールが改ざんされた場合でも、受信者は気付くことができません。
DKIMはその問題を解決するために利用されています。
DKIMの動作の流れ
送信サーバ
↓
秘密鍵で署名
↓
メール送信
↓
受信サーバ
↓
DNSから公開鍵取得
↓
署名検証
↓
受信判定
DNSは公開鍵の配布に利用されます。
公開鍵暗号方式を利用する
DKIMでは公開鍵暗号方式を利用します。
| 鍵 | 用途 |
|---|---|
| 秘密鍵 | 署名作成 |
| 公開鍵 | 署名検証 |
秘密鍵はメールサーバ側で厳重に保管します。
DKIM署名とは
送信時にメールヘッダへ署名情報が追加されます。
例です。
DKIM-Signature:
v=1;
a=rsa-sha256;
d=example.com;
s=mail;
受信側はこの情報を利用して検証します。
d= の意味
d=は署名対象ドメインです。
d=example.com
example.comが署名元ドメインになります。
s= の意味
s=はセレクタ(selector)です。
s=mail
DNS上の公開鍵を特定するために利用します。
DNSに登録される公開鍵
DKIMの公開鍵はTXTレコードとして登録します。
mail._domainkey.example.com.
IN TXT
"v=DKIM1; k=rsa; p=MIGfMA0..."p= が公開鍵です。
DKIMレコードの構造
mail._domainkey.example.com
| 部分 | 意味 |
|---|---|
| セレクタ | |
| _domainkey | DKIM識別子 |
| example.com | 対象ドメイン |
受信側の確認方法
受信サーバはDNSへ問い合わせます。
mail._domainkey.example.com公開鍵を取得して署名を検証します。
DKIM確認方法
digコマンドで確認できます。
$ dig mail._domainkey.example.com TXT公開鍵情報が表示されます。
Google WorkspaceのDKIM
Google Workspaceでは管理画面から生成できます。
生成されたTXTレコードをDNSへ登録します。
その後DKIM署名を有効化します。
Microsoft 365のDKIM
Microsoft 365も同様にDNSへ公開鍵を登録します。
管理センターから有効化できます。
Postfix環境のDKIM
PostfixではOpenDKIMがよく利用されます。
Postfix
↓
OpenDKIM
↓
署名付与
Linux環境では一般的な構成です。
OpenDKIMで鍵生成
$ opendkim-genkey -d example.com -s mail
opendkim-genkey \
-d example.com \
-s mail
秘密鍵と公開鍵が生成されます。
生成されるファイル
mail.private
mail.txtmail.txtの内容をDNSへ登録します。
よくある設定ミス① DNS未登録
署名は付与されていますが公開鍵が存在しません。
受信側は検証できません。
よくある設定ミス② セレクタ不一致
メールヘッダです。
s=mail
DNS側です。
smtp._domainkey一致しないため検証失敗になります。
よくある設定ミス③ 鍵更新忘れ
鍵ローテーション後に古い公開鍵が残るケースです。
署名検証に失敗します。
よくある設定ミス④ TXTレコード改行
DNS管理画面によっては改行処理で失敗することがあります。
登録後にdigで確認することが重要です。
SPFとの違い
| 項目 | SPF | DKIM |
|---|---|---|
| 確認対象 | 送信元IP | メール署名 |
| 利用技術 | DNS照合 | 公開鍵暗号 |
| 改ざん検知 | 不可 | 可能 |
DMARCとの関係
DMARCはSPFとDKIMの結果を利用します。
SPF
↓
DKIM
↓
DMARC
3つを組み合わせて利用するのが一般的です。
実務で確認するコマンド
dig mail._domainkey.example.com TXT
dig selector1._domainkey.example.com TXT
まず公開鍵の存在を確認します。
実務で覚えておきたいポイント
- DKIMは電子署名による認証技術である
- DNSには公開鍵を登録する
- 秘密鍵はメールサーバで管理する
- セレクタとDNS名は一致させる
- SPFと併用する
- DMARCの基盤技術である
まとめ
DKIMは公開鍵暗号方式を利用してメールの改ざん防止と送信者認証を実現する技術です。
送信サーバは秘密鍵で署名し、受信サーバはDNSに登録された公開鍵で検証を行います。
現在ではGoogleやMicrosoftをはじめ、多くのメールサービスでDKIMが重要視されており、メール運用では必須の知識となっています。
SPFやDMARCと組み合わせることで、より安全なメール環境を構築できます。






