基于相互认证和密钥协商机制的智能卡远程安全认证方案
2016-05-14任晓芳陈卫东李桂珍
任晓芳 陈卫东 李桂珍
摘 要: 分析2011年Muniyandi等人提出的一种基于椭圆曲线密码(ECC)体制的智能卡进行远程认证方案,发现该方案缺乏密钥协商机制,不能有效抵抗伪装攻击、认证表盗窃攻击、离线猜测攻击和智能卡丢失等攻击。提出一种改进方案,融入相互认证和密钥协商机制来克服以上缺陷,确保前向和后向保密性,且用户能够自由修改密码,同时对用户信息进行匿名保护。与现有智能卡认证方案相比,该方案具有较高的安全性能,且具有较小的计算开销。
关键词: 信息安全; 智能卡; 伪装攻击; 相互认证; 密钥协商机制
中图分类号: TN911?34; TP309 文献标识码: A 文章编号: 1004?373X(2016)06?0005?05
Smart card remote security certification scheme based on mutual authentication
and key negotiation mechanism
REN Xiaofang1, CHEN Weidong1, LI Guizhen2
(1. Department of Computer Engineering, Xinjiang Institute of Engineering, Urumqi 830052, China;
2. Branch of Information technology, Xinjiang Agricultural Vocational Technigcal College, Changji 831100, China)
Abstract: A remote security certification scheme of smart card based on ECC (elliptic curve cryptography) is analyzed, which was proposed by Muniyandi in 2011, but it is found that the scheme lacks the key agreement mechanism, and can not effectively resist the impersonation attack, authentication table theft attack, off?line guessing attack and loss of smart card. An improved scheme, integrating the mutual authentication with the key agreement mechanism, is proposed in this paper, with which the above defects can be overcomed, the confidentiality of the forward and backward is ensured, the users can freely modify their password, and anonymity protection for users information is executed. Compared with the existing schemes, the improved scheme has advantages of higher security and less computational overhead.
Keywords: information security; smart card; impersonation attack; mutual authentication; key agreement mechanism
0 引 言
远程用户认证方案是服务器在不安全的通信通道上认证远程用户身份的一种机制,在用户远程登录服务器时被广泛采用,能够在开放网络环境中确保用户的合法性和服务器的正确性[1]。其中,智能卡逐渐成为可靠高效的认证工具之一,被应用于在线银行、电子商务等领域。然而,基于智能卡的远程认证也存在多种安全问题,例如,猜测攻击、重放攻击、假冒攻击、智能卡丢失攻击等[2]。
文献[3?6]提出了多种安全认证方案。用户借助智能卡,通过终端远程接入网络中的服务器,服务器通过事先协商好的密钥信息和智能卡本身,完成与用户的相互认证。认证通过后,用户向服务器提交个人信息,并接受服务器的服务。文献[7]提出一种基于椭圆曲线密码(ECC)的智能卡的远程用户认证方案,能够抵抗重放攻击,且服务器不需要维护密码表来验证登录用户的合法性。然而,该方案是不安全的,因为合法用户在不知道服务器密钥的前提下可以生成有效的身份和密码。为此,2011年,文献[8]在文献[7]的基础上提出了一种使用智能卡的远程认证方案。该方案提供了相互认证和抵抗拒绝服务攻击和伪造攻击等。但该方案也存在多个缺陷:不能抵御盗窃攻击;缺乏秘钥分配机制;用户不能自由地修改密码;容易遭到离线猜测攻击和不能抵御智能卡丢失攻击等。
针对文献[8]方案的缺陷,本文提出一种改进方案,能够提供相互认证,确保前向和后向保密性,且能够抵御各种攻击,如智能卡丢失攻击、重放攻击、离线猜测攻击、伪装攻击和盗窃攻击等,同时对用户进行匿名保护。通过性能比较,本文方案具有较高的安全性能,且具有较小的计算消耗。
1 文献[8]方案回顾
文献[8]提出一种基于ECC算法的智能卡远程认证方案,包含注册阶段,登录阶段和认证阶段,服务器和用户通过离散对数运算来进行相互认证,保证安全性。文中使用的符号如表1所示。
1.1 文献[8]方案步骤
(1) 注册阶段
如果用户[Ui]想要加入系统,其需要先执行注册阶段:
步骤R?1:[Ui?AS:{IDi,注册请求}]。用户通过安全通道递交包含[IDi]的注册请求给服务器。
步骤R?2:[AS?Ui:{PWi,智能卡}]。认证服务器[AS]接收[IDi]和注册请求,并计算密码[PWi]给[Ui],其中[PWi]计算式如下:
[PWi?(IDi⊕TR)xSmod p] (1)
式中:[TR]为注册时间戳;[xS]为服务器的私钥。[AS]把[{PWi,h(·),p}]写入到智能卡,并把它和[PWi]通过一个安全通道发送给用户。
(2) 登录阶段
步骤L?1 : 用户[Ui]把智能卡插入读卡器中,输入其[IDi]和[PWi]。
步骤L?2 :[Ui→AS:{IDi,C1,C2,T}]。智能卡生成随机数r,计算出[{C1,t1,M,C2}],然后在时间戳[T]时,发送[{IDi,C1,C2,T}]到服务器,其中[{C1,t1,M,C2}]计算表达式如下:
[C1=PWri mod p] (2)
[ti=h(T⊕PWi) mod(p-1) ] (3)
[M=PWtii mod p] (4)
[C2=M×(Ct11) mod p] (5)
(3) 认证阶段
步骤A?1:服务器接收到[{IDi,C1,C2,T}],核实身份[IDi]和时间戳[T]。如果[IDi]存在于验证表,且[T]是有效的时间段,则继续步骤A?2;否则,终止登陆步骤。
步骤A?2:服务器认证用户。如果[IDi]和[T]都是有效的,服务器计算[PWi?(IDi⊕TR)xS]和[ti=h(T⊕PWi)]mod[(p-1)]。然后,服务器核实下列等式是否成立。
[C2(Ct11)=(PWi)t1mod p] (6)
如果上述方程成立,则用户认证通过。
步骤A?3:[AS→Ui:{C3,TS}]。在用户得到认证后,认证服务器计算[t2]和[C3],然后把[{C3,TS}]发送给用户。其中,[TS]为当前的时间戳,[t2]和[C3]计算表达式如下:
[ti=h(TS⊕PWi) mod p-1] (7)
[Ci=Ct21mod p] (8)
步骤A?4:用户认证服务器。用户接收到[{C3,TS}]之后,核实更新后的时间戳[TS]。如果[TS]是有效时间段,则用户计算[ti′=h(TS⊕PWi)]mod(p?1)和[C3′=Ct′21]。然后用户核实[C3′]是否等于[C3]。若[C3]=[C3′],则服务器通过认证。
1.2 文献[8]方案的缺点
文献[8]方案通过相互认证机制,能够抵御拒绝访问攻击,伪造攻击和并行会话攻击。然而,该方案存在如下缺点:
(1) 用户不能随意地更换密码。通常情况下,为了远程密码认证方案的安全,需要时常更新密码。在文献[8]方案中,由于密码是服务器根据[PWi?(IDi⊕TR)xS]计算出来的,如果想升级密码,则用户需要重新注册,不具有便利性。此外,由于密码只能由服务器进行计算,如果密码遭到公布,将会导致很多问题[9]。
(2) 容易遭受离线猜测攻击。为了便于记忆,通常会选择简短的密码。然而,若密码过短,这种方案就会容易受到离线猜测攻击,离线猜测攻击步骤如下。
步骤G?1:攻击者从步骤L?2 中截获[{IDi,C1,C2,T}]。
步骤G?2:攻击者猜测密码。攻击者尝试猜测[PW′i],然后,使用截获的[{IDi,C1,C2,T}]和[PW′i]计算[D=C2(Ch(T⊕PW′i)1)-1]和[D′=(PW′1)h(T⊕PW′i)]。再后,攻击者核实是否等式[D=D′]成立;如果不是,重复猜测步骤。如果成立,则该密码为正确密码。若密码长度过短,则会很容易被猜中。类似地,攻击者也能截获步骤A?3中的信息[{C3,TS}]来验证猜测密码是否正确。
(3) 不能抵抗伪装攻击。若离线猜测攻击中,攻击者获得密码[PWi]。则其可以利用[PWi]通过式(2)~式(5)计算出[{IDi,C1,C2,T}],这样就能伪装成合法的用户去登陆系统。同样,攻击者也能从步骤A?3认证中利用[{IDi,C1,C2,T}]计算出正确的[{C3,TS}]。因此,该方案容易遭受假冒攻击。
(4) 缺乏密钥协商机制。密钥协商机制使用户和服务器协商一个共同密钥,用来保证以后的通信安全[10],但文献[8]方案缺乏密钥协商机制,不能保证系统通信安全性。
(5) 不能抵御认证表盗窃攻击。文献[8]方案中,服务器在认证表中存储[{xS,IDi,TR}]。服务器没有合理地保护认证表,防止密钥信息泄露。攻击者可以窃取认证表,从而获取密钥[{xS,IDi,TR}],假冒合法用户去登陆系统。因此,也容易遭受盗窃攻击。
(6) 不能抵御智能卡丢失攻击。智能卡丢失攻击会导致攻击者发动许多攻击,如果攻击者获取了合法使用者的智能卡,就可以发送离线猜测攻击[11]。在文献[8]方案的登录阶段,[IDi]和[PWi]中存储了用户密钥。然而,在[IDi]和[PWi]中没有进行智能卡的认证。因此,如果攻击者获取了智能卡,就能任意地尝试猜测密码。因此,该方案就不能抵御住智能卡丢失攻击。
2 提出的改进方案
本文提出一种改进的方案来增强安全性,方案由以下5个阶段组成:注册阶段、登录阶段、认证阶段、密钥协商阶段和密码更改阶段。
在注册阶段,用户通过向安全通道向服务器发送相关的注册请求信息。服务器对用户进行识别,并产生相关信息存储到智能卡上,然后将智能卡递送给用户。在登录阶段,用户把智能卡放入读卡器卡槽,并输入密码来登录系统。
在认证阶段,服务器核实登录请求的有效性。如果用户得到认证,服务器将允许用户在线访问系统。在密钥协商阶段,用户和服务器共同协商决定一个会话密钥,用来确保以后通信的安全。在密码修改阶段,远程用户自由地升级他们的密码。
本文方案总体过程如图1所示。
(1) 注册阶段
如果用户想加入到系统中,他应该把自己注册到认证服务器中来。注册阶段的步骤如下:
步骤IR?1:[Ui?AS:{IDi,PWi}]。用户[Ui]首先选择他的身份[IDi]和[PWi],然后以安全通道将[{IDi,PWi}]递交给认证服务器[AS]。
步骤IR?2:[AS?Ui:智能卡]。服务器[AS]一旦接收到[{IDi,PWi}],则计算[S]和[R],表达式如下:
[S=h(IDi⊕h(xS))] (9)
[R=S⊕PWi] (10)
[AS]把[{S,R,h(·)}]存储到智能卡并发送给用户,此处服务器不需要存储用户的密码。
(2) 登录阶段
步骤IL?1:用户[Ui]把智能卡插入读卡器,并且输入[IDi]和[PWi]。
步骤IL?2:智能卡核实[PWi]。智能卡计算[S′=R⊕PWi],并检查[S′]是否和[S]相等,若[S′≠S],则步骤终止。
步骤IL?3:[Ui→AS:{IDi,C1,C2,TU}]。如果[S′]=[S],则智能卡生成一个随机数[r],并计算[{C1,A,M,C2}],表达式如下:
[C1=Sr mod p] (11)
[A=h(TU⊕S) mod p-1] (12)
[M=SA mod p] (13)
[C2=M(CA1) mod p] (14)
式中:[TU]为当前的时间戳。接下来,用户发送[{IDi,C1,C2,TU}]给服务器。
(3) 认证阶段
服务器[AS]一旦接收到登陆请求和[{IDi,C1,C2,TU}],则进行信息认证。
步骤IA?1:服务器核实[IDi]和[TU]。如果,[IDi]不存在验证表或[TU]没有更新,则认证步骤终止。
步骤IA?2:服务器认证用户。如果[IDi]和[TU]都是有效的,服务器计算[S′=h(IDi⊕h(xS))]和[A′=h(TU⊕S′)]mod(p-1)。然后,服务器验证[C2(CA′1)-1]和[SA′]是否相等。如果[C2(CA′1)-1=SA′],服务器将认证用户。
步骤IA?3:[AS→Ui:{C3,TS}]。用户得到认证后,服务器计算B和[C3],表达式如下:
[B=h(TS⊕S) mod p-1] (15)
[C3=CB1mod p] (16)
式中[TS]是当前的时间戳。接下来,认证服务器将会把[{C3,Ts}]发送给用户。
步骤IA?4:用户认证服务器。在接收到[{C3,Ts}]后,用户核实更新的时间戳[Ts]。如果时间戳更新,则智能卡计算[B′]和[C3′],表达式如下:
[B′=h(TS⊕S)mod p-1] (17)
[C3′=CB′1 mod p] (18)
最后,智能卡比较[C3]和[C3′],如果[C3′=C3],则相互认证成功。
(4) 密钥协商阶段
如果相互认证成功,服务器和用户将得到一个共同协商的会话密钥[SK],其表达式如下:
[SK=h(h(S)⊕TS)] (19)
(5) 密码更改阶段
该阶段使用户能够随意地选择和升级密码。升级步骤只在智能卡上进行,非常方便用户更改密码。
步骤IU?1:用户把智能卡插入读卡器,并键入他的身份[IDi]和密码[PWi]。
步骤IU?2:智能卡核实[PWi]。智能卡计算[S′=R⊕PWi],并核实[S′]是否和[S]相等。如果[S′≠S],密码更新请求就会遭到拒绝。
步骤IU?3:智能卡用[Rnew]取代[R]。如果[S′=S],用户选择和键入新的密码[PWi_new,]智能卡计算[Rnew,]表达式如下:
[Rnew=R⊕PWi⊕PWi_new] (20)
接下来,智能卡用[Rnew]取代[R]。这样用户就能够使用新的密码登陆系统。
3 安全性分析
本文改进方案具有提供相互认证和前向和后向保密性的优点,同时用户能够自由地修改密码。本文方案能够抵御多种攻击,如智能卡丢失攻击,重放攻击,猜测攻击,伪装攻击和盗窃攻击。
(1) 提供前向和后向保密。尽管会话密钥是非常重要的保密信息,它在用户和服务器之间进行共享,但是会话密钥可能在一些情形下会被公开。因此,开发一个仅由当前密钥组成,而不包含未来或以前密钥的系统是非常必要的[12]。在本文方案中,共同的会话密钥是通过[SK=h(h(S)⊕TS)]计算获得。由于哈希函数具有单向性,即使SK被窃取,这些散列密钥[h(S)]也不会被泄露。
(2) 提供相互认证。在客户?服务器系统里,通过相互认证,可以互相确定对方身份。在步骤IA?2中,一旦接收到[{IDi,C1,C2,TU}],服务器通过核实[C2(CA′1)-1=SA′]是否成立来验证客户。同样地,步骤IA?4中,客户通过核实[C′3=C3]是否成立来验证服务器,从而实现相互认证,提高系统安全性。
(3) 用户匿名。本文方案的注册阶段,服务器[AS]只将通过[{IDi,PWi}]计算获得的[S]和[R]写入智能卡,然后发送给用户。智能卡里没有[IDi]信息,使得攻击者盗用智能卡也无法获得用户[IDi],实现了对用户的匿名保护。
(4) 能抵御智能卡丢失攻击。智能卡丢失攻击中,若攻击者得到了合法的用户智能卡,则可能猜测密码并假冒合法用户去登陆系统。智能卡丢失攻击的主要原因是智能卡对于同样的输入,总是产生固定的信息[13?14]。
本文方案的登录阶段,用户发送[{IDi,C1,C2,TU}]给认证服务器,其中[C1=PWri]和[C2=M(CA1)]mod p。由于随机数r不断变化,所以每次登陆时,传输信息[C1]和[C2]都会更新。如果攻击者获得了智能卡并尝试猜测密码,这种尝试将会失败,因为不断变化的信息使攻击者不能核实他的猜测[15]。
(5) 能抵御重放攻击。在登录阶段,用户发送[{IDi,C1,C2,TU}]给服务器来认证。信息里包含了时间戳[TU],如果攻击者再次传输截取信息,重放攻击将会被检测到。相似地,如果攻击者重放信息[{C3,TS}]给步骤IA?3中的用户,也能够检测到攻击。
(6) 能抵御离线猜测攻击。假定一个攻击者想要利用截获的信息[{IDi,C1,C2,TU}]离线猜测密码,则需要计算[C1=PWri],[A=h(TU⊕S)],[M=SA]和[C2=M(CA1)],由于[C2(CA′1)-1=SA′]是一个离散对数问题,所以要找到密码[PWi]是不可能的。
(7) 它能抵御伪装攻击。如果一个攻击者想假冒一个合法用户去登录系统,由于密钥参数S和R都是未知的,所以其不能计算出正确的[C1]和[C2]去登陆系统。相似地,攻击者不能获得B,因为S是未知的,[B=h(TS⊕S)],因此攻击者不能在步骤IA?3中使用[C3=CB1]计算出正确的[C3]用于认证。所以,能够抵御伪装攻击。
(8) 能抵御认证表盗窃攻击。本文方案在认证服务器数据库中存储的信息仅包含[xS]密钥和用户身份[IDi],其中[xS]受到密码机制的保护,且[IDi]是公开的,因此能够避免盗窃攻击。
4 性能比较
4.1 安全性能比较
将本文方案与现有几种认证方案在安全目标和抵御攻击方面进行了比较,结果如表2所示,其中,Y表示达到或满足,N表示未达到或不满足。
表2 安全目标和抵御攻击方面性能比较
从表2可以看出,本文方案增强了安全性能和对攻击的抵抗能力,能够更好地保障智能卡用户免受恶意服务器的潜在危害。
4.2 计算性能比较
将本文方案和现有几种认证方案进行计算性能比较,各计算项及含义表示如下:[Th]为执行单向哈希函数消耗时间;[Tm]为执行二次剩余运算消耗时间;T[⊕]为执行异或运算消耗时间。
各种方案的计算性能比较结果如表3所示。
从表3可以看出,相比于其他方案,本文方案在保证较高安全性能的前提下,其计算复杂度也略小,因此更适合智能卡的应用场景。另一方面,本文智能卡仅需要储存S,R和一个哈希函数[h(?)],所以智能卡不需要大的存储空间,节省了存储资源。
5 结 语
本文针对文献[8]的远程认证方案缺乏密钥协商机制、用户不能自由修改密码、不能抵御盗窃攻击、离线猜测攻击和智能卡丢失等攻击,提出一种改进型方案。本文方案提供了相互认证和密钥协商,确保了前向和后向保密,用户能够自由地选择和升级他们的密码,能够抵御智能卡丢失攻击、重放攻击,离线猜测攻击、盗窃攻击和伪装攻击等攻击类型。在保证高安全性能的同时,也具有较小的计算开销,非常适合于智能卡等应用。
参考文献
[1] 张青.基于智能卡的多服务器环境下的远端认证协议[J].计算机应用研究,2014,31(7):2109?2115.
[2] 李晓伟,张玉清,张格非,等.基于智能卡的强安全认证与密钥协商协议[J].电子学报,2014,42(8):1587?1593.
[3] PIPPAL R S, JAIDHAR C D, TAPASWI S. Comments on symmetric key encryption based smart card authentication scheme [C]// Proceedings of the 2nd International Conference on Computer Technology and Development. Cario: IEEE, 2010: 482?484.
[4] 付青琴,昂正全,徐平江.一种改进的智能卡认证方法的实现[J].计算机工程与科学,2014,36(1):94?98.
[5] SORAM R, CHATTERJEE R, ROY D P, et al. A remote smart card authentication protocol using elliptic curves [J]. International journal of computer science & information technologies, 2012, 29(3): 3856?3866.
[6] PIPPAL R S, GUPTA P, SINGH R. A novel smart card authentication scheme using image encryption [J]. International journal of computer applications, 2013, 72(9): 8?14.
[7] TAO Y U, DING?FENG Y E. Design and implementation of elliptic curve cryptograph in prime field on smart card [J]. Computer simulation, 2009, 26(3): 132?135.
[8] MUNIYANDI A P, RAMASAMY R. Password based remote authentication scheme using ECC for smart card [C]// Proceedings of the 2011 International Conference on Communication, Computing & Security. Odisha, India: International Conference on Communication, 2011: 1?8.
[9] 汪定,马春光,翁臣,等.一种适于受限资源环境的远程用户认证方案的分析与改进[J].电子与信息学报,2012,34(10):2520?2526.
[10] 李强,冯登国,张立武,等.标准模型下增强的基于属性的认证密钥协商协议[J].计算机学报,2013,36(10):2156?2167.
[11] 屈娟,邹黎敏,谭晓玲.基于动态ID的远程认证方案的分析和改进[J].计算机工程与应用,2014,50(22):126?129.
[12] WEI J H, LIU W F, HU X X. Cryptanalysis and improvement of a robust smart card authentication scheme for multi?server architecture [J]. Wireless personal communications, 2014, 77(3): 2255?2269.
[13] PIPPAL R S, GUPTA P, SINGH R. Dynamic encryption key based smart card authentication scheme [J]. International journal of computer applications, 2013, 72(9): 15?18.
[14] LI X, NIU J W, KUMARI S, et al. An enhancement of a smart card authentication scheme for multi?server architecture [J]. Wireless personal communications, 2015, 80(1): 175?192.
[15] LI X, NIU J, KHAN M K, et al. An enhanced smart card based remote user password authentication scheme [J]. Journal of network & computer applications, 2013, 36(5): 1365?1371.