Skip to content

HTTPS 中间人攻击

中间人攻击过程

通讯过程

客户端——中间人——服务器

过程如下

  1. 服务器向客户端发送公钥
  2. 攻击者截获公钥,保留在自己手上
  3. 然后攻击者自己生成一个【伪造的】公钥,发给客户端
  4. 客户端收到【伪造的】公钥后,利用【伪造的】公钥生成加密 hash 值发给服务器
  5. 攻击者截获加密 hash 值,用自己的私钥解密获得真秘钥
  6. 然后攻击者利用服务器的公钥对真秘钥进行生成假的加密 hash 值,发给服务器
  7. 服务器用私钥解密假的 hash 值获得真秘钥
  8. 这个时候,服务器和客户端将利用真秘钥进行数据加密传输,但是它们却不知道攻击者也有真秘钥,并且传输必须经过攻击者进行转发数据

如何防止中间人攻击?

服务端在发送浏览器的公钥中加入 CA 证书,浏览器可以验证 CA 证书的有效性。