【问题标题】:Can certificates verify dumped https traffic?证书可以验证转储的 https 流量吗?
【发布时间】:2023-01-04 03:54:20
【问题描述】:
假设,例如,我向https://example.com 发出了一个 HTTP 请求并转储了以下数据
- 根 CA 之前用于在建立连接时验证服务器的所有证书
- 双向所有原始 TCP 流量
- 双向所有未加密/解密的 HTTP 流量
- (可选)客户端生成的附加数据
然后我想证明我确实与那些 CA 信任的 https://example.com 建立了这样的连接,并且流量在客户端不是假的或修改的,假设该网站是“可信的”,例如它已安全配置且未被黑客入侵。
这可能吗?
如果可能,客户端还需要转储哪些数据以及如何进行验证?
【问题讨论】:
标签:
https
ssl-certificate
【解决方案1】:
有足够的“客户端生成的附加数据”,是的,但实际答案是“否”。
现代 TLS 中使用的密码套件都使用称为“Perfect Forward Secrecy”的功能。要点是,除了用于服务器(和可选的客户端)身份的稳定的非对称密钥对之外,客户端和服务器都会生成一个随机的椭圆曲线 Diffie-Hellman(或经典的 Diffie-Hellman)密钥对,执行(EC )DH 密钥协商会话主密钥,然后双方立即忘记该协商的临时私钥。如果没有这些 (EC)DH 私钥中的任何一个,您将无法重新导出完整性密钥,因此您无法证明会话。
当然,如果你可以重新导出完整性密钥,然后您就可以在之后伪造会话。所以我想,无论哪种方式,最终答案都是“否”。