因為這些應用都需要在網絡上進行在線交易,它們對網絡通信的安全性提出了更高的要求。傳統的HTTP協議不具備安全機制——采用明文的形式數據傳輸、不能驗證通信兩方的身份、無法防止傳輸的數據被篡改等,導致HTTP無法滿足電子商務和網上銀行等應用的安全性要求。
Netscape公司提出的安全協議SSL,利用數據加密、身份驗證和消息完整性驗證機制,為網絡上數據的傳輸提供安全性保證。可確保數據在網絡上之傳輸過程中不會被截取及竊聽。
SSL具有以下 作用
1.提供較高的安全性保證
SSL利用數據加密、身份驗證和消息完整性驗證機制。保證網絡上傳輸數據的安全性。
2.支持各種應用層協議
盡管SSL設計的初衷是為了解決萬維網安全性問題,可是因為SSL位於應用層和傳輸層之間。它能夠為各種基於TCP等可靠連接的應用層協議提供安全性保證。
3.部署簡單
目前SSL已經成為網絡中用來鑒別站點和網頁瀏覽者身份,在瀏覽器使用者及Webserver之間進行加密通信的全球化標準。SSL協議已被集成到大部分的瀏覽器中,如IE、Netscape、Firefox等。這就意味著隨意壹臺裝有瀏覽器的計算機都支持SSL連接。不須要安裝額外的client軟件。
SSL協議實現的安全 機制
傳輸數據的機密性:網絡上傳輸的數據非常容易被非法用戶竊取,SSL采用在通信兩方之間建立加密通道的方法保證傳輸數據的機密性。
身份驗證機制:電子商務和網上銀行等應用中必須保證要登錄的Webserver是真實的,以免重要信息被非法竊取。SSL利用數字簽名來驗證通信對端的身份。
非對稱密鑰算法能夠用來實現數字簽名。因為通過私鑰加密後的數據僅僅能利用相應的公鑰進行解密,因此依據解密是否成功,就能夠推斷發送者的身份。如同發送者對數據進行了“簽名”。比如。Alice使用自己的私鑰對壹段固定的信息加密後發給Bob,Bob利用Alice的公鑰解密,假設解密結果與固定信息同樣。那麽就能夠確認信息的發送者為Alice,這個過程就稱為數字簽名。
SSLclient必須驗證SSLserver的身份,SSLserver是否驗證SSLclient的身份。則由SSLserver決定。
使用數字簽名驗證身份時。須要確保被驗證者的公鑰是真實的,否則。非法用戶可能會冒充被驗證者與驗證者通信。如圖1所看到的。Cindy冒充Bob,將自己的公鑰發給Alice,並利用自己的私鑰計算出簽名發送給Alice,Alice利用“Bob”的公鑰(實際上為Cindy的公鑰)成功驗證該簽名,則Alice覺得Bob的身份驗證成功,而實際上與Alice通信的是冒充Bob的Cindy。SSL利用PKI提供的機制保證公鑰的真實性。
消息完整性驗證:為了避免網絡中傳輸的數據被非法篡改,SSL利用基於MD5或SHA的MAC算法來保證消息的完整性。
MAC算法是在密鑰參與下的數據摘要算法,能將密鑰和隨意長度的數據轉換為固定長度的數據。利用MAC算法驗證消息完整性的過程如圖所示。
發送者在密鑰的參與下,利用MAC算法計算出消息的MAC值。並將其加在消息之後發送給接收者。接收者利用相同的密鑰和MAC算法計算出消息的MAC值。並與接收到的MAC值比較。假設二者相同。則報文沒有改變;否則,報文在傳輸過程中被改動,接收者將丟棄該報文。
典型組網 應用
HTTPS是基於SSL安全連接的HTTP協議。HTTPS通過SSL提供的數據加密、身份驗證和消息完整性驗證等安全機制。為Web訪問提供了安全性保證,廣泛應用於網上銀行、電子商務等領域。
下圖為HTTPS在網上銀行中的應用。某銀行為了方便客戶,提供了網上銀行業務,客戶能夠通過訪問銀行的Webserver進行帳戶查詢、轉帳等。
通過在客戶和銀行的Webserver之間建立SSL連接,能夠保證客戶的信息不被非法竊取。