複製鏈接
請複製以下鏈接發送給好友

安全套接層

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

安全套接層安全服務

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

安全套接層優勢

SSL協議的優勢在於它是與應用層協議獨立無關的。高層的應用層協議(例如:HTTPFTPTelnet等等)能透明的建立於SSL協議之上。SSL協議在應用層協議通信之前就已經完成加密算法、通信密鑰的協商以及服務器認證工作。在此之後應用層協議所傳送的數據都會被加密,從而保證通信的私密性。

安全套接層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握手的過程

一次SSL握手將發生以下事件:
A)客户機和服務器交換X.509證明以便雙方相互確認。在此過程中可以交換全部的證明鏈,也可以選擇只交換一些底層的證明。證明的驗證包括:檢驗有效日期和驗證證明的簽名權限。
B)客户機隨機地產生一組密鑰,它們用於信息加密和MAC計算。這些密鑰要先通過服務器的公開密鑰加密再送往服務器。總共有四個密鑰分別用於服務器到客户機以及客户機到服務器的通信。
C)信息加密算法(用於加密)和Hash函數(用於確保信息完整性)是綜合在一起使用的。Netscape的SSL實現方案是:客户機提供自己支持的所有算法清單,服務器選擇它認為最有效的密碼。服務器管理者可以使用或禁止某些特定的密碼。
通過SSL握手協議、SSL密文協議、SSL告警協議和SSL記錄協議實現了安全套接層的安全,對於web安全我們完全可以採用上述手段,因為它們的安全技術是可靠的。
安全套接層 安全套接層

安全套接層過程

雙向證書認證的SSL握手過程。
以下簡要介紹SSL協議的工作方式。客户端要收發幾個握手信號:
  1. 發送一個“ClientHello”消息,説明它支持的密碼算法列表、壓縮方法及最高協議版本,也發送稍後將被使用的隨機數。
  2. 然後收到一個“ServerHello”消息,包含服務器選擇的連接參數,源自客户端初期所提供的“ClientHello”。
  3. 當雙方知道了連接參數,客户端與服務器交換證書(依靠被選擇的公鑰系統)。這些證書通常基於X.509,不過已有草案支持以OpenPGP為基礎的證書。
  4. 服務器請求客户端公鑰。客户端有證書即雙向身份認證,沒證書時隨機生成公鑰。
  5. 客户端與服務器通過公鑰保密協商共同的主私鑰(雙方隨機協商),這通過精心謹慎設計的偽隨機數功能實現。結果可能使用Diffie-Hellman交換,或簡化的公鑰加密,雙方各自用私鑰解密。所有其他關鍵數據的加密均使用這個“主密鑰”。
  6. 服務器將握手消息的MAC地址發送給客户端。 [1] 
數據傳輸中記錄層(Record layer)用於封裝更高層的HTTP等協議。記錄層數據可以被隨意壓縮、加密,與消息驗證碼壓縮在一起。每個記錄層包都有一個Content-Type段用以記錄更上層用的協議。

安全套接層TLS和SSL的差異

SSL(Secure Sockets Layer)是網景公司(Netscape)設計的主要用於Web的安全傳輸協議。這種協議在Web上獲得了廣泛的應用。IETF將SSL作了標準化,即RFC2246,並將其稱為TLS(Transport Layer Security),其最新版本是RFC5246,版本1.2。從技術上講,TLS1.0與SSL3.0的差異非常微小。
TLS利用密鑰算法在互聯網上提供端點身份認證與通訊保密,其基礎是公鑰基礎設施(public key infrastructure,PKI)。不過在實現的典型例子中,只有網絡服務者被可靠身份驗證,而其客户端則不一定。這是因為公鑰基礎設施普遍商業運營,電子簽名證書通常需要付費購買。協議的設計在某種程度上能夠使主從式架構應用程序通訊本身預防竊聽、干擾(Tampering)、和消息偽造。
TLS包含三個基本階段:
  1. 對等協商支援的密鑰算法
  2. 基於非對稱密鑰的信息傳輸加密和身份認證、基於PKI證書的身份認證
  3. 基於對稱密鑰的數據傳輸保密
在第一階段,客户端與服務器協商所用密碼算法。 當前廣泛實現的算法選擇如下:
TLS/SSL有多樣的安全保護措施:
  • 所有的記錄層數據均被編號,用於消息驗證碼校驗。
參考資料