首页> 中国专利> 基于口令和智能卡的远程认证协议方法

基于口令和智能卡的远程认证协议方法

摘要

本发明提出一种基于口令和智能卡的远程认证协议方法,属于信息安全领域。协议采用优化的椭圆曲线算法,嵌入计数组和鉴别码,提供了口令修改和撤销丢失智能卡的功能。本发明保护了用户的匿名性,安全高效,通过两次交互即实现用户的双向认证并成功协商会话密钥,适用于电子现金、在线教育及远程医疗等远程认证系统。

著录项

  • 公开/公告号CN104901809A

    专利类型发明专利

  • 公开/公告日2015-09-09

    原文格式PDF

  • 申请/专利权人 北京航空航天大学;

    申请/专利号CN201510195736.3

  • 发明设计人 张筱;单宝松;郑志明;李轩昂;

    申请日2015-04-23

  • 分类号H04L9/32(20060101);H04L29/06(20060101);

  • 代理机构

  • 代理人

  • 地址 100191 北京市海淀区学院路37号

  • 入库时间 2023-12-18 10:45:37

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-12-21

    授权

    授权

  • 2015-10-07

    实质审查的生效 IPC(主分类):H04L9/32 申请日:20150423

    实质审查的生效

  • 2015-09-09

    公开

    公开

说明书

技术领域

本发明属于信息安全技术领域,具体涉及一个基于口令和智能卡的远程认证协议方法。

背景技术

随着计算机网络和互联网的高速发展,通讯技术使在线服务质量得到大幅度的提升。无论在任何时间、 任何地点,用户都可以使用远程服务器上的服务。这种服务被大量应用于电子金融、电子医药、电子教育 等诸多领域。但是由于信息通过公共信道进行传输,攻击者通常采用窃听、模仿、更改和重放等攻击方法 阻碍用户与服务器之间的交互,导致用户安全隐私的泄露。设计高效安全的远程认证协议,保护合法用户 不受攻击变得至关重要。

1981年,Lamport首先提出了基于口令的认证协议,但由于口令的简单易记导致协议极容易遭受到字 典攻击等,这种基于单因素的认证协议不能再满足人们日常的通讯需求。近年来,越来越多的双因素认证 协议相继被提出。所谓双因素,主要基于两个事实:(1)用户所秘密知道的,比如口令;(2)用户所独自拥 有的,比如智能卡。在双因素认证协议中,用户与服务器进行相互认证并建立会话密钥,会话密钥是为了 在用户与服务器通过不安全信道进行交互时,保证传输信息的安全可信性。

如何保证协议安全高效地运行成为当今研究的主要方向。由于一个160-bit的ECC密钥与一个 1024-bit RSA密钥的安全强度是相同的,运用ECC能够保证在相同安全性能下低运算消耗。此外,基于 ECC的运算,比如椭圆曲线点加、乘运算比传统的模幂运算要快得多,由此椭圆曲线密码体制(ECC)被大 量运用于加密体制设计中。目前大部分基于ECC的协议方法在信息传输过程中不能保护用户匿名性,造成 了用户被攻击者追踪;缺失丢失智能卡撤销功能,一旦智能卡丢失或被窃取,用户不能再通过任何办法获 取服务器的服务;此外在运算性能及安全性能方面也需要进行提升以保证协议能够适用复杂多变的网络环 境。

本发明的先进性在于,通过运用计数组及优化ECC算法,保证协议强安全性能的前提下,运行速率得 到大幅度提升。

发明内容

针对上述存在的问题,本发明提出了一种基于口令和智能卡的远程认证协议方法。

本发明所述的远程认证协议,其特征在于,该协议方法包括以下六个步骤:

步骤1:服务器S产生系统参数;

步骤2:用户U向服务器S在安全信道中提交注册请求,S经过验证处理后,将注册信息存存储在智 能卡中并通过安全信道反馈给U,最终U完善智能卡信息并保存;

步骤3:用户U向远程服务器S提交登录请求,计算认证信息并将签名发送给S;

步骤4:服务器S与用户U通过对签名的验证实现双向认证,并协商出一个会话密钥;

步骤5:当用户U需要修改口令时,不需要服务器S参与,仅通过智能卡进行数据更新即可;

步骤6:当用户U不慎将智能卡丢失或者智能卡被窃取时,需要请求服务器S将原有的智能卡在数据 库中的信息撤回并重新注册新的智能卡信息。

步骤1中服务器S选择椭圆曲线E:y2≡x3+ux+v(modp),Ep(u,v)是椭圆曲线E的n阶点加法群,P 为其生成元,即n·P=O。然后选择作为自己的私钥并保密,计算Y=s·P为公钥,并选择单向哈希 函数公布其系统参数Ψ={Ep,H(),P,p,Y}。

步骤2中,具体包括以下步骤:

步骤2.1:用户U决定自己的身份ID,口令PW和随机数计算A=H(PW||a),然后通过安 全信道将ID和A发送给服务器S。

步骤2.2:在接收到ID和A之后,S首先验证U提交的注册信息,如果ID在数据库中可以找到,则 要求U输入一个新的ID。

步骤2.3:如果用户U是第一次注册自己的信息,则服务器S置N=0,当U因丢失智能卡而需要重 新想服务器注册时,S将会更新N=N+1,然后将(ID,N)存入数据库中。

步骤2.4:服务器S计算Q=H(ID||s),M=A⊕Q=H(PW||a)⊕H(ID||s),V=H(ID||A)。选取随机 数计算MID=ID⊕H(m),R=s⊕m。S将{Ep,H(),P,p,Y,N,MID,R,M,V}存储在智能卡中并通 过安全信道发送给U。

步骤2.5:U接收到智能卡后,将a输入其内保存。最终,智能卡包含信息为 {Ep,H(),P,p,Y,N,MID,R,M,V,a}。

步骤3中所述的为了能够登录到远程服务器S,用户U计算登录信息并提交给S。首先U将智能卡SC 插入读卡器中,并输入身份ID和口令PW,然后智能卡SC计算A=H(PW||a),Q=M⊕A。同时SC计算 V*=H(ID||A)并验证V*与V是否相等。如果不相等,则智能卡停止执行协议,否则,智能卡SC选择和时间戳T1,计算B=Q·b·P,H(m)=MID⊕ID,CID=MID⊕H(H(m)||T1),F1=H(ID||B||T1||Q||N)。最 后智能卡SC将签名m1={CID,B,R,F1,T1}发送给S。

步骤4中,具体包括以下步骤:

步骤4.1:接收到m1后,S验证T1是否有效,如果T1无效,S停止执行协议。否则,S计算m*=s⊕R, Q*=H(ID*||s),ID*=CID⊕H(m*)⊕H(H(m*)||T1),F1*=H(ID*||B||T1||Q||N),N取自(ID,N,T1)。然后, S验证F1*和F1是否相等。如果不等,则停止执行协议,否则,S成功认证U。

步骤4.2:S选择随机数和时间戳T2,然后计算C=c·P,d=Q*-1·c·B=c·b·P, sk=H(ID*||B||C||d),F2=H(sk||d||T2)。然后S将m2={F2,T2,C}发送给U,并将(ID,N,T1)存储在数据 库中。

步骤4.3:U接收到m2后,检查T2是否有效。如果无效,S停止执行协议,否则,计算d*=b·C, sk*=H(ID||B||C||d*),F2*=H(sk*||d*||T2)并验证F2与F2*是否相等,如果不等,则停止执行协议,否则, 成功认证S,并接受sk*为正确的会话密钥。

步骤5中,具体包括以下步骤:

步骤5.1:用户U将智能卡插入读卡器中,并输入旧的身份ID和口令PW。

步骤5.2:智能卡SC计算A=H(PW||a),Q=M⊕A,V*=H(ID||A),并验证V*与V是否相等。若 不等,则SC拒绝修改口令请求并将拒绝修改信息反馈给用户,否则,继续执行下面步骤。

步骤5.3:智能卡SC要求U输入两遍设置的新口令和一个新的随机数SC计算 Anew=H(PWnew||anew),Mnew=Anew⊕Q=H(PWnew||anew)⊕H(ID||s),Vnew=H(ID||Anew)。选取一个新的 随机数计算MIDnew=ID⊕H(mnew),Rnew=s⊕mnew然后智能卡将原来的 {Ep,H(),P,p,Y,N,MID,R,M,V,a}更新为{Ep,H(),P,p,Y,N,MIDnew,Rnew,Mnew,Vnew,anew}。

步骤6中,具体包括以下步骤:

步骤6.1:用户U选择新的口令PW'和一个随机数然后将ID和A'=H(PW'||a')通过安全信 道发送给S。

步骤6.2:S首先验证ID格式的正确性,如果格式不正确则停止执行协议,否则S将(ID,N,T1)中的N 更新为N'=N+1以达到撤回丢失智能卡的目的。

步骤6.3:S计算M'=A'⊕Q=A'⊕H(ID||s),V'=H(ID||A'||PW')。选取一个新的随机数计算MID′=ID⊕H(m′),R′=s⊕m′,S将{Ep,H(),P,p,Y,N',MID′,R′,M',V'}存储进智能卡中,并通过安全 信道发送给U。

步骤6.4:接收到智能卡后,U将a'嵌入其中,最终,智能卡包含信息为 {Ep,H(),P,p,Y,N',MID′,R′,M',V',a'}。

本发明具有的有益效果:

本发明保护用户匿名性。在步骤2中,U通过安全信道将ID传输给S,这意味着任何攻击者不能窃 取到ID。而且在步骤3-4中,为了保护ID,我们将动态身份信息的CID=MID⊕H(H(m)||T1)用于传输, 因为ID=CID⊕H(m)⊕H(H(m)||T1)而随机数m对于攻击者是无法知晓的,也就是说攻击者不能通过CID 还原出用户U的真是身份,从而表明本发明可以保护用户的匿名性。

本发明提供双向认证和密钥协商。在步骤4中,用户与服务器达到了双向认证的目的。首先,通过步 骤1),服务器S成功认证了用户U,再通过步骤3),用户U也成功认证了服务器S,这样双方便实现了 相互认证。此后,计算会话密钥sk=H(ID||B||C||d),其中d=c·b·B是由U和S共同决定的,这意味着, 会话密钥sk在每一次会话中都不会相同,当会话到期后,sk不能被重复使用,因为它是由B、C和d共 同决定的。这保证了U和S之间秘密信息的传递。从而达到了双向认证和密钥协商的目的。

本发明抵抗重放攻击。在步骤4中,如果服务器S接收到再一次的登录请求,即m1'={CID',B1',F1',T1'}, S从(ID,N,T1)中提取出T1与T1'进行比较,如果T1'=T1,那么S拒绝m1',因为这可能是发自攻击者的重放 信息,否则,S将(ID,N,T1)更新为(ID,N,T1')。从而保证协议抵抗重放攻击。

本发明抵抗拒绝服务攻击。在步骤3、5中,当攻击者输入错误的ID'和PW',智能卡通过计算 V*=H(ID′||A)并与V进行比对,发现不相等后,停止协议进行,并拒绝攻击者的请求,从而保证协议抵 抗拒绝服务攻击。

本发明抵抗已知密钥攻击。由于哈希函数H()的单向性和b,c的随机性质,使得每个会话密钥sk都不 尽相同。因此攻击者无法从之前或者之后的会话中得到相近会话的密钥,从而保证协议抵抗已知密钥攻击。

本发明抵抗偷窃智能卡攻击。假设用户U的智能卡遭到偷窃,攻击者获得了智能卡SC中的信息 {Ep,H(),P,p,Y,N,MID,R,M,V,a},同时通过公共信道,攻击者还掌握了m1={CID,B,R,F1,T1},这样造成 了MID,M,V,a的泄露,但是由于攻击者不能得到用户的口令PW,使得他不能计算出A,也就无法得到Q。 同时,攻击者也无法知晓随机数m,m是MID的重要组成部分。从而,攻击者不能冒充用户欺骗服务器, 从而保证协议抵抗偷窃智能卡攻击。

本发明提供前向安全性。即使私钥s被泄露,攻击者也不能计算出sk=H(ID||B||C||d),因为 d=c·b·P,而b,c是随机选取且相互独立的,同时,通过m1和m2,攻击者可以获得到(B,C)=(Q·b·P,c·P), 基于CDH问题的难解性可知,攻击者无法计算出d,也就无法得到sk。从而协议具有密钥前向安全性。

本发明的运算性能强,在(CPU:1.6GHz,RAM:2.0GB)环境下整个过程计算时间为5.97ms,相比现有 的协议计算时间大幅度缩短。

附图说明

图1为本协议方法的总体流程示意图;

图2位用户注册的流程图;

图3为用户登录认证的示意图;

图4位用户登录认证的流程图;

图5为用户修改口令的示意图;

图6为用户撤销丢失智能卡的示意图;

图7位用户撤销丢失智能卡的流程图。

具体实施方法

下面将结合附图和实施例对本发明作进一步的详细说明。

本协议的安全性和高效性主要体现在设计中优化椭圆曲线点乘算法,并在适当节点嵌入鉴别码和计数 组,可具体应用在网上银行等系统中,如图1所示具体操作如下:

(一)初始化阶段

在本阶段,服务器S将会通过以下步骤产生系统参数。

1)S选择椭圆曲线E:y2≡x3+ux+v(modp),Ep(u,v)是椭圆曲线E的n阶点加法群,P为其生成元, 即n·P=O。

2)S选择作为自己的私钥并保存,计算Y=s·P为公钥,然后选择单向哈希函数

3)S保密s,公布其系统参数Ψ={Ep,H(),P,p,Y}。

(二)注册阶段

在本阶段,每一个用户U与服务器S需要在安全信道中进行通讯,双方按照以下步骤执行:

1)用户U决定自己的身份ID,口令PW和随机数计算A=H(PW||a),然后通过安全信道 将ID和A发送给服务器S。

2)在接收到ID和A之后,S首先验证U提交的注册信息,如果ID在数据库中可以找到,则要求U输 入一个新的ID。

3)如果用户U是第一次注册自己的信息,则服务器S置N=0,当U因丢失智能卡而需要重新想服 务器注册时,S将会更新N=N+1,然后将(ID,N)存入数据库中。

4)服务器S计算Q=H(ID||s),M=A⊕Q=H(PW||a)⊕H(ID||s),V=H(ID||A)。选取随机数 计算MID=ID⊕H(m),R=s⊕m。S将{Ep,H(),P,p,Y,N,MID,R,M,V}存储在智能卡中并通过 安全信道发送给U。

5)U接收到智能卡后,将a输入其内保存。最终,智能卡包含信息为 {Ep,H(),P,p,Y,N,MID,R,M,V,a}。

(三)登录阶段

为了能够登录到远程服务器S,用户U需按照如下操作计算登录信息:

1)登录时,U将智能卡SC插入读卡器中,并输入身份ID和口令PW,然后智能卡SC计算 A=H(PW||a),Q=M⊕A。同时SC计算V*=H(ID||A)并验证V*与V是否相等。如果不相等,则智能卡 停止执行协议,否则,继续执行下一步。

2)智能卡SC选择和时间戳T1,计算B=Q·b·P, CID=MID⊕H(H(m)||T1),F1=H(ID||B||T1||Q||N)。然后智能卡SC将m1={CID,B,R,F1,T1}发送给S。

(四)认证阶段

1)接收到m1后,S验证T1是否有效,如果T1无效,S停止执行协议。否则,S计算m*=s⊕R, Q*=H(ID*||s),ID*=CID⊕H(m*)⊕H(H(m*)||T1),F1*=H(ID*||B||T1||Q||N),N取自(ID,N,T1)。然后, S验证F1*和F1是否相等。如果不等,则停止执行协议,否则,S成功认证U。

2)S选择随机数和时间戳T2,然后计算C=c·P,d=Q*-1·c·B=c·b·P,sk=H(ID*||B||C||d), F2=H(sk||d||T2)。然后S将m2={F2,T2,C}发送给U,并将(ID,N,T1)存储在数据库中。

3)U接收到m2后,检查T2是否有效。如果无效,S停止执行协议,否则,计算d*=b·C, sk*=H(ID||B||C||d*),F2*=H(sk*||d*||T2)并验证F2与F2*是否相等,如果不等,则停止执行协议,否则, 成功认证S,并接受sk*为正确的会话密钥。

通过以上步骤用户与服务器之间通过了双向认证并形成了会话密钥。

(五)口令修改阶段

1)用户U将智能卡插入读卡器中,并输入旧的身份ID和口令PW。

2)智能卡SC计算A=H(PW||a),Q=M⊕A,V*=H(ID||A),并验证V*与V是否相等。若不等,则 SC拒绝修改口令请求并将拒绝修改信息反馈给用户,否则,继续执行下面步骤。

3)智能卡SC要求U输入两遍设置的新口令和一个新的随机数SC计算 Anew=H(PWnew||anew),Mnew=Anew⊕Q=H(PWnew||anew)⊕H(ID||s),Vnew=H(ID||Anew)。选取一个新的 随机数计算MIDnew=ID⊕H(mnew),Rnew=s⊕mnew然后智能卡将原来的 {Ep,H(),P,p,Y,N,MID,R,M,V,a}更新为{Ep,H(),P,p,Y,N,MIDnew,Rnew,Mnew,Vnew,anew}。

通过以上步骤用户完成了口令修改。

(六)丢失智能卡撤回阶段

当用户U不慎将智能卡丢失或者智能卡被窃取时,需要将原有的智能卡在数据库中的信息撤回,在本 阶段,U向S请求撤回丢失智能卡数据:

1)用户U选择新的口令PW'和一个随机数然后将ID和A'=H(PW'||a')通过安全信道发送 给S。

2)S首先验证ID格式的正确性,如果格式不正确则停止执行协议,否则S将(ID,N,T1)中的N更新为 N'=N+1以达到撤回丢失智能卡的目的。

3)S计算M'=A'⊕Q=A'⊕H(ID||s),V'=H(ID||A')。选取一个新的随机数计算 MID′=ID⊕H(m′),R′=s⊕m′,S将{Ep,H(),P,p,Y,N',MID′,R′,M',V'}存储进智能卡中,并通过安全信道 发送给U。

4)接收到智能卡后,U将a'嵌入其中,最终,智能卡包含信息为{Ep,H(),P,p,Y,N',MID′,R′,M',V',a'}。

通过以上步骤,用户撤消了丢失的智能卡。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号