移動(dòng)終端的安全解決方案d-SSL
摘 要:目前,關(guān)于無(wú)線(xiàn)通信的安全協(xié)議標準有WTLS、SSL、TLS等。本文分析了SSL協(xié)議,并提出了其在移動(dòng)終端上的安全解決方案d-SSL。
關(guān)鍵詞:電子商務(wù);SSL;X.509
引言
安全性是阻礙移動(dòng)商務(wù)在行業(yè)獲得迅速發(fā)展的最大瓶頸之一。消費者在進(jìn)行手機購物等移動(dòng)商務(wù)行為時(shí),考慮最多的就是安全信用問(wèn)題。所以,針對移動(dòng)終端的安全解決方案d-SSL的提出,具有很重要的意義。
d-SSL采用的主要安全技術(shù)及其標準規范
d-SSL完整地實(shí)現了Internet主要的安全協(xié)議:SSL協(xié)議。SSL協(xié)議通過(guò)在應用程序進(jìn)行數據交換前交換SSL初始握手信息來(lái)實(shí)現有關(guān)安全特性的審查。在SSL握手信息中采用了DES、MD5等加密技術(shù)來(lái)實(shí)現機密性和數據完整性,并采用X.509的數字證書(shū)實(shí)現鑒別。d-SSL中采用了兩類(lèi)加密技術(shù)。
對稱(chēng)加密技術(shù)
在對稱(chēng)加密方法中,對信息的加密和解密都使用相同的密鑰。也就是說(shuō),一把鑰匙開(kāi)一把鎖。使用對稱(chēng)加密方法將簡(jiǎn)化加密的處理,每個(gè)貿易方都不必彼此研究和交換專(zhuān)用的加密算法,而是采用相同的加密算法并只交換共享的專(zhuān)用密鑰。如果進(jìn)行通信的貿易方能夠確保專(zhuān)用密鑰在密鑰交換階段未曾泄露,那么機密性和報文完整性就可以通過(guò)對稱(chēng)加密方法加密機密信息和通過(guò)隨報文一起發(fā)送報文摘要或報文散列值來(lái)實(shí)現。
非對稱(chēng)加密/公開(kāi)密鑰加密
在非對稱(chēng)加密體系中,密鑰被分解為一對(即一把公開(kāi)密鑰或加密密鑰和一把專(zhuān)用密鑰或解密密鑰)。這對密鑰中的任何一把都可作為公開(kāi)密鑰(加密密鑰)通過(guò)非保密方式向他人公開(kāi),而另一把則作為專(zhuān)用密鑰(解密密鑰)加以保存。公開(kāi)密鑰用于對機密性信息加密,專(zhuān)用密鑰則用于對加密信息的解密。專(zhuān)用密鑰只能由生成密鑰對的貿易方掌握,公開(kāi)密鑰可廣泛發(fā)布,但它只對應于生成該密鑰的貿易方。
d-SSL的設計
SSL協(xié)議簡(jiǎn)述
SSL協(xié)議由SSL記錄協(xié)議和SSL握手協(xié)議兩部分組成。
SSL記錄協(xié)議
在SSL協(xié)議中,所有的傳輸數據都被封裝在記錄中。記錄是由記錄頭和記錄數據組成的。所有的SSL通信消息,包括握手消息、告警消息和應用數據等,都使用SSL記錄協(xié)議進(jìn)行封裝。同一時(shí)刻同一方向的所有握手協(xié)議可以封裝在同一個(gè)記錄中傳輸。SSL記錄協(xié)議有四種類(lèi)型:ChangeCipherSpec、Alert、Handshake和ApplicationData。
SSL握手協(xié)議
在通信的初始化階段,客戶(hù)方先發(fā)出ClientHello消息,服務(wù)器方也應返回一個(gè)ServerHello消息。這兩個(gè)消息用來(lái)協(xié)商雙方的安全能力,包括協(xié)議版本、會(huì )話(huà)ID、交換密鑰算法、對稱(chēng)加密算法、壓縮算法等。接著(zhù)服務(wù)器方應發(fā)送服務(wù)器證書(shū)(包含了服務(wù)器的公鑰等),如果服務(wù)器要求驗證客戶(hù)方,則要發(fā)送CertificateRequest消息。最后服務(wù)器方發(fā)送ServerHelloDone消息,表示hello階段的結束,服務(wù)器等待客戶(hù)方的響應。
如果服務(wù)器要求驗證客戶(hù)方,則客戶(hù)方先發(fā)送Certificate消息,然后產(chǎn)生會(huì )話(huà)密鑰,并用服務(wù)器的公鑰加密,封裝在ClientKeyExchange消息中。如果客戶(hù)方發(fā)送了自己的證書(shū),則再發(fā)送一個(gè)數字簽名CertificateVerify消息來(lái)對證書(shū)進(jìn)行校驗。
隨后,客戶(hù)方發(fā)送一個(gè)Change CipherSpec消息,通知服務(wù)器以后發(fā)送的消息將采用先前協(xié)商好的安全參數加密,最后再發(fā)送一個(gè)加密后的Finish消息。服務(wù)器在收到上述兩個(gè)消息后,也發(fā)送自己的Change CipherSpec消息和Finish消息。至此,握手全部完成,雙方可以開(kāi)始傳輸應用數據。
d-SSL體系結構
d-SSL的特點(diǎn)及其模塊結構
在實(shí)現過(guò)程中,將δ-SSL分為幾個(gè)模塊,如圖1所示。
d-SSL有如下幾個(gè)特點(diǎn):
?可移植、可剪裁、可配置。主要用標準C語(yǔ)言實(shí)現,與硬件平臺及嵌入式操作系統無(wú)關(guān),可支持不同的CPU和嵌入式操作系統,可以根據應用的需要去掉某些算法模塊。
?為了保證良好的可擴展性,在各加、解密算法之上封裝了一個(gè)很薄的加、解密接口層,這樣,第三方的算法模塊和IC卡接口模塊就可以輕松自如地嵌入到整個(gè)體系結構中。
?為了在SSL協(xié)商過(guò)程中友好地與用戶(hù)交互,在SSL API中提供了回調的接口。這樣,用戶(hù)可以實(shí)時(shí)地監控SSL協(xié)商的過(guò)程,并且可以干預SSL的協(xié)商。
?為了在證書(shū)存取的處理中屏蔽對底層硬件(Flash)的差異性,提高可移植性,提供了一個(gè)簡(jiǎn)單的文件系統接口。
證書(shū)的發(fā)放與管理
由于消費電子類(lèi)的信息終端具有一些特殊性,如:資源有限、要求體積盡量小、成本低等,所以終端上一般不會(huì )像PC機一樣有軟驅、硬盤(pán),因此面向終端的X.509證書(shū)的發(fā)放和存取都有其一定的特殊性。
一般說(shuō)來(lái),在終端上存儲的證書(shū)有兩類(lèi):
?可信的CA(Certification Authority) 證書(shū)。CA的作用是檢查證書(shū)持有者身份的合法性,并簽發(fā)證書(shū),以防證書(shū)被偽造或篡改。
?用戶(hù)證書(shū)和私鑰文件。用戶(hù)證書(shū)用來(lái)向對方標志自己的身份,其中含有用戶(hù)的公鑰,而私鑰文件則包含了用戶(hù)的私鑰,需要進(jìn)行加密存儲和妥善的保管。為了安全、方便地在Internet上發(fā)放用戶(hù)證書(shū)和私鑰文件,還有一種PKCS12格式的證書(shū),它把用戶(hù)證書(shū)和私鑰文件進(jìn)行加密后合成為一個(gè)證書(shū)文件。
從有無(wú)IC卡讀卡器接口的角度來(lái)看,可把終端分為兩類(lèi),下面將分別闡述兩種類(lèi)別的證書(shū)發(fā)放和管理方案:
?無(wú)讀卡器接口的低端產(chǎn)品。
以網(wǎng)上銀行為例(用戶(hù)已在該銀行開(kāi)戶(hù)),發(fā)放證書(shū)的流程如下:
1. 用戶(hù)通過(guò)終端瀏覽器訪(fǎng)問(wèn)該銀行網(wǎng)站,并填寫(xiě)申請表。
2. 用戶(hù)同意銀行的協(xié)議書(shū),并下載該銀行的根CA證書(shū),存儲到終端的flash中。
3. 用戶(hù)下載用戶(hù)證書(shū)(PKCS12格式),并記住密碼。通過(guò)密碼校驗后存儲到flash中。
?有讀卡器接口的高端產(chǎn)品。用戶(hù)證書(shū)和私鑰文件都存儲在IC卡中(CPU卡),并且私鑰不會(huì )被讀出IC卡外,與私鑰相關(guān)的運算都在IC卡內完成。這種方式的安全性最高。
結語(yǔ)
本文分析了SSL協(xié)議的原理和握手協(xié)議的流程,并闡述了d-SSL的體系結構,以及證書(shū)的發(fā)放與管理策略?!?/P>
參考文獻
1 Alan O.Freier, Philip Karlton, Paul C.Kocher . The SSL Protocol Version 3.0.Netscape Communications Corporation ,1996
2 R. Housley , W. Ford , W. Polk, D. Solo . RFC 2459:Internet X.509 Public Key Infrastructure Certificate and CRL Profile . 1999
3 Bruce Schneier . 應用密碼學(xué). 北京: 機械工業(yè)出版社, 2000
評論