随着移动设备与有线通信网之间数据交互的需求不断增加,移动通信系统中的安全问题正在受到国际上高度的重视和广泛的研究。但目前由于受到移动、设备计算性能的限制和目前无线通信网络的带宽限制,如果将有线网络和计算机平台上使用的信息加密算法直接应用于移动通信系统是不实际的。为此,我们提出了一种用于移动数据通信的无条件安全加密方案。

一、移动数据通信的无条件安全加密方案

1、移动数据通信的无条件安全加密方案状态机制

出于通用性和扩展性的考虑,在移动设备与中心服务器的交互中,通常采用HTTP通信方式。但由于HTTP是无状态协议,为满足数据交互的需要,必须引入一种用以在客户端与服务器之间保持状态的解决方案。这样操作的缺点就是客户端的工作量太大,为了尽可能地减轻客户端工作量,我们只有使用基于服务器端的Session机制,即在中心服务器上,使用一种类似散列表的结构保存信息。

当程序需要为某个客户端的请求创建一个Session时,服务器首先检查该客户端提交的表单里是否已包含一个Session标识,即Session ID,并检索服务器上是否存有对应的Session,如有则说明已经为此客户端创建过Session,且可用(未过期),服务器就按照Session ID将对应的Session检索出来使用;如不符合则返回错误信息;如果客户端请求不包含Session ID,则为此客户端创建一个Session,并且生成一个与此Session相关联的Sesnion ID,在本次响应中返回给客户端保存。

对于每个特定移动用户而言,由于其对数据交换的要求往往集中在一定时间之内,出于安全性和节约资源的考虑,可在服务器脚本中设置相对较短的Session在无响应状态下的保持时间,在一定时间(如十分钟)内如果客户端与服务器无交互,则Session自动取消,服务器不再保留这次执行过程的状态信息。

2、移动数据通信无条件安全加密方案使用的加密算法

信息加密的目的在于将可读信息经过一组规则变换为无法识别的内容,使得恶意攻击者即使截获也无法阅读。这种变换的规则即称之为加密算法。以密钥为基准,密码体制可分为对称密钥加密体制和非对称密钥加密体制。由于对称密钥加密与非对称密钥加密各有所长,目前网络中的密钥加密普遍采用混合加密体制,即密钥传送采用非对称密钥加密;而数据加密则采用对称密钥加密。移动通信系统有其固有的特点,其加密算法比一般通信网络有更高的要求,可以归纳如下:

(1)良好的安全性能;

(2)较高的算法执行效率;

(3)有限的密文长度;

(4)较低的计算负荷和通信负荷。

非对称密钥加密虽然不存在密钥管理问题,但算法复杂、软件实现效率很低,且移动设备与服务器之间敏感数据的传输(如用户注册、登录、提交订单等)在一次连接过程中往往只需有限次数甚至1次,因此本文在保证安全性的基础上采用了基于对称密钥加密的一次一密数据加密方案。根据信息论的观点,对于观察密文和前后明文的不确定性相等,即观察密文不会为之提供任何有助于破译密码的信息,因此一次一密一的对称密钥加密方案可称为是无条件且安全的。经过对现有算法的比较和实验,实现方案时选择了AES加密算法和XXTEA加密算法。

AES加密算法作为新一代的数据加密标准汇聚了强安全性、高性能、高效率、易用和灵活等优点。AES设计有三个密钥长度:128,192,256位,相对而言,AES的128密钥比DES的56密钥强1021倍。AES加密算法主要包括三个方面:轮变化、圈数和密钥扩展。

TEA(Tiny Encryption Algorithm)是一种小型的对称加密解密算法,支持128位密码,与BlowFish一样TEA每次只能加密/解密8字节数据。TEA特点是速度快、效率高,实现也非常简单。XXTEA使用跟 Block TEA 相似的结构,但在处理块中每个字时利用了相邻字。它利用一个更复杂的 MX 函数代替了XTEA 轮循函数,MX 使用2个输入量。

在候选方案中选择AES和XXTEA作为对称加密算法,是由于AES算法作为新一代的数据加密标准汇聚了强安全性、高性能、高效率、易用和灵活等优点,并已证明在嵌入式系统中表现优秀;而XXTEA算法安全性较高,且由于无需查表或S盒,因此初始化时间短、算法快速,适用于Web开发中,但在实际开发中目前应用尚少。选择这两种算法确保了加密操作和解密操作能在客户端的有限空间环境中和服务器端有效执行,有较高实验价值和实用价值。

3、密钥发布与管理

密钥是控制信息加解密算法实现的关键信息。对称密钥加密的薄弱环节,亦即需要解决的问题,是共享密钥的发布和管理。

在该无条件安全加密方案中,服务器端与所有客户端共享n种加解密方式,依次为Co,C1,…,C1-1。令待发布的密钥为X,则服务器端密钥发布过程可描述如下:

(1)收到客户端请求后,服务器为其随机生成0~26 535之间的整数r,得到m=r mod n。

(2)选取m对应的加密方式,即Go如果该加密方式需要参数,则随机生成,并用G加密尺,令参数为P,加密后的密钥为ke。

(3)将(r,P,ke)的长度按约定补足至(C1,…,c1,…cn-1)所对应的序列(随机数,参数,密钥)的固定长度,其中补足的部分随机生成口令补足后的序列为I,并将I1传送到客户端。

客户端获取密钥的算法为以上算法的逆操作,可描述如下:

(1)从服务器端获取Il序列并读取随机数r。

(2)得到m=r mod n,获得其对应的加密方式为Cn,如果该加密方式需要参数,则从服务器端获取的序列中读取参数P。

(3)以参数P的加密方式Cm解密km得到K。

客户端获取密钥后,以某种事先商定的加密算法加密敏感数据信息,将加密后的序列I2传送到服务器端。服务器端通过Session ID检验客户端临时身份,然后使用刚才约定的密钥解密敏感数据信息。

在本文所述的密钥发布方案中,有n种方式供随机选择。在具体实现中,C、C1、C2、C3分别设为XXTEA固定密钥、XXTEA可变密钥(可变密钥由服务器随机生成,即密钥发布中的参数P)、AES固定密钥、AES可变密钥。当然,也可以采用此方案的构架根据实际情况选择具体加密方式。

二、移动数据通信的无条件安全加密方案性能分析

1、移动数据通信的无条件安全加密方案安全性分析

(1)在该方案中,明文中不出现任何用户关键字,且在一次执行过程中先后出现在无线接口上的两个序列(I1和I2)对于攻击者而言无法提供任何可关联的信息,因此,攻击者无法关联同一次执行过程中的消息,由于一次性随机数的存在,更无法关联不同执行过程中的消息,从而有效地保护了用户的身份和位置匿名性。

(2)根据所选加密算法的不同以及选择使用固定密钥或可变密钥,对不同的加解密方案,参数的长度可能不同,最后发送给客户端的字节数也可能不同,这样可能降低密码分析的难度,引入安全漏洞,为此,将长度较短的传输长度补足为固定长度再进行加密。

(3)由于方案中共享密钥并不储存在手机中,也不保存在服务器数据库内,而是在每次数据交换执行过程中随机生成,因此,即使用户设备(假定为手机)失窃或者服务器被入侵,安全性也能够得到较好的保证。

(4)由于方案中传输的信息不直接包含共享密钥,而I1中的随机数又是一次性的,可保证密钥的新鲜性,所以敌手即使获得了上次的共享密钥,也无法通过其推测当前和以后的密钥,因此该方案可以提供无条件前向安全性。

(5)由于一次性随机数的引入和Session ID的检验,敌手无法通过伪装客户端或重发密文攻击获得认证。

2、移动数据通信的无条件安全加密方案执行效率分析

与混合加密体制相比,这里所述的方案无需可信第三方的参与,且避免了大素数生成等费时操作,因此大大提高了效率,增加了在移动平台上的可用性,而方案中包含的操作,如简单算术操作和对称密钥加解密操作,对于服务器和移动设备而言都是容易实现的,且计算量也是可以接受的。

(1)计算量:移动客户端需要一次移位操作,一次对称密钥解密操作。一次对称密钥加密操作;服务器端一次随机数生成,需要一次移位操作,一次对称密钥加密操作,一次对称密钥解密操作。

(2)交互次数:移动客户与服务网络需要进行两次交互。

(3)消息数目:需要2条不同的消息。

三、实验分析及结果

实验中,客户端用J2ME实现,模拟器为Sony Erics-son公司提供的WTK2.2。服务器工作站的CPU为IntelXeon 3.OOGHz,实现算法的编程语言为C#。对于密钥发布过程的执行进行多次测试,并统计了其中几种加密方式各自发布过程的平均响应时间。

真机测试使用的测试平台为SonyEricsson W550手机,由于需要加密的数据长度不固定,这里给出了加密lKbit数据的平均时间。

与网络通信所用的时间相比,毫秒级的程序执行时间是可以接受的,完全可以满足实际系统的需要。该方案已经应用于一个移动个人信息服务系统的用户认证模块中,表现良好。

小知识之数据通信

数据通信是通信技术和计算机技术相结合而产生的一种新的通信方式。要在两地间传输信息必须有传输信道,根据传输媒体的不同,有有线数据通信与无线数据通信之分。但它们都是通过传输信道将数据终端与计算机联结起来,而使不同地点的数据终端实现软、硬件和信息资源的共享。