HTTPS 的安全通信機(jī)制

  • 公開(kāi)密鑰加密(非對(duì)稱加密)(RSA): 私有密鑰,公開(kāi)密鑰,只有私有密鑰能解密
  • 共享密鑰加密(對(duì)稱加密):兩把鑰匙一樣
HTTPS 的安全通信機(jī)制.png
  • 步驟1: 客戶端通過(guò)發(fā)送 Client Hello 報(bào)文開(kāi)始 SSL 通信。報(bào)文中包含客戶端支持的 SSL 的指定版本、加密組件( Cipher Suite)列表(所使用的加密算法及密鑰長(zhǎng)度等)。

  • 步驟2: 服務(wù)器可進(jìn)行 SSL 通信時(shí),會(huì)以 Server Hello 報(bào)文作為應(yīng)答。和客戶端一樣,在報(bào)文中包含 SSL 版本以及加密組件。服務(wù)器的加密組件內(nèi)容是從接收到的客戶端加密組件內(nèi)篩選出來(lái)的。

  • 步驟3: 之后服務(wù)器發(fā)送 Certificate 報(bào)文。報(bào)文中包含公開(kāi)密鑰證書(shū)。

  • 步驟4: 最后服務(wù)器發(fā)送 Server Hello Done 報(bào)文通知客戶端,最初階段的 SSL 握手協(xié)商部分結(jié)束。

  • 步驟5: SSL 第一次握手結(jié)束之后,客戶端以 Client Key Exchange 報(bào)文作為回應(yīng)。報(bào)文中包含通信加密中使用的一種被稱為 Pre-master secret 的隨機(jī)密碼串。該報(bào)文已用步驟 3 中的公開(kāi)密鑰進(jìn)行加密。

  • 步驟6: 接著客戶端繼續(xù)發(fā)送 Change Cipher Spec 報(bào)文。該報(bào)文會(huì)提示服務(wù)器,在此報(bào)文之后的通信會(huì)采用 Pre-master secret 密鑰加密。

  • 步驟7: 客戶端發(fā)送 Finished 報(bào)文。該報(bào)文包含連接至今全部報(bào)文的整體校驗(yàn)值。這次握手協(xié)商是否能夠成功,要以服務(wù)器是否能夠正確解密該報(bào)文作為判定標(biāo)準(zhǔn)。

  • 步驟8: 服務(wù)器同樣發(fā)送 Change Cipher spec 報(bào)文。

  • 步驟9: 服務(wù)器同樣發(fā)送 Finished 報(bào)文。

  • 步驟10: 服務(wù)器和客戶端的 Finished 報(bào)文交換完畢之后,SSL 連接就算建立完成。當(dāng)然,通信會(huì)受到 SSL 的保護(hù)。從此處開(kāi)始進(jìn)行應(yīng)用層協(xié)議的通信,即發(fā)送 HTTP 請(qǐng)求。

  • 步驟11: 應(yīng)用層協(xié)議通信,即發(fā)送 HTTP 響應(yīng)。

  • 步驟12: 最后由客戶端斷開(kāi)連接。斷開(kāi)連接時(shí),發(fā)送 close_notify 報(bào)文。上圖做了一些省略,這步之后再發(fā)送 TCP FIN 報(bào)文來(lái)關(guān)閉與 TCP 的通信。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容