Skip to main content

10. Security Considerations (安全考虑)

10.1. Server Authority (服务器授权)

HTTP/2依赖于HTTP/1.1对服务器授权的定义和使用 (参见 [HTTP] 第4.3.4节)。

10.2. Cross-Protocol Attacks (跨协议攻击)

在TLS中,HTTP/2使用ALPN来标识协议。这有助于防止攻击者将HTTP/2流量误解为其他协议。

10.3. Intermediary Encapsulation Attacks (中介封装攻击)

HTTP/2头部字段编码允许表达在HTTP/1.1中无效的字段名。包含无效字段名的请求或响应必须 (MUST) 被视为格式错误。

10.4. Cacheability of Pushed Responses (推送响应的可缓存性)

推送的响应没有来自客户端的显式请求;请求由服务器在PUSH_PROMISE帧中提供。

10.5. Denial-of-Service Considerations (拒绝服务考虑)

10.5.1. Limits on Field Block Size (字段块大小的限制)

大型头部字段块可能导致实现将更多状态提交到连接。

10.5.2. CONNECT Issues (CONNECT问题)

CONNECT方法可用于在服务器上创建不成比例的负载。

10.5.3. Use of Compression (压缩的使用)

压缩可能使实现容易受到拒绝服务攻击。

10.5.4. Use of SETTINGS (SETTINGS的使用)

SETTINGS帧可用于造成对等方执行不必要的工作。


10.6. Use of Early Data in HTTP/2 (HTTP/2中早期数据的使用)

HTTP/2客户端可以使用TLS早期数据 [TLS13] 发送请求。

10.7. Privacy Considerations (隐私考虑)

HTTP/2中的几个特性为观察者提供了关于请求模式的信息。填充可以用于模糊消息的实际大小。

10.8. Padding and Traffic Analysis (填充和流量分析)

填充不是一个完美的防御流量分析的方法,但可以提供一定程度的保护。


🔑 关键安全要点

TLS必需: HTTP/2 over TLS必须使用TLS 1.2+

字段验证: 必须验证字段名和值以防止注入攻击

DoS防护:

  • 限制字段块大小
  • 限制并发流数
  • 监控SETTINGS滥用

隐私保护: 使用填充来保护消息大小信息

推送安全: 推送的响应应遵守缓存规则