HTTPS工作原理(握手過程)

2021-10-13 12:48:23 字數 1055 閱讀 9117

參考書籍:《**http》

參考博文:

客戶端向伺服器傳送clienthello,其主要內容為客戶端所支援的加密演算法、ssl版本和隨機數r1。

伺服器向客戶端傳送serverhello,從第一步傳輸的加密演算法和ssl版本中選擇乙個作為以後通訊使用,並生成隨機數r2,發給客戶端。

伺服器向客戶端傳送自己的證書(關於證書的具體得到過程,後面再講)。

伺服器向客戶端傳送serverhellodone表明最初階段的ssl握手協商部分結束。

此時,客戶端會先對伺服器的證書進行驗證(驗證過程後面再講,通過證書的驗證,解決了對方身份無法驗證的問題),若驗證不通過,則結束通訊。若驗證通過,會在生成乙個隨機數r3,此時客戶端會拿到伺服器的公鑰,用伺服器的公鑰對r3加密得到premaster key,並將premaster key傳給伺服器(由於premaster key只能通過伺服器的私鑰進行解密,故不怕黑客竊聽)。伺服器收到premaster key後進行解密,此時雙方都有了隨機數r1,r2,r3,雙方通過相同的演算法生成乙個相同的金鑰。

客戶端告訴伺服器,以後通訊就使用上面生成的金鑰進行通訊(即變成了對稱加密)。

客戶端將上述的通訊內容生成摘要再用生成的金鑰進行加密傳給伺服器,伺服器使用剛剛生成的金鑰進行解密,由於伺服器端也有之前通訊的內容,他會對比解密後的內容和本地的內容是否一致,若一致則繼續通訊。

同6。同7 。

此時雙方協商出了同乙份金鑰,以後的資料傳輸就採用這個金鑰進行加密(解決明文傳輸的問題)。

結論:採用非對稱加密傳輸(協商)金鑰,採用對稱加密傳輸資料。

伺服器會將自己的公鑰即一些相關資訊發給第三方機構,第三方機構再對伺服器審查完成後,生成證書(包含伺服器的公鑰和其它資訊),第三方機構再使用自己的公鑰對證書加密後發給伺服器。

客戶端再對證書驗證:客戶端存有第三方機構的公鑰,首先會使用公鑰對證書解密(若解密不成功則說明證書無效),然後得到伺服器的公鑰,即確定身份。

https握手過程

瀏覽器將自己的ssl加密元件 ras加密演算法 對稱加密演算法 hash摘要演算法 金鑰長度 傳送給請求 會從中選出一組加密演算法和hash演算法,並將自己的身份資訊以證書的方式發回瀏覽器。瀏覽器驗證證書的正確性,或者使用者接收了不受信任的證書,瀏覽器會生成一串隨機的密碼,並用證書的公鑰加密,同時使...

HTTPS握手過程

加密方案 非對稱加密 ssl握手過程 伺服器發動 server hello done 的報文通知客戶端,最初階段的ssl握手協商結束。ssl第一次握手結束之後,客戶端解析證書 客戶端的tls完成 如果證書有問題,就發出警告。拿到服務端的公鑰。以 client key exchange 報文作為回應。...

HTTPS工作原理和TCP握手機制

https在傳輸資料之前需要客戶端 瀏覽器 與服務端 之間進行一次握手,在握手過程中將確立雙方加密傳輸資料的密碼資訊。tls ssl協議不僅僅是一套加密傳輸的協議,更是一件經過藝術家精心設計的藝術品,tls ssl中使用了非對稱加密,對稱加密以及hash演算法。握手過程的具體描述如下 1.瀏覽器將自...