◆檀亞樂(lè) 胡曦明,2 馬 苗,2
(1.陜西師范大學(xué)計(jì)算機(jī)科學(xué)學(xué)院 陜西 710119;2.現(xiàn)代教學(xué)技術(shù)教育部重點(diǎn)實(shí)驗(yàn)室 陜西 710119)
SSL協(xié)議工作過(guò)程探析
◆檀亞樂(lè)1胡曦明1,2馬 苗1,2
(1.陜西師范大學(xué)計(jì)算機(jī)科學(xué)學(xué)院 陜西 710119;2.現(xiàn)代教學(xué)技術(shù)教育部重點(diǎn)實(shí)驗(yàn)室 陜西 710119)
本文針對(duì)電子商務(wù)以及網(wǎng)絡(luò)通信過(guò)程中的安全問(wèn)題,提出了SSL協(xié)議(安全套接層協(xié)議),為探究SSL協(xié)議的工作過(guò)程,在Windows sever 2003上搭建了SSL安全協(xié)議模型配置了安全證書并進(jìn)行了抓包分析,研究表明,SSL協(xié)議為網(wǎng)絡(luò)安全通信及電子商務(wù)交易提供了安全保障,是一種較為可靠的安全通信協(xié)議,對(duì)電子商務(wù)及網(wǎng)絡(luò)通信的發(fā)展起到了促進(jìn)作用。
安全套接層協(xié)議;SSL協(xié)議工作原理;握手過(guò)程;SSL協(xié)議應(yīng)用
SSL協(xié)議是國(guó)際上最早用于電子商務(wù)的一種網(wǎng)絡(luò)安全協(xié)議,在傳統(tǒng)的電子商務(wù)活動(dòng)中,客戶首先尋找商品信息,然后匯款給商家,然后商家再把商品寄給客戶,這樣就相當(dāng)于完成了一項(xiàng)商品交易。而在這其中,商家是值得信賴的,商家擔(dān)心客戶不付款或者使用不可靠的銀行卡,所以希望銀行對(duì)這一交易進(jìn)行認(rèn)證,SSL協(xié)議正是在這一背景下產(chǎn)生的。目前,國(guó)外著名的商業(yè)瀏覽器、web服務(wù)器和電子郵件等都內(nèi)嵌的使用SSL安全協(xié)議。SSL協(xié)議已成為最流行的安全傳輸協(xié)議,在信息系統(tǒng)安全中占據(jù)重要地位。SSL協(xié)議作為電子商務(wù)系統(tǒng)中應(yīng)用最為廣泛的協(xié)議,通過(guò)對(duì)通信過(guò)程的加密來(lái)實(shí)現(xiàn)安全通信。SSL協(xié)議應(yīng)滿足機(jī)密性和完整性的需求,同時(shí)實(shí)現(xiàn)服務(wù)器身份認(rèn)證,本文主要對(duì)SSL協(xié)議的工作過(guò)程及工作原理做了介紹。
1.1 SSL協(xié)議特點(diǎn)
保密:在握手協(xié)議中定義了會(huì)話密鑰后,所有的消息都被加密。
鑒別:可選的客戶端認(rèn)證,和強(qiáng)制的服務(wù)器端認(rèn)證。
完整性:傳送的消息包括消息完整性檢查(使用MAC)。
1.2 SSL協(xié)議的目標(biāo)及實(shí)現(xiàn)
(1)客戶對(duì)服務(wù)器的身份確認(rèn)。
(2)服務(wù)器對(duì)客戶的身份確認(rèn)(客戶證書)。
(3)建立起服務(wù)器和客戶之間安全的數(shù)據(jù)通道。
1.3 SSL協(xié)議算法加密思想
在SSL中會(huì)使用密鑰交換算法交換密鑰;使用密鑰對(duì)數(shù)據(jù)進(jìn)行加密;使用散列算法對(duì)數(shù)據(jù)的完整性進(jìn)行驗(yàn)證,使用數(shù)字證書證明自己的身份。
1.4 SSL協(xié)議體系結(jié)構(gòu)
SSL協(xié)議分為上下兩層,上層(簡(jiǎn)稱握手層)包括SSL握手協(xié)議、SSL秘鑰修改協(xié)議、SSL警告協(xié)議,下層包括SSL記錄協(xié)議。
2.1 SSL協(xié)議工作原理
(1) SSL握手協(xié)議
握手協(xié)議是關(guān)于客戶和服務(wù)器如何協(xié)商它們?cè)诎踩诺乐幸褂玫陌踩珔?shù),這些參數(shù)包括要采用的協(xié)議版本、加密算法和密鑰。另外,客戶要認(rèn)證服務(wù)器,服務(wù)器則可以選擇認(rèn)證/不認(rèn)證客戶。工作過(guò)程示意圖如圖1所示。
(2) SSL修改密鑰協(xié)議
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傳輸過(guò)程的安全性,雙方應(yīng)該每隔一段時(shí)間改變加密規(guī)范。
圖1 SSL握手協(xié)議
(3)記錄層協(xié)議
記錄協(xié)議在客戶機(jī)和服務(wù)器握手成功后使用,即客戶機(jī)和服務(wù)器鑒別對(duì)方和確定安全信息交換使用的算法后,進(jìn)入SSL記錄協(xié)議,記錄協(xié)議向SSL 連接提供兩個(gè)服務(wù),即保密性和完整性,其中保密性由握手協(xié)議定義的密鑰決定;完整性由握手協(xié)議定義的MAC來(lái)保證。
(4)警告協(xié)議
客戶機(jī)和服務(wù)器發(fā)現(xiàn)錯(cuò)誤時(shí),向?qū)Ψ桨l(fā)送一個(gè)警報(bào)消息。如果是致命錯(cuò)誤,則算法會(huì)立即關(guān)閉SSL連接,雙方還會(huì)先刪除相關(guān)的會(huì)話號(hào)及密鑰。每個(gè)警報(bào)消息共2個(gè)字節(jié),第1個(gè)字節(jié)表示錯(cuò)誤類型,如果是警報(bào),則值為1,如果是致命錯(cuò)誤,則值為2;第2個(gè)字節(jié)制定實(shí)際錯(cuò)誤類型。
2.2 SSL協(xié)議實(shí)現(xiàn)過(guò)程
客戶機(jī)和服務(wù)器,使用SSL協(xié)議和通信雙方可以相互驗(yàn)證對(duì)方身份的真實(shí)性,并且能夠保證數(shù)據(jù)的機(jī)密性和完整性。下面我們來(lái)看一下SSL協(xié)議實(shí)現(xiàn)過(guò)程的整體示意圖如圖2。
圖2 SSL協(xié)議實(shí)現(xiàn)過(guò)程
SSL握手協(xié)議是SSL通信協(xié)議中第一個(gè)也是最重要的一個(gè)子協(xié)議,如圖3-圖6所示:
圖3 SSL握手協(xié)議第一階段
建立安全能力:SSL握手的第一階段啟動(dòng)邏輯連接,建立這個(gè)連接的安全能力。首先客戶機(jī)向服務(wù)器發(fā)出client hello消息并等待服務(wù)器響應(yīng),隨后服務(wù)器向客戶機(jī)返回server hello消息,對(duì)client hello消息中的信息進(jìn)行確認(rèn)。Client hello消息包括Version,Random,Session id,Cipher suite,Compression。
圖4 SSL握手協(xié)議第二階段
服務(wù)器鑒別與秘鑰交換:服務(wù)器啟動(dòng)SSL握手第2階段,是本階段所有消息的唯一發(fā)送方,客戶機(jī)是所有消息的唯一接收方。該階段分為4步:(1)證書:服務(wù)器將數(shù)字證書和到根CA整個(gè)鏈發(fā)給客戶端,使客戶端能用服務(wù)器證書中的服務(wù)器公鑰認(rèn)證服務(wù)器;(2)服務(wù)器密鑰交換(可選):這里視密鑰交換算法而定;(3)證書請(qǐng)求:服務(wù)端可能會(huì)要求客戶自身進(jìn)行驗(yàn)證;(4)服務(wù)器握手完成:第二階段的結(jié)束,第三階段開(kāi)始的信號(hào)。
客戶鑒別與秘鑰交換:SSL握手第三階段,客戶機(jī)是本階段所有消息的唯一發(fā)送方,服務(wù)器是所有消息的唯一接收方。該階段分為3步: (1)證書(可選):為了對(duì)服務(wù)器證明自身,客戶要發(fā)送一個(gè)證書信息,在IIS中可以配置強(qiáng)制客戶端證書認(rèn)證。(2)客戶機(jī)密鑰交換(Pre-master-secret):這里客戶端將預(yù)備主密鑰發(fā)送給服務(wù)端,注意這里會(huì)使用服務(wù)端的公鑰進(jìn)行加密。(3)證書驗(yàn)證(可選):對(duì)預(yù)備秘密和隨機(jī)數(shù)進(jìn)行簽名,證明擁有。(4)證書的公鑰。如圖所示為RSA方式的客戶端驗(yàn)證和密鑰交換,握手過(guò)程完成。
圖5 握手協(xié)議第三階段
圖6 SSL握手協(xié)議第四階段
2.3 抓包分析
以TLS為例進(jìn)行通信分析(如圖7)。
圖7 TLS通信分析
客戶端發(fā)起握手協(xié)商操作,它將發(fā)送一個(gè)ClientHello消息給服務(wù)器,消息中明確了其所支持的SSL/TLS版本、Cipher suite加密算法組合等,可以讓服務(wù)器選擇,并提供了一個(gè)客戶端隨機(jī)數(shù),用于以后生成會(huì)話密鑰使用。
圖8 TLS通信報(bào)文
客戶端所支持的加密算法如9所示:
圖9 客戶端支持算法
服務(wù)器將返回一個(gè)ServerHello消息,該消息包含了服務(wù)器選擇的協(xié)議版本、加密算法,以及服務(wù)器隨機(jī)數(shù)、會(huì)話ID等內(nèi)容。其中,服務(wù)器選擇的協(xié)議版本應(yīng)小于等于客戶端ClientHello中的協(xié)議版本。圖10-圖11所示即為服務(wù)器端所選擇的協(xié)議版本、加密算法等。
圖10 協(xié)議版本
圖11 加密算法
發(fā)送Certificate消息,該消息包含了服務(wù)器的證書等信息,可通過(guò)證書鏈認(rèn)證該證書的真實(shí)性。服務(wù)器發(fā)送ServerKeyExchange消息,消息中包含了服務(wù)器這邊的 EC Diffie-Hellman算法相關(guān)參數(shù)。此消息一般只在選擇使用DHE 和DH_anon等加密算法組合時(shí)才會(huì)由服務(wù)器發(fā)出。服務(wù)器發(fā)送ServerHelloDone消息,告知客戶端服務(wù)器這邊握手相關(guān)的消息發(fā)送完畢。
圖12 報(bào)文分析
客戶端發(fā)送ClientKeyExchange消息,消息中包含客戶端這邊的EC Diffie-Hellman算法相關(guān)參數(shù),然后服務(wù)器和客戶端都可根據(jù)接收到的對(duì)方參數(shù)和自身參數(shù)運(yùn)算出Premaster secret,為生成會(huì)話密鑰做準(zhǔn)備。
客戶端向服務(wù)器發(fā)送ChangeCipherSpec消息,通知服務(wù)器此消息以后客戶端會(huì)以加密方式發(fā)送數(shù)據(jù)。
可用于電子商務(wù)交易信息平臺(tái);瀏覽器安全瀏覽信息;郵件的安全傳輸?shù)?。SSL協(xié)議實(shí)施起來(lái)比較簡(jiǎn)單,對(duì)現(xiàn)有網(wǎng)絡(luò)系統(tǒng)的修改也不是太大且具有較強(qiáng)的自主開(kāi)發(fā)性,所以應(yīng)用廣泛。
但由于 SSL協(xié)議的安全傳輸?shù)臄?shù)據(jù)安全性是建立在傳輸過(guò)程中加密算法的魯棒性和穩(wěn)健性之上的,所以,網(wǎng)站或者交易平臺(tái)在使用SSL協(xié)議的過(guò)程中,如果他們的加密算法被破解或者遭到攻擊,那么SSL協(xié)議也會(huì)相應(yīng)的失去效用。所以SSL協(xié)議在其應(yīng)用上還存在一定的缺陷,并不能讓滿足對(duì)傳輸信息加密要求很高的傳輸過(guò)程。
圖13 報(bào)文內(nèi)容
對(duì)SSL協(xié)議的工作原理和工作過(guò)程做了簡(jiǎn)單介紹,并且抓包分析了SSL協(xié)議的工作過(guò)程。通過(guò)這次實(shí)驗(yàn)分析,更加透徹的了解了 SSL協(xié)議的工作方法以及在工作過(guò)程中可能遇到的問(wèn)題。SSL協(xié)議自身存在一定的安全缺陷,還需要進(jìn)行改進(jìn)。
SSL協(xié)議是用于通信安全保密防護(hù)的一種協(xié)議,它對(duì)于未來(lái)網(wǎng)絡(luò)通信發(fā)展有著重要意義。了解SSL協(xié)議的工作方式,對(duì)以后網(wǎng)絡(luò)通信安全研究有著重大意義。
[1]郭正榮,周城.SSL協(xié)議工作過(guò)程及其應(yīng)用[J].網(wǎng)絡(luò)安全技術(shù)與應(yīng)用,2004.
[2]胡曉曄,李峻屹.SSL協(xié)議分析及實(shí)現(xiàn)[J].電腦知識(shí)與技術(shù),2008.
[3]董劍安,吳秋峰.SSL應(yīng)用算法安全研究[J].網(wǎng)絡(luò)安全技術(shù)與應(yīng)用.
[4]陳鴻星,周媛蘭.基于不對(duì)稱加密的網(wǎng)絡(luò)信息安全對(duì)策研究[J].網(wǎng)絡(luò)安全技術(shù)與應(yīng)用.
[5]覃東,曾紅亮.基于SSL的客戶端認(rèn)證策略研究[J].計(jì)算機(jī)工程與設(shè)計(jì),2008.
[6]寇亞洲.SSL密文會(huì)話分析與監(jiān)控[D].北京交通大學(xué),2012.
[7]侯剛,周洲,杜波 SSL VPN在電子政務(wù)網(wǎng)中的應(yīng)用[J].網(wǎng)絡(luò)安全技術(shù)與應(yīng)用,2012.
[8]肖中杰.SSL及其在校園網(wǎng)WEB系統(tǒng)安全中的應(yīng)用研究[J].網(wǎng)絡(luò)安全技術(shù)與應(yīng)用,2009.
[9]楊文凱.SSL VPN安全關(guān)鍵技術(shù)研究[D].西南交通大學(xué),2010.
中央高?;究蒲袠I(yè)務(wù)費(fèi)專項(xiàng)資金資助項(xiàng)目(GK201503065),現(xiàn)代教學(xué)技術(shù)教育部重點(diǎn)實(shí)驗(yàn)室開(kāi)放課題資助項(xiàng)目(SYSK201501),陜西師范大學(xué)非師范拔尖創(chuàng)新人才培養(yǎng)計(jì)劃2017年度項(xiàng)目。