
- ARC(Authenticated Received Chain)とは?
- ARCで付与するヘッダー
- ARCヘッダーの「cv」フィールドとは?
- ARCヘッダーはどこで付与されるのか?
- ARC に失敗した場合の動作について
- ARCの機能を利用するには?
- [信頼できる ARC シーラー]の設定手順
ARC(Authenticated Received Chain)とは?
ARCは、メールが複数の中継サーバーを経由する際に、SPF・DKIM・DMARCの認証結果を保持するための仕組みです。
これにより、転送やメーリングリストなどでメールの内容が変更されても、元の認証情報を保持して信頼性を評価できるようになります。
ARC は中途サーバーでの 各フィルタリングの認証結果を、ARC ヘッダーとして残して後続のサーバーで確認できるようにします。
メールの改変などで最終受信者のサーバーで SPF や DKIM 認証が失敗する状況でも、途中のサーバーの ARC ヘッダーの認証結果を信頼して、認証を成功として扱うことができます。
例として、外部サーバー > 中継サーバー > ExchangeOnline などの配送経路の場合に、中継サーバーが ARC をサポートしている場合は、信頼できる ARC シールに ARC-Seal および ARC-Message-Signature ヘッダーのドメイン "d" タグに表示されるドメインを追加することにより、メッセージは電子メール認証チェック (SPF、DKIM、DMARC など) に合格し、認証の失敗が原因でスプーフィング (なりすまし) として扱われるのを防ぐことができます。
ARCで付与するヘッダー
ARCは以下の3つのヘッダーで構成されます
- ARC-Authentication-Results(AAR):SPF、DKIM、DMARCなどの認証結果を記録します。
- ARC-Message-Signature(AMS):メール本文とヘッダーの署名。中継サーバーが受信した内容に対して署名します。
- ARC-Seal(AS):AARとAMSをまとめて署名し、改ざんされていないことを保証します。
これらのヘッダーは、メールが中継されるたびに追加され、i=というインデックス番号で順番が管理されます
i= はARCセットの順番
d= は署名ドメイン
cv= はChain Validation(前のARCセットの検証結果)
ARCヘッダーの「cv」フィールドとは?
「cv」は Chain Validation(チェーン検証) の略で、ARCヘッダーの一部であり、ARC-Seal(AS)ヘッダー内に含まれるフィールドです。
このフィールドは、ARCの署名チェーンが有効かどうかを示す検証結果を記録するために使用されます。具体的には、次のような意味を持ちます。
- cv=none:このARCセットがチェーンの最初である(前のARCセットが存在しない)。
- cv=pass:前のARCセットの検証に成功し、チェーンが有効である。(ARCチェーンの成功)
- cv=fail:前のARCセットの検証に失敗し、チェーンが無効である。
この情報は、メールが複数の中継サーバーを経由する中で、元の認証結果(SPFやDKIMなど)を保持し、信頼できるかどうかを最終的な受信者が判断するための材料になります。
たとえば、メール転送によってDMARC認証が失敗するケースでも、ARCによって「元は正当なメールだった」と証明できる可能性があります
ARCヘッダーはどこで付与されるのか?
ARCヘッダーは、受信側のメールサーバーが付与します。
具体的には、メールが複数のサーバーを経由して転送される際、各中継サーバー(受信側)がその時点でのSPF・DKIM・DMARCの認証結果を記録し、ARCヘッダーとして追加します。
これにより、最終的な受信者がメールの信頼性を判断できるようになります。
Microsoft 365ではメールが受信された際に、ARCヘッダー(ARC-Seal、ARC-Message-Signature、ARC-Authentication-Results)を追加します。
これにより、メールが転送されても元の認証情報を保持し、DMARCの失敗を回避することができます。
なぜ受信側が付与するのか?
従来のSPF・DKIM・DMARCは、メールが直接配信されることを前提としています。しかしながら、以下のようなケースでは認証が失敗することがあります。
- メーリングリスト経由の配信
- 自動転送
- 中継サーバーによるヘッダー変更
このような場合でも、ARCによって中継サーバーでの認証結果を保持することで、最終受信者が正当なメールかどうかを判断できるようになります。
ARC に失敗した場合の動作について
arc=fail は、ARCの検証に失敗したことを示します。
これは、メールの中継過程で署名チェーンの整合性が崩れた場合に発生します。
具体的な原因としては以下のようなものがあります。
ARC-Sealの署名不一致
中継サーバーが付与したARC-Sealの署名が、受信側で検証できなかった場合に fail になります。
これは、署名対象のヘッダーや本文が途中で改変された場合に起こります。
ARC-Message-Signatureの破損
メール本文やヘッダーが経由の際に変更され、元の署名と一致しなくなった場合。
信頼されていないARCシーラー
ARC署名を付与した中継サーバーが、受信側のポリシーで「信頼できない」と判断された場合。
チェーンの不整合
ARCセットのインデックス(i=)が飛んでいたり、順序が正しくない場合。
中継サーバーの設定ミス
正しくARC署名を付与していない、または署名対象の範囲が不適切な場合。
ARCの認証に失敗した場合の動作については、送信時、受信時ともに通常の SPF、DKIM、DMARCの認証失敗と同じ扱いになり、その他の要素も含めて迷惑メール判定がおこなわれる動作となります。
ARCの機能を利用するには?
Exchange Online ではメールを受信する前の ARC ヘッダーを信頼するように構成されていないため、Exchange Online に配送前の中継サーバーにて ARC ヘッダーが付与されていても、その認証結果によらず、Exchange Online にてメールを受信した際の SPF や DKIM の内容をもとに判断することとなります。
その場合、[信頼できる ARC シーラー] の機能を利用することで、Exchange Online へ到達する前の経由したメールサーバーでの認証結果を信頼するように構成を行うことができます。
ARC-Sealまたは、ARC-Message-Signatureの d= 値と一致するドメインを指定 します。
[信頼できる ARC シーラー]の設定手順
1. Microsoft Defender ポータル (https://security.micorosoft.com/) にアクセスします。
2. [ポリシーとルール] > [脅威ポリシー] > [メールの認証の設定] の順にクリックします。
3. [ARC] タブが選択された状態で、[+ 追加] をクリックします。
4. 送信元のドメインを入力し、[保存] をクリックします。
※ARC-Sealまたは、ARC-Message-Signatureの d= 値と一致するドメインを指定 します。