新闻  |   论坛  |   博客  |   在线研讨会
移动数据通信的无条件安全加密方案设计——AET/2008 34(1)
canso | 2009-02-26 09:32:22    阅读:1241   发布文章

    摘 要:  随着移动设备与有线通信网之间数据交互的需求不断增加,移动增值服务中数据安全的重要性也在不断提高。提出了一种移动数据通信的无条件安全加密方案,设计中既满足了移动平台的有限计算和网络性能,又具有良好的安全性。最后给出了方案的性能分析和实验结果。
    关键词:  移动数据通信; 无条件安全; 密钥发布

 

    随着移动设备的用途由单一的语音通信向语音与数据通信相结合转变,移动增值服务平台中移动设备或便携设备之间以及移动设备与有线数据通信网之间的数据交换越来越频繁,移动通信系统中的安全问题正在受到国际上高度的重视和广泛的研究。但由于受到移动设备计算性能的限制和目前无线通信网络的带宽限制,将有线网络和计算机平台上使用的信息加密算法直接应用于移动通信系统是不实际的。通过对已有的信息加密体制的研究和移动平台的开发实践,针对移动通信系统的数据交换,本文提出一种应用层的移动数据传输无条件安全加密方案。它在执行效率上有相当的优势,并能满足系统的安全要求。
1 移动数据通信的无条件安全加密方案
1.1 状态机制

    在移动设备与中心服务器的交互中,出于通用性和扩展性的考虑,通常采用HTTP通信方式。但由于HTTP是无状态协议,为满足数据交互的需要,必须引入一种用以在客户端与服务器之间保持状态的解决方案。为了尽可能地减轻客户端工作量,笔者使用基于服务器端的Session机制,即在中心服务器上,使用一种类似散列表的结构保存信息。
    当程序需要为某个客户端的请求创建一个Session时,服务器首先检查该客户端提交的表单里是否已包含一个Session标识,即Session ID,并检索服务器上是否存有对应的Session,如有则说明已经为此客户端创建过Session,且可用(未过期),服务器就按照Session ID将对应的Session检索出来使用;如不符合则返回错误信息;如果客户端请求不包含Session ID,则为此客户端创建一个Session,并且生成一个与此Session相关联的Session ID,在本次响应中返回给客户端保存。
对于每个特定移动用户而言,由于其对数据交换的要求往往集中在一定时间之内,出于安全性和节约资源的考虑,可在服务器脚本中设置相对较短的Session在无响应状态下的保持时间,在一定时间(如十分钟)内如果客户端与服务器无交互,则Session自动取消,服务器不再保留这次执行过程的状态信息。
1.2 加密算法
    信息加密的目的在于将可读信息(明文)经过一组规则变换为无法识别的内容(密文),使得恶意攻击者即使截获也无法阅读。这种变换的规则即称之为加密算法。以密钥为基准,密码体制可分为对称密钥(私钥)加密体制和非对称密钥(公钥)加密体制[1-2]。由于对称密钥加密与非对称密钥加密各有所长,目前网络中的密钥加密普遍采用混合加密体制,即密钥传送采用非对称密钥加密,而数据加密则采用对称密钥加密。移动通信系统有其固有的特点,其加密算法比一般通信网络有更高的要求,可以归纳如下:
    (1) 良好的安全性能;
    (2) 较高的算法执行效率;
    (3) 有限的密文长度;
    (4) 较低的计算负荷和通信负荷。
    非对称密钥加密虽然不存在密钥管理问题,但算法复杂、软件实现效率很低,且移动设备与服务器之间敏感数据的传输(如用户注册、登录、提交订单等)在一次连接过程中往往只需有限次数甚至1次,因此本文在保证安全性的基础上采用了基于对称密钥加密的“一次一密”数据加密方案。根据信息论的观点,对手观察密文和前后明文的不确定性相等,即观察密文不会为之提供任何有助于破译密码的信息,因此“一次一密”的对称密钥加密方案可称为是无条件且安全的[3]。经过对现有算法的比较和实验,实现方案时选择了AES算法和XXTEA算法。
    高级加密标准(AES)是在数据加密标准(DES)应用二十年后已无法适应当前分布式开放网络对数据加密的要求的情况下,通过公开征集和筛选,于2000年10月最终确定的。该算法是比利时人Joan Daeman和Vincent Rijmen提交的Rijndael算法,算法充分运用了扩散和混淆技术,并使用128/192/256位这三种可变长度的密钥,对128位分组数据进行加密。算法包括:根据不同的分组长度确定的轮变化和非线性层、线性混合层及密钥加密层组成的圈变化[4]。对于穷举攻击而言,128位长度的密钥在目前已经达到了计算安全性的要求。
    1994年剑桥计算机实验室的 David Wheeler 和 Roger Needham 设计了TEA 算法,使用128位的密钥为 64 位的信息块进行加密,并使用一个来源于黄金比率的常数δ为倍数,以保证每一轮加密各不相同。之后设计者针对其缺陷提出了TEA 的升级版本XTEA(也被称为“tean”)和Block TEA,并于1998年给出了Block TEA 算法的修订版,即 XXTEA。XXTEA 使用与Block TEA相似的结构,但在处理块中每个字时使用相邻字,并利用一个更复杂的即使用两个输入函数的MX函数代替 XTEA轮循函数[5-6]
    在候选方案中选择AES和XXTEA作为对称加密算法,是由于AES算法作为新一代的数据加密标准汇聚了强安全性、高性能、高效率、易用和灵活等优点,并已证明在嵌入式系统中表现优秀;而XXTEA 算法安全性较高,且由于无需查表或S盒,因此初始化时间短、算法快速,适用于Web开发中,但在实际开发中目前应用尚少。选择这两种算法确保了加密操作和解密操作能在客户端的有限空间环境中和服务器端有效执行,有较高实验价值和实用价值。
1.3 密钥发布与管理
    密钥是控制信息加解密算法实现的关键信息。对称密钥加密的薄弱环节,亦即需要解决的问题,是共享密钥的发布和管理。
    在该无条件安全加密方案中,服务器端与所有客户端共享n种加解密方式,依次为C0, C1, …, Cn-1。令待发布的密钥为K,则服务器端密钥发布过程可描述如下:
    (1) 收到客户端请求后,服务器为其随机生成0~26 535之间的整数r,得到m = r mod n。
    (2) 选取m对应的加密方式,即Cm。如果该加密方式需要参数,则随机生成,并用Cm加密K,令参数为P,加密后的密钥为Ke。
    (3) 将(r, P, Ke)的长度按约定补足至C0, C1, …, Cn-1所对应的序列(随机数,参数,密钥)的固定长度,其中补足的部分随机生成。令补足后的序列为I1,并将I1传送到客户端。
    客户端获取密钥的算法为以上算法的逆操作,可描述如下:
    (1) 从服务器端获取I1序列并读取随机数r。
    (2) 得到m = r mod n,获得其对应的加密方式为Cm,如果该加密方式需要参数,则从服务器端获取的序列中读取参数P。
    (3) 以参数P的加密方式Cm 解密Ke 得到K。
    客户端获取密钥后,以某种事先商定的加密算法加密敏感数据信息,将加密后的序列I2传送到服务器端。服务器端通过Session ID检验客户端临时身份,然后使用刚才约定的密钥解密敏感数据信息。
   在本文所述的密钥发布方案中,有n种方式供随机选择。在具体实现中,C0、C1、C2、C3分别设为XXTEA固定密钥、XXTEA可变密钥(可变密钥由服务器随机生成,即密钥发布中的参数P)、AES固定密钥、AES可变密钥。当然,也可以采用此方案的构架根据实际情况选择具体加密方式。
2 性能分析
2.1 安全性分析

    (1)在该方案中,明文中不出现任何用户关键字,且在一次执行过程中先后出现在无线接口上的两个序列(I1和I2)对于攻击者而言无法提供任何可关联的信息,因此,攻击者无法关联同一次执行过程中的消息,由于一次性随机数的存在,更无法关联不同执行过程中的消息,从而有效地保护了用户的身份和位置匿名性。
    (2)根据所选加密算法的不同以及选择使用固定密钥或可变密钥,对不同的加解密方案,参数的长度可能不同,最后发送给客户端的字节数也可能不同,这样可能降低密码分析的难度,引入安全漏洞,为此,将长度较短的传输长度补足为固定长度再进行加密。
    (3) 由于方案中传输的信息不直接包含共享密钥,而I1中的随机数又是一次性的,可保证密钥的新鲜性,所以敌手即使获得了上次的共享密钥,也无法通过其推测当前和以后的密钥,因此该方案可以提供无条件前向安全性。
    (4) 由于一次性随机数的引入和Session ID的检验,敌手无法通过伪装客户端或重发密文攻击获得认证。
    (5) 由于方案中共享密钥并不储存在手机中,也不保存在服务器数据库内,而是在每次数据交换执行过程中随机生成,因此,即使用户设备(假定为手机)失窃或者服务器被入侵,安全性也能够得到较好的保证。
2.2  执行效率分析
    与混合加密体制相比,这里所述的方案无需可信第三方的参与,且避免了大素数生成等费时操作,因此大大提高了效率,增加了在移动平台上的可用性,而方案中包含的操作,如简单算术操作和对称密钥加解密操作,对于服务器和移动设备而言都是容易实现的,且计算量也是可以接受的。
    (1) 计算量:移动客户端需要一次移位操作,一次对称密钥解密操作,一次对称密钥加密操作;服务器端一次随机数生成,需要一次移位操作,一次对称密钥加密操作,一次对称密钥解密操作。
    (2) 交互次数:移动客户与服务网络需要进行两次交互。
    (3) 消息数目:需要2条不同的消息。
3 实验及结果
    实验中,客户端用J2ME实现,模拟器为Sony Ericsson公司提供的WTK2.2。服务器工作站的CPU为Intel Xeon 3.00GHz,实现算法的编程语言为C#。对于密钥发布过程的执行进行多次测试,并统计了其中几种加密方式各自发布过程的平均响应时间。测试结果如表1和表2所示。

 

 


    真机测试使用的测试平台为SonyEricsson W550手机,由于需要加密的数据长度不固定,这里给出了加密1Kbit数据的平均时间。
    与网络通信所用的时间相比,毫秒级的程序执行时间是可以接受的,完全可以满足实际系统的需要。该方案已经应用于一个移动个人信息服务系统的用户认证模块中,表现良好。
    笔者针对移动通信的特点和实际情况,提出了一种移动数据的无条件安全传输方案,并给出了方案的安全性分析、效率分析和测试数据。方案设计中注重简洁有效,既保证了安全性能,又避免了费时运算,满足了移动通信系统的实用要求。该方案既可以直接应用于用户认证,也可以经过修改和扩展集成到各种移动通信增值服务平台的数据交互模块中。
参考文献
[1]  ATUL K. 密码学与网络安全[M]. 北京:清华大学出版社,2005.
[2]  FERGUSON N, SCHNEIER B.密码学实践[M]. 北京:电子工业出版社,2005.
[3]  孙淑玲.应用密码学[M]. 北京:清华大学出版社,2004.
[4]  NIST. Advanced encryption standard (AES)[S]. Federal Information Processing Standards Publication, 2001
[5]  RUSSELL M D. Tinyness:an overview of TEA and related ciphers[EB/OL]. http://www-users.cs.york.ac.uk/matthew/TEA/, 2004.

*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
推荐文章
最近访客