APP下载

一种改进的RFID双向安全认证协议

2014-03-25王彦李永珍

关键词:阅读器后台合法

王彦, 李永珍

( 延边大学工学院 计算机应用技术学科网络与信息安全研究室, 吉林 延吉 133002 )

RFID是一种通过无线广播进行非接触式双向通信的自动识别技术,它具有精度高、操作简单、感知能力强等优点[1],但同时RFID技术也面临着保密、重放攻击、假冒攻击、前向可追踪、系统内部攻击等安全问题,因此安全和隐私保护是RFID应用时首先要解决的关键问题之一.现有的协议大部分建立在阅读器和后台数据库为安全通信的假设上,但是在实际应用中无线阅读器[2-3]的应用越来越广泛,而无线阅读器和后台数据库之间是通过不安全的无线信道进行通信,因此需要设计一种协议来确保通信的安全性.文献[4]提出了MRPPS-IoT协议,此协议综合运用Hash函数、异或运算、对称加密、身份加密等方法来实现标签、无线阅读器和后台数据库之间的相互认证,但由于这个协议采用的对称加密、身份加密等方法比较复杂,因此MRPPS-IoT协议效率不是很高.为了提高认证的效率,本文采用轻量级加密函数(Hash函数和异或运算)来加密通信过程中的信息,并采用自动更新标签ID、标签和阅读器共享密钥、标签和阅读器分别与后台数据库共享密钥[5-6]等方法来实现双向认证并确保通信安全.

1 相关协议介绍

文献[7]提出了一种RFID双向安全认证协议,该安全认证协议中使用的符号见表1,协议的认证过程如图1所示.在图1中M=H(Ti⊕R),N=H(ML‖R‖IDSi)⊕IDSi+1,keyi+1=keyi⊕(RL‖ML),IDSi+1=Ekey i+1(ID).

表1 文献[7]中使用的一些符号

图1 文献[7]中协议的认证过程

文献[7]的协议虽然是建立在阅读器和后台数据库为安全通信的假设上,大大减少了后台数据库的运算量(只需要O(1)的工作量),但是通过分析可以发现此协议存在如下问题:

1) 随着无线阅读器越来越广泛的应用,后台数据库和阅读器之间的通信不再是安全的,所以文献[7]提出的协议具有一定的局限性.

2) Hash函数是一种公开函数,攻击者可以获得其算法.如果攻击者窃听到认证过程的第2步信息:ML,R和H(ML‖R)⊕IDSi, 且已知Hash函数的计算方法,那么他就可以通过计算H(ML‖R)进而获得IDSi.同理,攻击者也可以获得IDSi+1,ID等保密信息,这时此协议既无法满足保密性也无法抵抗跟踪、假冒、重放等攻击.

3) 在设计上未考虑系统内部攻击,因此无法抵抗内部攻击.

4) 协议中没有对阅读器进行合法性的验证,任何攻击者都可以假冒阅读器读取标签的信息.

2 改进的RFID双向安全认证协议

2.1 新协议中使用的符号

本文在文献[7]的基础上提出了一种改进的认证协议,协议中使用的相关符号见表2.

表2 新协议中使用的符号

2.2 新协议的初始化过程

首先由后台数据库产生标签和阅读器的各项信息(如表2),然后将(ID、Ttd、Tt)存入相应的标签,将(RID、Rrd、Tr)存入相应的阅读器.同时在后台数据库建立一个ID表和一个RID表,ID表中每一项存储相应标签的(IDold,IDnew,Ttd),RID表中每一项存储相应阅读器的(RID,Rrd),其中IDold=IDnew=ID,Tr=Tt=0.

2.3 新协议的认证过程

协议的认证过程如图2所示,具体过程如下:

1) 阅读器产生随机数R, 然后令Tr=1, 并发送R给标签.

2) 标签收到R之后,首先检验Tt是否为0.若Tt=0, 则令Tt=1, 然后计算H(R⊕ID⊕Ttd), 保存Hl(R⊕ID⊕Ttd), 将Hr(R⊕ID⊕Ttd)发送给阅读器;若Tt!=0, 则停止认证.

3) 阅读器收到标签的响应信息后,首先检验其存储器中是否存有R, 若没有则停止认证,若存有则检验Tr是否为1.若Tr=1, 则计算H(R⊕RID⊕Rrd), 保存Hl(R⊕RID⊕Rrd), 将Hr(R⊕RID⊕Rrd)、R和收到的Hr(R⊕ID⊕Ttd)发送给后台数据库,然后令Tr=0; 若Tr!=1, 令Tr=0并停止认证.

4) 首先验证阅读器的合法性.遍历RID表,对表中的每一项计算H(R⊕RID⊕Rrd), 并将Hr(R⊕RID⊕Rrd)与收到的信息作比较.若遍历完所有项仍没有相同的,则阅读器不合法,停止认证;若有使两者相同的项RID′,则阅读器合法.然后验证标签的合法性.首先在所有的IDnew中进行查找,对每一项计算H(R⊕IDnew⊕Ttd), 然后将Hr(R⊕IDnew⊕Ttd)与收到的Hr(R⊕ID⊕Ttd)比较.若IDnew中有使两者相同的项IDnew′, 则标签合法,更新相应的IDold′=IDnew′,IDnew′=H(IDold′⊕R); 若IDnew中没有相同项,则继续在所有的IDold中查找,方法与前一步相同.若在IDold中找到相同项IDold′, 则标签也合法,保持IDold′不变,更新相应的IDnew′=H(IDold′⊕R).如果IDnew和IDold中都没有相同项,则标签不合法,认证失败.如果阅读器和标签都合法,后台数据库将Hl(R⊕RID′⊕Rrd)和Hl(R⊕IDold′⊕Ttd)发送给阅读器.

5) 阅读器将收到的Hl(R⊕RID′⊕Rrd)与先前保存的Hl(R⊕RID⊕Rrd)作比较,若相同,则确定信息合法,然后删除存储器中的R, 并将收到的Hl(R⊕IDold′⊕Ttd)发送给标签;如果不相同,则停止认证.

6) 标签收到信息后令Tt=0, 并将收到的Hl(R⊕IDold′⊕Ttd)与保存的Hl(R⊕ID⊕Ttd)作比较,若不同则信息不合法,认证失败;若相同,则确定信息合法,并更新ID=H(ID⊕R)完成整个认证过程.

图2 新协议的认证过程

2.4 改进型安全认证协议

基于文献[7],本文提出如下新协议:

1) 新协议主要采用Hash函数做加密运算,由于Hash函数的单向性,攻击者很难从中得到重要信息,如ID、RID、Ttd、Rrd等.

2) 标签只采用Hash函数和异或运算加密信息,取消了串联运算,这样可以降低标签成本.

3) 在新协议的阅读器和后台数据库中存储合法阅读器的唯一标识RID,后台数据库通过RID来验证阅读器的合法性,以此确保只有合法的阅读器才能读取标签的信息.

4) 标签和阅读器分别与后台数据库共享一个密钥值Ttd和Rrd, 这两个值是绝对保密的,用来防止系统内部的攻击.

5) 标签和阅读器在传送信息时,保存计算值的左半部分,首先只传送计算值的右半部分,后台数据库通过收到的右半部分的值验证标签和阅读器的合法性,然后后台数据库发送相应值的左半部分,标签和阅读器通过比对收到的值与保存的值是否相同来确定收到信息的合法性,这样可以减少标签和阅读器的计算量.

6) 在标签和阅读器中各存储一个状态值Tt和Tr, 通过判断这些值是1还是0,可以更快速有效地防止重放和假冒攻击.

3 性能分析

3.1 后台数据库和标签同步更新

在通信过程中,可能由于攻击者的破坏或其他外来因素,标签没能收到最后一步的信息,使标签的ID无法更新,致使标签和后台数据库无法同步更新ID值.在本协议中,后台数据库同时存放标签的新旧ID:IDold和IDnew,IDold为标签在上一次通信时使用的ID,IDnew为上次通信完成后标签更新的ID.这样即使后台数据库和标签更新未能同步,在下一次通信时标签依然可以在后台数据库的IDold中找到匹配项,不会影响后台数据库对标签的合法性验证.

3.2 安全性分析

1) 保密性.本文协议中发送的消息都是通过Hash函数和异或运算加密的,由于Hash函数的单向性,攻击者很难获得ID、RID等保密信息,所以本协议具有很好的保密性.

2) 重放攻击.首先分析重放阅读器请求.如果攻击者在认证过程中重放阅读器请求,由于标签只在Tt=0的时候才会响应,而Tt在整个认证过程中始终等于1,所以重放无效.如果攻击者重放阅读器的请求时标签没有进行其他的认证,在标签响应后攻击者截获响应信息,并假装已经通过第3、第4步的认证,然后向标签发送伪造的Hl(R⊕ID⊕Ttd), 由于在上一次的通信过程中标签的ID已经更新,所以在最后标签验证时标签收到的信息与保存的信息不同,认证失败,重放攻击无效.

重放标签响应的分析.攻击者如果在本次认证过程中重放标签响应,由于阅读器只在Tr=1时才会做出回应,而当攻击者重放标签响应的时候,阅读器的标识Tr已经变成了0,所以阅读器不会响应,重放无效.如果攻击者在认证过程中重放上一次认证过程中标签的响应信息,由于随机数R与标签ID不同,在后台数据库中认证时会导致失败,重放无效.如果阅读器已经结束本次认证,并且在攻击者重放标签响应时阅读器没有进行其他的认证过程,则由于阅读器中没有存放随机数R而不做出回应,重放无效.所以本协议具有抗重放攻击的能力.

如果攻击者截获标签的响应信息,然后假冒标签将截获的信息发送给阅读器,阅读器按照正常步骤将信息发送给后台数据库,通过认证后,阅读器发送信息给标签,攻击者截获此信息后假装认证通过.认证完成后,阅读器和后台数据库进行通信时,阅读器读到的依然是正确标签的信息,所以此攻击无效.

4) 前向不可追踪性.理想情况下,攻击者可以通过截获状态信息对标签进行攻击.由于本协议中的信息是通过Hash函数和异或运算进行加密后传递的,而且每次通信标签的ID都动态更新,这样,标签每次响应的信息都不同,所以攻击者很难将截获的信息与某个特定标签联系,无法跟踪标签位置.

5) 系统内部攻击.系统内部攻击包括系统内合法标签B假冒合法标签A和合法阅读器B假冒合法阅读器A.首先分析前者.标签A和B的标识分别为IDa和IDb, A和B与后台数据库分别共享密钥Ttda和Ttdb.认证开始后,阅读器向标签发送请求和随机数R, 标签B假冒A向阅读器发送Hr(R⊕IDa⊕Ttdb), 后台数据库在验证标签的合法性时只能找到Hr(R⊕IDa⊕Ttda)和Hr(R⊕IDb⊕Ttdb), 这与收到的Hr(R⊕IDa⊕Ttdb)不相同,所以认证失败.失败的主要原因是Ttda是标签A和后台数据库私有的,而标签B无法知道,因此标签B无法计算出正确的Hr(R⊕IDa⊕Ttda), 从而认证失败.若系统内合法阅读器B假冒合法阅读器A, 由于RIDa只有阅读器A与后台数据库知道,而阅读器B不知道,因此阅读器B无法计算出正确的Hr(R⊕IDa⊕Trda), 认证失败.可见本协议可以很好地防止系统内部攻击.

将新协议与文献[3]、[6]和[7]中的协议做安全性方面的对比,结果如表3所示(×表示不具备此安全性能,○表示具备此安全性能).由表中各项可知新协议在保留文献[7]轻量级加密结构的同时能抵抗各种攻击,具有最好的安全性.

表3 RFID认证协议的安全性比较

3.3 效能分析

将新协议与文献[3]、[6]和[7]中的协议做计算量和存储量方面的对比,结果如表4所示(Hash、Ran、Xor、Ser和Ek分别表示散列函数、随机数产生、异或运算、串联运算和对称加密运算;N1和N2分别表示阅读器和标签的数量,其中N2远远大于N1).由表4可知:新协议中标签和阅读器的计算量大大减少,很好地满足了低成本的要求;虽然后台数据库的计算量增加,但是增加的这部分计算量提高了协议的整体保密性和抗攻击能力.新协议中标签的存储量相对于文献[3]和[7]虽没有变化,但是比文献[6]减少了很多,并且后台数据库的存储量相对于其他协议也有所减少.可见,新协议在计算量和存储量上具有很高的优越性.

表4 RFID认证协议的效能比较

4 结束语

本文在文献[7]的基础上提出了一种改进的RFID双向认证协议,为确保协议中阅读器与标签、阅读器与后台数据库之间通信的安全性,新协议采用了Hash函数、异或运算、动态更新标签ID的方法来防跟踪、防窃听、防重放和假冒攻击,而且通过在阅读器和后台数据库、标签和后台数据库之间共享密钥来防止系统内部攻击,同时通过在标签和阅读器中设置状态值Tt和Tr能够更快捷有效地防重放攻击.效能分析表明,本文协议成本低,而且能抵抗窃听攻击、重放攻击、假冒攻击、系统内部攻击等,具有很好的安全性和实用性.

参考文献:

[1] 潘涛,左开中,郭良敏,等.基于异或运算的低成本RFID双向认证协议[J].计算机工程,2012,38(9):278-281.

[2] He Jialiang, Xu Zhiqiang. A mutual RFID security protocol for wireless reader[J]. International Journal of Security and Its Applications, 2013,7(5):43-52.

[3] Sandhya M, Rangaswamy T R. A Practical Approach for Enhancing Security in Mobile RFID Environment[C]//2011 International Conference on Future Information Technology ICFIT 2011. Singapore, 2011.

[4] 朱炜玲,喻建平.物联网移动RFID系统隐私保护方案[J].系统工程理论与实践,2011,31(S2):119-123.

[5] 郭建庆.RFID系统的安全认证协议的研究[D].南京邮电大学,2012:19-40.

[6] 裴云.RFID安全认证协议研究[D].华中科技大学,2012:10-25.

[7] He Jialiang, Ouyang Dantong, Xu Youjun, et al. An efficient RFID authentication protocol supporting tag ownership transfer[J]. International Journal of Advancements in Computing Technology, 2012,4(4):244-253.

猜你喜欢

阅读器后台合法
基于反向权重的阅读器防碰撞算法
错位缝合法在创意立裁中的应用与研究
The Magna Carta
Winner Takes All
合法外衣下的多重阻挠
Wu Fenghua:Yueju Opera Artist
后台暗恋
找个人来替我怀孕一一代孕该合法吗?
后台朋友
一种RFID网络系统中消除冗余阅读器的高效算法