DDEIにおける送信者ドメイン認証の概要及びその他の機能につきましては、こちらをご参照ください。
本KBでは、DMARC認証機能についてご紹介します。
DMARCの概要
DMARCはRFC7489にインターネット標準として規定されています。DMARCは、SPF(Sender Policy Framework)とDKIM (DomainKeys Identified Mail)を組み合わた仕組みです。
以下、DMARCの概要を簡単にご紹介します。
認証対象のドメイン
DMARC認証の対象となるドメインは、Fromヘッダに指定のメールアドレスのドメインです。当該ドメインのDNSに登録されているDMARCレコードを参照します。当該ドメインのDMARCレコードが存在しなければ、その親ドメインについて認証を試みます。
DMARC認証の一環で行われるSPF認証自体は、SPFの仕様上、エンベロープ送信者のドメインが対象となります。
DMARCレコード
ドメインが DMARC に対応している場合、DNS に次のような DMARC レコードが TXT レコードで登録されています。DMARC レコードには、認証に失敗したメッセージへの処理方法 (ポリシー) やレポートの送信先が指定されています。
_dmarc.example.com. 300 IN TXT "v=DMARC1\; p=none\; rua=mailto:postmaster@example.com\;"
例えば DMARC に対応している trendmicro.com であれば、次のように _dmarc.trendmicro.com の TXT レコードに DMARC レコードが登録されています。
_dmarc.trendmicro.com. 1800 IN TXT "v=DMARC1\; p=none\; rua=mailto:dmarc@trendmicro.com,mailto:dmarc@dmarc.ers.trendmicro.com\; ruf=mailto:dmarcruf@dmarc.ers.trendmicro.com\;"
また、gmail.com であれば、_dmarc.gmail.com に DMARC レコードが以下のように登録されています。
_dmarc.gmail.com. 600 IN TXT "v=DMARC1\; p=none\; sp=quarantine\; rua=mailto:mailauth-reports@google.com"
認証側は当該レコードを参照し、レコードにしたがった動作を行います。DMARCレコードの主な内容は以下の通りです。
主なタグ | 初期設定 (タグが存在しない場合) | 説明 |
---|---|---|
adkim | r | DKIM 識別子アラインメントが "s" (strict モード) か "r" (relaxed モード) かを指定します。 |
aspf | r | SPF 識別子アラインメントが "s" (strict モード) か "r" (relaxed モード) かを指定します。 |
p | 必須 | 認証失敗時のポリシーとして none, quarantine, reject のいずれかを必ず指定します。"none" の場合、ドメインの所有者は認証に失敗したとしても、何もしないよう求めています。"quarantine" の場合、ドメインの所有者は認証に失敗した場合、メッセージを隔離するなど、疑わしいメッセージとして処理するよう求めています。"reject" の場合、ドメインの所有者は認証に失敗した場合、SMTP 接続時にメッセージの受信を拒否するよう求めています。 |
pct | 100 | サンプリングモードとして、DMARC ポリシーが適用される、認証に失敗したメッセージの割合を % (パーセント) で指定します。初期設定では (pct タグが存在しなければ) 100 であるため、DMARC の認証に失敗すれば、常に DMARC ポリシーが適用されます。例えば p=20 であれば、5通に1通の割合でポリシーが適用されます。 |
rua | n/a | 集計フィードバックレポートの送信先を指定します。rua タグが存在しなければ、フィードバックレポートは送信されません。送信先のドメインは、「RFC7489 7.1」に従い、レポート受信用のDMARCレコードの登録が必要となる場合があります。 |
ruf | n/a | 失敗レポートの送信先を指定します。ruf タグが存在しなければ、失敗レポートは送信されません。送信先のドメインは、「RFC7489 7.1」に従い、レポート受信用のDMARCレコードの登録が必要となる場合があります。 |
sp | n/a | すべてのサブドメインに対して適用されるポリシーを指定します。sp タグが存在しなければ、サブドメインに対しても p タグのポリシーが適用されます。 |
アラインメントについて
DMARC では、SPF 認証, DKIM 認証とは別に、それぞれでアラインメントのチェックが行われます。
SPFアラインメント
From ヘッダのドメインとエンベロープのドメイン (バウンスメールなど、送信者が null の場合には HELO/EHLO に指定したドメイン) を比較します。DMARC レコードの aspf タグが "s" (strict モード) の場合、同一のドメインでなければSPF認証失敗となります。"r" (relaxed モード) の場合、サブドメインまでは許容されます。
例えば relaxed モードでは、From ヘッダのドメインが example.com、エンベロープのドメインが sales.example.com であればSPF認証失敗とはなりません。From ヘッダのドメインが example.com、エンベロープのドメインが trendmicro.com であれば strict モード、relaxed モードに関係なくSPF認証失敗となります。
DKIMアラインメント
From ヘッダのドメインと DKIM 署名の SDID ("d=" タグ) を比較します。DMARC レコードの adkim タグが "s" (strict モード) の場合、同一のドメインでなければDKIM認証失敗となります。"r" (relaxed モード) の場合、サブドメインまでは許容されます。
例えば relaxed モードでは、From ヘッダのドメインが example.com、SDID が sales.example.com であればDKIM認証失敗とはなりません。From ヘッダのドメインが example.com、SDID が trendmicro.com であれば strict モード、relaxed モードに関係なくDKIM認証失敗となります。
DKIM 署名における正規化タグ ("c=") の simple モード、relaxed モードとは関係ありません。
DDEIでのDMARC認証結果の判定について
SPF認証とSPFアラインメントのチェックの両方に成功した場合のみ、SPF認証成功と判定します。
DKIM認証とDKIMアラインメントのチェックの両方に成功した場合、DKIM認証成功と判定します。
認証対象のドメインにDMARCレコードが存在する場合、DDEIは「SPF認証またはDKIM認証のいずれかで成功と判定した」場合のみ、DMARC認証を成功(pass)と判定します。それ以外は、DMARC認証を失敗(fail)と判定します。
認証対象のドメインにDMARCレコードが存在しない場合、DDEIはDMARCレコードなし(none)と判定いたします。
DMARC認証の設定
管理画面の[管理] > [送信者フィルタ/認証] > [DMARC認証]から設定します。1.DMARC(Domain-based Message Authentication, Reporting and Conformance)を有効にする
DMARC認証を有効にする場合にチェックを入れます。2.メールメッセージにX-Headerを挿入する
DMARC認証の結果をメールにXヘッダとして付与する場合にチェックを入れます。有効な場合、X-TM-DDEI-Authentication-Resultsヘッダが付与され、ヘッダ値にDMARC認証結果が記載されます。
後述いたしますが、コンテンツフィルタルールでDMARC認証結果を条件として使用する場合は、本設定を有効にする必要があります。
3.DMARCレポート
日時レポートメールを送信する場合、"送信者に日次レポートを送信"にチェックを入れます。
DMARC認証結果が失敗(fail)となったケースは、毎日1時に「DMARCレコードのruaタグに記載のメールアドレス」宛てに日次レポートとしてレポート情報が送信されます。
チェックを入れた場合、以下の3項目も設定します。
組織名: レポートメールに記載される、自組織名を設定します。
メールアドレス: レポートメールの送信者アドレスを設定します。
連絡先情報: レポートメールに記載される、自組織の連絡先の情報を設定します。
なお、レポートメールの内容は以下のようになります。
送信者: (メールアドレスに指定したアドレス)
件名: [DMARCレポート] (組織名)!(DMARC認証ドメイン)!(日次レポート集計開始時刻)!(日次レポート集計終了時刻)!(1~100までのランダムの数値)
本文: このメールメッセージには、(YYYY-MM-DD)のDMARCレポートが含まれます。
添付ファイル: (組織名)!(DMARC認証ドメイン)!(日次レポート集計開始時刻)!(日次レポート集計終了時刻)!(1~100までのランダムの数値).zip
4.送信者ドメインの検証
DMARC認証を実施する送信者ドメインを設定します。-すべて
全てのドメインに対しDMARC認証を試みます。
全メールについてDMARC認証を試みることになるため、その分負荷が増大する可能性があります。
-送信者ドメインの指定
DMARC認証を試みるドメインを個別に設定します。
サブドメインを登録する場合、"*.example.test"のようにワイルドカードでの指定が可能です。
5.定義済みDMARCポリシーに基づく処理
DMARCレコードが無い場合と、DMARCレコードに記載のDMARCポリシー毎に実施させる処理を設定します。処理は以下から選択します。
-バイパス
メールを受信し、後続のフィルタリング処理を継続します。
-一時的にブロック
SMTPクライアントにSMTP 4xx系応答を返却いたします。
-常にブロック
SMTPクライアントにSMTP 5xx系応答を返却いたします。
なお、DMARC認証に成功した場合は固定で"バイパス"扱いとなります。
コンテンツフィルタルールでのDMARC認証結果の使用
管理画面の[ポリシー] > [ポリシー管理]にて各種ポリシールールを設定可能ですが、コンテンツフィルタルールの条件「送信者の認証結果」に"DMARC"という条件が用意されております。これにより、コンテンツフィルタルールでもDMARC認証の結果をルールの条件して使用することができます。
ただし、使用には以下が必要となります。
- [管理] > [送信者フィルタ/認証] > [DMARC]にて、"メールメッセージにX-Headerを挿入する"の有効化が必要です。
- [管理] > [送信者フィルタ/認証] > [DMARC]にて、"検証結果に基づく処理"でメールが"バイパス"されている必要があります。