前回、SPFとDKIMについて書いたので、ついでにDMARCもまとめておきます。
1.DMARCって?
SPFとDKIMの欠点を補うための送信ドメイン認証です。
認証に失敗したメールをどうするか、送信側で決めることができます。
SPFとDKIMの両方を使うことを前提にした仕組みですが、いずれかに対応していれば導入できます。
メール送信側で、事前に以下の3パターンからポリシーを定義しておきます。
①none(何もしない)
②quarantine(迷惑メールフォルダなどに隔離する)
③reject(受信を拒否する)
2.DMARCのメリット
DMARCには、大きく分けて2つの機能があります。
①ポリシー設定
・認証が失敗した場合の受信側の挙動が制御できる
②レポーティング機能
・関連するすべてのメールプロバイダから日次レポート(XML形式)を受け取ることができる
・エラー情報(SPFとDKIMの認証結果)と統計情報(どういうメールがどういう認証結果なのか)が分かる
・なりすましメールの送信元が分かる
・最新の情報が把握できるため、ポリシーの最適化ができる
3.DMARCの実装方法
ポリシーはDMARCレコードとして、送信側でDNSサーバにTXTレコードを設定します。
以下がオプション(抜粋)です。
・v=DMARC1 DMARCレコードのバージョン(現状DMARC1しかないよう)です。レコードの最初に指定が必要です。
・p=none 認証に失敗したメールのアクションです。none,quarantine,rejectのどれかを指定します。
・rua=mailto:〜 統計情報のレポートメールを受信するメールアドレスを指定します。
・ruf=mailto:〜 エラー情報のレポートメールを受信するメールアドレスを指定します。
例:ドメインがexample.jpの場合
_dmarc.example.jp text = “v=DMARC1; p=none; rua=mailto:report@example.jp
4.メール送受信の流れ
送信ドメイン認証を使った、メール送受信の流れです。
1.DNSサーバにSPF,DKIM,DMARCレコードを追記します。
2.メールを送信します。
3.SPFとDKIMの認証を行い、失敗したらポリシーに従って処理します。
4.認証結果をレポートに書き込み、さらに隔離、受信拒否の場合は認証失敗としてレポートに書き込みます。
5.日次で受信側からレポート用アドレスへ、レポートメールを送信します。
★懸念★
・DMARCを使うには受信側もDMARCをサポートしている必要がある。
・国内ではDMARC普及率が低い※ので、レポート結果のドメインの種類が少ない。
・ドメインごとにレポートを送受信するため、負荷が掛かる。
・受信するべきメールが受信できなくなる可能性を考慮して、認証失敗しても受信拒否するケースは少ないのでは。
※「一般財団法人インターネット協会主催の迷惑メール対策カンファレンス」P15
2017年時点でDMARCの普及率は19.66%とのこと。
https://www.iajapan.org/anti_spam/event/2017/conf_16-17th/pdf/OD-05_D3-06_kitazaki.pdf