Jeff Lee
前端
Flutter
分享
面试
GitHub
#
❓ 介绍下 HTTPS 中间人攻击
服务器向客户端发送公钥。
攻击者截获公钥,保留在自己手上。
然后攻击者自己生成一个【伪造的】公钥,发给客户端。
客户端收到伪造的公钥后,生成加密 hash 值发给服务器。
攻击者获得加密 hash 值,用自己的私钥解密获得真秘钥,同时用真公钥加密真秘钥,发给服务器。
服务器用私钥解密获得真秘钥。
服务器用加秘钥加密传输信息(中间人也知道秘钥 so:等于明文传输)。
服务端在发送浏览器的公钥中加入 CA 证书,浏览器可以验证 CA 证书的有效性