多服务器环境下基于智能卡的认证方法与流程

文档序号:11327114阅读:345来源:国知局

本发明涉及的技术领域是多服务器环境下身份认证机制的研究,具体涉及一种多服务器环境下基于智能卡且注册中心不参与服务器与用户之间认证过程的认证方法。



背景技术:

随着互联网及其应用的高速发展,多服务器环境下的互联网应用也得到了广泛的普及,使之需求大大增加。虽然在线服务向用户不断提供着方便用户生活的各种服务,但是其安全性问题一直是人们关注的焦点,应该如何做到保证用户的合法性和信息的安全性?合法用户的身份认证是网络安全的第一道安全保障,因此身份的认证机制对任何一个网络服务来说都是非常重要且必不可少的一个环节。在多服务器环境下的身份认证方案中,通过智能卡能够很方便的去辨别远程用户的合法性,因此智能卡得到了广泛的使用。

自2003年tsaur在文献《aflexibleuserauthenticationschemeformulti-serverinternetservices》中首次为人们带来多服务模型的思想以来,多服务器认证的概念得到空前的发展。目前,多服务器环境下基于智能卡的身份认证方案通常可以划分为两种类型:三方认证模式和两方认证模式。三方认证模式是指注册中心需要参与用户与服务器之间的认证,而两方认证模式则不需要注册中心的参与。基于三方认证模式的身份认证技术因为服务器自身没有验证用户合法性的能力,每次认证时,需传递认证消息给第三方认证中心,因此数据通信费用相对比较大。此外,在该模式下的认证效率深受认证中心的效率的影响,攻击者通常会抓住这个把柄去进行攻击消耗服务器,如2015年odelu的《asecurebiometrics-basedmulti-serverauthenticationprotocolusingsmartcards》和2016年li的《anovelchaoticmaps-baseduserauthenticationandkeyagreementprotocolformulti-serverenvironmentswithprovablesecurity》等等。

基于两方认证模式的身份认证技术不需要第三方认证中心才的处理,但实现认证身份,服务器与用户之间事先必需共享一系列的秘密参数,即需要用户的智能卡存储秘密认证信息。而且随着注册的服务器增多,智能卡存储的秘密认证信息增多,这对存储容量是有限的智能卡是很不现实的。正如2016年reddy的《anenhancedbiometricbasedauthenticationwithkey-agreementprotocolformulti-serverarchitecturebasedonellipticcurvecryptography》和chaturvedi的《designofasecuresmartcard-basedmulti-serverauthenticationscheme》等文献都出现上述问题,如何在多服务器环境下,智能卡存储的信息不随着注册服务器增多而增多,是一个急需解决的问题。



技术实现要素:

本发明的目的是为了解决现有技术中的上述缺陷,提供一种多服务器环境下基于智能卡的认证方法。

本发明的目的可以通过采取如下技术方案达到:

一种多服务器环境下基于智能卡的认证方法,所述认证方法包括下列步骤:

s1、通过注册中心初始化系统的相关参数,并公布系统公共参数params;

s2、服务器sj通过注册中心注册,得到私钥

s3、用户ui通过注册中心注册,得到包含身份登录秘密信息{zi,pi}和私钥

s4、当用户ui登录系统时,通过输入本机的身份标识idi',密码pwi'和本机的生物识别信息bi'登入系统并计算身份认证信息向服务器sj发送认证请求{idrc,c,q,t};

s5、当服务器sj接收到用户认证请求时,通过自身的私钥和认证算法认证用户的合法性:

如果表达式成立,则表明用户ui合法,服务器sj继续计算sv=h3(gab)和身份认证信息,最后将{sidj,d,b}发送给用户ui;

s6、用户ui接收到服务器sj的回复后通过验证等式验证服务器的合法性:d=h1(a),

如果表达式成立,则表明服务器是合法的,并计算出sv=h3(gab)如果表达式不成立,则表明服务器是非法的;

s7、服务器sj和用户ui成功认证彼此身份后通过skey(i,j)=kdf(sv)建立彼此的临时会话密钥。

进一步地,所述步骤s1包括:

s11、生成一个阶为q且生成元为p的一个循环群g,与此同时,存在另外一个同样阶为q的循环群gt,其中q是一个足够大的素数,假设(g,gt)是一个双线性映射群,则存在一个映射e:g×g→gt,满足如下性质:

双线性:e(ga,gb)=e(g,g)ab,其中

非退化性:存在g∈g且e(g,g)≠1;

可计算性:存在一个有效的算法去计算e(g,g),g∈g;

s12、选择三个加密哈希函数,分别满足以下三个条件h2:{0,1}*→gt;h3:gt→{0,1}*;令g1=e(g,g),g1∈gt;

s13、选择一个主密钥然后计算公钥pk=gs

s14、注册中心发布的公共参数param:{g,gt,e,g,g1,pk,h1,h2,h3}。

进一步地,所述步骤s2包括:

s21、服务器sj将本机的身份标标识sidj通过安全通道发送给注册中心rc;

s22、注册中心rc接收到服务器sj的注册请求后,根据接收到的身份标标识sidj计算服务器用于认证的秘钥

进一步地,所述步骤s3包括:

s31、插入智能卡sci,设置好idi,pwi和生物特征bi,计算fi=h1(bi),并将注册请求reg={idi,h1(pwi||fi)}通过安全通道发送给注册中心rc;

s32、注册中心rc接收到用户ui的注册请求后,计算用户ui用于认证的私钥之后注册中心rc再分别计算和pi=h1(ki||idi||h1(pwi||fi));

s33、将{zi,pi}通过安全通道发送给用户ui,用户ui接收到回复消息后,将{zi,pi}存储于智能卡sci即完成注册。

进一步地,所述步骤s4包括:

s41、当用户ui登录系统访问服务器sj时,插入智能卡sci,并输入本机的身份标识idi',密码pwi'和本机的生物识别信息bi';

s42、智能卡sci计算fi'=h1(bi')和并验证等式pi=h1(ki'||idi'||h1(pwi'||fi'))是否成立;

s43、如果等式不成立,则登录失败,否则,选择随机秘密参数分别计算r1=g1x,a=gamrui=idrc||idi||a,h=h2(mrui,r1)和q=kix+h,并将{idrc,c,q,t}发送给服务器sj。

进一步地,所述步骤s5包括:

s51、服务器sj接收到认证请求后,利用自身的主密钥计算:

r1=e(t,sjk)(1);

s52、计算和h=h2(mrui,r1),并验证以下等式是否成立:

s53、若等式不成立,则登录失败;若等式成立,则服务器sj将选择一个秘密参数并计算b=gb,d=h1(a)和sv=h3(gab),同时擦除秘密参数b,传送{sidj,d,b}给用户ui。

进一步地,所述步骤s6包括:

s61、用户ui接收到服务器sj的消息后,验证d=h1(a)是否成立;

s62、若等式不成立,则说明服务器消息不可靠,终止会话;否则,计算sv=h3(gab),擦除秘密参数a。

本发明相对于现有技术具有如下的优点及效果:

1)本发明不需要第三方参与认证的过程,使注册中心不用维持在线状态处理所有的认证问题。

2)本发明不仅简洁了用户的密钥管理,而且对于服务器数目的增加并不会造成用户的存储量增加的问题。

3)本发明服务器在认证过程中仅需使用本机的一个私钥,并不需要额外存储关于用户的信息,用户的撤销更替并不会对服务器造成影响。

4)通过ban逻辑分析证明了该认证模型的安全性。

5)性能分析表明,与已有的多服务器环境下基于智能卡的认证方案相比,本发明在计算费用和通信费用不需要增加明显负担的情况下,具有较低的存储费用要求。

附图说明

图1是本发明公开的多服务器环境下基于智能卡认证方法的流程示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

实施例

随着互联网及其应用的高速发展,多服务器环境下的互联网应用也得到了广泛的普及,使之需求大大增加。身份认证是为用户提供所需服务的第一道安全屏障,一直是人们关注的焦点。目前,已有的多服务器环境下基于智能卡的认证方案存在一个问题,即在不需要第三方参与认证时,服务器与用户之间产生认证事件时,需要彼此之间事先共享一系列的秘密参数,即需要用户的智能卡存储秘密认证信息来完成彼此之间的身份认证。而且随着注册的服务器增多,智能卡存储的秘密认证信息增多,这对存储容量是有限的智能卡是很不现实的。如何在多服务器环境下,智能卡存储的信息不随着注册服务器增多而增多,是一个急需解决的问题。

针对上面所述的问题,本实施例提出了一个基于智能卡的多服务器认证方法,该认证方法不需要第三方参与认证,用户只需注册一次,智能卡只需存储常量的信息,就可以实现与多个服务器之间的认证和访问,且服务器端也不需存储任何用户信息,从而解决了多服务器环境下无第三方参与认证,智能卡存储的信息随注册服务器增加而增长的的问题。

同时,通过ban逻辑分析证明了该认证模型的安全性。本发明不需要注册中心参与服务器与用户之间的认证,减轻了注册中心的负担。本发明不仅具有不需要第三方参与认证过程,而且用户的存储量不随着服务器的增加而增加,有效减低了用户存储负担。当有服务器的撤销或增加时,合法用户无需更新密钥,有效地减轻了授权机构的负担。此外,本发明中用户的撤销与增加,服务器亦无需更新密钥。与已有的方案相比,本发明在计算费用和通信费用不需要增加明显负担的情况下,具有较低的存储费用要求。

下面结合图1对本实施例公开的一种多服务器环境下基于智能卡的认证方法的具体过程进行详细说明。包括如下步骤:

s1、通过注册中心初始化系统的相关参数,并公布系统公共参数params。

具体应用中,所述的通过注册中心初始化系统主要进行下面几个步骤:

(1)生成一个阶为q且生成元为p的一个循环群g,与此同时,存在另外一个同样阶为q的循环群gt,其中q是一个足够大的素数,假设(g,gt)是一个双线性映射群,则存在一个映射e:g×g→gt,满足如下性质:

双线性:e(ga,gb)=e(g,g)ab,其中

非退化性:存在g∈g且e(g,g)≠1;

可计算性:存在一个有效的算法去计算e(g,g),g∈g。

(2)选择三个加密哈希函数,分别满足以下三个条件h2:{0,1}*→gt;h3:gt→{0,1}*;令g1=e(g,g),g1∈gt。

(3)选择一个主密钥然后计算公钥pk=gs

(4)注册中心发布的公共参数param:{g,gt,e,g,g1,pk,h1,h2,h3}。

s2、服务器sj通过注册中心注册,得到私钥

具体应用中,服务器sj将本机的身份标标识sidj通过安全通道发送给注册中心rc,注册中心rc接收到sj的注册请求后,根据接收到的身份标标识sidj计算服务器用于认证的秘钥

s3、用户ui通过注册中心注册,得到包含身份登录秘密信息{zi,pi}和私钥

具体应用中,用户ui注册时,首先插入智能卡sci,设置好idi,pwi和生物特征bi,计算fi=h1(bi),并将注册请求reg={idi,h1(pwi||fi)}通过安全通道发送给注册中心rc。rc接收到ui的注册请求后,计算用户用于认证的私钥之后注册中心rc再分别计算和pi=h1(ki||idi||h1(pwi||fi))。最后,将{zi,pi}通过安全通道发送给用户ui。ui接收到回复消息后,将{zi,pi}存储于sci即完成了注册。

s4、当用户ui登录系统时,通过输入本机的身份标识idi',密码pwi'和本机的生物识别信息bi'登入系统并计算身份认证信息向服务器sj发送认证请求{idrc,c,q,t}。

具体应用中,当用户ui想要访问服务器sj时,首先要插入智能卡sci,并输入本机的身份标识idi',密码pwi'和本机的生物识别信息bi'。sci计算fi'=h1(bi')和并验证pi=h1(ki'||idi'||h1(pwi'||fi'))是否成立。如果等式不成立,则登录失败。否则,选择随机秘密参数分别计算r1=g1x,a=gamrui=idrc||idi||a,h=h2(mrui,r1)和q=kix+h,并将{idrc,c,q,t}发送给服务器sj。

s5、当服务器sj接收到用户认证请求时,通过本机的私钥和认证算法认证用户的合法性:

如果表达式成立,则表明用户ui合法,服务器sj继续计算sv=h3(gab)和身份认证信息,最后将{sidj,d,b}发送给用户ui。

具体应用中,服务器sj接收到认证请求后,首先利用自身的主密钥计算:

r1=e(t,sjk)(1)

这样服务器sj就能获取到r1,接着计算和h=h2(mrui,r1),并验证以下等式是否成立:

若等式不成立,则登录失败;若等式成立,则服务器sj将选择一个秘密参数并计算b=gb,d=h1(a)和sv=h3(gab),最后,擦除秘密参数b,送{sidj,d,b}给用户ui。

s6、用户ui接收到服务器sj的回复后通过验证等式验证服务器的合法性:

d=h1(a),

如果表达式成立,则表明服务器是合法的,并计算出sv=h3(gab)如果表达式不成立,则表明服务器是非法的。

具体应用中,用户ui接收到服务器sj的消息后,验证d=h1(a)是否成立。若等式不成立,则说明服务器消息不可靠,终止会话;否则,计算sv=h3(gab),擦除秘密参数a。

s7、服务器sj和用户ui成功认证彼此身份后通过skey(i,j)=kdf(sv)建立彼此的临时会话密钥。

具体应用中,上述步骤s5和步骤s6中的验证均通过,则说明服务器sj和用户ui成功认证彼此身份,最后通过skey(i,j)=kdf(sv)建立彼此的临时会话密钥。

多服务器环境下,注册中心不参与认证的模型主要由三个实体组成,一个注册中心(rc),多个系统用户(ui)和多个服务器(sj)。该模型下rc只向用户和服务器提供注册服务,任何想要参与系统的用户或服务器都需先完成注册的过程。sj通常都是充当应用服务器,为合法用户提供用户所需的服务。

当用户和服务器进行注册时,无论服务器还是用户注册时存储的秘密参数都与其他服务器和用户的数量无关。对应用服务器而言,仅需保存本机的一个私钥;对用户而言,智能卡除了保存相关的登录秘密参数外,也仅需保存认证时所用到的一个私钥。这就避免了用户存储的认证所用到的秘密参数随着服务器的增加而增加的问题。

当ui成功登录智能卡之后,想要sj提供服务时,sj不可能盲目的向用户提供服务,需要认证申请服务的用户是否合法。同样的道理,因为服务器也可能是伪装的,用户需要对服务器进行认证。因此,ui请求服务之前需要先与目标服务器sj完成一个彼此认证的过程。该过程中,ui需要通过本机的私钥将本机的身份验证信息封装进认证请求中,再将认证请求发送给目标服务器sj。目标服务器sj接收到认证请求之后,通过本机的私钥解密出用户的身份信息确认用户的合法性,再将该身份信息处理后发送回用户,使用户亦能认证服务器的合法性。因为只有目标服务器的私钥才能成功解密出该身份信息,彼此之间在认证的过程中能够成功建立会话密钥。

不管之后有没新的服务器加入或原来的合法服务器过期,用户所存储的秘密参数并不会因此而增多,对服务器而言,亦是如此。

综上所述,本发明为了实现多服务器环境下安全有效的身份认证方案,为了满足在不需要第三方参与认证的基础上,用户只需注册一次,智能卡只需存储常量的信息,就可以实现与多个服务器之间的认证和访问,且服务器端也不需存储任何用户信息,从而解决了多服务器环境下无第三方参与认证时,智能卡存储的信息随注册服务器增加而增长的问题。通过ban逻辑分析证明了该认证模型的安全性。性能分析表明,与已有的多服务器环境下基于智能卡的认证方案相比,本发明在计算费用和通信费用不需要增加明显负担的情况下,具有较低的存储费用要求。

上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。

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