一、简介
Charles 是一款常用的网络抓包工具,通过将自己设置成系统的网络访问代理服务器,用于调试与服务器端的网络通讯协议,除了常见的http协议的抓包,Charles 还可以分析 Https 协议。
Charles的主要功能包括:
1.将Charles设置成系统代理
2.支持抓https请求包
3.支持修改网络请求参数
4.支持网络请求的截获并动态修改
5.支持模拟慢速网络
6.过滤网络请求
二、安装
1.去Charles官网下载相应操作系统的安装包即可。http://www.charlesproxy.com
2.一直next无脑安装。
三、工作原理
1.http协议包
Charles启动之后会自动配置代理,我们手机上、浏览器的所有请求都会经过Charles并被拦截,然后Charles把自己伪装成手机向我们的远程服务器地址发送请求;
服务端响应请求时,实际上是响应了Charles的请求,Charles获得服务端的响应以后,又转发给我们的手机,所以Charles能获得服务端响应的详细信息。
如下图中的小B就充当了Charles代理的功能:
2.https协议包
Charles拦截客户端的请求,伪装成客户端向服务器进行请求
服务器向“客户端”(实际上是Charles)返回服务器的CA证书
Charles拦截服务器的响应,获取服务器证书公钥,然后自己制作一张证书,将服务器证书替换后发送给客户端。(这一步,Charles拿到了服务器证书的公钥)
客户端接收到“服务器”(实际上是Charles)的证书后,生成一个对称密钥,用Charles的公钥加密,发送给“服务器”(Charles)
Charles拦截客户端的响应,用自己的私钥解密对称密钥,然后用服务器证书公钥加密,发送给服务器。(这一步,Charles拿到了对称密钥)
服务器用自己的私钥解密对称密钥,向“客户端”(Charles)发送响应
Charles拦截服务器的响应,替换成自己的证书后发送给客户端
至此,连接建立,Charles拿到了 服务器证书的公钥 和 客户端与服务器协商的对称密钥,之后就可以解密或者修改加密的报文了。
四、Charles的基本功能
1.Charles主要页面介绍