DKIM設定の完全ガイド|仕組みから設定方法まで詳しく解説
DKIMの仕組みと設定方法を詳しく解説。Google Workspace、Microsoft 365、さくらインターネットなど主要サービスでの設定手順も紹介します。
DKIMは、メールが改ざんされていないことを証明する電子署名技術です。SPFと併用することで、メールセキュリティを大幅に強化できます。
DKIMとは
DKIM(DomainKeys Identified Mail)は、送信メールに電子署名を付与し、受信側で検証することで、メールの真正性を保証する仕組みです。
DKIMが解決する問題
- メール内容の改ざん検知
- 送信者のなりすまし防止
- メールの信頼性向上
- 迷惑メール判定の回避
DKIMの仕組み
- 送信時: メールサーバーが秘密鍵でメールに署名
- DNS公開: 公開鍵をDNSのTXTレコードに登録
- 受信時: 受信サーバーがDNSから公開鍵を取得
- 検証: 署名を検証し、改ざんがないか確認
DKIMレコードの構造
DKIMレコードは以下の形式でDNSに登録します。
セレクタ._domainkey.ドメイン名
例: selector1._domainkey.example.com
レコードの内容
v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQ...
| パラメータ | 説明 | 例 |
|---|---|---|
| v | バージョン | DKIM1 |
| k | 暗号化方式 | rsa |
| p | 公開鍵 | Base64エンコードされた鍵 |
| t | フラグ(オプション) | y(テストモード)、s(厳格モード) |
主要サービスでのDKIM設定
Google Workspace
-
管理コンソールにログイン
- admin.google.com にアクセス
-
DKIMを有効化
- アプリ → Google Workspace → Gmail → メールの認証
- 「DKIMを設定」をクリック
-
DNSレコードを取得
- 表示されたTXTレコードをコピー
- セレクタは通常「google」
-
DNSに登録
google._domainkey.example.com TXT "v=DKIM1; k=rsa; p=..." -
認証を開始
- DNSが反映されたら「認証を開始」をクリック
Microsoft 365
-
Microsoft 365管理センターにログイン
-
Exchange管理センターを開く
- メールフロー → DKIM
-
ドメインを選択してDKIMを有効化
-
CNAMEレコードを登録
selector1._domainkey.example.com CNAME selector1-example-com._domainkey.example.onmicrosoft.com selector2._domainkey.example.com CNAME selector2-example-com._domainkey.example.onmicrosoft.com
さくらインターネット
-
サーバコントロールパネルにログイン
-
メール → DKIM設定
-
DKIMを有効にする
- 自動で鍵が生成される
-
表示されたTXTレコードをDNSに登録
AWS SES
-
SESコンソールでドメインを選択
-
Easy DKIMを有効化
-
3つのCNAMEレコードを登録
xxxx._domainkey.example.com CNAME xxxx.dkim.amazonses.com
DKIM設定のベストプラクティス
1. 鍵の長さは2048ビット以上
# 推奨: 2048ビット
openssl genrsa -out private.key 2048
# 非推奨: 1024ビット(古い)
openssl genrsa -out private.key 1024
1024ビットの鍵は脆弱性があるため、2048ビット以上を使用しましょう。
2. セレクタ名は推測されにくいものを
# 良い例
s20251216._domainkey.example.com
mail-prod._domainkey.example.com
# 避けるべき例
default._domainkey.example.com
dkim._domainkey.example.com
3. 定期的な鍵のローテーション
- 推奨: 6ヶ月〜1年ごとに鍵を更新
- 新しいセレクタで新しい鍵を追加
- 古い鍵は一定期間残してから削除
4. テストモードでの導入
最初は t=y フラグを付けてテストモードで導入し、問題がないことを確認してから本番運用に移行します。
v=DKIM1; k=rsa; t=y; p=...
DKIM設定の確認方法
1. DNSレコードの確認
# digコマンドで確認
dig TXT selector._domainkey.example.com
# nslookupで確認
nslookup -type=TXT selector._domainkey.example.com
2. テストメールの送信
Gmailにテストメールを送信し、メールヘッダーを確認します。
Authentication-Results: mx.google.com;
dkim=pass header.i=@example.com header.s=selector
dkim=pass と表示されていれば成功です。
3. RiskLensで確認
RiskLensでドメインを診断すると、DKIMの設定状況を自動でチェックできます。
よくあるエラーと対処法
「DKIM署名が見つかりません」
原因: メールサーバーでDKIM署名が有効になっていない
対処法:
- メールサービスの管理画面でDKIMを有効化
- 送信サーバーがDKIM署名に対応しているか確認
「公開鍵が見つかりません」
原因: DNSにDKIMレコードが登録されていない、またはセレクタが間違っている
対処法:
- DNSレコードが正しく登録されているか確認
- セレクタ名が一致しているか確認
- DNS反映を待つ(最大48時間)
「署名の検証に失敗しました」
原因: メールが中継サーバーで改変された
対処法:
- メーリングリストやフォワーダーを経由していないか確認
- ARCヘッダーの導入を検討
まとめ
| 項目 | 推奨設定 |
|---|---|
| 鍵の長さ | 2048ビット以上 |
| セレクタ | 日付や用途を含む名前 |
| ローテーション | 6ヶ月〜1年ごと |
| テスト | 本番前にt=yで検証 |
DKIMはSPF、DMARCと組み合わせることで、より強固なメールセキュリティを実現できます。まずは現在の設定状況をRiskLensで確認してみましょう。