Charles使用代理方式截获https的原理分析

最近在使用Charles工具来辅助解决自动化办公方面的问题,在使用的时候发现他能够截获https中的信息,亲们,而且是明文信息,我们知道明文信息都是通过会话双方协商好的 对称密钥来完成的,而这个密钥按理第三方是没有方面获得的(因为这是一个协商过程,有非对称密钥的保护),然后Charles工具可以获得明文,说明他已经获得了对称密钥,这是为什么呢????

知识预备:代理方面的知识大家要先看一下,然后分析如下:

首先分析SSL握手的建立过程,对称密钥是不应该被其他中间人(第三人)获知。

然后分析Charles使用的代理。对于一般的http代理是将本地客户端的请求先发给代理,然后由代理向服务器发请求,代理接受到回复后,将其再转发给客户端。

注意:这里面有一个问题就是本地客户端什么时候将请求发给代理??http是应用层的协议,我们知道代理是需要端口的,所以猜测应该是在运输层(在此处就是TCP方式)将其发给代理,这个步骤很关键,因为SSL在协议栈中的位置的问题。

 

最后分析一下https使用代理的情况。首先本地客户端发出https请求,由于在转发前要经过SSL层所以客户端段与代理之间先建立一个https连接,代理获得请求(解密)后,代理与目标服务器之间又建立一个https连接。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
您好!对于Charles移动端抓包配置代理无法使用网络的问题,可能有几个原因导致。以下是一些常见的解决方法: 1. 确保设备和Charles所在的计算机在同一个局域网下,并且能够相互访问。您可以尝试通过在设备上访问Charles所在计算机的IP地址来验证网络连接是否正常。 2. 在设备的网络设置中配置代理。在移动设备的Wi-Fi设置中,找到当前连接的Wi-Fi网络,点击进入高级设置(或代理设置),选择手动配置代理,并输入Charles所在计算机的IP地址和端口号(默认为8888)。 3. 在Charles中启用SSL代理功能。打开Charles软件,转到“Proxy”菜单,选择“SSL Proxying Settings”,确保“Enable SSL Proxying”选项已勾选,并添加需要抓包的域名或IP地址。 4. 在移动设备上安装CharlesSSL证书。在Charles软件中,转到“Help”菜单,选择“SSL Proxying”下的“Install Charles Root Certificate on a Mobile Device or Remote Browser”选项。根据提示,将证书发送到您的设备并安装。 5. 确保移动应用程序的网络请求正常。有些应用程序可能会使用自定义的网络请求库或者HTTPS证书固定功能,需要进行额外的配置才能与Charles正常通信。您可以尝试使用其他应用程序进行测试,或者查看应用程序的开发文档了解是否需要进行特殊配置。 如果以上方法仍然不能解决问题,可以尝试重启设备、重启Charles、更新Charles版本或者尝试其他抓包工具进行测试。希望这些解决方法能对您有所帮助!如果您还有其他问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值