杨 灵, 蔡旭灿, 吴 霆
(仲恺农业工程学院 信息科学与技术学院, 广州 510225)
摘要:针对低成本RFID协议中攻击者仅需要对截获信息进行特定的异或运算,并采用穷举运算即可分析出标签密码信息的漏洞,提出了一种应对密钥攻击的改进型安全协议.在发送端将协议中标签的随机数与标签识别码的随机函数值进行异或运算来加密传输,以免被攻击者窃取,在服务器端通过相关反运算,与服务器保存的标签EPC随机函数值进行异或运算,获取本次通信的随机数,并与服务器密钥进行数值运算,判断认证是否成功.结果表明:该协议切实可行,同时能抵御窃听、重放、跟踪、阻断、模拟等多种攻击,并且该协议对存储空间和计算能力等方面的要求更低,适合低成本标签使用.
关键词:RFID协议; 射频识别; 密钥攻击; 安全协议; 漏洞分析; 随机数加密; 无线通信; 低成本标签
随着物联网技术的快速应用,物联网安全问题日益突出,尤其是作为产品电子代码(EPC)物理载体的低成本无源电子标签RFID(radio frequency identification),其标签计算能力有限,要求门电路数量不超过2 000个[1-2],而常用的SHA-256和MD5安全算法需要8 000~10 000个门电路,实现AES算法需要3 400个门电路[3-4],这导致常用无线网络传输安全算法无法使用RFID.为了推动低成本RFID的普及应用,EPCglobal和ISO制定了EPC-C1G2标准,并被ISO接收为国际标准ISO18000-6C,但仍然存在一定的安全隐患[5],业界也提出了一些安全认证协议用于提高其安全性.
Weis等人[6]提出一种以metaID作为随机密钥来加密通信的安全认证协议,即标签使用散列函数产生metaID,然后用metaID锁定标签,响应查询.但由于对于同一标签,采用相同metaID来响应查询便可以通过获取之前的会话信息来跟踪标签,因此,该方法不能抵抗跟踪攻击.Dimitriou[7]提出了一种变更发送与接收密钥的安全认证协议,即为了解决标签克隆问题.在发送阶段,该协议采用标签ID散列值来加密响应信息,服务器在验证标签ID后,对标签ID散列值进行更新,这样发送阶段与接收阶段的标签ID散列值不一致,攻击者无法对标签进行克隆.但由于在会话中,标签的ID仍然固定,产生的随机数可以被重复,因此,该方法还是可以被跟踪.Karthikeyan等人[8]提出一种使用矩阵乘法来进行加密通信的安全认证协议,即标签和密钥做矩阵乘法来加密响应信息.由于通过矩阵值很难获取矩阵被乘数或乘数,因此,攻击者即使获取会话信息,也很难进行攻击.但攻击者可以发动暴力攻击或者关键猜测攻击,同时,攻击者也可以利用会话信息进行重放和跟踪攻击.Chien等人[9]提出了一种符合EPCGen-2接口标准的安全认证协议,该协议在服务器存储了新旧2份标签密码,用旧密码进行认证,认证通过后,认证密码与ID散列值进行计算得到新密码,标签也可以使用同样的方法得到新密码,从而解决标签跟踪问题.但是,攻击者可以通过捕获之前的通信信息获得旧密码,并与固定的ID散列值计算出新密码,从而模拟服务器去欺骗标签.LO等人[5]提出通过每次对话都变更密钥的方式来抵御重放攻击,即每次对话时,服务器和标签都产生随机数,与密钥进行散列、异或运算,通过验证后利用随机数变更新的密钥,这样就可以防止重放攻击,而且服务器和标签都可以计算出相同的新密钥,提高效率.
综上所述,LO提出的协议安全性已经相对完善,但在对其安全性进行分析时,还是发现一些安全漏洞.本文将对该协议进行改进,提出了一种应对密钥攻击的低成本RFID改进协议,解决低成本RFID系统安全问题.
为了更好地分析LO安全协议的安全性,找出协议漏洞,首先对该协议的过程进行简述.
定义各变量含义:DB为存储器,Reader为RFID读写器,Tags为标签,EPCX为RFID标签保存的EPC编码,KX为RFID标签保存密钥,EPCXDB为RFID服务器数据库保存的RFID标签EPC编码,KXDB为RFID服务器数据库保存的RFID标签密钥,CRC为循环冗余校验,⊕为异或运算符,“‖”为逻辑“或”运算,flag代表上一次通信是否成功,“0”表示成功,“1”表示不成功,PRNG为伪随机数发生器产生的数据.
EPC C1G2安全协议分二种情况:一种是上一次通信成功,即flag=0;另一种是上一次通信失败,即flag=1.当flag=0时,协议认证过程如图1所示,具体流程如下:
1) 阅读器产生一个随机数N1,发送给标签.
2) 标签将N2、M1、flag发送给阅读器,并设置flag=1,其中,N2为标签产生的随机数,⊕PRNG·(KX⊕N2).
3) 将N1、N2、M1、flag发送给后台数据库.
4) 遍历后台数据库,取出每对EPCXDB和KXDB记录,并计算M1⊕PRNG(KX⊕N2),判断M1⊕PRNG(KX⊕N2)是否等于如果相同,则系统通过认证;否则终止会话.
如果系统通过认证,则进行如下操作:
① 产生一个随机数N3、N4;
② 计算⊕PRNG(KXDB⊕N3);
③ 更新共享密钥KXDB=PRNG(KXDB⊕N4);
④ 通过安全通道发送M2、N3及对象数据给阅读器.
5) 阅读器接收到信息,它将继续发送M2、N3给标签.在接收的过程中,标签将执行如下操作:
① 计算M2⊕PRNG(KX+N3);
② 比较M2⊕PRNG(KX⊕N3)与
③ 如果相等,则认证成功,并更新密钥KX=PRNG(KX⊕N4),设置flag=0.
图1flag=0时认证协议过程图
Fig.1Processdiagramofprotocolauthenticationwithflag=0
当flag=1时协议认证过程如图2所示,具体流程如下:
1) 阅读器产生一个随机数N1,发送给标签.
2) 标签将N2、M1、flag发送给阅读器,并设置flag=1,其中,N2为标签产生的随机数,⊕PRNG(EPCX⊕N2).
3) 将N1、N2、M1、flag发送给后台数据库.
4) 遍历后台数据库,取出每对EPCXDB和KXDB记录,并计算M1⊕PRNG(KXDB⊕N2),判断M1⊕PRNG(KXDB⊕N2)与是否相同.如果相同,则系统通过认证;否则终止会话.
如果系统通过认证,则进行如下操作:
① 产生一个随机数N3、N4;
② 计算⊕PRNG(KXDB⊕N3);
③ 更新共享密钥KXDB=PRNG(KXDB⊕N4);
④ 通过安全通道发送M2、N3对象数据给阅读器.
5) 阅读器接收到信息,将继续发送M2、N3给标签.在接收过程中,标签将执行如下操作:
① 计算M2⊕PRNG(KX⊕N3);
② 比较M2⊕PRNG(KX⊕N3)与
③ 如果相等,则认证成功,并更新密钥KX=PRNG(KX⊕N4),设置flag=0.
需要注意在计算M1、M2时,与PRNG(EPCX⊕N2)的长度不相等,当flag=0时,
的位数为144,而PRNG·(EPCX⊕N2)的长度为16,但在异或运算时,需通过将PRNG(EPCX⊕N2)进行多次重复,使得异或运算的两边位数相同.
图2flag=1时认证协议过程图
Fig.2Processdiagramofprotocolauthenticationwithflag=1
本节分析了一个有效的攻击方法,它能够恢复标签的EPCX和KX.该攻击主要依据异或运算法则:C⊕B⊕C=B.即已知A=B⊕C和C,可以通过计算B=C⊕A,很容易恢复B.根据该原理,可以通过捕获N1、N2、M1,从而恢复PRNG(KX⊕N2)和EPCX.同时,攻击者可以根据已知的PRNG(KX⊕N2)和N2,通过穷举搜索计算出KX.当flag=1时,先窃听一次协议会话,并保存M1、M2、N1、N2、N3、flag等所有信息,攻击者无需通过穷举搜索就可以获取KX.当flag=0时,具体操作步骤如下:
1) 由(M1|31-16)⊕N2推算出PRNG(KX⊕N2),其中,M1|31-16是M1从低位到高位的16位到32位;
2) 由PRNG(KX⊕N2)推算出Y;
3) 由(M1|143-48)⊕推算出EPCX;
4) 通过穷举法找到i,使得PRNG(i)=PRNG·(KX⊕N2),那么可由i⊕N2推算出KX,其中,∀i=0,1,…,216-1;
5) 由M2|31-16⊕PRNG(KX⊕N3)推算出N4;
6) 由PRNG(KX⊕N4)推算出Kxnew;
7) 返回Kxnew、KX、EPCX.
当flag=1时,具体操作步骤如下:
1) 由(M1|31-16)⊕N2推算出PRNG(KX⊕N2);
2) 由PRNG(KX⊕N2)推算出Y;
3) 由M1|63-48⊕Y推算出KX;
4) 由(M1|159-64)⊕推算出EPCX;
5) 由M2|31-16⊕PRNG(KX⊕N3)推算出N4;
6) 由PRNG(KX⊕N4)推算出Kxnew;
7) 返回Kxnew、KX、EPCX.
综上所述,密钥泄露攻击的复杂度是窃听一次阅读器和标签完整会话,同时通过穷举法找到i,最多不超过216PRNG函数的运算时间,成功率为100%.
结合RFID无线通信的线路不安全和RFID标签计算能力低的实际情况,安全认证协议主要考虑以下3个方面:首先是标签EPCX、KX要与服务器EPCXDB、KXDB匹配;其次是每次通信后,双方的密钥必须按照同一规则更新;最后是不能采用高运算能力的加密算法.因此,本协议采用PRNG(KX⊕N2)与EPCX、KX进行异或运算来模糊阅读器和标签之间的传输,采用KXDB=PRNG(KXDB⊕N4)来更新密钥,并用随机数N1、N2来表明阅读器、标签的身份,防止重放攻击.但通过对LO协议漏洞分析可知,攻击者可以通过异或运算法则,即通过捕获N1、N2、M1计算出KX和EPCX.其中,随机数N2是攻击漏洞的关键:一方面是在计算EPCX时,可以通过N2计算出PRNG(KX⊕N2);另一方面是计算KX过程中,可以通过N2按照公式N2⊕KX⊕N2=KX计算出KX.为了保证通信安全,本文将N2隐藏在M2=f(EPCX)⊕N2中进行传输,在服务器上,根据C⊕B⊕C=B,重新获取N2.当flag=0时,改进协议过程图如图3所示,具体过程如下:
1) 阅读器产生一个随机数N1,在通信范围内进行广播.
2) 标签接收到随机数N1后,将M1、M2、flag=0发送给阅读器,并设置flag=1,其中,⊕PRNG(KX⊕N2),M2=f(EPCX)⊕N2.
3) 阅读器将M1、M2、N1、flag发送给后台数据库.
4) 从后台数据库取出EPCXDB和KXDB,计算N2=f(EPCXDB)⊕M2,并计算M1⊕PRNG(KXDB⊕N2),判断M1⊕PRNG(KXDB⊕N2)是否等于如果相同,则系统通过认证;否则终止会话.如果系统通过认证,则进行如下操作:
① 产生随机数N3、N4;
② 计算⊕PRNG(KXDB⊕N3);
③M4=f(EPCX)⊕N3;
④ 更新共享密钥KXDB=PRNG(KXDB⊕N4);
⑤ 通过安全通道发送M3、M4给阅读器.
5) 阅读器接收到信息,它将继续发送M3、M4给标签.在接收的过程中,标签将执行如下操作:
① 计算N3=f(EPCXDB⊕M4);
② 计算M3⊕PRNG(KX⊕N3);
③ 比较M3⊕PRNG(KX⊕N3)与
④ 如果相等,则认证成功,并更新密钥KX=PRNG(KX⊕N4),设置flag=0.
当flag=1时,改进协议过程图如图4所示,具体过程如下:
1) 阅读器产生一个随机数N1,发送给标签.
2) 标签将M1、M2、flag发送给阅读器.
3) 将N1、M1、M2、flag发送给后台数据库.
4) 从后台数据库取出EPCXDB和KXDB,计算N2=f(EPCXDB)⊕M2,并计算M1⊕PRNG(EPCXDB⊕N2),判断M1⊕PRNG(KX⊕N2)是否等于如果相同,则系统通过认证;否则终止会话.如果系统通过认证,则进行如下操作:
① 产生一个随机数N3、N4;
② 计算⊕PRNG(KXDB⊕N3);
③M4=f(EPCX)⊕N3;
④ 更新共享密钥KXDB=PRNG(KXDB⊕N4);
⑤ 通过安全通道发送M3、M4给阅读器.
5) 阅读器接收到信息,它将继续发送M3、M4给标签.在接收的过程中,标签将执行如下操作:
① 计算N3=f(EPCXDB)⊕M4;
② 计算M3⊕PRNG(KX⊕N3);
图3flag=0时改进协议过程图
Fig.3Processdiagramofimprovedprotocolwithflag=0
③ 比较M3⊕PRNG(KX⊕N3)与
④ 如果相等,则认证成功,并更新密钥KX=PRNG(KX⊕N4),设置flag=0.
图4flag=1时改进协议过程图
Fig.4Processdiagramofimprovedprotocolwithflag=1
3.1.1 重放攻击
重放攻击[1]主要是攻击者将之前捕获的标签响应或者阅读器查询进行重放,从而欺骗阅读器或者标签.本协议通过改变通信信息中的随机数来防御重放攻击.
首先,在本协议中,当标签、读写器、服务器之间通信时,包含了N1、N2、N3等随机数,每次通信结束后都会产生新的随机数,而攻击者重放信息中的随机数是旧随机数,这样阅读器可以通过比较新旧随机数来判断是否为无效信息,因此,重放标签的响应是没有用的.其次,因为标签接收的数据M2会包含标签自己产生的随机数N2,故只需将接收到的随机数与之前发出的随机数进行比较即可判断是否需要发出响应,重放阅读器的查询并没有效果.
3.1.2 跟踪攻击
本协议能够有效抵御跟踪攻击.首先,虽然传送的信息M1、M2、M3、M4包含了EPCX,但信息均采用了加密方式,攻击者无法获取标签的EPCX,这样攻击者就无法诱使标签发送响应信息.其次,即使标签的EPCX泄露,但由于每次通信过程都会包含不同的随机数,标签或者服务器可以通过匹配随机数来判断是否是合法信息,从而有效解决标签跟踪问题.最后,即使某个标签信息泄露,攻击者获取了通信密钥,由于本协议已经保存新旧二份密钥,每次通信都会对密钥进行更新,攻击者无法获得之前通信的通信密钥,也就无法捕获之前的标签位置信息.
3.1.3 窃听攻击
根据Shannon理论,传输数据与随机数进行异或运算可以很好地对传输数据进行加密,如果攻击者无法获得随机数,则不能获得传输数据.在本协议中,需传输的信息M1、M2分别与PRNG·(EPCX⊕N2)、PRNG(EPCX⊕N3)进行异或运算,而每次传输数据中的随机数N2、N3都不同,这样攻击者即使捕获了通信数据,也无法获取随机数N2、N3,也就无法得到传输数据,因此,本协议可以有效抵御窃听攻击.
3.1.4 DoS攻击
本协议通过设置flag位来抵御DoS攻击,当前一次通信成功时,flag=0,M1=PRNG(KXDB⊕N2),当flag=1时,M1=PRNG(EPCXDB⊕N2).由于EPC是不变化的,即使被攻击者异常打断,也可以重新更新共享密钥KX;即使某个标签泄露,其存储在标签上的密码数据被攻击者获得,但由于共享密钥正常进行更新,攻击者仍然不能追溯到泄露标签的轨迹.
由于本协议是为被动式RFID标签设计,所以必须提高安全算法的性能,以适应被动式RFID标签运算能力低、存储空间小的实际情况,本文从计算能力和存储空间二个方面进行分析.
3.2.1 存储空间
本协议存储空间的要求有两类[10-11]:一类是标签所需存储空间,在标签上需要存储动态密钥KX和标识EPCX,因此,标签所需的存储空间为EPCX和KX的长度,一般为128 bit;另一类是服务器所需存储空间,服务器上需要存储每个标签的[EPCXDB,KXDB],则服务器的最小存储空间为N×128 bit.因此,本协议对服务器存储空间要求随着标签数量的增加而增加,对标签的存储空间要求是固定的,满足低成本标签的要求.
3.2.2 计算能力
本协议中,CRC、散列函数等复杂函数运算的次数是统计计算能力的主要参数指标[12-13],因此,对Dim、Chien以及本协议复杂函数各阶段的计算次数进行了统计,对比情况如表1所示,表中k为整数,且1≤k≤2n,n为标签的个数.
在本协议中,计算能力主要分为两个部分:服务器的计算能力与标签的计算能力.服务器在接收阶段,其会从后台数据库取出EPCXDB和KXDB,计算N2=f(EPCXDB)⊕M2、M1⊕PRNG(KXDB⊕N2),判断M1⊕PRNG(KXDB⊕N2)是否等于因此,服务器需为每对EPCXDB、KXDB提供2次复杂函数计算,n对EPCXDB、KXDB的最大复杂函数计算次数为2n;在发送阶段,服务器需计算
⊕PRNG(KXDB⊕N3)、M4=f(EPCX)⊕N3,故需进行2次复杂函数计算;在更新阶段,服务器需更新共享密钥KXDB=PRNG(KXDB⊕N4),故需提供1次复杂函数计算.
表1各阶段计算能力需求表
Tab.1Computingcapacityrequirementsateachstage
标签在发送阶段,需计算⊕PRNG·(EPCX⊕N2),故标签需进行2次复杂函数计算;在接收阶段,需计算M3⊕PRNG(KX⊕N3),并比较M3⊕PRNG(KX⊕N3)与
故服务器需进行1次复杂函数计算;在更新阶段,标签的共享密钥更新可以通过M4的异或运算获得,不需进行复杂计算.
综上所述,本协议在服务器运算能力需求与Dim、Chien协议是相同的,但在标签计算能力需求比Dim、Chien协议更低.
本文对业界提出的一些典型的安全协议进行分析,发现其安全漏洞,并在LO所提出协议基础上,提出了一种安全、高效、实用且能适用于低成本RFID系统的双向认证协议.本协议通过在服务器上保存每个标签新、旧标识,有效地解决了服务器和标签的同步问题.通过对协议的可行性、安全性及性能3方面进行分析可知,该协议切实可行、安全性高、性能优良,适合低成本RFID系统.
参考文献(References):
[1] Rahman F,Hoque M E,Ahamed S I.A secure anonymous private authentication protocol for RFID systems [J].Information Sciences,2017(379):195-210.
[2] Kaul S D,Awasthi A K.Privacy model for threshold RFID system based on PUF [J].Wireless Personal Communications,2017,95(3): 2803-2828.
[3] Jannati H,Bahrak B.Security analysis of an tag search protocol [J].Information Processing Letters,2016,116(10):618-622.
[4] Chen C L,Deng Y Y.Conformation of EPC class 1 generation 2 standards RFID system with mutual authentication and privacy protection [J].Engineering Applications of Artificial Intelligence,2009,22(8):1284-1291.
[5] Lo N W,Yeh K H.A secure communication protocol for EPC global class 1 generation 2 RFID systems [C]//IEEE,International Conference on Advanced Information Networking and Applications Workshops.WA,Australia,2010:562-566.
[6] Weis S A.RFID (radio frequency identification): principlesand applications [J].System,2007,2(3):1-23.
[7] Dimitriou T.A lightweight RFID protocol to protect against traceability and cloning attacks [C]//International Conference on Security and Privacy for Emerging Areas in Communications Networks.Washington D C,USA,2005:59-66.
[8] Karthikeyan S,Nesterenko M.RFID security without extensive cryptography [C]//ACM Workshop on Security of Ad Hoc and Sensor Networks.New York,USA,2005:63-67.
[9] Chien H Y,Chen C H.Mutual authentication protocol for RFID,conforming to EPC,class 1 generation 2 standards [J].Computer Standards & Interfaces,2007,29(2):254-259.
[10] Kang J.Lightweight mutual authentication RFID protocol for secure multi-tag simultaneous authentication in ubiquitous environments [J].Journal of Supercomputing,2016,72(9):1-14.
[11] Yu Y,Lei Z.Research on a provable security RFID authentication protocol based on Hash function [J].Journal of China Universities of Posts & Telecommunications,2016,23(2):31-37.
[12] Kang Y S,O’Sullivan E,Choi D,et al.Security ana-lysis on RFID mutual authentication protocol [C]//Information Security Applications.Jeju Island,Korea,2015:65-74.
[13] Qian Q,Jia Y L,Zhang R.A lightweight RFID security protocol based on elliptic curve cryptography [J].International Journal of Network Security,2016,18(2):354-361.
YANG Ling, CAI Xu-can, WU Ting
(School of Information Science and Technology, Zhongkai University of Agriculture and Engineering, Guangzhou 510225, China)
Abstract:Aiming at the loophole that in the low-cost RFID protocol, the attacker only needs to make the specific exclusive operation for the intercepted information and then uses the traversal operation to obtain easily the password information of tags, an improved security protocol for the key attack was proposed. At the sending side, the exclusive operation was performed for the random number generated in the protocol and the random function value of tag identification code in order to encrypt the transmission and to avoid being stolen by the attacker. At the server side, through the relative reverse operation and the exclusive operation of EPC random function of tag saved in the server, the random number of communication was obtained. At the same time, the calculation of concerning with the server key was performed to determine whether the authentication was successful. The results show that the protocol is feasible, and can resist such attacks as eavesdropping, replaying, tracking, blocking and simulation. The improved RFID protocol has less demand in the storage space and computing capacity, and is suitable for the low-cost tags.
Keywords:RFID protocol; radio frequency identification; key attack; security protocol; loophole analysis; random number encryption; radio communication; low-cost loophole
doi:10.7688/j.issn.1000-1646.2018.05.09
* 本文已于2018-04-04 10∶58在中国知网优先数字出版. 网络出版地址: http:∥kns.cnki.net/kcms/detail/21.1189.T.20180404.0942.006.html
作者简介:杨 灵(1980-),男,江西崇仁人,副研究员,硕士,主要从事RFID及网络安全等方面的研究.
基金项目:国家自然科学基金资助项目(F010701); 广东省自然科学基金资助项目(9151022501000008); 广东省工业攻关资助项目(2015A020209173); 广州市产学研协同创新重大专项资助项目(201704020030).
收稿日期:2017-06-28.
文章编号:1000-1646(2018)05-0528-07
文献标志码:A
中图分类号:TN 915.08
(责任编辑:景 勇 英文审校:尹淑英)