一、Fidder适用范围
- 只能抓取HTTP、HTTPS数据包
二、原理
在了解Fiddler解密https的原理之前,我们首先要知道标准的https通信原理。
https://bravoing.github.io/2019/12/16/HTTPS%E5%8E%9F%E7%90%86/
了解以上常识后我们再看Fiddler解密https的过程其实不难:
客户端发起请求,中间人(Fiddler)会拦截来自客户端的请求,并将伪造的ca证书派发给客户端。同时Fiddler向服务器请求,获得服务器的ca证书。
客户端接收到来自中间人(Fiddler)的证书,还傻傻的以为这个证书是来自服务器的,并且使用证书里的公钥(其实是Fiddler的公钥)对生成的通信秘钥(对称密钥)加密,发送给服务器。可怜的是这个数据包也会被中间人(Fiddler)拦截。
中间人(Fiddler)使用自己的私钥将数据包解密,很轻松地得到了通信秘钥。之后使用服务器的RSA公钥对通信密钥加密后传输给服务器。
服务器接收到“客户端”(其实是Fiddler)发送给自己的密钥,使用RSA私钥解密得到明文密钥后,建立信任。握手完成。使用对称密钥加密消息, 开始通信。
后面的事情大家应该就明白了,由于Fiddler持有通信秘钥,客户端和服务器的通信对其始终是透明的。