一种基于s/key系统双向认证的一次性口令验证方法

文档序号:7593027阅读:1526来源:国知局
专利名称:一种基于s/key系统双向认证的一次性口令验证方法
技术领域
本发明涉及一种网络身份认证方法,特别涉及一种基于S/KEY系统双向认证的一次性口令验证方法。
背景技术
身份认证是网络信息安全系统中的首要环节,是电子商务与电子政务的基础。网络身份认证的方法有很多,最常用的一种是将用户帐号与密码结合起来,先用帐号识别“你是谁”,再用密码验证“你确实是谁”。这种身份认证方法操作简单,但不安全,帐号和密码容易被窃取。目前较为安全的身份认证方法是采用“一次一密”口令技术的动态密码认证方法。S/KEY系统就是一种常用的“一次一密”口令技术的动态密码认证系统。S/KEY系统中,S表示秘密通行短语;C表示种子,初始化时,服务器为每个用户生成一个种子;N表示最大序列号或初始序列号;i一个周期中(由N到0),第i次用户认证;F为标准单向函数(MD4,MD5或SHA),FN表示运行F函数N次;I为用户名,为一个字符串;Pi为用户第i次登录所用密码。
SKEY系统是一种鉴别程序,依赖于单向函数的安全性。所谓的安全单向函数,是指向前计算很容易,而反向的计算却很难。在这样的系统中,用户需要记忆一个秘密通行短语S,通常是一个句子,初始化时,服务器为每个用户生成一个种子C,用户输入S和初始序列号N,服务器计算出P0=PN(C+S);
P0=FN(C+S);则下一次用户登录的密码为P1=FN-1(C+S);以此类推,第i次用户登录的密码为Pi=FN-i(C+S);具体身份认证过程如下服务器端保留有一张表,每条记录包含 用户名I,种子G,当前序列号N-i,上次成功登录密码Pi-1;用户第i次登录时,服务器发送一个挑战包括当前序列号N-i,种子G客户端拥有一个OTP口令计算器(可以是一个安全的本地软件计算器或是硬件计算器),输入序列号N-i,种子C和秘密通行短语S后,计算器做如下计算Pi=FN-i(C+S);然后客户端以Pi作为应答发送回到服务器,服务器端做以下计算P′i-1=F(Pi);比较P′i-1与存储在本地的Pi-1相同则验证通过。
S/KEY一次性口令系统中,通信双方都没有保留口令和生成口令的全部信息,整个通信过程都是安全的,任何窃听重放攻击都不会起作用,具有较高的安全性。但S/KEY系统在不安全的信道上有先天的缺陷,不能避免小数攻击。当a向b发出请求时,可能c会冒充b向a发出挑战,该挑战的种子值由以前监听网络获得,序列号只要比实际值小,就可以获得一客户端不加鉴别的运算出Pj,则c可以获得从Pi到Pj之间的所有口令,攻击成功。

发明内容
本发明所要解决的技术问题是现有的S/KEY系统身份认证过程中存在小数攻击的漏洞,提供一种基于S/KEY系统双向认证的一次性口令验证方法。
本发明解决上述技术问题的技术方案包括以下步骤客户端向服务器端发送认证请求,发送用户名;服务器端根据客户端发送的用户名向客户端发送挑战,包括当前迭代值、该用户对应的种子值,以及上次用户成功登录的口令;客户端根据用户迭代值、种子和秘密通行短语计算出当前的口令,并对当前口令继续作一次哈希运算,将运算结果与服务器端送过来的上次成功登录口令进行比较,相同则通过对服务器的验证,然后将当前口令发往服务器;服务器收到当前口令后,同样再进行一次哈希运算,并与上次用户成功登录的密码比较,相同则通过对客户端的认证,保存当前口令。
本发明的优点1)本发明的一次性口令认证方法中,通信双方都没有保留口令和生成口令的全部信息,整个通信过程都是安全的,任何窃听重放攻击都不会起作用,具有较高的安全性。2)本发明的一次性口令认证方法中在客户端增加对服务器进行认证,这样恶意攻击者因为没有上次登录的正确口令和正确的迭代值,不可能通过客户端的认证,从而解决了现有S/KEY系统存在的小数攻击问题。


图1本发明中客户端认证的流程图。
图2为本发明中服务器端认证的流程图。
图3为改进后S/KEY系统双向认证的流程图。
图4为现有S/KEY系统双向认证的小数攻击流程图。
具体实施例方式
参见图1、图2,一种基于S/KEY系统双向认证的一次性口令验证方法包括以下步骤(1)客户端发生器向服务器发送以下信息用户身份I;(2)服务器响应一个挑战序列号N,种子C,上次成功登录口令Pi-1;这一步中,服务端将存储在本地数据库中用户ID对应的上次该用户成功登录的口令发出去。
(3)客户端OTP口令计算器根据输入的序列号N-i,种子C和秘密通行短语S后,生成一次性口令,其计算如下Pi=FN-i(C+S);(4)客户端将生成的一次性口令保存后,再作一次哈希运算P′i-1=F(Pi);然后与服务器送过来的上次成功登录口令比较,如果结果相同,则认为序列号无误,取出保存后的一次性口令,作为应答,发送给服务器。如果结果不同,则认为序列号有误(小数攻击),系统提示用户存在小数攻击。
(5)服务器确认发生器响应的口令,服务器执行一次哈希计算,若结果与保存的口令匹配则鉴别成功,保存新口令。
当口令的序列号减到1时,就要重新初始化序列号了,除了本地方法外,也可以采用远程方法,发生器向服务端发送<口令1><新参数><口令2>
口令1是用原来的参数生成的口令,新参数是下一轮鉴别的计算参数,包括算法,序列号,种子。口令2是用新参数生成的口令。服务器确认口令1后,将口令2存入数据库,以新参数(序列号-1)构造下一个提问。这样就可以通过网络远程初始化了。
网络服务由集中走向分布不可避免,对于多服务器的情况,贝尔实验室的Rubin于1996年提出的一种独立一次性口令系统中采用的是预先分配好每台服务器的登录口令数量的方法,当一个用户在一台服务器上登录的情况较多而导致口令用完时,就必须为该用户重新初始化口令,这会导致口令的浪费(只是口令的一个区间被用完),而独立一次性口令系统中密钥的分配又不是那么的简单。在本发明中,对每个服务器可以采用不同的种子C,而用户通行短语S可以相同,这样,对用户而言,不需要了解登录到了哪台服务器上,他可根据序列号,种子和自己记忆的通行短语正确的计算出一次性口令,各服务器之间的口令序列是完全独立的。
S/KEY系统在用户登录完成以后就不会对用户合法性进行管理了,非法用户可以在合法用户正确登录建立连接后,进行抢入连接(hijackedconnection)侵入系统。在本协议中,合法用户登录完成后,服务端会定期的向客户端发出挑战,而客户端必须对挑战作出应答,否则就会切断该用户的已有连接。服务端向客户端发送的挑战和客户应答需要另外建立一条连接,不影响原连接的客户端与服务器的正常通信,对用户而言是透明的。由此带来的用户一次性口令序列使用过快的问题可以通过初始化时采用大的序号N来解决。
为了避免被动攻击(passive attack),每个用户登录时,只能建立一条连接。这样就能防止其他用户监听到部分口令后发动多条连接猜测后续的口令。
以下举例说明在移动支付系统中的本发明的应用。假设用户已经注册完毕,下面是身份认证过程1、客户通过手机短信向鉴别服务器发送自己的用户名I;2、鉴别服务器在数据库中寻找该用户的信息,数据库中存有用户名I,用户上次登录的口令Pi-1,和当前迭代值N,若查不到则拒绝服务,查到则向客户手机发送种子C和当前迭代值N-i,用户上次登录的口令Pi-1。
3、在客户端拥有的口令计算器(手机本身或专用计算器)在输入序列号N-i,种子C和秘密通行短语S后,计算器做如下计算Pi=FN-i(C+S);P′i-1=F(Pi);比较P′i-1,Pi-1,不相同则认为出现了错误,或是有攻击,通知用户,进行相应处理;如果相同,客户端通过对服务端的认证,客户端以Pi作为应答发送回到服务器;4、服务器端同样做以下计算P′i-1=F(Pi);比较P′i-1与存储在本地的Pi-1相同则验证通过,更新Pi-1为Pi,通过对客户端的认证,验证过程结束。
权利要求
1.一种基于S/KEY系统双向认证的一次性口令验证方法,包括以下步骤客户端向服务器端发送认证请求;服务器端根据客户端发送的用户名向客户端发送挑战,包括当前迭代值、该用户对应的种子值,以及上次用户成功登录的口令;客户端根据用户迭代值、种子和秘密通行短语计算出当前的口令,并对当前口令继续作一次哈希运算,将运算结果与服务器端送过来的上次成功登录口令进行比较,相同则通过对服务器的验证,然后将当前口令发往服务器;服务器收到当前口令后,同样再进行一次哈希运算,并与上次用户成功登录的密码比较,相同则通过对客户端的认证,保存当前口令。
2.根据权利要求1所述的一种基于S/KEY系统双向认证的一次性口令验证方法,其特征在于在多服务器登陆认证时,每个服务器采用不同的种子,而用户通行短语相同,各服务器之间的口令序列是完全独立的。
3.根据权利要求1所述的一种基于S/KEY系统双向认证的一次性口令验证方法,其特征在于合法用户登录完成后,服务器端会定期的向客户端发出挑战,而客户端必须对挑战作出应答,否则就会切断该用户的已有连接。
全文摘要
本发明公开了一种基于S/KEY系统双向认证的一次性口令验证方法,包括以下步骤客户端向服务器端发送认证请求;服务器端根据客户端发送的用户名向客户端发送挑战;客户端根据用户迭代值、种子和秘密通行短语计算出当前的口令,并对当前口令继续作一次哈希运算,将运算结果与服务器端送过来的上次成功登录口令进行比较,相同则通过对服务器的验证,然后将当前口令发往服务器;服务器收到当前口令后,同样再进行一次哈希运算,并与上次用户成功登录的密码比较,相同则通过对客户端的认证,保存当前口令。这种一次性口令验证方法能够有效解决用户密码明文传送的不安全性以及现有S/KEY系统认证中存在的小数攻击问题。
文档编号H04L9/32GK1599314SQ20041004669
公开日2005年3月23日 申请日期2004年8月25日 优先权日2004年8月25日
发明者王涛, 李仁发 申请人:湖南大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1