Charles作用其实相当于拦截器,当客户端和服务器通信时,Charles其实会先接收到服务器的证书,但是它会自己生成一个证书发送给客户端(不管是Web端或App应用),也就是说它不仅仅是拦截,甚至还可以修改。

由于Charles更改了证书,所以如果你是使用的Web浏览器,需要导入相应的Charles证书,否则校验不通过会给出安全警告,必须安装Charles的证书后才能进行正常访问。

App应用则需要在你的手机设备中添加该Charles证书,有些设备可能相对变态,必须你设置密码锁才可以安装证书成功。

客户端向服务器发起HTTPS请求

Charles拦截客户端的请求。

服务器向“客户端”(实际上是Charles)返回服务器的CA证书

Charles拦截服务器的响应,获取服务器证书公钥,然后自己制作一张证书,将服务器证书替换后发送给客户端。(这一步,Charles拿到了服务器证书的公钥)

客户端接收到“服务器”(实际上是Charles)的证书后,生成一个对称密钥,用Charles的公钥加密,发送给“服务器”(Charles)

Charles拦截客户端的响应,用自己的私钥解密对称密钥,然后用服务器证书公钥加密,发送给服务器。(这一步,Charles拿到了对称密钥)

服务器用自己的私钥解密对称密钥,向“客户端”(Charles)发送响应

Charles拦截服务器的响应,替换成自己的证书后发送给客户端

至此,连接建立,Charles拿到了 服务器证书的公钥 和 客户端与服务器协商的对称密钥,之后就可以解密或者修改加密的报文了。

HTTPS抓包的原理还是挺简单的,简单来说,就是Charles作为“中间人代理”,拿到了 服务器证书公钥 和 HTTPS连接的对称密钥,前提是客户端选择信任并安装Charles的CA证书,否则客户端就会“报警”并中止连接。这样看来,HTTPS还是很安全的。

https抓包_浅谈HTTPS抓包原理,为什么Charles能够抓取HTTPS报文?相关推荐

  1. 动态磅是怎么原理_浅谈动态地磅的原理及未来发展方向

    浅谈动态地磅的原理及未来发展方向: 文章介绍了动态地磅的结构和工作原理,针对动态地磅的分类做了全面的概述,分别对不同的动态地磅做了对比及详细的阐述,说明选择和使用动态地磅器的注意事项,凸显了轴组式动态 ...

  2. 伺服驱动器生产文件_浅谈伺服驱动器的工作原理

    原标题:浅谈伺服驱动器的工作原理 目前,主流的伺服驱动器均采用数字信号处理器(DSP)作为控制核心,可以实现比较复杂的控制算法,实现数字化.网络化和智能化.功率器件普遍采用以智能功率模块(IPM)为核 ...

  3. 00005在java结果输出_浅谈Java反序列化漏洞原理(案例未完善后续补充)

    摘要: 0005,这个16进制流基本上也意味者java反序列化的开始:(2)HTTP:必有rO0AB,其实这就是aced0005的base64编码的结果:以上意味着存在Java反序列化,可尝试构造pa ...

  4. pythonddos防御_浅谈拒绝服务攻击的原理与防御(7):用Python和C实现syn flood攻击...

    01 前言 以前做DDOS的实验都是用python来编写工具的,开始不会编写结构不会算校验和的时候就用scapy写,后来学会了报文结构开始自己构造各种报文,但是用python写成之后虽然是能实现基本功 ...

  5. mysql笛卡尔积查询很慢_浅谈MySQL使用笛卡尔积原理进行多表查询

    我就废话不多说了,大家还是直接看代码吧~create or replace function aa1(a1 integer[],a2 bigint) returns void AS $$declare ...

  6. java线程池和线程实例化_浅谈Java 线程池原理及使用方式

    一.简介 什么是线程池? 池的概念大家也许都有所听闻,池就是相当于一个容器,里面有许许多多的东西你可以即拿即用.java中有线程池.连接池等等.线程池就是在系统启动或者实例化池时创建一些空闲的线程,等 ...

  7. synchronized原理_浅谈synchronized的实现原理

    Synchronized是Java中的重量级锁,在我刚学Java多线程编程时,我只知道它的实现和monitor有关,但是synchronized和monitor的关系,以及monitor的本质究竟是什 ...

  8. 1流式细胞术荧光比值计算_浅谈流式细胞仪的工作原理和应用

    流式细胞术(Flow Cytometry, FCM)是七十年代发展起来的一项高科学技术,80年代开始从基础研究发展到临床医学研究及疾病的诊断和治疗监测,我国在80年代初引进了第一台流式细胞仪. 它集光 ...

  9. python可视化工具bokeh_浅谈python可视化包Bokeh

    本文研究的主要是python可视化包Bokeh的相关内容,具体如下. 问题:需要把pandas的数据绘图并通过网页显示,matplotlib需要先保存图像,不合适. 解决:在网上搜了一下,找到一篇介绍 ...

最新文章

  1. Stack Overflow上188万浏览量的提问:Java 到底是值传递还是引用传递?
  2. html 可以折叠的表格,javascript – html5 – 如何折叠和扩展复杂的表格元素
  3. Codeforces Round #167 (Div. 1) C. Dima and Horses(BFS+贪心)
  4. 继承 :5、程序设计 类:汽车类 属性:排量(outPut),颜色(color) 行为:驾驶(drive)
  5. 【Java并发编程】java高并发的解决方案(一)
  6. 3500 yuan to php,350 CNY to PHP Currency Converter - 人民币 菲律宾比索 汇率兑换
  7. docker查找镜像_5 款非常好用的开源 Docker 工具,get一波~
  8. php 滑动 图片,JQuery图片滑动
  9. php 打印请求体,php如何获取原生请求体
  10. 记Angular与Django REST框架的一次合作(2):前端组件化——Angular
  11. 从properties配置文件中获取到的中文乱码
  12. 企业网ARP欺骗网关攻击与伪DHCP分析与处理
  13. CDA的考试体系与人才能力模型
  14. 飞凌OK6410开发板加装锂电池电源管理模块
  15. 港股交易最大手数是如何规定的?
  16. Delphi开发短信应用-阿里云服务
  17. wireshark IP地址域名解析
  18. Unity3D-摄像机详解
  19. 【Redis笔记】缓存穿透与缓存击穿以及应对方法
  20. ipmitool 命令行重启服务器

热门文章

  1. matlab中rgb转hsv,matlab实现RGB与HSV(HSB)、HSL和HSI的色彩空间互转
  2. eclipse配置tomcat,并部署一个Java web项目到tomcat上
  3. 阿里正在研发无人卡车;《王者荣耀》皮肤个性动作涉嫌抄袭致歉;​苹果泄露女生私密照赔偿数百万美元|极客头条...
  4. 这一次,苹果、Google、微软选择了统一战线!
  5. Go 应用优化“指北”
  6. 火山引擎智能容器云 veCompass v3.0 重磅发布!
  7. 360 安全浏览器尝试收费;苹果macOS首次出现在云端;pip 20.3 发布|极客头条
  8. 物联网大战打响,6 岁的涂鸦智能这样突出重围!
  9. 陆奇、雷军、熊晓鸽聊疫情后的创业风口
  10. 2020,国产 AI 开源框架“剑指”TensorFlow、PyTorch