DMARCをざっくり理解する

目次

この記事の目的とゴール

「DMARCってあれでしょ?なりすましを防ぐやつでしょ?」くらいの理解度のITエンジニアが、DMARCの機能となりすまし防止の仕組みを説明できるようになることです。ただし、DNSレコードの細かい書き方など詳細には踏み込みません。SPFやDKIMなど周辺知識についても解説しますので、ぜひ最後までご覧ください。

前提知識

SPF

まずはざっと以下を読んでください。重要な点は後ほどまとめます。

MailData
SPF | MailData SPFは、自社ドメインのメールアドレスで送信できる正当なメールサーバをDNSに登録する事で受信側メールサーバが認証する仕様です。

要するに、送信元メールサーバをDNSで検証します。

検証の流れ

SPF | MailDataから引用

あらかじめ、送信元ドメイン管理者が、正当な送信元メールサーバのIPアドレスをDNSに登録しておきます。

メール受信時の流れは次の通りです。

  1. 以下が一致するかどうかを確認
    • Return-Path のドメイン名を使って引いてきた上記IPアドレス
    • 送信元メールサーバのIPアドレス
  2. 一致していたら正当なメールと判断

限界

  • ヘッダFromはいくらでも偽装可能
  • 転送メールやメーリングリストを使ったメールが認証に失敗してしまう

DKIM

まずはざっと以下を読んでください。SPFと同じく、重要な点は後ほどまとめます。

MailData
DKIM | MailData DKIMとは、公開鍵暗号方式を用いたメールの送信者の正当性と送信内容の完全性を保証する仕様です。

要するに、公開鍵暗号方式を使ってメール送信者の正当性とメール内容の完全性を検証します。

検証の流れ

DKIM | MailDataから引用

あらかじめ、送信元ドメイン管理者が、公開鍵をDNSに登録しておきます。

メール送受信時の流れは次の通りです。

  1. 送信元メールサーバは秘密鍵を用いてメールに署名してメール送信
  2. DKIM署名にあるドメイン名を使って公開鍵を取得
  3. 公開鍵を使って署名を解読
  4. 解読して得たハッシュ値と受信側が計算したハッシュ値を比較
  5. 一致していたら、メール送信者が正当で、メール内容が改竄されていないと判断

限界

  • ヘッダFromはいくらでも偽装可能
  • 加工された転送メールやメーリングリストを使ったメールが認証に失敗してしまう

DMARC

まずはざっと以下を読んでください。SPFと同じく、重要な点は後ほどまとめます。

MailData
DMARC | MailData DMARCは、SPFとDKIMを補完しつつ、3つの重要な機能を提供します。

要するに、SPFとDKIMの弱点を補完しつつ以下3つの機能を提供する仕組みです。

  • ヘッダFrom詐称検出
  • ドメイン所有者による処理の明示的指示
  • DMARCレポート受信

DMARCが提供する機能

ヘッダFrom詐称検出

SPF、DKIMそれぞれについてDMARC Alignmentをチェックします。SPFで検証するReturn-Path、DKIMで検証するDKIM-Signatureヘッダのドメイン、これらとヘッダFromが一致するかどうかを確認します。

以下ひとつ以上成り立つならDMARC適合したメールとみなされます。

  • SPF検査OK かつ SPFのDMARC Alignment検査OK
  • DKIM検査OK かつ DKIMのDMARC Alignment検査OK

そういえば、転送メールがSPF認証、DKIM認証で失敗してしまう問題がありましたね。これをカバーするためにARCという仕様があります。ARCとは、メールが複数のメールサーバを経由する際に、認証結果を伝播させることができる仕組みです。

ARC | MailDataから引用

詳細は以下を読んでください。

MailData
ARC | MailData ARCは、メール転送に弱いSPF/DKIM/DMARC認証を補完し、別途判定を行えるようにする仕様です。

ドメイン所有者による処理の明示的指示

検査の結果をもってそれぞれのメールをどう処理するのか、ドメイン所有者が指定することができます。SPFやDKIMでは、受信側がメールをどう処理するのか決めます。具体的には以下のようなフローでメールが処理されます。

DMARC | MailDataから引用

DMARCレポート受信

受信MTAから日次で送信されます。RUAレポート、RUFレポートというものがあります。

このレポートをいい感じに管理するSaaSがあるので、必要に応じて使うことになります。SaaSを使って、たとえば以下のような作業を実施することが可能です。

  • 自社が送信しているメールでDMARC適合していないメールを洗い出す
    • SPF、DKIMの設定がうまいこといっていなかったら設定修正などをする
  • 自社の名前で他社が送信しているメールでDMARC適合していないメールを洗い出す
    • DMARC適合していないと困る場合は、他社に対応をお願いするなり、送信元を自社の名前にしないよう打診したりする

この手のツールで自分が触ったことあるのはPowerDMARCというツールです。

まとめ

  • SPFはReturn-Pathのドメインを使って検査する
  • DKIMはDKIM-Signatureというヘッダにあるドメインなどを使って検査する
  • DMARCはSPFやDKIMの弱点であるヘッダFROM偽装を検知できる
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

歴1年のプラットフォームエンジニアで、その前は7年程度ソフトウェアエンジニアをしていました。
HR系の大手SaaS企業に所属しています。
プラットフォームエンジニアリングに興味あり。

コメント

コメントする

目次