10. 安全考虑 (Security Considerations)
10.1 服务器权限 (Server Authority)
HTTP/2依赖于HTTP/1.1对服务器权限的定义(参见[RFC7230]的第9.1节)。这包括所使用的方案和,对于"http" URI方案,用于建立权限的机制;以及对于"https"方案,用于认证服务器的机制(参见[RFC2818]的第3节)。
10.2 跨协议攻击 (Cross-Protocol Attacks)
在通过TLS使用ALPN [TLS-ALPN]协商协议时,已知选择的协议来自服务器列出的协议。但是,对手可能会注入帧或干扰连接以引起错误,从而导致客户端提供敏感凭据。
10.3 中间件封装攻击 (Intermediary Encapsulation Attacks)
HTTP/2头部字段编码允许表达在HTTP/1.1中不可能或非常困难的名称或值。恶意请求或响应可能会导致中间件使用等效HTTP/1.1消息的非规范或无效编码。
10.4 可推送流的缓存性 (Cacheability of Pushed Responses)
推送的响应没有来自客户端的明确请求;请求由服务器提供PUSH_PROMISE帧。
要缓存推送的响应,客户端必须验证服务器是否对提供的响应具有权限。这可以通过检查服务器的授权(第10.1节)来完成。
10.5 拒绝服务注意事项 (Denial-of-Service Considerations)
HTTP/2连接可以要求资源来维护,包括用于解压缩、帧缓冲和流状态维护的头部压缩状态。SETTINGS帧可以请求连接使用大量内存的设置。
10.5.1 连接限制 (Limits on Header Block Size)
大的或无界的请求可以用于向实施者施加对服务器使用的拒绝服务攻击。实现应该限制它们将解压缩的大小。
10.5.2 CONNECT问题 (CONNECT Issues)
CONNECT方法可以用于创建对可疑源的连接。只有在验证了标识或通过强制对已知主机限制了这些连接之后,才能允许CONNECT到任意服务器。
10.5.3 增强您的平静 (Enhance Your Calm)
端点可能被过多的请求、过大的头部块或恶意的控制帧所不堪重负。如果端点检测到其对等方表现不当,它可以生成GOAWAY帧。
10.5.4 使用限制 (Use of Compression)
使用压缩的单个头部字段或多个头部字段的组合以及使用填充和压缩的组合可以使应用程序受到特定攻击(例如,[BREACH])。
10.6 使用早期数据在TLS 1.3 (Use of Early Data in TLS 1.3)
HTTP/2使用的TLS 1.3 [TLS13]的一个特性是能够在初始握手期间发送数据("早期"数据)。使用早期数据的客户端受到一些限制。
10.7 隐私考虑 (Privacy Considerations)
HTTP/2的几个特征为观察者提供了将动作与单个客户端相关联的机会。
10.7.1 填充和流量分析 (Padding and Traffic Analysis)
HTTP/2中的填充不旨在作为对流量分析攻击的一般保护。这些功能更像是一种工具,可用于缓解特定的攻击。
上一章: 9. 其他HTTP要求/注意事项 (Additional HTTP Requirements/Considerations)
下一章: 11. IANA考虑 (IANA Considerations)