要約

  • ORIGIN フレームは、対応クライアントが一つの HTTP/2 接続に関連付けられるオリジンをサーバーから示す。
  • Origin Set に含まれても、名前に適合する証明書の検査は残る。フレームだけでその接続を別オリジン向けに再利用できるとは限らない。
  • 効果は接続単位かつホップ単位で、不正な項目、プロキシ由来、誤ったストリームやプロトコル上のフレームは無視される。
  • 接続共用の証拠は、有効なフレーム、正確なオリジン、証明書判断、選択、要求結果、421 による削除を結ぶべきだ。

共有エッジが別の HTTPS サービスを含む ORIGIN フレームを送る場面を考える。展開画面はキャプチャ中の名前を見て専用接続テストを廃止した。しかし共有接続の証明書にはその名前がない。そのクライアントは接続を再利用せず、別の接続を開く。別途行った古い状態の再利用試験では、別のクライアント個体が以前の接続で要求を送り、421 Misdirected Request を受ける。フレームは本物でも、その接続を第二のオリジン向けに使えるとは限らない。

これは仮想的な運用記録であり、実在する障害報告ではない。サーバーの主張、クライアントの判断、要求結果を一つの指標に畳むことが誤りだ。

接続単位の集合を変える

RFC 8336 は ORIGIN を、対応クライアントの Origin Set を初期化・変更する HTTP/2 拡張として定義する。項目は一つのオリジンの ASCII 直列化で、ワイルドカード、リダイレクト、新しい資源識別子ではない。

フレームはストリーム 0 上で、h2 または明示的に採用したプロトコルにだけ有効であり、h2c では無視される。非クリティカル拡張なので未対応の受信側は無視できる。処理はホップ単位で、中継者は転送せず、プロキシ利用中のクライアントはそのプロキシからのフレームを無視する。接続、プロトコル、ストリーム、送信者が欠けた記録は処理の証拠にならない。

解析不能な項目は無視され、ワイルドカード名は使えない。したがってワイルドカード証明書の対象と Origin Set は別の規則で作られる別の集合である。

Origin Set への登録だけでは接続を共用できない

初期化後、対応クライアントは集合にないオリジンについて接続をそのオリジン向けに利用可能と見なしてはならない。一方、集合にあることも十分ではない。RFC 8336 は、subjectAltName と対象ホストの一致を含む適切な検査に通る証明書を依然として要求する。

RFC 9110 も HTTPS 権限を、確立済みの安全な接続と対象オリジンについて信頼できる証明書に結び付ける。ORIGIN 項目は信頼を作らず、証明書の名前を拡張せず、クライアント方針を免除しない。

R064 とも異なる。Alt-Svc は別のサービス経路を候補にし、ORIGIN は接続に関連するオリジンを示す。RFC 8336 は Alt-Svc が Origin Set や権限を変えないと明記する。

権限状態は途中でも変わる

後続の有効フレームは項目を追加できる。421 Misdirected Request を受けた対応クライアントは、その要求のオリジンを集合から削除する。以前の主張は接続期間全体の永久許可ではない。

DNS 参照を省くクライアントもあり得るが、RFC 8336 は追加リスクを示し、別の手段で証明書が正規のものだという高い確信を得るよう求める。これは方針であり、全クライアントの同一判断を示さない。

接続を共用できることを示す記録には、接続 ID、交渉済みプロトコル、ストリーム、フレーム、送信者、解析結果、順序付き Origin Set を残す。各オリジンについて証明書チェーン、信頼、SAN 一致、DNS 等の根拠、再利用判断、要求結果、421 削除を結ぶ。結論は観測した利用者群と期間に限定する。

出典