手機銀行中基于J2ME的混合加密方案

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

一、J2ME及混合加密技術概念

1、J2ME技術

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

2、混合加密技術

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

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

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

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

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

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

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

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

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

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

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

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

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

(1)首先對移動終端用戶的公鑰R進行驗證,若失敗,則拒絕明文。

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

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

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

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

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

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

2、混合加密過程

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

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

(2)利用移動終端用戶的私鑰屜與服務器公鑰Q,對AES的密鑰進行非對稱加密,生成對稱密鑰密文M。

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

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

3、混合解密過程

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

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

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

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

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

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

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

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

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

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

小知識之J2ME

J2ME(Java Platform,Micro Edition),是為機頂盒、移動電話和PDA之類嵌入式消費電子設備提供的Java語言平臺,包括虛擬機和一系列標準化的Java API。它和Java SE、Java EE一起構成Java技術的三大版本,并且同樣是通過JCP(Java Community Process)制訂的。