服务器查找表是标签在服务器数据库中的一个索引表,如表1所示。表中对于Hj=的每一个元素分配了一个对应的标签Tji,并以i作为标签Tji在表中的索引。两个临时参数与标签Tji相关联,将唯一标识号IDji和密钥Kji存储也到标签Tji存储器内,最初为随机值。对于与Hj中的元素相关联的每个标签Tji,在Hj中存储的逆元素,即另外,在标签的内存中,生成一个机数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查询获得的标签总数。
表1 RFID服务器查找表Tab.1 RFID server look-up table
2 基于循环组的RFID认证协议
2.1 符号约定
为了便于描述,下面给出协议中所用到的标识符及含义说明,如表2所示。
表2 协议中的符号及含义Tab.2 Symbols and meanings in proposed protocols
2.2 协议原理
协议初始阶段,阅读器中存储生成的循环组G和密钥K,标签中持有标签ID及密钥K,另外还有两个临时参数mRold和mRnew,mRold初值为0,mRnew初值为随机数。本文提出的协议如图1所示。
协议的具体过程描述如下:
①Hello
标签进入阅读器的阅读范围后,阅读器向标签发送信号“Hello”,发起验证,开启认证过程。
② Mg1:Tki→ R:{i,α}
标签Tki计算,并生成请求消息Mg1={i,α},标签将Mg1发送给阅读器R。
③Mg2:R→Tki:{β,γ}
阅读器R收到标签的请求消息Mg1后,根据表1阅读器,使用i作为索引对所有子组执行以下步骤,直到找到正确的标签。
计算Hk中的逆元素其中ak是子组Hk的发生器;
图1 相互认证协议流程Fig.1 Flowchart of mutual authentication protocol
阅读器生成2个随机数mR1和mR2,并计算β=mR1⊗ Kki及 γ=mR2⊗ Kki,其中 Kki是标签 Tki的密钥。阅读器生成消息Mg2={β,γ}并将其发送到标签。
④ Mg3:Tki→ R:{δ}
在接收到阅读器发送消息Mg2时,标签Tki利用其密钥Kki分别从 β和 γ中提取出mR1和 mR2,并计算,生成消息Mg3={δ}发送给阅读器。
⑤ Mg4:R→Tki:{ζ,η}
阅读器收到消息Mg3之后,计算并 检 查δ'是 否等于接收的δ,如成立,则阅读器认证标签Tki成功,阅读器生成随机数mR3,并设置mkiold=mkinew,且mkinew=mR3,同 时,还 计 算 ζ=mR3⊗Kki和生成消息Mg4={ζ,η}并发送到标签 Tki。否则终止会话,本轮认证结束,等待进入下一轮认证。
⑥验证结束
在接收到消息Mg4时,标签Tki从ζ中提取mR3并计算标签检查η'是否等于接收的η。如果是,则标签认证阅读器成功,并更新mR4=mR3,否则认证失败,本轮会话终止,进入下一轮认证过程。
3 隐私与安全分析
3.1 隐私分析
3.1.1 隐私及隐私实验模型 根据文献[13],RFID系统隐私可用式(1)表示:
实验中攻击者的主要目标是在计算和交互限制中识别两个不同的标签,如果攻击者没有明显的优势,则认为RFID认证协议是安全的。攻击过程分为以下3个阶段:
初始阶段:攻击者A与系统S交互,在不超过其界限的情况下查询系统标签数据库并对其进行分析。
攻击阶段:A从数据库获得的标签集合中任意选择两个未损坏的标签。并随机选择其中的一个,攻击者获取并分析该标签上的数据。
估算阶段:A输出估算位b。如果估算成功,则应b=1,否则b=0。
如果b=1,实验模型E是成功的。
3.1.2 隐私级别的度量 当一些标签被泄露时,所有标签都被分区,隐私权度量标准是使用不相交的标签分区进行观察,使得攻击者不能区分属于同一分区的标签,但可以区别属于不同分区的标签[14]。表示分区Pi的大小,N为标签数,是随机选择的标签属于分区Pi的概率。本文根据匿名集和数据泄漏分析所提出的方案的隐私级别。
1)基于匿名集的隐私级别
基于匿名集的隐私级别ρ被表征为用标签总数N标准化的平均匿名集大小[11],如式(2)所示:
协议中攻击者无法区分两个标签是否属于同一个子组,因此,如果D是整个系统中受攻击标签的总数,分为D个匿名集,另一个是未受攻击标签匿名集个数(N-D),每个匿名集的大小为皆为1。结合等式(2),所提协议实现的隐私级别可表示为:
2)基于信息泄漏的隐私级别
如果攻击者将具有N个标签的系统划分为k个不相交集,则信息泄漏Π可以表示为式(4):
在所提出的协议中,根据上文分区集,结合等式(4),信息泄漏Π可以表示为式(5):
3.1.3 隐私分析
定理1所提出的协议具有隐私安全性。
证明假设提出的协议不能保护RFID系统信息隐私。则攻击者赢得实验的成功概率是不可忽视的。攻击者A的隐私攻击过程分为如下3个阶段:
初始阶段:攻击者A通过查询操作获取一组标签。
A通过DrawTag查询发送信息到标签Ti,在不超出其计算范围的情况下分析标签数据。A可以使用Corrupt查询来处理最多n-2个标签。执行步骤如下
攻击阶段:攻击者A从DrawTags查询获得的标签中任选两个未损坏的标签,例如Ti和Tj,作为攻击标签,令b∈{i,j}。随机选择其中的Tb并分析在其上运行SendTag查询。执行步骤如下:
估算阶段:攻击者输出相应标签的估算位b'。如果b'=b,攻击者会赢得实验。但这种情况只有当攻击者知道存储在Tb的内存及其母群G中的所有秘钥时才有可能,显然这是不可能的,上述假设是错误的。因此,所提出的协议保护了RFID系统的隐私。
3.1.4 不可追溯分析
定理2所提出的协议对于攻击者具有不可追溯性。
证明:假设所提议的协议是可追溯的,即攻击者可以随时追踪标签,这意味着攻击者能够区分任意两个标签。攻击者对标签的追溯同样可分为如下3个阶段,初始阶段:攻击者对RFID系统S使用DrawTags查询访问标签。对标签和阅读器,分别执行SendTag和SendReader查询,以获得并分析阅读器和标签之间传输的信息。本阶段执行步骤如下:
攻击阶段:攻击者选择两个未损坏的标签Ti和Tj,并向他们发送Corrupt查询。A随机选择Tb:b∈{i,j}。攻击者将对查询到标签Tb进行评估。
估算阶段: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]进行比较,减少了标签的计算量,本协议计算过程标签存储空间开销较小,较好的节省轻量级标签的制造成本。
表3 计算成本和性能比较Tab.3 Comparison of cost and performance of computation
4.2 仿真实验
在仿真实验中,RFID系统设定N=1024个标签,标签被随机分成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%。因此当标签被攻击时,所提出的方案在隐私级别和信息泄漏方面比其他协议有更优秀的表现。
图2 RFID系统隐私级别:(a)基于匿名集,(b)基于信息泄漏Fig.2 Levels of privacy of RFID system :(a)based on anonymous set,(b)based on information leakage
5 结 语
本文在研究常见RFID系统认证协议的基础上,提出了一种基于循环组的RFID系统安全认证协议方案,并详细分析在RFID系统受到典型攻击的情形下,所提出的协议在信息隐私和安全方面的性能表现。该协议的最大特点是基于标签侧的取摸(Mod)和按位XOR运算,使用非常少的资源来存储数据和执行运算,协议的算法复杂度较小,执行效率较高。性能分析和仿真实验结果表明,当RFID系统部分标签受到攻击时,所提出的协议具有较高的隐私性能和安全级别,而且有着成本低优势。今后的研究重点是如何把所提出的协议应用在RFID实际系统中,为RFID的安全与应用提供更好的保障。