2020/12/23

DKIMによるなりすましメールの検知・防止

メールが普及し始めた時期から現在まで、なりすましメール(スパムメールやフィッシングメール)の課題はずっと解決されていません。なりすましメールとはメールの差出人を詐称したメールのことです。友人や正規の会社からメールを受け取った、とメールの受信者に勘違いさせてしまいます。

このなりすましメールは、おもに金融関係の詐欺に利用されます。銀行や通販サイトからの通知メールと見せかけることで、受信者を不正なサイトへ誘導し、個人情報、銀行口座情報やカード情報を入力させ、これらの情報を盗みます。

また他の例としては近年流行している電子署名による契約の通知メールでも悪用されます。今やクラウド電子署名サービスで署名する時代となりました。この署名や完了文書のダウンロードは通知メールに記載のURLを経由して行われます。契約の効力を持つ電子署名、それを行うための通知メールがなりすましメールだったら・・・


現状、ブラックリストなどの技術的な対策をとっても、まだまだ不正なメールを適切に取り除くことがでいない状態です。長年のいたちごっこの結果、結局のところ、1つの対策だけでは不十分であり、多様な技術と多層による防衛対策を行い、できるだけリスクを減らしていくことが重要ということです。


今回の記事では、その技術対策の1つであるDomainKeys Identified Mail (DKIM)について説明します。


DKIMとは

電子署名を用いたメールのなりすましを検知するためのメール認証技術です。具体的には、正しい送信元メールサーバからメールが届けられたこと、メール内容が改ざんされていないことを証明します。受信者は受信したメールのメタ情報(ヘッダー情報)でDKIMの検証情報を参照することで、なりすましかどうかを判断できるようになります。


参考:技術的な処理概要

電子署名を利用するために、事前に秘密鍵と公開鍵の作成が必要です。公開鍵はDNSサーバに登録しておく必要があります。

  1. 送信者がメールを送信します。
  2. 送信元メールサーバで送信メールに対して電子署名を行います。このときDKIM-Sgnatureヘッダーを追加します。
  3. 受信メールサーバがメールを受信すると、DNSサーバを通じて送信者の公開鍵を取得し、受信者に代わりメールの正当性を確認します。検証の完了後、Authentication-Resultsヘッダーに「dkim=pass」のような結果を追加します。
  4. 受信者がメールを受信(確認)します。


DKIMの検証情報の確認

企業の場合、多くはメールゲートウェイが設置されていると思います。メールゲートウェイでDKIMの検証にパスしたもののみを通すフィルタを入れることも可能です。もちろん、すべてのメールがDKIMで検証されるわけではないため、例えばno-replyメールのように特定メールアドレスでDKIMを設定したもののみ通す、パスしてない場合は通さない、というような設定になると思います。


以下は受信者側でDKIMの検証情報を確認する手順です。OneSpan Signという電子署名ソリューションが送信するメールで確認してみました。これを確認することで正規の送信先かつメールが改ざんされていないことを確認することができます。


Gmailで確認

GmailのWeb画面で受信したメールを開き、送信先欄の下矢印ボタンである「show details」をクリックします。

ヘッダー詳細に「signed-by: xxx」がある場合は、DKIM によるメール認証済みであることを示しています。つまり、「改ざんされずに正当な送信先からこのメールが送信された」ということが判定できます。


なお、メール右上にあるMoreボタンをクリックし、「Show original」をクリックすると、オリジナルのメールヘッダーを参照することができます。

オリジナルヘッダーページでは、明示的に'PASS'と書かれていますね!



Outlookで確認

メールを開き、MessageメニューのTagsにある矢印ボタンをクリックします。表示されたポップアップ内でdkim=passという文字列があることを確認します。


おわりに

以上、DKIMによるなりすましメールの検知・防止についてでした。なりすましメールによる脅威やリスクを軽減すべく、メールサービスの提供事業は常にセキュリティの向上が求められますね。一方で、エンドユーザには確認などなるべく手間をかけないしくみを提供することが必要です。今後もセキュリティの向上技術とユーザビリティのバランスは議論されていくでしょう。