随着经济不断发展,特别是近几年来互联网的不断发展,人们对信息化的要求也越来越高,手机银行将会发展为未来主要的支付手段之一。与此同时,手机银行的安全性是人们重点关注的问题,如何建立信息安全机制对手机银行的发展至关重要。为此我们在考虑到手机银行实现方式、传输数据量等因素的过程中,提出了基于基于J2ME的混合加密方案。

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

1、J2ME技术

J2ME是为机顶盒、移动电话和PDA之类嵌入式消费电子设备提供的Java语言平台,包括虚拟机和一系列标准化的Java API。这些设备可以在有限连接设备配置(CI,DC)提供的完整Java运行环境中,使用一系列Java API编程MIDP(移动信息设备文件)简表是一个应用于无线移动设备的J2ME简表,MIDP基于CLDC之上构建,除了继承CLDC部分特性之外还具备自身的独立特性,它可以通过可选包进行扩展,比较常见两种类型的可选包为无线消息API(Wire-less messaging API,WMA l.1)和移动多媒体API(Mobile media API,JSR135)。WMA 1.1主要提供发送和接收短消息的服务;移动多媒体API提供了视频和音频的播放、图像捕获及声音的记录等。

2、混合加密技术

按密码理论与技术来分,加密技术分为对称加密与非对称加密。在对称加密中,双方使用同一个密钥对数据进行加密、解密,具有运算开销少、速度快、便于实现等优点。但在网络传输过程中,密钥容易泄露,且密钥的分发和管理比较困难。在非对称加密中,数据加密和解密采用不同的密钥,其原理是基于数学上的离散对数求解难问题。非对称加密不仅能适应网络的开放性要求,密钥分发和管理简单,而且能方便地实现数据签名和身份验证等功能。但是,相对于对称密码而育,公钥加密算法比较复杂,实现的速度比较慢,效率也较低。

由于对称加密和非对称加密都具有自身的局限性,而彼此恰好可由对方来弥补自己的弱点,本文将对称加密与非对称加密两者的优点相结合,提出新的混合加密体制,并将其应用于移动银行的数据加密中。这种混合密码体制既能快速地进行数据加解密,又能很好地解决密钥分配问题,同时能对移动终端用户进行数字签名和身份验证。

二、基于无线消息的混合加密方案

在移动银行的实现方式中有一种方式称为SMS(Short message service)。它利用短消息上下行方式办理银行业务,其主要采用了J2ME中无线消息API来实现银行业务的办理。无线消息API扩展了
通用连接框架,使用WMA发送二进制消息和文本消息,为移动终端设备提供了短消息服务支持。

1、数据传输协议

SMS采用“点对点”的命令传输方式。由于SMS服务本身的技术限制,客户在交易的过程中所输入的短信命令信息一般是个人银行账号、银行密码等信息,属于个人隐私,这样在无线网络传输中面临严重的安全威胁一短信命令长度短,数据量小,通常只有10字节左右,但安全性要求高阿蕾从效率与安全性综合考虑,在混合加密体制中,设计了基于无线消息传输的数据协议。该协议由发送方公钥R、对称加密密文C和摘要签名T三部分组成。

2、数据加密过程

移动终端用户与服务器需要建立连接。先将非对称加密使用的参数标准发送给服务器,当服务器收到请求后,保存非对称加密参数标准,并将公钥Q发送给移动终端用户鱼两者建立连接后,基于移动终端STK卡的加密过程:

(1)在移动终端用户随机生成私钥k,通过私钥k产生公钥R。

(2)利用服务器端的公钥Q和自己私钥k,通过杂凑函数KDF(zx,R)生成数对(k1,k2),用于AES对称加密密钥,k2用于对对称加密后的密文进行摘要签名。

(3)生成以公钥尺,对称加密密文C,密文签名信息丁的无线消息传输数据协议。基于无线消息传输的数据加密流程如图1所示。

3、数据解密过程

当服务器端收到移动终传输来的无线消息数据后,解密过程:

(1)首先对移动终端用户的公钥R进行验证,若失败,则拒绝明文。

(2)用移动终端用户公钥R,服务器的私钥矗计算Z=hdR,并验证。若失败,则拒绝密文。成功则用杂凑函数KDF(zx,R)生成数对(k1,k2)。

(3)通过(2)计算出来的k2对密文进行签名,并与传输数据协议中签名T进行比较,若不等,则拒绝密文。

(4)通过(2)计算出来的k1对密文C进行解密,即可得到明文。基于无线消息传输的数据解密流程如图2所示。

三、 手机银行中基于J2ME的混合加密方案

1、传输数据协议

移动银行中的USSD( Unstructured supplementary servlce data)非结构化数据服务提供的业务包括语音、视频、图像等。J2ME中定义了MMAPI(移动多媒体)来提供对多媒体编程的支持,这种方式的数据传输量相对无线网络比较大。该种方式使用的是语音信道,虽然操作方便和价格低廉,但在数据传输方面采用语音信道传输,数据量大,通常是kB数据量,很容易受到外界干扰,数据安全性要求高。根据这一特点,设计基于移动多媒体移动银行的数据协议;对称密钥密文M、对称加密密文C和摘要签名T。

2、混合加密过程

移动终端用户首先与服务器端建立连接,将自己公钥R和非对称加密参数标准发送给服务器;服务器收到公钥后,将服务器的公钥Q发送给移动终端用户。双方都知道对方的公钥后,移动终端STK卡的加密过程。

(1)移动终端用户首先设置对称加密密钥,采用AES算法对移动终端用户发送的明文研加密,生成对称加密密文C。

(2)利用移动终端用户的私钥屉与服务器公钥Q,对AES的密钥进行非对称加密,生成对称密钥密文M。

(3)将发送的明文通过SHA-I安全散列算法,利用移动终端用户的私钥志,生成摘要签名T。

(4)生成对称密钥密文M,对称加密密文C,摘要签名T的手机银行数据协议,基于手机银行的混合加密流程如图3所示。

3、混合解密过程

当服务器收到移动终端用户传输来的移动多媒体数据后,解密过程:

(1)服务器选用自己的私钥d和移动终端用户的公钥R,解密对称加密密钥M。

(2)利用(1)的结果对多媒体数据协议中对称加密密文C进行解密,得到明文研。

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

(4)将多媒体数据协议中摘要签名T与(3)的结果进行比较,若相等,则接受明文,否则,则拒绝明文。基于手机银行的混合解密流程如图4所示。

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

手机银行中基于J2ME的混合加密方案中,由于数据协议中包含对称加密密钥密文,通信双方完成第一次通信后,可以保存对称加密密码,以后的数据可以直接采用AES算法加密,这样可以很大程度上提高混合加密效率。基于无线消息混合加密方案安全性十分高,不存在移动终端密钥安全问题。基于两种混合加密方案比较如表1所示。

实验中采用的计算机环境配置为:1G内存,1.60GHz主频,移动银行客户端采用了WTK2.5.2模拟器来进行开发;在混合加密的对称算法采用AES中CBC模式加密,非对称算法采用了椭圆曲线加密算法,摘要签名采用了SHA-1安全散列算法。使用Matlab7.0对多次试验进行的结果分析,得出基于无线短消息、移动多媒体数据混合加密时间与数据量关系,如图5所示。

从图5中可以看出,两种加密方案在数据量为1.0~1.2 kB存在交点,说明基于无线消息混合加密适合于小于l kB字节加密,而基于移动多媒体的混合加密适合大于1.2 kB字节数据加密。实验结果与文中提出的两种混合加密方案适用范围一致。

基于这两种形式的加密发挥了混合加密的整体优势,预期将在移动银行的数据传输加密领域得到广泛应用,为移动银行的发展起到至关重要的作用。

小知识之J2ME

J2ME(Java Platform,Micro Edition),是为机顶盒、移动电话和PDA之类嵌入式消费电子设备提供的Java语言平台,包括虚拟机和一系列标准化的Java API。它和Java SE、Java EE一起构成Java技术的三大版本,并且同样是通过JCP(Java Community Process)制订的。