SSL(Secure Sockets Layer)安全套接層協(xié)議由Netscape公司設(shè)計(jì)開發(fā),SSL安全協(xié)議是對Internet上計(jì)算機(jī)之間對話進(jìn)行加密的協(xié)議,相當(dāng)于在消費(fèi)者和商家之間建立一條保密通道以傳遞金融信息,SSL安全協(xié)議同時(shí)使用公共密鑰和私有密鑰加密技術(shù)。
1 SSL的握手過程分析
SSL協(xié)議在握手階段協(xié)商加密算法,驗(yàn)證服務(wù)器并建立用于數(shù)據(jù)加密和MAC的密鑰。通過wireshark軟件捕獲淘寶網(wǎng)的電子交易數(shù)據(jù),并通過wireshark軟件中的過濾器工具欄過濾出SSL協(xié)議的相關(guān)數(shù)據(jù),過濾結(jié)果如(圖1)所示。
從過濾的結(jié)果中可以看出,得到了需要的SSL通信數(shù)據(jù)。SSL的握手過程是由180號(hào)數(shù)據(jù)包、184號(hào)數(shù)據(jù)包、185號(hào)數(shù)據(jù)包和188號(hào)數(shù)據(jù)包構(gòu)成。
1.1 180號(hào)數(shù)據(jù)包(Client Hello)
該數(shù)據(jù)包是客戶機(jī)發(fā)給服務(wù)器第一個(gè)數(shù)據(jù)包,用來發(fā)起SSL連接。Handshake Protocol展開可以看到Client Hello包含7個(gè)字段,分別為:Handshake Type(握手報(bào)文類型)字段、Length(握手報(bào)文長度)字段、Handshake Type(握手報(bào)文類型)字段、Version(版本)字段、Random(隨機(jī)數(shù))字段、Cipher Suites(密碼套件)字段、Compression Methods(壓縮方法)字段、Extensions(擴(kuò)展)字段。
1.2 184號(hào)“Server hello”包
184號(hào)包是服務(wù)器對客戶機(jī)的響應(yīng),若客戶端同意握手就返回“Server Hello”消息,否則返回握手失敗報(bào)警消息。該數(shù)據(jù)包由Server Hello、Certificate、Server Hello Done三部分內(nèi)容組成,因此這是一個(gè)多握手消息數(shù)據(jù)包。
1.3 185號(hào)“Client Key Exchange,Change Cipher Spec,Encrypted Handshake Message”包
該包是由客戶機(jī)發(fā)至服務(wù)器的,長為380個(gè)字節(jié)。185號(hào)包由握手協(xié)議的Client Key Exchange(客戶密鑰交換報(bào)文)、Encrypted Handshake Message(加密握手報(bào)文)以及更改密碼參數(shù)協(xié)議的Change Cipher Spec(改變密碼參數(shù)報(bào)文)構(gòu)成。Client Key Exchange(客戶密鑰交換報(bào)文)完成了客戶機(jī)與服務(wù)器交換Pre-master Secret(預(yù)置主秘密),它的長度為258字節(jié)。Pre-master Secret(預(yù)置主秘密)的用途是:將它的兩個(gè)Hash函數(shù)SHA-1和MD5來產(chǎn)生一個(gè)48字節(jié)的主秘密。再利用“主秘密”的兩個(gè)Hash函數(shù)來產(chǎn)生SSL通信所需要的6個(gè)密鑰和初始矢量。Change Cipher Spec(改變密碼參數(shù)報(bào)文)是客戶端發(fā)送的,長度為1字節(jié),用于修改密文的參數(shù)。Encrypted Handshake Message(加密握手報(bào)文)是客戶機(jī)使用服務(wù)器的公鑰加密后的握手報(bào)文,它的長度是48字節(jié),服務(wù)器收到該報(bào)文后使用自己的私有密鑰進(jìn)行解密。
1.4 188號(hào)“Change Cipher Spec,Encrypted Handshake Message”包
這是服務(wù)器發(fā)送給客戶機(jī)的數(shù)據(jù)包,由Change Cipher Spec(改變密碼參數(shù)報(bào)文)和Encrypted Handshake Message(加密的握手報(bào)文)構(gòu)成。長度為1字節(jié)的Change Cipher Spec(改變密碼參數(shù))報(bào)文,用來通知客戶端啟用新建立的參數(shù)和密碼秘密。該報(bào)文用服務(wù)器的私鑰加密后傳給客戶機(jī),客戶機(jī)收到后用服務(wù)器的公鑰解密。服務(wù)器發(fā)送的該報(bào)文中還包含了一個(gè)長度為48字節(jié)的Encrypted Handshake Message(加密的握手報(bào)文),它用服務(wù)器自己的私鑰加密。至此客戶機(jī)與服務(wù)器之間的握手進(jìn)程結(jié)束,一個(gè)安全的SSL傳輸通道建立完成。
2 結(jié)語
SSL協(xié)議是現(xiàn)在最流行的網(wǎng)絡(luò)安全協(xié)議之一,它保護(hù)了通信雙方的安全[3]。本文通過對捕獲的SSL數(shù)據(jù)進(jìn)行了分析,通過剖析數(shù)據(jù)包深入了解SSL的三次握手過程,從總體上來看SSL協(xié)議是一個(gè)全面而又完善的安全協(xié)議。
參考文獻(xiàn)
[1] 雷震甲.網(wǎng)絡(luò)工程師教程[M].清華大學(xué)出版社,2010.
[2]Jazib Frahim,Qiang Huang.SSL Remote Access VPNS[M].北京:人民郵電出版社,2009.
[3]劉強(qiáng).基于SSL協(xié)議的網(wǎng)絡(luò)安全系統(tǒng)研究與設(shè)計(jì)[D].山東大學(xué)碩士學(xué)位論文,2009.