原理
中间人替换了原本的证书
- 客户端使用了中间人的公钥(本应该是服务端的公钥)对客户端的密钥A(加密后期发送数据使用)进行加密,然后发给服务端
- 中间人截获加密数据使用中间人的私钥进行解密得到客户端的密钥A,然后使用服务端的公钥对客户端的密钥A进行加密发给服务端
- 服务端使用服务端的私钥进行解密得到客户端的密钥A,然后使用客户端的私钥对数据进行加密,发给客户端
- 中间人拿到服务端发给客户端的加密数据后使用客户端的密钥A进行解密,然后使用客户端的密钥A对原始数据修改后进行加密,发给客户端
中间人做的事:
- 截获服务端的公钥
- 把自己的公钥发给客户端
- 使用自己的私钥对客户端的加密数据进行解密,拿到客户端的密钥
- 使用服务端的公钥对客户端的密钥进行加密发给服务端
- 使用客户端的密钥对服务端加密的数据进行解密,再使用自己的客户端的密钥进行加密。
做的最重要的事就是获取客户端加密数据的密钥。
所以我们客户端需要信任Charles下发的证书
网友评论