糊言亂語

          志未半斤, 才無八兩. 有苦有樂, 糊涂過活。
          posts - 25, comments - 7, trackbacks - 0, articles - 42
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          日歷

          <2025年6月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          搜索

          •  

          最新評論

          SSL工作原理

          Posted on 2007-12-05 15:10 Stanley Sun 閱讀(142) 評論(0)  編輯  收藏

          SSL 是一個安全協議,它提供使用 TCP/IP 的通信應用程序間的隱私與完整性。因特網的 超文本傳輸協議 (HTTP)使用 SSL 來實現安全的通信。

          在客戶端與服務器間傳輸的數據是通過使用對稱算法(如 DES 或 RC4)進行加密的。公用密鑰算法(通常為 RSA)是用來獲得加密密鑰交換和數字簽名的,此算法使用服務器的SSL數字證書中的公用密鑰。有了服務器的SSL數字證書,客戶端也可以驗證服務器的身份。SSL 協議的版本 1 和 2 只提供服務器認證。版本 3 添加了客戶端認證,此認證同時需要客戶端和服務器的數字證書。

          SSL 握手

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

          圖 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 握手結束,且可以發送加密的應用程序數據。


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 焉耆| 乌兰县| 称多县| 高碑店市| 九龙县| 新源县| 侯马市| 聊城市| 静海县| 阳城县| 通州区| 桂东县| 图木舒克市| 南郑县| 南开区| 梅河口市| 平江县| 嵩明县| 雷州市| 边坝县| 马山县| 惠东县| 西畴县| 岑溪市| 汉沽区| 淄博市| 漳州市| 石城县| 彰化县| 丹巴县| 通化市| 宕昌县| 原阳县| 镇赉县| 武城县| 姚安县| 昭苏县| 海原县| 伊春市| 张家港市| 泸定县|