【図解】初めてでも腹落ち!DKIMの仕組みと設定方法

2023年5月11日

前回のブログではSPFについて解説させていただきましたが、今回は一緒に設定することが一般的なDKIMについての記事です。

SPFと比べて、どういった理屈で認証されているのかという話が少し複雑になるのですが、ネットなどでわかりやすい解説があまり見つからず、なかなか理解が進まない方もいらっしゃるかもしれません。

そこで今回は『blastengine』の開発を行っている弊社のメール技術の専門家に聞いた内容を、今までDKIM署名の概念に触れたことが無い方向けに、わかりやすく解説させていただきたいと思います。

1. DKIMとは

1-1. DKIMの背景としての電子メールのセキュリティ課題

電子メールは現代のコミュニケーション手段として非常に便利ですが、同時に以下のようなセキュリティ課題を抱えています。

1-1-1. メールスプーフィングの問題

メールスプーフィングとは、送信者が他人になりすますことで、受信者を騙す行為です。これにより、受信者は誤った情報に基づいて行動する危険性があります。

1-1-2. フィッシング攻撃の増加

フィッシング攻撃は、悪意のある第三者が偽装したメールを送り、個人情報やアカウント情報を盗み出すために用いられます。統計によると、フィッシング攻撃は近年でも増加傾向にあります。

1-1-3. 電子メールの信頼性低下

上記の問題により、電子メールの信頼性が低下しています。送信者が正当であるかどうかを確認する方法が不十分であるため、受信者はメールの内容に疑問を持つことが多くなっています。

1-2. DKIMの概要

DKIM(DomainKeys Identified Mail)は、電子メールの送信者認証技術の一つです。導入することでメールの安全性を受信者に対してアピールすることができ、迷惑メールフォルダ振り分けられてしまったりメールが受信サーバーに弾かれてしまうなどのリスクを下げることができます。

具体的には以下の仕組みがあります。

1-3. 鍵ペアを用いた署名と検証プロセス

DKIMでは、送信者は秘密鍵でメールに署名し、受信者は公開鍵で署名を検証します。これにより、送信者の正当性とメールの改ざんがないことを確認できます。

以下に署名から認証までのプロセスを解説していきます。わかりやすくするために認証がパスするパターンと失敗するパターンに分けています。

①認証をパスするパターン

下の図のようにhoge.comの管理者である正規のメール送信者から、DKIM署名がなされたメールが届くと受信サーバーがhoge.comのDNSサーバーにある公開鍵を確認します。

DKIM認証passパターン①

公開鍵を得たあとの認証プロセスとしては次の通りです。
公開鍵と署名から得られたハッシュ値と、実際に受け取ったメールから生成したハッシュ値を比べてメールの正当性を確認します。

DKIM認証passパターン①プロセス

これが認証をパスする場合の流れになります。

ここからは更なる理解のために認証をパスしないパターンをについて説明します。
DKIMでは正当な送信者からの改ざんを受けていないメールであることが証明されるので、②正当な送信者ではない場合、③改ざんを受けている場合について記載しています。

②認証をパスしないパターン(不正な送信者からのなりすまし)

次の図では不正な送信者が自身の保有する秘密鍵でDKIM署名を行ったうえで、hoge.comを装ったメールを送った場合を想定しています。

この場合でも受信サーバー側はhoge.comのDNSサーバーにある公開鍵を確認することができます。

DKIM認証failパターン①

ここでは署名を行った秘密鍵と公開鍵がペアにならないため、下の図のように複合化に失敗してしまいます。

DKIM認証failパターン①プロセス

これが不正な正当な送信者ではない場合のパターンになります。付け加えると、そもそもDKIM署名がついていない場合。署名がなされていないという理由でメールが弾かれる場合もあります。(DKIM導入のメリットで後述します。)

②認証をパスしないパターン(内容が改ざんされている)

最後はメールが送信された後に改ざんされている場合について説明します。

DKIM認証failパターン②

ここではDKIM署名自体はhoge.comとペアになる秘密鍵で行われたものになるので、複合化することができます。しかし、メールの内容が改ざんを受けて異なるものになっているので、複合化して得られたハッシュ値と、実際のメールのハッシュ値も異なるものになります。

DKIM認証failパターン②プロセス

このようにして、改ざんを受けている場合の検知が可能になります。

以上がDKIM認証が動作する理屈となります。さらに細かい技術的な説明は専門のウェブサイトにお願いして、ここからはDKIMを導入することで得られるメリットについて解説していきます。

2. DKIMの導入メリット

2-1. 送信者の信頼性

DKIMを導入することで、以下のような信頼性の強化が図られます。

メール受信者の安心感向上

DKIMによる送信者認証があることで、受信者は送信者が正当であることを確認でき、安心してメールを開くことができます。

GmailでDKIMがpass

Gmailでは上の図のようにDKIMが成功しているかを確認することも可能です。

送信者の信用度向上

DKIMを導入した企業や組織は、企業や組織全体のセキュリティ対策にきちんと配慮をしているということが明示的になり、送信者としての信用度が向上し、顧客や取引先からの信頼も得られます。

2-2. 受信ボックス到達率の改善

DKIMを導入することで、メール受信サーバー側で安全なメールであることが確認しやすくなり、DKIMが導入されたメールは、スパムと誤認されにくくなり、配信成功率が向上します。

また同様に、迷惑メールボックスに入ってしまう確率も下がるため、メールが届いていることをよりユーザーにはっきりと認知させることができ、開封やリンクのクリック率にも好影響が期待できます。

(もちろん正当な送信者からの配信でのみ上記のメリットを受けることができます。)

2-3. スパム対策への貢献

DKIMの導入は、インターネット全体のスパム対策にも貢献します。

DKIMを使用したメールは、スパムメールとして識別されにくくなり、正当なメールがスパムフィルターによって誤ってフィルタリングされるリスクが減少します。同時に、不正な送信者を特定しやすくなり、迅速に排除することができます。

多くの企業や組織がDKIMを導入することで、インターネット全体のスパム対策が向上します。これにより、スパムメールが減少し、全体のメール環境が改善されることが期待されます。

3. DKIMの設定方法

ここからは実際にDKIMを設定する方法について、概要をご紹介させていただきます。DKIMの実装は環境に依存する部分もあり、詳細な設定はほかの記事に譲らせていただきます。

また、blastengineを使っている場合のDKIM署名に関しては管理画面にも設定方法を記載しているので、サインアップしてご確認ください。(blastengineの設定でわからないことがありましたらいつでもお問い合わせください。)

3-1. 設定手順

今回は大まかな手順を説明します。実際の導入にあたってはOpenDKIMなどを利用するとスムーズになります。OpenDKIMはDKIM署名と検証を行うオープンソースのソフトウェアです。

①ソフトウェアの設定

OpenDKIMなどのサービスを使い、鍵ペアの作成とレコードの生成を行います。

②DNSにDKIMレコードを追加

生成したDKIMレコードをDNSサーバーに公開して受信サーバー側が参照できる状態にします。

③設定確認

DKIMレコードが正しく設定されているかは、検証ツール(例:DKIMCore)を利用して確認することが可能です。こちらにセレクター(ドメイン内で複数の公開鍵を運用するための識別子)とドメイン名を入れると、そのレコードが有効かどうかを結果として表示してもらうことができます。

④テストメールの送信

OpenDKIMなどのソフトウェアを使うことでDKIM署名を行った状態でメールを送信することができるので、最終的にはGmailなどに実際にメールを送ってみて、2-1. 送信者の信頼性で掲載した画像のようにDKIM認証がpassの状態になっているかを見て、実際に認証が成功しているかを確認する必要もあります。

3-2. メール配信ツールを利用している場合のDKIM設定

先ほどの設定方法は自社でのメール配信における設定方法でしたが、メール配信ツールを使っている場合はツールのドメインでDKIM署名を行うといったケースもあります。メールの作成者のドメインで署名を行うものを作成者署名と呼ぶのに対して、メール配信サービスのドメインでの署名は第三者署名と呼ばれています。

第三者署名

メール配信サービスからメールを配信する際に自動的にされているDKIM署名が、これにあたります。ユーザーが自社のDNSサーバーにテキストレコードを入れるなどの設定をしなくても良い反面、本当に作成者のドメインから送られているのかを証明することができず、認証の強度が弱まってしまいます。

作成者署名

作成者署名は、メール配信ツール側に設定を行うことで、ツールからのメール配信においても、自社ドメインのDNSサーバーでDKIM署名の認証を行うことができる方式です。『blastengine』でも管理画面から設定することが可能です。作成者署名であれば作成者のドメインの管理者から送られていることが確認できるため、送信者の信頼性を高め、メールの認証性が向上します。

作成者署名の設定方法

メール配信ツールで作成者署名を設定する場合は、配信ツールのドキュメントやヘルプセンターを参照し、指示に従って設定を行ってください。

4. DKIMと他のメール認証技術

以前のブログでも紹介したように、DKIMの他にもメールの正当性を証明する方法はいくつかあり、組み合わせて活用することで価値を発揮していきます。ここではそれぞれの認証方法の違いに着目して、簡単な解説をさせていただきます。

4-1. DKIMとSPFの違い

SPFの概要

SPF(Sender Policy Framework)は、送信者のドメインが許可されたメールサーバーから送信されていることを確認するためのメール認証技術です。SPFは、DNSに登録されたレコードに基づいて、送信元のIPアドレスを検証し、メール送信元の正当性をチェックします。

詳細は別のブログでも紹介しているのでよければご覧ください。

SPF認証が必要な理由と設定方法

DKIMはメールが送信元ドメインの所有者によって作成されたもので改ざんを受けていないことを証明するのに対して、SPFは送信元ドメインの所有者が許可したIPからメールが送信されていることを証明しており、それぞれ異なる観点からメールの正当性を検証していることになっています。

DKIMとSPFを併用した場合のメリット

弊社にも、「DKIM/SPFは両方設定しなければいけないのか?」という質問はよくいただくのですが、端的に答えるとすると片方だけしか設定していない場合、「頭隠して尻隠さず」くらいのレベルになると考えています。(※とは言え頭だけでも隠した方がいいとは思います。)

DKIMとSPFを併用することにより、以下のメリットが得られます。

  1. 送信者認証の強化: SPFだけではメールが改ざんを受けている可能性を捨てきれず、DKIMでメール内容の改ざん検出を行うことで、認証が確実なものにすることができます。また、DKIMのみの場合、悪意のある送信者がDKIM署名のないなりすましメールを送った場合、受信サーバー側はDKIMレコードの有無を確認する訳ではないため、毎回確認されるSPFがないと正当性が判別できなくなってしまいます。
  2. 電子メールの信頼性向上: DKIMとSPFの両方の認証が成功することで、受信者はメールの信頼性が高いと判断でき、迷惑メールボックスに入らなくなったり、メールサーバーからブロックを受けることが少なくなることが期待できます。

4-2. DMARCとの違い

DMARCの概要

DMARC(Domain-based Message Authentication, Reporting & Conformance)は、DKIMとSPFの結果に基づいて、メールの認証ポリシーを定義する技術です。DMARCは、DKIMやSPFの検証結果を組み合わせて、送信ドメインが設定したポリシー(メールを止めるor送信される)に従ってメールが送信されているかどうかを判断します。また、DMARCは認証結果の報告機能も提供し、ドメイン所有者がメール送信の状況を把握しやすくなります。

DKIM、SPF、DMARCの統合運用

DKIM、SPF、DMARCを統合して運用することで、最も強力なメール認証を実現できます。具体的なメリットは以下の通りです。

  1. 強固な送信者認証: DKIM、SPF、DMARCの組み合わせにより、送信者の正当性がより正確に検証され、不正なメール送信が防止されます。
  2. DKIMの弱点に対する補完:DKIMはSPFと違い、秘密鍵が秘匿されていることによって成立しているため、攻撃によって漏洩したり、クラックされてしまうなどのリスクも孕んでいます。DMARCによってSPFの認証結果を参照されることで、そういった事象が起きてもSPFが防波堤の役割を果たして不正なメール送信を防ぐことができます。
  3. レポート機能:DMARCでは認証が失敗したメールの送信元などを記録することができます。これによって例えば、何かの設定変更によって自社サーバーのDKIMやSPFの設定が不正な状態になっていたとしても気づくことができるようになります。

総じて、DKIM、SPF、DMARCを統合運用することで、電子メールの信頼性やセキュリティが大幅に向上し、スパムやフィッシング攻撃のリスクが軽減されます。これにより、企業や個人は安心して電子メールを利用することができるようになります。

5.まとめ

いかがでしたでしょうか?

DKIMは、電子メールの送信者認証と改ざん防止を目的とした有効な技術です。適切な設定と運用により、スパムやフィッシングメールを防止し、メール通信の信頼性を向上させることができます。さらに、SPFとDMARCと組み合わせることで、メール認証の効果を最大限に発揮し、より安全なメール環境を実現することができます。

今回はDKIMの設定方法に関しては詳しく触れていませんが、いずれ別のブログなどでご紹介できればと思います。もしすぐに導入したいという方がいらっしゃいましたら、是非『blastengine』を使って簡単にDKIMの導入することをご検討ください。電話やメールでのサポートに加えて、無料のトライアルも提供しております。

以上。長くなってしまいましたが、これを読んだ皆様がDKIMの仕組みと必要性について理解をふかめることができれば幸いです。

まずは無料でAPI連携、SMTPリレーを試してみませんか?

クレジットカード登録などの支払い情報登録は必要ありません

無料トライアルプランを試す
問い合わせはこちら