国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
安全套接層SSL協(xié)議簡(jiǎn)介

SSL(Secure Sockets Layer)協(xié)議最先是由著名的Netscape公司開發(fā)的,現(xiàn)在被廣泛用于Internet上的身份認(rèn)證與Web服務(wù)器和用戶端瀏覽器之間的數(shù)據(jù)安全通信。

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

目前,Internet上對(duì)7層網(wǎng)絡(luò)模型的每一層都已提出了相應(yīng)的加密協(xié)議。在所有的這些協(xié)議中,會(huì)話層的SSL和應(yīng)用層的SET與電子商務(wù)的應(yīng)用關(guān)系最為密切。

因此,SSL已成為用戶與Internet之間進(jìn)行保密通信的事實(shí)標(biāo)準(zhǔn),支持SSL也已經(jīng)成為每個(gè)瀏覽器的內(nèi)置功能。SSL包括握手和記錄兩個(gè)子協(xié)議。這兩個(gè)子協(xié)議均可以提供與應(yīng)用尤其是與HTTP的連接。這種連接經(jīng)過了認(rèn)證和保密,可以防止篡改。

SSL可以嵌入Internet的處理?xiàng)?nèi),位于TCP/IP之上和應(yīng)用層之下,而不會(huì)對(duì)其他協(xié)議層造成太大影響。SSL同樣能夠與其他Internet應(yīng)用一起使用,如Intranet和Extranet訪問、應(yīng)用安全、無線應(yīng)用及Web服務(wù)等。通過對(duì)離開瀏覽器的數(shù)據(jù)進(jìn)行加密,并在其進(jìn)入數(shù)據(jù)中心之后進(jìn)行解密,SSL實(shí)現(xiàn)對(duì)Internet的數(shù)據(jù)通信進(jìn)行保護(hù)。

SSL對(duì)話是由連接和應(yīng)用組成的。在連接對(duì)話期間,客戶機(jī)和服務(wù)器交換證書并就安全參數(shù)進(jìn)行磋商。如果客戶機(jī)接受服務(wù)器的證書,就會(huì)建立一個(gè)主密鑰,這個(gè)主密鑰將被用來對(duì)隨后進(jìn)行的通信進(jìn)行加密。

在應(yīng)用對(duì)話期間,客戶機(jī)和服務(wù)器之間可以安全地傳遞信息,如信用卡號(hào)、股票交易數(shù)據(jù)、個(gè)人醫(yī)療數(shù)據(jù)以及其他敏感數(shù)據(jù)。SSL提供以下三種機(jī)制以確保安全:認(rèn)證,能夠?qū)Ψ?wù)器或連接各端的客戶機(jī)和服務(wù)器進(jìn)行認(rèn)證;保密,能夠?qū)π畔⑦M(jìn)行加密,只有交流信息的雙方才能訪問并理解加密信息;完整性,可以防止信息內(nèi)容在未經(jīng)檢測(cè)的情況下被修改,接收方可以確信他們收到的是無法進(jìn)行修改的信息。

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

SSL記錄子協(xié)議負(fù)責(zé)加密數(shù)據(jù)的傳送。以下動(dòng)作可以使數(shù)據(jù)傳送變得更快捷:數(shù)據(jù)被分解成小的可以使用的塊,稱作片斷;通過一個(gè)具有完整性的“包裝紙”使數(shù)據(jù)不被修改;數(shù)據(jù)加密后就可以貼上“包裝紙”了。

以往,電子商務(wù)的許多應(yīng)用是不進(jìn)行客戶機(jī)認(rèn)證的。不過,目前各公司都將SSL作為一項(xiàng)協(xié)議供數(shù)據(jù)中心里的新應(yīng)用使用。對(duì)于基于SSL的VPN,以及那些需要對(duì)終端用戶進(jìn)行額外認(rèn)證的應(yīng)用而言,客戶機(jī)認(rèn)證正在成為一種趨勢(shì)。

客戶機(jī)認(rèn)證使得服務(wù)器可以使用與允許客戶機(jī)對(duì)服務(wù)器進(jìn)行認(rèn)證相同的技術(shù),在協(xié)議之內(nèi)對(duì)用戶身份進(jìn)行確認(rèn)。盡管兩者認(rèn)證的信息流極為不同,但是從概念上來看,其過程與服務(wù)器認(rèn)證是相同的。這一過程同樣也會(huì)在SSL握手子協(xié)議之內(nèi)進(jìn)行。在這種情況下,客戶機(jī)必須向服務(wù)器提供有效的證書。服務(wù)器可以通過使用公共密鑰密碼學(xué)的標(biāo)準(zhǔn)技術(shù)對(duì)終端用戶的有效性進(jìn)行認(rèn)證。

SSL所具有的靈活性和強(qiáng)勁的生命力使其無所不在??梢灶A(yù)言的是,在SSL成為企業(yè)應(yīng)用、無線訪問設(shè)備、Web服務(wù)以及安全訪問管理的關(guān)鍵性協(xié)議的同時(shí),SSL的應(yīng)用將繼續(xù)大幅度增長(zhǎng)。下面論述SSL原理和工作過程。

11.6.1  SSL協(xié)議概述

1.SSL協(xié)議的作用

SSL是提供Internet上的通信隱私性的安全協(xié)議。該協(xié)議允許客戶端/服務(wù)器應(yīng)用之間進(jìn)行防竊聽、防消息篡改及防消息偽造的安全的通信。

TCP/IP是整個(gè)Internet數(shù)據(jù)傳輸和通信所使用的最基本的控制協(xié)議,在它之上還有HTTP(Hypertext Transfer Protocol)、LDAP(Lightweight Directory Access Protoco1)、IMAP(Internet Messaging Access Protocol)等應(yīng)用層傳輸協(xié)議。而SSL是位于TCP/IP和各種應(yīng)用層協(xié)議之間的一種數(shù)據(jù)安全協(xié)議(如圖1l-8所示)。SSL協(xié)議可以有效地避免網(wǎng)上信息的偷聽、篡改及信息的偽造。

圖11-8  SSL協(xié)議的位置

SSL標(biāo)準(zhǔn)的關(guān)鍵是要解決以下幾個(gè)問題。

(1)客戶對(duì)服務(wù)器的身份確認(rèn):SSL服務(wù)器允許客戶的瀏覽器使用標(biāo)準(zhǔn)的公鑰加密技術(shù)和一些可靠的認(rèn)證中心(CA)的證書,來確認(rèn)服務(wù)器的合法性(檢驗(yàn)服務(wù)器的證書和ID的合法性)。對(duì)于用戶服務(wù)器身份的確認(rèn)與否是非常重要的,因?yàn)榭蛻艨赡芟蚍?wù)器發(fā)送自己的信用卡密碼。

(2)服務(wù)器對(duì)客戶的身份確認(rèn):允許SSL服務(wù)器確認(rèn)客戶的身份,SSL協(xié)議允許客戶服務(wù)器的軟件通過公鑰技術(shù)和可信賴的證書來確認(rèn)客戶的身份(客戶的證書)。對(duì)于服務(wù)器客戶身份的確認(rèn)與否是非常重要的,因?yàn)榫W(wǎng)上銀行可能要向客戶發(fā)送機(jī)密的金融信息。

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

2.SSL協(xié)議的目標(biāo)

按它們的優(yōu)先級(jí),SSL協(xié)議的目標(biāo)如下。

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

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

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

(3)可擴(kuò)展性。SSL尋求提供一種框架結(jié)構(gòu),在此框架結(jié)構(gòu)中,在不對(duì)協(xié)議進(jìn)行大的修改的情況下,可以在必要時(shí)加入新的公鑰算法和單鑰算法。這樣做還可以實(shí)現(xiàn)兩個(gè)子目標(biāo):

— 避免產(chǎn)生新協(xié)議的需要,因而進(jìn)一步避免了產(chǎn)生新的不足的可能性;

— 避免了實(shí)現(xiàn)一完整的安全協(xié)議的需要。

相對(duì)于有效性加密操作,尤其是公鑰加密,對(duì)CPU來說是一種很耗時(shí)的事,因此SSL協(xié)議引入一個(gè)可選的對(duì)話緩存(Cache)來減少?gòu)念^開始的連接數(shù)目。同時(shí),它還注意減少網(wǎng)絡(luò)的活動(dòng)。

3.SSL主要組成

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

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

在圖11-9中的每一層,可以包括長(zhǎng)度、描述和內(nèi)容字段。SSL發(fā)出消息是將數(shù)據(jù)分為可管理的塊、壓縮、使用MAC和加密并發(fā)出加密的結(jié)果。接受消息需要解密、驗(yàn)證、解壓和重組,再把結(jié)果發(fā)往更高一層的客戶。

(1)記錄協(xié)議

具體實(shí)現(xiàn)壓縮/解壓縮、加密/解密、計(jì)算機(jī)MAC等與安全有關(guān)的操作。建立之上的還有:

— 更改密碼說明協(xié)議:此協(xié)議由一條消息組成,可由客戶端或服務(wù)器發(fā)送,通知接收方后面的記錄將被新協(xié)商的密碼說明和密鑰保護(hù);接收方獲得此消息后,立即指示記錄層把即將讀狀態(tài)變成當(dāng)前讀狀態(tài);發(fā)送方發(fā)送此消息后,應(yīng)立即指示記錄層把即將寫狀態(tài)變成當(dāng)前寫狀態(tài)。

— 警告協(xié)議:警告消息傳達(dá)消息的嚴(yán)重性并描述警告。一個(gè)致命的警告將立即終止連接。與其他消息一樣,警告消息在當(dāng)前狀態(tài)下被加密和壓縮。警告消息有以下幾種:

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

— 應(yīng)用數(shù)據(jù)協(xié)議:將應(yīng)用數(shù)據(jù)直接傳遞給記錄協(xié)議。

(2)握手協(xié)議

SSL握手協(xié)議是用來在客戶端和服務(wù)器端傳輸應(yīng)用數(shù)據(jù)而建立的安全通信機(jī)制。

— 算法協(xié)商:首次通信時(shí),雙方通過握手協(xié)議協(xié)商密鑰加密算法、數(shù)據(jù)加密算法和文摘算法。

— 身份驗(yàn)證:在密鑰協(xié)商完成后,客戶端與服務(wù)器端通過證書互相驗(yàn)證對(duì)方的身份。

— 確定密鑰:最后使用協(xié)商好的密鑰交換算法產(chǎn)生一個(gè)只有雙方知道的秘密信息,客戶端和服務(wù)器端各自根據(jù)這個(gè)秘密信息確定數(shù)據(jù)加密算法的參數(shù)(一般是密鑰)。由此可見,SSL協(xié)議是端對(duì)端的通信安全協(xié)議。

11.6.2  SSL的工作原理

SSL的工作原理:當(dāng)一個(gè)使用者在Web上用Netscape瀏覽器漫游時(shí),瀏覽器利用HTTP協(xié)議與Web服務(wù)器溝通。例如,瀏覽器發(fā)出一個(gè)HTTP GET命令給服務(wù)器,想下載一個(gè)首頁的HTML檔案,而服務(wù)器會(huì)將檔案的內(nèi)容傳送給瀏覽器來響應(yīng)。GET這個(gè)命令的文字和HTML檔案的文字會(huì)通過會(huì)話層(Socket)的連接來傳送,Socket使兩臺(tái)遠(yuǎn)程的計(jì)算機(jī)能利用Internet來通話。通過SSL,資料在傳送出去之前就自動(dòng)被加密了,它會(huì)在接收端被解密。對(duì)沒有解密鑰的人來說,其中的資料是無法閱讀的。

SSL采用TCP作為傳輸協(xié)議提供數(shù)據(jù)的可靠傳送和接收。SSL工作在Socket層上,因此獨(dú)立于更高層應(yīng)用,可為更高層協(xié)議,如Telnet、FTP和HTTP提供安全業(yè)務(wù)。SSL提供的安全業(yè)務(wù)和TCP層一樣,采用了公開密鑰和私人密鑰兩種加密體制對(duì)Web服務(wù)器和客戶機(jī)(選項(xiàng))的通信提供保密性、數(shù)據(jù)完整性和認(rèn)證。在建立連接過程中采用公開密鑰,在會(huì)話過程中使用私人密鑰。加密的類型和強(qiáng)度則在兩端之間建立連接的過程中判斷決定。在所有情況下,服務(wù)器通過以下方法向客戶機(jī)證實(shí)自身:給出包含公開密鑰的、可驗(yàn)證的證明;演示它能對(duì)用此公開密鑰加密的報(bào)文進(jìn)行解密。

為了支持客戶機(jī),每個(gè)客戶機(jī)都要擁有一對(duì)密鑰,這要求在Internet上通過Netscape分配。由于Internet中的服務(wù)器數(shù)遠(yuǎn)少于客戶機(jī)數(shù),因此能否處理簽字及密鑰管理的業(yè)務(wù)量是很重要的,并且與客戶聯(lián)系比給商家以同樣保證更重要。

SSL協(xié)議提供的服務(wù)可以歸納為如下3個(gè)方面。

(1)用戶和服務(wù)器的合法性認(rèn)證

使得用戶和服務(wù)器能夠確信數(shù)據(jù)將被發(fā)送到正確的客戶機(jī)和服務(wù)器上??蛻魴C(jī)和服務(wù)器都有各自的識(shí)別號(hào),由公開密鑰編排。為了驗(yàn)證用戶,安全套接層協(xié)議要求在握手交換數(shù)據(jù)中做數(shù)字認(rèn)證,以此來確保用戶的合法性。

(2)加密數(shù)據(jù)以隱藏被傳送的數(shù)據(jù)

安全套接層協(xié)議采用的加密技術(shù)既有對(duì)稱密鑰,也有公開密鑰。具體來說,就是客戶機(jī)與服務(wù)器交換數(shù)據(jù)之前,先交換SSL初始握手信息。在SSL握手信息中采用了各種加密技術(shù),以保證其機(jī)密性和數(shù)據(jù)的完整性,并且經(jīng)數(shù)字證書鑒別,這樣就可以防止非法用戶破譯。

(3)維護(hù)數(shù)據(jù)的完整性

安全套接層協(xié)議采用密碼雜湊函數(shù)和機(jī)密共享的方法,提供完整信息性的服務(wù),來建立客戶機(jī)與服務(wù)器之間的安全通道,使所有經(jīng)過安全套接層協(xié)議處理的業(yè)務(wù),在傳輸過程中都能完整、準(zhǔn)確無誤地到達(dá)目的地。

11.6.3  SSL記錄層協(xié)議

SSL記錄層協(xié)議限定了所有發(fā)送和接收數(shù)據(jù)的打包,它提供了通信、身份認(rèn)證功能,它是一個(gè)面向連接的可靠傳輸協(xié)議,如TCP/IP提供安全保護(hù)。

在SSL中,所有數(shù)據(jù)被封裝在記錄中。一個(gè)記錄由兩部分組成:記錄頭和非零長(zhǎng)度的數(shù)據(jù)。記錄頭可以是2字節(jié)或3字節(jié)(當(dāng)有填充數(shù)據(jù)時(shí)使用)。SSL握手層協(xié)議的報(bào)文要求必須放在一個(gè)SSL記錄層的記錄里,但應(yīng)用層協(xié)議的報(bào)文允許占用多個(gè)SSL。記錄來傳送。

1.SSL記錄頭格式

SSL記錄頭可以是2個(gè)或3個(gè)字節(jié)長(zhǎng)的編碼。SSL記錄頭包含的信息有記錄頭的長(zhǎng)度、記錄數(shù)據(jù)的長(zhǎng)度,以及記錄數(shù)據(jù)中是否有填充數(shù)據(jù),其中填充數(shù)據(jù)是在使用塊加密(blocken-cryption)算法時(shí),填充實(shí)際數(shù)據(jù),使其長(zhǎng)度恰好是塊的整數(shù)倍。最高位為1時(shí),不含有填充數(shù)據(jù),記錄頭的長(zhǎng)度為2個(gè)字節(jié),記錄數(shù)據(jù)的最大長(zhǎng)度為32767個(gè)字節(jié);最高位為0時(shí),含有填充數(shù)據(jù),記錄頭的長(zhǎng)度為3個(gè)字節(jié),記錄數(shù)據(jù)的最大長(zhǎng)度為16383個(gè)字節(jié)。

SSL記錄層結(jié)構(gòu)如圖11-10所示。

圖11-10  SSL記錄層結(jié)構(gòu)

當(dāng)數(shù)據(jù)頭長(zhǎng)度是3個(gè)字節(jié)時(shí),次高位有特殊的含義。次高位為1時(shí),表示所傳輸?shù)挠涗浭瞧胀ǖ臄?shù)據(jù)記錄;次高位為0時(shí),表示所傳輸?shù)挠涗浭前踩瞻子涗洠ū槐A粲糜趯韰f(xié)議的擴(kuò)展)。

記錄頭中數(shù)據(jù)長(zhǎng)度編碼不包括數(shù)據(jù)頭所占用的字節(jié)長(zhǎng)度。記錄頭長(zhǎng)度為2個(gè)字節(jié)時(shí),記錄長(zhǎng)度的計(jì)算公式為:記錄長(zhǎng)度=((Byte[0]&0x7f)<<8)|Byte[1]。其中Byte[0]、Byte[1]分別表示傳輸?shù)牡谝粋€(gè)、第二個(gè)字節(jié)。

記錄頭長(zhǎng)度為3個(gè)字節(jié)時(shí),記錄長(zhǎng)度的計(jì)算公式是:記錄長(zhǎng)度=((Byte[0]&0x3f<<8))

|Byte[1]。其中Byte[0]、Byte[1]的含義同上。判斷是否是安全空白記錄的計(jì)算公式是:(Byte[0]&0x40)!=0。填充數(shù)據(jù)的長(zhǎng)度為傳輸?shù)牡谌齻€(gè)字節(jié)。

2.SSL記錄數(shù)據(jù)格式

SSL記錄數(shù)據(jù)部分有3個(gè)分量:MAC-DATA、ACTUAL-DATA和PADDING-DATA。

MAC數(shù)據(jù)用于數(shù)據(jù)完整性檢查。計(jì)算MAC所用的散列函數(shù)由握手協(xié)議中的CIPHER-CHOICE消息確定。若使用MD2和MD5算法,則MAC數(shù)據(jù)長(zhǎng)度是16個(gè)字節(jié)。MAC的計(jì)算公式為:MAC數(shù)據(jù)=Hash[密鑰, 實(shí)際數(shù)據(jù), 填充數(shù)據(jù), 序號(hào)]。

當(dāng)會(huì)話的客戶端發(fā)送數(shù)據(jù)時(shí),密鑰是客戶的寫密鑰(服務(wù)器用讀密鑰來驗(yàn)證MAC數(shù)據(jù));而當(dāng)會(huì)話的客戶端接收數(shù)據(jù)時(shí),密鑰是客戶的讀密鑰(服務(wù)器用寫密鑰來產(chǎn)生MAC數(shù)據(jù))。序號(hào)是一個(gè)可以被發(fā)送和接收雙方遞增的計(jì)數(shù)器,每個(gè)通信方向都會(huì)建立一對(duì)計(jì)數(shù)器,分別被發(fā)送者和接收者擁有。計(jì)數(shù)器有32位,計(jì)數(shù)值循環(huán)使用,每發(fā)送一個(gè)記錄,計(jì)數(shù)值遞增一次,序號(hào)的初始值為0。

ACTUAL-DATA是被傳送的應(yīng)用數(shù)據(jù),PADDING-DATA是當(dāng)采用分組碼時(shí)所需要的填充數(shù)據(jù),在明文傳送下只有第二項(xiàng)。

3.記錄協(xié)議的作用

記錄協(xié)議層封裝了高層協(xié)議的數(shù)據(jù),協(xié)議數(shù)據(jù)采用SSL握手協(xié)議中協(xié)商好的加密算法及MAC算法來保護(hù)。記錄協(xié)議傳送的數(shù)據(jù)包括一個(gè)序列號(hào),這樣就可以檢測(cè)消息的丟失、改動(dòng)或重放。如果協(xié)商好了壓縮算法,那么SSL記錄協(xié)議還可以執(zhí)行壓縮功能。

SSL V3版的高層由記錄傳遞的消息組成,這包括改變密碼規(guī)范協(xié)議、警報(bào)協(xié)議和握手協(xié)議。改變密碼規(guī)范協(xié)議指明對(duì)使用的密碼規(guī)范的改變,協(xié)議中還包括了一個(gè)用當(dāng)前密碼規(guī)范加密的單獨(dú)消息。客戶和服務(wù)器都要發(fā)送改變密碼規(guī)范消息來表明它們準(zhǔn)備使用一個(gè)新的密碼規(guī)范和密鑰。警報(bào)協(xié)議傳送與事件相關(guān)的消息,包括事件嚴(yán)重性及事件描述。這里的事件主要是指錯(cuò)誤情形,如錯(cuò)誤的MAC碼、證書過期或是非法參數(shù)。警報(bào)協(xié)議也用于共享有關(guān)預(yù)計(jì)連接終止的信息。

11.6.4  SSL握手協(xié)議

握手協(xié)議是關(guān)于客戶和服務(wù)器如何協(xié)商它們?cè)诎踩诺乐幸褂玫陌踩珔?shù),這些參數(shù)包括要采用的協(xié)議版本、加密算法和密鑰。另外,客戶要認(rèn)證服務(wù)器,服務(wù)器則可以選擇認(rèn)證/不認(rèn)證客戶。PKI在客戶-服務(wù)器認(rèn)證階段就開始運(yùn)作了,這就是握手協(xié)議的實(shí)質(zhì)。

1.握手協(xié)議工作過程

SSL握手協(xié)議的具體工作過程描述如下。

① 客戶(client)端發(fā)送ClientHello信息給服務(wù)器(Server)端,Server回答ServerHello。這個(gè)過程建立的安全參數(shù)包括協(xié)議版本、“佳話”標(biāo)識(shí)、加密算法、壓縮方法。另外,還交換兩個(gè)隨機(jī)數(shù):C1ientHello.Random和ServerHello.Random,用于計(jì)算機(jī)“會(huì)話主密鑰”。

② Hello消息發(fā)送完后,Server端會(huì)發(fā)送它的證書和密鑰交換信息。如果Server端被認(rèn)證,它就會(huì)請(qǐng)求Client端的證書,在驗(yàn)證以后,Server就發(fā)送HelloDone消息,以示達(dá)成了握手協(xié)議,即雙方握手接通。

③ Server請(qǐng)求Client證書時(shí),Client要返回證書或返回沒有證書的指示,這種情況用于單向認(rèn)證,即客戶端不裝有證書。然后,Client發(fā)送密鑰交換消息。

④ 服務(wù)器Server此時(shí)要回答“握手完成”消息(Finished),以示完整的握手消息交換已經(jīng)全部完成。

⑤ 握手協(xié)議完成后,Client端即可與Server端傳輸應(yīng)用加密數(shù)據(jù),應(yīng)用數(shù)據(jù)加密一般是用第②步密鑰協(xié)商時(shí)確定的對(duì)稱加/解密密鑰,如DES、3DE等。目前,商用加密強(qiáng)度為128位,非對(duì)稱密鑰一般為RAS,商用強(qiáng)度為1024位,用于證書的驗(yàn)證。

完整的握手協(xié)議消息交換過程如圖11-11所示。

圖11-11  完整的握手協(xié)議消息交換過程

其中,帶*號(hào)的命令是可選的,或依據(jù)狀態(tài)而發(fā)的消息,而改變加密算法協(xié)議(ChangeCipherSpec)并不在實(shí)際的握手協(xié)議之中,它在第③步與第④步之間,用于Client與Server協(xié)商新的加密數(shù)據(jù)包時(shí)而改變?cè)鹊募用芩惴ā?/p>

2.握手協(xié)議的作用

SSL中的握手協(xié)議,將公鑰加密技術(shù)與對(duì)稱密鑰加密技術(shù)的應(yīng)用有效、巧妙地結(jié)合在一起,有機(jī)地組成了互聯(lián)網(wǎng)(或其他網(wǎng)絡(luò))上信息安全傳輸?shù)耐ǖ?。這種信息安全通道,有其實(shí)用價(jià)值,比如,利用對(duì)稱加密技術(shù)比公鑰加密技術(shù)對(duì)大容量信息的加/解密速度要快,而公鑰技術(shù)卻提供了更好的身份認(rèn)證技術(shù)。SSL的握手協(xié)議可以非常有效地讓客戶與服務(wù)器之間完成身份認(rèn)證。

通過SSL客戶端與服務(wù)器傳送自己的數(shù)字證書,互驗(yàn)合法性,特別是驗(yàn)證服務(wù)器的合法性,可以有效地防止互聯(lián)網(wǎng)上虛假網(wǎng)站的網(wǎng)上釣魚事件;同時(shí),服務(wù)器端也可以嚴(yán)格驗(yàn)證客戶端的真實(shí)身份。其作用如下:

① 客戶端的瀏覽器向服務(wù)器傳送客戶端SSL協(xié)議的版本號(hào)、加密算法的種類、產(chǎn)生的隨機(jī)數(shù),以及其他服務(wù)器和客戶端之間通信所需要的各種信息。

② 服務(wù)器向客戶端傳送SSL協(xié)議的版本號(hào)、加密算法的種類、隨機(jī)數(shù)及其他相關(guān)信息,同時(shí),服務(wù)器還將向客戶端傳送自己的證書。

③ 客戶利用服務(wù)器傳過來的信息驗(yàn)證服務(wù)器的合法性。服務(wù)器的合法性包括:證書是否過期,發(fā)行服務(wù)器證書的CA是否可靠,發(fā)行者證書的公鑰能否正確解開服務(wù)器證書的“發(fā)行者的數(shù)字簽名”,服務(wù)器證書上的域名是否和服務(wù)器的實(shí)際域名相匹配。如果合法性驗(yàn)證沒有通過,則通信將斷開;如果合法性驗(yàn)證通過,則將繼續(xù)進(jìn)行第④步。

④ 客戶端隨機(jī)產(chǎn)生一個(gè)用于后面通信的“對(duì)稱密碼”,然后用服務(wù)器的公鑰(從步驟②中服務(wù)器的證書中獲得)對(duì)其加密,再將加密后的“預(yù)主密碼”傳給服務(wù)器。

⑤ 如果服務(wù)器要求客戶的身份認(rèn)證(在握手過程中為可選),用戶則可以建立一個(gè)隨機(jī)數(shù),然后對(duì)其進(jìn)行數(shù)字簽名,將這個(gè)含有簽名的隨機(jī)數(shù)和客戶自己的證書,以及加密過的“預(yù)主密碼”一起傳給服務(wù)器。

⑥ 如果服務(wù)器要求客戶的身份認(rèn)證,服務(wù)器則必須檢驗(yàn)客戶證書和簽名隨機(jī)數(shù)的合法性。具體的合法性驗(yàn)證包括:客戶的證書使用日期是否有效,為客戶提供證書的CA是否可靠,發(fā)行CA的公鑰能否正確解開客戶證書的發(fā)行CA的數(shù)字簽名,檢查客戶的證書是否在證書撤銷列表(CRL)中。檢驗(yàn)如果沒有通過,則通信立刻中斷;如果驗(yàn)證通過,則服務(wù)器將用自己的私鑰解開加密的“預(yù)主密碼”,然后執(zhí)行一系列步驟來產(chǎn)生主通信密碼(客戶端也將通過同樣的方法產(chǎn)生相同的主通信密碼)。

⑦ 服務(wù)器和客戶端用相同的主密碼,即“通話密碼”,一個(gè)對(duì)稱密鑰用于SSL協(xié)議的安全數(shù)據(jù)通信的加/解密通信。同時(shí),在SSL通信過程中還要完成數(shù)據(jù)通信的完整性,以防止數(shù)據(jù)通信中的任何變化。

⑧ 客戶端向服務(wù)器端發(fā)出信息,指明后面的數(shù)據(jù)通信將使用步驟⑦中的主密碼為對(duì)稱密鑰,同時(shí)通知服務(wù)器客戶端的握手過程結(jié)束。

⑨ 服務(wù)器向客戶端發(fā)出信息,指明后面的數(shù)據(jù)通信將使用步驟⑦中的主密碼為對(duì)稱密鑰,同時(shí)通知客戶端服務(wù)器端的握手過程結(jié)束。

⑩ SSL的握手部分結(jié)束,SSL安全通道的數(shù)據(jù)通信開始,客戶和服務(wù)器開始使用相同的對(duì)稱密鑰進(jìn)行數(shù)據(jù)通信,同時(shí)進(jìn)行通信完整性的檢驗(yàn)。

11.6.5  SSL協(xié)議的安全性分析

SSL協(xié)議所采用的加密算法和認(rèn)證算法使它具有較高的安全性,但也存在一些問題。

1.SSL協(xié)議采用的加密算法和認(rèn)證算法

(1)加密算法和會(huì)話密鑰

SSL V2協(xié)議和SSL V3協(xié)議支持的加密算法包括RC4、RC2、IDEA和DES,而加密算法所用的密鑰由消息散列函數(shù)MD5產(chǎn)生。RC4、RC2是由RSA定義的,其中RC2適用于塊加密,RC4適用于流加密。

(2)認(rèn)證算法

認(rèn)證算法采用X.509電子證書標(biāo)準(zhǔn),是通過RSA算法進(jìn)行數(shù)字簽名來實(shí)現(xiàn)的。

— 服務(wù)器的認(rèn)證

在上述的兩對(duì)密鑰中,服務(wù)器方的寫密鑰和客戶方的讀密鑰、客戶方的寫密鑰和服務(wù)器方的讀密鑰分別是一對(duì)私有、公有密鑰。對(duì)服務(wù)器進(jìn)行認(rèn)證時(shí),只有用正確的服務(wù)器方寫密鑰加密,ClientHello消息形成的數(shù)字簽名才能被客戶正確地解密,從而驗(yàn)證服務(wù)器的身份。

若通信雙方不需要新的密鑰,則它們各自所擁有的密鑰已經(jīng)符合上述條件。若通信雙方需要新的密鑰,首先服務(wù)器方在ServerHello消息中的服務(wù)器證書中提供了服務(wù)器的公有密鑰,服務(wù)器用其私有密鑰才能正確地解密由客戶方使用服務(wù)器的公有密鑰加密的MASTER-KEY,從而獲得服務(wù)器方的讀密鑰和寫密鑰。

— 客戶的認(rèn)證

同上,只有用正確的客戶方寫密鑰加密的內(nèi)容才能被服務(wù)器方用其讀密鑰正確地解開。當(dāng)客戶收到服務(wù)器方發(fā)出的REQUEST-CERTIFICATE消息時(shí),客戶首先使用MD5消息散列函數(shù)獲得服務(wù)器方信息的摘要,服務(wù)器方的信息包括:KEY-MATERIAL-0、KEY-MATERIAL-1、KEY-MATERIAL-2、CERTIFICATE-CHALLENAGE-DATA(來自于REQUEST-CERTIFICATE消息)、服務(wù)器所賦予的證書(來自于ServerHello)消息。

其中KEY-MATERIAL-l、KEY-MATERIAL-2是可選的,與具體的加密算法有關(guān)。然后客戶使用自己的讀密鑰加密摘要形成數(shù)字簽名,從而被服務(wù)器認(rèn)證。

2.SSL安全優(yōu)勢(shì)

(1)監(jiān)聽和中間人式攻擊

SSL使用一個(gè)經(jīng)過通信雙方協(xié)商確定的加密算法和密鑰,對(duì)不同的安全級(jí)別應(yīng)用都可找到不同的加密算法,從而用于數(shù)據(jù)加密。它的密鑰管理處理比較好,在每次連接時(shí)通過產(chǎn)生一個(gè)密碼雜湊函數(shù)生成一個(gè)臨時(shí)使用的會(huì)話密鑰,除了不同連接使用不同密鑰外,在一次連接的兩個(gè)傳輸方向上也使用各自的密鑰。盡管SSL協(xié)議為監(jiān)聽者提供了很多明文,但由于采用RSA交換密鑰具有較好的密鑰保護(hù)性能,以及頻繁更換密鑰的特點(diǎn),因此對(duì)監(jiān)聽和中間人式攻擊而言,具有較高的防范性。

(2)流量數(shù)據(jù)分析式攻擊

流量數(shù)據(jù)分析式攻擊的核心是通過檢查數(shù)據(jù)包的未加密字段或未加保護(hù)的數(shù)據(jù)包屬性,試圖進(jìn)行攻擊。在一般情況下該攻擊是無害的,SSL無法阻止這種攻擊。

(3)截取再拼接式攻擊

對(duì)需要較強(qiáng)的連接加密,需要考慮這種安全性。SSL V3.0基本上可阻止這種攻擊。

(4)報(bào)文重發(fā)式攻擊

報(bào)文重發(fā)式攻擊比較容易阻止,SSL通過在MAC數(shù)據(jù)中包含“系列號(hào)”來防止該攻擊。

3.SSL協(xié)議存在的問題

(1)密鑰管理問題

設(shè)計(jì)一個(gè)安全秘密的密鑰交換協(xié)議是很復(fù)雜的,因此,SSL的握手協(xié)議也存在一些密鑰管理問題。SSL的問題表現(xiàn)在:

— 客戶機(jī)和服務(wù)器在互相發(fā)送自己能夠支持的加密算法時(shí),是以明文傳送的,存在被攻擊修改的可能。

—  SSL V3.0為了兼容以前的版本,可能降低安全性。

— 所有的會(huì)話密鑰中都將生成MASTER-KEY,握手協(xié)議的安全完全依賴于對(duì)MASTER-KEY的保護(hù),因此在通信中要盡可能少地使用MASTER-KEY。

(2)加密強(qiáng)度問題

Netscape依照美國(guó)內(nèi)政部的規(guī)定,在它的國(guó)際版的瀏覽器及服務(wù)器上使用40位的密鑰。

以SSL所使用的RC4演繹法所命名的RC4法規(guī),對(duì)多于40位長(zhǎng)的加密密鑰產(chǎn)品的出口加以限制,這項(xiàng)規(guī)定使Netscape的128位加密密鑰在美國(guó)之外的地方變成不合法。一個(gè)著名的例子是一個(gè)法國(guó)的研究生和兩個(gè)美國(guó)柏克萊大學(xué)的研究生破譯了一個(gè)SSL的密鑰,才使人們開始懷疑以SSL為基礎(chǔ)的系統(tǒng)安全性。

Microsoft公司想利用一種稱為私人通信技術(shù)(PCT,Private Communication Technology)的SSLsuperset協(xié)議來改進(jìn)SSL的缺點(diǎn)。PCT會(huì)衍生出第二個(gè)專門為身份驗(yàn)證用的密鑰,這個(gè)身份驗(yàn)證并不屬于RC4規(guī)定的管轄范圍。PCT加入比目前隨機(jī)數(shù)產(chǎn)生器更安全的產(chǎn)生器,因?yàn)樗彩荢SL安全鏈中的一個(gè)弱環(huán)節(jié)。這個(gè)隨機(jī)數(shù)產(chǎn)生器提供了產(chǎn)生加密密鑰的種子數(shù)目(Seed Number)。

(3)數(shù)字簽名問題

SSL協(xié)議沒有數(shù)字簽名功能,即沒有抗否認(rèn)服務(wù)。若要增加數(shù)字簽名功能,則需要在協(xié)議中打“補(bǔ)丁”。這樣做,在用于加密密鑰的同時(shí)又用于數(shù)字簽名,這在安全上存在漏洞。后來PKI體系完善了這種措施,即雙密鑰機(jī)制,將加密密鑰和數(shù)字簽名密鑰二者分開,成為雙證書機(jī)制。這是PKI完整的安全服務(wù)體系。

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
什么是SSL,實(shí)現(xiàn)機(jī)制(證書)
SSL技術(shù)白皮書
PKI與證書服務(wù)應(yīng)用以及相關(guān)安全協(xié)議
用SSL安全協(xié)議實(shí)現(xiàn)WEB服務(wù)器的安全性
SSL/TLS 協(xié)議簡(jiǎn)介與實(shí)例分析
http和https的區(qū)別
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服