charles抓包原理

基础概念

1. CA

CA是证书颁发机构,不是随便什么人都能成为证书颁发机构,关键是你颁发的证书要别人认可。别人认可你才会内置你的证书(机构证书,也称根证书)。

2. TSL证书

TSL证书是指用于https通信,客户端验证服务端的合法性的一个数据包。

证书内容

服务提供者的基本信息和证书颁发机构和使用的算法和域名等+该服务的公钥+证书签名

证书签名怎么产生

服务提供者的基本信息先取hash,再用CA机构的私钥加密。

3. 根证书

CA机构的证书,客户端内置(最常见的就是浏览器厂商内置主流机构的证书)

4. 证书链

下级证书的签名是使用上级证书的私钥加密产生的,所以因为这个关联关系形成了一个链条。

5. 证书校验过程

step1 服务端发送自己的证书给客户端

step2 客户端读取证书颁发机构

step3 客户端找到本地对应机构的证书

step4 客户端那机构证书公钥解密服务器证书签名

step5 客户端拿证书信息作hash,与step4解密的内容对比,相等并且基本信息中的域名跟当前访问的域名一致则通过。

charles抓包原理

charles的根证书

charles自己做了一个根证书,你想要用charles抓包,第一步你要内置他发布的根证书。

charles伪造证书

charles用他自己的证书给你服务端的域名做一个证书。

charles作为中间人的流程

step1 拦截客户端请求

step2 发送他伪造的证书给客户端

step3 因为你内置了charles的根证书,所以该证书能校验通过

step4 客户端根charles协商好通信密码开始通信。

step5 charles收到客户端数据用伪造证书的私钥解密

step6 charles使用同样的流程跟你的服务器建立HTTPS加密通道

step7 charles将收到的客户端数据通过建好的通道发给服务器

step8 服务器返回响应数据给charles

step9 charles解密响应数据再加密发给客户端

相关推荐
爱写代码的森2 小时前
鸿蒙三方库 | harmony-utils之ImageUtil图片保存到本地详解
服务器·华为·harmonyos·鸿蒙·huawei
HLC++6 小时前
Linux的进程间通信
android·linux·服务器
白露与泡影8 小时前
Arthas 实战指南:从方法耗时定位到 JVM 变量热修改
服务器·jvm·c#
神奇霸王龙8 小时前
Claude Code屠榜:MiMo与Grok紧追Codex
服务器·网络·人工智能·gpt·ai·ai编程
Web极客码9 小时前
WordPress SEO优化:提升网站排名的13个关键步骤
服务器·seo·wordpress
张小姐的猫12 小时前
【Linux】网络编程 —— HTTP协议(上)
linux·运维·服务器·网络·http·单例模式·策略模式
国科安芯12 小时前
星间光链路:AS32S601型抗辐射MCU在空间激光通信终端控制中的技术实现
服务器·网络·单片机·嵌入式硬件·物联网·安全·信息与通信
imc.1113 小时前
linux基础IO
linux·运维·服务器
躺不平的理查德13 小时前
让Ubuntu 的第二块网卡 ens37 永久固定为 192.168.30.111
运维·服务器
bitbrowser14 小时前
Facebook 验证反复回到原页面,应该从哪里排查
运维·服务器·facebook