一种基于数字签名的双向动态身份认证方案设计
来源:岁月联盟
时间:2010-08-30
1 引言
随着机应用的日益深入,网络的安全访问控制愈来愈重要。身份认证作为网络应用系统的首要屏障,目的是验证用户的真实身份,防止非法用户窃取敏感数据。在开放式的网络环境中,身份认证指的是用户身份的确认技术,它是网络安全的第一道防线,是最重要的一道防线。网络中的各种应用和计算机系统都需要通过身份认证来确认用户的合法性,然后确定这个用户的个人数据和特定权限。2 公钥密码机制实现数字签名的原理
数字签名主要通过散列函数和加密算法来实现。数字签名中用的散列(Hash)函数,其输入可变长,输出为一固定长度的串,该串就被称为输入的散列值(消息摘要)。从理论上来讲,攻击者不可能制造一个不同的输入串来产生一个完全相同的散列值。只要改变了输入的任何位,输出的散列值都会变化。另外,数字签名中使用的散列函数还有单向性、一致性、惟一性的特点,保证了散列函数的安全。这些特性,保证了消息的完整性。公开密钥密码机制加解密算法是公开的,它的安全性主要由它的公、私密钥的安全性所决定。有公钥不能计算出私钥,同样有私钥也不能计算出公钥。由公钥加密的密文,只有私钥拥有者才能解密;如果在这里公钥不公开,那么由私钥加密的密文,只有公钥拥有者才能解密。公私钥的私有性、保密性也就表明了用户的身份特征,可以用来实现数字签名。散列函数和公钥密码机制相结合来实现数字签名,原理如图1所示。
3 基于挑战应答的动态口令机制
基于挑战/应答(challenge/response)的动态口令机制属于异步方式, 其基本原理为:选择单向散列函数或加密算法作为口令生成算法。当用户请求登录时,认证服务器产生一个挑战码(通常是随机数)发送给用户;用户端将口令(密钥)和挑战码作为单向散列函数的参数,进行散列运算, 得到的结果(即应答数)作为动态口令发送给认证服务器。认证服务器用同样的单向散列函数做验算即可验证用户身份。其身份认证过程为: (1)客户端输入用户ID等信息,向认证服务器发送连接请求。 (2)服务器检查询数据库, 若是合法用户ID, 则生成挑战码并传回客户端。 (3)客户端根据密钥和挑战码, 执行单向散列函数运算,生成应答数并发送到服务器。 (4)服务器执行同样的算法生成应答数, 并与客户端发来的应答数进行比对,得到验证结果并传回客户端。4 新的身份认证方案
该节利用哈希函数和公钥密码机制下数字签名方案,设计了一种新型的身份认证方案。该方案将数字签名方案和动态身份认证方案结合,实现了双向身份认证,该方案分为注册过程和认证过程,具体描述如下。4.1 注册过程
用户在使用本身份认证方案之前必须先向服务器注册,完成系统的初始化操作。①当客户端用户i向服务器提出注册请求时,必须提供身份标识UIDi,口令PWi,同时客户端生成一个随机数Ti作为计数器的初始值,以固定格式连接,发送信息ENs(H(UIDi)‖H(PWi)‖Ti)给服务器,要求注册(H表示散列函数;Ns为服务器的公钥;ENs(·)为用Ns加密括号中的信息)。②服务器端收到注册信息后,首先利用私钥Nr解密信息得到H(UIDi),H(PWi),Ti,检查H(UIDi)的惟一性,如果发现已被注册,则要求用户重新选择UIDi,否则把用户的注册记录H(UIDi),H(PWi),Ti存进安全数据库,这样注册过程结束。4.2 认证过程
①在客户端输入UIDi,PWi,客户端随机生成Ru并保存;同时H(UIDi)和ENs(H(UIDi)⊕Ru))并发给服务器。②服务器根据用户发送的H(UID),查看数据库是否有相应的记录,如果没有,则结束认证,否则,利用自己的私钥Nr解密信息,得到H(UIDi) ⊕Ru并取出相应的记录信息H(PWi),计算Ru=(H(PWi⊕Ru) ⊕H(PWi));服务器产生一个随机数Rs,将H(UIDi)⊕Ru和H(Ru)发送给客户端。③客户端首先把自己计算得到的H(Ru) 与服务器发送的H(Ru)进行比较,如果两者不相等,则结束认证,否则通过对服务器的认证,并计算Rs=(H(PWi⊕Rs)⊕H(PWi)),然后生成一个随机数Ro,将H(Rs⊕Ti’)、ENs(Ro)发送给服务器。④服务器首先把自己计算得到的H(Rs⊕Ti) 与客户端发送的H(Rs⊕Ti’)进行比较,如果两者不相等,则结束认证,否则,建立与客户端的连接,同时利用私钥解密信息,得到Ro并保存,同时将数据库中保存的Ti值加1。⑤用户成功通过初次认证后,保存Ro,并将相应的Ti’值加1。定时(间隔t时间)发送认证消息来保持与服务器的连接,每发送一次认证消息Ti’加1。⑥服务器把收到第i次定时认证信息H(Ro⊕Ti’) 与自己计算得到的H(Ro⊕Ti)进行比较,如果相等,则通过认证,服务器将数据库中保存的值加1。如果服务器没有及时并正确地收到用户端的定时认证信息,就终止此连接,用户要再次访问,必须进行新一次认证连接。5 安全性分析
(1)本设计方案在注册过程中对客户端与服务器之间传送的信息进行加密,使信息传送更加方便安全。 (2)在认证过程中,用户和服务器都以随机数作为挑战码,使任何截取了认证信息的攻击者都不能通过重放来再次登录。 (3)本设计方案不仅可以实现服务器端对客户端的认证,而且也能实现客户端对服务器端的认证,从而实现了客户端到服务器端的双向认证。 (4)针对窃取连接攻击,方案采用终端定时发送认证信息的方法来抵御。这样即使窃听者窃取了连接也只能在一个时间间隔内访问服务器。[1] Shamir A,Idetity-based cryptosystem and singnature Shemes[C].IN Proc cryto84.Santa Barbara,CA:Springer-Verlag,1984.47-53[2] 冯登国,卿斯汉.信息安全-核心理论与实践[M]北京:国防出版社,2000[3] Wenbo Mao著,王继林等译.密码学理论与实践[M]北京:工业出版社,2004[4]杨义先,钮心忻.应用密码学[M] 北京邮电大学出版社,2005[5]李金库, 张德运, 张勇.身份认证机制研究及其安全性分析[J]计算机应用研究. 2001.18(2):126-128[6] 杨宇红,蔡海滨.基于路由器的动态口令身份认证系统[J]. 计算机工程与设计,2005,26(5):1316-1317下一篇:存储虚拟化技术的研究与比较