面向RFID的轻量级双向认证协议
2023-09-25贺嘉琦彭长根付章杰许德权汤寒林
贺嘉琦,彭长根,3,付章杰,许德权,汤寒林
1.贵州大学公共大数据国家重点实验室,贵阳550025
2.贵州大学计算机科学与技术学院,贵阳550025
3.贵州大学贵州省大数据产业发展应用研究院,贵阳550025
4.南京信息工程大学计算机学院、网络空间安全学院,南京210044
5.贵州数据宝网络科技有限公司,贵阳550025
RFID(radio frequency identification,无线射频识别)技术作为物联网关键技术之一[1],因其操作便捷、运行高效及无需物理接触的优势逐渐代替了条形码和二维码,被广泛应用于智能交通、智慧医疗、物流仓储、证件防伪等领域,然而其安全与隐私问题也日益突出。在RFID 认证过程中,攻击者会通过标签和读写器之间的不安全信道发动假冒、窃听、重传、跟踪等多种恶意攻击[2],因此针对RFID 安全问题的安全认证协议相继被推出。在RFID 技术的应用系统中,攻击者主要采取的攻击模式[3]如下:
(1)拒绝服务(DoS)攻击:攻击者不断发送信息,让标签或读写器发生错误,导致用户会话信息被阻塞。通常采用双向认证的方法来解决DoS攻击,而且这种攻击不会造成严重后果,RFID系统可以恢复到工作状态[3]。
(2)物理攻击:攻击者通过去除标签的封装或干扰电磁,然后获取标签内存储的信息或窃听总线得到用户敏感信息,一般使用Kill命令、主动干扰、静电屏蔽等方式来抵抗此攻击[4]。
(3)窃听攻击:攻击者常通过标签与读写器之间的不安全通信信道发起窃听攻击,以侵犯用户隐私,所以数据不能以明文形式在标签和读写器之间传输。
(4)假冒攻击:攻击者利用假冒的标签或读写器与其中的另一方进行通信,用非法身份窃取合法用户的隐私信息。身份认证和数据加密是解决假冒攻击的主要途径[4]。
(5)重传攻击:攻击者监听获取标签和读写器之间的会话消息后,在通信中重复发送截获的消息,让标签和读写器认为消息合法,从而通过认证。Sarma等人[5]通过引入随机数,提出随机Hash-Lock 协议,变化每次通信的消息来抵抗重传攻击。
(6)位置跟踪攻击:攻击者通过跟踪会话消息或者发现标签的某种特征之后对其进行定位来获取对自己有益的信息[4]。为了解决位置跟踪攻击,Weis 等人[6]提出Hash链协议。
以上是对RFID 系统常见的攻击问题的简要描述。由于RFID系统的硬件资源较少,计算能力有限,导致其不能承载一些安全性高的传统密码学算法,使得其在去同步化、数据完整性、机密性、可用性等安全问题中还存在不足。
针对上述问题,国内外学者在基于密码技术的RFID安全认证协议上的研究成果有很多,不管是从安全需求出发,还是考虑低成本的RFID标签硬件标准,最适用于RFID 认证协议的方法就是Hash 函数。Hash 函数认证协议满足了计算低、功耗小等要求,并在某种程度上解决了RFID 系统中的安全隐私问题。但是仅使用Hash函数的RFID认证协议并不适用于某些使用射频识别技术的应用场景,如高速电子不停车收费系统(ETC)。在现存的ETC系统中,扫描器利用车载电子标签发送的用户信息进行单向认证,使得不法分子得以伪造虚假的扫描器来窃取车载电子标签存储的用户信息,从而导致用户的隐私泄露以及财产损失。采用双向认证,增加车载电子标签对扫描器的合法性认证,避免扫描器的非法伪造行为,保障了用户的隐私安全和财产安全。近年来,有研究表明ECC密码算法可以保护RFID芯片[7]。本文对于如何保护ETC 系统中标签和服务器的身份隐私以及提高系统认证效率的问题,提出一种新的轻量级RFID双向认证协议,具体工作包括:
(1)该协议基于Hash 函数、ECC 密码算法与或运算,使用随机数生成器生成不可预测的消息认证码(HMAC)[8]以保障在认证时传输消息的新鲜性和完整性。
(2)协议使用椭圆曲线加密算法将通信双方的真实身份信息隐藏为虚拟名,基于ECDLP困难问题,在保证身份隐私的情况下,通过采用两轮消息交互的模式让通信双方相互验证新鲜的消息认证码来实现协议的双向认证。
(3)通过指定密钥种子协商出标签和服务器的共享会话密钥,并设计密钥自动更新机制以实现双方的密钥同步,有效解决了RFID 认证过程中密钥固定引起的安全问题。
通过理论和实验分析本文认证协议的安全性和性能,并与同类认证协议进行对比,结果表明所提的双向认证协议能够满足双向认证、可扩展性、前向安全性、匿名性、数据完整性和可用性等安全性要求,可以抵抗重传攻击、去同步攻击、跟踪攻击、克隆攻击、服务器欺骗攻击、标签假冒攻击、DoS 攻击等恶意攻击。并且本协议的计算成本和存储成本相对最低,在性能上具有明显优势。
1 相关工作
近年来,RFID 认证技术中安全与隐私问题变得尤为重要,基于密码算法的RFID 安全认证协议逐渐成为研究热点。图1 为RFID 认证系统架构,其中展示了RFID 系统认证过程中常见的攻击,现针对本文所研究的RFID认证协议安全问题,文献综述如下:
图1 RFID认证系统架构图Fig.1 RFID authentication system architecture diagram
2006年,Tuyls和Batina[9]提出了首个基于ECC算法的RFID认证协议,该协议采用Schnorr协议[10],以防止被动攻击和伪造。2007年,Batina等人[11]提出了用Okamoto识别协议[12]实现基于公钥ECC 的RFID 认证方法,来防止主动攻击。2008 年,Lee 等人[13]改进了文献[9]和[11]中提出的认证协议,提出了一种新的基于随机访问控制(EC-RAC)的认证协议ECDLP,解决了位置跟踪等安全问题。2011 年,Zhang 等人[14]引入随机密钥的思想来解决跟踪攻击和中间人攻击的问题,提出了改进的Schnorr 认证协议[10]和EC-RAC 方案[13]。但以上方案都只能实现读写器对标签的单向认证。随后,Liao等人[15]在2013 年设计了一种基于ECC 和身份验证的RFID 双向认证协议。2014 年,Zhao 等人[16]指出Liao 等人提出的方案在数据完整性方面还存在缺陷,并且存在密钥妥协问题,对其进行改进,给出了一个性能相同的改进协议。同年,Chou等人[17]提出了一种哈希函数与椭圆曲线密码学相结合的RFID 认证协议,通过实验分析发现该方案不能抵御假冒攻击和位置跟踪。上述文献提出的方案虽然实现了从单向认证过度到双向认证,但它们的认证效率和安全性有待提高。
在保证RFID 认证协议安全性的同时,为了能够提高双向认证协议的运行效率,研究者们陆续提出相应的RFID双向认证协议。2016年,Alamr等人[18]提出了基于椭圆曲线Diffie-Hellman(ECDH)密钥的RFID双向认证协议,该协议解决了密钥泄露、位置跟踪攻击等安全问题,但是它未考虑数据的完整性问题。2017 年,Zheng等人[19]提出一种ECC 认证协议,该方案具有相互认证、机密性、匿名性、可用性、正向安全性、可伸缩性等优势,但在抵抗隐私泄露、重传攻击、假冒攻击等方面还存在不足,并且标签使用了复杂的倍点运算,导致标签存储量和计算量过大。2019 年,Dinarvand 等人[20]提出了一种新的基于ECC的RFID认证方案,该方案在安全性有一定的提高,可以防止重放攻击、克隆攻击、DoS 攻击、去同步攻击、标签伪装攻击和服务器欺骗攻击等不同的攻击,但在查找密钥方面效率较低。
现有的RFID双向认证协议可以较好地解决数据安全和身份匿名性问题,能够抵抗位置跟踪攻击、标签假冒攻击、服务器欺骗攻击、重传攻击等多种恶意攻击,具备良好的可扩展性。但是或多或少还存在计算量大、成本高等缺陷以及认证码和密钥固定或更新不及时导致被攻击者篡改、窃取、泄露的隐私安全问题。并且使用RFID技术的ETC系统对于用户身份隐私保护和系统运行性能要求较高,现有的RFID 双向认证协议不能同时达到强安全高效率的高标准。
基于上述问题,本文提出一种新的轻量级RFID 双向认证协议。所提协议采用Hash 函数、ECC 密码算法与或运算对所要传输的消息进行加密,并使用随机数生成器生成消息认证码,不仅可以增加攻击者的破解难度,还可以使前后两次通信消息无法相互逆推,保障系统的安全。协议基于ECDLP 困难问题,通过隐藏通信双方的身份真实信息,在保障身份匿名的前提下,采用两轮消息交互完成双向身份认证。协议通过指定密钥种子设计密钥自动更新机制,在认证成功后会同步更新双方的共享会话密钥,能有效解决消息认证码和密钥固定引起的隐私安全问题。在协议性能方面,标签只需存储自身的真实信息以及算法的相关参数,可以节约大量的存储空间。另外,系统完成双向认证只需经过两轮的消息传输,每轮认证结束后也只需一次密钥更新,且公钥长度较短,在一定程度上能够降低系统的计算成本和存储成本,提高认证协议的运行效率。
2 基础知识
2.1 ECC椭圆曲线
椭圆曲线加密体制是由Kobilitz[21]提出的,椭圆曲线是指维韦尔斯特拉斯(Weierstrass)方程:
所确定的平面曲线,通常用E表示。其中a,b,c,d,e均属于域F,F可以是有理数域、复数域或有限域。椭圆曲线E上的有限域Fq是所有解的集合,方程表示为E:y2=x3+ax+b, 其中a,b∈Fq,a,b∈(0,1,…,p-1)且4a3+27b2≠0。椭圆曲线有一个特殊的点∞,称为无穷远处的点,用O表示。椭圆曲线的运算规则如下:
对于P=(x,y)∈E,有-P=(x,-y),P+(-P)=ο;对于椭圆曲线上的点P和Q,其中P=(x1,y1),Q=(x2,y2),P≠-Q且P+Q=(x3,y3),则有:
2.2 困难问题
定义1(椭圆曲线离散对数问题(ECDLP)[20])在椭圆曲线构成的Ep(a,b)上,对于方程Q=dP(其中P,Q∈Ep(a,b),d
定义2(椭圆曲线Diffie-Hellman问题(ECDHP)[20])在椭圆曲线构成的Ep(a,b)上,对于方程A=aP和B=bP(其中P∈Ep(a,b)),通过多项式时间有界算法很难求出C=abP。
定义3(哈希函数抗碰撞性[22])对于任意两个不同的消息M1、M2,hash(M1)=hash(M2)的可能性极小;对于一个给定的消息M1,找到与hash(M1)相同的消息M2极为困难。
3 基于Hash-ECC的RFID双向认证协议
本协议设计了5 个多项式时间算法:初始化算法、加密算法、解密算法、双向认证算法和密钥更新算法,这些算法贯穿双向认证的全过程。在加密阶段,利用ECC密码算法和Hash 函数加密标签标识符,能够保障通信双方身份的匿名性。在身份认证阶段,采用两轮消息交互的模式实现双向身份认证,节省认证过程中的计算时间,提高认证效率。最后在认证成功后,对共享会话密钥和标签虚拟名进行同步更新,使每次认证的消息认证码和标签虚拟名具备新鲜性。因此攻击者就无法得到正确的传输数据和用户的真实身份信息,进一步提高系统的安全性。
3.1 协议概要设计
在所提出的双向认证协议中,读写器和标签使用随机数生成器自动生成相应的随机变量,并且能够运算Hash 函数和ECC 密码算法;读写器与服务器使用有线通信,通信信道是安全的,可以看成一个整体。而标签与读写器之间使用无线通信,通信信道容易受到攻击。本认证协议设计了5个多项式时间算法:(Setup,Enc,Dec,Ver,Update),协议使用的符号和说明如表1所示。
表1 Hash-ECC双向认证协议符号说明表Table 1 Symbol description table of Hash-ECC hybrid bidirectional authentication protocols
Setup(λ)→(Para,xt,ID,KP,S):要求输入安全参数λ,算法输出系统公共参数Para=(a,b,n,q,P),标签标识符,标签虚拟名ID=h(xt)+r2PS,服务器密钥对,标签与服务器的共享密钥
Enc(r1,r2,xt,Para,S,KP)→(Auths,Autht,Autht′):随机选择整数,输入标签标识符xt,公共参数Para,标签与服务器的共享密钥S和服务器密钥对KP,算法输出认证消息Auths、Autht和Autht′。
Ver(Para,ID,xt,S,KP)→(Accept,Reject):输入公共参数Para、标签虚拟名ID、标签标识符xt、共享密钥S和服务器密钥对KP,服务器输出Reject,认证失败;输出Accept后才能进行下一步对标签的认证。标签输出Reject,认证失败;输出Accept,双向认证完成。
Update(Para,ID,S,KP)→(IDnew,Snew):输入公共参数Para,标签虚拟名ID,标签与服务器的共享密钥S和服务器密钥对KP,输出新的标签虚拟名IDnew和共享密钥Snew。
3.2 协议详细设计
Setup( )λ→(Para,xt,ID,KP,S):算法输入安全参数λ,输出椭圆曲线公共参数Para=(a,b,n,q,P),在椭圆曲线E上随机选择作为标签的标识符,随机选择ID=h(xt)+r2PS作为标签虚拟名,作为服务器私钥,作为服务器公钥,作为标签与服务器的共享密钥,并将标签有关信息、服务器公钥PS、共享密钥S和椭圆曲线域参数Para=(a,b,n,q,P)存储在标签内存和服务器的后台数据库中。
Enc(r1,r2,xt,Para,S,KP)→(Auths,Autht,Autht′):随机选择整数r1,r2,输入标签标识符xt、公共参数Para、标签与服务器的共享密钥S和服务器密钥对KP,标签用服务器的公钥Ps对标签标识符xt加密成c=E(xt)后,算法输出R1=r1P,R2=r2P,R3=r2PSS,Rt=r2R1,Rs=r1R2,Auths=c+h(SRt||R2||R3),Autht=h(xt′||SRs||Auths),
Ver(Para,ID,xt,S,KP)→(Accept,Reject):输入公共参数Para,标签虚拟名ID,标签标识符xt,共享密钥S和服务器密钥对KP,标签输出R2=r2P、R3=r2PSS、Rt=r2R1和Auths=c+h(SRt||R2||R3),然后将{R2,Rt,ID,Auths}发送给服务器。服务器收到消息后根据接收到的标签虚拟名ID在数据库中获取对应的xt,用自己的私钥XS计算,输出Auths中的c′=Auths-并验证Auths中的与存储的xt是否相等。若不相等,说明服务器对标签认证失败,直接输出Reject;若相等,则认证成功,输出Accept,计算Rs=r1R2和认证消息并发送给标签。标签计算与收到的Autht进行对比验证,若二者不相等,则输出Reject,否则输出Accept,双向认证完成。标签和服务器的双向认证过程如表2所示。
表2 协议认证过程Table 2 Process of authentication protocol
Update(Para,ID,S,KP)→(IDnew,Snew):输入公共参数Para、标签虚拟名ID、共享密钥S和服务器密钥对KP,算法输出更新后的标签虚拟名IDnew和共享密钥Snew。更新算法如下:
标签更新:
服务器更新:
(1)若IDold被接收:
(2)若IDnew被接收:
4 协议分析
在本章中,使用随机预言模型[23]对试图泄露标签标识符、共享密钥和服务器私钥的敌手进行安全性证明,并从安全性要求和RFID系统常见的攻击两方面分析所提认证协议。该协议满足的安全性要求有双向认证、可扩展性、前向安全性、匿名性、数据完整性和可用性。该协议能抵抗的攻击有:重传攻击、去同步攻击、跟踪攻击、克隆攻击、服务器欺骗攻击、标签假冒攻击和DoS攻击。
4.1 安全性证明
在本节中,将使用随机预言模型分析所提协议的安全性,以验证协议是否满足双向认证、匿名性、数据完整性、前向安全性、可用性等安全性要求以及能否抵抗重传攻击、去同步攻击、跟踪攻击、克隆攻击、服务器欺骗攻击、标签假冒攻击等多种恶意攻击。首先,对敌手A做一些合理的假设来支撑安全分析:
Reveal 1:随机预言机将完全从对应的散列值y中输出字符串x,即知道y=h(x)中x的值。
Reveal 2:随机预言机将完全从椭圆曲线E(Fq)给定的两点P和Q=dP中输出整数d。
Adversarial model:假设敌手A在模型中能够完全控制标签和服务器之间的不安全通道:
(1)敌手A可以窃听服务器和标签之间的所有传输消息。
(2)敌手A可以注入自己的伪造信息。
(3)敌手A可以拦截、篡改服务器和标签之间的任何会话消息。
(4)敌手A可以使用不同的流量分析工具,利用从公共通道捕获的信息来获得控制特定标签的关键信息。
定理1 在ECDLP问题和作为随机预言机的单向哈希函数h(⋅)假设下,该协议是安全的,可以防止敌手A泄露标签标识符xt。
证明首先建立一个敌手A能利用Proof 1中的Reveal 1和Reveal 2,并且具有泄露标签标识符xt、标签与服务器的共享密钥S和服务器私钥XS的能力。以敌手A在Proof 1中的实验为例,如果敌手A有能力求解ECDLP,并对单向哈希函数进行反求,则可以正确地泄露、获取标签标识符xt。然而,参考定义1和定义3,从给定的R1、R2反推出r1、r2以及从给定的哈希值逆向求输入值是困难的。在双方会话交互过程中,标签用虚拟名代替真实身份信息进行交互,敌手A无法获取到标签标识符xt,就难以篡改、跟踪传输信息及假冒标签。因此,所提协议能够抵抗跟踪攻击、克隆攻击、标签假冒攻击等攻击,确保数据的完整性、机密性。
定理2 在ECDLP问题和作为随机预言机的单向哈希函数h(⋅)假设下,该协议是安全的,可以抵抗敌手A窃取共享密钥S和服务器私钥XS。
证明与定理1一样,建立一个敌手A能利用Proof 2中的Reveal 1和Reveal 2,并且能从RFID系统中获取共享密钥S和服务器私钥XS。根据实验如果敌手A能够解决ECDLP和ECDHP问题并对单向哈希函数进行反变换,那么就可以正确地公开共享密钥S和服务器私钥XS,然后破坏系统。然而,根据定义1、定义2和定义3的描述,敌手很难从给定的服务器公钥PS中提取服务器私钥XS以及从给定的哈希值即认证消息Auths和Autht中反向求出输入值S。并且在每次认证成功后,共享密钥S和服务器私钥XS都会进行更新,即使敌手在会话过程中窃取到认证消息,也无法通过跟踪、重传、假冒等非法手段来推测出真正的共享密钥S和服务器私钥XS。因此,本文提出的协议可以抵抗任何敌手的跟踪、去同步、重传、服务器欺骗等攻击,满足完整性、可用性、前向安全等安全性要求。
4.2 安全性分析
安全性分析是检测认证方案中可能存在安全问题的重要步骤。本节从以下两个方面对本协议进行安全性分析:(1)认证协议必须具备通信双方相互认证真伪的安全性要求,如双向认证、数据完整性、机密性、前向安全性、可用性等;(2)认证协议必须具备能够抵抗较为常见攻击的能力,如抵抗重传攻击、抵抗去同步攻击、抵抗跟踪攻击、抵抗DoS攻击等。
4.2.1 安全性要求分析
本小节在安全性证明的基础上,重点分析了所提认证协议在实际应用过程中,为何满足双向认证、数据完整性、机密性、匿名性和不可追溯性、前向安全性、可扩展性、可用性等通信双方必须具备相互认证真伪的安全性要求。
(1)双向认证:在本文设计的RFID 双向认证协议中,认证消息Auths中的标签标识xt发送给服务器时是经过ECC算法加密的,因为消息受到ECDLP的保护,攻击者很难获取到标识符xt。如果服务器使用私钥计算消息得到与从数据库中获取的xt相同,则服务器通过验证。同样地,通过计算标签认证消息,要证明服务器是真实的,就必须与接收到的认证消息Autht相同。整个过程使用了两次Hash函数来达到标签和读写器之间的双向认证效果。
(2)数据完整性:由于标签标识xt、共享密钥S和服务器私钥XS仅用于标签和授权的服务器中,用于产生,并且认证时要求接收的消息与标签或服务器在本地存储的信息一致。而攻击者对交换的信息做任何更改都会导致本地信息和接收到的信息缺乏一致性,从而将会被检测到攻击,因此,所提认证协议能够保障数据的完整性。
(3)数据机密性:标签的真实信息被安全地存储在内存中,在通信过程中它只需传输标签虚拟名ID。标签与服务器的共享密钥S以及服务器私钥XS没有在不安全的通信信道上传输,攻击者很难从通信会话中获取到相关信息的隐私数据。而且认证消息Auths中的标识符xt是用ECC 密码算法加密过的,攻击者要想获取标识符,就必须要解决ECC 椭圆曲线的离散对数问题,显然这是很难做到的。所以本文设计的认证协议能保证数据的机密性。
(4)匿名性和不可追溯性:协议将标签真实信息隐藏为标签虚拟名来标识标签,并且在每次认证成功之后,标签与服务器的共享密钥S和标签虚拟名ID都会用Hash 函数自动更新,攻击者无法从传输的信息中提取标签的真实身份信息。而且每轮会话标签和服务器会产生不同的随机数,攻击者不能预测出正确的认证消息Auths和Autht。攻击者就不能恶意查询定位或跟踪标签,也无法从{R2,Rt,ID,Auths}中提取标签标识符xt,因此该协议具备匿名性和不可追溯性。
(5)前向安全性:鉴于ECDLP 困难问题和Hash 函数的单向性特点,攻击者是不可能通过Auths和Autht计算出共享密钥S的,并且标签存储的共享密钥是安全的,只能自己使用。同样地,每次会话中的随机数r1,r2是不同的,所以即使攻击者获取了标签当前的共享密钥和所有会话信息,还是不能推测出之前的交互信息。
(6)可扩展性:可扩展性是RFID系统中最理想的特性之一,该属性描述了系统正确处理不断增长的工作负载的能力。在本文设计的协议中,服务器识别过程是使用接收到的ID来执行的,其中服务器从其数据库中获取xt以完成标签身份验证过程。服务器不需要在数据库中的所有标签进行线性搜索,只需要O(1)的时间来搜索xt。当系统的标签数量增加时,该协议将保持相同的工作负载。因此,本RFID认证协议具有可扩展性。
(7)可用性:在提出的协议中,标签唯一标识符xt在一个由哈希函数和ECC密码算法保护的认证消息中进行交换(Auths=c+h(SRt||R2||R3)),这意味着任何攻击者都不能访问它。此外,使用标签虚拟名ID进行识别,并在每次成功的认证会话后进行更新,能够抵抗去同步攻击,因此该协议提供了可用性。
4.2.2 攻击分析
所提出的双向认证协议需具备较高的安全性,能够抵抗攻击者发起的较为常见的攻击。接下来,将证明所提出的协议能够抵抗以下攻击:重传攻击、去同步攻击、跟踪攻击、克隆攻击、标签假冒攻击、服务器欺骗攻击、DoS攻击等,并解释协议在应对各种安全问题时是如何保证系统安全性的。
(1)重传攻击:在本文设计的认证协议中,每次会话所传输的消息{R2,Rt,ID,Auths} 和{Rs,Autht} 都是由新的随机数r1,r2构造的,保证了每次认证时传输的信息是变化的,因此在数据传输过程中,攻击者把截取的数据再重传给标签或读写器,认证不会成功。
(2)去同步攻击:服务器和标签每次在验证对方身份合法后,都会用Hash 函数对共享密钥S和标签虚拟名ID进行更新,以确保两者的信息是同步的。假使攻击者强制使通信双方的共享密钥更新为不同的值,从而破坏两者之间的同步,使它们无法认证彼此。根据密钥更新阶段的算法可知,标签的旧标识符和旧共享密钥都存储在数据库中,没收到消息的标签可以使用旧密钥完成认证,从而避免了去同步攻击。
(3)跟踪攻击:标签使用虚拟名ID进行传输,而标签真实身份信息xt经过ECC算法加密并与其他变化的数进行Hash 运算后再去传输,攻击者是无法获取到标签标识符xt的。并且随机变量r1,r2在每次会话中是不同的,使得传输的消息{R2,Rt,Auths,Autht,Rs} 也不同。因此,攻击者无法得到任何信息来提取不变的要素以跟踪标签。
(4)克隆攻击:根据所提出协议的描述,每个标签都有自己的标识符xt,其与服务器的共享密钥S也不相同。假设攻击者可以得到几个标签的标识符和密钥,但是他不能得到其他标签的秘密信息,因为各标签的秘密信息之间没有关联。所以,所提出的认证协议可以抵抗克隆攻击。
(5)标签假冒攻击:攻击者用一个假冒的标签发送认证消息Auths给服务器,目的是让服务器认证标签的合法性,而攻击者是无法计算出正确的Auths。因为假冒的标签即使能够得到对应的ID,服务器的数据库中并没有该假冒标签对应的ID和标识符xt,在此情况下服务器是不能得到与之对应的xt,故本协议可以抵抗标签假冒攻击。
(6)服务器欺骗攻击:在此攻击中,攻击者希望模拟一个服务器来骗取标签的合法性验证。在该协议中,假设攻击者生成一个随机数r1,计算R1=r1P并将R1发送给标签。但是在接收到标签发送的消息{R2,Rt,ID,Auths}后,攻击者不知道标签标识符xt和共享密钥S,无法生成正确的认证消息Autht来通过标签的认证,其中Autht=因此,攻击者不能模拟服务器来骗取标签的认证,所提协议能够抵抗服务器欺骗攻击。
(7)DoS 攻击:攻击者企图通过不断发送消息{R1,R2,Auths,Autht}以达到耗尽系统资源,使系统处于死机的目的。然而,本协议只要有一次认证失败,协议就会立即终止;并且随机数具有短时间不可重复性的特征,若两次发送的随机数相等说明受到了重传攻击,协议也会立即终止。协议终止后系统仍可以正常运行,随时继续下一轮的认证,而攻击者并未获取到任何隐私信息,故所提出的协议能够抵抗DoS攻击。
5 性能分析与比较
RFID 标签作为计算能力和存储能力最弱的参与体,严重制约了RFID应用系统的发展,所以降低标签的计算量和存储量是至关重要的。为了达到高效率低成本的目的,本文在设计RFID双向认证协议时,不仅要考虑协议的安全问题,还要严格控制RFID 标签的一些成本消耗,例如计算时间和存储大小。通常,用计算成本、通信成本和存储大小这3项指标来衡量RFID认证协议的执行效率和成本,本章就以这3项指标对该协议进行分析,并与Liao等人的方案[15]、Zhao等人的方案[16]、Alamr等人的方案[18]和Dinarvand等人的方案[20]进行比较。
为了达到相同的安全级别,假设在相关协议中使用的哈希函数输出为160 bit,椭圆曲线的长度也为160 bit,在5 MHz 标签上的标量点乘运算时间为0.064 s,用Te表示椭圆曲线标量点乘的运算时间。由于椭圆曲线标量乘法是所研究的认证方案中最复杂的操作,因此可以忽略其他操作的运行时间,只考虑椭圆曲线标量乘法运算时间。通过计算协议中生成消息的运算时间来计算给定的认证协议的计算成本。表3 列出了该协议与其他相关的RFID认证协议的标签计算成本的比较。表4列出了该协议与其他相关的RFID认证协议的服务器计算成本之间的比较。图2为本文提出的RFID认证协议与其他相关认证协议的总计算时间比较图。
表3 标签运算时间比较Table 3 Comparison of computation cost of tags
表4 服务器运算时间比较Table 4 Comparison of computation cost of server
图2 总计算时间比较图Fig.2 Comparison of total computation cost
表3、表4和图2的对比结果表明,与现有的RFID认证协议相比,本文所提RFID 双向认证协议的标签和服务器计算时间有所减少,总计算成本相对减少了40%和33%,即RFID系统的整体运行效率有所提高。
通过计算传输消息的长度来计算给定的认证协议的通信成本。在设计的RFID 认证协议中,需要传输的消息为{R1,R2,Rt,ID,Rs,Auths,Autht},由于椭圆曲线的长度为160 bit,具有x和y坐标的椭圆曲线上的点都是320 bit。所以在所提议的协议中,通信成本的计算为:320+320+160+160+320+320+160=1 760 bit。表5 列出了该协议与其他协议的通信成本之间的比较。
表5 通信成本比较Table 5 Comparison of communication cost
由表5的对比结果可知,本文设计的认证协议的通信成本比其他四种相关协议的通信成本要高。这是因为传输的消息经过ECC 密码算法加密后再进行传输,提高安全性的同时也使得消息的长度增加,通信成本也就随之增大。
存储成本表示存储用于实现身份认证过程中标签和服务器的不同参数所需的空间区域。该协议中,标签存储的数据为{Para,S,ID,xt,PS} ,所需的存储空间为:160+160+320+160+160+160+160+160+160=1 440;服务器存储数据为{Para,S,ID,xt,KP} ,所需空间为:160+160+320+160+160+160×3+160n×2=1 440+320n。图3 为所提协议与相关协议的标签存储空间消耗比较图。
图3 标签存储空间消耗比较Fig.3 Comparison of label storage space consumption
从图3标签存储空间消耗的对比结果可知,相较于其他四种相关认证协议,本文所提认证协议的标签存储成本最低。在达到相同安全需求的同时,尽可能降低标签的存储成本,提高标签的存储性能。
图4为各协议中服务器存储空间消耗的对比图,表6为本协议和相关协议总存储空间消耗的比较。
表6 存储空间消耗比较Table 6 Comparison of storage space consumption
图4 服务器存储空间消耗比较Fig.4 Comparison of server storage space consumption
从图4 和表6 的对比结果中可以看出,所提认证协议的标签和服务器的存储开销相对最少,与协议[18]相比节省近25%的标签存储成本。随着标签数量n的增加,所有协议服务器的存储量都是呈线性递增的,而本文协议存储消耗最少。此外,本协议的服务器存储消耗量增幅比其他四种协议要小,即随着标签数量的增加,服务器存储消耗的速度最慢。由于服务器使用的是计算机存储,成本很低,对于资源受限的RFID 标签来说,该认证协议节省了标签和服务器的大量存储空间,在存储需求方面具有明显的优势。
最后,表7 列出了该协议与Liao 等人的方案[15]、Zhao等人的方案[16]、Alamr等人的方案[18]和Dinarvand等人的方案[20]的安全性分析比较。在协议[15]中,服务器用标签的公钥ZT来认证标签的合法性,攻击者很容易在认证标签后更改标签公钥值,然而系统检测不到信息被更改,因此无法保障数据完整性;同时协议中没有对标签和服务器的密钥进行同步更新,服务器密钥一旦被泄露,攻击者就会对系统发起去同步攻击。协议[16]对协议[15]做了改进,解决了协议[15]的数据完整性问题,但是标签密钥在认证成功后没有进行同步更新,容易遭受攻击者的去同步攻击。协议[18]中的服务器利用接收到的标签公钥Pt在数据库中查找对应的标签ID,然后计算验证信息AT′来认证标签合法性,若攻击者在认证标签后更改标签公钥值,此时系统无法检测出信息被更改,因此丧失了数据的完整性。协议[18]与前两个协议一样,没有密钥同步更新阶段,故容易受到去同步攻击。
表7 安全性比较Table 7 Security comparison
通过分析比较5种认证协议的安全性和性能,发现本文所提协议能够克服其他协议中存在的安全弱点,在达到安全性要求的前提下,节省了计算成本和存储空间,提高了认证效率,比其他同类认证协议更适合用于ETC系统。
6 结束语
在ETC系统运行过程中,针对在保证传输数据安全的同时,如何进一步保护标签和服务器的身份隐私、提高系统执行效率的问题,提出一种新的轻量级RFID 双向认证协议。协议基于Hash 函数、ECC 密码算法与ECDLP 困难问题,采用两轮消息交互的模式实现协议的双向认证;通过隐藏通信双方的真实信息并指定密钥种子来协商标签和服务器的共享会话密钥,设计密钥自动更新机制以实现双方的密钥同步。理论分析和实验结果表明,所提协议不仅满足双向认证、数据完整性、机密性、匿名性和不可追溯性、前向安全性、可扩展性、可用性等安全性要求,还能抵抗重传攻击、去同步攻击、跟踪攻击、克隆攻击、标签假冒攻击、服务器欺骗攻击、DoS 攻击等多种攻击。与部分典型认证协议在性能方面相比较,本协议节省近40%的计算时间和25%的存储空间,性能方面具有显著优势。基于Hash-ECC的RFID双向认证协议是解决标签与服务器之间安全认证的有效途径,但不是唯一途径,其中还存在诸多现实生活中难以解决的问题。下一步将研究如何降低协议的通信成本,进一步提高系统整体性能,并利用软件快速实现本文协议,将其投入到实际应用中。