SSL的工作原理:當一個使用者在Web上用Netscape瀏覽器漫游時,瀏覽器利用HTTP協議與Web服務器溝通。例如,瀏覽器發出一個HTTP GET命令給服務器,想下載一個首頁的HTML檔案,而服務器會將檔案的內容傳送給瀏覽器來響應。GET這個命令的文字和HTML檔案的文字會通過會話層(Socket)的連接來傳送,Socket使兩臺遠程的計算機能利用Internet來通話。通過SSL,資料在傳送出去之前就自動被加密了,它會在接收端被解密。對沒有解密鑰的人來說,其中的資料是無法閱讀的。
SSL采用TCP作為傳輸協議提供數據的可靠傳送和接收。SSL工作在Socket層上,因此獨立于更高層應用,可為更高層協議,如Telnet、FTP和HTTP提供安全業務。SSL提供的安全業務和TCP層一樣,采用了公開密鑰和私人密鑰兩種加密體制對Web服務器和客戶機(選項)的通信提供保密性、數據完整性和認證。在建立連接過程中采用公開密鑰,在會話過程中使用私人密鑰。加密的類型和強度則在兩端之間建立連接的過程中判斷決定。在所有情況下,服務器通過以下方法向客戶機證實自身:給出包含公開密鑰的、可驗證的證明;演示它能對用此公開密鑰加密的報文進行解密。
為了支持客戶機,每個客戶機都要擁有一對密鑰,這要求在Internet上通過Netscape分配。由于Internet中的服務器數遠少于客戶機數,因此能否處理簽字及密鑰管理的業務量是很重要的,并且與客戶聯系比給商家以同樣保證更重要。
SSL協議提供的服務可以歸納為如下3個方面:
(1)用戶和服務器的合法性認證
使得用戶和服務器能夠確信數據將被發送到正確的客戶機和服務器上。客戶機和服務器都有各自的識別號,由公開密鑰編排。為了驗證用戶,安全套接層協議要求在握手交換數據中做數字認證,以此來確保用戶的合法性。
(2)加密數據以隱藏被傳送的數據
安全套接層協議采用的加密技術既有對稱密鑰,也有公開密鑰。具體來說,就是客戶機與服務器交換數據之前,先交換SSL初始握手信息。在SSL握手信息中采用了各種加密技術,以保證其機密性和數據的完整性,并且經數字證書鑒別,這樣就可以防止非法用戶破譯。
(3)維護數據的完整性
安全套接層協議采用密碼雜湊函數和機密共享的方法,提供完整信息性的服務,來建立客戶機與服務器之間的安全通道,使所有經過安全套接層協議處理的業務,在傳輸過程中都能完整、準確無誤地到達目的地。