多服务器环境下的三因素身份认证及密钥协商的方法与流程

文档序号:16199898发布日期:2018-12-08 06:30阅读:256来源:国知局

本发明涉及一种在认证阶段无需可信第三方参与的多服务器环境下三因素用户身份认证和密钥生成协议,属于密码协议技术领域。

背景技术

随着当代网络技术的迅猛发展,特别是近几年物联网等一系列与生活息息相关的网络技术的发展壮大,我们的生活和网络已经紧密的结合在一起。从菜场里都能使用的电子钱包,到网购服装,从手机app中预定酒店,到网络购票共享单车。人们生活中最大的四部分:衣食住行。都可以通过网络实现。人们的生活越离不开网络就越是需要注重网络与信息的安全。因为当人们的衣食住行都通过网络时,也就意味着人们的信息都将曝露在网络之中。同时网络空间,是一个开放的公共空间,因此人们对于信息安全的需求越来越强烈。

用户身份认证是解决网络安全机制中最基础的一步,通过身份认证,服务器可以分辨合法用户和带有敌意的攻击者,进而决定给予访问者什么样的权限,能有效控制用户的访问。在用户身份认证成功之后的问题,就是如何建立一个安全信道以传输用户和服务器之间的信息。而现行技术下最简单有效的方式是,通信的双方即用户和服务器建立一个只有通信双方才能共享的会话密钥(sessionkey)。然后使用会话密钥加密通信信息,以建立安全信道防止有敌意的攻击者窃听,并配合消息验证码以防止信息被篡改。而同时满足以上要求的,同时提供用户认证和密钥生成的协议通常被称为认证密钥生成协议(authenticatedkeyestablishmentprotocol),它能够将认证和密钥生成结合在一起,是网络通信中最普遍的安全协议之一。而认证密钥生成协议又可分为认证密钥传输协议(authenticatedkeytransportprotocol)和认证密钥协商协议(authenticatedkeyagreementprotocol)两类。通过认证密钥协商协议通信双方可以在公开信道上建立会话密钥,以保证后续通信的安全性和完整性。

在1981年lamportl就提出了远程用户身份鉴别,这也是一种早期的用户认证。随后很多研究者开展了关于单一服务器认证的研究工作。而后就开始出现用智能卡存储复杂参数而设计的单服务器认证协议,同时生物识别技术也被引入服务器认证方案中,例如由li等人提出的使用智能卡的基于生物特征的远程用户认证。然而随着网络技术在不断的发展,单一的服务器认证在当今社会下显的愈发力不从心。在saas(software-as-a-service,软件即服务)广泛使用的今天,各种软件公司更倾向于将软件部署在服务器中,那就要求使用更多的节点服务器,并且更多的使用cdn(contentdeliverynetwork,内容分发网络)技术,以提供更好的用户体验,以及满足各方面的需求。同时在移动网络更加繁荣的今天,在移动网络设备上使用移动网络登录验证以获得服务便的越来越频繁。如果始终使用单服务器架构的认证协议,将极大的限制以上各项技术的发展与使用,并且在维护上也产生了额外的人力负担,这显然极大的增加了管理麻烦。

多服务器用户认证和密钥协商协议能够有效的解决单一服务器认证在多服务器环境的不适应问题。先多服务器认证和密钥协商协议多使用公钥密码技术来实现认证和密钥协商建立。自从li等人在2001年提出基于神经网络的多服务器体系结构远程口令认证方案以来,研究人员提出了多种多服务器认证方案。2014年xue等人提出的协议就可以不使用验证表。同样不用验证表的还有tsai等人提出的协议,这篇文章更是早在2008年就已经发表,这个方案效率大大高于li等人的方案,其成本和操作成本都比较低,当然这个方案也被证明容易受到内部人员攻击和服务器欺骗攻击。由liao和wang在2009年提出的一种基于安全动态身份的多服务器环境远程用户认证方案,但是这个方案被认为是无法真正做到相互认证。如同单一服务器认证一样,多服务器认证也延伸到了使用生物识别技术,例如hanshen等人的一种新型的基于生物识别的关键系统多服务器环境认证方案和之前提到过得haolin等人的方案。

而上述被提出的协议都存在安全性漏洞,并且在认证阶段需要服务器将用户的认证信息发送给注册/认证中心(registered/authenticatecenter)。这使得通信步骤增多,并使得通信成本也很高。同时在大量用户发送认证请求的情况下,存在通信流量的瓶颈。而随着在认证阶段不需要注册/认证中心参与的协议的出现,通信成本大幅下降,协议的效率大幅的提高。



技术实现要素:

本发明的目的是要克服现有安全协议在安全性上的弱点,并且简化协议的通信步骤,使得协议执行速率加快。在提供认证性的同时也能完成会话密钥的协商与建立。

本发明的主要目的是提供一种认证密钥协商方法,从而在公共信道上建立安全信道,以保证通信双方的信息的机密性和完整性等安全属性。

本发明方法中除可信第三方注册中心外,还有互相认证并协商建立会话密钥的两方:用户端和服务端。其认证和密钥协商方法包括以下步骤:

步骤1:可信第三方即注册中心(registeredcenter)初始化阶段,注册中心选择大素数p和q作为其自身的长期私钥。选择一个单向散列函数h(.)以及dh(diffie-hellman)算法中的大素数q和其本原根g。

步骤2:服务端注册阶段,其中包涵以下步骤:

2-1:服务端选择一个自己的身份sid,并将其通过注册使用的安全信道传输给注册中心。

2-2:注册中心记录服务端的注册序列rcid,并使用自身的长期私钥计算服务端的长期私钥s=h(sid||p)和t=h(sid||p||rcid),然后计算服务端的长期公钥和pkt=gt(省略写出dh算法中的模运算modq,下同,即幂运算实为模幂运算)。

2-3:将服务端的私钥s和t通过安全信道发还给服务端,并将公钥pks和pkt发布公钥证书。

步骤3:用户端注册阶段,其中包涵以下步骤。

3-1:用户选择自己的身份id和口令pw并输入自己的生物信息bi以及生成的一个随机数n。然后计算rpw=h(id||pw||n),并将rpw和id通过安全信道传输给注册中心。

3-2:注册中心计算用户端私钥u=h(id||p)*q和用户端公钥pku=gh(id||p),并计算将存有用户端私钥的xi存入智能卡中交还给用户端,并发布其公钥pku的公钥证书。

3-3:用户端计算z=h(id||n||bi||pw),将z和n存入智能卡中,智能卡中信息为<n,xi,z>。

步骤4:用户端和服务端相互认证与密钥协商阶段,其中包涵以下步骤。

4-1:用户端输入口令pw和身份id以及生物信息bi,计算和z'=h(id||n'||bi||pw)并比较z'和卡内信息z,如果不相等,则智能卡拒绝服务,认证失败。若相等,则进行步骤4-2。

4-2:用户端计算rpw=h(id||pw||n),然后寻找服务端的公钥证书,得到服务端公钥,计算a1=(pks)u。生成一个随机数a,计算a2=ga、a3=pkta和a5=h(id||sid||t1||a1||a3),其中t1是当前时间的时间戳。然后将<a2,a4,a5,t1>通过公共信道发送给服务端。

4-3:服务端验证时间戳t1的合法性,然后计算a3'=a2t通过用户端身份id寻找其公钥证书得到用户端公钥,并计算a1'=(pku)s和a5'=h(id||sid||t1||a1'||a3')。将a5'和发送来的a5进行比较,如果不相等,则服务端拒绝服务,认证失败。如相等,则进入步骤4-4。

本步骤中a1'=(pku)s=a1=(pks)u是双方唯一共享的静态dh值(staticdiffie-hellmanvalue),只能由该协议中合法双方共享,第三者无法得到。

4-4:服务端生成一个随机数b,计算a6=gb,a7=a2b,然后计算会话密钥sks=h(id||sid||a1'||a3'||a7||t1||t2)以及其中t2是当前时间的时间戳,将<a6,a8,t2>通过公共信道发送给用户端。

本步骤中a7=a2b=gab是只用双方共享的动态dh值(dynamicdiffie-hellmanvalue),不能被第三方获得,且具有时效性,不能通过记录在此使用。

4-5:用户端验证时间戳t2的合法性,计算a7'=a6a将a8'和发送来的a8进行比较,如果不相等,则服务端拒绝服务,认证失败。如相等,则进行步骤4-6。

4-6:用户端计算会话密钥sku=h(id||sid||a1||a3||a7'||t1||t2)。

由此用户端和服务端在没有可信第三方注册/认证中心的情况下完成了双向认证,并实现了会话密钥sku=h(id||sid||a1||a3||a7'||t1||t2)=sks=h(id||sid||a1'||a3'||a7||t1||t2)的协商和建立。

本发明还设计有用户端口令更改功能,通过以下步骤实现:

步骤a:用户端输入口令pw和身份id以及生物信息bi,计算和z'=h(id||n'||bi||pw)并比较z'和卡内信息z,如果不相等,则智能卡拒绝服务,认证失败。若相等,则进行步骤b。

步骤b:用户端输入一个新的口令pwnew以及生成一个新的随机数nnwe,并计算rpw=h(id||pwnew||nnew)和rpw=h(id||pw||n),然后计算以及

步骤c:将卡内信息xi和n替换为xinew和nnew,完成用户端口令的更新。

本发明的优点在于:

本发明实现了在认证阶段不需要可信第三方注册/认证中心的参与以降低通信步骤与成本,提高协议运行效率的同时实现了对协议的安全性的保证。通过用户端和服务端唯一共享的静态dh值来实现了双方的相互认证,并通过双方唯一共享并用于计算会话密钥的动态dh值来实现了会话密钥的机密性,以保证建立的信道的安全性。因为动态和静态diffie-hellman值是任何第三方不可能以截取、计算或猜测等方式生成或得到得,所以本协议具有认证性和机密性,是安全且在通信上高效的多服务器三因素身份认证与密钥协商协议。

本发明提出的多服务器环境下的身份认证与密钥协商的方法具有良好的可扩展性,在注册中心运算能力饱和的情况下,可将复杂运算即公钥中的模幂乘运算分配给其他可信运算终端,因为diffie-hellman算法中的大素数q和其本原根g是公开的,所以注册中心无需给出自己的长期私钥即主密钥来获得额外的运算能力。

具体实施方式

下面进一步说明本发明。

本发明提出的一种在多服务环境下在认证阶段不需要可信第三方注册/认证中心的参与的三因素身份认证及密钥协商的方法,包含以下阶段:注册中心初始化阶段、服务端注册阶段、用户端注册阶段和认证与密钥协商阶段,以及用户端口令更换的功能部分,具体步骤如下:

阶段一:可信第三方即注册中心(registeredcenter)初始化阶段,注册中心选择大素数p和q作为自己的长期私钥。选择一个单向散列函数h(.)。以及dh(diffie-hellman)算法中的大素数q和其本原根g。

阶段二:服务端注册阶段,其中包涵以下步骤:

步骤a:服务端选择一个自己的身份sid,并将其通过注册使用的安全信道传输给注册中心。

步骤b:注册中心记录服务端的注册序列rcid,并使用自己的长期私钥计算服务端的长期私钥s=h(sid||p)和t=h(sid||p||rcid),然后计算服务端的长期公钥和pkt=gt(省略写出dh算法中的模运算modq,下同,即幂运算实为模幂运算)。

步骤c:将服务端的私钥s和t通过安全信道发还给服务端,并将公钥pks和pkt发布公钥证书。

阶段三:用户端注册阶段,其中包涵以下步骤。

步骤a:用户选择自己的身份id和口令pw并输入自己的生物信息bi,以及生成一个随机数n。然后计算rpw=h(id||pw||n),并将rpw和id通过安全信道传输给注册中心。

步骤b:注册中心计算用户端私钥u=h(id||p)*q和用户端公钥pku=gh(id||p),并计算将存有用户端私钥的xi存入智能卡中交还给用户端,并发布其公钥pku的公钥证书。。

步骤c:用户端计算z=h(id||n||bi||pw),将z和n存入智能卡中,智能卡中信息为<n,xi,z>。

阶段四:用户端和服务端相互认证与密钥协商阶段,其中包涵以下步骤。

步骤a:用户端输入口令pw和身份id以及生物信息bi,计算和z'=h(id||n'||bi||pw)并比较z'和卡内信息z,如果不相等,则智能卡拒绝服务,认证失败。若相等,则进行下一步骤。

步骤b:用户端计算rpw=h(id||pw||n),然后寻找服务端的公钥证书,得到服务端公钥,计算a1=(pks)u。生成一个随机数a,计算a2=ga,a3=pkta和a5=h(id||sid||t1||a1||a3)其中t1是当前时间的时间戳。然后将<a2,a4,a5,t1>通过公共信道发送给服务端。

步骤c:服务端验证时间戳t1的合法性,然后计算a3'=a2t通过用户端身份id寻找其公钥证书得到用户端公钥,并计算a1'=(pku)s和a5'=h(id||sid||t1||a1'||a3')。将a5'和发送来的a5进行比较,如果不相等,则服务端拒绝服务,认证失败。如相等,则进行下一个步骤。本步骤中a1'=(pku)s=a1=(pks)u是双方唯一共享的静态dh值(staticdiffie-hellmanvalue),只能由该协议中合法双方共享,第三者无法得到。

步骤d:服务端生成一个随机数b,计算a6=gb,a7=a2b,然后计算会话密钥sks=h(id||sid||a1'||a3'||a7||t1||t2)以及其中t2是当前时间的时间戳,将<a6,a8,t2>通过公共信道发送给用户端。在本步骤中a7=a2b=gab是只用双方共享的动态dh值(dynamicdiffie-hellmanvalue),不能被第三方获得,且具有时效性,不能通过记录在此使用。

步骤e:用户端验证时间戳t2的合法性,计算a7'=a6a和,将a8'和发送来的a8进行比较,如果不相等,则服务端拒绝服务,认证失败。如相等,则进行下一个步骤。

步骤f:用户端计算会话密钥sku=h(id||sid||a1||a3||a7'||t1||t2)。

由此用户端和服务端在没有可信第三方注册/认证中心的情况下完成了双向认证,并实现了会话密钥sku=h(id||sid||a1||a3||a7'||t1||t2)=sks=h(id||sid||a1'||a3'||a7||t1||t2)的协商和建立。

本发明还设计了用户端口令更改功能,通过以下步骤实现:

步骤a:用户端输入口令pw和身份id以及生物信息bi,计算和z'=h(id||n'||bi||pw)并比较z'和卡内信息z,如果不相等,则智能卡拒绝服务,认证失败。若相等,则进行下一步骤。

步骤b:用户端输入一个新的口令pwnew以及生成一个新的随机数nnwe,并计算rpw=h(id||pwnew||nnew)和rpw=h(id||pw||n),然后计算以及

步骤c:将卡内信息xi和n替换为xinew和nnew。

至此完成了用户端口令的更新。

第四阶段(认证与密钥协商阶段)步骤d和步骤f表明,服务端和用户端两方都可以得到计算唯一会话密钥的所有参数,且双方的参数都相等,故而双方最终都能获得相同的会话密钥。利用会话密钥可以加解密传递的信息,从而实现安全信道的建立。而计算会话密钥的参数内有静态和动态diffie-hellman值。又因只有拥有用户端或服务端的私钥才能计算静态dh值,因此其具有认证性,而在认证完成且通过后才能使用随机数a或b计算动态dh值,而且随机数是任何第三方都不能得到甚至其中之一的,这保证了会话密钥的机密性。而上述条件说明了,在没有获得用户端或服务端私钥的情况下,是无法得到会话密钥的。在实际过程中,用户可以自主选择不同的服务端进行认证和密钥协商,只需将阶段四,步骤b中的a1=(pks)u和a3=pkta中的pks和pkt换成目标服务端的公钥即可。其中a1'=(pku)s和a1=(pks)u两者相等,是利用双方的公私钥计算得出的,在未获得双方私钥的情况下,是无法被第三方得到的,在提供认证性的同时也保证了安全性,同时也起到了数字签名的作用。

本发明根据上述步骤可以完成认证和密钥协商的功能,且服务端对用户端的私钥信息一无所知。反之,用户端也对服务端的私钥信息一无所知。双方的私钥是具有唯一性的,只有各种掌握,保证了协议反复运行时也满足安全性的各种需要。且登陆记录具有不可抵赖性。

由于认证密钥协商协议可以轻易的修改其他变形协议,所以本说明书实施例所述的内容仅仅是对发明构思的实现形式的列举,本发明的保护范围不应当被视为仅限于实施例所陈述的具体形式,本发明的保护范围也及于本领域技术人员根据本发明构思所能够想到的等同技术手段。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1