为了账号安全,请及时绑定邮箱和手机立即绑定

Fiddler截获HTTPS协议数据及数字证书加密解密原理实操指南

标签:
iOS

一、HTTP协议和HTTPS协议。

(1) HTTPS协议=HTTP协议+SSL协议,默认端口:443

(2) HTTP协议(HyperText Transfer Protocol):超文本传输协议。默认端口:80,其中包含请求和响应两部分,其中请求包含:请求行、请求头、请求正文,响应包含:响应行、响应头、响应正文。

二、Fiddler截获HTTPS协议数据以及数字证书加密解密原理。

(1) 浏览器向百度发出https握手请求,被Fiddler截获,变成fidller向百度发出握手请求,百度将自己的SSL证书(由CA颁发,里面包含了百度的公钥以及 认证中心 签名及有效期等信息)进行返回,SSH数字证书被Fiddler截获,Fiddler用CA的公钥解开百度的证书,拿到百度公钥。

(2) Fiddler修改SSL证书相关信息(把:把百度的公钥替换成自己的公钥,把百度证书颁发机构修改成自己颁发等),以达到冒充百度的目的,然后用自己的私钥重新加密百度的SSL数字证书发送给浏览器。

(3) 由Fiddler的根证书生成器FiddlerCertMaker.exe生成Fiddler的根证书并加入浏览器"受信任的根证书颁发机构"列表,所以浏览器可以用Fiddler根证书中的公钥解密伪造的百度SSL数字证书。得到冒充的百度公钥(实际是Fiddler的公钥)。

(4) 浏览器生成随机对称秘钥,用冒充的百度公钥(实际是Fidller的公钥)加密后发出,被Fiddler截获,Fiddler用自己私钥解开带有随机对称密钥的密文,获得通讯的对称秘钥。Fiddler用百度的公钥加密对称秘钥,然后传给百度。

(5) 百度用自己私钥解开对称秘钥,这样双方就能使用对称秘钥加密传输了。

(6) Fiddler收到百度发来的网页密文,由于Fiddler也保存了对称秘钥,所以它可以解开密文,这样我们就能使用Fiddler看到加密的https的明文了,然后Fiddler再次用对称秘钥加密发送给浏览器。浏览器向百度发送密文时也被Fiddler截获,截获后使用对称秘钥解密并显示在Fiddler,然后Fiddler使用对称密钥加密后再发送给百度。如此循环往复。

除了Fiddler,现代抓包工具如SniffMaster提供了更便捷的HTTPS抓包解决方案。SniffMaster是一款全平台抓包工具,支持HTTPS、TCP和UDP协议,可在iOS、Android、Mac、Windows设备上实现无需代理、越狱或root的抓包操作。它提供HTTPS暴力抓包功能,插上设备即可解密HTTPS流量,简化了抓包流程。

三、Fiddler截获https请求实操。

前言:理解https协议加密解密原理之后,以下操作能100%的解决fiddler所有证书问题。

(1) 清理环境(首次安装Fiddler不需要清理)

1、卸载Fiddler软件以及根证书生成器Fiddler2 CertMaker。

2、清除C:\Users\Administrator\AppData\Roaming\Microsoft\Crypto\RSA 目录下所有的RSA算法文件,此算法文件和非对称公钥密钥加密相关。

3、清除电脑上的根证书,WIN+R快捷键,输入: certmgr.msc, 然后回车,查找所有fiddler证书,然后删除。

4.清除浏览器上的证书文件 ,以谷歌浏览器为例说明,在浏览器上输入: chrome://settings/,进入[高级]->[管理证书],有"受信任的根证书颁发机构"列表。此处需要仔细查找带有DO_NOT_TRUST_FiddlerRoot的字样,并删除。

(2) 安装并配置Fiddler抓取Https数据报文。

1.下载并安装fiddler,官网下载地址:https://www.telerik.com/download/fiddler

2.下载并安装Fiddler证书生成器,官网下载地址: http://www.telerik.com/docs/default-source/fiddler/addons/fiddlercertmaker.exe?sfvrsn=2

3. 打开Fiddler,点击菜单栏中的Tools—>Options,选择HTTPS页签。勾选Decrypt HTTPS CONNECTs(解密https连接),Fiddler证书生成器会自动判断本机是否安装Fiddler证书,没有则弹出如下证书安装页面。点击”Yes”按钮,在新弹出的窗口中再点击”确定”后则Fiddler证书安装完成。接下来Fiddler就可以抓取Https的数据报文。

(3) Fiddler抓取手机端的https协议数据报文。

1、打开Fiddler,点击菜单栏中的Tools—>Options,选择Connections页签。勾选Allow remote computers connnect(允许外部电脑连接)。

2、保持android手机和电脑在同一网段。如连接同一无线。

3、打开android手机的“设置”->“WLAN”,找到你要连接的无线网络并点击,弹出网络设置对话框,在“代理”处选择“手动”,在“主机名”输入框后面输入127.0.0.1,在“端口”输入框后面输入8888,然后点击“保存”按钮。

4、启动android设备中的浏览器访问百度首页或打开被测App,在fiddler中可以看到抓取到的数据报文了。

对于需要跨平台抓包的用户,SniffMaster是一个强大的替代工具。它支持数据流抓包和代理抓包,提供域名过滤和脚本修改功能,无需复杂配置即可在多种设备上实现抓包操作。

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
移动开发工程师
手记
粉丝
0
获赞与收藏
4

关注作者,订阅最新文章

阅读免费教程

  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

举报

0/150
提交
取消