DMARC
SPFとDKIMの認証結果と、メールのヘッダーのFromのドメインとの一致を確認し、認証に失敗したメールの扱い(ポリシー)を、送信ドメインの管理者がDNSで指定できるようにする仕組み。受信側からのレポートも受け取れる。
イマシルちゃんの解説
SPFやDKIMで「このメール、なんだか怪しいぞ」ってわかっても、
そのメールをどうするかは、受け取った側の判断にまかされていたんだ。
DMARCでは、ドメインの持ち主が「うちのドメインをかたる怪しいメールは、受け取らないでね」って、扱い方をお願いできるんだよ。
さらに、「どれくらい怪しいメールが届いたか、報告してね」って頼むこともできるんだ!
より深い解説
定義
DMARC(Domain-based Message Authentication, Reporting and Conformance)は、RFC 7489で定められた、送信ドメイン認証を補強する仕組みである。SPFやDKIMの認証結果を、利用者が画面で目にするヘッダーのFromのドメインと結び付けて評価し、失敗したときの扱いを送信側が宣言する。
アライメント(一致の確認)
SPFやDKIMは、ヘッダーのFromとは別のドメインを確認している。そこでDMARCは、次のどちらかが成り立つことを求める。
| 認証 | 一致を確認するもの |
|---|---|
| SPF | SPFで認証されたエンベロープの送信者のドメインと、ヘッダーのFromのドメイン |
| DKIM | DKIMの署名のドメイン(d=)と、ヘッダーのFromのドメイン |
これにより、「攻撃者が自分のドメインでSPFやDKIMを正しく設定し、ヘッダーのFromだけを偽る」なりすましを検出できる。
DMARCレコードの例
_dmarc.example.jp. IN TXT "v=DMARC1; p=reject; rua=mailto:[email protected]"
| 記述 | 意味 |
|---|---|
| p= | 認証に失敗したメールの扱い(ポリシー) |
| rua= | 集計レポートの送り先 |
| ruf= | 失敗したメールの詳細レポートの送り先 |
| pct= | ポリシーを適用する割合 |
ポリシー
| ポリシー | 受信側への要求 |
|---|---|
| none | 何もしない(通常どおり受信する)。レポートだけ受け取りたいとき |
| quarantine | 隔離する(迷惑メールフォルダに入れるなど) |
| reject | 受信を拒否する |
ポリシーとして指定できるのは、この3種類である。認証に失敗したメールを、送信元のメールサーバに送り返させるようなポリシーはない。なりすましのメールの送信元に送り返すと、偽られた送信者に大量のエラーメールが届くこと(バックスキャッタ)になるためである。
段階的な導入
いきなり最も厳しいポリシーにすると、設定漏れのある正規のメール(外部の配信サービスから送るメールなど)まで拒否されてしまう。そのため、まず none でレポートを集めて状況を把握し、quarantine、reject と段階的に強めていくのが一般的である。
送信ドメイン認証の組み合わせ
3つを組み合わせて使うことで、なりすましメールへの対策が効果的になる。大手のメールサービスでは、大量に送信する事業者に対して、3つすべての設定を求める動きが広がっている。