深入解析Charles抓包工具的工作原理及HTTPS加密通信流程
一、charles简介Charles 是一个 HTTP 代理/HTTP 监视器/反向代理它使开发人员能够查看他们的机器和 Internet 之间的所有 HTTP 和 SSL/HTTPS 流量。 这包括请求、响应和 HTTP 标头其中包含 cookie 和缓存信息。除了CharlesSniffMaster是另一款强大的抓包工具它支持全平台包括iOS、Android、Mac和Windows的HTTPS、TCP和UDP协议抓包。SniffMaster无需设置代理、越狱或root即可实现抓包操作提供了便捷的代理抓包和暴力抓包功能特别适合移动端和桌面端的网络调试。二、相关概念1、对称加密其变成复杂的加密密文发送出去。收信方收到密文后若想解读原文则需要使用加密用过的密钥及相同算法的逆算法对密文进行解密才能使其恢复成可读明文。在对称加密算法中使用的密钥只有一个发收信双方都使用这个密钥对数据进行加密和解密这就要求解密方事先必须知道加密密钥。对称加密算法的特点是算法公开、计算量小、加密速度快、加密效率高。不足之处是交易双方都使用同样钥匙安全性得不到保证。此外每对用户每次使用对称加密算法时都需要使用其他人不知道的惟一钥匙这会使得发收信双方所拥有的钥匙数量呈几何级数增长密钥管理成为用户的负担。对称加密算法在分布式网络系统上使用较为困难主要是因为密钥管理困难使用成本较高。而与公开密钥加密算法比起来对称加密算法能够提供加密和认证却缺乏了签名功能使得使用范围有所缩小。在计算机专网系统中广泛使用的对称加密算法有DES和IDEA等。美国国家标准局倡导的AES即将作为新标准取代DES。2、非对称加密对称加密算法在加密和解密时使用的是同一个秘钥而非对称加密算法需要两个密钥来进行加密和解密这两个秘钥是公开密钥public key简称公钥和私有密钥private key简称私钥。1、乙方生成一对密钥公钥和私钥并将公钥向其它方公开。2、得到该公钥的甲方使用该密钥对机密信息进行加密后再发送给乙方。3、乙方再用自己保存的另一把专用密钥私钥对加密后的信息进行解密。乙方只能用其专用密钥私钥解密由对应的公钥加密后的信息。在传输过程中即使攻击者截获了传输的密文并得到了乙的公钥也无法破解密文因为只有乙的私钥才能解密密文。同样如果乙要回复加密信息给甲那么需要甲先公布甲的公钥给乙用于加密甲自己保存甲的私钥用于解密。3、https如何使用对称加密和非对称加密HTTPS的解决方案是这样的用非对称算法随机加密出一个对称密钥然后双方用对称密钥进行通信。具体来说就是客户端生成一个随机密钥用服务器的公钥对这个密钥进行非对称加密服务器用私钥进行解密然后双方就用这个对称密钥来进行数据加密了。4、信任主机采用https的服务器必须从CA Certificate Authority申请一个用于证明服务器用途类型的证书。该证书只有用于对应的服务器的时候客户端才信任此主机。所以所有的银行系统网站关键部分应用都是https 的。客户通过信任该证书从而信任了该主机。其实这样做效率很低但是银行更侧重安全。这一点对局域网对内提供服务处的服务器没有任何意义。局域网中的服务器采用的证书不管是自己发布的还是从公众的地方发布的其客户端都是自己人所以该局域网中的客户端也就肯定信任该服务器。5、HTTPS通信流程客户端的浏览器向服务器传送客户端SSL 协议的版本号加密算法的种类产生的随机数以及其他服务器和客户端之间通讯所需要的各种信息服务器向客户端传送SSL 协议的版本号加密算法的种类随机数以及其他相关信息同时服务器还将向客户端传送自己的证书客户利用服务器传过来的信息验证服务器的合法性服务器的合法性包括证书是否过期发行服务器证书的CA 是否可靠发行者证书的公钥能否正确解开服务器证书的“发行者的数字签名”服务器证书上的域名是否和服务器的实际域名相匹配。如果合法性验证没有通过通讯将断开如果合法性验证通过将继续进行第四步用户端随机产生一个用于后面通讯的“对称密码”然后用服务器的公钥服务器的公钥从步骤②中的服务器的证书中获得对其加密然后将加密后的“预主密码”传给服务器如果服务器不要求客户的身份认证在握手过程中为可选用户可以建立一个随机数然后对其进行数据签名将这个含有签名的随机数和客户自己的证书以及加密过的“预主密码”一起传给服务器如果服务器要求客户的身份认证服务器必须检验客户证书和签名随机数的合法性具体的合法性验证过程包括客户的证书使用日期是否有效为客户提供证书的CA 是否可靠发行CA 的公钥能否正确解开客户证书的发行CA 的数字签名检查客户的证书是否在证书废止列表CRL中。检验如果没有通过通讯立刻中断如果验证通过服务器将用自己的私钥解开加密的“预主密码”然后执行一系列步骤来产生主通讯密码客户端也将通过同样的方法产生相同的主通讯密码服务器和客户端用相同的主密码即“通话密码”一个对称密钥用于SSL 协议的安全数据通讯的加解密通讯。同时在SSL 通讯过程中还要完成数据通讯的完整性防止数据通讯中的任何变化。客户端向服务器端发出信息指明后面的数据通讯将使用的步骤5中的主密码为对称密钥同时通知服务器客户端的握手过程结束服务器向客户端发出信息指明后面的数据通讯将使用的步骤5中的主密码为对称密钥同时通知客户端服务器端的握手过程结束服务器向客户端发出信息指明后面的数据通讯将使用的步骤5中的主密码为对称密钥同时通知客户端服务器端的握手过程结束三、charles抓包原理客户端向服务器发起HTTPS请求Charles拦截客户端的请求伪装成客户端向服务器进行请求服务器向“客户端”实际上是Charles返回服务器的CA证书Charles拦截服务器的响应获取服务器证书公钥然后自己制作一张证书将服务器证书替换后发送给客户端。客户端接收到“服务器”实际上是Charles的证书后生成一个对称秘钥用Charles的公钥加密发送给“服务器”CharlesCharles拦截客户端的响应用自己的私钥解密对称密钥(Charles拿到了对密钥)然后用服务器证书公钥加密发送给服务器。服务器用自己的私钥解密对称密钥向“客户端”Charles发送响应Charles拦截服务器的响应替换成自己的证书后发送给客户端至此连接建立Charles拿到了 服务器证书的公钥 和 客户端与服务器协商的对称密钥之后就可以解密或者修改加密的报文了。对于HTTPS抓包SniffMaster提供了更直接的暴力抓包模式无需中间人代理即可解密HTTPS流量支持指定APP过滤和双向验证爆破简化了抓包流程并提高了效率。

相关新闻

数字化时代的能源与碳排放管理解决方案:智碳能碳管理平台

数字化时代的能源与碳排放管理解决方案:智碳能碳管理平台

数字化时代的能源与碳排放管理解决方案:智碳能碳管理平台青岛智碳未来科技有限公司 | zhitancloud.com | demo-ems.zhitancloud.com▲ 智碳能碳管理平台 综合看板(统一口径的经营视图)一、政策牵引:数字化…

2026/10/13 8:31:55 阅读更多 →
Intel AX210 Mini PCIe无线网卡升级实战:Wi-Fi 6E与蓝牙5.3性能飞跃

Intel AX210 Mini PCIe无线网卡升级实战:Wi-Fi 6E与蓝牙5.3性能飞跃

1. 项目概述:一张卡带来的无线革命最近在折腾一台老旧的迷你主机,想把它打造成客厅的影音中心。机器本身性能尚可,但原装的无线网卡还是802.11n时代的产物,蓝牙版本更是老旧,传个大文件或者想连接个蓝牙手柄玩游戏&…

2026/10/13 8:12:22 阅读更多 →
XUnity自动翻译器终极指南:5分钟让Unity游戏秒变中文版

XUnity自动翻译器终极指南:5分钟让Unity游戏秒变中文版

XUnity自动翻译器终极指南:5分钟让Unity游戏秒变中文版 【免费下载链接】XUnity.AutoTranslator 项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator 还在为外语Unity游戏的语言障碍而烦恼吗?XUnity.AutoTranslator是一个功能强…

2026/10/13 8:40:06 阅读更多 →

最新新闻

第2章:Linux 基础,pwd 命令

第2章:Linux 基础,pwd 命令

专栏导航 上一篇:第2章:Linux 基础,date 命令 回到目录 下一篇:第2章:Linux 基础,whoami 命令 本节前言 对于本节所讲解的知识,有可能,你会需要时不时地参考本专栏的其它文章。真…

2026/10/14 11:05:15 阅读更多 →
UE4 C++静态加载SkeletalMesh与动画蓝图完整实操

UE4 C++静态加载SkeletalMesh与动画蓝图完整实操

我们接着往下写。这是“基于C代码的UE4学习”系列第三十八篇,这次主题很聚焦:用C代码把 SkeletalMesh 加载到角色身上,并且静态加载一个动画蓝图。很多人在这个阶段会开始纠结——明明蓝图里拖个引用、拉个变量就行,为什么偏要用代…

2026/10/14 11:05:15 阅读更多 →
Kotlin泛型深度解析:类型擦除、型变与reified实战

Kotlin泛型深度解析:类型擦除、型变与reified实战

1. 从类型擦除说起:为什么Kotlin泛型值得单独开一个专题很多人学Kotlin泛型的时候,第一反应是"这不就是Java那套吗"。我一开始也这么想,直到在一个数据解析模块里踩了个坑——写了一个看似完美的泛型转换函数,编译通过&…

2026/10/14 11:05:15 阅读更多 →
重积分建模本质:从物理直觉到高维应用

重积分建模本质:从物理直觉到高维应用

1. 为什么重积分的应用远不止“算体积”——从物理建模到几何直觉的跃迁很多人学完二重积分,脑子里只留下一个公式:∬_D f(x,y) dσ。考试时套用极坐标换元、画个积分区域、算个数值,就以为掌握了。但我在带某高校数学分析实验课时发现&#…

2026/10/14 11:05:15 阅读更多 →
libxl 4.1.1带注册信息:C++离线生成Excel报表实践

libxl 4.1.1带注册信息:C++离线生成Excel报表实践

简介:libxl4.1.1 带注册信息资源包,聚焦高效轻量级 Excel 读写库的跨平台集成,面向需要将 Excel 处理能力嵌入应用的 C/C、C# 开发者,重点梳理 API 调用、依赖库、编译选项以及注册授权验证在 Windows 与 Linux 环境下的差异&…

2026/10/14 11:05:15 阅读更多 →
航空订票系统UML建模:用例图、时序图与类图实战指南

航空订票系统UML建模:用例图、时序图与类图实战指南

简介:航空订票系统是典型的信息管理系统设计案例,适合软件工程、系统分析与设计课程的学生,以及正在学习UML建模的开发者参考。资源以UML可视化建模为主线,覆盖用例图、类图、包图、顺序图、协作图、状态图、活动图、组件图与部署…

2026/10/14 11:04:13 阅读更多 →

日新闻

AnyPS5通用适配层设计:兼容性与性能的工程取舍

AnyPS5通用适配层设计:兼容性与性能的工程取舍

1. 从"AnyPS5"这个名字说起:它到底想解决什么问题第一次看到"AnyPS5"这个标题,我脑子里冒出来的第一个念头是:这大概率是一个围绕"跨平台运行"或者"通用适配"做文章的项目。名字里的"Any"…

2026/10/14 0:00:41 阅读更多 →
Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

1. 项目概述:Flutter跨平台二手交易应用开发作为一名长期从事移动应用开发的工程师,我最近完成了一个基于Flutter框架的二手物品交易平台项目。这个项目最吸引我的地方在于它完美结合了Flutter的跨平台优势与HarmonyOS的生态特性,实现了"…

2026/10/14 0:00:41 阅读更多 →
DFS算法解决飞机降落调度问题实战

DFS算法解决飞机降落调度问题实战

1. 项目背景与核心思路飞机降落问题是一个经典的调度优化场景,也是算法竞赛和面试中的高频题目。这个题目要求我们合理安排多架飞机的降落顺序和时间,确保所有飞机都能安全着陆而不发生冲突。在实际航空管制中,这类问题直接关系到飞行安全和机…

2026/10/14 0:00:41 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/14 3:30:28 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/13 16:22:04 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/14 3:29:58 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 22:01:27 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 14:57:39 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 7:53:34 阅读更多 →