使用参考资料
正常的流程
- 服务器的公钥是公开的,私钥是不公开的。RSA对中的公钥,一般由CSA之类的认证机构颁发.所以这也是为什么
Charls
安装后的证书是不被信任的原因. - 客户端先向服务器取得公钥
- 然后用公钥加密自己的私钥连同自己私钥加密的请求一并发送给服务器。
- 服务器使用自己私钥解密得到浏览器的私钥,使用客户端的私钥解密请求。
- 再用浏览器的私钥加密response发送回客户端。
charles做的事
Charles做的事就是将第一步中申请的公钥截获,这里再次解释了为什么Charles
产生的证书要我们手动去更改他的信任.因为这就是一个中间人攻击
中间人攻击是先伪装服务器向客户端发送伪造的公钥,从而取得客户端的私钥。这样就完成的客户端的解密。服务器端类似。