メールの送信元アドレスの成り済まし対策の1つが、メールの送信側が、送信元ドメインを所有していることを証明するドメイン認証です。このドメイン認証の中にも様々な種類があるわけですが、最近多分一番多く実装されているのがSender Policy Framework(SPF)とDKIM。
ただ、SPFもDKIMも、仕様として万能な訳ではありません。SPFやDKIMの欠点(というか限界)の1つが、メールの受信時に、SPFやDKIM検証で成功・失敗した結果を基に、どんな処理を行うべきなのか、アクションの定義が曖昧である事が挙げられます。言い方を変えると、SPFやDKIMでの送信者認証に失敗した場合、受信者によってはメールを受信拒否しますが、多くの場合はヘッダを挿入したり、別のフォルダへ隔離するだけになってしまう、という事です。実際に、受信するべきメールを受信できなくなる可能性を考えると、認証に失敗したメールを拒否しているケースの方が少ないのが現状です。こうなると、送信者認証の結果を、後の精度の向上につなげる事はできません。
せっかくの送信認証結果を、後の効率化アップにつなげるためには何が必要でしょうか。そう、送信ドメイン認証が成功したのか失敗したのか、どうして失敗したのか、といった報告、つまりレポートです。DMARC (Domain-based Message Authentication, Reporting & Conformance) です!要は、レポーティングがキーなのですね。
もう一つ、DMARCで必要不可欠な要素が、「ポリシー」です。DMARCでは、認証にSPFやDKIMを使うのですが、この認証に失敗した時にどのように処理するのか、というポリシーを、送信ドメインの署名と一緒に、送信元の方で定義しておくわけですね。
DMARCはDNSへポリシーに関する記述を行うところから始まります。例えば、「自社ドメインを語ったもののうち、SPFで認証に失敗したメールはブロックする」といった感じです。この自社ドメインが入る場所なのですが、メールヘッダの中のFrom:をチェックします。メールヘッダについては、下記のURLもご参照ください。
DMARCの実装からメール配信までの流れが次の通りです。
DMARCは、普及し始める前の仕組みである事から、新しい技術ならではのデメリットもあります。とりあえず、現時点でのメリット&デメリットです。