← ブログ一覧に戻る
メール認証2025-12-166 分

DKIM設定の完全ガイド|仕組みから設定方法まで詳しく解説

DKIMの仕組みと設定方法を詳しく解説。Google Workspace、Microsoft 365、さくらインターネットなど主要サービスでの設定手順も紹介します。

#DKIM#メール認証#DNS#Google Workspace#Microsoft 365

DKIMは、メールが改ざんされていないことを証明する電子署名技術です。SPFと併用することで、メールセキュリティを大幅に強化できます。

DKIMとは

DKIM(DomainKeys Identified Mail)は、送信メールに電子署名を付与し、受信側で検証することで、メールの真正性を保証する仕組みです。

DKIMが解決する問題

  • メール内容の改ざん検知
  • 送信者のなりすまし防止
  • メールの信頼性向上
  • 迷惑メール判定の回避

DKIMの仕組み

  1. 送信時: メールサーバーが秘密鍵でメールに署名
  2. DNS公開: 公開鍵をDNSのTXTレコードに登録
  3. 受信時: 受信サーバーがDNSから公開鍵を取得
  4. 検証: 署名を検証し、改ざんがないか確認

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

  1. 管理コンソールにログイン

    • admin.google.com にアクセス
  2. DKIMを有効化

    • アプリ → Google Workspace → Gmail → メールの認証
    • 「DKIMを設定」をクリック
  3. DNSレコードを取得

    • 表示されたTXTレコードをコピー
    • セレクタは通常「google」
  4. DNSに登録

    google._domainkey.example.com TXT "v=DKIM1; k=rsa; p=..."
    
  5. 認証を開始

    • DNSが反映されたら「認証を開始」をクリック

Microsoft 365

  1. Microsoft 365管理センターにログイン

  2. Exchange管理センターを開く

    • メールフロー → DKIM
  3. ドメインを選択してDKIMを有効化

  4. 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
    

さくらインターネット

  1. サーバコントロールパネルにログイン

  2. メール → DKIM設定

  3. DKIMを有効にする

    • 自動で鍵が生成される
  4. 表示されたTXTレコードをDNSに登録

AWS SES

  1. SESコンソールでドメインを選択

  2. Easy DKIMを有効化

  3. 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で確認してみましょう。

ドメインのセキュリティをチェック

この記事で学んだことを実践してみましょう。
無料でドメインのセキュリティリスクを診断できます。

無料で診断する