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