要約

  • RFC 8601 は認証評価を下流へ渡す共通形式を定めるが、通常、そのフィールド自体や生成者を認証しない。利用できる権限は、実際の検証エンジン、許可された authserv-id、メッセージ経路、境界での除去、消費規則の組合せから生じる。
  • 再現可能な判断には、受信時の生フィールド、除去した偽装行、ローカルに追加した行、生成者と消費者の版、評価したプロパティ、必要な ARC の連鎖、最終処置が必要である。文脈を失った pass は信頼ではなく文字列である。

同じ一行が逆の意味を持つ

実在事故ではなく、制御試験を考える。外部送信者が受信組織の識別子を名乗る正しい構文の行を先に書く。境界 MTA は到着時のバイト列を記録し、その偽装行を除去し、自ら DKIM を確認して新しい行を先頭側へ加える。表示上の二行は同じでも、前者は入力、後者は管理された測定結果である。

RFC 8601 は、攻撃者が受信 ADMD の名前を authserv-id に使い、認証成功を偽装する危険を明示している。したがって対象は単なるヘッダーではない。既知の生成者から設定済み消費者までを結ぶ、結果の主張チャネルである。

共通の語彙は共通の権威ではない

フィールドには authserv-id、任意の版、method=result、理由、評価対象のプロパティを記録できる。一つの行で複数方式を報告でき、メッセージに複数行が存在してもよい。IANA の登録簿は方式名や結果名を相互運用可能にする。

しかし登録は、特定の行を誰が作ったかを保証しない。RFC 8601 は dkim=pass を必ず配送許可にするとも、spf=fail を必ず拒否にするとも定めない。表示、スコア、隔離、追加検査はローカル判断である。

最小共通層が固定すべきなのは解析に必要な意味であり、信頼する生成者や処置までではない。公開された語彙を普遍的な許可へ昇格させれば、調整の道具が統治者になる。

ADMD は機器の場所ではなく管理関係で決まる

RFC 8601 の通常モデルでは、生成者と消費者は同じ ADMD の信頼境界にいる。消費者が生成者の主張を正確と扱える経路と管理関係が必要で、その作り方はローカル事項である。

外部事業者の施設にある検証サービスでも、契約、鍵、変更権限、監査経路が明確なら内部に位置付けられる。逆に同じラックの未管理中継は外部になり得る。MX、災害復旧、地域別中継、submission、メールボックス、MUA、フィルターを含む制御図が要る。

「メールセキュリティゲートウェイ」という一箱の図では、迂回経路が同じ除去規則を実行するか証明できない。

境界での除去が名前空間を分ける

フィールド自身には多くの場合、完全性機構がない。そのため参加 ADMD は、外部から入った自組織名義の既存フィールドを除去してから、信頼するローカル結果を追加する。これは整形ではなく、攻撃者が書ける名前空間と内部が使う名前空間の分離である。

試験では、現行 ID、配送遅延期間中の旧 ID、大文字小文字、折返し、重複、Received との混在、添付されたメッセージ内の行を投入する。全ての外部入口で除去と再生成を確認する。予備 MX 一台の例外でも、許可 ID は攻撃者が使える値になる。

受信前の生バイトは限定アクセスの証拠庫に保存し、内部消費者へ渡すメッセージからは不正行を除くべきである。痕跡を全て消せば調査不能になり、残したまま信頼領域へ渡せば制御不能になる。

authserv-id には履歴と役割が要る

authserv-id は ADMD 全体または特定エンジンを表せるが、文字列だけでは本人確認にならない。消費者には、受理する ID、対応する生成者、許可された方式、経路、適用期間を持つ版管理済み台帳が必要である。

名称変更には遅延期間がある。遅れて届くメールや再評価のため、旧 ID を期限付きで受け入れる場合がある。開始、終了、所有者、負の試験がない重複期間は、撤回できない恒久権限になる。

SPF と DKIM を報告する境界装置が、submission の SMTP AUTH や別システムの DMARC、後段の ARC まで報告できるとは限らない。ID の役割は方式ごとに限定する。

位置は経路証拠であって署名ではない

RFC 8601 はこのフィールドを trace field とし、検証のたびに上側へ追加する。RFC 5322 は trace block の順序を普通のヘッダーより強く保つ。位置は処理順を推定する助けになる。

それでも送信者は自分のメッセージ上部に行を書ける。正しいローカル行が未除去の偽装行の上に置かれることもある。最初または最後だけを選ぶ規則は、由来の代わりに順序を信じている。

消費者はまず可信な trace block と生成者を特定し、その後で方式、結果、プロパティを読むべきだ。ローカル ID の重複、境界より外側にあるローカル ID、未知の版、権限外方式は明示的な異常にする。

pass の主語は方式ごとに異なる

SPF は限定された SMTP ID について接続クライアントが許可されたかを見る。本文や全ての表示アドレスを認証しない。DKIM は署名と対象部分を検証するが、表示された人間や内容の安全性を保証しない。RFC 9989 の DMARC pass は Author Domain と認証済み識別子の alignment であり、取引や添付実行の権限ではない。

異なる結果を authenticated=true 一個へ圧縮すると、元方式が持たない権限を作る。処置は方式、結果、対象プロパティ、生成者、時刻、メッセージ状態、規則版に結び付ける。自由記述の reason は診断用であり、コマンドとして実行しない。

ARC が保護するのは証言の連鎖

メッセージが ADMD を出て再び入ると、残っている行は自動的に信頼を保たない。別の受信者が再検証すれば現在の状態は分かるが、メーリングリストが本文や envelope を変える前の観測は再現できない。

ARC は各処理者の評価を署名付き順序集合として運び、ARC-Authentication-Results を含む。RFC 8617 はその評価を、独立に再測定できる硬い証拠ではなく、検証可能な当事者の証言に近いと説明する。評価内容の正確さや構文は ARC chain の妥当性条件ではない。

chain pass は、どの sealer がどの順で主張したかを示す。受信者はその sealer を信頼するか、証言で処置を変えるかを別に決める。ARC は保管者を帰属できても、判断の正しさやメールの安全性を認定しない。

稼働経路でしか閉じられない証明

Postfix Milter は SMTP イベント、ヘッダー、本文を外部フィルターへ渡し、SpamAssassin の AuthRes は結果フィールドを読む。実装が存在することと、各入口で安全に接続されていることは別である。

実機試験は全入口を通す。偽の新旧ローカル ID を送り、記録、除去、実検証、新規行の位置、消費者の選択、最終処置まで照合する。地域切替、ゲートウェイ交換、事業者移行、緊急迂回の後にも繰り返す。

設定は意図を示す。メッセージのバイト列と結果動作が採用を示す。共通形式を薄く保ち、信頼と利用をローカルに限定し、running canary で境界を継続検証することが必要である。

出典