We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
在参考连接中以及里面的大神评论中,我感觉漏了一些重要的点,所以按照个人的理解进行了一些调整,如有错误的地方还请大神纠正
通讯过程 客户端——中间人——服务器
过程如下
服务器向客户端发送公钥
攻击者截获公钥,保留在自己手上
然后攻击者自己生成一个【伪造的】公钥,发给客户端
客户端收到【伪造的】公钥后,利用【伪造的】公钥生成加密hash值发给服务器
攻击者截获加密hash值,用自己的私钥解密获得真秘钥
然后攻击者利用服务器的公钥对真秘钥进行生成假的加密hash值,发给服务器
服务器用私钥解密假的hash值获得真秘钥
这个时候,服务器和客户端将利用真秘钥进行数据加密传输,但是它们却不知道攻击者也有真秘钥,并且传输必须经过攻击者进行转发数据
服务端在发送浏览器的公钥中加入CA证书,浏览器可以验证CA证书的有效性
参考资料 第 91 题:介绍下 HTTPS 中间人攻击
The text was updated successfully, but these errors were encountered:
No branches or pull requests
在参考连接中以及里面的大神评论中,我感觉漏了一些重要的点,所以按照个人的理解进行了一些调整,如有错误的地方还请大神纠正
中间人攻击过程如下(根据个人理解调整了)
通讯过程
客户端——中间人——服务器
过程如下
服务器向客户端发送公钥
攻击者截获公钥,保留在自己手上
然后攻击者自己生成一个【伪造的】公钥,发给客户端
客户端收到【伪造的】公钥后,利用【伪造的】公钥生成加密hash值发给服务器
攻击者截获加密hash值,用自己的私钥解密获得真秘钥
然后攻击者利用服务器的公钥对真秘钥进行生成假的加密hash值,发给服务器
服务器用私钥解密假的hash值获得真秘钥
这个时候,服务器和客户端将利用真秘钥进行数据加密传输,但是它们却不知道攻击者也有真秘钥,并且传输必须经过攻击者进行转发数据
如何防止中间人攻击?
服务端在发送浏览器的公钥中加入CA证书,浏览器可以验证CA证书的有效性
参考资料
第 91 题:介绍下 HTTPS 中间人攻击
The text was updated successfully, but these errors were encountered: