10. セキュリティに関する考慮事項 (Security Considerations)
10.1 サーバー権限 (Server Authority)
HTTP/2は、特定のリクエストに対してサーバーが権威があるかどうかを判断するために、HTTP/1.1の権限の定義に依存しています。
10.2 クロスプロトコル攻撃 (Cross-Protocol Attacks)
HTTP/2は、クリアテキストポートでのクロスプロトコル攻撃から保護するために、ALPNを使用したTLSを使用します。
10.3 仲介カプセル化攻撃 (Intermediary Encapsulation Attacks)
HTTP/2ヘッダーフィールドエンコーディングは、HTTP/1.1で有効なフィールド名ではない名前の表現を可能にします。
10.4 プッシュされたレスポンスのキャッシュ可能性 (Cacheability of Pushed Responses)
プッシュされたレスポンスには、クライアントからの明示的なリクエストがありません。クライアントは、プッシュされたレスポンスがリクエストに対する適切な表現であることを確認できません。
10.5 サービス拒否に関する考慮事項 (Denial-of-Service Considerations)
10.5.1 ヘッダーブロックサイズの制限
大きなまたは無制限のリクエストは、サーバーを過負荷にするために使用される可能性があります。ヘッダーブロックサイズは、SETTINGS_MAX_HEADER_LIST_SIZEを使用して制限できます。
10.5.2 CONNECT問題
CONNECTメソッドは、トンネルを作成するために使用できます。サーバーは、トラフィックの量と同時接続数を監視すべきです (SHOULD)。
10.6 圧縮の使用 (Use of Compression)
圧縮は、暗号化されたデータに関する情報を公開する可能性があります。実装は、圧縮を使用する際に注意しなければなりません。
10.7 パディングの使用 (Use of Padding)
パディング (Padding) は、フレームコンテンツの実際のサイズを隠すために使用できます。ただし、パディングは適切な暗号化の代替ではありません。
10.8 プライバシーに関する考慮事項 (Privacy Considerations)
HTTP/2のいくつかの特性は、観察者に単一のクライアントまたはサーバーのアクションを時間をかけて相関させる機会を提供します。