![avatar](1.png)
avatar
初探Charles的抓包原理
1 | 最近接手的小需求需要使用到抓包工具,发现类似Charles这样的抓包工具,对于程序员的日常开发是必不可少的; |
HTTPS的安全性
对于HTTPS的分析可见上篇博客:
https://oyjcodes.github.io/2020/09/13/浅尝HTTPS通信协议/
Charles抓HTTPS包原理
当使用者还没有在手机上安装Charles根证书且没有设置为信任时,此时使用Charles抓包HTTPS的情况如下:
正常情况下,得到的结果都是
![avatar](2.png)
avatar
由上篇博文知HTTPS能有效防止中间人攻击,那么Charles是如何截取HTTPS包的呢?
这里最为重要的一步就是事先在客户端安装了Charles根证书
接下来Charles需要做的事情是双向伪装:对服务端伪装成客户端,对客户端伪装成服务端
![avatar](2.png)
avatar
1 | 对服务端伪装成客户端:截获真实客户端的HTTPS请求,伪装客户端向真实服务端发送HTTPS请求 |
HTTPS不是可以避免证书被篡改掉包么?为什么手机安装了Charles根证书后就能正常抓包呢?
其实Charles做的就是针对HTTPS的通信双方身份的真实性进行处理;
1 | 当客户端和服务器建立连接时,Charles会拦截到服务器返回的证书(服务器公钥) |