https單雙向認證,SSL加密方式

SSL協議即用到了對稱加密也用到了非對稱加密(公鑰加密),在建立傳輸鏈路時,SSL首先對對稱加密的密鑰使用公鑰進行非對稱加密,鏈路建立好之後,SSL對傳輸內容使用對稱加密。

  1. 對稱加密 :速度高,可加密內容較大,用來加密會話過程中的消息。 
  2. 公鑰加密 :加密速度較慢,但能提供更好的身份認證技術,用來加密對稱加密的密鑰。

單向認證

https簡歷socket之前,需要進行握手,如圖:

1、客戶端向服務端發送SSL協議版本號、加密算法種類、隨機數等信息。 
2、服務端給客戶端返回SSL協議版本號、加密算法種類、隨機數等信息,同時也返回服務器端的證書,即公鑰證書 
3、客戶端使用服務端返回的信息驗證服務器的合法性,包括:

  • 證書是否過期

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

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

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

驗證通過後,將繼續進行通信,否則,終止通信 
4、客戶端向服務端發送自己所能支持的對稱加密方案,供服務器端進行選擇 
5、服務器端在客戶端提供的加密方案中選擇加密程度最高的加密方式。 
6、服務器將選擇好的加密方案通過明文方式返回給客戶端 
7、客戶端接收到服務端返回的加密方式後,使用該加密方式生成產生隨機碼,用作通信過程中對稱加密的密鑰,使用服務端返回的公鑰進行加密,將加密後的隨機碼發送至服務器 
8、服務器收到客戶端返回的加密信息後,使用自己的私鑰進行解密,獲取對稱加密密鑰。 在接下來的會話中,服務器和客戶端將會使用該密碼進行對稱加密,保證通信過程中信息的安全。

雙向認證

雙向認證和單向認證原理基本差不多,只是除了客戶端需要認證服務端以外,增加了服務端對客戶端的認證,具體過程如下:

1、客戶端向服務端發送SSL協議版本號、加密算法種類、隨機數等信息。 
2、服務端給客戶端返回SSL協議版本號、加密算法種類、隨機數等信息,同時也返回服務器端的證書,即公鑰證書 
3、客戶端使用服務端返回的信息驗證服務器的合法性,包括: 

    • 證書是否過期
    • 髮型服務器證書的CA是否可靠
    • 返回的公鑰是否能正確解開返回證書中的數字簽名
    • 服務器證書上的域名是否和服務器的實際域名相匹配

驗證通過後,將繼續進行通信,否則,終止通信 
4、服務端要求客戶端發送客戶端的證書,客戶端會將自己的證書發送至服務端 
5、驗證客戶端的證書,通過驗證後,會獲得客戶端的公鑰 
6、客戶端向服務端發送自己所能支持的對稱加密方案,供服務器端進行選擇 
7、服務器端在客戶端提供的加密方案中選擇加密程度最高的加密方式 
8、將加密方案通過使用之前獲取到的公鑰進行加密,返回給客戶端 
9、客戶端收到服務端返回的加密方案密文後,使用自己的私鑰進行解密,獲取具體加密方式,而後,產生該加密方式的隨機碼,用作加密過程中的密鑰,使用之前從服務端證書中獲取到的公鑰進行加密後,發送給服務端 
10、服務端收到客戶端發送的消息後,使用自己的私鑰進行解密,獲取對稱加密的密鑰,在接下來的會話中,服務器和客戶端將會使用該密碼進行對稱加密,保證通信過程中信息的安全。

參考:https://www.cnblogs.com/xiao987334176/p/11041241.html

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