公司:#百度 #小米
崗位:#接口測(cè)試工程師
關(guān)鍵字:#接口測(cè)試 #接口測(cè)試工程師 #API接口 #fiddler
第一步,F(xiàn)iddler截獲客戶(hù)端發(fā)送給服務(wù)器的HTTPS請(qǐng)求,F(xiàn)iddler偽裝成客戶(hù)端向服務(wù)器發(fā)送請(qǐng)求進(jìn)行握手 。
第二步,服務(wù)器發(fā)回相應(yīng),F(xiàn)iddler獲取到服務(wù)器的CA證書(shū), 用根證書(shū)(這里的根證書(shū)是CA認(rèn)證中心給自己頒發(fā)的證書(shū))公鑰進(jìn)行解密, 驗(yàn)證服務(wù)器數(shù)據(jù)簽名, 獲取到服務(wù)器CA證書(shū)公鑰。然后Fiddler偽造自己的CA證書(shū)(這里的CA證書(shū),也是根證書(shū),只不過(guò)是Fiddler偽造的根證書(shū)), 冒充服務(wù)器證書(shū)傳遞給客戶(hù)端瀏覽器。
第三步,與普通過(guò)程中客戶(hù)端的操作相同,客戶(hù)端根據(jù)返回的數(shù)據(jù)進(jìn)行證書(shū)校驗(yàn)、生成密碼Pre_master、用Fiddler偽造的證書(shū)公鑰,并生成HTTPS通信用的對(duì)稱(chēng)密鑰enc_key。
第四步,客戶(hù)端將重要信息傳遞給服務(wù)器, 又被Fiddler截獲。Fiddler將截獲的密文用自己偽造證書(shū)的私鑰解開(kāi), 獲得并計(jì)算得到HTTPS通信用的對(duì)稱(chēng)密鑰enc_key。Fiddler將對(duì)稱(chēng)密鑰用服務(wù)器證書(shū)公鑰傳遞給服務(wù)器。
第五步,與普通過(guò)程中服務(wù)器端的操作相同,服務(wù)器用私鑰解開(kāi)后建立信任,然后再發(fā)送握手消息給客戶(hù)端。
第六步,F(xiàn)iddler截獲服務(wù)器發(fā)送的密文, 用對(duì)稱(chēng)密鑰解開(kāi), 再用自己偽造證書(shū)的私鑰傳給客戶(hù)端。
第七步,客戶(hù)端拿到信息后,用公鑰解開(kāi),驗(yàn)證HASH。握手過(guò)程正式完成,客戶(hù)端與服務(wù)器端就這樣建立了”信任“。