4. Security Considerations (安全考虑因素)
4. Security Considerations (安全考虑因素)
本文描述的头字段使TTRP和后端或源服务器能够一起运作, 从客户端的角度来看, 它们就像是通过相互认证的TLS连接进行HTTPS的单个逻辑服务器端部署。然而, 在预期用例之外使用头字段可能会削弱TLS客户端证书认证所提供的保护。因此, 需要采取如下所述的步骤来防止意外使用, 无论是在发送头字段还是在依赖其值时。
生成和使用Client-Cert和Client-Cert-Chain头字段应该分别是TTRP和后端服务器 (或该服务器中的单个应用程序) 中的可配置选项。两者的默认配置都应该是不使用头字段, 因此需要"选择加入"该功能。
为了防止字段注入 (field injection), 后端服务器必须仅接受来自受信任的TTRP (或来自TTRP的受信任路径中的其他代理) 的Client-Cert和Client-Cert-Chain头字段。TTRP必须在转发请求之前通过删除或覆盖字段的任何现有实例来清理传入请求。否则, 任意客户端可以控制后端服务器看到和使用的字段值。重要的是要注意, 忽视防止字段注入不会"安全失败" (fail safe), 因为即使可能进行恶意操作, 名义功能仍将按预期工作。因此, 建议格外小心以确保适当的字段清理到位。
TTRP与后端服务器之间的通信需要防止非预期方的窃听和修改。
配置选项和请求清理是各自服务器的必要功能。其他要求可以通过多种方式满足, 这将根据具体部署而有所不同。例如, TTRP与后端或源服务器之间的通信可能以某种方式进行认证, 并且Client-Cert和Client-Cert-Chain头字段的插入和使用仅发生在该连接上。[HTTPSIG]的附录B.3通过HTTP消息签名 (HTTP Message Signatures) 的应用给出了一个示例。或者, 网络拓扑可能规定一个私有网络, 使得后端应用程序只能接受来自TTRP的请求, 并且代理只能向该服务器发出请求。满足本文所述要求的其他部署也是可能的。