日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

轉(zhuǎn):SSL原理及應(yīng)用(1)SSL協(xié)議體系結(jié)構(gòu)

 feiyeLib 2014-03-20

SSL原理及應(yīng)用(1SSL協(xié)議體系結(jié)構(gòu)

SSL(Secure Sockets Layer ,安全套接層),是為網(wǎng)絡(luò)通信提供安全及數(shù)據(jù)完整性的一種安全協(xié)議。Netscape研發(fā),用以保障在Internet上數(shù)據(jù)傳輸?shù)陌踩?,利用?shù)據(jù)加密(Encryption)技術(shù),確保數(shù)據(jù)在網(wǎng)絡(luò)上的傳輸過程中不會(huì)被截取及竊聽。

當(dāng)前幾乎所有瀏覽器都支持SSL,但是支持的版本有所不同。從圖8-1中可以看到,IE同時(shí)支持SSL 2.0SSL 3.0兩個(gè)版本。

 

 

圖8-1            IE支持的SSL版本

事實(shí)上各位讀者已經(jīng)明白了SSL的工作原理,回顧我前面博客講到的公鑰加密的通信原理,而SSL使用的就是公鑰加密系統(tǒng)。現(xiàn)在完全可以構(gòu)想基于SSL的數(shù)據(jù)通信流程。前面說過,SSL是一種協(xié)議,本節(jié)重點(diǎn)在于協(xié)議本身和它是如何工作在各種協(xié)議之間來提供安全通信的。

SSL協(xié)議位于TCP/IP協(xié)議模型的網(wǎng)絡(luò)層和應(yīng)用層之間,使用TCP來提供一種可靠的端到端的安全服務(wù),它使客戶/服務(wù)器應(yīng)用之間的通信不被攻擊竊聽,并且始終對服務(wù)器進(jìn)行認(rèn)證,還可以選擇對客戶進(jìn)行認(rèn)證。SSL協(xié)議在應(yīng)用層通信之前就已經(jīng)完成加密算法、通信密鑰的協(xié)商,以及服務(wù)器認(rèn)證工作,在此之后,應(yīng)用層協(xié)議所傳送的數(shù)據(jù)都被加密。

SSL協(xié)議體系結(jié)構(gòu)如圖8-2所示。

圖8-2            SSL協(xié)議體系結(jié)構(gòu)

從體系結(jié)構(gòu)圖可以看出,SSL協(xié)議可分為兩層:

q  SSL記錄協(xié)議(SSL Record Protocol):建立在可靠的傳輸協(xié)議(如TCP)之上,為高層協(xié)議提供數(shù)據(jù)封裝、壓縮、加密等基本功能的支持。

q  SSL握手協(xié)議(SSL Handshake Protocol):建立在SSL記錄協(xié)議之上,用于在實(shí)際的數(shù)據(jù)傳輸開始前,通訊雙方進(jìn)行身份認(rèn)證、協(xié)商加密算法、交換加密密鑰等。SSL協(xié)議實(shí)際上是SSL握手協(xié)議、SSL修改密文協(xié)議、SSL警告協(xié)議和SSL記錄協(xié)議組成的一個(gè)協(xié)議族。下面分別進(jìn)行介紹。

SSL記錄協(xié)

SSL記錄協(xié)議為SSL連接提供兩種服務(wù):機(jī)密性和報(bào)文完整性。

SSL協(xié)議中,所有的傳輸數(shù)據(jù)都被封裝在記錄中。記錄是由記錄頭和記錄數(shù)據(jù)(長度不為0)組成的。所有的SSL通信都使用SSL記錄層,記錄協(xié)議封裝上層的握手協(xié)議、報(bào)警協(xié)議、修改密文協(xié)議。SSL記錄協(xié)議包括記錄頭和記錄數(shù)據(jù)格式的規(guī)定。

SSL記錄協(xié)議定義了要傳輸數(shù)據(jù)的格式,它位于一些可靠的傳輸協(xié)議之上(如TCP),用于各種更高層協(xié)議的封裝。主要完成分組和組合、壓縮和解壓縮,以及消息認(rèn)證和加密等。

SSL記錄協(xié)議主要操作流程如圖8-3所示。

圖8-3            SSL記錄協(xié)議的操作流程

圖中的五個(gè)操作簡單介紹如下:

1)每個(gè)上層應(yīng)用數(shù)據(jù)被分成214字節(jié)或更小的數(shù)據(jù)塊。記錄中包含類型、版本號(hào)、長度和數(shù)據(jù)字段。

2)壓縮是可選的,并且是無損壓縮,壓縮后內(nèi)容長度的增加不能超過1024字節(jié)。

3)在壓縮數(shù)據(jù)上計(jì)算消息認(rèn)證MAC。

4)對壓縮數(shù)據(jù)及MAC進(jìn)行加密。

5)增加SSL記錄。

SSL記錄協(xié)議字段的結(jié)構(gòu)如圖8-4所示。

圖8-4            SSL記錄協(xié)議字段的結(jié)構(gòu)

如圖8-4 SSL記錄協(xié)議字段結(jié)構(gòu)主要由內(nèi)容類型、主要版本、次要版本、壓縮長度組成,簡介如下:

1)        內(nèi)容類型(8位):封裝的高層協(xié)議。

2)        主要版本(8位):使用的SSL主要版本。對于SSL v3已經(jīng)定義的內(nèi)容類型是握手協(xié)議、警告協(xié)議、改變密碼格式協(xié)議和應(yīng)用數(shù)據(jù)協(xié)議。

3)        次要版本(8位):使用的SSL次要版本。對于SSL v3.0,值為0。

4)        壓縮長度(16位):明文數(shù)據(jù)(如果選用壓縮則是壓縮數(shù)據(jù))以字節(jié)為單位的長度。

說明 已經(jīng)定義的內(nèi)容類型是握手協(xié)議、警告協(xié)議、修改密文協(xié)議。

SSL報(bào)警協(xié)議

SSL報(bào)警協(xié)議是用來為對等實(shí)體傳遞SSL的相關(guān)警告。如果在通信過程中某一方發(fā)現(xiàn)任何異常,就需要給對方發(fā)送一條警示消息通告。警示消息有兩種:

q   Fatal錯(cuò)誤,如傳遞數(shù)據(jù)過程中發(fā)現(xiàn)錯(cuò)誤的MAC,雙方就需要立即中斷會(huì)話,同時(shí)消除自己緩沖區(qū)相應(yīng)的會(huì)話記錄。

q  Warning消息,這種情況,通信雙方通常都只是記錄日志,而對通信過程不造成任何影響。SSL握手協(xié)議可以使得服務(wù)器和客戶能夠相互鑒別對方,協(xié)商具體的加密算法和MAC算法以及保密密鑰,用來保護(hù)在SSL記錄中發(fā)送的數(shù)據(jù)。

SSL修改密文協(xié)議

為了保障SSL傳輸過程的安全性,客戶端和服務(wù)器雙方應(yīng)該每隔一段時(shí)間改變加密規(guī)范。所以有了SSL修改密文協(xié)議SSL修改密文協(xié)議3個(gè)高層的特定協(xié)議之一,也是其中最簡單的一個(gè)。在客服端和服務(wù)器完成握手協(xié)議之后,它需要向?qū)Ψ桨l(fā)送相關(guān)消息(該消息只包含一個(gè)值為1的單字節(jié)),通知對方隨后的數(shù)據(jù)將用剛剛協(xié)商的密碼規(guī)范算法和關(guān)聯(lián)的密鑰處理,并負(fù)責(zé)協(xié)調(diào)本方模塊按照協(xié)商的算法和密鑰工作。

SSL握手協(xié)議

SSL握手協(xié)議被封裝在記錄協(xié)議中,該協(xié)議允許服務(wù)器與客戶機(jī)在應(yīng)用程序傳輸和接收數(shù)據(jù)之前互相認(rèn)證、協(xié)商加密算法和密鑰。在初次建立SSL連接時(shí),服務(wù)器與客戶機(jī)交換一系列消息。

這些消息交換能夠?qū)崿F(xiàn)如下操作:

q  客戶機(jī)認(rèn)證服務(wù)器

q  允許客戶機(jī)與服務(wù)器選擇雙方都支持的密碼算法

q  可選擇的服務(wù)器認(rèn)證客戶

q  使用公鑰加密技術(shù)生成共享密鑰

q  建立加密SSL連接

SSL握手協(xié)議報(bào)文頭包括三個(gè)字段:

q  類型(1字節(jié)):該字段指明使用的SSL握手協(xié)議報(bào)文類型。

q  長度(3字節(jié)):以字節(jié)為單位的報(bào)文長度。

q  內(nèi)容(≥1字節(jié)):使用的報(bào)文的有關(guān)參數(shù)。

SSL握手協(xié)議的報(bào)文類型如表8-1所示。

8-1  SSL握手協(xié)議報(bào)文類型

報(bào)文類型

參數(shù)

hello_request

client_hello

版本、隨機(jī)數(shù)、會(huì)話ID、密文族、壓縮方法

server_hello

版本、隨機(jī)數(shù)、會(huì)話ID、密文族、壓縮方法

certificate

x.509V3證書鏈

server_key_exchange

參數(shù)、簽名

certificate_request

類型、授權(quán)

server_done

certificate_verify

簽名

client_key_exchange

參數(shù)、簽名

finished

Hash

SSL握手協(xié)議過程如圖8-5所示。

圖8-5            SSL握手協(xié)議的過程(帶*的傳輸是可選的,或者與站點(diǎn)相關(guān)的,并不總是發(fā)送的報(bào)文)

現(xiàn)在看圖8-5,分步說明SSL握手協(xié)議的全過程:

步驟1      建立安全能力。

客戶機(jī)向服務(wù)器發(fā)送client_hello報(bào)文,服務(wù)器向客戶機(jī)回應(yīng)server_hello報(bào)文。建立的安全屬性包括:協(xié)議版本、會(huì)話ID、密文族、壓縮方法,同時(shí)生成并交換用于防止重放攻擊的隨機(jī)數(shù)。密文族參數(shù)包括密鑰交換方法(Deffie-Hellman密鑰交換算法、基于RSA的密鑰交換和另一種實(shí)現(xiàn)在Fortezza chip上的密鑰交換)、加密算法(DES、RC4、RC23DES等)、MAC算法(MD5SHA-1)、加密類型(流或分組)等內(nèi)容。

步驟2      認(rèn)證服務(wù)器和密鑰交換。

hello報(bào)文之后,如果服務(wù)器需要被認(rèn)證,服務(wù)器將發(fā)送其證書。如果需要,服務(wù)器還要發(fā)送server_key_exchange;然后,服務(wù)器可以向客戶發(fā)送certificate_request請求證書。服務(wù)器總是發(fā)送server_hello_done報(bào)文,指示服務(wù)器的hello階段結(jié)束。

步驟3      認(rèn)證客戶和密鑰交換。

客戶一旦收到服務(wù)器的server_hello_done報(bào)文,客戶將檢查服務(wù)器證書的合法性(如果服務(wù)器要求),如果服務(wù)器向客戶請求了證書,客戶必須發(fā)送客戶證書,然后發(fā)送client_key_exchange報(bào)文,報(bào)文的內(nèi)容依賴于client_helloserver_hello定義的密鑰交換的類型。最后,客戶可能發(fā)送client_verify 報(bào)文來校驗(yàn)客戶發(fā)送的證書,這個(gè)報(bào)文只能在具有簽名作用的客戶證書之后發(fā)送。

步驟4      結(jié)束。

客戶發(fā)送change_cipher_spec報(bào)文并將掛起的CipherSpec復(fù)制到當(dāng)前的CipherSpec。這個(gè)報(bào)文使用的是修改密文協(xié)議。然后,客戶在新的算法、對稱密鑰和MAC秘密之下立即發(fā)送finished報(bào)文。finished報(bào)文驗(yàn)證密鑰交換和鑒別過程是成功的。服務(wù)器對這兩個(gè)報(bào)文響應(yīng),發(fā)送自己的change_cipher_spec報(bào)文、finished報(bào)文。握手結(jié)束,客戶與服務(wù)器可以發(fā)送應(yīng)用層數(shù)據(jù)了。

當(dāng)客戶從服務(wù)器端傳送的證書中獲得相關(guān)信息時(shí),需要檢查以下內(nèi)容來完成對服務(wù)器的認(rèn)證:

q   時(shí)間是否在證書的合法期限內(nèi);

q   簽發(fā)證書的機(jī)關(guān)是否客戶端信任的;

q   簽發(fā)證書的公鑰是否符合簽發(fā)者的數(shù)字簽名;

q   證書中的服務(wù)器域名是否符合服務(wù)器自己真正的域名。

服務(wù)器被驗(yàn)證成功后,客戶繼續(xù)進(jìn)行握手過程。

同樣地,服務(wù)器從客戶傳送的證書中獲得相關(guān)信息認(rèn)證客戶的身份,需要檢查:

q   用戶的公鑰是否符合用戶的數(shù)字簽名;

q   時(shí)間是否在證書的合法期限內(nèi);

q   簽發(fā)證書的機(jī)關(guān)是否服務(wù)器信任的;

q   用戶的證書是否被列在服務(wù)器的LDAP里用戶的信息中;

q   得到驗(yàn)證的用戶是否仍然有權(quán)限訪問請求的服務(wù)器資源。

 

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多