HTTPS的安全通訊機制

今天給你們分享一下https的通訊交互機制,若是不瞭解https的請查看《面試常問問題http與https的區別》,話很少說看下圖就一目瞭然面試

步驟1 :客戶端經過發送ClientHello報文開始SSL通訊。報文中包含客戶端支持的SSL的指定版本、加密組件列表(所使用的加密算法及密鑰長度)。算法

步驟2:服務器進行SSL通訊時,會以ServerHello 報文做爲應答。和客戶端同樣,在報文中含有SSL的版本以及加密組件服務器

步驟3: 以後服務器會發送 數字證書機構簽名的數字證書(Cretificate,服務器公開鑰匙+證書)。報文中包含公開密鑰證書。post

步驟4: 最後服務器發送Server Hello Done 報文通知客戶端,最初階段的SSL握手協議結束。加密

步驟5: SSL第一次握手結束以後,客戶端以 Client key Exchange 報文做爲迴應。報文中包含通訊加密中使用的一種稱爲Pre-master  secret的隨機密碼串。該報文已被步驟3中的公開密鑰進行加密。code

步驟6:接着客戶端繼續發送Change Cipher Spec報文。該報文會提示服務器,次報文以後的通訊會採用Per-master secret(共享)密鑰加密cdn

步驟7:客戶端發送Finished報文。該報文包含鏈接至今所有報文的總體校驗值。此次握手協商是否成功,要以服務器是否可以正確解密(共享密鑰解密)該報文做爲判斷標準。blog

步驟8:服務器一樣發送 Change Cipher Spec報文,該報文提示客戶端,次報文以後的通訊會採用Per-master secret(共享)密鑰加密ip

步驟9:服務器一樣發送Finished報文,該報文包含鏈接至今所有報文的總體校驗。此次握手協商是否成功,要以客戶端是否可以正確解密(共享密鑰解密)改報文做爲判斷標準。ssl

步驟10: 服務器和客戶端的Finished報文交換以後,ssl鏈接算是創建完成。固然,通訊會受到SSL的保護。今後開始進行應用層協議的通訊,即發送http請求

步驟11:應用層協議通訊,即發送http響應。

步驟12:最後由客戶端斷開鏈接。斷開時,發送close_notify報文。上圖作了一些省略,這部以後在發送TCP FIN 報文來關閉與TCP的通訊

在以上流程中,應用層發送數據時會附加一種叫作MAC(masess authentication code)的報文摘要。MAC可以查知報文是否遭到篡改,從而保護報文的完整性。


下面是對整個流程的圖解。途中說明了從使用服務器的公開密鑰證書創建https通訊的整個過程。

相關文章
相關標籤/搜索