SSL認證:單向認證與雙向認證

SSL認證過程

目前SSL證書認證分為單向認證域雙向認證,單向認證只要求站點部署了ssl證書,任何用戶都可以去訪問(IP被限制除外等),只是服務端提供了身份認證。而雙向認證則是需要是服務端需要客戶端提供身份認證,只能是服務端允許的客戶能去訪問,安全性相對於要高一些。

一般Web應用都是採用單向認證的,因為用戶數目廣泛,且無需做在通訊層做用戶身份驗證,一般都在應用邏輯層來保證用戶的合法登入。但如果是企業應用對接,情況就不一樣,可能會要求對客戶端做身份驗證。這時就需要做雙向認證。

SSL單向認證

  • 客戶端向服務端發送SSL協議版本號、加密演算法種類、隨機數等信息。

  • 服務端給客戶端返回SSL協議版本號、加密演算法種類、隨機數等信息,同時也返回伺服器端的證書,即公鑰證書

    Advertisements

  • 客戶端使用服務端返回的信息驗證伺服器的合法性,包括:

證書是否過期

髮型伺服器證書的CA是否可靠

返回的公鑰是否能正確解開返回證書中的數字簽名

伺服器證書上的域名是否和伺服器的實際域名相匹配

驗證通過後,將繼續進行通信,否則,終止通信

  • 客戶端向服務端發送自己所能支持的對稱加密方案,供伺服器端進行選擇

  • 伺服器端在客戶端提供的加密方案中選擇加密程度最高的加密方式。

  • 伺服器將選擇好的加密方案通過明文方式返回給客戶端

  • 客戶端接收到服務端返回的加密方式后,使用該加密方式生成產生隨機碼,用作通信過程中對稱加密的密鑰,使用服務端返回的公鑰進行加密,將加密后的隨機碼發送至伺服器

  • 伺服器收到客戶端返回的加密信息后,使用自己的私鑰進行解密,獲取對稱加密密鑰。

    Advertisements

在接下來的會話中,伺服器和客戶端將會使用該密碼進行對稱加密,保證通信過程中信息的安全。

SSL雙向認證過程

① 瀏覽器發送一個連接請求給安全伺服器。

② 伺服器將自己的證書,以及同證書相關的信息發送給客戶瀏覽器。

③ 客戶瀏覽器檢查伺服器送過來的證書是否是由自己信賴的 CA 中心所簽發的。如果是,就繼續執行協議;如果不是,客戶瀏覽器就給客戶一個警告消息:警告客戶這個證書不是可以信賴的,詢問客戶是否需要繼續。

④ 接著客戶瀏覽器比較證書里的消息,例如域名和公鑰,與伺服器剛剛發送的相關消息是否一致,如果是一致的,客戶瀏覽器認可這個伺服器的合法身份。

⑤ 伺服器要求客戶發送客戶自己的證書。收到后,伺服器驗證客戶的證書,如果沒有通過驗證,拒絕連接;如果通過驗證,伺服器獲得用戶的公鑰。

⑥ 客戶瀏覽器告訴伺服器自己所能夠支持的通訊對稱密碼方案。

⑦ 伺服器從客戶發送過來的密碼方案中,選擇一種加密程度最高的密碼方案,用客戶的公鑰加過密后通知瀏覽器。

⑧ 瀏覽器針對這個密碼方案,選擇一個通話密鑰,接著用伺服器的公鑰加過密后發送給伺服器。

⑨ 伺服器接收到瀏覽器送過來的消息,用自己的私鑰解密,獲得通話密鑰。

⑩ 伺服器、瀏覽器接下來的通訊都是用對稱密碼方案,對稱密鑰是加過密的。

Advertisements

你可能會喜歡