ssl利用資料加密、身份驗證和訊息完整性驗證機制,為網路上資料的傳輸提供安全性保證。ssl支援各種應用層協議。由於ssl位於應用層和傳輸層之間,所以可以為任何基於tcp等可靠連線的應用層協議提供安全性保證。
1.身份驗證機制
ssl利用數字簽名來驗證通訊對端的身份。非對稱金鑰演算法可以用來實現數字簽名。由於通過私鑰加密後的資料只能利用對應的公鑰進行解密,因此根據解密是否成功,就可以判斷傳送者的身份,如同傳送者對資料進行了「簽名」。例如,alice使用自己的私鑰對一段固定的資訊加密後發給bob,bob利用alice的公鑰解密,如果解密結果與固定資訊相同,那麼就能夠確認資訊的傳送者為alice,這個過程就稱為數字簽名。使用數字簽名驗證身份時,需要確保被驗證者的公鑰是真實的,否則,非法使用者可能會冒充被驗證者與驗證者通訊。如下圖所示,cindy冒充bob,將自己的公鑰發給alice,並利用自己的私鑰計算出簽名傳送給alice,alice利用「bob」的公鑰(實際上為cindy的公鑰)成功驗證該簽名,則alice認為bob的身份驗證成功,而實際上與alice通訊的是冒充bob的cindy。ssl利用pki提供的機制保證公鑰的真實性。
2.資料傳輸的機密性
ssl加密通道上的資料加解密使用對稱金鑰演算法,目前主要支援的演算法有des、3des、aes等,這些演算法都可以有效地防止互動資料被破解。對稱金鑰演算法要求解密金鑰和加密金鑰完全一致。因此,利用對稱金鑰演算法加密傳輸資料之前,需要在通訊兩端部署相同的金鑰。
3. 訊息完整性驗證
為了避免網路中傳輸的資料被非法篡改,ssl利用基於md5或sha的mac演算法來保證訊息的完整性。mac演算法是在金鑰參與下的資料摘要演算法,能將金鑰和任意長度的資料轉換為固定長度的資料。利用mac演算法驗證訊息完整性的過程如下圖所示。傳送者在金鑰的參與下,利用mac演算法計算出訊息的mac值,並將其加在訊息之後傳送給接收者。接收者利用同樣的金鑰和mac演算法計算出訊息的mac值,並與接收到的mac值比較。如果二者相同,則報文沒有改變;否則,報文在傳輸過程中被修改,接收者將丟棄該報文。
mac演算法要求通訊雙方具有相同的金鑰,否則mac值驗證將會失敗。因此,利用mac演算法驗證訊息完整性之前,需要在通訊兩端部署相同的金鑰。
4.利用非對稱金鑰演算法保證金鑰本身的安全
對稱金鑰演算法和mac演算法要求通訊雙方具有相同的金鑰,否則解密或mac值驗證將失敗。因此,要建立加密通道或驗證訊息完整性,必須先在通訊雙方部署一致的金鑰。ssl利用非對稱金鑰演算法加密金鑰的方法實現金鑰交換,保證第三方無法獲取該金鑰。如下圖所示,ssl客戶端(如web瀏覽器)利用ssl伺服器(如web伺服器)的公鑰加密金鑰,將加密後的金鑰傳送給ssl伺服器,只有擁有對應私鑰的ssl伺服器才能從密文中獲取原始的金鑰。ssl通常採用rsa演算法加密傳輸金鑰。(server端公鑰加密金鑰,私鑰解密金鑰)
實際上,ssl客戶端傳送給ssl伺服器的金鑰不能直接用來加密資料或計算mac值,該金鑰是用來計算對稱金鑰和mac金鑰的資訊,稱為premaster secret。ssl客戶端和ssl伺服器利用premaster secret計算出相同的主金鑰(master secret),再利用master secret生成用於對稱金鑰演算法、mac演算法等的金鑰。premaster secret是計算對稱金鑰、mac演算法金鑰的關鍵。
5.利用pki保證公鑰的真實性
pki通過數字證書來發布使用者的公鑰,並提供了驗證公鑰真實性的機制。數字證書(簡稱證書)是乙個包含使用者的公鑰及其身份資訊的檔案,證明了使用者與公鑰的關聯。數字證書由權威機構——ca簽發,並由ca保證數字證書的真實性。
ssl客戶端把金鑰加密傳遞給ssl伺服器之前,ssl伺服器需要將從ca獲取的證書傳送給ssl客戶端,ssl客戶端通過pki判斷該證書的真實性。如果該證書確實屬於ssl伺服器,則利用該證書中的公鑰加密金鑰,傳送給ssl伺服器。
驗證ssl伺服器/ssl客戶端的身份之前,ssl伺服器/ssl客戶端需要將從ca獲取的證書傳送給對端,對端通過pki判斷該證書的真實性。如果該證書確實屬於ssl伺服器/ssl客戶端,則對端利用該證書中的公鑰驗證ssl伺服器/ssl客戶端的身份。
《計算機網路原理》 網路層
1.遮蔽網路差異,提供透明傳輸 為傳輸層提供服務 面向連線的網路服務 虛電路服務 和無連線的網路服務 資料報服務 2.為網路通訊提供路由選擇 什麼是路由選擇?按一定的原則和路由選擇演算法在多個節點的通訊子網中選擇一條到達目的節點的最佳路徑的過程.確定路由選擇的策略成為路由演算法.3.資料報的封裝和解...
計算機網路原理 傳輸層
tcp 是用於在不可靠的網際網路上提供可靠的 端到端的位元組流通信的協議。一 tcp服務模型 tcp 提供的服務具有以下主要特徵 1 面向連線的傳輸 傳輸資料前需要先建立連線,資料傳輸完畢要釋放連線。2 端到端通訊,不支援廣播通訊。3 高可靠性,確保傳輸資料的正確性,不出現丟失或亂序。4 全雙工方式...
計算機網路 計算機網路7層協議
人與人交流需要協議,例如使用同一語言,或者對方能明白的其他肢體語言 人與機器交流也需要協議,例如需要通過滑鼠或者鍵盤輸入,機器給予特定的輸出,例如列印執行某個程式 機器與機器交流更需要協議,計算機網路是由一系列的協議構成的,osi open system interconection 是開放型系統互...