HTTPS通俗講解
HTTPS是基于SSL實(shí)現(xiàn)安全通訊的,而SSL又是基于 非對(duì)稱加密 和對(duì)稱加密來實(shí)現(xiàn)安全通訊的.
對(duì)稱加密是指用同一個(gè)秘鑰加密解密,非對(duì)稱加密可以簡(jiǎn)單理解成通過一種算法生產(chǎn)公開的秘鑰(簡(jiǎn)稱公鑰)和私鑰,公鑰加密的內(nèi)容只能由私鑰解密.
對(duì)稱加密簡(jiǎn)單,性能好但是由于傳遞秘鑰的過程容易泄露秘鑰,所以用非對(duì)稱加密來保護(hù)這個(gè)傳遞過程.
下半部分解釋了https請(qǐng)求的過程,這個(gè)過程里有證書.這個(gè)證書是用來驗(yàn)證服務(wù)器真?zhèn)蔚?也就是防止黑客偽裝成正常的服務(wù)器.
每個(gè)合法的https服務(wù)器都要有一個(gè)從CA機(jī)構(gòu)申請(qǐng)的證書,瀏覽器拿到這個(gè)證書后可以去CA機(jī)構(gòu)哪里驗(yàn)證真?zhèn)?這樣就可以確定訪問的服務(wù)器是合法的了.
fiddler實(shí)現(xiàn)https內(nèi)容劫持的簡(jiǎn)單解釋
瀏覽器之所以知道CA機(jī)構(gòu)的地址是因?yàn)殡娔X或?yàn)g覽器內(nèi)置了一個(gè)合法CA結(jié)構(gòu)列表. 每次需要驗(yàn)證時(shí)就從這個(gè)列表查找CA機(jī)構(gòu)地址,然后去驗(yàn)證.
使用fiddler劫持https請(qǐng)求之前,它會(huì)要求你下載一個(gè)文件安裝到你的電腦上,這個(gè)文件會(huì)在CA機(jī)構(gòu)列表里添加一個(gè)非法的CA結(jié)構(gòu)地址. 當(dāng)瀏覽器獲取到fiddler偽裝的服務(wù)器的證書時(shí)這個(gè)非法的CA機(jī)構(gòu)就會(huì)告訴瀏覽器"這是一個(gè)合法的證書",就這樣fiddler騙過了瀏覽器,讓瀏覽器吧請(qǐng)求內(nèi)容發(fā)送給了fiddler,
fiddler再偽裝成瀏覽器給真正的服務(wù)器發(fā)送請(qǐng)求,把真服務(wù)器返回的內(nèi)容再返回給真瀏覽器.
當(dāng)fiddler在中間代理時(shí),它就可以自由的展示/修改請(qǐng)求的內(nèi)容了.