基于智能卡的动态身份认证协议
扫描二维码
随时随地手机看文章
0 引言
1981年Lamport等[1]首次提出基于口令的认证方案,这种方案实用性虽强,但这类方案存在致命的缺陷——离线口令猜测攻击。1993年 Chang等[2]提出结合口令和智能卡来提高认证协议的安全性和有效性,从此产生了一系列的认证方案[3-7]。2012年唐宏斌等[8]提出一种利用椭圆曲线加密机制和时间戳的认证协议,2013年皮兰等[9]指出在不安全信道中引入时间戳是存在严重的时钟同步问题,并提出一种的异步认证协议。本文指出皮兰等方案因不能保护用户的匿名性而缺乏实用性,因引入停止协议执行阈值很容易造成一个严重的安全问题——DoS攻击,并提出一种采用动态身份和三次握手技术的远程用户认证方案。新协议不仅能够保护用户的匿名性,而且有效的抵抗DoS攻击,充分保证了协议性能的高效性。
1 皮兰等方案回顾
文中的符号定义如下:U为用户;S为服务器;SC为智能卡;PW为用户的口令;k为服务器的高熵秘钥;h(·)为单项哈希函数;||为字符串连接操作;?堠为异或运算;?圯为安全信道;→为普通信道。
1.1 皮兰等方案
皮兰等方案由五个阶段组成,本文把登录和认证放在一起,省略口令修改阶段。
1.1.1 系统设置阶段
服务器选取有限域GF(q)上的椭圆曲线E,由E上点形成一个点加法群Ea,b(GFq),设P是阶为n的生成元。服务器选取私钥k和计算对应的公钥Q=kP。服务器保密k,公布其系统参数{q,a,b,n,P,Q}。
1.1.2 注册阶段
(1)用户选取身份ID、口令PW和新鲜数N,通过安全信道把消息{ID,y=h(PW||N)}发给服务器。
U?圯S:{ID,y}
(2)收到{ID,y},服务器计算s=h(ID||k),v=s?堠y,通过安全信道把存有v,h(·)和系统参数的智能卡发给用户。
S?圯U:SC
(3)用户收到智能卡后,把N输入智能卡,最后智能卡中含有v,h(·)和系统参数。
1.1.3 登录和认证阶段
(1)用户插入智能卡并输入ID和PW。智能卡向服务器发送登录请求{ID}。
SC→S:登录请求{ID}
(2)服务器收到ID后,验证ID格式有效性,若无效,停止本次协议;否则任选随机数{r1}发给智能卡。
S→SC:{r1}
(3)收到r1后,智能卡计算y=h(PW||N)和s=v?堠y=h(ID||k),然后任选随机数r2,再计算R1=r2P,R2=r2Q以及C1=h(ID,S,s,R2,r1)。最后智能卡发送登录消息{R1,C1}给服务器。
SC→S:{R1,C1}
(4)服务器收到{R1,C1}后,计算s′=h(ID||k),R’2=kR1以及C’2=h(ID,S,s′,R’2,r1),比较C’2是否等于C1;若二者不等,停止本次协议;否则服务器认证用户成功,计算C2=h(S,ID,s′,R’2)发送给智能卡。
S→U:{C2}
(5)收到C2后,智能卡计算C’2=h(S,ID,s,r1,R2),并比较C’2是否等于C2,若二者不等,服务器停止本次协议;否则用户认证服务器成功。用户在登录和认证阶段中的停止执行协议次数超过某个阈值h将被锁定帐号,必须亲自到认证中心解开。
1.2 皮兰等方案存在的问题
(1)缺乏匿名性
在皮兰等方案中,用户登录使用真实的身份ID在不安全信道中传输容易被攻击者截获而泄露用户的个人信息,便于攻击者对特定用户做出一系列攻击,如常见于协议中的拒绝服务(DoS)攻击,冒充攻击等。另外,面对网络信息安全的严峻形势,用户也意识到个人信息的重要性,特别是在一些特殊的应用中,例如网上匿名投票,保密电子商务等,用户的信息是不便泄露的。因此,皮兰等方案缺乏很大的实用性。
(2)对DoS攻击是脆弱的
为阻止在线口令猜测,皮兰等方案设计用户在登录和认证中停止执行协议次数超过某个阈值h,将锁定该帐号,用户必须亲自到认证中心解开帐号,这种方案极容易造成DoS攻击。因为登录和认证阶段是通过不安全信道通信,一方面容易受到各种不确定因素(如环境,其他设备等)的干扰;另一方面,皮兰等方案缺乏匿名性,用户每次登录与服务器通信频繁(四次),攻击者易锁定特定用户后任意伪造、篡改、中断通信消息{ID},{r1},{R1,C1}或{C2},都能造成停止执行协议造成DoS攻击。如果此情况常发生,可能造成整个系统崩溃,皮兰等方案具有严重的不合理性。
2 新的认证方案
新方案包括系统初始化、注册、登录认证和口令修改等四个阶段,具体如下。
2.1 系统初始化阶段
该阶段与皮兰等方案的系统设置类似,但注意:(1)服务器选择自己的密钥k,以及用户在登录时选择的随机数r1,满足k,r1∈[1,n-1],这是保证kP,r1P∈Ea,b[GFq]。(2)椭圆曲线上的离散对数问题(ECDLP):给定P,Q∈Ea,b[GFq],求一个k满足Q=kP是相对困难的[10]。
2.2 注册阶段
(1)用户选取自己的身份ID、口令PW和高熵随机数N,通过安全信道发送消息{ID,y=h(PW||N)}给服务器。
U?圯S:{ID,y}
(2)收到{ID,y},服务器为用户分配初次动态登录身份TID0,计算s=h(ID||k),v=s?堠y,把{TID0,ID}保存到校验表中,把{TID0,v,h(·)}以及系统参数存入智能卡中,最后服务器通过安全信道把智能卡分发给用户。
S?圯U:SC
(3)用户收到智能卡后把N输入智能卡,最后智能卡中含有TID0,v,h(·)和系统参数{q,a,b,n,P,Q}。
2.3 登录认证阶段
用户先将智能卡插入读卡器,并输入身份ID和口令PW,然后执行以下操作:
(1)智能卡计算y=h(PW||N)和s=v?堠y,并选择一个随机数r1∈[1,n-1],计算R1=r1P,R2=r1Q,C1=h(TID0,ID,s,R2)后向服务器发送请求消息。
SC→S:登录请求{TID0,R1,C1}
(2)收到消息后,服务器用TID0从校验表找对应的ID,若找不到停止本次会话;否则,计算s′ =h(ID||k),R’2=kR1,C’2=h(TID0,ID,s′,R’2),并检验C’2=?C1。若不相等,停止本次会话;否则服务器为用户分配下一次动态登录身份TID1,并计算C2=h(TID1,s′,R’2)后发送消息{TID1,C2}给用户。
S→SC:{TID1,C2}
(3)收到{TID1,C2}后,用户计算C’2=h(TID1,s,R2)并检验C’2=?C2。若不相等,停止本次会话;否则用户认证服务器成功,把动态身份TID1保存到智能卡,直到下一次成功登录并收到动态身份TID2,再用TID2更新TID0。最后计算 C3=h(TID0,TID1,s,R2),智能卡发送{C3}给服务器。[!--empirenews.page--]
SC→S:{C3}
(4)收到{C3}后,服务器计算C’2=h(TID0,TID1,s′,R’2)并检验C’2=?C3。若相等,服务器认证用户成功,并更新TID0为TID1;否则,拒绝用户的本次登录请求。
2.4 口令修改阶段
当用户想修改口令时,可以如下更新口令:用户插入智能卡,输入旧的口令PW后提示两次输入新的口令PWnew,确保新口令的正确。智能卡计算 y=h(PW||N),ynew=h(PWnew||N)和vnew=v?堠y?堠ynew=synew后用vnew替换原有的v,这样口令修改阶段完成。
3 新认证方案的安全性证明和性能分析
3.1 安全性证明
新协议给每个用户分配动态登录身份保护用户的匿名性,攻击者想进行攻击必须锁定目标用户,否则由于每次登录身份不同,攻击者的攻击都是无效的。故假设攻击者已锁定目标用户,并能成功截获目标用户与服务器通信信息。
命题1 新协议能抵抗DoS攻击
证明:一般地,用户用动态身份TIDi登录,并收到下一次动态身份TIDi+1。但在用户登录过程中遭到DoS攻击,用户可以再次利用动态身份 TIDi登录,因为新协议采用三次握手技术,为确保用户的动态登录身份和服务器储存的同步,每次只有当用户登录成功时,用户和服务器才更新动态登录身份。这样只要DoS攻击不是持续的,用户一定能登录到服务器,而不必每次都要到认证中心解开账号,这种设计不会产生其他的安全问题,主要是重放攻击和冒充攻击。
命题2 新协议能抵抗重放攻击和冒充攻击
证明:这里有两种重放攻击:攻击者当用户正常登录时进行重放攻击;攻击者根据锁定的用户,先进行DoS攻击迫使用户重新登录后进行重放攻击。新协议采用动态登录身份,、攻击者直接重放以前的登录信息很容易被识破,假设攻击者试着构造正确的通信消息进行重放攻击,冒充合法用户欺骗服务器,或者冒充服务器欺骗用户,也即身份冒充攻击。
(1)攻击者在用户正常登录时进行重放攻击。首先假设攻击者冒充用户,试着构造{TIDi,R1,C1}和{C3}。
①重放TIDi,R1,构造C1,C3。假设攻击者根据锁定的用户,在用户登录服务器时截获登录消息{TIDi,R1,C1},直接从中获取TIDi 和R1用于随后重放攻击,试着构造C1,C3。但构造C1=h(TIDi,ID,s,R2),C3=h(TIDi,TIDi+1,s,R2),攻击者必须计算R2=r1Q。攻击者可能从R1=r1P中计算随机数r1,但这相当于解决ECDLP难题,是很难实现的;攻击者可能自己选一个随机数r计算出R,进而计算
但要计算C1,C3,攻击者还必须计算s。而s的计算与用户的口令PW和服务器的秘钥k有关,是很难获得的,所以此种攻击是无法成功的。
②重放TIDi,R1,C1,构造C3。假设攻击者在用户登录时截获第三轮消息{C3},试着构造C3。但是由上面分析,C3中含有s和R2是很难得到的,而且在新协议中用户只有通过与服务器的第三轮握手后才能被认证成功,所以此种攻击仍无法实现。
攻击者冒充服务器,重放消息{TIDi+1,C2}。
重放TIDi+1,构造C2。假设攻击者在服务器向用户发送消息时截获并{TIDi+1,C2},重放TIDi+1,构造C2。攻击者构造正确的 C2=h(TIDi+1,s′),必须获得s′,但是这些值都与服务器的秘钥k有关,攻击者是很难得到的,所以此种攻击也是不可能的。
(2)先DoS攻击后重放攻击。此种情况由于用户重新输入身份和口令,只是发送同样的动态身份,根据上面的分析,与直接进行重放攻击类似,所以此攻击仍是无法实现。此外,通过上面分析,只有合法用户才能计算正确的信息让服务器认证,只有真正的服务器才能计算正确的消息通过用户的认证,所以新协议提供双向认证性。
命题3 新协议能抵抗口令猜测攻击
证明:下面分别从用户端和服务器端来证明。
(2)假设此处的攻击者是特权内部攻击者,即来自系统管理人员,并且从用户开始注册就锁定目标用户,记录用户递交信息ID,y=h(PW||N)接下来进行口令猜测攻击。但是由于y中含有高熵随机数N,攻击者仍无法实行口令猜测攻击。另外,新协议在服务器端保存用户的动态登身份TIDi和真实身份 ID,而TIDi只是用户身份的一个代表,由系统随机分配;用户的真实身份ID,主要是为了服务器辨别不同的用户,这两个值在协议中都不是敏感的数据,所以新协议也能抵抗被盗校验子攻击。
3.2 性能分析
各种方案计算代价和安全性比较分别如表1和表2所示。从表1看,与Chen等方案比较,新方案需要椭圆曲线上点乘运算并不占优;但从表2看,Chen 等方案的安全性明显低,而且新方案建立在椭圆曲线密码机制上,与传统的公钥密码体制(如RSA)比较具有很多优势,例如256位的ECC与1024位的 RSA具有相同的安全性[10],所以在同安全条件下,新方案在总的性能上占优。从表1看,与唐-皮等方案(唐宏斌等方案和皮兰等方案)比较,新方案在登录认证阶段多2个哈希运算。但是唐宏斌等方案在用户登录前需要一个预计算阶段,皮兰等方案在登录认证阶段需要与服务器进行四次握手通信,而本方案不需要预计算阶段,登录认证只需三次握手通信;而且唐-皮等方案进行口令修改时,还要与服务器进行四次通信,而新协议用户自己就能完成,计算代价明显减小。从表2 看,新协议不仅不需要协调时钟,降低成本代价,而且具有匿名性以及抵抗强安全性问题——DoS攻击,充分确保了认证协议的有效性。所以新协议总的性能仍占优。
4 结论
本文提出一种基于智能卡和动态身份的远程用户认证协议,采用动态登录身份来保护用户的匿名性,避免重放攻击,通过延长用户存储动态身份和三次握手技术抗击DoS攻击,同时保证协议性能的高效性,扩大了协议的使用范围,例如移动设备云环境下的用户登录认证。