資源描述:
《ssl 協(xié)議實(shí)現(xiàn)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、SSL協(xié)議的分析及實(shí)現(xiàn)文章出處:計(jì)算機(jī)與信息技術(shù)作者:令曉靜田紅心發(fā)布時(shí)間:2005-11-01?(西安電子科技大學(xué)ISN國(guó)家重點(diǎn)實(shí)驗(yàn)室,中國(guó)西安,710071)1引言???????SSL是一種在客戶端和服務(wù)器端之間建立安全通道的協(xié)議。SSL一經(jīng)提出,就在Internet上得到廣泛的應(yīng)用。SSL最常用來保護(hù)Web的安全。為了保護(hù)存有敏感信息Web的服務(wù)器的安全,消除用戶在Internet上數(shù)據(jù)傳輸?shù)陌踩檻]。OpenSSL是一個(gè)支持SSL認(rèn)證的服務(wù)器.它是一個(gè)源碼開放的自由軟件,支持多種操作系統(tǒng)。OpenSSL軟件的目的是實(shí)現(xiàn)一個(gè)完整的、健壯的、商業(yè)級(jí)的開放源碼工具,通過強(qiáng)大的加密算法
2、來實(shí)現(xiàn)建立在傳輸層之上的安全性。OpenSSL包含一套SSL協(xié)議的完整接口,應(yīng)用程序應(yīng)用它們可以很方便的建立起安全套接層,進(jìn)而能夠通過網(wǎng)絡(luò)進(jìn)行安全的數(shù)據(jù)傳輸。2?SSL協(xié)議概述SSL是SecuresocketLayer英文縮寫,它的中文意思是安全套接層協(xié)議,指使用公鑰和私鑰技術(shù)組合的安全網(wǎng)絡(luò)通訊協(xié)議。SSL協(xié)議是網(wǎng)景公司(Netscape)推出的基于WEB應(yīng)用的安全協(xié)議,SSL協(xié)議指定了一種在應(yīng)用程序協(xié)議(如Http、Telenet、NMTP和FTP等)和TCP/IP協(xié)議之間提供數(shù)據(jù)安全性分層的機(jī)制,它為TCP/IP連接提供數(shù)據(jù)加密、服務(wù)器認(rèn)證、消息完整性以及可選的客戶機(jī)認(rèn)證,主要用于
3、提高應(yīng)用程序之間數(shù)據(jù)的安全性,對(duì)傳送的數(shù)據(jù)進(jìn)行加密和隱藏,確保數(shù)據(jù)在傳送中不被改變,即確保數(shù)據(jù)的完整性。?SSL以對(duì)稱密碼技術(shù)和公開密碼技術(shù)相結(jié)合,可以實(shí)現(xiàn)如下三個(gè)通信目標(biāo):(1)秘密性:SSL客戶機(jī)和服務(wù)器之間傳送的數(shù)據(jù)都經(jīng)過了加密處理,網(wǎng)絡(luò)中的非法竊聽者所獲取的信息都將是無意義的密文信息。(2)完整性:SSL利用密碼算法和散列(HASH)函數(shù),通過對(duì)傳輸信息特征值的提取來保證信息的完整性,確保要傳輸?shù)男畔⑷康竭_(dá)目的地,可以避免服務(wù)器和客戶機(jī)之間的信息受到破壞。(3)認(rèn)證性:利用證書技術(shù)和可信的第三方認(rèn)證,可以讓客戶機(jī)和服務(wù)器相互識(shí)別對(duì)方的身份。為了驗(yàn)證證書持有者是其合法用戶(而不
4、是冒名用戶),SSL要求證書持有者在握手時(shí)相互交換數(shù)字證書,通過驗(yàn)證來保證對(duì)方身份的合法性。3?SSL協(xié)議的體系結(jié)構(gòu)SSL協(xié)議位于TCP/IP協(xié)議模型的網(wǎng)絡(luò)層和應(yīng)用層之間,使用TCP來提供一種可靠的端到端的安全服務(wù),它是客戶/服務(wù)器應(yīng)用之間的通信不被攻擊竊聽,并且始終對(duì)服務(wù)器進(jìn)行認(rèn)證,還可以選擇對(duì)客戶進(jìn)行認(rèn)證。SSL協(xié)議在應(yīng)用層通信之前就已經(jīng)完成加密算法、通信密鑰的協(xié)商以及服務(wù)器認(rèn)證工作,在此之后,應(yīng)用層協(xié)議所傳送的數(shù)據(jù)都被加密。SSL實(shí)際上是共同工作的兩層協(xié)議組成,如圖1所示。從體系結(jié)構(gòu)圖可以看出SSL安全協(xié)議實(shí)際是SSL握手協(xié)議、SSL修改密文協(xié)議、SSL警告協(xié)議和SSL記錄協(xié)議組
5、成的一個(gè)協(xié)議族。??握手協(xié)議修改密??文協(xié)議報(bào)警協(xié)議???????SSL記錄協(xié)議??????????TCP??????????IP?????????????????圖1?SSL體系結(jié)構(gòu)???????SSL記錄協(xié)議為SSL連接提供了兩種服務(wù):一是機(jī)密性,二是消息完整性。為了實(shí)現(xiàn)這兩種服務(wù),SSL記錄協(xié)議對(duì)接收的數(shù)據(jù)和被接收的數(shù)據(jù)工作過程是如何實(shí)現(xiàn)的呢?SSL記錄協(xié)議接收傳輸?shù)膽?yīng)用報(bào)文,將數(shù)據(jù)分片成可管理的塊,進(jìn)行數(shù)據(jù)壓縮(可選),應(yīng)用MAC,接著利用IDEA、DES、3DES或其他加密算法進(jìn)行數(shù)據(jù)加密,最后增加由內(nèi)容類型、主要版本、次要版本和壓縮長(zhǎng)度組成的首部。被接收的數(shù)據(jù)剛好與接收數(shù)據(jù)
6、工作過程相反,依次被解密、驗(yàn)證、解壓縮和重新裝配,然后交給更高級(jí)用戶。???????SSL修改密文協(xié)議是使用SSL記錄協(xié)議服務(wù)的SSL高層協(xié)議的3個(gè)特定協(xié)議之一,也是其中最簡(jiǎn)單的一個(gè)。協(xié)議由單個(gè)消息組成,該消息只包含一個(gè)值為1的單個(gè)字節(jié)。該消息的唯一作用就是使未決狀態(tài)拷貝為當(dāng)前狀態(tài),更新用于當(dāng)前連接的密碼組。為了保障SSL傳輸過程的安全性,雙方應(yīng)該每隔一段時(shí)間改變加密規(guī)范。???????SSL告警協(xié)議是用來為對(duì)等實(shí)體傳遞SSL的相關(guān)警告。如果在通信過程中某一方發(fā)現(xiàn)任何異常,就需要給對(duì)方發(fā)送一條警示消息通告。警示消息有兩種:一種是Fatal錯(cuò)誤,如傳遞數(shù)據(jù)過程中,發(fā)現(xiàn)錯(cuò)誤的MAC,雙方就
7、需要立即中斷會(huì)話,同時(shí)消除自己緩沖區(qū)相應(yīng)的會(huì)話記錄;第二種是Warning消息,這種情況,通信雙方通常都只是記錄日志,而對(duì)通信過程不造成任何影響。SSL握手協(xié)議可以使得服務(wù)器和客戶能夠相互鑒別對(duì)方,協(xié)商具體的加密算法和MAC算法以及保密密鑰,用來保護(hù)在SSL記錄中發(fā)送的數(shù)據(jù)。SSL握手協(xié)議允許通信實(shí)體在交換應(yīng)用數(shù)據(jù)之前協(xié)商密鑰的算法、加密密鑰和對(duì)客戶端進(jìn)行認(rèn)證(可選)的協(xié)議,為下一步記錄協(xié)議要使用的密鑰信息進(jìn)行協(xié)商,使客戶端和服務(wù)器建立并保持安