DKIMメールセキュリティ技術とは?DKIMを解説

メール認証におけるDKIMの役割がもたらす効果を解説します。DKIMとは何か、そしてメールセキュリティをどのように強化するのかを学びましょう。

執筆者
Chad Kime
Chad Kime
May 24, 2023
13 minute read
eSecurity Planet のコンテンツおよび製品のおすすめは、編集上の独立性を保っています。パートナーへのリンクをクリックすると、当社が報酬を得る場合があります。 詳細を見る

DomainKeys Identified Mail(DKIM)メール認証標準により、メールサーバーは受信メールを検査し、送信者を確認するとともに、メールメッセージの改ざんを検出できます。この標準は、メールが転送中に傍受・改変されたかどうかを判断するという課題を解決し、SPAMやなりすましメールの検出にも役立ちます。

DKIMを導入すると、組織は自組織のメールの評価を高められるほか、受信側のメールサーバーによるメールセキュリティの向上も可能になります。

この記事では、次の内容を解説します。

DKIMの仕組み

DKIMを大まかに説明すると、組織がメールの重要な部分について暗号化ハッシュ値を提供できるようにする仕組みです。公開鍵と秘密鍵のペアを使った暗号化により、受信側のメールサーバーは、受信したメールのハッシュ値と提供されたハッシュ値を比較し、転送中に改変が行われていないかを検証できます。

DKIMチェックに成功すると、メールの「from」フィールドに記載された組織と、その組織に関連付けられたDNSを照合して、メールの所有権も確認できます。DKIMのハッシュ値が一致しないメールは改変された可能性があるため、受信者への注意喚起として拒否、隔離、またはSPAM扱いになることがあります。

eSP: How DKIM Lookup Works
How DKIM Lookup Works

DKIMの基礎

DKIMとその標準に関する詳細情報は、Internet Engineering Task Force(IETF)が公開しています。DKIMとその標準が最後に更新されたのは2011年です。DKIMは、組織がホスティングするDomain Name Service(DNS)レコード内のテキストファイルとして展開されますが、標準を正しく導入・維持するのは複雑な場合があります。幸い、各コンポーネントとその仕組みを理解すれば、この複雑さは容易に管理できます。

DKIM DNSレコードの基本構造

DKIM DNSレコードは非常にシンプルで、レコードの内容だけでなくファイル名からも情報を伝えます。内容は多くの場合、次のようになります。

v=DKIM1; p=76E679F05F709AF665853833EEC3F5ADE69A2392BEBE40658267AB3BD3CB6CBE

ここで「v」はバージョンを表し、常にDKIM1です。「p」フィールドは公開暗号鍵の値です。

ファイル名は<selector>._domainkey.<domain>の形式になります。Selectorはファイルのバージョンを示し、組織はメールサーバーごとに異なるselectorを使用します。Domainは組織のドメインです。たとえば、ファイル名nashville._domainkey.exampledomain.comは、exampledomain.comを使用する組織におけるnashville selectorを表します。

DKIMの基本プロセス

DKIMの処理は、次の手順で行われます。

  1. 組織がDKIMファイルをDNSに公開する
  2. 組織が、ハッシュ処理に含めるヘッダーフィールドと、本文全体または本文の一部のどちらをハッシュ化するかを決定する
  3. 送信メールサーバーが選択したフィールドのハッシュ値を計算し、メール送信時にDKIM情報をDKIMメール署名(下記参照)としてメールに含める
  4. 受信側のメールサーバーまたはメールゲートウェイが、含まれているDKIM署名と、組織の公開暗号鍵(DNSに登録されたDKIMレコードに保存)を使ってDKIM署名を再計算し、検証する
Advertisement

注意点として、ハッシュ化する項目を決める際には、厳密性と使いやすさのバランスを取る必要があります。フィールドやテキストを増やすほど安全性は高まりますが、送信や転送の過程でメールに軽微な変更が加えられることがあり、余分なスペースや改行によって、見た目には完全で改ざんされていないメールでもハッシュ値の検証に失敗する可能性があります。

次の安全性の高いメールゲートウェイソリューション

DKIMメール署名

送信元の組織は、DKIMハッシュ文字列を作成するためにメールのどのフィールドを暗号化するかを決め、送信メールにデジタル署名として含めます。送信メールサーバーは、選択したフィールドのテキスト値を取得し、通常はSHA-256などのハッシュアルゴリズムを使ってハッシュ文字列を作成します。ハッシュ文字列が生成されると、メールサーバーは秘密暗号鍵でハッシュ文字列を暗号化し、暗号化されたハッシュ文字列をDKIMメール署名としてメールヘッダーに含めます。

通常、組織は送信ドメインとメッセージ本文の一部を選択してハッシュ値を生成します。

例:

DKIM-Signature: v=1; a=rsa-sha256; d=sampledomain.com; s=nashville;
c=relaxed; q=dns/txt; t=1117574938; x=1118006938;
h=from:to:subject:date:keywords:keywords;
bh=MTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTI=;
b=dzdVyOfAKCdLXdJOc9G2q8LoXSlEniSbav+yuU4zGeeruD00lszZ
VoG4ZHRNiYzR

このファイルを構成する要素は次のとおりです。

要素と値意味必須要素?
v=1v=バージョン。常に1必須
a=rsa-sha256a=署名アルゴリズム。多くのアルゴリズムを使用できますが、メールサーバーがサポートするのはrsa-shaまたはrsa-sha256のみの場合があります必須
d=
sampledomain.com
d=署名ドメイン識別子(SDID)。メールを送信する組織のドメインであり、DNSおよびDKIMレコードが配置されるドメイン必須
s=nashvilles=Selector。このDKIMファイルに固有の名前。複数のDKIMファイルを使用する場合、受信メールサーバーはselector名に基づいて正しい公開鍵を検索する必須
c=relaxedc=正規化アルゴリズム。値は「relaxed」または「simple」。ハッシュ値の計算時に、メールヘッダーや本文への変更を一切許容しない単純な計算にするか、ヘッダーの折り返し方やメール本文の空白の扱いに関する軽微な変更を許容する緩やかな計算にするかを指定するいいえ。ただし推奨
q=dns/txtq=公開鍵の取得に使用するクエリ方式。デフォルトは「dns/txt」で、DNSクエリを使用し、テキストファイル(TXT)が返されることを意味する必須
t=1127574938t=タイムスタンプ、つまりメッセージに署名した時刻必須
x=1168006938x=DKIMの有効期限。この有効期限を過ぎると、その他の検証がすべて一致していてもDKIMは失敗するいいえ。ただし推奨
h=from:to:subject:
Date:keywords:
keywords;
h=ヘッダー。DKIMの計算に含めるメールヘッダー内のヘッダーをコロンで区切った一覧。転送中に変更される可能性が高いヘッダーフィールドは避けるのが望ましい必須
bh=MTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTI=;     bh=(上記のaに示された)ハッシュ関数で正規化した後のメッセージ本文のハッシュ値必須
b=dzdVyOfAKCdLXdJOc9G2q8LoXSlEniSbav+yuU4zGeeruD00lszZ
VoG4ZHRNiYzR
b=(上記のaに示された)ハッシュ関数でハッシュ化したヘッダーと本文のデジタル署名。これが署名そのものを表し、メール内のその他すべてのDKIM情報は、署名ハッシュを正しく計算する方法を示す必須
i(上記には未記載)i = エージェントまたはユーザー識別子(AUID)タグ。SDIDドメインのデフォルト値の前に@文字を付ける場合に使用するいいえ
l(上記には未記載)l = メッセージ本文の長さ。値は76桁以下の10進数に制限され、メッセージ本文のバイト数を指定するいいえ
z(上記には未記載)z = コピーされたヘッダーフィールド。すべてのヘッダーフィールドとその内容を、縦棒文字(|)で区切って表示する 

DKIM Selector

組織のDNSサーバーには、組織内の各メールサーバーに対応するDKIMエントリ、つまりselectorが登録されます。一意のselector名は、DKIMファイル名だけでなく送信メールの署名に含まれる「s」タグにも記載されるため、受信メールサーバーはDKIM検証プロセスで使用すべきDKIMエントリを把握できます。

DKIM鍵のローテーション

暗号化を利用する場合、鍵を長期間使い続けるほど、盗難や侵害の可能性が高まります。このリスクを減らすため、4~6か月ごとに鍵をローテーション(現在の鍵を新しい鍵に置き換えること)することが推奨されます。

メールサーバーはどのようにDKIMを検証するのか?

暗号化されたDKIM署名付きのメールが受信メールサーバーに届くと、ヘッダーに記載された暗号化対象フィールド、使用されたハッシュアルゴリズムの種類、公開暗号鍵を確認するためのDKIM selectorが検査されます。次に受信メールサーバーは、指定されたメールフィールドを独自に暗号化し、公開鍵を使って暗号化されたメール署名のハッシュコードを復号して、一致するかどうかを確認します。

DKIMのハッシュコードが一致すればメールの完全性が確認され、このプロセスに合格したメールは受信者に配信されます。一致しないハッシュコードは、メールサーバーの設定に応じて破棄されたり、SPAMフォルダーに移動されたり、不審なメールとしてフラグが付けられたりします。

関連するメール認証標準

DKIMは、限定された範囲で送信メールの完全性を認証します。より堅牢なソリューションでは、SPFおよびDMARC認証フレームワークも実装します。

SPF: Sender Policy Framework(SPF)認証方式は、組織のドメインからメールを送信することを認められたメールサーバーを指定します。

DMARC: Domain-based Message Authentication Reporting and Conformance(DMARC)は、SPFおよびDKIMに失敗したメールをより直接的に制御できるほか、正規のメールとなりすましメールを報告できます。

Advertisement

Domain Keys Identified Email(DKIM)の設定方法

Domain Keys Identified Email(DKIM)では、ドメインのDNSサーバーへのファイル追加、暗号鍵の生成、送信メールサーバーの変更が必要です。

ドメインDNSを使用したDKIMレコードのインストール

ドメインのDNSにDKIMエントリを追加する手順は次のとおりです。

  1. ドメインレジストラにログインし、DNS設定を管理または構成するオプションをクリックする
  2. 「新しいレコードを追加」を見つけてクリックし、「TXT」レコードを選択する
  3. ホスト名のオプションでは、DKIMファイル名に使用する固有の「selector」を、送信メールサーバーごとに設定する必要があります
  4. 各ファイルでは公開暗号鍵を公開する必要があり、鍵はselectorごとに固有でなければなりません

DKIM暗号鍵の生成

DKIMレコードに使用できる公開鍵を生成する方法はいくつかあります。多くの場合、組織のDKIM署名はMail Transfer Agent(MTA)アプリケーションによって生成されます。それ以外の場合は、鍵を自分で生成する必要があります。

Linuxシステムではssh-keygenツールを使用するのが一般的ですが、WindowsではPuTTYgenが妥当な選択肢です。公開鍵と秘密鍵のペアの生成に役立つオンラインツールも複数あり、その中でも最も簡単なものの1つがDKIM Core Toolsです。

メールサーバーでのDKIM署名者の設定

DKIMのDNSエントリは要件の半分にすぎません。もう半分は、メールサーバーでDKIM署名者を設定することです。これは多くのメールシステムにとって複雑または困難な場合があります。

ただし、多くのメールプロバイダーはDKIMの設定ガイドを公開しており、顧客を支援するサービスを提供しているプロバイダーもあります。公開されているガイドの例は次のとおりです。

外部委託を希望する企業は、DKIMサービスプロバイダーやコンサルタントに依頼できます。基本的な初期設定から継続的な管理、暗号鍵のローテーションまで、さまざまなサービスが提供されています。

詳しくは:DMARCの設定と構成:ステップ別ガイド。

DKIMが機能しているかテストする方法

公開後は、MXToolboxまたはMail-tester.comなどのDKIMアナライザーを使用して、エラーを確認できます。その後、テストメールを送信してDKIM署名ファイルを検証できます。

テストメッセージが届いたら、メールヘッダーを展開します。送信者のドメインが「mailed-by」と「signed-by」の両方に表示されていれば、そのメッセージはDKIMによって正常に検証されています。

「Show Original」オプションを使用してメールヘッダーを調べ、DKIM認証の結果を確認することもできます。「PASS」とドメインアドレスが表示されていれば、すべて正常に機能しています。

DKIMのメリット

DKIMを導入する組織は、次のような大きなメリットを得られます。

悪意のあるコンテンツを検出

DKIMに合格しないメールは、受信メールサーバーに対して、受信したメールが傍受された可能性や、メールの内容にスパム、さらには悪意のあるコンテンツが含まれている可能性を示す警告となります。

なりすましを軽減

メールのフィッシング攻撃の一種であるメールスプーフィングは、正規の組織になりすまし、その組織の権威を装って悪意のあるコンテンツを被害者に届けようとします。適切に構成されたDKIMを導入すると、組織になりすますことが難しくなります。

メールサーバーがスプーフィングメールを受信すると、DKIM署名を確認し、DKIMに合格しないスプーフィングメールを拒否します。これにより、組織のブランドを悪用しようとするスパムメールをブロックし、企業の評判を守ることができます。さらに、組織の従業員、たとえばCEOになりすまそうとするフィッシング攻撃も阻止できます。

Advertisement

ドメインの評判を改善

組織がDKIMを設定していない場合、その組織のメールを受信するメールサーバーは、組織のドメインの真正性を確認できないため、メールにフラグを付けたり、拒否したりする可能性があります。DKIMを設定すると、組織のドメインの評判が向上し、正規のメールの到達率も改善します。メールサービス企業のPostmarkは、トラブルシューティングのプロセスを公開し、DKIM署名によってPDF文書を含むメールがSPAMフォルダーに振り分けられず、適切に配信される仕組みを具体的に示しました。

メール転送に対応

Sender Policy Framework(SPF)標準は、組織に代わってメールを送信する認証済みメールサーバーを検証できますが、転送されたメールは送信メールサーバーのIPアドレスと一致せず、SPFに失敗します。一方、DKIM暗号化アルゴリズムはメール転送後も有効であり、転送メールを検証して、コンテンツがスパムまたはスプーフィングとしてフラグ付けされるのを防ぐことができます。

DKIMのデメリット

DKIMは重要かつ有用な標準ですが、導入にあたって認識しておくべき課題もあります。

維持が難しい

組織は、変化するメールサーバー情報を反映したり、暗号鍵をローテーションしたりするために、DKIMファイルを定期的に更新する必要があります。サービスプロバイダーによってプロセスを簡略化できますが、DKIM導入の追加コストが発生します。

ドメイン所有者は、理想的には鍵を定期的に追跡してローテーションすべきですが、すべてのサービスで同じ鍵を使おうとするケースもあり、追跡が不可能になり、鍵のローテーションも難しくなります。

不完全なソリューション

DKIMはメールヘッダーの完全性のみを検証し、ユーザーに表示される「from」メールアドレスとの照合は行いません。フィッシング攻撃者が独自のDKIM暗号鍵を作成した場合、DKIMチェックが有効と判定される可能性があります。より堅牢な対策として、組織の評判と検証済みメールを保護するために、SPF、DKIM、DMARCを組み合わせて使用する必要があります。

暗号鍵の盗難

暗号鍵は盗まれる可能性があり、組織の暗号鍵を入手した攻撃者は、組織そのものであるかのようにメールに署名できます。

ROIの測定が困難

組織は評判の向上やメールの到達率改善を認識できますが、これらのメリットを投資対効果(ROI)の測定で定量化するのは困難です。さらに、悪意のあるメールコンテンツを検出する主なメリットは、一般に他の組織にもたらされるものです。受信メールサーバーやメールセキュリティツールはDKIMレコードを使用してスパムやフィッシングメールをブロックしますが、検証済みメールによるメリットの大半を享受するのは外部の組織です。DKIMの導入コストは低いものの、目に見えないROIやその他のデメリットが、導入率が13%を超えない理由となっています。

なりすましが可能

DKIMは、悪意のある攻撃者やスパマーを含め、どの組織でも導入できます。DKIMチェックではメール本文の「From」情報が常に含まれるとは限らないため、悪意のある攻撃者は独自のDKIMファイルを公開し、スプーフィングメールやスパムを認証できます。

Advertisement

適切なメールサーバー設定が必要

DKIMは、DKIMをチェックするよう設定されたメールサーバー、または同じ処理を実行するメールセキュリティツールでのみ機能します。サーバーはDKIMチェックを簡単に省略できるため、スパムやスプーフィングメールが拡散する可能性があります。

サーバーのオーバーヘッド

ハッシュ値の計算やDNSレコードの検索によってメール配信が遅くなり、サーバーリソースが消費されます。メール1通あたりの負荷はそれほど大きくありませんが、メール数が多いとサーバーに大きな負荷がかかる可能性があります。

DKIMに関するよくある質問

DKIM暗号化の仕組み

送信メールサーバーは、メールのどのフィールドを暗号化するかを決定します。送信者のドメインの秘密鍵は、送信するすべてのメールのデジタル署名にエンコードされます。公開鍵はDomain Name System(DNS)に保存され、暗号化されたデジタル署名付きのメールを受信するすべてのメールサーバーがダウンロードできます。DKIM署名はメールのハッシュ値を暗号化しますが、メール自体のどの要素も暗号化しません。

DKIM署名は偽造できるのか?

公開暗号鍵は利用可能ですが、DKIM署名を偽造することはできません。DKIMはPKI(公開鍵基盤)に基づいており、公開鍵と秘密鍵という1組の鍵を使用します。公開鍵はDNSレコードで公開されますが、秘密鍵はメールサービスプロバイダーのサーバーだけに保持されます。秘密の秘密鍵はメッセージへの署名に使用され、公開鍵は検証のみに使用されます。

DKIMはエンドツーエンドまたは完全なメール暗号化を提供するのか?

いいえ。DKIMはDKIM署名に暗号化されたハッシュ値を含めますが、それ以外の暗号化機能は提供しません。組織は必要に応じて他の暗号化ソリューションを導入する必要があります。

次の安全性の高い暗号化ソフトウェアとツール

DKIMは他のメッセージ署名プロトコルと似ているのか?

Pretty Good Privacy(PGP)やSecure/Multipurpose Internet Mail Extensions(S/MIME)などのメッセージ署名プロトコルを使用すると、ユーザーはメール本文を認証できます。ただし、これらのプロトコルでは送信者の認証に対応できません。DKIMは、送信者とメールの内容およびフィールドの両方を認証します。

まとめ:メール配信を改善するためにDKIMを導入する

DKIMによるメール認証は、受信メールサーバーにメッセージの有効性への信頼を高め、メッセージが意図したとおりに配信される可能性を高めます。この標準の維持には時間がかかる場合がありますが、信頼性が向上するだけでも、ほとんどの組織にとってDKIMを導入する十分な理由になります。さらに、スプーフィングメールの削減、メール転送の改善、なりすましの軽減といったメリットが、その取り組みを正当化します。

次に読む:ネットワークセキュリティとは?定義、脅威、保護策

この記事はもともとSean Michael Kernerが2018年1月12日に執筆・公開し、Chad Kimeが2023年5月24日に更新しました。

Chad Kime

eSecurity Planet lead writer Chad Kime covers a variety of security, compliance, and risk topics. Before joining the site, Chad studied electrical engineering at UCLA, earned an MBA from USC, managed 200+ ediscovery cases, and helped market a number of IT and cybersecurity products, then transitioned into technical writing policies and penetration test reports for MSPs and MSSPs.

eSecurity Planet Logo

eSecurity Planet is a leading resource for IT professionals at large enterprises who are actively researching cybersecurity vendors and latest trends. eSecurity Planet focuses on providing instruction for how to approach common security challenges, as well as informational deep-dives about advanced cybersecurity topics.

TechnologyAdvice が所有・運営しています。 © 2026 TechnologyAdvice. 無断転載を禁じます

広告主に関する開示:このサイトに掲載されている製品の一部は、TechnologyAdvice が報酬を受け取っている企業のものです。この報酬は、製品がこのサイトのどこにどのように表示されるか(表示される順序など)に影響する場合があります。TechnologyAdvice は、市場で入手可能なすべての企業やすべての種類の製品を掲載しているわけではありません。