DKIMとは何か、そしてDKIMはどのように機能するのか?
DKIM×DMARC最強連携
2024年6月10日
著者: Editorial Team
翻訳: 岩瀨 彩江
この記事はPowerDMARCのブログ記事 What is DKIM and How Does DKIM Work? の翻訳です。
Spelldataは、PowerDMARCの日本代理店です。
この記事は、PowerDMARCの許可を得て、翻訳しています。
DKIMは、メールが配信される途中で改竄されないことを保証する効果的な方法です。
ドメインベースの認証方法とプロトコルは、特にリモートワークの普及に伴い増加しているメールを利用したサイバー攻撃に対して、非常に効果的です。
メールは依然として主要なビジネスコミュニケーションの手段である一方で、フィッシングなどの攻撃の主要な経路でもあるため、堅牢な検証が極めて重要です。
ただし、メール認証は完全ではなく、攻撃者がこれらの対策を回避する方法を見つける可能性があることに注意する必要があります。
したがって、特にリンクや添付ファイルを含むメールを開く際には、常に注意を払うことが推奨されます。
DKIMは、これらの脅威に対抗するために設計されたプロトコルの一つです。
これは公開鍵暗号方式に基づいており、メッセージヘッダーにデジタル署名を追加することで機能します。
通常、「From(送信者)」「To(受信者)」「Subject(件名)」「Date(日付)」などのヘッダーに署名します。
受信者がDKIM付きのメールを受け取ると、送信者のDNSに公開されている公開鍵を使ってデジタル署名を検証し、その有効性を確認します。
もし署名が有効であれば、そのメッセージは転送中に改竄されておらず、主張されたドメインから実際に送信されたことが確認できます。
重要なポイント
- DKIMは、暗号署名を使用してメールの完全性と送信元を検証する仕組みであり、改竄やなりすましを防止するうえで極めて重要です。
- 適切なDKIMの実装、特に鍵管理のベストプラクティス(例:1024ビットまたは2048ビット鍵の使用や定期的な鍵のローテーション)は、メールの到達率を確保し、GoogleなどのISP要件を満たすために不可欠です。
- DKIMは、受信トレイへのメール到達率を向上させることでメールマーケティングの効果を大幅に高め、エンゲージメントを向上させるとともにブランドの信頼性を保護します。
- 包括的なメールセキュリティを実現するためには、DKIMをSPFやDMARCと組み合わせて使用し、ポリシーの適用や詳細なレポートを有効にすることが推奨されます。
- また、ツールやDMARCレポートを通じたDKIMの継続的な監視は、問題を特定して送信者の評価を維持するために不可欠ですが、認証手法が完全に無欠であるわけではありません。
DKIMとは何か
DKIMとは「DomainKeys Identified Mail(ドメインキー識別メール)」の略です。
これは、送信者がメールの配信過程で内容が改竄されるのを防ぐことを可能にする、メール認証プロトコルです。
DKIMは、2004年にYahooの「DomainKeys」とCiscoの「Identified Internet Mail」が統合されて誕生し、現在では広く採用されている技術となっています。
この仕組みは公開鍵暗号方式に基づいており、メッセージヘッダーにデジタル署名を追加することで機能します。
受信者がDKIM付きのメールを受け取ると、デジタル署名を検証して有効であるかを確認します。
有効であれば、そのメッセージは転送中に改竄されていないことが保証されます。
Google、Microsoft、Yahooなどの主要プロバイダは、受信メールに対してDKIM署名を確認しています。
たとえば、Gmailユーザーにメールを送信する新しい送信者は、Googleの要件として少なくともSPFまたはDKIMを設定する必要があります。
Googleは受信メッセージのランダムチェックを実施しており、これらの認証方法がないメールは「5.7.26」エラーで拒否されるか、スパムとして扱われる可能性があります。
DKIMヘッダーとは
DKIMヘッダーとは、暗号化されたDKIM署名を含むメールの一部です。
この署名は送信者のメールサーバ、具体的にはメール転送エージェント(MTA)によって追加されます。
MTAは、メッセージの内容とヘッダーに基づいて「ハッシュ値」と呼ばれる一意の文字列を生成します。
認証プロセス中に、DKIMヘッダー内の署名フィールドは送信メールの真正性を検証するために使用されます。
これにより、受信者はメールが正当な送信者から送られた本物のものであることを確認できます。
DKIMキーとは
DKIMキーとは、DKIM認証で使用される暗号化された公開鍵と秘密鍵のペアのことです。
- 公開鍵(Public Key)
-
DKIMの公開鍵は、送信者のDNSにTXTレコードとして保存されます。
受信側のメールサーバは、この公開鍵を使用してDKIM署名を検証します。 - 秘密鍵(Private Key)
-
DKIMの秘密鍵は、送信者のメールサーバ上で安全に保管されます。
この鍵は、各送信メールに対してデジタル署名を生成し、DKIMヘッダーの一部として付加するために使用されます。
DKIMはどのように機能するのか?
DKIM認証プロセスでは、送信ドメインが暗号鍵のペアを生成します。
メールが送信される際、送信サーバ(MTA)は秘密鍵を使用してメッセージヘッダーにDKIM署名を追加します。
この署名には、メールの特定部分から生成されたハッシュ値が含まれています。
送信ドメインは、対応する公開鍵をDNSレコードに公開します。
受信者がメールを受け取ると、受信サーバはヘッダーからDKIM署名を取得し、DNSに問い合わせて公開鍵を取得します。
次に、この公開鍵を使用して署名内のハッシュ値を復号します。
受信サーバはさらに、受信したメールのヘッダーと本文から独自にハッシュ値を計算します。
その後、計算したハッシュ値と署名から復号したハッシュ値を比較します。
もし両者が一致すれば、署名は有効であり、そのメールが改竄されておらず、正当なドメインから送信された本物のものであることが確認されます。
これにより、なりすましや改竄に対する保護が実現されます。
DKIMが正しく動作しているかを確認する方法
DKIMが正しく動作しているかを確認するには、DKIMチェックを使用して設定を検証する方法があります。
無料のDKIMチェッカーツールを使って、ドメインの構成が正しいかを確認してみましょう。
さらに、DMARCの集計レポートを監視することで、自分のドメインを名乗るメールに対するDKIM認証結果を把握できます。
また、DNSクエリログを確認することで、受信サーバがどの程度の頻度であなたの公開鍵を取得しているかを知ることもできます。
DKIMレコードとは
DKIMレコードとは、ドメインのDNS設定内にTXTレコードとして公開される、機械的な指示の集合です。
このレコードには、署名に使用される秘密鍵に対応する公開鍵が含まれています。
このレコードは、あなたのドメインを名乗るメッセージがこの鍵を使用して検証できることをインターネット上に示すものであり、メールサーバがメッセージの改竄がないこと、そして認証された送信元から送信されたことを確認できるようにします。
- DKIM署名
-
DKIM署名とは、メールメッセージのヘッダーに追加される暗号化された署名のことです。
この署名は、メールの真正性を確認し、転送中に改竄されていないことを保証します。
DKIM署名は秘密鍵を使用して生成され、DKIMレコード内にある公開鍵を使って検証されます。 - DKIMセレクタ
-
DKIMセレクタとは、どのDKIM鍵ペアがメッセージの署名に使用されたかを指定するための一意の識別子です。
これにより、ドメインは複数の鍵(例:異なる送信サービスごと)を管理できるようになります。セレクタは英数字の文字列で、メールヘッダー内の「s=」タグに定義されています。
使用するメールサービスごとに識別可能で異なる値にする必要があります。
たとえば、s1._domainkey.domain.comというDKIMレコード名では、s1がセレクタにあたります。 - DKIMレコードの例
-
v=DKIM1;
DKIMレコードには「t=y」というタグを含めることもできます。
k=rsa; p=MIGfMA0GCSqGSIb3DQEBA…
これは、そのドメインがテストモードにあることを示すもので、初期設定の段階で一時的に使用し、完全運用時には削除する必要があります。
DKIMの利点とは
企業は、自社から送信するメールを認証し、その正当性を保証するためにDKIMを必要としています。
DKIMは、中間者攻撃(MITM)を回避し、第三者による不正なメール内容の改竄を防ぐうえで重要な役割を果たします。
また、メールの信頼性を確保することで、顧客との関係やブランドの評判を守る助けとなります。
- DKIMはメッセージの改竄を防止します
-
「DKIMはメール詐欺を防ぐために何をしているのか?」と考えたとき、重要なのはこの点です。
デジタル署名が“フェイルセーフ(安全装置)”として機能しているということです。もしメールが途中で傍受・改竄されていた場合、署名の検証は失敗します。
これは、再計算されたハッシュ値が署名から復号したハッシュ値と一致しないためです。
その結果、そのメールは拒否されるか、疑わしいものとしてフラグ付けされます。 - DKIMドメインでなりすましを最小限に抑える
-
攻撃者があなたのドメインを装って送信したメールには、あなたの秘密鍵で生成された有効な署名が存在しません。
そのため、DKIM認証チェックに失敗します。
これもまた、DKIMが組織をどのような脅威から保護しているかを示す重要なポイントの一つです。最新のメール詐欺に関する統計はこちらをご覧ください。
- DKIMはメールスパムを減らします
-
DKIMが広く知られている理由の一つは、スパムメールの削減効果です。
DKIMを正しく設定することで、メールの信頼性が高まり、正当なメッセージがスパムフォルダに振り分けられる可能性を大幅に減らすことができます。
これは特に、メールマーケティングキャンペーンにとって大きな利点となります。 - DKIMはメールの到達率を向上させます
-
さらに、DKIMを設定することで、インターネットサービスプロバイダ(ISP)、顧客、パートナー、その他の受信サービスから「信頼された送信元」として評価され、送信者の評判が向上します。
これにより、メールの到達率が改善され、重要なコミュニケーションが確実に受信者に届くようになり、結果として収益の向上にもつながります。
メールの到達率とは、メールがスパムと判定されたり、バウンス(配信失敗)したりすることなく、受信者の受信トレイに届く能力を指します。この指標はマーケティングやコミュニケーション活動において非常に重要です。
バウンス率、開封率、クリック率、スパム報告数といった主要なメトリクスは、エンゲージメントを測定する上での重要な要素です。
到達率が低下すると、マーケティング投資の無駄、Spamhausのようなブロックリストへの登録、カスタマーサービスへの悪影響などを招く可能性があります。メールプロバイダは近年、開封、クリック、返信、苦情率といったユーザーエンゲージメントのシグナルを重視してメールをフィルタリングしており、高い到達率を維持する重要性が一層高まっています。
DKIMによる検証を通過して正常に配信されたメールは、クリック率や開封率の向上に寄与し、結果としてコンバージョンや売上の増加につながる可能性があります。
DKIMの限界とは
DKIMはメッセージの認証と完全性を確保するうえで非常に重要ですが、完璧ではありません。
以下はその主な制限点です。
- 送信者の直接的な認証を行わない
-
DKIMは、エンドユーザーに表示される「From」アドレスを署名ドメインと直接照合するわけではありません(この整合性チェックはDMARCの役割です)。
DKIMは主に、署名内の「d=」タグに記載されたドメインがそのメールを承認しており、改竄されていないことを認証します。
したがって、正規のアカウントやサーバへの不正アクセスが発生した場合、攻撃者はあなたのドメインからDKIM署名付きのメールを送信できてしまう可能性があります。 - DNS設定への依存
-
DKIMは、DNSレコードの正しい公開と取得に依存しています。
公開鍵のDNSレコードが正しく設定されていない場合や設定ミス、伝播遅延などがあると、正当なメールであってもDKIM認証が失敗することがあります。 - 認証失敗時のポリシーを持たない
-
DKIM単体では、認証に失敗した場合にどう処理するかというポリシーを定義していません。
DKIMは「成功」または「失敗」の結果を提供するだけであり、それ自体がスパムやフィッシングを完全に防ぐわけではありません。
したがって、DKIM(およびSPF)の結果を利用してポリシーを適用するDMARCと組み合わせることが、包括的な保護を実現するために非常に重要です。
さらに、DKIMの実装にはいくつかの実務的な課題が伴います。
これには、鍵管理やDNS設定に関する専門知識を必要とする技術的な複雑さ、設定ミスによるメール到達率の低下、大規模環境での鍵管理の難しさ、そしてサードパーティのメール送信サービスとの互換性を確保する困難さなどが含まれます。
DKIMとDMARCの連携
DKIMとDMARCを比較することにはあまり意味がありません。
実際には、DKIMをDMARC(およびSPF)と組み合わせて使用することが、堅牢な保護を実現しつつ、スムーズなメール配信を確保する理想的な方法です。
両方を導入すると、DMARCはDKIM(およびSPF)の認証結果を活用し、さらに整合性チェックとポリシー適用(認証失敗時の拒否や隔離など)を追加します。
これにより、なりすましメールが受信トレイに届くことを防ぐ効果が大幅に高まります。
その結果、スパムフィルタによるブラックリスト登録を回避でき、正当なメールの到達率がより確実に向上します。
さらに、DKIMとDMARCを併用することでブランドを保護する効果もあります。
スパマーは、多くの場合、通報されにくいと思われるドメインを装おうとしますが、もしそのドメインがDKIMを設定し、DMARCポリシーを適用している場合、彼らの詐欺行為は非常に困難になります。
これにより、あなたのドメインの評判を守ることができます。
この2つを組み合わせる最大の利点は、互いに連携しながら多層的ななりすまし防止を実現し、送信者がインターネット上で自分のメールがどのように処理・認証されているかを、DMARCレポートを通じて把握・管理できる点にあります。
PowerDMARCでDKIMを有効化する
PowerDMARCは、ドメイン所有者がSPFやDMARCと併せてDKIMを簡単に設定できるよう支援し、認証結果やエラーを常時把握できる監視・レポート機能を提供します。
これにより、メールの到達率を維持しながら、サイバー攻撃への対策を積極的に行うことができます。
このプラットフォームは、あらゆる規模の企業で簡単に利用でき、複数ドメインや大量のメールトラフィックにも対応しています。
PowerDMARCは、DKIMをはじめとする複数の重要なメール認証プロトコルを組み合わせた効果的なソリューションを提供し、メール詐欺に対して360度の保護を実現します。
PowerDMARCを使えば、わずか数分でDKIMとDMARCの設定が完了します!
DKIMに関するよくある質問
- DKIMの設定方法は?
-
DKIMを設定するには、まず秘密鍵とそれに対応する公開鍵のペアを生成する必要があります。
これは、DKIMレコードジェネレーターのようなツールや、メールサービスプロバイダを通じて行うことができます。
少なくとも1024ビットのDKIM鍵を使用することが推奨されており、より強力なセキュリティを確保するためには2048ビット鍵が望ましいとされています。定期的にDKIM鍵をローテーションし、異なる送信サービスやクライアントごとに固有の鍵を使用することを検討してください。
また、デジタル署名の有効期限を設定する場合は、その期間が鍵のローテーション期間よりも長くなるようにし、古い鍵は忘れずに失効させるようにしましょう。
最後に、送信メールサーバを構成して、秘密鍵を使用して送信メールに署名し、公開鍵をDNSのTXTレコードとしてドメイン内の特定のセレクタ名(例:selector._domainkey.yourdomain.com)の下に公開します。 - DKIMレコードの確認方法は?
-
DKIMレコードを確認するには、無料のDKIMチェッカーツールを使用できます。
ドメイン名と(わかっている場合は)確認したい特定のDKIMセレクタを入力するだけで、ツールがDNSを照会し、DKIMレコードが正しくフォーマットされ、公開され、取得可能であるか、または問題が検出されたかを報告してくれます。 - SPFとDKIMの違いは?
-
どちらもDMARCで使用されるメール認証プロトコルですが、目的と仕組みが異なります。
SPF(Sender Policy Framework)は、特定のドメインからメールを送信することを許可されたIPアドレスを定義し、メールの「送信経路」を検証することに重点を置いています。一方、DKIM(DomainKeys Identified Mail)は、暗号署名を用いてメールの「内容の完全性」を検証し、そのメッセージがドメイン所有者によって承認されたものであり、改竄されていないことを確認します。
また、DKIM署名は転送後も有効であるのに対し、SPFは転送時に認証が失敗することが多いという違いもあります。 - 複数のドメインで同じDKIMキーを使用できますか?
-
いいえ、異なる複数のドメインで同じDKIM鍵ペアを使用することはできません。
各ドメインには、それぞれ専用のDKIM鍵ペア(署名用の秘密鍵と、そのドメインのDNSに公開する公開鍵)が必要です。
これにより、DKIM署名がドメイン固有のものとなり、各ドメインにおけるメール認証の安全性と完全性が維持されます。ただし、同一ドメイン内であれば、必要に応じて異なるセレクタ間で同じ鍵ペアを使用することは可能です。
とはいえ、送信サービスごとに別々の鍵を使用するのが一般的です。
さらに詳しく知りたい方へ - Office 365(Microsoft 365)はDKIMを使用していますか?
-
はい、Microsoft 365(旧称 Office 365)はDKIMをサポートしており、実際に使用しています。
初期設定では、Microsoft 365は共有のDKIM構成を既定ドメインに対して使用します。
しかし、独自ドメインを利用している場合は、Microsoftの指示に従ってDNSに必要なCNAMEレコードを作成し、独自のDKIM署名を構成することが強く推奨されています。
これにより、Microsoft側が鍵の管理と署名プロセスを安全に処理できるようになります。 - DKIMなしでDMARCを使用できますか?
-
技術的には、SPF認証のみを使用してDMARCを実装することは可能です。
しかし、これは強く推奨されません。DMARCは、SPFまたはDKIM(もしくはその両方)のいずれかが認証に成功し、かつ整合していることを前提としています。
SPFのみに依存すると、メール転送などの間接的な送信経路でSPF認証が失敗しやすく、認証の信頼性が低下します。
そのため、SPFとDKIMの両方を実装することで冗長性を確保し、DMARCが効果的に機能するために必要なより強固な認証体制を構築することが推奨されます。 - DKIMを実装している場合でもDMARCは必要ですか?
-
はい、必要です。
DKIMはメールの完全性の検証と認証を行う重要な仕組みですが、認証に失敗した場合に受信サーバがどのように処理すべきかを指示する機能はありません。
また、DKIM署名ドメイン(d=タグ)とユーザーに表示される「From」ドメインとの整合性(アラインメント)も確認しません。DMARCポリシーは、この欠けている部分を補います。 具体的には、
- DKIM署名ドメイン(d=)と「From」ドメインの整合性を確認する
- 認証や整合に失敗したメールを隔離または拒否するかを指定できる
- 認証結果に関するレポートを提供する
といった機能を追加します。
したがって、DKIM(およびSPF)とDMARCを組み合わせることで、メールセキュリティ、ブランド保護、到達率のすべてにおいて、はるかに高い効果を得ることができます。 - DomainKeys Identified Mail(DKIM)の一般的な問題とは?
-
よく見られるDKIMの問題には、以下のようなものがあります。
- DNSレコードの構文エラーや公開ミス
TXTレコードのフォーマットが誤っている、または正しく公開されていない場合。 - 誤ったセレクタの使用
送信サーバが使用するセレクタとDNSに登録されているセレクタが一致していない場合。 - 秘密鍵の漏えいまたは公開鍵との不一致
秘密鍵が侵害されたり、公開鍵と一致しない場合に認証が失敗します。 - 鍵のローテーションの問題(期限切れの鍵)
古い鍵を削除していない、または新しい鍵を適用していない場合。 - 中継サーバ(例:メーリングリスト)によるメッセージの改変
メール本文やヘッダーが途中で変更されると、署名が無効になります。 - DKIM署名ドメインと「From」ヘッダードメインの不整合
これはDMARCの整合性チェックに影響を与え、認証失敗につながります。 - サードパーティ送信サービスのDKIM未対応または設定不備
外部メールサービスがDKIM署名を正しく処理できない場合、認証が行われません。
これらのいずれかの問題が発生すると、DKIM認証が失敗し、メールの到達率に悪影響を与える可能性があります。
- DNSレコードの構文エラーや公開ミス
- DKIMレコードの設定にはどのくらい時間がかかりますか?
-
鍵の生成やメールサーバの設定自体は、システム環境にもよりますが、数分から数時間程度で完了することが多いです。
公開鍵レコードをDNSに登録する作業も比較的短時間で行えますが、DNSの変更がインターネット全体に反映されるまでには、数分から最大で48〜72時間かかる場合があります。これは、DNSプロバイダやTTL(Time To Live)の設定によって異なります。
設定完了後は、DKIMが正しく動作し続けているかを確認するために、DMARCレポートなどを活用した継続的な監視を行うことが推奨されます。 - DKIM認証が失敗した場合はどうなりますか?
-
メールのDKIMチェックが失敗した場合、それはメッセージが転送中に改竄されたか、または送信元ドメインによって正しく署名されていないことを意味します。
受信サーバはそのメールを疑わしいものとして扱い、スパムや迷惑メールとしてフラグ付けする可能性があります。さらに、そのドメインにDMARCポリシーが設定されており、同時にSPFの認証も通過・整合していない場合には、DMARCポリシー(
p=quarantineまたはp=reject)に従って、メールが隔離(迷惑メールフォルダ行き)または完全に拒否されることがあります。
SPFを併用することで、DKIMが失敗した場合でも認証を補完する仕組みを提供できます。 - SPFとDKIMは両方必要ですか?
-
SPFとDKIMは、それぞれ独立したメール認証プロトコルであり、単独でもある程度の認証を行うことができます。
しかし、両方を併用することが業界のベストプラクティスであり、強力なメール認証を実現するために強く推奨されています。
SPFは送信元IPアドレスの正当性を確認するのに対し、DKIMはメッセージの完全性と送信元の真正性を検証します。このように、それぞれが異なる側面を補完し合う関係にあります。
SPF、DKIM、そしてDMARCを組み合わせて導入することで、なりすましやフィッシング攻撃に対する防御力を大幅に高め、メールの到達率を改善し、ドメインの信頼性と評判を守る強固なフレームワークを構築できます。