← RFC Reference

ARC — 認証済み受信チェーン

Email Authentication Published March 2026
ELI5: 電子メール認証結果のための連鎖監視フォームを想像してください。証拠を扱う人は誰もがフォームに署名し、受け取った時のその状態を記録します。取り扱い中に証拠がわずかに変わっても、最終的な受取人は連鎖をさかのぼって、それが確認された状態で始まり、信頼できる関係者によってのみ扱われたことを確認できます。ARCはメッセージが中間業者を通過する際に電子メール認証結果について同じことを行います。

このRFCが存在する理由

メール転送はSPFDKIMのアキレス腱です。メッセージがメーリングリスト、エイリアス、または.forwardルールを通じて転送されると:

最終目的地でSPFとDKIMの両方が失敗すると、DMARCも失敗し、メッセージは正当に送信されて信頼できるインフラストラクチャを通じて転送されたにもかかわらず、拒否または隔離される場合があります。

RFC 8617で定義されているARC(Authenticated Received Chain)は、各中間者が観察した認証結果のスナップショットを記録してそれに署名することでこれを解決します。最終受信者はチェーンを検査して、直接的なSPFおよびDKIMチェックが現在失敗していても、メッセージが発信元で認証されたことを判断できます。

動作方法

3つのARCヘッダーセット

メッセージを処理する各中間者は、インスタンスカウンター(i=)でナンバリングされた3つのヘッダーのセットを追加し、各ホップで増加します:

ヘッダー 目的
ARC-Authentication-Results (AAR) この中間者が観察した認証結果(SPF、DKIM、DMARC)を記録します。標準的なAuthentication-Resultsヘッダーと同じフォーマットに従います。
ARC-Message-Signature (AMS) 中間者が見たメッセージヘッダーと本文に対するDKIMのような署名。DKIMと同じ署名構文を使用します。
ARC-Seal (AS) すべての前のARCヘッダーセットと現在のAARに対する署名。このチェーンを封印し、誰も前のエントリを改ざんまたは並び替えるのを防ぎます。

管理の連鎖の例

# alice@example.comからの元のメッセージ
# SPF: pass、DKIM: pass、DMARC: pass

# ホップ1: lists.orgのメーリングリストがメッセージを受け取る
ARC-Authentication-Results: i=1; lists.org;
dkim=pass header.d=example.com;
spf=pass smtp.mailfrom=example.com;
dmarc=pass header.from=example.com
ARC-Message-Signature: i=1; a=rsa-sha256; d=lists.org; s=arc; ...
ARC-Seal: i=1; a=rsa-sha256; d=lists.org; s=arc; cv=none; ...

# lists.orgがフッターを追加し、Subjectを変更して、再送信
# 元のDKIM署名は現在無効です(本文が変更されました)
# SPFはexample.comではなくlists.org IPを参照するようになります

# ホップ2: 最終目的地mx.receiver.com
直接DKIMチェック: FAIL(本文がリストによって変更されました)
直接SPFチェック: FAIL(IPはexample.comではなくlists.orgです)
直接DMARCチェック: FAIL(どちらも配置されていません)

ARCチェーン検証:
i=1 ARC-Seal: 有効(lists.orgによって署名されました)
i=1 AAR: lists.orgでdkim=pass、spf=pass、dmarc=pass
チェーン判定: cv=pass
受信者がlists.orgを信頼 => DMARC失敗をオーバーライド

主要な技術詳細

チェーン検証(cv)タグ

ARC-Sealヘッダーには、3つの値のいずれかを持つcv=(チェーン検証)タグが含まれています:

ARCとDMARCのオーバーライド

ARCはDMARCに置き換わるものではありません。代わりに、受信者がDMARCオーバーライド決定を下すときに使用できる追加情報を提供します。受信者のロジックは次のようになります:

  1. DMARCを直接チェックします。成功した場合は、通常どおり配信します。
  2. DMARCが失敗した場合、ARCチェーンをチェックします。チェーンが有効(cv=pass)であり、受信者がチェーン内の中間者を信頼している場合は、DMARC失敗をオーバーライドします。
  3. ARCチェーンが無効であるか、中間者が信頼されていない場合は、通常どおりDMARCポリシーを適用します。

中間者を信頼する決定はローカルポリシーです。例えば、Gmailは信頼できるARCサイナー(主要なメーリングリストプロバイダー、大学メールシステムなど)のリストを維持しています。

署名要件

ARC署名はDKIM(RSA-SHA256またはEd25519)と同じ暗号形式を使用します。署名ドメインはDKIM公開鍵発行と同じく、_domainkey下のセレクターでDNSのARC公開鍵を発行します:

arc._domainkey.lists.org. IN TXT "v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEB..."

インスタンスナンバリング

ARCセットはi=1から始まり、順番にナンバリングされます。各中間者は次の番号でセットを追加します。最終受信者は、すべてのシールを順番にチェックしてチェーンを検証します。シールが失敗した場合、またはインスタンスが見つからない場合、チェーン全体は無効です。

ARCが行わないこと

一般的な誤り

配信性への影響

Related RFCs