コラム
DKIMとは?
~DKIMの仕組みを解説~
DKIMはメールの送信元を証明し、改ざんを防ぐメール認証技術です。その仕組みやメリット、運用上のポイントを分かりやすく解説します。
※本ページは、Valimail公式サイトのBlog に掲載された記事を翻訳・編集し、日本向けに作成されています。
-What is DKIM, and how does it work?
DKIMとは?

DKIM(DomainKeys Identified Mail)は、公開鍵・秘密鍵暗号方式を用いたメール認証技術です。
DKIMは、送信されたメールに電子署名を付与し、受信側のメールサーバーがその署名を検証することで、
メールが正規のドメインから送信されたこと、そして送信中に改ざんされていないことを確認します。
この仕組みにより、なりすましメールやフィッシング詐欺のリスクを低減し、安全なメール通信を実現します。
DKIMの仕組み
DKIMの認証プロセスは、4つの主要なステップで行われます。
DKIMの認証プロセス
- 鍵ペアの作成(公開鍵・秘密鍵の生成)
・ドメイン所有者は、暗号化に使用する公開鍵・秘密鍵のペアを作成
・公開鍵はTXTレコードとしてDNSに登録し、誰でも参照できる状態とする - ハッシュ値の生成(署名の作成)
・メールが送信される際、送信元のメールサーバーはメール本文の内容からハッシュ値(データの要約)を生成
・このハッシュ値は、ドメインの秘密鍵で暗号化
・暗号化されたハッシュ値は、メールのヘッダーに添付される
・DKIMヘッダーには、署名するドメイン名と「DKIMセレクター」が含まれ、どのユーザー・サブドメイン・サービスが署名したかを指定 - ハッシュ値の再計算(受信側の検証)
・受信したメールを処理するサーバーは、メール本文の内容を基に独自にハッシュ値を計算
・その後、DNSに公開されている公開鍵を使用して、メールヘッダー内の暗号化ハッシュを復号化 - DKIM認証のテスト(検証)
・受信サーバーが計算したハッシュ値と、メールヘッダー内の復号化したハッシュ値を比較
・値が一致すれば、DKIM認証に成功し、メールは改ざんされていないことが証明される
・受信者は、どのドメインがDKIM署名を行ったかを正確に確認できます。
このように、DKIMはメールが正規のドメインから送信され、途中で改ざんされていないことを証明する仕組みです。

DKIMセレクターとは?
DKIMセレクター(DKIM Selector) とは、特定の送信者やサービスを識別するための値です。
サブドメイン、特定のユーザー、クラウドサービス、または企業の拠点ごとに異なる送信元を識別するために使用されます。
DKIMセレクターを使用することで、1つのドメインで複数の公開鍵を管理することが可能になります。
例えば、同じドメインを使用して複数のサービス(Gmail、Microsoft 365、MailChimpなど)からメールを送信する場合、
それぞれ異なるDKIMセレクターを設定することで、各サービスが独自のDKIM鍵を使用できるようになります。
これにより、すべての送信元が同じ秘密鍵を共有する必要がなくなり、セキュリティを向上させながら柔軟な運用が可能になります。
なぜDKIMの鍵はDNSに保存されるのか?
DKIMは、サードパーティの認証機関に依存せず、ドメイン所有者が自ら鍵を管理できるように設計されています。
そのため、公開鍵をDNSに保存することで、ドメイン所有者が自分でDKIMの公開鍵を管理し、特定の送信者を許可できる仕組みになっています。
DNSを活用することで、ドメイン所有者はDKIMセレクターごとに公開鍵を設定し、
異なる送信元(Gmail、Microsoft 365、クラウドメールサービスなど)を管理することが可能になります。
DKIMの制限と課題
DKIMは強力な認証技術ですが、フィッシング攻撃を完全に防ぐには不十分な面があります。
以下のような問題があるため、攻撃者はDKIMの仕組みをすり抜けて攻撃を仕掛けることが可能です。
- 署名の不一致
・フィッシングメールにも有効なDKIM署名を含めることが可能
例えば、攻撃者が別の正規のドメインでDKIM署名をしたメールを送信し、「From」アドレスに偽のドメインを表示させると、
受信者は正規のメールと誤認する可能性がある
・重要なのは、受信者が目にする「From」アドレスのドメインであり、DKIMがこの部分を直接検証しない点が攻撃の抜け道となる - DKIM秘密鍵の流出リスク
・攻撃者がドメインの秘密鍵を入手すれば、そのドメインを装ったメールを正規のメールとして送信可能
・DKIM認証を完全に通過するため、受信サーバーは攻撃メールを本物と判断してしまう - メールサーバーとの直接的な関係がない
・DKIM署名は、ドメインのメールサーバーと直接紐づいている必要がない
・そのため、攻撃者が独自のサーバーから送信しても、正規のDKIM署名を持つメールを送ることが可能 - メール転送時のDKIM承認失敗リスク
・メールの内容を改変するようなメール転送サービスを利用した場合、メール本文の署名が無効化され、DKIM認証に失敗する状況となる
DKIMの運用上の課題
DKIMの鍵管理は、適切に行わないとセキュリティが十分に確保できません。
以下のような点に注意が必要です。
- DKIM鍵の管理の難しさ
・DKIMの鍵はDNS上に保存されるため、管理ミスが発生しやすい
・DKIMの鍵は長いランダムな文字列で構成されており、コピー&ペーストのミスなどで認証が失敗するケースもある
・DKIM鍵の設定ミスにより、正当なメールが認証されずに拒否されることもある - DKIM鍵の定期的な更新(ローテーション)の必要性
・ドメイン所有者は定期的にDKIM鍵を更新(ローテーション)する必要があるが、これを実施していないケースが多い
・送信サービスごとに異なるDKIM鍵を設定することが推奨されているが、手動での設定が煩雑であるため、
多くのケースではすべてのサービスで同じ鍵が使いまわされており、管理が困難になる - 複数のクラウド送信サービスを利用する場合のリスク
・1つのDKIM鍵をすべての送信サービスで使い回すと、1つの鍵の設定ミスで全ての送信サービスに影響を与えるリスクがある
DKIMを最大限に活用する方法
DKIMは、正しく設定すればメールの安全性を高める強力な仕組みです。
しかし、DKIMだけではなりすましメールを完全に防ぐことはできません。
そこで重要なのがDMARCとの組み合わせです。
DMARCには「アライメント(Alignment)」というルールがあり、SPFやDKIMをDMARC認証に利用するには、次の条件を満たす必要があります。
- SPFの場合 :Return-Path(メールの送信元アドレス)のドメインが、From(受信者が見る送信者アドレス)のドメインと一致していること
- DKIMの場合:DKIM署名に使われたドメインが、From(受信者が見る送信者アドレス)のドメインと一致していること
このルールがあることで、攻撃者が他の正規ドメインのDKIM署名を悪用して、なりすましメールを送信するのを防ぐことができます。
DMARCを設定することで、SPFやDKIMの認証結果をもとに、なりすましメールを防ぐための強力な対策が可能になります。
DMARCでなりすましメールを防ぐ仕組みや
ValimailによるDMARCの効果的な運用方法を
詳しく説明した資料をご用意しております
~ぜひダウンロードしてご活用ください~