10. セキュリティに関する考慮事項
HTTP/3 のセキュリティに関する考慮事項は、TLS を伴う HTTP/2 のものと同等であるべきである。ただし、[HTTP/2] の 10 節にある考慮事項の多くは [QUIC-TRANSPORT] に適用され、同文書で扱われている。
10.1. サーバの権威
HTTP/3 は HTTP における権威の定義に依存する。権威を確立する際のセキュリティに関する考慮事項は、[HTTP] の 17.1 節で扱われる。
10.2. クロスプロトコル攻撃
TLS および QUIC のハンドシェイクで ALPN を使用すると、アプリケーション層のバイトを処理する前に、対象のアプリケーションプロトコルが確立される。これにより、エンドポイントはピアが同じプロトコルを使用していることについて強い保証を得る。
これはすべてのクロスプロトコル攻撃を防ぐ保証にはならない。[QUIC-TRANSPORT] の 21.5 節では、QUIC パケットの平文が、認証済みトランスポートを使用しないエンドポイントに対するリクエスト偽造に使用される可能性のある方法を説明している。
10.3. 中継者カプセル化攻撃
HTTP/3 のフィールド符号化では、HTTP で使用される構文では無効なフィールド名を表現できる。[HTTP] の 5.1 節を参照。無効なフィールド名を含むリクエストまたはレスポンスは、不正な形式として扱わなければならない。
同様に、HTTP/3 は無効なフィールド値を転送できる。符号化可能な値の大半はフィールド解析を変えないが、復帰文字(ASCII 0x0d)、改行文字(ASCII 0x0a)、およびヌル文字(ASCII 0x00)は、逐語的に変換されると攻撃者に悪用される可能性がある。
10.4. プッシュされたレスポンスのキャッシュ可能性
プッシュされたレスポンスにはクライアントからの明示的なリクエストはなく、リクエストはサーバが PUSH_PROMISE フレームで提供する。
複数のテナントが同じサーバ上で領域を共有する場合、サーバはテナントが権限のないリソースの表現をプッシュできないようにしなければならない。
10.5. サービス拒否に関する考慮事項
HTTP/3 接続は、HTTP/1.1 または HTTP/2 接続よりも、動作のために大きなリソースの割り当てを必要とする場合がある。
送信側が、ピアが無視する必要のある未定義のプロトコル要素を送信できる機能は悪用され、ピアに追加の処理時間を費やさせる可能性がある。
このような動作を監視しないエンドポイントは、サービス拒否攻撃のリスクにさらされる。実装はこれらの機能の使用を追跡し、その使用に制限を設けるべきである。
10.5.1. フィールドセクションサイズの制限
大きなフィールドセクション(4.1 節)は、実装が大量の状態を保持する原因となる可能性がある。エンドポイントは、フィールドセクションサイズに適用する可能性がある制限をピアに通知するため、SETTINGS_MAX_FIELD_SECTION_SIZE(4.2.2 節)設定を使用できる。
10.5.2. CONNECT の問題
CONNECT メソッドは、TCP 接続を作成・維持することに比べてストリームの作成が比較的安価なため、プロキシに不釣り合いな負荷を発生させるために使用できる。
10.6. 圧縮の使用
攻撃者が制御するデータと同じコンテキストで機密データを圧縮すると、圧縮により攻撃者が機密データを復元できる可能性がある。HTTP/3 はフィールド圧縮を有効にする(4.2 節)。
セキュアチャネル上で通信する実装は、データソースごとに別々の圧縮コンテキストを使用しない限り、機密データと攻撃者が制御するデータを含むコンテンツを圧縮してはならない。
10.7. パディングとトラフィック分析
パディングは、フレーム内容の正確なサイズを曖昧にし、HTTP 内の特定の攻撃を緩和するために使用できる。
10.8. フレーム解析
複数のプロトコル要素には入れ子になった長さ要素が含まれる。実装は、フレームの長さが含まれるフィールドの長さと正確に一致することを保証しなければならない。
10.9. 早期データ
HTTP/3 で 0-RTT を使用すると、リプレイ攻撃のリスクが生じる。0-RTT を伴う HTTP/3 を使用する場合は、[HTTP-REPLAY] のリプレイ攻撃緩和策を適用しなければならない。
10.10. マイグレーション
一部の HTTP 実装は、ロギングまたはアクセス制御にクライアントアドレスを使用する。QUIC クライアントのアドレスは接続中に変わる場合があるため、このような実装はクライアントの現在のアドレスを積極的に取得するか、元のアドレスが変わり得ることを明示的に受け入れる必要がある。
10.11. プライバシーに関する考慮事項
HTTP/3 の複数の機能は、観測者に対し、単一のクライアントまたはサーバの操作を時系列で関連付ける機会を与える。これには設定値、刺激に対する応答時間、および設定により制御される機能の処理が含まれる。
HTTP/3 が単一の QUIC 接続を優先して使用することにより、ユーザのサイト上での活動を関連付けることができる。