ssl工作原理

2021-05-22 16:05:32 字數 1792 閱讀 5580

ssl工作原理

ssl 是乙個安全協議,它提供使用 tcp/ip 的通訊應用程式間的隱私與完整性。網際網路的 超文字傳輸協議 (http)使用 ssl 來實現安全的通訊。

在 客戶端與伺服器間傳輸的資料是通過使用對稱演算法(如 des 或 rc4)進行加密的。公用金鑰演算法(通常為 rsa)是用來獲得加密金鑰交換和數字簽名的,此演算法使用伺服器的ssl數字證書中的公用金鑰。有了伺服器的ssl數字證書,客戶端也可以驗證伺服器的身 份。ssl 協議的版本 1 和 2 只提供伺服器認證。版本 3 新增了客戶端認證,此認證同時需要客戶端和伺服器的數字證書。

ssl 握手

ssl 連線總是由客戶端啟動的。在ssl 會話開始時執行 ssl 握手。此握手產生會話的密碼引數。關於如何處理 ssl 握手的簡單概述,如下圖所示。此示例假設已在 web 瀏覽器 和 web 伺服器間建立了 ssl 連線。

圖 ssl的客戶端與伺服器端的認證握手

(1) 客戶端傳送列出客戶端密碼能力的客戶端「您好」訊息(以客戶端首選項順序排序),如 ssl 的版本、客戶端支援的密碼對和客戶端支援的資料壓縮方法。訊息也包含 28 位元組的隨機數。

(2) 伺服器以伺服器「您好」訊息響應,此訊息包含密碼方法(密碼對)和由伺服器選擇的資料壓縮方法,以及會話標識和另乙個隨機數。

注意:客戶端和伺服器至少必須支援乙個公共密碼對,否則握手失敗。伺服器一般選擇最大的公共密碼對。

(3) 伺服器傳送其ssl數字證書。(伺服器使用帶有 ssl 的 x.509 v3 數字證書。)

如果伺服器使用 ssl v3,而伺服器應用程式(如 web 伺服器)需要數字證書進行客戶端認證,則客戶端會發出「數字證書請求」訊息。在 「數字證書請求」訊息中,伺服器發出支援的客戶端數字證書型別的列表和可接受的ca的名稱。

(4) 伺服器發出伺服器「您好完成」訊息並等待客戶端響應。

(5) 一接到伺服器「您好完成」訊息,客戶端( web 瀏覽器)將驗證伺服器的ssl數字證書的有效性並檢查伺服器的「你好」訊息引數是否可以接受。

如果伺服器請求客戶端數字證書,客戶端將傳送其數字證書;或者,如果沒有合適的數字證書是可用的,客戶端將傳送「沒有數字證書」警告。此警告僅僅是警告而 已,但如果客戶端數字證書認證是強制性的話,伺服器應用程式將會使會話失敗。

(6) 客戶端傳送「客戶端金鑰交換」訊息。此訊息包含 pre-master secret (乙個用在對稱加密金鑰生成中的 46 位元組的隨機數字),和 訊息認證** ( mac )金鑰(用伺服器的公用金鑰加密的)。

如果客戶端傳送客戶端數字證書給伺服器,客戶端將發出籤有客戶端的專用金鑰的「數字證書驗證」訊息。通過驗證此訊息的簽名,伺服器可以顯示驗證客戶端數字證書的所有權。

注意:如果伺服器沒有屬於數字證書的專用金鑰,它將無法解密 pre-master 密碼,也無法建立對稱加密演算法的正確金鑰,且握手將失敗。

(7) 客戶端使用一系列加密運算將 pre-master secret 轉化為 master secret ,其中將派生出所有用於加密和訊息認證的金鑰。然後,客戶端發出「更改密碼規範」 訊息將伺服器轉換為新協商的密碼對。客戶端發出的下乙個訊息(「未完成」的訊息)為用此密碼方法和金鑰加密的第一條訊息。

(8) 伺服器以自己的「更改密碼規範」和「已完成」訊息響應。

(9) ssl 握手結束,且可以傳送加密的應用程式資料。

SSL工作原理

from ssl 是乙個安全協議,它提供使用 tcp ip 的通訊應用程式間的隱私與完整性。網際網路的 超文字傳輸協議 http 使用 ssl 來實現安全的通訊。在客戶端與伺服器間傳輸的資料是通過使用對稱演算法 如 des 或 rc4 進行加密的。公用金鑰演算法 通常為 rsa 是用來獲得加密金鑰交...

SSL工作原理

ssl工作原理 ssl 是乙個安全協議,它提供使用 tcp ip 的通訊應用程式間的隱私與完整性。網際網路的 超文字傳輸協議 http 使用 ssl 來實現安全的通訊。在客戶端與伺服器間傳輸的資料是通過使用對稱演算法 如 des 或 rc4 進行加密的。公用金鑰演算法 通常為 rsa 是用來獲得加密...

SSL工作原理

ssl是乙個安全協議,它提供使用 tcp ip 的通訊應用程式間的隱私與完整性。網際網路的 超文字傳輸協議 http 使用 ssl 來實現安全的通訊。在客戶端與伺服器間傳輸的資料是通過使用對稱演算法 如 des 或 rc4 進行加密的。公用金鑰演算法 通常為 rsa 是用來獲得加密金鑰交換和數字簽名...