安全套接層SSL協議

SSL(Secure Sockets Layer)協議最先是由著名的Netscape公司開發的,現在被廣泛用於Internet上的身份認證與Web服務器和用戶端瀏覽器之間的數據安全通信。

制定SSL協議的宗旨是爲通信雙方提供安全可靠的通信協議服務,在通信雙方間建立一個傳輸層安全通道。SSL使用對稱加密來保證通信保密性,使用消息認證碼(MAC)來保證數據完整性。SSL主要使用PKI在建立連接時對通信雙方進行身份認證。IETF的傳輸層安全(TLS)協議(RFC 2246 1999)及無線訪問協議(WAP)論壇的無線傳輸層安全協議(WTIS)都是SSI的後續發展。協議包括兩個層次:其較低的SSL記錄層協議位於傳輸協議TCP/IP之上。SSL記錄協議用來對其上層的協議進行封裝。握手協議就在這些被封裝的上層協議之中,它允許客戶端與服務器彼此認證對方;並且在應用協議發出或收到第一個數據之前協商加密算法和加密密鑰。這樣做的原因就是保證應用協議的獨立性,使低級協議對高級協議是透明的。

目前,Internet上對7層網絡模型的每一層都已提出了相應的加密協議。在所有的這些協議中,會話層的SSL和應用層的SET與電子商務的應用關係最爲密切。

因此,SSL已成爲用戶與Internet之間進行保密通信的事實標準,支持SSL也已經成爲每個瀏覽器的內置功能。SSL包括握手和記錄兩個子協議。這兩個子協議均可以提供與應用尤其是與HTTP的連接。這種連接經過了認證和保密,可以防止篡改。

SSL可以嵌入Internet的處理棧內,位於TCP/IP之上和應用層之下,而不會對其他協議層造成太大影響。SSL同樣能夠與其他Internet應用一起使用,如Intranet和Extranet訪問、應用安全、無線應用及Web服務等。通過對離開瀏覽器的數據進行加密,並在其進入數據中心之後進行解密,SSL實現對Internet的數據通信進行保護。

SSL對話是由連接和應用組成的。在連接對話期間,客戶機和服務器交換證書並就安全參數進行磋商。如果客戶機接受服務器的證書,就會建立一個主密鑰,這個主密鑰將被用來對隨後進行的通信進行加密。

在應用對話期間,客戶機和服務器之間可以安全地傳遞信息,如信用卡號、股票交易數據、個人醫療數據以及其他敏感數據。SSL提供以下三種機制以確保安全:認證,能夠對服務器或連接各端的客戶機和服務器進行認證;保密,能夠對信息進行加密,只有交流信息的雙方纔能訪問並理解加密信息;完整性,可以防止信息內容在未經檢測的情況下被修改,接收方可以確信他們收到的是無法進行修改的信息。

保密通信過程中的一個關鍵步驟就是對雙方身份進行認證。SSL握手子協議就具有之一功能。服務器與客戶機之間的以下舉動可以使認證動作變得更快捷:客戶機對服務器進行認證;讓客戶機和服務器選擇所需要的密碼算法和安全水平;服務器有選擇地對客戶機進行認證;使用公共密鑰密碼生成可以共享的密鑰,隨後利用這些密鑰傳輸真正的保密數據;建立SSL連接。

SSL記錄子協議負責加密數據的傳送。以下動作可以使數據傳送變得更快捷:數據被分解成小的可以使用的塊,稱作片斷;通過一個具有完整性的“包裝紙”使數據不被修改;數據加密後就可以貼上“包裝紙”了。

以往,電子商務的許多應用是不進行客戶機認證的。不過,目前各公司都將SSL作爲一項協議供數據中心裏的新應用使用。對於基於SSL的VPN,以及那些需要對終端用戶進行額外認證的應用而言,客戶機認證正在成爲一種趨勢。

客戶機認證使得服務器可以使用與允許客戶機對服務器進行認證相同的技術,在協議之內對用戶身份進行確認。儘管兩者認證的信息流極爲不同,但是從概念上來看,其過程與服務器認證是相同的。這一過程同樣也會在SSL握手子協議之內進行。在這種情況下,客戶機必須向服務器提供有效的證書。服務器可以通過使用公共密鑰密碼學的標準技術對終端用戶的有效性進行認證。

SSL所具有的靈活性和強勁的生命力使其無所不在。可以預言的是,在SSL成爲企業應用、無線訪問設備、Web服務以及安全訪問管理的關鍵性協議的同時,SSL的應用將繼續大幅度增長。下面論述SSL原理和工作過程。

 

1  SSL協議概述

1.SSL協議的作用

SSL是提供Internet上的通信隱私性的安全協議。該協議允許客戶端/服務器應用之間進行防竊聽、防消息篡改及防消息僞造的安全的通信。
TCP/IP是整個Internet數據傳輸和通信所使用的最基本的控制協議,在它之上還有HTTP(Hypertext Transfer Protocol)、LDAP(Lightweight Directory Access Protoco1)、IMAP(Internet Messaging Access Protocol)等應用層傳輸協議。而SSL是位於TCP/IP和各種應用層協議之間的一種數據安全協議(如圖1l-8所示)。SSL協議可以有效地避免網上信息的偷聽、篡改及信息的僞造。

 
圖11-8  SSL協議的位置

SSL標準的關鍵是要解決以下幾個問題。

(1)客戶對服務器的身份確認:SSL服務器允許客戶的瀏覽器使用標準的公鑰加密技術和一些可靠的認證中心(CA)的證書,來確認服務器的合法性(檢驗服務器的證書和ID的合法性)。對於用戶服務器身份的確認與否是非常重要的,因爲客戶可能向服務器發送自己的信用卡密碼。

(2)服務器對客戶的身份確認:允許SSL服務器確認客戶的身份,SSL協議允許客戶服務器的軟件通過公鑰技術和可信賴的證書來確認客戶的身份(客戶的證書)。對於服務器客戶身份的確認與否是非常重要的,因爲網上銀行可能要向客戶發送機密的金融信息。

(3)建立起服務器和客戶之間安全的數據通道:SSL要求客戶和服務器之間所有的發送數據都被髮送端加密,所有的接收數據都被接收端解密,這樣才能提供一個高水平的安全保證。同時SSL協議會在傳輸過程中檢查數據是否被中途修改。

2.SSL協議的目標

按它們的優先級,SSL協議的目標如下。

(1)在通信雙方之間利用加密的SSL消息建立安全的連接。

(2)互操作性。通信雙方的程序是獨立的,即一方可以在不知道對方程序編碼的情況下,利用SSL成功地交換加密參數。

注意:並不是所有的SSL實例(甚至在同一應用程序內)都可以成功地連接。例如,如果服務器支持一特定的硬件令牌(token),而客戶端不能訪問此令牌,則連接不會成功。

(3)可擴展性。SSL尋求提供一種框架結構,在此框架結構中,在不對協議進行大的修改的情況下,可以在必要時加入新的公鑰算法和單鑰算法。這樣做還可以實現兩個子目標:

避免產生新協議的需要,因而進一步避免了產生新的不足的可能性;

避免了實現一完整的安全協議的需要。

相對於有效性加密操作,尤其是公鑰加密,對CPU來說是一種很耗時的事,因此SSL協議引入一個可選的對話緩存(Cache)來減少從頭開始的連接數目。同時,它還注意減少網絡的活動。

3.SSL主要組成

SSL協議由兩層組成,分別是握手協議層和記錄協議層。握手協議建立在記錄協議之上,此外,還有警告協議、更改密碼說明協議和應用數據協議等對話協議和管理提供支持的子協議。SSL協議的組成及其TCP/IP中的位置如圖11-9所示。

 
圖11-9  SSL協議的組成及其在TCP/IP中的位置

在圖11-9中的每一層,可以包括長度、描述和內容字段。SSL發出消息是將數據分爲可管理的塊、壓縮、使用MAC和加密併發出加密的結果。接受消息需要解密、驗證、解壓和重組,再把結果發往更高一層的客戶。

(1)記錄協議

具體實現壓縮/解壓縮、加密/解密、計算機MAC等與安全有關的操作。建立之上的還有:

更改密碼說明協議:此協議由一條消息組成,可由客戶端或服務器發送,通知接收方後面的記錄將被新協商的密碼說明和密鑰保護;接收方獲得此消息後,立即指示記錄層把即將讀狀態變成當前讀狀態;發送方發送此消息後,應立即指示記錄層把即將寫狀態變成當前寫狀態。

警告協議:警告消息傳達消息的嚴重性並描述警告。一個致命的警告將立即終止連接。與其他消息一樣,警告消息在當前狀態下被加密和壓縮。警告消息有以下幾種:

關閉通知消息、意外消息、錯誤記錄MAC消息、解壓失敗消息、握手失敗消息、無證書消息、錯誤證書消息、不支持的證書消息、證書撤回消息、證書過期消息、證書未知和參數非法消息等。

應用數據協議:將應用數據直接傳遞給記錄協議。

(2)握手協議

SSL握手協議是用來在客戶端和服務器端傳輸應用數據而建立的安全通信機制。

算法協商:首次通信時,雙方通過握手協議協商密鑰加密算法、數據加密算法和文摘算法。

身份驗證:在密鑰協商完成後,客戶端與服務器端通過證書互相驗證對方的身份。

確定密鑰:最後使用協商好的密鑰交換算法產生一個只有雙方知道的祕密信息,客戶端和服務器端各自根據這個祕密信息確定數據加密算法的參數(一般是密鑰)。由此可見,SSL協議是端對端的通信安全協議。

 

發佈了1527 篇原創文章 · 獲贊 50 · 訪問量 443萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章