DMARC関連技術の紹介

DMARC関連技術の紹介

SendGridサポートチームの有田です。
送信ドメイン認証(メールの成りすましを防ぐ仕組み)としては、SPFとDKIMが代表的ですが、最近はDMARCについても広く知られるようになりました。
この記事では、DMARCの概要を復習した上で、現在検討されている関連技術、BIMIとARCについて紹介します。これらの関連技術には、「受信者がDMARCの認証結果を簡単に確認できる」「メールが転送された場合などでも正しい認証結果が得られる」といったメリットがあります。

1. DMARCとは

DMARCは、SPF / DKIMの両方の認証に失敗したメールを受信側サーバでどう扱うかを、送信側であらかじめ決めておくための仕組みです。認証に失敗したメールの扱い方(DMARCポリシー)には、none(規定しない)、quarantine(迷惑メールフォルダなどに隔離する)、reject(受信しない)の3つがあり、この設定を送信側ドメインのDNSレコードとして登録しておきます。

SPF / DKIMによる認証との違いとしては、

  • DMARCはSPFとDKIMの認証結果を参照してDMARCとしての成否を判断する
  • 送信側(DMARCレコードを設定する側)が認証失敗時の受信可否をコントロールできる
  • なりすまされたドメインに対して、受信側サーバから結果を通知する機能がある(DMARCレポート)
  • 確認対象がヘッダFromのドメインである
    ※ヘッダFromは、メールクライアントで確認できるドメイン。
     SPFはエンベロープFrom、DKIMはメールヘッダに記載のドメインを認証する。

といった点が挙げられます。

DMARCのイメージ 図1)DMARCのイメージ

このDMARCの仕組みをふまえて、関連技術のBIMIとARCについて以下で紹介します。

2. BIMIとは

送信ドメイン認証の成否を受信者が確認するには、メールヘッダを読む必要があり、少し難易度が高いかもしれません。
BIMIは、送信ドメイン認証をパスした送信者かどうかを、受信者が簡単に判断できるようにするための仕組みです。送信側の準備として、送信元ドメインのDNSレコードに企業のロゴマークなどを指すURLを登録しておきます。受信側でDMARCによる認証が成功すると、図2のように、そのロゴマークをメールクライアントに表示します。この仕組みにより、一目でなりすましメールでないことを確認することができます。

図2) メールクライアントの表示の例 図2) メールクライアントの表示の例

3. ARCとは

DMARCでは、メールが転送されたり、メーリングリスト宛てにメールを送ったりした場合に、正しくメールを認証できないことがあります(図3)。その理由は以下の通りです。

  • SPFで転送先メールサーバが検証するIPアドレスは、受信側メールサーバのIPアドレス。このIPアドレスは送信側メールサーバのSPFレコードへ記載されていないため、認証が失敗する。
  • メーリングリスト宛てのメール送信では、メールの件名(Subject)が書き換えられたり、Received:ヘッダが削除されたりすることがある。このとき、DKIMの認証に失敗する。
  • 上述のような理由により、SPFとDKIMの両方の認証に失敗すると、正当な送信者からのメールであっても、DMARCの認証が失敗する。

ARCはこの弱点をカバーするための技術です。ARCを使う場合、メールヘッダにARC専用のヘッダ項目が追加され、そこに電子署名の情報が追加されます。送信元だけでなく、中継したメールサーバごとに署名することで、経路全体としてのARCの成否を判断することができます(図4)。

図3) メールを転送する場合の認証 図3) メールを転送する場合の認証

図4) ARCによる認証 図4) ARCによる認証

4. 送信ドメイン認証の普及状況

一般財団法人 日本データ通信協会がまとめた「迷惑メール対策ハンドブック 2017」によると、日本で流通しているメールのうち、SPFを導入している割合は93.14%, DKIMを導入している割合は45.79%で、その割合は年々高くなってきているようです。これらと比較するとDMARCの普及率はまだ低い状況ですが、BIMIやARCのような関連技術もあわせて、今後の展開が期待されます。

5. まとめと関連記事

今回の記事では、DMARCの概要とその関連技術について紹介しました。DMARCを使うと、送信側・受信側ともになりすましを検知しやすくなるというメリットもあります(送信側はDMARCレポートにより検知が可能。受信側でBIMIを使えば、メールクライアントで判断が可能)。これらのメリットを踏まえて、DMARCの導入を検討してみてはいかがでしょうか?

興味を持たれた方、具体的な設定方法を知りたい方は、以下の記事もご覧ください。