我最近读到了 HTTPS 的工作原理,我有一些问题需要澄清。如果这听起来很愚蠢,请原谅我,但我只需要弄清楚这一点。如果我错了,请纠正我。
我知道,作为 TLS 握手开始的一部分,有一个非对称加密,其中证书中的公钥用于在客户端生成的密钥发送到服务器之前对其进行加密,并且只有服务器可以使用其私钥对其进行解密。
但是后续消息(HTTP 请求)使用客户端生成的密钥进行对称加密,客户端和服务器都使用此密钥来加密和解密应用程序数据。
密码学中有一个著名的理论,即“重复不好”,如果一条消息在加密消息中重复,则很容易破解它。如果这是真的,所有使用客户端生成的密钥加密的消息都将包含HTTP/1.x在其中,因为它是 HTTP 请求和响应的一部分。
因此,理论上,拥有这些知识的中间人可能会在加密的 HTTP 请求和响应中找到模式,并找出其中的HTTP/1.x字符串,然后蛮力生成用于加密这些消息的客户端密钥。
我是正确的还是这完全没有意义,任何答案或指导将不胜感激。