要約
- 有効なタグは、送信者がクライアントの Initial を観測し、検査対象の Retry バイトが偶発的に壊れていないことを示す。
- 指定されたサーバーの認証、トークン受理、サーバーによるクライアントアドレス検証の完了は示さない。
- 調査ではタグ検証、トークン返送、サーバー側検証、認証済み TLS 結果を別イベントとして保存すべきである。
パケットキャプチャに、有効な完全性タグを持つ QUIC Retry が現れた。ダッシュボードはそれを「認証済みサーバーのチャレンジ」と表示し、クライアントアドレスも検証済みにした。しかしパケットが支える証拠はそこまで広くない。
RFC 9001 §5.8 の保証は限定的だ。128 ビットのタグは、空の平文と Retry 疑似パケットを関連データとして AEAD_AES_128_GCM で計算する。疑似パケットは、タグを除いた Retry の前に Original Destination Connection ID(ODCID)の長さと値を置いたものだ。QUIC v1 では計算に使う鍵と nonce も仕様に記載される。ODCID はクライアントの Initial に由来するため、有効なタグは送信者がその Initial を見たことを示し、偶発的な破損の排除にも使える。
これはピア認証ではない。QUIC v1 の計算に必要な固定値は公開仕様にあり、Retry に保護されたフィールドはない。タグは TLS の証明書と Finished の検証に代わらない。応答したサーバーインスタンス、そのサービス名に対する権限、あるいは経路上の装置が送信した可能性についても答えない。
RFC 9000 §17.2.5 はクライアント側の次の処理を定める。タグを検証できない Retry や、長さゼロのトークンを持つ Retry は破棄し、一つの接続試行で処理する Retry は最大一つである。受理した場合、クライアントは Retry の SCID を DCID とし、トークンをコピーした新しい Initial を送る。つまり観測した Retry は返送証明の要求であって、完了した証明ではない。
サーバー側の境界は RFC 9000 §8.1.2 にある。攻撃者が自分のアドレス用に有効なトークンを生成できず、クライアントがそのトークンを返せるなら、サーバーはクライアントが受け取ったことを確認できる。それでもサーバーは返送トークンを検証し、接続を拒否するか進めるか決める必要がある。送信 Retry で終わるキャプチャは、トークン受理もクライアントアドレス検証完了も証明しない。
運用記録には、QUIC バージョン、最初の Initial の 5 タプルと時刻、ODCID、Retry の DCID と SCID、正確なバイト列、タグ結果、トークン指紋、次の Initial の 5 タプルと時刻、返送指紋、サーバー検証結果、検証ドメインまたはインスタンス、TLS 証明書と Finished、最終結果を結び付ける。これにより anycast の秘密情報ずれ、期限切れ、経路変更、誤ルーティングを、身元認証と混同せずに分けられる。
会員向け解説
プロフィールの詳細
適切な会員レベルでログインすると、解説全文と出典メモをご覧いただけます。
Strategic Circle 限定
Strategic Circle
すべての読者に公開されています。参加してログインすると プロフィール解説 を閲覧できます。
Strategic Circle に参加Leadership Alliance 会員限定
Leadership Alliance
対象となる IP 資産の所有者・管理者向けです。ログインすると Leadership Alliance の解説を閲覧できます。
Leadership Alliance に参加

