ssl是乙個安全協議,它提供使用 tcp/ip 的通訊應用程式間的隱私與完整性。網際網路的 超文字傳輸協議(http)使用 ssl 來實現安全的通訊。
在客戶端與伺服器間傳輸的資料是通過使用對稱演算法(如 des 或 rc4)進行加密的。公用金鑰演算法(通常為 rsa)是用來獲得加密金鑰交換和數字簽名的,此演算法使用伺服器的ssl數字證書中的公用金鑰。有了伺服器的ssl數字證書,客戶端也可以驗證伺服器的身份。ssl 協議的版本 1 和 2 只提供伺服器認證。版本 3 新增了客戶端認證,此認證同時需要客戶端和伺服器的數字證書。
ssl 連線總是由客戶端啟動的。在ssl 會話開始時執行 ssl 握手。此握手產生會話的密碼引數。關於如何處理 ssl 握手的簡單概述,如下圖所示。此示例假設已在 web 瀏覽器 和 web 伺服器間建立了 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 握手結束,且可以傳送加密的應用程式資料。
HTTPS SSL加密原理
首先,這兩個協議是工作以後遇到和用過最多的協議,必須搞懂搞明白。咱們來看看他們的基本定義。http協議 http 超文字傳輸協議 英語 hypertext transfer protocol,縮寫 http 是一種用於分布式 協作式和超 資訊系統的應用層協議 1 http是全球資訊網的資料通訊的基礎...
HTTPS SSL配置的步驟以及原理說明
說在前面 1.單向認證,就是傳輸的資料加密過了,但是不會校驗客戶端的 2.雙向認證,如果客戶端瀏覽器沒有匯入客戶端證書,是訪問不了web系統的,找不到位址,想要用系統的人沒有證書就訪問不了系統https概念 https概念 1 簡介 2 https和http的區別 a.https協議需要到ca申請證...
HTTPS SSL 中間人劫持攻擊原理
中間人攻擊 man in the middle attack,mitm 就是通過攔截正常的網路通訊資料,並進行資料篡改和嗅探,而通訊的雙方卻毫不知情。假設愛麗絲 alice 希望與鮑伯 bob 通訊。同時,馬洛裡 mallory 希望攔截竊會話以進行竊聽並可能在某些時候傳送給鮑伯乙個虛假的訊息。首先...