一种口令可安全更新的双因子身份认证方法

文档序号:7769238阅读:308来源:国知局
专利名称:一种口令可安全更新的双因子身份认证方法
技术领域
本发明涉及的是安全认证技术领域,特别涉及一种口令可安全更新的双因子身份认证方法。
背景技术
随着网络时代的发展,电子商务、电子政务以及其它基于网络的应用席卷全球,互联网安全问题越发重要。近年来发生的银行盗号等事件,使得人们也越来越重视网络交易的安全。身份认证用于确认通信实体身份的真实性。通常有三种用于身份认证的因子,包括用户拥有的东西(如智能卡)、用户知道的东西(如口令)、以及用户本身的信息(如指纹)。人们可以使用任何一种因子实现身份认证,也可以使用几种因子组合的方法来实现, 其中基于口令和智能卡相结合的双因子方法是目前最为普遍使用的。基于口令的身份认证系统中,口令更新是用于提高系统安全性而广泛使用的一种手段。但是,现有双因子身份认证系统在执行口令更新功能时至少存在两种缺陷要么口令更新依赖于先前登录的成功执行,为了更新口令必须先执行登录阶段的操作,这带来计算量和通信量的增加;要么是旧口令在被更新后仍可用于系统登录,这违背了旧口令在更新后应即无效的实践认识。本发明克服了现有技术中更新口令需要先登录、且旧口令仍作用于系统登录的缺陷,提出了一种口令可安全更新的双因子身份认证方法,不需要先成功登录服务器然后更新口令,大大降低了计算量和通信量,且更新口令后旧口令即告失效。本发明方法中用户与服务器的双向认证过程保证了口令的安全性。

发明内容
本发明公开了一种口令可安全更新的双因子身份认证方法,其特征在于,包括如下步骤步骤一服务器生成公开参数与主密钥;步骤二 用户根据步骤一中所述公开参数,选取口令,将身份信息及所述口令的摘要信息在所述服务器处注册并由服务器保存;所述服务器生成智能卡并交给所述用户,所述服务器维护关于所述用户信息的注册表;步骤三所述用户利用所述口令和智能卡登录所述服务器和/或更新口令。其中,所述步骤一中,所述公开参数由所述用户共享,所述主密钥由所述服务器保存。其中,所述步骤二中智能卡存有关于所述服务器的主密钥和所述用户身份的摘要信息,所述用户收到所述智能卡后可存入登录所需的随机数据。其中,所述步骤三中,在所述登录过程中,用户确认对方为所登录的服务器,所述服务器确认登录者为系统中的合法用户。其中,所述登录过程和口令更新过程均实现所述用户与服务器的双向认证以保证通信双方身份的真实性,如任何一方是不真实的则另一方退出会话过程。其中,所述口令更新过程中既实现用户与服务器的双向认证又安全更新口令。其中,所述登录过程包括以下步骤步骤Al 所述用户输入口令,更新智能卡中的信息,并利用口令和智能卡计算出数据发往服务器;步骤A2 所述服务器收到所述用户发来的数据后,经过计算并查找所存储的注册表,若数据不吻合则拒绝所述用户并退出;若数据吻合则认为所述用户合法,更新所存储的关于所述用户的信息,并给出响应数据;步骤A3 所述用户在收到所述响应数据后确认数据的一致性后,则确认所述服务器是真实的,并给出相应的会话数据作为响应;所述服务器在对所述用户的会话数据做确认处理后,和所述用户共享会话密钥。其中,所述口令更新过程包括以下步骤步骤Bl 所述用户输入旧口令,更新智能卡中的信息,并利用所述口令和智能卡计算出包含新口令信息的数据发往服务器;步骤B2 所述服务器收到所述包含新口令信息的数据后,经过计算并查找所存储的注册表,若数据不吻合则拒绝用户并退出,若数据吻合则确认用户合法登录,并更新所存储的关于所述用户的信息,并给出相应的响应数据;步骤B3 所述用户在收到所述响应数据后确认数据的一致性后,则确认所述服务器是真实的,利用收到的数据更新智能卡中的信息,并给出会话数据作为响应;所述服务器对所述会话数据做确认处理后,进一步更新所存储的关于该用户的信息。与现有技术相比,本发明具有如下有益效果1、本发明可实现用户口令的安全更新,更新后用户的旧口令即告失效,无法用于后续登录会话;2、本发明实现的口令更新是直接执行,不需要先成功登录服务器然后再执行口令更新操作,从而大大降低计算代价和通信带宽;3、本发明可实现用户和服务器的双向认证,如果双向认证不成功则用户无法登录服务器,也无法更新口令,从而保证了口令的安全性;4、本发明实现的双因子身份认证方法可抵抗卡泄露情况下的冒充攻击,即获得智能卡信息的攻击者既无法冒充服务器欺骗用户,也无法冒充用户欺骗服务器;5、本发明提供用户的隐私保护功能,任何第三方即使获得登录过程或口令更新过程中服务器与用户间的交互信息也无法获知用户身份信息,且无法将两次不同会话过程中的交互信息连接起来,从而不知道两次会话中分别与服务器交互的用户是否为同一个。


图1是采用实施本发明方法的用户认证装置的示意图。图2是本发明认证方法实施例的流程图。图3是本发明认证方法实施例的登录过程中用户与服务器之间的消息流的示意图。图4是本发明认证方法实施例的口令安全过程中户与服务器之间的消息流的示意图。
具体实施例方式结合以下具体实施例和附图,对本发明作进一步的详细说明,本发明的保护内容不局限于以下实施例。在不背离发明构思的精神和范围下,本领域技术人员能够想到的变化和优点都被包括在本发明中,并且以所附的权利要求书为保护范围。本发明口令可安全更新的双因子身份认证方法,包括如下步骤步骤一服务器生成公开参数与主密钥;其中,公开参数由用户共享,主密钥由服务器保存。步骤二 用户根据步骤一中的公开参数,选取口令,将身份信息及所述口令的摘要信息在服务器上处注册并由服务器保存;服务器生成智能卡并交给用户,服务器维护关于用户信息的注册表。智能卡存有关于服务器的主密钥和用户身份的摘要信息,用户收到智能卡后可存入登录所需的随机数据。步骤三用户利用口令和智能卡登录服务器和/或更新口令。在登录过程中,用户确认对方为所登录的服务器的,服务器确认登录者为系统中的合法用户。登录过程和口令更新过程均实现了用户与服务器的双向认证,以保证通信双方身份的真实性。如果任何一方是不真实的,则另一方退出会话过程,退出登录过程或口令更新过程。口令更新过程中既实现用户与服务器的双向认证又实现安全更新口令。登录过程包括以下步骤步骤Al 用户输入口令,更新智能卡中的信息,并利用口令和智能卡计算出数据发往服务器;步骤A2 服务器收到用户发来的数据后,经过计算并查找所存储的注册表,若数据不吻合则拒绝所述用户并退出;若数据吻合则认为用户合法,更新所存储的关于用户的信息,并给出响应数据;步骤A3 用户在收到响应数据后确认数据的一致性后则确认该服务器合法,并给出相应的会话数据作为响应;服务器在对用户的会话数据做确认处理后,和用户共享会话密钥。本发明中,当用户在收到服务器的响应(比如A)后,会利用自己知道的数据以及服务器发过来的响应数据A中的一部分(比如a)计算出来一个数据,进行对比,当该数据与A中的另一部分数据(比如b)相等的话,则确认该服务器是真实合法的。口令更新过程包括以下步骤步骤Bl 用户输入旧口令,更新智能卡中的信息,并利用口令和智能卡计算出包含新口令信息的数据发往服务器;步骤B2 服务器收到包含新口令信息的数据后,经过计算并查找所存储的注册表,若数据不吻合则拒绝用户并退出,若数据吻合则确认用户合法登录,并更新所存储的关于用户的信息,并给出相应的响应数据;步骤B3 用户在收到响应数据后确认数据的一致性后,则确认所述服务器是真实的,利用收到的数据更新智能卡中的信息,并给出会话数据作为响应;服务器对会话数据做确认处理后,进一步更新所存储的关于该用户的信息。
本发明中登录过程不包括修改口令的意思。现有技术的一般双因子认证方案中, 用户为了修改口令,必须先执行一个登录过程,然后执行修改口令过程,是一个有先后次序的操作过程。但是,本发明的主要特点之一就是可以同时完成登录过程和修改口令过程,且所花计算代价和通讯代价与现有技术相比较要节省很多,约与现有技术的登录过程所花的代价相差不大。图1所示,是采用本发明口令可安全更新的双因子身份认证方法的用户认证装置的方框图,用户认证装置包括中央处理器(CPU)、服务器、按键输入单元、显示单元、智能卡读取单元;当用户通过用户认证装置的智能卡读取单元插入智能卡并通过键盘输入单元输入自己的口令后,中央处理器(CPU)将利用读取到的智能卡内容和用户的口令进行计算, 并与远程服务器执行交互。两者交互的结果是服务器允许用户登录/口令更新,或者由于两者中的一个为非法而中断会话。认证结果通过显示单元显示。图2所示是解释本发明优选实施例的流程图,在远程服务器和用户端计算机之间应用图1所示的用户认证装置及本发明认证方法,包括如下步骤步骤一,在参数生成阶段,服务器生成系统参数。服务器S选择大素数p,生成椭圆曲线E:y2 = x3+ax+b,其中a,b e、且 4a3+27b2modp兴0,选取E上的一个阶为η的点G。服务器S进一步选择\中的随机数χ为自己的主密钥,计算P = xG为自己的公钥。最后,服务器S选择哈希函数h,H,H1, H2与H3 并连同(p,E,G,P) —起作为公开参数供系统用户使用。步骤二,在注册阶段,身份为IDu的用户U在服务器处完成注册过程。所述注册过程为①用户U选择PW为自己的口令,选择随机数b和α,计算ku = h(PW| |b),并将IDU, α和1^发送给服务器S;②服务器S 选择随机数 cu,计算 ks = h(P||x),t = H(ks, IDu, ku,cu),令 α u = α, 将记录(IDU,α u, cu)加入自己的注册表T中,将含有t和P的智能卡交给用户;③用户U进一步将b和α也存入智能卡中,至此注册过程结束。本发明中,维护关于用户信息的注册表是指,该表中的每一行对应一个用户的信息,用户在登录过程或者口令修改过程中,服务器存储的用户信息表会根据会话过程中的需要对该表中关于该用户的信息进行修改,比如,把表中的某个数字改为另外一个数字了。 用户信息可以用(用户名,随机数)方式进行记录。本实施例中,例如(IDU,au,cu)。用户信息记录方式不受限制,可以应设计方法不同而不同。步骤三,在登录阶段,用户利用自己知道的口令和拥有的智能卡登录服务器,在登录期间,用户和服务器完成双向认证,即登录会话完成后用户相信对方确实是服务器,服务器也相信对方确实是系统中的合法用户。如图3所示,登录过程具体为①步骤Al 用户U输入口令PW并插入智能卡后,选择随机数1^,计算A = ruG,α =α +1,5=(/0 |丨《丨队丨|//(4/认,《人,0冲历( 乃,将数据I :A,B发往服务器;②步骤A2 服务器S收到(A,B)后将ΒΘ/^χΧ)解释为IDuI | α | |ku|| σ,然后在注册表 T 中检查如存在记录(IDu, α u,cu)使得 α > α u 且 ο = H (A, IDu, α,ku,H(ks,IDu, ku,cu)),则继续下面的步骤(否则拒绝)在注册表中更新Ciu= α,选择随机数rs,计算C=rsG, K = H2 (xA, A, C,rsA),X = H(K,C),将响应数据 II (C,X)发给用户;③步骤A3 用户U收到(C,X)后计算K = H2 (ruP,A,C,ruC)并检查X = H(K,C)是否成立如不是,则拒绝服务器并退出;否则,令K为会话密钥用于用户U与服务器S的后续秘密通信,并将会话数据III :Y = H(K,X)发送给服务器S。服务器S检查Y = H(K,X)是否成立如是,取K为会话密钥;否则拒绝并退出。在执行步骤三的同时,在口令安全更新阶段,用户可利用自己知道的口令PW和拥有的智能卡与服务器交互以完成口令更新过程,将口令由PW安全地更新为用户U所选择的新口令PW'。在登录过程中,用户发送的信息(A,B)是对用户身份IDu的加密,这保证了攻击者即使能够获得(A,B)也无法由此获知该用户身份,所采用的加密方法是概率性的,从而攻击者即使获得不同会话中的数据(A,B)和(A' ,B'),也无法由此确定参与这两次会话过程中用户是否是同一个用户。此外,登录过程中的数据(C,X)和Y均与用户身份信息无关, 所以攻击者即便获得了(C,X)和Y也无法由此获知该用户身份,亦不能用这些数据来确定不同会话过程中的用户是否是同一个用户。如图4所示,所述口令更新过程,具体为①步骤Bl 用户U输入口令PW、PW ‘并插入智能卡后,选择随机数 b ‘、ru,计算 A = ruG, α = α+l, ku = h(Pff || b), ku ' = h(Pff ' |b '), β=(/ ) | |(X丨队 j HI 丨ZiOUA^丸 U))十丑3(r P),将数据I’ A,B发往服务器;②步骤B2 服务器 S 收到(A,B)后将解释为 IDU| I α I |ku|| ku' || σ , 然后在注册表T中检查如存在记录(IDU, au, cu)使得α > Ciu且σ = H (A, IDu, α,ku, ku',H(ks,IDu, ku,cu)),则继续下面的步骤(否则拒绝)在注册表中更新au= α,选择
随机数 Cu',计算 Kc = H2Gv ku',xA, A), t' = H(ks,IDu, ku' , cu' ),C=eKcQ'),X =
H(K。,C),将响应数据II’ (C, X)发给用户;③步骤Β3用户 U 收到(C,X)后计算 Kc = H2(h(PWlI b),h(PW' |b' ),ruP,ruG), 检查X = H(K。,C)是否成立不成立,则退出;否贝U,用K。解密C,计算t' =H(ks,IDu,ku', Cu'),更新t = t' , b = b',将会话数据III’ Y = H(K。,X)发送给服务器S。服务器S 检查Y = Η(κ。,X)是否成立如是,更新Cu= Cu';否贝IJ,在T中以(IDU,au,cu,Cu')替换(IDU, a u, cu)。不论是在登录过程还是口令更新过程中,一旦服务器S收到用户U发来的(A,B), 并在T中检查到含有IDu的记录(IDU,au,cu,cu'),服务器S就删去不能使得ο = Η(Α, IDu, α,ku,H(ks,IDu, ku,cu))或 σ = H(A, IDu, a,ku,ku',H(ks,IDu, ku,cu))成立的 cu 或 cu',从而维护了 T中的有效三元组。与登录过程类似,攻击者无法利用口令更新过程中出现的信息(A,B)、(C,X)和Y 来确定用户的身份,亦不能用这些数据来确定不同会话过程中的用户是否是同一个用户。本发明中,登录过程与更新口令过程的消息流不完全相同,所采用的数据计算出来的方法不一样。从而实现了本发明的目的之一为了修改口令,本发明只需要执行本发明的口令修改过程,而不需要像其他现有技术的那些方法,先执行该方法中的登录过程,再执行该方法中的口令修改过程。
本实施例中用户与服务器可实现双向认证,用户可自由选择或更改自己的口令, 旧口令在更新后不能继续用于后续的登录认证。与现有技术中的其它双因子身份认证方法不同的是,用户不需要在口令更新前先执行登录过程,而是在与服务器实现双向认证的同时就可修改口令,从而节约了计算量和通信带宽。本发明提供的身份认证方法,满足双因子身份认证的安全性要求,保证在智能卡泄露的情况下,攻击者既无法冒充服务器欺骗用户, 也无法冒充用户欺骗服务器;在只知道口令而无智能卡的情况下,用户也无法登录服务器。
权利要求
1.一种口令可安全更新的双因子身份认证方法,其特征在于,包括如下步骤步骤一服务器生成公开参数与主密钥;步骤二 用户根据步骤一中所述公开参数,选取口令,将身份信息及所述口令的摘要信息在所述服务器处注册并由服务器保存;所述服务器生成智能卡并交给所述用户,所述服务器维护关于所述用户信息的注册表;步骤三所述用户利用所述口令和智能卡登录所述服务器和/或更新口令。
2.如权利要求1所述口令可安全更新的双因子身份认证方法,其特征在于,所述步骤一中,所述公开参数由所述用户共享,所述主密钥由所述服务器保存。
3.如权利要求1所述口令可安全更新的双因子身份认证方法,其特征在于,所述步骤二中智能卡存有关于所述服务器的主密钥和所述用户身份的摘要信息,所述用户收到所述智能卡后可存入登录所需的随机数据。
4.如权利要求1所述口令可安全更新的双因子身份认证方法,其特征在于,所述步骤三中,在所述登录过程中当用户确认对方为所登录的服务器时,所述服务器确认登录者为系统中的合法用户。
5.如权利要求1所述口令可安全更新的双因子身份认证方法,其特征在于,所述登录过程和口令更新过程均实现用户与服务器的双向认证以保证通信双方身份的真实性;当任何一方是不真实的,则另一方退出会话过程。
6.如权利要求1所述口令可安全更新的双因子身份认证方法,其特征在于,所述用户不需要先成功登录所述服务器再更新自己的口令,而是在口令更新过程中既实现用户与服务器的双向认证又安全更新口令。
7.如权利要求1所述口令可安全更新的双因子身份认证方法,其特征在于,所述登录过程包括以下步骤步骤Al 所述用户输入口令,更新智能卡中的信息,并利用口令和智能卡计算出数据发往服务器;步骤A2 所述服务器收到所述用户发来的数据后,经过计算并查找所存储的注册表, 若数据不吻合则拒绝所述用户并退出;若数据吻合则认为所述用户合法,更新所存储的关于所述用户的信息,并给出响应数据;步骤A3 所述用户在收到所述响应数据后确认数据的一致性后,则确认所述服务器是真实的,并给出相应的会话数据作为响应;所述服务器在对所述用户的会话数据做确认处理后,和所述用户共享会话密钥。
8.如权利要求1所述的口令可安全更新的双因子身份认证方法,其特征是,所述口令更新过程包括以下步骤步骤Bl 所述用户输入旧口令,更新智能卡中的信息,并利用所述口令和智能卡计算出包含新口令信息的数据发往服务器;步骤B2 所述服务器收到所述包含新口令信息的数据后,经过计算并查找所存储的注册表,若数据不吻合则拒绝用户并退出,若数据吻合则确认用户合法登录,并更新所存储的关于所述用户的信息,并给出相应的响应数据;步骤B3 所述用户在收到所述响应数据后确认数据的一致性后,则确认该服务器是真实的,利用收到的数据更新智能卡中的信息,并给出会话数据作为响应;所述服务器对所述会话数据做确认处理后,进一步更新所存储的关于该用户的信息。
全文摘要
本发明涉及一种口令可安全更新的双因子身份认证方法,包括如下步骤服务器生成公开参数与主密钥;用户注册与服务器更新注册表;利用口令与智能卡的双向认证登录和/或更新口令。本发明不需要先成功登录服务器然后再更新口令,从而大大降低计算量和通信量;且更新口令后旧口令即告失效。本发明中的用户与服务器的双向认证过程保证了口令的安全性。
文档编号H04L29/06GK102377573SQ20111040649
公开日2012年3月14日 申请日期2011年12月8日 优先权日2011年12月8日
发明者李强, 李祥学, 郑东, 钱海峰, 黄征 申请人:上海沿伸信息技术有限公司, 华东师范大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1