Labee Dev Toolbox
技術ノートガイド用語解説
無料で試す
  1. ホーム
  2. / 用語解説
  3. / ARC(Authenticated Received Chain)
メール認証

ARC(Authenticated Received Chain)

2026年4月14日 更新

概要

ARC(Authenticated Received Chain) は、メールが中間サーバー(メーリングリスト、転送サービスなど)を経由する際に、各ホップの認証結果を保存するチェーン構造です。RFC 8617(2019年)で定義されています。

メールが転送されると、エンベロープ From の書き換えや本文・ヘッダーの改変により SPF や DKIM が fail することがあります。DMARC p=reject のドメインからのメールが転送先で認証失敗すると、正規のメールであっても受信拒否される問題が発生します。

ARC はこの問題を緩和します。中間サーバーが「転送前の認証結果」に署名してヘッダーに残すことで、最終的な受信サーバーが元の認証状態を参照し、信頼できる転送元であればメールを受け入れる判断材料にできます。Gmail、Microsoft 365、Yahoo Mail は ARC に対応しており、信頼できる中間サーバーからの ARC チェーンを DMARC の判定に組み込んでいます。

仕組み

ARC は中間サーバーが各ホップで 3 つの専用ヘッダーを追加し、チェーン構造で認証結果の履歴を保持します。

3 つのヘッダー

ARC は中間サーバーが各ホップで 3 つのヘッダーをメールに追加します。

ARC-Authentication-Results(AAR)は、その中間サーバーが観測した認証結果です。SPF、DKIM、DMARC の各結果を記録します。Authentication-Results ヘッダーと同じ形式です。

ARC-Message-Signature(AMS)は、メールの本文とヘッダーに対する DKIM 形式の署名です。中間サーバーが改変を加えた後の状態で署名するため、次のホップで検証が可能です。

ARC-Seal(AS)は、ARC チェーン全体(直前までの AAR、AMS、AS と自身の AAR、AMS)に対する署名です。チェーンが改ざんされていないことを証明します。

チェーンの構築

メールが複数の中間サーバーを経由するたびに、i= タグのインスタンス番号がインクリメントされます。

ARC-Seal: i=1; ...          ← 1番目の中間サーバー
ARC-Message-Signature: i=1; ...
ARC-Authentication-Results: i=1; ...

ARC-Seal: i=2; ...          ← 2番目の中間サーバー
ARC-Message-Signature: i=2; ...
ARC-Authentication-Results: i=2; ...

最終的な受信サーバーは、チェーン全体を検証します。i=1 から順に ARC-Seal の署名を確認し、チェーンに改ざんがないことを検証します。

受信サーバーの判定

ARC チェーンの検証結果は cv=(chain validation)タグで表現されます。

cv 値意味
noneARC チェーンが存在しない(最初のホップ)
passチェーン全体の検証に成功
failチェーンの検証に失敗(改ざんの可能性)

ARC チェーンが pass であっても、最終判定は受信サーバーのポリシーに委ねられます。Gmail は信頼できる転送元(Google Groups、大学のメール転送など)からの ARC チェーンを DMARC の判定に加味しますが、すべての ARC チェーンを無条件に信頼するわけではありません。

DMARC との関係

ARC は DMARC を置き換えるものではなく、補完する仕組みです。DMARC p=reject のドメインからのメールが転送で認証失敗しても、ARC チェーンに元の認証 pass の記録があり、転送元が信頼できると判断されれば、受信サーバーはメールを受け入れる場合があります。

RFC 8617 は ARC チェーンを DMARC の「ローカルポリシーオーバーライド」として使うことを想定しています。受信プロバイダーが独自の信頼リストに基づいて判断します。

設定例

ARC の設定は中間サーバー(転送サービス)側が担当し、ドメイン所有者側に追加の設定は不要です。

ARC 署名の DNS レコード

ARC の署名検証には DKIM と同じ形式の公開鍵が必要です。中間サーバー(転送サービス)側が _domainkey のサブドメインに公開鍵を公開します。

arc-selector._domainkey.relay.example.com.  IN  TXT  "v=DKIM1; k=rsa; p=MIIBIjANBgkqh..."

送信側(ドメイン所有者)が ARC のために追加設定を行う必要は基本的にありません。ARC は中間サーバー(メーリングリスト運営者や転送サービス提供者)が実装する仕組みです。

DMARC レコードでの対応

ドメイン所有者側の DMARC レコードに ARC 固有のタグはありません。ARC の恩恵を受けるために DMARC 側で特別な設定は不要です。

_dmarc.example.com.  IN  TXT  "v=DMARC1; p=reject; rua=mailto:dmarc@example.com"

受信プロバイダーが ARC 対応していれば、転送経由のメールでも p=reject のドメインからの正規メールを受け入れる判断ができます。

確認方法

ARC ヘッダーはメールのヘッダー情報に含まれます。Gmail でメールを開き「メッセージのソースを表示」でヘッダーを確認できます。

ARC-Seal: i=1; a=rsa-sha256; cv=none; d=google.com; s=arc-20240116; ...
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240116; ...
ARC-Authentication-Results: i=1; mx.google.com;
       dkim=pass header.d=example.com;
       spf=pass (google.com: domain of user@example.com) smtp.mailfrom=user@example.com;
       dmarc=pass (p=REJECT) header.from=example.com

cv=none は最初のホップを示し、cv=pass はチェーンの検証成功を示します。

ドメインの DMARC レコード自体は dig で確認できます。

dig TXT _dmarc.example.com
;; ANSWER SECTION:
_dmarc.example.com.	3600	IN	TXT	"v=DMARC1; p=reject; rua=mailto:dmarc@example.com"

外部の視点からも確認したい場合は、Labee Dev Toolbox の Mail Auth API を使うと、外部の視点から見た DMARC レコードを取得できます。

curl "https://labee.dev/api/mail-auth?domain=example.com"
{
  "success": true,
  "data": {
    "spf": { "record": "v=spf1 include:_spf.google.com ~all", "exists": true },
    "dkim": { "record": "v=DKIM1; k=rsa; p=MIIBIjANBgkqh...", "exists": true, "selector": "default" },
    "dmarc": {
      "record": "v=DMARC1; p=reject; rua=mailto:dmarc@example.com",
      "exists": true
    },
    "bimi": { "record": null, "exists": false }
  },
  "error": null,
  "meta": { "responseTime": 123 }
}

よくある問題

ARC の役割と制約に関する誤解が、設定ミスや期待外れの原因になりやすいケースを整理します。

ARC を設定すれば転送問題が解決すると誤解する

ARC はドメイン所有者が設定するものではなく、中間サーバー(転送サービス)が実装する仕組みです。ドメイン所有者が自分の DMARC レコードに追加する設定はありません。転送問題を解消するには、転送先のプロバイダーが ARC に対応していることと、転送元が ARC 署名を行っていることの両方が必要です。

信頼できない ARC チェーンに依存する

ARC チェーンが pass であっても、受信プロバイダーは転送元サーバーが信頼できるかを独自に判断します。攻撃者が自前のサーバーで ARC 署名を付けてもそのまま信頼されるわけではありません。Gmail は Google Groups や既知の転送サービスを信頼リストに含めていますが、未知のサーバーからの ARC チェーンは無視する場合があります。

メーリングリストで Subject を改変して DKIM が壊れる

メーリングリストが Subject: にプレフィックス([ML名] など)を追加すると、DKIM 署名の検証が失敗します。ARC が適切に実装されていれば、改変前の DKIM pass の結果がチェーンに記録されているため、受信サーバーは元の認証状態を参照できます。ただし、すべてのメーリングリストが ARC に対応しているわけではありません。

実際のドメインで確認してみる

登録不要、無料です。ドメイン名を入れるだけで外部からの見え方を確認できます。

無料で試す

関連用語

メール認証

DMARC(Domain-based Message Authentication, Reporting and Conformance)

SPF と DKIM の認証結果を統合し、なりすましメールの処理方針をドメイン所有者が宣言する仕組み。Google・Yahoo が大量送信者に義務化。

メール認証

DKIM(DomainKeys Identified Mail)

メールに電子署名を付与し、送信後の改ざんを検知する仕組み。SPF と並んで DMARC の前提条件。

メール認証

SPF(Sender Policy Framework)

メール送信元の IP アドレスがドメイン所有者に許可されているかを検証する仕組み。DMARC の前提条件の一つ。

メール認証

識別子アライメント(Identifier Alignment)

DMARC が SPF・DKIM の認証ドメインとヘッダー From を照合して、なりすましを検出する仕組み。DMARC pass の必須条件。

コンテンツ 技術ノート ガイド 用語解説
ツール ツール一覧 API Reference
Labee 日本語トップ Labee LLC
© 2026 Labee LLC . All rights reserved.
ホーム ブログ ガイド 用語集