HTTPS 中间人攻击
中间人攻击过程
通讯过程
客户端——中间人——服务器
过程如下
- 服务器向客户端发送公钥
- 攻击者截获公钥,保留在自己手上
- 然后攻击者自己生成一个【伪造的】公钥,发给客户端
- 客户端收到【伪造的】公钥后,利用【伪造的】公钥生成加密 hash 值发给服务器
- 攻击者截获加密 hash 值,用自己的私钥解密获得真秘钥
- 然后攻击者利用服务器的公钥对真秘钥进行生成假的加密 hash 值,发给服务器
- 服务器用私钥解密假的 hash 值获得真秘钥
- 这个时候,服务器和客户端将利用真秘钥进行数据加密传输,但是它们却不知道攻击者也有真秘钥,并且传输必须经过攻击者进行转发数据
如何防止中间人攻击?
服务端在发送浏览器的公钥中加入 CA 证书,浏览器可以验证 CA 证书的有效性。