一种混沌手机令牌网络身份认证系统的设计与实现*
2014-10-31丘嵘,刘威
丘 嵘,刘 威
(1.广东科学技术职业学院,广东广州 510640;2.杭州电子科技大学电子信息学院,浙江 杭州 310018)
0 引言
动态密码是根据专门的算法生成一个不可预测的随机数字组合,每个密码只能使用一次,目前主要被应用在电信运营商、网银、网游与企业等领域。动态密码有短信密码、硬件令牌、手机令牌3种常见的终端形式。混沌动态密码是指利用混沌的初值敏感性、非周期性和不可预测性,构建动态密码算法,生成6~8位的不断变化的随机字符组合。混沌动态密码具备动态密码的全部特性,包括容不可预测性和短生存周期性,已有类似于混沌动态密码算法的相关算法应用于身份认证的报道[1-2]。
目前,动态密码算法主要可分为两类:同步的基于时间的动态密码算法和异步的基于挑战响应的动态密码算法。基于时间的动态密码算法,安全性高于基于挑战响应的动态密码算法。但基于时间的动态密码算法,对服务器同步时钟的要求也较高。基于挑战响应的动态密码算法,对服务器时钟没有任何要求,安全性取决于动态密码的更新速率以及动态密码算法。
手机令牌是动态密码的一种常见终端形式,具有安全性高、易于携带和零成本等特性。目前成熟的手机令牌有,iKEY,RSA手机令牌。因此可以预计手机令牌将成为未来网络身份认证的主流形式。混沌手机令牌是能够产生混沌动态密码的令牌终端,本文提出了一种新的混沌动态密码算法,采用挑战响应机制,在研究了混沌动态密码算法的基础上,以Lorenz超混沌系统作为密码源,设计实现了一种新的基于混沌手机令牌的网络身份认证系统。
1 挑战码的生成
1.1 生成随机数
挑战码是由服务器随机产生的一组的由1~8位数字组成的数字。本文介绍的挑战码生成算法,实质上应用的是一种基于混沌的随机数算法。挑战码生成算法主要包括连续混沌系统离散量化、构建挑战码两个步骤。
对于连续的微分系统dx/dt=f(x),运用欧拉微分离散方法对其进行离散:
可得其迭代方程:
对式(2)进行迭代运算,把每次迭代值x(n)的小数部分转化为二进制:
式(3)中的每一位为“1”或“0”,抽取每次迭代值二进制小数部分的一位或多位可生产所需的随机数。
1.2 构建挑战码
如表1所示,为了使挑战码在1~8位之间均匀跳变,建立了7个查找表。每个索引值对应一个查找表,值域是查找的取值范围。表1以一个四维的混沌系统为例,说明了值域的求值规则。
索引值也是基于查表获取的,索引值查找表如下所示:
查找表的长度为28。先获取取值为[0,27]的随机数。然后检索索引值查找表,获取索引值。
表1 挑战码生成规则Table 1 Rule generation for challenge
2 动态密码的产生
动态密码是由动态密码终端产生的一组6~8位随机字符组合。动态密码的产生与前述挑战码的生成相似,区别在于对量化后的序列进行序列映射和密钥表置乱后再生产动态密码[3]。
2.1 序列映射
序列映射的目的有两个:其一,为了保证算法的安全性,不直接将抽取的序列用于检索动态密码;其二,混沌迭代运算结果变量组存储的是浮点型的数据,不便于后续查表处理,故需要将其映射为正整数,作为检索密钥表的索引值。举例的序列映射方法如下:
式中,index为映射输出,作为动态密钥索引向量,abs为取绝对值操作,a为乘积因子,b为位数为k的16进制位与模板。实践证明,在取得合适的参数a,b时,该方法能将抽取的混沌迭代运算结果变量组var(x,y,z,…),有效的映射为一组(0,2k-1)之间取值的伪随机自然数。序列映射的方法多种多样,不局限于此。
2.2 置乱密钥表
密钥表通过混沌流密码算法加密处理,每次使用时,将加密密钥表读出,解密后,供索引值索引[4]。密钥表推荐使用常见字符,如 A-F,a-f,标点符号组成,也可采用汉字表。在算法完全公开的情况下,应该保证密钥表的隐密性。密钥表常以二进制代码的形式编译至程序中,安全的方式是动态的对密钥表进行同步更新或对密钥表信息进行加密处理。如式(6)所示,若位与模板b的位数为k,则序列映射的查表检索空间为2k。此时密钥表可根据需要填充置乱的2k个字符或汉字。
2.3 生成动态密码
根据动态密钥索引向量,索引密钥表。记密钥表为T,k为位与模板b的位数,索引向量为index,密钥符为key,密钥符与索引向量之间的关系如下:
索引向量和密钥表是一对多映射的关系。一个索引值在同一密钥表中映射唯一的密钥符,一个索引值可对应不同密钥表的多个密钥符。一对多的映射方式不仅可以减小混沌迭代的运算量,提升速率;还可以提升算法的复杂度,提升安全性能。最后,将密钥符进行组合,生成伪随机的密钥串,得到动态密码。
3 令牌加密
令牌文件存储在数据库中,对令牌进行加密,实质上是对数据库进行加密。采用混沌与AES算法相结合的加密算法(下面简记为混沌-AES算法)实现了令牌加密算法[5]。所述的混沌-AES算法是利用混沌产生AES的16 Bytes为单位的加密密钥,然后利用AES算法实现数据加密。每次加密16 Bytes数据,更新一次加密密钥。令牌加密的基本思路如下所述:
1)令牌插入操作:利用混沌-AES算法加密令牌字段,然后将加密处理的字段添加进数据库。
2)令牌查询操作:先将加密处理的令牌字段值,利用数据库查询语句读出,然后利用混沌-AES算法解密还原数据库字段中的令牌数据。
3)令牌更新操作:利用混沌-AES算法对令牌数据进行加密,然后利用数据库更新语句将相应的字段更新为已加密的令牌数据。
4)令牌字段匹配:利用混沌-AES算法加密待查询的字段,然后查找数据库中,是否有对应的令牌加密字段。若查询到该字段,则匹配成功;若没有查询到该字段,则匹配失败。
5)令牌删除操作:先进行数据库字段匹配。若查询到该字段,则删除该字段;若没有查询到该字段,则不进行操作。
4 网络身份认证匹配算法
这种网络身份认证匹配是基于混沌手机令牌的,实质上是混沌同步的问题。下面介绍一种非对称的新型网络身份认证匹配算法。
记混沌系统A为FA(x,y,z…),混沌系统 B为FB(x,y,z…),系统 A 迭代输出记为GA(x,y,z…),系统B迭代输出记为GB(x,y,z…)。
缓冲池存储匹配的临时数据,记缓冲池为C(x,y,z…),则缓冲池满足:
由式(7)可以看出系统A和系统B迭代输出相异或的结果即为缓冲池。异或运算是可逆的,已知C(x,y,z…)、GA(x,y,z…)、GB(x,y,z…)任意两项,必然可以获得另外一项的输出。在服务器端采用系统A而客户端则采用系统B。当身份认证进行匹配时,客户端提供GB(x,y,z…)的相关信息,通过服务器端缓冲池 C(x,y,z…)信息,可以还原 GA(x,y,z…)信息。
5 网络身份认证协议
本系统采用二级认证的形式,初级认证为用户验证,次级认证为混沌动态密码认证。系统采用的身份认证协议描述如下:
(1)协议所使用的符号
(2)协议描述
用户U向服务器S提交注册信息,进行用户验证。
服务器S将用户U状态信息SI,返回给用户U。如果SI显示用户名 UID不存在,则需先进行用户注册。
服务器S检查用户名UID和用户密码PWD,若无误,则返回令牌状态信息。若已绑定令牌则继续进行;如果为短信密码就直接获取CDPWD,并且跳转至步骤f;如果未绑定令牌就跳转至步骤g。
服务器S向用户U返回挑战码。
用户根据挑战码CCode获取混沌动态密码CDPWD。
用户U向服务器S传递用户名UID,用户密码PWD以及混沌动态密码CDPWD,服务器S检查用户名UID,用户密码PWD以及混沌动态密码CDPWD是否正确,如果无误就直接跳转至步骤h。
用户U向服务器S传递用户名UID,用户密码PWD,服务器 S检查用户名 UID以及用户密码PWD是否正确。如果无误,则直接跳转至下一步。
点击登录,服务器会将页面重定向至资源访问页,并获取会话标识符SID。
6 系统实现
基于混沌动态密码算法,利用Java编写了JavaMe手机平台的混沌手机令牌。采用了一种改进的Lorenz超混沌系统[4]:
当 a=10,b=2,c=28,d=0.1 时,系统处于超混沌状态,其相图和时间序列如图1所示。
图1 改进Lorenz超混沌系统相图和时间序列Fig.1 Phase diagram and time series of improved hyperchaotic Lorenz system
该混沌手机令牌采用异步的挑战-响应的方式,即通过获取挑战码,解析混沌运算迭代次数和初始值信息,利用混沌动态密码算法最终得到动态密码。手机令牌的模拟器实现效果如图2所示。
图2 手机令牌模拟器效果Fig.2 Effect of mobile token simulator
网络身份认证系统登录界面如图3(a)所示,绑定令牌后,安全中心界面如图3(b)所示。
图3 网络身份认证系统部分截图Fig.3 Network identity authentication system
7 结语
本文提出一种基于混沌的新型的动态密码算法,该算法包括挑战码生成、动态密码生成以及令牌加密3个部分。基于该算法,设计了以混沌数字序列作为挑战码和动态密码的手机令牌,该手机令牌具有目前手机令牌的所有优点。在新型的动态密码算法基础上,提出了一种新型的身份认证匹配算法和认证协议,并以此设计了基于混沌手机令牌的网络身份认证系统。
[1]LI Li-fen,ZHU Yong-li.Authentication Scheme for Substation Information Security Based on Chaotic Theory[C]//International Conference on Power Electronics and Intelligent Transportation System(PEITS).Shenzhen:[s.n.],2009:1-3.
[2]ZHANG Chang-ming,LI Li-fen.Research on Substation Information Secure Technologies based on Chaotic Sequence[C]//International Conference on Power Electronics and Intelligent Transportation System(PEITS).Shenzhen:[s.n.],2009:152-155.
[3]刘霞,冯朝胜.一种基于动态口令的FTP双向认证方案[J].通信技术,2010,43(05):111-113.LIU Xia,FENG Chao-sheng.A FTP Mutual Authentication Scheme based on Dynamic Password[J].Communications Technology,2010,43(05):111-113.
[4]周福才,朱伟勇.基于混沌理论身份认证的研究[J].东北大学学报,2002,23(08):730-732.ZHOU Fu-cai,ZHU Wei-yong.Research of Identity Authentication based on Chaotic Theory[J].Journal of Northeastern University,2002,23(08):730-732.
[5]谭德,王光义.改进超混沌系统PN序列的SOPC实现[J].杭州电子科技大学学报,2012,32(03):1-4.TAN De,WANG Guang-yi.The SOPC Realization of PN Sequence on Improved Hyperchaos System[J].Journal of Hangzhou Dianzi University,2012,32(03):1-4.