Charles 抓包

整体架构

  1. 何为Charles ?
  2. 有什么用处Charles。
  3. 如何安装Charles。
  4. Charles 抓包的原理。对应http和https的原理区别。
  5. Charles 对应的证书配置,如何配?

正篇

  • 何为Charles

    Charles官网:https://www.charlesproxy.com/。 Charles又名青花瓷,小花瓶。是用于网络抓包的工具,对应的还有一款不错的软件,比如Wireshark也是分析网络的不错的一个工具。我们可以看到我们的request,response 的 请求行,请求头,请求体,响应行,响应头,响应体的工具。

    注意:https 固然传输是安全的,但是顶不住用户自己作安装一些信任证书,所以我们除了app在application 和 transport 层之间的tls/ssl ,我们还要做适当的请求加密。这样即使我们的请求被抓包了,我们也可以保证app数据的安全。

  • 有什么用处?

    我们可以用来观察数据是否正确。测试的时候我们页面显示不正确的时候我们可以观察是不是数据返回有误导致的。快速定位问题的所在。是开发的问题,还是后台数据接口的问题。 我们还可以修改数据的返回值,通过设置Breakpoints。

  • 如何安装Charles

    1. 到官网安装 : https://www.charlesproxy.com/download/
    2. 通过homebrew 安装: brew cask install Charles

    注意: 下载安装完成Charles ,基本上就可以对 http进行抓包了。不过要做响应的配置。如下:


    step 1.jpeg
step 2

我们就可以监听http了。

  • http 抓包原理

    http里面涉及三次握手,抓包还是比较容易的,Charles作为中间人比较好监听。比如相对于客户端他可以伪装成服务端。相对于服务端,他可以伪装成客户端,在中间起到一个转承的作用。

http.png
  • https 的抓包原理

    问题: 我们经常会碰到用Charles抓包的时候https总是一堆乱码。

    前提: 我们需要了解https的原理 ,传送门:

    简要概述: https 即为 http + s。我们需要关注的就是SSL/TLS之间是怎么通信的。

    1. 客户度发送随机数,加密算法列表,TLS/SSL版本好给服务器
    2. 服务器下派证书,随机数,加密算法 给客户端
    3. 用CA的公钥解开证书签名,如果能够解开则是服务器发给我们的。然后生成随机数,用server 的public key 进行加密得到加密随机数。再然后将上面发送的内容进行hash,得到一段hash后再用随机数进行加密,得到加密hash。然后将加密随机数,加密hash ,传给服务器,并且告诉服务端以商量好的方式生成一个对称加密密钥,通过这个密钥进行内容加密。至此客户端的握手完成。
    4. 服务端用公钥解开拿到随机数,再用随机数解开hash得到解开hash值。对内容进行hash,然后对比hash相等则没有被篡改。就告诉客户端用上面的方式加密。加密hash 提供客户端验证。
    
  • Charles抓https的包的原理就明朗了。

    1. 客户端向服务端"实际上是Charles端",say hello ,即 发送随机数,加密算法列表,以及SSL/TLS版本号。
    2. Charles 监听这个请求参数,当服务器返回证书,随机数,加密算法,Charles拦截这个请求,拿到服务器的公钥。然后发送自己的证书给客户端,随机数,加密方式。
    3. 客户端进行证书验证,需要手机或者浏览器信任Charles的证书。然后客户端拿到Charles的公钥加密pre-master-key ,得到加密随机数。将加密随机数,还有按照约定的方式进行加密通信。再用随机数加密hash内容后的hash。发送给服务器(实际上是Charles)。客户端握手完成。
    4. Charles 拿到后,用自己的私钥解开加密的premaster - key,得到后,再用真正服务器的公钥进行加密随机数,双方按照约定的方式得到加密key进行通信。然后再用随机数加密hash内容后的hash。发送给服务器。
    5. 服务器拿到后用私钥解开Charles的加密信息,得到随机数。用随机数解开得到hash ,验证hash。然后发送消息按照双方的约定进行通信。

    这就是Charles 作为中间人的一个原理

    https 一般如果没有配置证书会出现乱码的情况

    解决之道:

安装证书.jpeg
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 230,527评论 6 544
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 99,687评论 3 429
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 178,640评论 0 383
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 63,957评论 1 318
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 72,682评论 6 413
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 56,011评论 1 329
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 44,009评论 3 449
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 43,183评论 0 290
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 49,714评论 1 336
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 41,435评论 3 359
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 43,665评论 1 374
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 39,148评论 5 365
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 44,838评论 3 350
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 35,251评论 0 28
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 36,588评论 1 295
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 52,379评论 3 400
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 48,627评论 2 380

推荐阅读更多精彩内容