欢迎光临散文网 会员登陆 & 注册

HTTPS采用高安全性的TLS加密,可为什么Fiddler抓到HTTPS的包能解密?

2022-06-21 10:29 作者:德迅云安全--陈琦琦  | 我要投稿

Fiddler是干嘛的?

用于将加密的https报文解密,将明文的http报文字段呈现出来,方便调试排错http。


为何不用Wireshark呢?

Wireshark不方便,但是不方便并不代表wireshark不能将加密的https报文解密出来


Wireshark如何解密https报文呢?

浏览器可以将一个https session的加密/解密key提取(export)出来,将其输入(import)到Wireshark,然后就可以解密https session了。


浏览器(https client)与https server整个通信过程,wireshark全程没有参与,只是被动地监听录像,等人家两口子完事后,导演(调试https程序员)想看回放。于是import key给Wireshark,于是Wireshark将录像解密了出来,导演看看哪个细节出问题了。


Passive Mode

通常称Wireshark这种被动录像的工作模式为passive mode。这种模式不是非常方便,因为导演每看一次录像回放,都需要手动export/import一次key,非常麻烦。导演寻思着,有没有更便捷的回看录像的工具,每次可以直接看加密的录像?


有的,这个工具就是Fiddler。与Wireshark工作模式相反,Fiddler的录像功能是active mode,即主动参与模式,什么意思呢?


Active Mode

Fiddler需要全程参与整个https通信过程,Fiddler需要假冒服务器的身份来欺骗客户端。


怎么来欺骗客户端?

导演将Fiddler安装在客户端的机器上,随同软件一起安装的还有Fiddler的自签名证书。意味着这台机器充分信任这个自签名证书、以及使用这个证书私钥签名的任何证书。换句话说,如果给任何https服务器证书签名,这台机器及浏览器会信任吧?


会的!


信任逻辑一旦达成,接下来的细节其实不是很重要了。


Alice试图https联系Bob。


Alice:亲爱的Bob,是你吗?


Fiddler:是我,我是Bob(将自己签名的证书掏出来给Alice看)


Alice信了,于是与Fiddler协商了加密/解密key。


Fiddler 作为客户端,与Bob服务器正常https流程,双方也达成了另一组加密/解密key。


由于Fiddler两组Key都知道,所以可以毫无压力实时解密https流量。


导演可以一直色咪咪盯着摄像机,实时查看Alice与Bob的交互细节。


如果导演只是安装Fiddler软件,而没有信任Fiddler自签名证书,打死Fiddler它也解不开AES GCM加密的https流量!


所以并不是说https加密算法不行,而是为了方便调试加密的https,而设计的一款软件,利用了https认证环节的特点。


为何Fiddler解不开一些手机APP的https流量?

设计APP的导演们,深深滴知道https认证环节易于被利用,类似Fiddler中间人工具,那么加密的流量自然会被实时解密。为了避免被中间人欺骗,一些APP只信任几个特定的权威CA签名的证书,其它的证书统统无效,中间人欺骗的把戏就玩不下去了!


HTTPS采用高安全性的TLS加密,可为什么Fiddler抓到HTTPS的包能解密?的评论 (共 条)

分享到微博请遵守国家法律