本KBでは、DMARC認証機能についてご紹介します。
目次
1.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 モード) の場合、同一のドメインでなければアラインメントのチェックは失敗扱いとなります。"r" (relaxed モード) の場合、サブドメインまでは許容されます。デフォルトは"r" (relaxed モード)になります。
例えば relaxed モードでは、From ヘッダのドメインが example.com、エンベロープのドメインが sales.example.com であればアラインメントチェックは失敗とはなりません。From ヘッダのドメインが example.com、エンベロープのドメインが trendmicro.com であれば strict モード、relaxed モードに関係なくアラインメントチェックは失敗となります。
DKIMアラインメント
From ヘッダのドメインと DKIM 署名の SDID ("d=" タグ) を比較します。DMARC レコードの adkim タグが "s" (strict モード) の場合、同一のドメインでなければアラインメントチェックは失敗となります。"r" (relaxed モード) の場合、サブドメインまでは許容されます。デフォルトは"r" (relaxed モード)になります。
例えば relaxed モードでは、From ヘッダのドメインが example.com、SDID が sales.example.com であればアラインメントチェックは失敗とはなりません。From ヘッダのドメインが example.com、SDID が trendmicro.com であれば strict モード、relaxed モードに関係なくアラインメントチェックは失敗となります。
DKIM 署名における正規化タグ ("c=") の simple モード、relaxed モードとは関係ありません。
2. TMEmS/V1ECSでのDMARC認証結果の判定について
DMARC認証対象のドメインが、TMEmS/V1ECSの設定[強制するピア]に含まれているかによって変化いたします。
DMARC認証対象のドメインが[強制するピア]に含まれていない場合
ドメインに対応するDMARCレコードの有無を問わず、SPF/DKIM認証とSPF/DKIMアラインメントチェックが実施されます。以下いずれか1つに合致するとDMARC認証結果がPassになります。それ以外のケースではDMARC認証結果はFailとなります。
1)SPFアラインメントチェックに成功し、SPF認証結果がPassである。
2)DKIMアラインメントチェックに成功し、DKIM認証結果がPassである。
3)SPFアラインメントチェックに成功し、SPF認証結果がFail以外である。そして、DKIM署名は存在しない。
DMARC認証対象のドメインが[強制するピア]に含まれている場合
ドメインに対応するDMARCレコードが無い場合、DMARC認証結果はFailになります。
ドメインに対応するDMARCレコードが存在する場合、以下いずれか1つに合致するとDMARC認証結果がPassになります。それ以外のケースではDMARC認証結果はFailとなります。
1)SPFアラインメントチェックに成功し、SPF認証結果がPassである。
2)DKIMアラインメントチェックに成功し、DKIM認証結果がPassである。
3. DMARC認証の設定
TMEmS管理画面の[受信保護設定] > [ドメインベース認証] > [Domain-based Message Authentication, Reporting & Conformance (DMARC)](TMEmSをご利用の場合)またはTrend Vision Oneコンソールの[Email and Collaboration Security] > [Cloud Email Gateway Protection] > [Inbound Protection(受信保護設定)] > [ドメインベース認証] > [Domain-based Message Authentication, Reporting & Conformance (DMARC)](V1ECSをご利用の場合)から設定します。
デフォルトでは「管理対象ドメイン」が"初期設定 (ドメインが未指定の場合)”のルールが用意されており、受信保護方向のメールすべてが対象となります。
"初期設定 (ドメインが未指定の場合)”のルールとは別に、[ドメイン]で登録した各ドメインに対する個別の新規DMARCルールの追加も可能です。
TMEmS/V1ECSは受信保護方向のメールを受信すると、エンベロープ受信者のドメインに対応するDMARC認証ルールが存在するか確認します。対応するドメインのDMARC認証ルールが存在し、当該ルールの「ステータス」が"有効化"となっていれば当該ルールを適用します。そうでない場合、"初期設定 (ドメインが未指定の場合)”のルールの「ステータス」が"有効化"となっていれば、"初期設定 (ドメインが未指定の場合)”のルールを適用します。
DMARCルールの各設定項目は以下の通りです。
3-1.DMARCを有効にする
DMARC認証を有効にする場合にチェックを入れます。
3-2.エンベロープ送信者アドレスのないメールメッセージのDMARCをスキップする
バウンスメール(エラーメール)のような「エンベロープ送信者アドレスが空である」メールに対してDMARC認証を行わせたくない場合にチェックを入れます。
3-3.Authenticated Received Chain (ARC) を有効にする
Authenticated Received Chain(ARC)は、RFC8617(2024年5月現在、Experimental扱い)で定義されている、「中間メールサーバを経由することで送信者ドメイン認証が正しく検証できなくなる」問題への対策となる仕組みです。
本機能を有効にすることで、TMEmS/V1ECSはメールサーバが付与したARC関連ヘッダの検証を行い、自身も必要なARC関連ヘッダを付与してメールを送信するようになります。
DMARC認証でFailとなった場合、ARC関連ヘッダの検証に成功すればTMEmS/V1ECSはDMARC認証ルールをバイパスいたします。
なお、2024年5月現在、MicrosoftとGoogleのARC関連ヘッダのみを検証いたします。
本機能は既にメールに付与されているARC関連ヘッダの検証動作を有効にするものであり、TMEmS/V1ECSを ARC に対応させるものではございません。
ARC はメールサーバ、サービスプロバイダ側で実装するものであり、中間メールサーバであるTMEmS/V1ECS では ARC 対応はしておりません。
3-4.Xヘッダをメールメッセージに挿入する
チェックを入れると、TMEmS/V1ECSはDMARC認証結果を記載したXヘッダを付与するようになります。
TMEmS/V1ECSは"X-TM-Authentication-Results"というXヘッダを付与します。ヘッダの記載例はオンラインヘルプ(TMEmS) / オンラインヘルプ(V1ECS) をご参照ください。
3-5.日次レポートを送信者に配信
チェックを入れると、DMARC認証失敗に関する集計フィードバックレポートを送信するようになります。
当該レポートは、毎日12:38頃にDMARCレコードのruaタグに指定されたメールアドレスに送信されます。
3-6.インターセプト
DMARC認証結果がFailとなった場合に、以下の4ケースに対してTMEmS/V1ECSに実施させる処理をそれぞれ設定します。
none: DMARCレコードのpタグ(またはspタグ)の値が"none"である場合に実施する処理を設定
quarantine: DMARCレコードのpタグ(またはspタグ)の値が"quarantine"である場合に実施する処理を設定
reject: DMARCレコードのpタグ(またはspタグ)の値が"reject"である場合に実施する処理を設定
DMARCレコードがありません: DMARCレコードが無い場合に実施する処理を設定(DMARC認証結果がFailとなる場合のみ有効です)
設定できる処理は、"メッセージをインターセプトしない"、"メッセージ全体を削除"、"隔離"の3つから選択します。
3-7.タグ付けと通知
DMARC認証がFailとなった場合に、メールの件名にタグを付与するか、または通知メールを送信するかを設定します。
3-8.除外するピア
DMARC認証の除外対象とするドメインまたは接続元IPアドレスを設定します。エンベロープ送信者アドレスのドメインまたは接続元IPアドレスが[除外するピア]に登録されている場合、当該メールはDMARC認証がバイパスされます。
最大で500エントリまでドメインを登録できます。
3-9.強制するピア
通常より厳しいDMARC認証判定を適用するドメインを設定します。エンベロープ送信者アドレス(オプションでヘッダ送信者アドレスを対象に追加可能)のドメインが[強制するピア]に登録されている場合、当該メールには通常より厳しいDMARC認証が行われます。詳細は「2. TMEmS/V1ECSでのDMARC認証結果の判定」をご参照ください。
最大で500エントリまでドメインを登録できます。
4.よくあるご質問
Q1.SPF認証、DKIM認証はPassとなっているのにDMARC認証でFailとなります。なぜでしょうか。
DMARC認証では、SPF認証/DKIM認証の他にアラインメントのチェックも行われます。SPF認証やDKIM認証がPassとなっても、アラインメントのチェックに失敗しているとDMARC認証はPassとはなりません。
詳細は「1.DMARCの概要 」または「2. TMEmS/V1ECSでのDMARC認証結果の判定」をご参照ください。
Q2.[除外するピア]と[強制するピア]には最大でいくつまでドメインを登録できますか。
いずれも、最大で500エントリまでドメインを登録できます。
Q3.[強制するピア]について、オンラインヘルプ上では「DMARC認証を強制する」との説明があります。強制するとはどういう意味でしょうか。
エンベロープ送信者アドレスのドメインが[強制するピア]に該当する場合は、通常よりも厳しいDMARC判定基準を適用します。詳細は「2. TMEmS/V1ECSでのDMARC認証結果の判定」をご参照ください。
Q4.DMARC認証をヘッダFromアドレスベースで除外することは可能でしょうか。
ヘッダFromアドレスベースで除外する機能はご用意しておりません。[除外するピア]はエンベロープ送信者アドレスベースでの除外機能となります。
なお、[受信保護設定] > [ドメインベース認証] > [送信者IP照合]を使用することで、「ヘッダFromアドレスのドメインと対になる送信者IPアドレス」に合致するメールに対して、DMARCにおけるSPFチェックをスキップさせることはできます。[送信者IP照合]についてはこちら をご参照ください。
Q5.DMARC認証の結果を、コンテンツフィルタの条件として使用することは可能ですか。
可能です。DMARC認証ルールの内の設定[Xヘッダをメールメッセージに挿入する]を有効にすることで、TMEmS/V1ECSはX-TM-Authentication-ResultsヘッダにDMARC認証結果を"dmarc=pass"のように記録いたします。
そのため、コンテンツフィルタのポリシーの条件[指定したヘッダが次のキーワードに一致する]にて、X-TM-Authentication-Resultsを対象に"dmarc=pass"といったキーワードを検出するよう条件を設定することで、ご要望を実現可能です。
ただし、当該メールが「DMARC認証ルールによって削除または隔離されることがないようにする」必要があります。
Q6.受信保護にて、特定のドメインのみ受信時の DMARC 認証を有効化することは可能ですか。
TMEmS/V1ECS の DMARC 認証では特定のドメインのみに限定して認証することはできません。
代替案として、「除外するピア」に送信者のドメインを登録いただき、DMARC 認証の検出から除外する方法をご検討ください。
詳細は、「3-8.除外するピア 」をご参照ください。