《武汉工程大学学报》  2019年05期 504-510   出版日期:2021-01-24   ISSN:1674-2869   CN:42-1779/TQ
基于循环组的RFID安全认证协议


射频识别(Radio-Frequency Identification,RFID)技术是物联网(Internet of Things,IoT)的核心技术之一,在农业、交通、制造及军事等各领域都有广泛的应用[1]。RFID系统由阅读器、标签及服务器实体组成。服务器存储有关标签的所有信息,并通过安全信道与阅读器连接。通常阅读器的使用者是可信的,而阅读器和标签之间的信息交互是通过天线耦合来完成的,传输信道具有开放性,使得传输的数据信息极易被截获和破解,攻击者通过对阅读器或标签进行读写操作,来阻止或破坏两者之间正常通信。另外因标签只具备有限的计算和存储能力,使得攻击者容易对标签跟踪、获取隐私等,造成RFID系统面临信息泄漏、安全等多种威胁[2],因此如何提高RFID 认证协议的安全性和隐私保护是射频识别技术研究的热点之一。本文设计了一种基于循环组、取模(Mod)和异或运算(ExclusiveOR,XOR)的RFID系统安全认证协议,在不增加成本的前提下,提高RFID系统的信息隐私性能及安全级别。1 相关工作1.1 现状分析为了增强RFID系统的安全性和隐私保护并降低计算复杂度,国内外研究人员提出了许多RFID系统相互认证方案。文献[3]提出了RFID群组认证协议,该方案不具备不可追踪性,且无法抵抗交错攻击;文献[4] 提出了改进的RFID群组认证协议,但对标签的计算能力要求较高;文献[5]基于传统密码学设计了RFID 认证协议,具有良好的安全性,但不适于标签的低计算能力;文献[6]提出了一种基于哈希(Hash)函数的MH 认证协议,实现了 RFID 协议安全性与效率的平衡,但 M-Hash函数所需的门电路较为复杂,成本较高;文献[7]设计了基于串空间模型方法的认证协议,具有较高的安全性,但增大了空间开销;文献[8]基于单向伪随机函数的移动RFID系统认证协议,但该协议并不适合大规模的RFID系统;文献[9]提出了一种基于改进的伪随机函数的RFID双向认证协议,但同样存在计算力要求较高的问题;文献[10]设计了基于组对称密钥的匿名安全认证,具有较好的隐私级别和安全性,但标签侧空间开销较高;文献[11]提出了一种基于Hash函数和云计算的轻量级RFID群组标签认证协议,但协议复杂度大、硬件实现较难。针对上述协议存在的隐私泄漏和安全威胁,本文提出了基于循环组的RFID相互认证协议。该协议只通过简单的取摸和异或运算,不执行随机数函数,减小标签端计算量,实现读写器和标签之间的认证,同时可有效降低标签的硬件成本,提高运算速度。通过性能分析和仿真实验,该协议可有效抵抗追溯攻击、重放攻击、去同步攻击、中间人攻击、伪造攻击等。1.2 基本概念假设G是一个非空集合,运算符[?]把G中任意两个元素组合成一个新的元素。如G遵守集合运算定律,则集合G与运算符[?]一起是一个组,G中的元素总数用|G|表示。设H是G组的一个子集,则称H是G的一个子组。定义1循环组:若存在元素a∈G,使得G=={an |n∈Z}成立,则G称为循环组,元素a称为循环组G的生成器。循环组的特征约定1)假设G=是n阶循环组。如果Gcd(k,n)=1(Gcd为最大公约数运算符),则G = 。2)循环组的每个子组都是循环的。3)假设G=是n阶循环组,则 G的任何子组的顺序都是n的约数。4)对于n的每个正约数k,组G恰好具有由表示的阶数为k的一个子组。1.3 RFID系统模型在该系统模型中,由于阅读器和服务器之间的通信信道彼此信任,为简单起见,可把阅读器和服务器组合成一个实体看作阅读器[12]。本文基于循环组的特征,在此构建了RFID系统模型。选择n阶循环组G=并找到它的一些子组Hi=(i=1,2,…,f,f的每一个元素[aij],分配了一个对应的标签Tji,并以i作为标签Tji在表中的索引。两个临时参数[mjiold]和[mjinew]与标签Tji相关联,将唯一标识号IDji和密钥Kji存储也到标签Tji存储器内,最初[mjiold=0]和[mjinew]为随机值。对于与Hj中的元素[aij]相关联的每个标签Tji,在Hj中存储[aij]的逆元素,即([aij])-1。另外,在标签的内存中,生成一个机数[mR4],[mR4]的初值与[mjinew]相同。1.4 攻击者模型对于RFID系统,攻击者主要通过窃听、拦截或篡改阅读器与标签之间的传输的消息实现攻击[3]。根据文献[3]攻击者模型加以改进,设计了符合本文实验要求的攻击者模型。攻击模型如下:1)SendTag(Msg,Tji)→Msg1:攻击者可以向标签Tji发送消息Msg,标签Tji以消息Msg1响应。2)SendReader(Msg,R)→Msg2:攻击者向给阅读器R发送消息Msg,R回复消息Msg2。3)DrawTags(S)查询攻击者可以使用此查询随时从系统S访问一组标签。4)Corrupt(Tji)查询攻击者通过此查询能够访问标签存储器中的数据。在模型中,攻击者分别对攻击对象R和T来利用SendTag和SendReader操作执行查询运算,一次能够向至少(N-2)个标签发送Corrupt查询指令,其中N是DrawTags查询获得的标签总数。2 基于循环组的RFID认证协议2.1 符号约定为了便于描述,下面给出协议中所用到的标识符及含义说明,如表2所示。2.2 协议原理协议初始阶段,阅读器中存储生成的循环组G和密钥K,标签中持有标签ID及密钥K,另外还有两个临时参数[mRold]和[mRnew],[mRold]初值为0,[mRnew]初值为随机数。本文提出的协议如图1所示。协议的具体过程描述如下:①Hello标签进入阅读器的阅读范围后,阅读器向标签发送信号“Hello”,发起验证,开启认证过程。②[Mg1:Tki→R:{i,α}]标签Tki计算[α=(aik)-1?mR4],并生成请求消息[Mg1={i,α}], 标签将Mg1发送给阅读器R。③[Mg2:R→Tki:β,γ]阅读器R收到标签的请求消息Mg1后,根据表1阅读器,使用i作为索引对所有子组执行以下步骤,直到找到正确的标签。计算Hk中[aik]的逆元素([aik])-1,其中[ak]是子组Hk的发生器;阅读器计算[α’=(aik)-1?(mRold/mRnew)],并检查[α’]是否等于接收到的[α],如果相等,它在子组Hk内得到正确的标签Tki,否则,则阅读器终止协议,认证失败;阅读器生成2个随机数[mR1]和[mR2],并计算[β=mR1?Kki]及[γ=mR2?Kki],其中Kki是标签Tki的密钥。阅读器生成消息[Mg2={β,γ}]并将其发送到标签。④[Mg3:Tki→R:{δ}]在接收到阅读器发送消息Mg2时,标签Tki利用其密钥Kki分别从[β]和[γ]中提取出[mR1]和[mR2],并计算[δ=(IDki?mR1)mod((aik)-1?mR2)],生成消息[Mg3={δ}]发送给阅读器。⑤[Mg4:R→Tki:{ζ,η}]阅读器收到消息Mg3之后,计算[δ’=(IDki?mR1) mod ((aik)-1?mR2)],并检查δ’是否等于接收的[δ],如成立,则阅读器认证标签Tki成功, 阅读器生成随机数[mR3],并设置mkiold=mkinew,且mkinew=[mR3],同时,还计算[ζ=mR3?Kki]和[η=(IDki?mR3)mod][((aik)-1?mR1)],生成消息[Mg4={ζ,η}]并发送到标签Tki。否则终止会话,本轮认证结束,等待进入下一轮认证。⑥验证结束在接收到消息Mg4时,标签Tki从[ζ]中提取[mR3]并计算[η’=(IDki?mR3)mod((aik)-1?mR1)]。标签检查[η’]是否等于接收的[η]。如果是,则标签认证阅读器成功,并更新[mR4]=[mR3],否则认证失败,本轮会话终止,进入下一轮认证过程。3 隐私与安全分析3.1 隐私分析3.1.1 隐私及隐私实验模型 根据文献[13],RFID系统隐私可用式(1)表示:[P[EprA,S(k,n,r,s,t)?Succeeds in Guessing b]] [12+1poly(k)] (1)其中[EprA,S[k,n,r,s,t]?]实验模型,A表示攻击者,S表示RFID系统,r,s和t分别表示攻击者利用SendTag和SendReader的能力、表示计算步骤、计算标识,b为估算位,poly(k)是安全参数k的函数,n是标签数。 实验中攻击者的主要目标是在计算和交互限制中识别两个不同的标签,如果攻击者没有明显的优势,则认为RFID认证协议是安全的。攻击过程分为以下3个阶段:初始阶段:攻击者A与系统S交互,在不超过其界限的情况下查询系统标签数据库并对其进行分析。攻击阶段:A从数据库获得的标签集合中任意选择两个未损坏的标签。并随机选择其中的一个,攻击者获取并分析该标签上的数据。估算阶段:A输出估算位b。如果估算成功,则应b=1,否则b=0。如果b=1,实验模型E是成功的。3.1.2 隐私级别的度量 当一些标签被泄露时,所有标签都被分区,隐私权度量标准是使用不相交的标签分区进行观察,使得攻击者不能区分属于同一分区的标签,但可以区别属于不同分区的标签[14]。[Pi]表示分区Pi的大小,N为标签数,[PiN]是随机选择的标签属于分区Pi的概率。本文根据匿名集和数据泄漏分析所提出的方案的隐私级别。1)基于匿名集的隐私级别基于匿名集的隐私级别[ρ]被表征为用标签总数N标准化的平均匿名集大小[11],如式(2)所示:[ρ=1N2i|Pi|2] (2)协议中攻击者无法区分两个标签是否属于同一个子组,因此,如果D是整个系统中受攻击标签的总数,分为D个匿名集,另一个是未受攻击标签匿名集个数(N-D),每个匿名集的大小为皆为1。结合等式(2),所提协议实现的隐私级别可表示为:[ρ=1N2[D+(N-D)2]] (3)2)基于信息泄漏的隐私级别如果攻击者将具有N个标签的系统划分为k个不相交集,则信息泄漏Π可以表示为式(4):Π[=i=1k|Pi|Nlog2N|Pi|] (4)在所提出的协议中,根据上文分区集,结合等式(4),信息泄漏Π可以表示为式(5):Π [=1Nlog2N+N-DNlog2NN-D] (5)3.1.3 隐私分析定理1 所提出的协议具有隐私安全性。证明假设提出的协议不能保护RFID系统信息隐私。则攻击者赢得实验的成功概率是不可忽视的。攻击者A的隐私攻击过程分为如下3个阶段:初始阶段:攻击者A通过查询操作获取一组标签。A通过DrawTag查询发送信息到标签Ti,在不超出其计算范围的情况下分析标签数据。A可以使用Corrupt 查询来处理最多n-2个标签。执行步骤如下[Ti←DrawTagS][i,akk-1,K,ID,R←CorruptTi]攻击阶段:攻击者A从DrawTags查询获得的标签中任选两个未损坏的标签,例如Ti和Tj,作为攻击标签,令b∈{i,j}。随机选择其中的Tb并分析在其上运行SendTag查询。执行步骤如下:[Mg1=i,α←SendTaginit,Tb][Mg2=β,γ←SendReaderMg1,R][Mg3=i,δ←SendTagMg2,Tb][Mg4=ζ,η←SendReaderMg3,R]估算阶段:攻击者输出相应标签的估算位b’。如果b’=b,攻击者会赢得实验。但这种情况只有当攻击者知道存储在Tb的内存及其母群G中的所有秘钥时才有可能,显然这是不可能的,上述假设是错误的。因此,所提出的协议保护了RFID系统的隐私。3.1.4 不可追溯分析定理2 所提出的协议对于攻击者具有不可追溯性。证明:假设所提议的协议是可追溯的,即攻击者可以随时追踪标签,这意味着攻击者能够区分任意两个标签。攻击者对标签的追溯同样可分为如下3个阶段,初始阶段:攻击者对RFID系统S使用DrawTags查询访问标签。对标签和阅读器,分别执行SendTag和SendReader查询,以获得并分析阅读器和标签之间传输的信息。本阶段执行步骤如下:[Ti←DrawTagS][Mg1=i,α←SendTaginit,Ti][Mg2=β,γ←SendReaderMg1,R][Mg3=i,δ←SendTagMg2,Ti][Mg4=ζ,η←SendReaderMg3,R]攻击阶段:攻击者选择两个未损坏的标签Ti和Tj,并向他们发送Corrupt查询。A随机选择Tb:b∈{i,j}。攻击者将对查询到标签Tb进行评估。[Mg1*=i,α←SendTaginit,Tb][Mg2*=β,γ←SendReader(Mg1*,R)][Mg3*=i,δ←SendTag(Mg2*,Tb)][Mg4*=ζ,η←SendReader(Mg3*,R)][i,aik-1,K,ID,R←CorruptTi]估算阶段:A输出估算位b’。如果b’=b,攻击者将赢得比赛,但只有在Pr[Mg1?=Mg1]=1的情况下才有可能,而且由于消息Mg1取决于标签的随机数[mR4],[mR4] 它在每次认证过程中都是不同的,显然上式难以成立。因此,上述假设是错误的,即攻击者无法追踪标签。3.2 安全分析3.2.1 抵抗重放攻击 重放攻击的攻击者可以窃听无线信道,捕获并分析在阅读器和标签之间先前所传输的消息[15]。在所提出的方案中,攻击者伪造消息作为有效标签/读取器是不可行的,因为每次发送的消息在每次认证会话中都会生成新的随机数,这是攻击者无法提前获得的,这是因为随机的异或运算(XOR)具有攻击者无法获知的密钥K,所以即使不法分子截取到之前的应答消息,也无法通过重放应答消息,最终使得攻击者的所有重播消息都是非法消息。因此,基于上述的分析,本协议方案可以成功阻止重放攻击。3.2.2 抵抗中间人攻击 因为在次认证过程中,发送的消息中使用新的随机数,从发送的消息中估算或计算这些值的概率可以忽略不计,而攻击者在不知道密钥、唯一标识号和循环组数据的情况下拦截任何传输的消息是不可信的。因此攻击者无法在阅读器和标签之间充当中间人,所以本文协议可以有效的抵抗中间人攻击。 3.2.3 抵抗去同步攻击 对于每个标签,服务器在其数据库中存储两个对应的随机数[mRold]和[mRnew], 服务器会在成功进行身份验证会话后更新这些值,而攻击者获得认证前未更新的随机数的值是无用的,因此攻击者不可能使认证过程失去同步。3.2.4 防范伪造攻击 本文协议采用了阅读器和标签之间按流程相互认证的方法,认证信息在接收时对发送方的身份进行认证后再进行计算。由于密钥信息具有机密性且在每次认证后又随机化, 使得攻击者即使获得阅读器或标签的标识或认证前的密钥也是不可信的,无法伪造标签或阅读器,不能实现攻击者与阅读器或标签的相互认证,因此协议可以防范阅读器或标签伪造攻击。4 性能分析及仿真实验4.1 性能分析本文提出的协议方案在标签计算、服务器计算和存储方面的效率,如表3所示。协议方案的搜索复杂度是O(γ),仅执行取摸和异或运算,与文献[4]的搜素复杂度相当,但与文献[10]相比本文所设计安全认证协议相比具一定的的优势。假设协议中使用的所有参数都是L比特位长,本协议在标签侧保留4个数据项信息,因此存储成本是4L比特。另外,本协议不在标签侧使用任何随机数生成器函数,而是在阅读器侧运行伪随机数生成的随机数,与文献[4]和文献[10]进行比较,减少了标签的计算量,本协议计算过程标签存储空间开销较小,较好的节省轻量级标签的制造成本。4.2 仿真实验 在仿真实验中,RFID系统设定N=1 024个标签,标签被随机分成64组,选择从0到512个受攻击标签数的范围。在所提出的方案中,不必在每个组中采用相同数量的标签。对系统中D个受攻击的标签运行100次模拟。根基公式(3)和公式(5),在实验中,在每次模拟运行中,从所有标签组中随机选择受攻击标签,分别就基于匿名集 RFID系统隐私级别和基于信息泄漏的RFID系统隐私级别,对文献[4]和文献[10]及本文所设计的认证方案进行MATLAB仿真实验与计算,仿真结果如图2所示。图2(a)的仿真结果表明,该方案实现的隐私级别比文献[4] 和文献[10]的协议均有所提高,经计算分别提高了51.5%和98.2%。当D变为512时,根据图2(b)所示的仿真结果,所提出的协议比文献[4] 和文献[10]的方案泄露的信息均有降低,有计算得知分别减少了30.5%和50.6%。因此当标签被攻击时,所提出的方案在隐私级别和信息泄漏方面比其他协议有更优秀的表现。5 结 语本文在研究常见RFID系统认证协议的基础上,提出了一种基于循环组的RFID系统安全认证协议方案,并详细分析在RFID系统受到典型攻击的情形下,所提出的协议在信息隐私和安全方面的性能表现。该协议的最大特点是基于标签侧的取摸(Mod)和按位XOR运算,使用非常少的资源来存储数据和执行运算,协议的算法复杂度较小,执行效率较高。性能分析和仿真实验结果表明,当RFID 系统部分标签受到攻击时,所提出的协议具有较高的隐私性能和安全级别,而且有着成本低优势。今后的研究重点是如何把所提出的协议应用在RFID实际系统中,为RFID的安全与应用提供更好的保障。