Java教程

第 58 题:请描述 HTTPS 中间人攻击?

本文主要是介绍第 58 题:请描述 HTTPS 中间人攻击?,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

在参考连接中以及里面的大神评论中,我感觉漏了一些重要的点,所以按照个人的理解进行了一些调整,如有错误的地方还请大神纠正

中间人攻击过程如下(根据个人理解调整了)

通讯过程
客户端——中间人——服务器

过程如下

  1. 服务器向客户端发送公钥

  2. 攻击者截获公钥,保留在自己手上

  3. 然后攻击者自己生成一个【伪造的】公钥,发给客户端

  4. 客户端收到【伪造的】公钥后,利用【伪造的】公钥生成加密 hash 值发给服务器

  5. 攻击者截获加密 hash 值,用自己的私钥解密获得真秘钥

  6. 然后攻击者利用服务器的公钥对真秘钥进行生成假的加密 hash 值,发给服务器

  7. 服务器用私钥解密假的 hash 值获得真秘钥

  8. 这个时候,服务器和客户端将利用真秘钥进行数据加密传输,但是它们却不知道攻击者也有真秘钥,并且传输必须经过攻击者进行转发数据

如何防止中间人攻击?

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

这篇关于第 58 题:请描述 HTTPS 中间人攻击?的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!