HTTPS 的安全通信機制

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

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

  • 步驟3: 之后服務器發(fā)送 Certificate 報文。報文中包含公開密鑰證書。

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

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

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

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

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

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

  • 步驟10: 服務器和客戶端的 Finished 報文交換完畢之后,SSL 連接就算建立完成。當然,通信會受到 SSL 的保護。從此處開始進行應用層協(xié)議的通信,即發(fā)送 HTTP 請求。

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

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

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

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

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