在参考连接中以及里面的大神评论中,我感觉漏了一些重要的点,所以按照个人的理解进行了一些调整,如有错误的地方还请大神纠正
中间人攻击过程如下(根据个人理解调整了)
通讯过程 客户端——中间人——服务器
过程如下
服务器向客户端发送公钥
攻击者截获公钥,保留在自己手上
然后攻击者自己生成一个【伪造的】公钥,发给客户端
客户端收到【伪造的】公钥后,利用【伪造的】公钥生成加密 hash 值发给服务器
攻击者截获加密 hash 值,用自己的私钥解密获得真秘钥
然后攻击者利用服务器的公钥对真秘钥进行生成假的加密 hash 值,发给服务器
服务器用私钥解密假的 hash 值获得真秘钥
这个时候,服务器和客户端将利用真秘钥进行数据加密传输,但是它们却不知道攻击者也有真秘钥,并且传输必须经过攻击者进行转发数据
如何防止中间人攻击?
服务端在发送浏览器的公钥中加入 CA 证书,浏览器可以验证 CA 证书的有效性
#
文章的内容/灵感都从下方内容中借鉴
【持续维护/更新 500+前端面试题/笔记】https://github.com/noxussj/Interview-Questions/issues
【大数据可视化图表插件】https://www.npmjs.com/package/ns-echarts
【利用 THREE.JS 实现 3D 城市建模(珠海市)】https://3d.noxussj.top/