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

SSL協議說明

SSL協議既用到了對稱加密也用到了非對稱加密,

  • 在建立傳輸鏈路時,SSL首先對對稱加密的密鑰使用非對稱加密
  • 鏈路建立好之後,SSL對傳輸內容使用對稱加密。

對稱加密和非對稱加密

  • 對稱加密:只有私鑰,速度高,可加密內容較大,用來加密會話過程中的消息
  • 非對稱加密:既有公鑰也有私鑰,加密速度較慢,但能提供更好的身份認證技術,用來加密對稱加密的密鑰

SSL單向認證過程

在這裏插入圖片描述
具體過程:

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

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

  3. 客戶端使用服務端返回的信息驗證服務器的合法性,驗證通過後,則繼續進行通信,否則終止通信,驗證內容包括:

    • 證書是否過期

    • 發行服務器證書的CA是否可靠

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

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

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

  5. 服務器在客戶端提供的加密方案中選擇加密程度最高的加密方式

  6. 服務器將選擇好的加密方式通過明文方式返回給客戶端

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

  8. 服務器收到客戶端返回的加密信息後 ,使用自己的私鑰進行解密,獲取對稱加密密鑰。在接下來的會話中,服務器和客戶端將會使用該密碼進行對稱加密,保證通信過程中的信息安全。

SSL雙向認證過程

在這裏插入圖片描述
具體過程:

  1. 客戶端向服務器發送連接請求(SSL協議版本號、加密算法種類、隨機數等信息)

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

  3. 客戶端使用服務端返回的信息驗證服務器的合法性(首先檢查服務器發送過來的證書是否是由自己信賴的CA中心所簽發的,再比較證書裏的消息,例如域名和公鑰,與服務器剛剛發送的相關消息是否一致,如果是一致的,客戶端認可這個服務端的合法身份),驗證通過後,則繼續進行通信,否則終止通信,具體驗證內容包括:

    • 證書是否過期
    • 發行服務器證書的CA是否可靠
    • 返回的公鑰是否能正確解開返回證書中的數字簽名
    • 服務器證書上的域名是否和服務器的實際域名相匹配
  4. 服務端要求客戶端發送客戶端的證書,客戶端會將自己的證書發送至服務端

  5. 驗證客戶端的證書,通過驗證後,會獲得客戶端的公鑰

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

  7. 服務器端在客戶端提供的加密方案中選擇加密程度最高的加密方式

  8. 將加密方式通過使用之前獲取到的公鑰(客戶的公鑰)進行加密,返回給客戶端

  9. 客戶端收到服務端返回的加密方案密文後,使用自己的私鑰進行解密,獲取具體加密方式,而後獲取該加密方式的隨機碼,用作加密過程中的密鑰,使用之前從服務端證書中獲取到的公鑰進行加密後,發送給服務端

  10. 服務端收到客戶端發送的消息後,使用自己的私鑰進行解密,獲取對稱加密的密鑰,在接下來的會話中,服務器和客戶端將會使用該密碼進行對稱加密,保證通信過程中信息的安全

SSL單向認證和SSL雙向認證的區別

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

雙向認證SSL協議要求服務器和用戶雙方都有證書。單向認證SSL協議不需要客戶擁有CA證書,只需將服務器驗證客戶證書的過程去掉,以及在協商對稱密碼方案、對稱通話密鑰時,服務器發送給客戶的是沒有加過密的(這並不影響SSL過程的安全性)密碼方案。這樣,雙方具體的通訊內容,就是加過密的數據,如果有第三方攻擊,獲得的只是加密的數據,第三方要獲得有用的信息,就需要對加密的數據進行解密,這時候的安全就依賴於密碼方案的安全。而幸運的是,目前所用的密碼方案,只要通訊密鑰長度足夠的長,就足夠安全,這也是強調使用128位加密通訊的原因。

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章