よくある質問・用語集

  • もっと調べる
  • どうやって使う?

DKIMとは

DKIM(読み方:ディーキム)とは、Domainkeys Identified Mail の略であり、電子署名の技術を用いて、メールが正当な送信元で作成されたことを保証する、送信ドメイン認証の1つである。DKIMは、同じく送信ドメイン認証のSPFDMARCとともに、フィッシング詐欺やなりすましといった悪質な犯罪を防ぐ技術として広く利用されている。

もともと電子メールの仕組みでは、メールに差出人として表示される送信元の情報「ヘッダFrom」と、実際の送信元の情報「エンベロープ(=Envelope:封筒)From」が存在し、ヘッダFromのメールアドレスはユーザーが自由に設定できる仕様となっている。そのため、エンベロープFromが異なっていても、ヘッダFromを書き換えることで、簡単に差出人を詐称したなりすましメールを送れてしまう。この仕組みを悪用し大手企業などを騙ったスパム(迷惑)メールが後を絶たない。メール本文内のURLなどをクリックして特定のサイトへの遷移を誘導するフィッシング詐欺や架空請求などにより、個人情報が漏えいしたり、クレジットカードが不正利用されたりする被害が多く発生している。人の目では判別が難しい、こうしたなりすましメールの被害を防ぐための対策として、DKIMを含む送信ドメイン認証が有効である。

DKIMの仕組みによって、送信元の情報が正しいかどうか、メールの内容が改ざんされていないかどうかを受信者は判断することができる。同時に送信者側にとっては、DKIMを設定することにより、送信メールの信頼度を上げることができ、送信先での迷惑メール対策を回避できるというメリットがある。なお、Googleと米国Yahoo!が提示した「メール送信者のガイドライン」により、2024年2月より、GmailやYahoo!メールの利用の際は、SPF/DKIM/DMARCの設定が求められており、送信ドメイン認証の導入は喫緊の重要な課題となっている。

DKIMの流れ

DKIMでは、以下のような流れで署名と検証が行われる。

  1. 送信サーバーが、送信するメールに合わせてDKIM署名を作成する
  2. DKIM署名を送信者だけがアクセスできる秘密鍵で暗号化する
  3. 秘密鍵に対応する公開鍵は、送信側ドメインのDNSサーバーに登録しておく
  4. メールのヘッダにDKIM署名を挿入し、メールを送信する
  5. DKIM署名付きのメールを受信した受信サーバーは、取り出した情報をもとに、DNSサーバーから公開鍵の情報を取得する
  6. 公開鍵を使ってDKIM署名データの復号化を行い、データの正当性を検証する

DKIMの流れ

DKIMの流れ

DKIM署名の仕組み

上の説明の中で最初に作成されるDKIM署名だが、詳しくは、メッセージのFromアドレス、件名、本文といったフィールドの要素で生成されたハッシュ値を、秘密鍵を使って暗号化したものである。この署名データを、受信者が公開鍵を見つけるために使うセレクタや、ハッシュ値の生成アルゴリズムの情報等とともに、メールのヘッダに挿入し、メールを送信する。

受信者のメールサーバーは、セレクタに基づきDNSレコードから公開鍵を取得し、秘密鍵と一致することを確認しDKIM署名を認証する。これにより、署名は復号化され元のハッシュ値に戻る。次に、受信者は受信したメッセージについて、署名に含まれるフィールド(Fromアドレス、件名、本文等)のハッシュ値を独自に作成する。自ら作成したハッシュ値と、署名から復号した元のハッシュ値を比較し、メッセージの完全性を検証する形となる。

検証の際、両方のハッシュ値の文字列が一致すると、DKIM認証は成功である。もしメッセージ内の文字が一つでも変わっていれば、ハッシュ値が変化してしまうため、双方が一致することはなく、認証は失敗となる。DKIM認証の失敗は、メッセージが改ざんされた可能性があることを示す。DKIMではこのような署名と暗号化の仕組みにより、フィッシングやなりすましといった悪意のある迷惑メールの検知を実現し、メールの完全性を保証している。

DKIM署名の種類

DKIMの署名には、2つの主要な署名タイプが存在する。以下では、それぞれの署名タイプの概要を解説する。

第三者署名

DKIMの第三者署名とは、メール送信者(メールのヘッダFromに指定されているドメイン)以外の第三者がメールに署名を付与する方法である。メールの途中で他のドメインのメールサーバーを経由する場合でも、第三者署名によってメッセージが改ざんされていないことを保証する。第三者署名の利用例として、メール配信サービスなどを使う場合が挙げられる。

こうしたサービスを利用してメールを配信する際、メールのルーティング・中継を行うメールサーバーや、メールゲートウェイなどを経由するのが一般的である。送信者から受信者へメールを配送する際、これら中間のメールサーバーが、メッセージに第三者署名を追加する。受信者は、付与された第三者署名を検証し、メールが信頼性のあるルートを通過していることをチェックすることができる。

作成者署名

DKIMの作成者署名は、メールの実際の送信者が、自身が管理する電子署名をメッセージに付与する仕組みである。メール送信者自身が自分のメッセージに署名する場合に使用される。送信側(ユーザー)が、自分のドメインを収容しているDNSサーバーへ署名の設定をする必要があるが、メールのヘッダFromに指定されているドメインと同じドメインで署名を作成するため、より信頼性の高いメール送信を行うことができる。

第三者署名と作成者署名のどちらも、メッセージが改ざんされていないことを保証し、メールが信頼できる経路を通過したことを示す効果に違いはない。ただし、第三者署名では署名したドメインと送信元ドメインとの関連性を受信側で判断する必要があるため、送信元の正当性の検証という点においては作成者署名の方が優れているといえる。

DKIMとSPF/DMARCの違い

DKIMと同じく、送信ドメイン認証の技術の1つにSPFとDMARCと呼ばれるものがある。以下では、DKIMとの違いを解説する。

SPF

SPF(Sender Policy Framework)は、DKIMと同じくDNSレコードを照合して動作する点は共通しているが、正当性を保証する対象が異なる。DKIMではメールの内容が改ざんされていないことを保証するのに対し、SPFは、メールの送信元の情報(主にIPアドレス)の正当性を保証する。SPFの仕組みでは、送信側がIPアドレスを登録したSPFレコードを公開し、受信側が受け取ったメールの送信元のIPアドレスがSPFレコードのリストに含まれるかを確認する。

IPアドレスによる認証のため、メールの送信元の情報を完全に検証することが可能となる。しかし、SPFではメールの内容の改ざんについては検知できないため、DKIMと組み合わせて利用されることが多い。

DMARC

DMARC(Domain-based Message Authentication, Reporting, and Conformance)は、より体系的にメール攻撃の対策をするための技術である。DMARCは、SPFやDKIMの技術を使って、メールFromの偽装を検知する。そして、DNSを利用して、正当なメールドメインの所有者が、自身の保有するドメインを騙るメールの扱いを告知する。認証に失敗し、メールFromが偽装されていると検知された場合のDMARCルールの設定は様々であるが、何もしない、メールを隔離する、指定した受信者へ転送するなどの処理を実施することが多い。

また、DMARCでは、受信者がDMARCポリシーに記載された所有者のメールアドレスに対して、レポートメールを送信することもできる。DMARCレポートでは、送信したメールが相手側の送信ドメイン認証の検証でどのように扱われているか、自ドメインを騙るなりすましメールなどがどの程度送られているのかを知ることができる。さらに、parsedmarcというソフトウェアと連携させて運用することで、定期的に送られてくるDMARCレポートの結果を自動的に解析・保存することも可能である。

特徴
DKIM 送信メールに電子署名を付与して、正し い送信者かどうかを判断
SPF 送信元メールサーバのIPアドレスで、正しい送信者かどうかを判断
DMARC SPF/DKIMの認証結果をもとにメールを処理するポリシーを設定

DKIMに対応したオープンソースソフトウェア

以下では、DKIMに対応しているオープンソースソフトウェアを3つ紹介する。

Rspamd

Rspamdは、DKIMの署名/検査の両方に対応したオープンソースソフトウェアである。主にspam(スパム)メール対策を目的としたフィルタシステムに利用されることが多い。一方で、他にもSPF検査、DMARC検査、ARCに対応しており、なりすましメールなどのセキュリティ対策に必要な機能を利用可能である。

OpenDKIM

OpenDKIMは、DKIMの署名/検証を実装するためのソフウェアである。 milterプロトコルを実装したメールサーバーと連動して動作する。主な機能に、DKIM用の鍵・DNSレコードのヒントの生成ヘルパー、マルチドメインの鍵管理、モード変更(署名のみ・検証のみ・両方)等がある。一方で、ARCや受信側のSPF/DMARCの検査には対応していないため、メール送信時の署名付与を目的として利用するのがおすすめのソフトウェアである。

ENMA

ENMAは、IIJが開発を行った、送信者認証のためのオープンソースソフトウェアである。DKIM検査、SPF検査の両方の規格にしたがってメールをチェックすることができ、検査の結果をメールヘッダに記録する。デージーネットでは、ENMAの機能とSaMMAを組み合わせて、標的型攻撃の対策を行った導入事例もある。

デージーネットの取り組み

デージーネットでは、日本企業のメールセキュリティ対策に貢献するため、メールサーバセキュリティ診断サービス『MSchecker(エムエスチェッカー https://mschecker.jp/外部サイトへ)』を無料で公開している。MScheckerでは、DKIMチェックのほか、SPFチェックやDMARCに対応しているかのチェックも行うことができる。

また、デージーネットでは、RspamdなどのOSSを組み合わせ、送信ドメイン認証を実装したメールサーバの構築や保守サービスを提供している。

なお、2024年2月より、Google社やYahoo!社が公開している「メール送信者ガイドライン」が適用され、ほとんどの企業でこのポリシーに沿った対応が求められている。このガイドラインに対応していない送信元から送られたGmailやYahoo!メール宛てのメールは、メールが拒否されたり、迷惑メールとして分類されてしまいお客様に届かない可能性がある。デージーネットでは、このガイドラインの詳細や実装例についても調査・検証を実施し、調査報告書「OSSによる送信ドメイン認証の対応方法」にて解説している。資料はホームページより無料でダウンロードが可能である。ガイドラインに対応したメールサーバの構築やソフトウェアの導入に関するご相談は、下記より受け付けている。

【カテゴリ】:認証  セキュリティ  メール関連技術  標的型攻撃対策  

  • もっと調べる
  • どうやって使う?

【Webセミナー】仮想基盤をオープンソースソフトウェアで実現!仮想基盤のOSS「oVirt」紹介セミナー

日程: 6月13日(木)Webセミナー「BigBlueButton」を使用します。
内容: オープンソースソフトウェアで実現する仮想基盤を紹介します。
ご興味のあるかたはぜひご参加ください。

セミナー申込

関連用語

DKIMに関連するページ(事例など)

DKIMとは先頭へ