ベアメール

blogベアメールブログ

メール用語解説

DKIMとは? 仕組み・メリット・設定の方法まで解説

DKIM

目次contents

はじめに

送信ドメイン認証は、送信元メールサーバのIPアドレスや電子署名を利用して、送信元のドメインが詐称されていないかを検証し、メールの信頼性を上げ、到達率の改善に貢献する仕組みです。2021年時点では、送信ドメイン認証として主に「SPF」「DKIM」「DMARC」の3つが使用されています。中でも「DKIM」は、電子署名や公開鍵を用いてメールの正当性を担保するため、非常に重要な施策です。ここでは、DKIMの仕組みや特徴、メリット、設定方法などについて解説します。

※本記事は最新の情報をもとに、2021/8/24に内容を更新いたしました。

送信ドメイン認証「DKIM」とは

まず、DKIMの概要について解説します。DKIMは、「DomainKeys Identified Mail」の略称であり、 電子署名を利用し、 メールの内容がメール作成時点(オリジナル)から改竄されていないことを検証する仕組みです。DKIMの誕生は2000年代中盤までさかのぼります。

2005年頃、検索エンジン大手の米Yahoo!社とネットワーク関連機器大手の米Cisco社の2社は、偽装メールに対する技術開発で協力しはじめます。Yahoo!が持つ「DomainKeys」と、Ciscoが持つ「Identified Internet Mail(IIM)」という2つの署名ベースの認証技術が統合され、標準化が進められました。その結果、2007年5月に「RFC4871」として公開され、現在のDKIMの原型が出来上がりました。その後はいくつかの変遷をへて、2011年9月にRFC6376へ、2013年6月にSTD76(Standard)として規定され、インターネット標準の送信認証技術として認知されています。

DKIMの仕組みと特徴

DKIMは、送信者がメールに電子署名を付与し、受信側は「公開鍵」と「秘密鍵」を使って電子署名を検証することで、送信元のなりすましやメール内容の改竄が行われていないかを確認する仕組みです

DKIMの仕組み

具体的には、まず送信側がメールの作成時に、秘密鍵の所有者のみが作成可能な「電子署名」をヘッダフィールドにDKIM-Signatureとして付与します。秘密鍵に対応する公開鍵はDNSサーバに予め登録しておきます。電子署名をつけたメールは送信メールサーバからインターネットを通じて送信され、受信メールサーバを経て受信者のもとに到着します。このとき、受信側はDNSサーバから取得した公開鍵情報を使用して、メールに付与された電子署名で送信者の身元をチェックします。

また、万が一メールが改竄されてしまった場合は電子署名の検証自体ができなくなるため、DKIMによってメールの内容が改竄されていないかもチェックすることができるのです。

DKIMによるメール保護のステップ

ステップ1 :     DKIMに利用する秘密鍵を送信メールサーバに登録する。

ステップ2 :    DKIMに利用する公開鍵は、送信ドメインの DNSサーバ( TXT レコード)に登録する。

ステップ3 :    メール送信時に、メールのヘッダ・本文から作成したハッシュと送信メールサーバの秘密鍵を使って電子署名を付与する。


ステップ4 :    受信者はメールのヘッダ・本文からハッシュを作成する。また、公開鍵を利用して電子署名からハッシュを復号し、受信者が作成したハッシュと比較することで偽装および改竄がされていないことを確認。



DKIMの種類

DKIMの電子署名には「作成者署名」と「第三者署名」の2種類があります。




●作成者署名

メール送信者(作成者)のドメインで署名を付与する方式です。受信側はメール送信者(作成者)のドメインから送信されたメールであることが確認できます。




●第三者署名

メール送信者(作成者)のドメインではなく、配送を中継するメールリレーサービスなどのドメインで電子署名を付与する方式です。受信側はメール送信者(作成者)のドメインであることは確認できませんが、送信されたメールサーバのドメインは確認することができます。

メール作成・配信に外部サービスを利用する場合や、自社でDKIMを利用する仕組みを構築するリソースが無い場合は、第三者署名を利用するという選択肢もあるでしょう。ただしDMARCを導入したい場合は、第三者署名では利用できないため、作成者署名に対応する必要があります。

DKIMの特徴とメリット

ここでは、同じく送信ドメイン認証技術であるSPF・DMARCと比較しながら、DKIMの特徴・メリットを解説します。



●SPFの特徴

・正当性の判断…送信メールサーバのIPアドレスで判断

・導入コスト…DNSにSPFレコードを設定するだけなので、導入コストが非常に低い

・メリット…導入が簡単であり、最も普及しているため扱いやすい




●DKIMの特徴

・正当性の判断…電子署名の検証により判断

・導入コスト…送信側の導入コストは高い、受信側にも検証を処理する仕組みが必要

・メリット…メール配送の途中においてメール内容が改竄されると認証が失敗するため、メール本文の改竄を検知できる。




●DMARCの特徴

・正当性の判断…SPFおよびDKIMの認証結果を利用して判断

・導入コスト…送信側はSPF・DKIMの導入が済んでいれば比較的容易(※DKIMは後述の「作成者署名」である必要あり)、受信側は一定の処理が必要

・メリット…認証失敗時の処理を設定することで、自社ドメインになりすました可能性のあるメールを排除することができる。メール受信元のプロバイダからSPF・DKIMの認証結果の詳細なレポートを受け取ることができる。

SPFは送信に利用されたIPアドレスを確認する方式のため、送信者の「身元の正当性」はチェックできても、メールの内容についてはチェックすることができません。例えば、もし「ヘッダFrom」や「Reply-to」などが改竄されたとしても、検知することができないのです。しかし、DKIMはこれらヘッダ情報への改竄も検知できるため、なりすましを防ぎメールの信頼性を強化できると言えます。

このように電子署名を使って「メール本文の改竄」を検知できることが、DKIMが持つ最大のメリットと言えます。送信元の身元をはっきりさせるだけであればSPFのみで事足りますが、メールの内容まで保証し、さらなる正当性と安全性を確保したい場合はDKIMの導入をおすすめします。

DKIMの導入・設定方法

DKIMを利用するためには、電子署名の作成に必要な秘密鍵・公開鍵を作成するツールの導入・DNSサーバへの公開鍵の配置が必要であり、一定の手間がかかります。ここではどのような作業が必要なのか、簡易的な手順を説明します。

DKIMの導入手順

DKIMを導入する際に必要な作業・流れを簡単に説明します。ここではDKIMの署名に必要な秘密鍵・公開鍵のペアを作成するためのツールとして「OpenDKIM」を使用するものとしています。



●OpenDKIMとは

OpenDKIMは、DKIMサービスを提供するためのオープンソースパッケージを開発・保守するためのコミュニティです。米Sendmail社によって開発および保守されているオープンソースの「dkim-milter」パッケージをもとにプロジェクトが開始されました。

OpenDKIMのパッケージには、DKIMサービスを実装するライブラリと、PostfixやSendmailといったMTAに機能を提供するミルターベースのフィルターアプリケーションで構成されています。

※ミルター(milter):PostfixやSendmailなどのMTAで利用できる拡張機能のこと、またはそのインターフェースのこと。

参考:http://www.opendkim.org/



●DKIM設定の流れ



(1)OpenDKIMパッケージのインストール

リポジトリからDKIMのパッケージをインストールします。



(2)OpenDKIMの設定

OpenDKIMのコンフィグファイルにドメインやログ、モード(送信時の署名・受信時の確認)など基本的な項目を設定します。



(3)MTAとの紐付け

OpenDKIMはPostfixやSendmailといったMTAと紐付ける設定をする必要があります。MTAのconfigにOpenDKIMのmilterを使用する記述を追加し、MTAを再起動します。



(4)鍵ペアの作成

鍵を格納するためのディレクトリを作成し、対象のドメイン・セレクタ名・保存先のディレクトリを指定して鍵を作成します。自動で鍵を作る設定になっている場合もありますが、自動作成の設定はオフにし、自分で鍵を作成することが推奨されています。



(5)DNSへの公開鍵の登録

作成した鍵ペアのうち、公開鍵をDNSにTXTレコードとして登録します。
作成した公開鍵を登録する場合のFQDNは以下のようになります。


<セレクタ>._domainkey.<ドメイン名>



TXTレコードはタグを利用することで、公開鍵データだけでなく方式などを指定することができ、具体的なレコードの例としては以下のような形になります。


xxxxxxx._domainkey.sample.jp 300 IN TXT “v=DKIM1; k=rsa; t=y; p=xxxxxxxxxxxxxxxxxxx…



【DKIMレコードのタグの意味】

vKeyレコードのバージョン番号を表し、「v=DKIM1」と記す。必須ではないが、レコードの最初に記述することが推奨されている。
k電子署名の鍵の形式を表し、現在RSA形式のみサポートしているため「k=rsa」と記す。省略可能。
tフラグを指定する。コロン(:)で区切ることで複数指定することもできる。指定できるフラグには「y」と「s」があり、「y」はDKIMの運用がテストモードであることを示す。yのフラグが立っている場合、受信者は認証成功の可否はメールの処理に反映しない。
p公開鍵のデータを保持するタグのため、必須。鍵データはBase64でエンコードする。



(6)動作確認

設定完了後は、実際にメールを送信してメールヘッダで確認するか、確認ツールなどを使用して正しく認証できているか動作確認をするようにしましょう。

DKIMの確認方法については、こちらの記事でも詳しく解説しています。

「なりすましメール対策「SPF」「DKIM」の具体的な確認方法」

参考:

一般財団法人日本データ通信協会「送信ドメイン認証技術導入マニュアル第2版 ~第4章~」
一般社団法人日本ネットワークインフォメーションセンター「送信ドメイン認証運用実践 DKIM設定・運用」
一般財団法人インターネット協会「DKIM (Domainkeys Identified Mail)」

DKIM導入後の注意点

DKIMは導入して終わりではなく、運用時にもいくつか注意すべき点があります。せっかく導入したDKIMの認証を正しく機能させるためにも、以下について気をつけるようにしましょう。



●鍵の管理

DKIMの電子署名の作成に使用した秘密鍵は、外部に漏洩しないよう管理する必要があります。もし秘密鍵が漏れてしまうと、第三者が同じ電子署名を作成できてしまうため、認証が成立しなくなります。

また、セキュリティの観点から秘密鍵・公開鍵のペアは定期的に変更することが望ましいとされています。鍵ペアの更新の際には、古い秘密鍵で署名したメールがまだ受信されていない可能性も鑑み、古い公開鍵もDNSに一定期間は残しておく必要があります。DKIMは「セレクタ」を利用することで同一ドメインに複数の鍵を設定することができるので、新しい鍵を並行してDNSを公開するようにしましょう。古い公開鍵は1週間〜10日ほど残し、その後削除するようにします。



●DNSの運用

DKIMを導入すると以前に比べDNSへの負荷が高まります。DNSクエリ(DNSへのリクエスト/問い合わせ)が失敗してしまうとDKIM認証も失敗(DKIM fail)の原因になってしまうため、もし自社でDNSサーバーを運用している場合はDNSの監視運用についても以前より注意すべきでしょう。



●OpenDKIMの監視

OpenDKIMが正しく稼働しているかも監視しておくことが望ましいでしょう。MTA(Postfix、Sendmail)のMilterが起動しているか、受信時の確認結果および送信時の署名結果についてのログを監視することで運用監視が可能です。

DKIMの普及率と導入の必要性

最後に、DKIMの普及率と必要性について解説します。

DKIMの普及率

総務省が発行している「迷惑メール対策ハンドブック2016」によれば、DKIMの普及率は45.79%とされています。また、2020年3月時点で電気通信事業者4社の送信ドメイン認証結果(DKIM)を見ると、普及率は約61.7%と推測できます。(これは「署名なし」を全体から差し引いた数値です。)こうした情報を総合すると、DKIMの普及率は50%~60%台と推測でき、少しずつ導入の割合も伸びていることがわかります。

同じようにSPFの普及率を調査すると、2020年3月時点ですでに90.5%にも達しており、導入が容易で扱いやすいSPFのみを導入しているドメインが多いと理解できます。

ちなみに、SPFとDKIMの導入が前提となるDMARCの普及率はまだまだ低く、SPFとDKIMの双方を利用しているドメインが少ないことを表しているといえるでしょう。

参考:

一般財団法人日本データ通信協会「迷惑メール対策ハンドブック2016」

一般財団法人日本データ通信協会「迷惑メール白書 2020」

DKIM導入の必要性

ECやオンラインバンキングの普及によって、送信元のみならず「内容の改竄」を防ぐ仕組みが注目されています。コロナ禍の影響からオンラインでの消費者行動が増えている今、メールは商取引の正当性を担保する重要な「証跡」です。SPFでは「送信者の身元」を検証し、DKIMでは「メールの内容が改竄されていないこと」を検証するため、本来は2つでひとつのソリューションと言えます。

しかし、DKIMはその設定の手間から敬遠されがちであり、SPFに比べると普及率が低いです。言い換えれば、DKIMを導入することで他社よりもセキュリティ意識が高いことをアピールするきっかけにもなるでしょう。

まとめ

ここでは、DKIMの歴史や仕組み・特徴・ 設定と運用の注意点・ 普及率などについて解説してきました。DKIMは導入に一定の手間がかかります。しかし、SPFと併せることで強固な送信ドメイン認証システムを構築できるというメリットがあります。迷惑メールと判定されず、メールをより確実に相手に受け取ってもらうためにも、DKIMの導入をおすすめいたします。

mailscore

この記事を読んだ人へオススメrecommended