安全套接層

安全套接層

SSL(Secure Socket Layer)安全套接層是Netscape公司率先採用的網路安全協議。它是在傳輸通信協議(TCP/IP)上實現的一種安全協議,採用公開密鑰技術。SSL廣泛支持各種類型的網路,同時提供三種基本的安全服務,它們都使用公開密鑰技術。

概述


SSL廣泛支持各種類型的網路,同時提供三種基本的安全服務,它們都使用公開密鑰技術。
(1)信息保密,通過使用公開密鑰和對稱密鑰技術以達到信息保密。SSL客戶機和伺服器之間的
所有業務都使用在SSL握手過程中建立的密鑰和演演算法進行加密。這樣就防止了某些用戶通過使用IPpacketsniffer工具非法竊聽。儘管packet sniffer仍能捕捉到通信的內容,但卻無法破譯。
(2)信息完整性,確保SSL業務全部達到目的。應確保伺服器和客戶機之間的信息內容免受破壞。SSL利用機密共享和hash函數組提供信息完整性服務。
(3)雙向認證,客戶機和伺服器相互識別的過程。它們的識別號用公開密鑰編碼,並在SSL握手時交換各自的識別號。為了驗證證明持有者是其合法用戶(而不是冒名用戶),SSL要求證明持有者在握手時對交換數據進行數字式標識。證明持有者對包括證明的所有信息數據進行標識,以說明自己是證明的合法擁有者。這樣就防止了其他用戶冒名使用證明。證明本身並不提供認證,只有證明和密鑰一起才起作用。
(4)SSL的安全性服務對終端用戶來講做到儘可能透明。一般情況下,用戶只需單擊桌面上的一個按鈕或聯接就可以與SSL的主機相連。與標準的HTTP連接申請不同,一台支持SSL的典型網路主機接受SSL連接的默認埠是443,而不是80。
一、

SSL的體系結構


SSL被設計成使用TCP來提供一種可靠的端到端的安全服務,不是單個協議,而是二層協議,低層是SSL記錄層,用於封裝不同的上層協議,另一層是被封裝的協議,即SSL握手協議,它可以讓伺服器和客戶機在傳輸應用數據之前,協商加密演演算法和加密密鑰,客戶機提出自己能夠支持的全部加密演演算法,伺服器選擇最適合它的演演算法。
記錄協議為不同的更高層協議提供基本的安全服務,其特點是為web客戶/伺服器的交互提供傳輸服務的超文本傳輸協議(HTTP)可在SSL上面運行。三個更高層協議被定義成SSL的一部分:握手協議、修改密文規約協議和告警協議。
SSL中兩個重要的概念是SSL會話和SSL連接,規約如下:
(1)連接:連接是提供恰當類型服務的傳輸,對於SSL這樣的連接是點對點的關係。連接是短暫的,每個連接與一個會話相聯繫。
(2)會話:SSL的會話是客戶和伺服器之間的關聯,會話通過握手協議來創建。會話定義了加密安全參數的一個集合,該集合可以被多個連接所共享。會話可用來避免為每個連接進行昂貴的新安全參數的協商。
在任何一對交互實體之間可能存在多個安全連接。理論上,在交互實體中間也可能存在多個同時的會話,實際上每個會話存在一組狀態。一旦建立了會話,就有當前的操作狀態用於讀和寫(即接收和發送)。另外,在握手協議期間,創建了掛起讀和寫狀態。一旦握手協議成功,掛起狀態就變成當前的狀態。
二、SSL記錄協議
SSL記錄協議為SSL連接提供兩種服務:
(1)機密性:握手協議定義了共享的、可用於對SSL有效載荷進行常規加密的密鑰。
(2)報文完整性:握手協議還定義了共享的、可用來形成報文的鑒別碼(MAC)的密鑰。
記錄協議接收傳輸的應用報文,將數據分片成可管理的塊,可選地壓縮數據,應用MAC,加密,增加首部,在TCP報文段中傳輸結果單元。被接收的數據被解密、驗證、解壓和重新裝配,然後交付給更
高級的用戶。
三、修改密文規約協議
修改密文規約協議(Change Cipher Spec Protocol)是使用SSL記錄協議的三個SSL有關協議之一,並且它是最簡單的,用於使用新協商的加密方法和完全性方法。這個協議由單個報文圖4(a)組成,該報文由值為1的單個位元組組成。
四、告警協議
告警協議是用來將SSL有關的告警傳送給對方實體。和其他使用SSL的情況一樣,告警報文按照當前狀態說明被壓縮和加密。該協議的每個報文由兩個位元組組成圖4(b)。第一個位元組的值是警告或致命的,用來傳送報文的嚴重級別。如果級別是致命的,SSL立刻中止該連接。同一個會話的其他連接可以繼續,但這個會話不能再建立新的連接了。第二個位元組包含了指出特定告警的代碼。
SSL中最複雜、最重要的部分是握手協議。這個協議用於建立會話;協商加密方法、鑒別方法、壓縮方法和初始化操作,使伺服器和客戶能夠相互鑒別對方的身份、協商加密和MAC演演算法以及用來保護在SSL記錄中發送數據的加密密鑰。在傳輸任何應用數據之前,使用握手協議。它由一系列在客戶和伺服器之間交換的報文組成。所有報文都具有圖4(c)顯示的格式。每個報文具有三個欄位:
(1)類型(1位元組):指示10種報文中的一個。表2列出定義的報文類型。
(2)長度(3位元組):以位元組為單位的報文長度。
(3)內容(大於等於1位元組。
一次SSL握手將發生以下事件:
A)客戶機和伺服器交換X.509證明以便雙方相互確認。在此過程中可以交換全部的證明鏈,也可以選擇只交換一些底層的證明。證明的驗證包括:檢驗有效日期和驗證證明的簽名許可權。
B)客戶機隨機地產生一組密鑰,它們用於信息加密和MAC計算。這些密鑰要先通過伺服器的公開密鑰加密再送往伺服器。總共有四個密鑰分別用於伺服器到客戶機以及客戶機到伺服器的通信。
C)信息加密演演算法(用於加密)和Hash函數(用於確保信息完整性)是綜合在一起使用的。Netscape的SSL實現方案是:客戶機提供自己支持的所有演演算法清單,伺服器選擇它認為最有效的密碼。伺服器管理者可以使用或禁止某些特定的密碼。
通過SSL握手協議、SSL密文協議、SSL告警協議和SSL記錄協議實現了安全套接層的安全,對於web安全我們完全可以採用上述手段,因為它們的安全技術是可靠的。