大家都知道https是加密的通信缎浇,下邊簡(jiǎn)述一下簡(jiǎn)單流程
客戶端(打招呼)請(qǐng)求服務(wù)端(此時(shí)未建立https鏈接,通信都是明文的)横浑,服務(wù)端返回自己的服務(wù)器證書(shū)及相應(yīng)支持的加密方式列表
客戶端檢查ca證書(shū)是否受信儡司,是的話嘉竟,繼續(xù),不是的話诽凌,瀏覽器會(huì)有提示
客戶端生成RSA公鑰+客戶端回話密鑰(并加密)給服務(wù)器毡熏,服務(wù)器解密出兩個(gè)密鑰。然后自己生成一個(gè)服務(wù)端會(huì)話密鑰(并加密)發(fā)送給客戶端侣诵×》ǎ客戶端解密出來(lái)服務(wù)端會(huì)話密鑰。用人話說(shuō)就是杜顺,服務(wù)端和客戶端交流了一下自己的公鑰财搁,然后雙方各自生成了一個(gè)自己的通信密鑰并告知對(duì)方,交流完畢躬络,就開(kāi)始各自用各自的通信密鑰發(fā)送加密后的數(shù)據(jù)妇拯,正常通信了。
fiddler 抓包的原理就是 在客戶端和服務(wù)端中間添加一個(gè)透明代理洗鸵,這個(gè)代理當(dāng)然也有自己的CA(受信)證書(shū),對(duì)于服務(wù)端來(lái)說(shuō)仗嗦,fiddler就是一個(gè)客戶端膘滨,只要fiddler支持https協(xié)議即可;對(duì)于客戶端來(lái)說(shuō)稀拐,fiddler就是一個(gè)服務(wù)端火邓,我們真正的客戶端經(jīng)過(guò)fiddler的時(shí)候,客戶端需要鑒定fiddler的證書(shū)德撬,這一步就是為什么客戶端設(shè)備(手機(jī)铲咨、pc、其他終端設(shè)備)需要手動(dòng)安裝fiddler的證書(shū)蜓洪。
聯(lián)想一下纤勒,把我們剛剛安裝的 “ fiddler證書(shū) ” 替換成某某大公司的證書(shū),恰巧這個(gè)大公司又運(yùn)營(yíng)了你訪問(wèn)某(https)網(wǎng)站的必經(jīng)結(jié)點(diǎn)隆檀。那么你通過(guò)https訪問(wèn)的數(shù)據(jù)摇天,就沒(méi)得秘密可言了。