手機(jī)銀行中基于J2ME的混合加密方案

隨著經(jīng)濟(jì)不斷發(fā)展,特別是近幾年來互聯(lián)網(wǎng)的不斷發(fā)展,人們對(duì)信息化的要求也越來越高,手機(jī)銀行將會(huì)發(fā)展為未來主要的支付手段之一。與此同時(shí),手機(jī)銀行的安全性是人們重點(diǎn)關(guān)注的問題,如何建立信息安全機(jī)制對(duì)手機(jī)銀行的發(fā)展至關(guān)重要。為此我們?cè)诳紤]到手機(jī)銀行實(shí)現(xiàn)方式、傳輸數(shù)據(jù)量等因素的過程中,提出了基于基于J2ME的混合加密方案。

一、J2ME及混合加密技術(shù)概念

1、J2ME技術(shù)

J2ME是為機(jī)頂盒、移動(dòng)電話和PDA之類嵌入式消費(fèi)電子設(shè)備提供的Java語言平臺(tái),包括虛擬機(jī)和一系列標(biāo)準(zhǔn)化的Java API。這些設(shè)備可以在有限連接設(shè)備配置(CI,DC)提供的完整Java運(yùn)行環(huán)境中,使用一系列Java API編程MIDP(移動(dòng)信息設(shè)備文件)簡表是一個(gè)應(yīng)用于無線移動(dòng)設(shè)備的J2ME簡表,MIDP基于CLDC之上構(gòu)建,除了繼承CLDC部分特性之外還具備自身的獨(dú)立特性,它可以通過可選包進(jìn)行擴(kuò)展,比較常見兩種類型的可選包為無線消息API(Wire-less messaging API,WMA l.1)和移動(dòng)多媒體API(Mobile media API,JSR135)。WMA 1.1主要提供發(fā)送和接收短消息的服務(wù);移動(dòng)多媒體API提供了視頻和音頻的播放、圖像捕獲及聲音的記錄等。

2、混合加密技術(shù)

按密碼理論與技術(shù)來分,加密技術(shù)分為對(duì)稱加密與非對(duì)稱加密。在對(duì)稱加密中,雙方使用同一個(gè)密鑰對(duì)數(shù)據(jù)進(jìn)行加密、解密,具有運(yùn)算開銷少、速度快、便于實(shí)現(xiàn)等優(yōu)點(diǎn)。但在網(wǎng)絡(luò)傳輸過程中,密鑰容易泄露,且密鑰的分發(fā)和管理比較困難。在非對(duì)稱加密中,數(shù)據(jù)加密和解密采用不同的密鑰,其原理是基于數(shù)學(xué)上的離散對(duì)數(shù)求解難問題。非對(duì)稱加密不僅能適應(yīng)網(wǎng)絡(luò)的開放性要求,密鑰分發(fā)和管理簡單,而且能方便地實(shí)現(xiàn)數(shù)據(jù)簽名和身份驗(yàn)證等功能。但是,相對(duì)于對(duì)稱密碼而育,公鑰加密算法比較復(fù)雜,實(shí)現(xiàn)的速度比較慢,效率也較低。

由于對(duì)稱加密和非對(duì)稱加密都具有自身的局限性,而彼此恰好可由對(duì)方來彌補(bǔ)自己的弱點(diǎn),本文將對(duì)稱加密與非對(duì)稱加密兩者的優(yōu)點(diǎn)相結(jié)合,提出新的混合加密體制,并將其應(yīng)用于移動(dòng)銀行的數(shù)據(jù)加密中。這種混合密碼體制既能快速地進(jìn)行數(shù)據(jù)加解密,又能很好地解決密鑰分配問題,同時(shí)能對(duì)移動(dòng)終端用戶進(jìn)行數(shù)字簽名和身份驗(yàn)證。

二、基于無線消息的混合加密方案

在移動(dòng)銀行的實(shí)現(xiàn)方式中有一種方式稱為SMS(Short message service)。它利用短消息上下行方式辦理銀行業(yè)務(wù),其主要采用了J2ME中無線消息API來實(shí)現(xiàn)銀行業(yè)務(wù)的辦理。無線消息API擴(kuò)展了
通用連接框架,使用WMA發(fā)送二進(jìn)制消息和文本消息,為移動(dòng)終端設(shè)備提供了短消息服務(wù)支持。

1、數(shù)據(jù)傳輸協(xié)議

SMS采用“點(diǎn)對(duì)點(diǎn)”的命令傳輸方式。由于SMS服務(wù)本身的技術(shù)限制,客戶在交易的過程中所輸入的短信命令信息一般是個(gè)人銀行賬號(hào)、銀行密碼等信息,屬于個(gè)人隱私,這樣在無線網(wǎng)絡(luò)傳輸中面臨嚴(yán)重的安全威脅一短信命令長度短,數(shù)據(jù)量小,通常只有10字節(jié)左右,但安全性要求高阿蕾從效率與安全性綜合考慮,在混合加密體制中,設(shè)計(jì)了基于無線消息傳輸?shù)臄?shù)據(jù)協(xié)議。該協(xié)議由發(fā)送方公鑰R、對(duì)稱加密密文C和摘要簽名T三部分組成。

2、數(shù)據(jù)加密過程

移動(dòng)終端用戶與服務(wù)器需要建立連接。先將非對(duì)稱加密使用的參數(shù)標(biāo)準(zhǔn)發(fā)送給服務(wù)器,當(dāng)服務(wù)器收到請(qǐng)求后,保存非對(duì)稱加密參數(shù)標(biāo)準(zhǔn),并將公鑰Q發(fā)送給移動(dòng)終端用戶魚兩者建立連接后,基于移動(dòng)終端STK卡的加密過程:

(1)在移動(dòng)終端用戶隨機(jī)生成私鑰k,通過私鑰k產(chǎn)生公鑰R。

(2)利用服務(wù)器端的公鑰Q和自己私鑰k,通過雜湊函數(shù)KDF(zx,R)生成數(shù)對(duì)(k1,k2),用于AES對(duì)稱加密密鑰,k2用于對(duì)對(duì)稱加密后的密文進(jìn)行摘要簽名。

(3)生成以公鑰尺,對(duì)稱加密密文C,密文簽名信息丁的無線消息傳輸數(shù)據(jù)協(xié)議?;跓o線消息傳輸?shù)臄?shù)據(jù)加密流程如圖1所示。

3、數(shù)據(jù)解密過程

當(dāng)服務(wù)器端收到移動(dòng)終傳輸來的無線消息數(shù)據(jù)后,解密過程:

(1)首先對(duì)移動(dòng)終端用戶的公鑰R進(jìn)行驗(yàn)證,若失敗,則拒絕明文。

(2)用移動(dòng)終端用戶公鑰R,服務(wù)器的私鑰矗計(jì)算Z=hdR,并驗(yàn)證。若失敗,則拒絕密文。成功則用雜湊函數(shù)KDF(zx,R)生成數(shù)對(duì)(k1,k2)。

(3)通過(2)計(jì)算出來的k2對(duì)密文進(jìn)行簽名,并與傳輸數(shù)據(jù)協(xié)議中簽名T進(jìn)行比較,若不等,則拒絕密文。

(4)通過(2)計(jì)算出來的k1對(duì)密文C進(jìn)行解密,即可得到明文?;跓o線消息傳輸?shù)臄?shù)據(jù)解密流程如圖2所示。

三、 手機(jī)銀行中基于J2ME的混合加密方案

1、傳輸數(shù)據(jù)協(xié)議

移動(dòng)銀行中的USSD( Unstructured supplementary servlce data)非結(jié)構(gòu)化數(shù)據(jù)服務(wù)提供的業(yè)務(wù)包括語音、視頻、圖像等。J2ME中定義了MMAPI(移動(dòng)多媒體)來提供對(duì)多媒體編程的支持,這種方式的數(shù)據(jù)傳輸量相對(duì)無線網(wǎng)絡(luò)比較大。該種方式使用的是語音信道,雖然操作方便和價(jià)格低廉,但在數(shù)據(jù)傳輸方面采用語音信道傳輸,數(shù)據(jù)量大,通常是kB數(shù)據(jù)量,很容易受到外界干擾,數(shù)據(jù)安全性要求高。根據(jù)這一特點(diǎn),設(shè)計(jì)基于移動(dòng)多媒體移動(dòng)銀行的數(shù)據(jù)協(xié)議;對(duì)稱密鑰密文M、對(duì)稱加密密文C和摘要簽名T。

2、混合加密過程

移動(dòng)終端用戶首先與服務(wù)器端建立連接,將自己公鑰R和非對(duì)稱加密參數(shù)標(biāo)準(zhǔn)發(fā)送給服務(wù)器;服務(wù)器收到公鑰后,將服務(wù)器的公鑰Q發(fā)送給移動(dòng)終端用戶。雙方都知道對(duì)方的公鑰后,移動(dòng)終端STK卡的加密過程。

(1)移動(dòng)終端用戶首先設(shè)置對(duì)稱加密密鑰,采用AES算法對(duì)移動(dòng)終端用戶發(fā)送的明文研加密,生成對(duì)稱加密密文C。

(2)利用移動(dòng)終端用戶的私鑰屜與服務(wù)器公鑰Q,對(duì)AES的密鑰進(jìn)行非對(duì)稱加密,生成對(duì)稱密鑰密文M。

(3)將發(fā)送的明文通過SHA-I安全散列算法,利用移動(dòng)終端用戶的私鑰志,生成摘要簽名T。

(4)生成對(duì)稱密鑰密文M,對(duì)稱加密密文C,摘要簽名T的手機(jī)銀行數(shù)據(jù)協(xié)議,基于手機(jī)銀行的混合加密流程如圖3所示。

3、混合解密過程

當(dāng)服務(wù)器收到移動(dòng)終端用戶傳輸來的移動(dòng)多媒體數(shù)據(jù)后,解密過程:

(1)服務(wù)器選用自己的私鑰d和移動(dòng)終端用戶的公鑰R,解密對(duì)稱加密密鑰M。

(2)利用(1)的結(jié)果對(duì)多媒體數(shù)據(jù)協(xié)議中對(duì)稱加密密文C進(jìn)行解密,得到明文研。

(3)利用(2)生成的明文,采用SHA-1安全散列算法生成數(shù)字摘要簽名。

(4)將多媒體數(shù)據(jù)協(xié)議中摘要簽名T與(3)的結(jié)果進(jìn)行比較,若相等,則接受明文,否則,則拒絕明文?;谑謾C(jī)銀行的混合解密流程如圖4所示。

四、手機(jī)銀行中基于J2ME的混合加密方案分析

手機(jī)銀行中基于J2ME的混合加密方案中,由于數(shù)據(jù)協(xié)議中包含對(duì)稱加密密鑰密文,通信雙方完成第一次通信后,可以保存對(duì)稱加密密碼,以后的數(shù)據(jù)可以直接采用AES算法加密,這樣可以很大程度上提高混合加密效率?;跓o線消息混合加密方案安全性十分高,不存在移動(dòng)終端密鑰安全問題?;趦煞N混合加密方案比較如表1所示。

實(shí)驗(yàn)中采用的計(jì)算機(jī)環(huán)境配置為:1G內(nèi)存,1.60GHz主頻,移動(dòng)銀行客戶端采用了WTK2.5.2模擬器來進(jìn)行開發(fā);在混合加密的對(duì)稱算法采用AES中CBC模式加密,非對(duì)稱算法采用了橢圓曲線加密算法,摘要簽名采用了SHA-1安全散列算法。使用Matlab7.0對(duì)多次試驗(yàn)進(jìn)行的結(jié)果分析,得出基于無線短消息、移動(dòng)多媒體數(shù)據(jù)混合加密時(shí)間與數(shù)據(jù)量關(guān)系,如圖5所示。

從圖5中可以看出,兩種加密方案在數(shù)據(jù)量為1.0~1.2 kB存在交點(diǎn),說明基于無線消息混合加密適合于小于l kB字節(jié)加密,而基于移動(dòng)多媒體的混合加密適合大于1.2 kB字節(jié)數(shù)據(jù)加密。實(shí)驗(yàn)結(jié)果與文中提出的兩種混合加密方案適用范圍一致。

基于這兩種形式的加密發(fā)揮了混合加密的整體優(yōu)勢(shì),預(yù)期將在移動(dòng)銀行的數(shù)據(jù)傳輸加密領(lǐng)域得到廣泛應(yīng)用,為移動(dòng)銀行的發(fā)展起到至關(guān)重要的作用。

小知識(shí)之J2ME

J2ME(Java Platform,Micro Edition),是為機(jī)頂盒、移動(dòng)電話和PDA之類嵌入式消費(fèi)電子設(shè)備提供的Java語言平臺(tái),包括虛擬機(jī)和一系列標(biāo)準(zhǔn)化的Java API。它和Java SE、Java EE一起構(gòu)成Java技術(shù)的三大版本,并且同樣是通過JCP(Java Community Process)制訂的。