APP下载

应对密钥攻击的低成本RFID改进安全协议*

2018-10-08蔡旭灿

沈阳工业大学学报 2018年5期
关键词:存储空间阅读器攻击者

杨 灵, 蔡旭灿, 吴 霆

(仲恺农业工程学院 信息科学与技术学院, 广州 510225)

随着物联网技术的快速应用,物联网安全问题日益突出,尤其是作为产品电子代码(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系统安全问题.

1 LO安全协议及漏洞分析

1.1 LO安全协议

为了更好地分析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,发送给标签.

3) 将N1、N2、M1、flag发送给后台数据库.

如果系统通过认证,则进行如下操作:

① 产生一个随机数N3、N4;

③ 更新共享密钥KXDB=PRNG(KXDB⊕N4);

④ 通过安全通道发送M2、N3及对象数据给阅读器.

5) 阅读器接收到信息,它将继续发送M2、N3给标签.在接收的过程中,标签将执行如下操作:

① 计算M2⊕PRNG(KX+N3);

③ 如果相等,则认证成功,并更新密钥KX=PRNG(KX⊕N4),设置flag=0.

图1 flag=0时认证协议过程图Fig.1 Process diagram of protocol authentication with flag=0

当flag=1时协议认证过程如图2所示,具体流程如下:

1) 阅读器产生一个随机数N1,发送给标签.

3) 将N1、N2、M1、flag发送给后台数据库.

如果系统通过认证,则进行如下操作:

① 产生一个随机数N3、N4;

③ 更新共享密钥KXDB=PRNG(KXDB⊕N4);

④ 通过安全通道发送M2、N3对象数据给阅读器.

5) 阅读器接收到信息,将继续发送M2、N3给标签.在接收过程中,标签将执行如下操作:

① 计算M2⊕PRNG(KX⊕N3);

③ 如果相等,则认证成功,并更新密钥KX=PRNG(KX⊕N4),设置flag=0.

图2 flag=1时认证协议过程图Fig.2 Process diagram of protocol authentication with flag=1

1.2 协议漏洞分析

本节分析了一个有效的攻击方法,它能够恢复标签的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;

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;

5) 由M2|31-16⊕PRNG(KX⊕N3)推算出N4;

6) 由PRNG(KX⊕N4)推算出Kxnew;

7) 返回Kxnew、KX、EPCX.

综上所述,密钥泄露攻击的复杂度是窃听一次阅读器和标签完整会话,同时通过穷举法找到i,最多不超过216PRNG函数的运算时间,成功率为100%.

2 协议改进算法

结合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,在通信范围内进行广播.

3) 阅读器将M1、M2、N1、flag发送给后台数据库.

① 产生随机数N3、N4;

③M4=f(EPCX)⊕N3;

④ 更新共享密钥KXDB=PRNG(KXDB⊕N4);

⑤ 通过安全通道发送M3、M4给阅读器.

5) 阅读器接收到信息,它将继续发送M3、M4给标签.在接收的过程中,标签将执行如下操作:

① 计算N3=f(EPCXDB⊕M4);

② 计算M3⊕PRNG(KX⊕N3);

④ 如果相等,则认证成功,并更新密钥KX=PRNG(KX⊕N4),设置flag=0.

当flag=1时,改进协议过程图如图4所示,具体过程如下:

1) 阅读器产生一个随机数N1,发送给标签.

2) 标签将M1、M2、flag发送给阅读器.

3) 将N1、M1、M2、flag发送给后台数据库.

① 产生一个随机数N3、N4;

③M4=f(EPCX)⊕N3;

④ 更新共享密钥KXDB=PRNG(KXDB⊕N4);

⑤ 通过安全通道发送M3、M4给阅读器.

5) 阅读器接收到信息,它将继续发送M3、M4给标签.在接收的过程中,标签将执行如下操作:

① 计算N3=f(EPCXDB)⊕M4;

② 计算M3⊕PRNG(KX⊕N3);

图3 flag=0时改进协议过程图Fig.3 Process diagram of improved protocol with flag=0

④ 如果相等,则认证成功,并更新密钥KX=PRNG(KX⊕N4),设置flag=0.

图4 flag=1时改进协议过程图Fig.4 Process diagram of improved protocol with flag=1

3 协议安全性及性能分析

3.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;即使某个标签泄露,其存储在标签上的密码数据被攻击者获得,但由于共享密钥正常进行更新,攻击者仍然不能追溯到泄露标签的轨迹.

3.2 性能分析

由于本协议是为被动式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为标签的个数.

表1 各阶段计算能力需求表Tab.1 Computing capacity requirements at each stage

综上所述,本协议在服务器运算能力需求与Dim、Chien协议是相同的,但在标签计算能力需求比Dim、Chien协议更低.

4 结 论

本文对业界提出的一些典型的安全协议进行分析,发现其安全漏洞,并在LO所提出协议基础上,提出了一种安全、高效、实用且能适用于低成本RFID系统的双向认证协议.本协议通过在服务器上保存每个标签新、旧标识,有效地解决了服务器和标签的同步问题.通过对协议的可行性、安全性及性能3方面进行分析可知,该协议切实可行、安全性高、性能优良,适合低成本RFID系统.

猜你喜欢

存储空间阅读器攻击者
基于反向权重的阅读器防碰撞算法
基于多种群协同进化算法的数据并行聚类算法
苹果订阅捆绑服务Apple One正式上线
The Magna Carta
Winner Takes All
用好Windows 10保留的存储空间
正面迎接批判
正面迎接批判
基于图论的射频识别阅读器防碰撞算法
有限次重复博弈下的网络攻击行为研究