改进的抗假冒攻击的移动RFID双向认证协议

2020-06-16 10:41刘卓华黄彩娟
计算机应用与软件 2020年6期
关键词:读写器攻击者后台

刘卓华 黄彩娟 所 辉

(广东机电职业技术学院计算机与设计学院 广东 广州 510006)

0 引 言

传统的RFID系统中读写器以及后台服务器都是固定不动,随着科技的发展以及社会的进步,传统的RFID系统无法满足人们的需求,因此出现了移动RFID系统[1]。在移动RFID系统中,后台服务器以及读写器都是移动的,从而能够更好地适用人们的需求。基于两者都是移动的缘故,使得原本适用于传统RFID系统的双向认证协议不再适用于移动RFID系统。相对于传统的RFID系统,移动RFID系统安全性更加令人担忧,移动读写器与标签之间采用无线方式通信,同时移动读写器与后台服务器之间也采用无线方式通信,给攻击者提供了更多监听的机会,使得传输的信息安全性急剧降低[2-4]。为确保用户隐私信息的安全性,需设计出适用于移动RFID系统的双向认证协议。

文献[5]设计出一种适用于移动系统的认证协议,该协议具备较高的安全性,能够满足移动系统的安全性需求。但协议采用基于椭圆曲线算法对信息进行加密,计算量较大,对于现有的受限制的标签而言,该计算量超出标签的计算能力,因此协议无法进行较大范围的推广。

文献[6]提出一个轻量级的移动认证协议,该协议基于哈希函数实现对信息的加密,相对于文献[5]的协议,计算量方面得到较大幅度的降低。但协议中传输的信息大多数采用明文传输,且产生的随机数以及加密用到的随机数都是明文传输,攻击者通过监听一个完整的通信过程,可以获取所有的通信信息,然后对消息开始采用穷举的方式破解出标签中存放的隐私信息,因此协议无法抵抗攻击者的暴力破解攻击。

文献[7]提出一个适用于移动系统的认证协议,该协议抛弃传统的基于哈希函数加密算法,而是选择计算量较小的交叉及异或等按位运算对消息进行加密。但攻击者可以通过物理入侵的方式获取标签以及读写器的密钥,从而通过对标签以及读写反向克隆的方式发送假冒攻击,因此该协议无法抵抗攻击者发起的假冒攻击。

文献[8]设计出一个双向认证协议,适用于移动RFID系统。该协议采用基于物理不可克隆函数(Physical Unclonable Function, PUF)来进行密钥的生成,标签一端只有在认证过程中由PUF电路产生相对应的认证密钥,从而避免了传统加密机制将密钥存放在非易失性存储器易被攻击者窃取的弊端,能够有效抵抗攻击者发起的假冒攻击。但协议在重复发送消息时,会使得标签一端的认证密钥与数据库之间失去同步性,因此协议无法抵抗攻击者的去同步化攻击。

文献[9]提出一种改进的轻量级的移动认证协议,该协议主要基于哈希函数实现信息的加密传输。协议声称能够抵抗攻击者发起的假冒攻击,同时能够满足信息的新鲜性;但本文对该协议进行深入研究发现该协议并不能提供作者声称的安全需求。本文基于文献[9]协议,设计出改进的抗假冒攻击的移动RFID系统认证协议。

鉴于文中篇幅有限,有关更多的移动RFID系统的认证协议可以参考文献[10-15]。

1 文献[9]协议分析

文献[9]协议的双向认证流程图如图1所示。

图1 文献[9]的认证协议

结合图1对文献[9]协议进行分析,得出如下安全缺陷或不足之处:

(1) 文献[9]协议中声称能够实现通信实体之间的双向认证,但分析后发现,该协议并不能提供该安全机制。具体原因如下:

① 在第一步中,移动读写器传送给标签的都是明文信息;标签在接收到信息后,无法通过该信息对移动读写器进行认证,此处是第一次标签未对移动读写器的认证。

基于上述可知,文献[9]协议并不能实现通信实体之间的双向认证。

(2) 文献[9]协议中声称能够抵抗攻击者的假冒攻击,但分析后发现,该协议并不能提供该安全机制。具体原因如下:

基于上述可知,文献[9]协议并不能抵抗攻击者的假冒攻击。

(3) 文献[9]协议中部分描述的正确性有待商榷,如:IDt表示标签的身份标识符,IDr表示移动读写器的身份标识符;在实际应用中,标签和移动读写器的身份标识符都是不会发生变化的(有关该部分的描述可以参考文献[16]);在实际应用中,为了防止攻击者的追踪攻击等,会引入身份的假名标识符,该参数可以随时发生变化。文献[9]协议中IDt和IDr则会经常发生变化,而对于该种描述是否完全正确,至少其他文献中暂未有对该描述持支持观点的。再比如:文献[9]协议中描述更新过程中能够基于随机数Nt保证信息的新鲜性。这种描述的正确性亦是有待商榷,具体原因如下:通过上面的认证流程图可以发现IDtnew=HKt(Nt‖IDtold)中信息的更新新鲜性依赖于随机数Nt,但通过整个认证协议会发现,随机数Nt最开始是由后台服务器产生,再传送给标签的,且协议通信过程中随机数Nt以明文传送;对于攻击者来说,只需要进行监听,即可获取随机数Nt;同时在后台服务器将随机数Nt发送给标签之后,随机数Nt便没有更新,这样使得IDtnew=HKt(Nt‖IDtold)中用到的随机数Nt一直都是同一个数。随机数Nt未发生变化,那更新的IDtnew信息的新鲜性如何得到保证?因此文献[9]协议中的观点正确性有待商榷。

2 改进协议

2.1 协议的符号描述

基于文献[9]协议,本文给出一种改进的能抵抗假冒攻击的移动RFID双向认证协议。

改进的协议主要从以下方面弥补文献[9]协议的不足:(1) 所有传输的信息均采用密文发送;(2) 信息更新过程中用到的随机数每轮将会随机产生,做到真正保证信息的新鲜性;(3) 为降低通信实体的计算量,摒弃哈希函数加密方法,采用交叉位运算对信息进行加密。

现将协议中用到的符号具体的含义解释如下:

S:后台服务器;

R:移动读写器;

T:标签;

IDSR:移动读写器的假名身份标识符;

IDST:标签的假名身份标识符;

IDST_new:后台服务器存放的本轮认证的标签的假名身份标识符值;

IDST_old:后台服务器存放的上轮认证的标签的假名身份标识符值;

K:后台服务器、移动读写器、标签三者之间的共享密钥;

KR:移动读写器与后台服务器之间的共享密钥;

KT:标签与后台服务器之间本轮认证的共享密钥;

KT_old:标签与后台服务器之间上轮认证的共享密钥;

X_R:消息的右边部分;

X_L:消息的左边部分;

x:移动读写器产生的随机数;

y:标签产生的随机数;

⊕:按位异或运算;

Cro(X,Y):交叉位运算。

文中为便于描述,用符号Cro(X,Y)来表示交叉位运算,该运算的定义如下:X和Y都是长度为偶数位的二进制序列,取X的奇数位、Y的偶数位组合成一个新的二进制序列。具体的:从左到右,取X的奇数位依次放在新二进制序列的偶数位;取Y的偶数位依次放在新二进制序列的奇数位。例如:长度为8位的二进制序列X=10010011、Y=01011011,则Cro(X,Y)=11100011,具体如图2所示。

图2 交叉位运算流程图

2.2 改进的协议描述

本文协议包含两个不同的阶段:协议的初始化阶段和协议的双向认证阶段。

(1) 协议的初始化阶段。协议在该阶段主要功能是:后台服务器产生相关的隐私密钥,以及将产生的隐私密钥安全地发送给移动读写器和标签。后台服务器产生信息有:IDSR、IDST、K、KT、KR。协议在刚开始的时候,令IDST_new=IDST_old=IDST。将(IDSR、K、KR)存储到移动读写器中;将(IDST、K、KT)存储到标签中;后台服务器中存储(IDSR、IDST、K、KT、KR、KT_old、IDST_old),其中KT_old初始化为0。

后台服务器与移动读写器具备较强的计算能力、较大的存储空间、较强的查询能力;标签计算能力以及存储空间均受限。

(2) 协议的双向认证阶段。能够抵抗假冒攻击的移动RFID双向认证协议具体过程如图3所示。

图3 移动RFID系统双向认证协议

结合图3所示,协议具体步骤描述如下:

第一步移动读写器首先产生随机数x;利用x、K计算A,利用x、K计算B;将一并发送给标签。其中:Query表示认证请求命令,A=x⊕K,B=Cro(x,K)。

第二步标签收到信息后,利用A、K计算随机数x′,利用计算得到的随机数x′、K计算B′。然后比较B′与B是否相等。不相等,标签验证移动读写器失败,协议停止;相等,表明x′=x,标签产生随机数y,利用x、y、K计算C,利用x、y、K计算D,利用IDST、y、KT计算E,最后将一并发送给移动读写器。其中:E_L表示取E的左半部分的值,x′=A⊕K,B′=Cro(x′,K),C=y⊕x⊕K,D=Cro(y⊕K,x),E=Cro(y⊕KT,y⊕IDST)。

第三步移动读写器收到信息后,利用C、x、K计算随机数y′,利用计算得到的随机数y′、x、K计算D′。然后比较D′与D是否相等。不相等,移动读写器验证标签失败,协议停止。相等,表明y′=y,利用x、IDSR、KR计算F,最后将一并发送给后台服务器。其中:F_L表示取F的左半部分的值,y′=C⊕K⊕x,D′=Cro(y′⊕K,x),F=Cro(x⊕IDSR,x⊕KR)。

第四步后台服务器收到信息后,分别验证标签、移动读写器的合法性。

① 对移动读写器的验证。后台服务器利用A、K计算随机数x′,利用计算得到的随机数x′、IDSR、KR计算F′,对F′取左半部分的值得到F_L′。然后比较F_L′与F_L是否相等。不相等,后台服务器验证移动读写器失败,协议停止;相等,表明x′=x,后台服务器验证移动读写器通过,然后开始验证标签的合法性。其中:x′=A⊕K,F′=Cro(x′⊕IDSR,x′⊕KR)。

② 对标签的验证。后台服务器利用C、x、K计算随机数y′,利用计算得到的随机数y′、KT、IDST计算E′,对E′取左半部分的值得到E_L′。然后比较E_L′与E_L是否相等。相等,表明y′=y,后台服务器验证标签通过,然后开始更新信息:IDST_old=IDST_new、KT_old=KT、KT=Cro(y,KT)、IDST_new=Cro(y,IDST_old)。不相等,后台服务器取出上一轮认证用到的KT_old、IDST_old替换KT、IDST计算E″,对E″取左半部分的值得到E_L″。然后比较E_L″与E_L是否相等。仍不相等,后台服务器验证标签失败,协议停止;相等,后台服务器验证标签通过,后台服务器与标签之间又重新恢复一致性,且更新信息:IDST_new=Cro(y,IDST_old),KT=Cro(y,KT),最后将一并发送给移动读写器。其中E_R表示取E的右半部分的值,F_R表示取F的右半部分的值,y′=C⊕K⊕x,E′=Cro(y′⊕KT,y′⊕IDST),E″=Cro(y′⊕KT_old,y′⊕IDST_old)。

第五步移动读写器收到信息后,将之前第三步中计算得到的F取右半部分得到F_R;将此数值与接收到的F_R相比较。不相等,移动读写器验证后台服务器失败,协议停止;相等,移动读写器利用E_R、x、y计算G,最后将一并发送给标签。其中:G=E_R⊕x⊕y。

第六步标签收到信息后,将之前第二步中计算得到的E取右半部分得到E_R,利用E_R、x、y计算得到G;将此数值与接收到的G相比较。不相等,标签验证移动读写器失败,协议停止;相等,开始更新信息:IDST_new=Cro(y,IDST_old),KT=Cro(y,KT)。到此,后台服务器、移动读写器、标签三者之间的认证完成。

3 形式化分析

对本文设计出的双向认证协议进行形式化分析证明,具体步骤如下:

(1) 协议的理想化模型。

消息①R→T:

消息②T→R:

消息③R→S:

消息④S→R:

消息⑤R→T:

(2) 协议的初始假设。

P13:R|≡#(x) P14:T|≡#(x)

P15:S|≡#(x) P16:R|≡#(y)

P17:T|≡#(y) P18:S|≡#(y)

P19:R|≡T|⟹CP20:R|≡T|⟹D

P21:R|≡T|⟹E_LP22:T|≡R|⟹A

P23:T|≡R|⟹BP24:T|≡R|⟹G

P25:S|≡R|⟹AP26:S|≡R|⟹F_L

P27:S|≡T|⟹CP28:S|≡T|⟹E_L

P29:R|≡S|⟹E_RP30:R|≡S|⟹F_R

(3) 协议的安全目标。

G1:R|≡CG2:R|≡D

G3:R|≡E_LG4:R|≡E_R

G5:R|≡F_RG6:T|≡A

G7:T|≡BG8:T|≡G

G9:S|≡F_LG10:S|≡A

G11:S|≡CG12:S|≡E_L

(4) 协议的分析推理。

运用上述条件和法则,同理可证得G2-G12。

4 性能分析

移动RFID系统中有三个通信实体,标签、移动读写器、后台服务器。相对于标签来说,移动读写器、后台服务器均具备较大的存储空间和较强的计算能力,因此性能分析仅选择标签作为比较的对象。主要从标签一端的计算量、标签一端的存储空间两个方面进行性能比较,具体性能分析结果参见表1。

表1 协议的性能比对

表1中:ha符号表示产生随机数的计算量;hb符号表示哈希函数运算的计算量;hc符号表示模乘的计算量;hd符号表示时间戳的计算量;he符号表示异或运算的计算量;hf符号表示字合成运算的计算量;hg符号表示物理不可克隆函数运算的计算量;hi符号表示伪随机函数运算的计算量;hj符号表示交叉运算的计算量。设定KT、IDST、K三者的长度均为l位。

本文协议相对于其他比较的协议而言,摒弃哈希函数加密的方法,而是采用超轻量级的字合成运算加密,能够尽可能地降低标签的计算量。相对于文献[9]来说,虽然引入随机数产生运算,但本文协议只需要产生一个随机数,因此该计算量标签是可以实现的。从性能角度出发,可以发现:本文协议在计算量方面优于对比协议,同时能够解决部分协议中存在的安全缺陷问题。

5 安全性分析

(1) 假冒攻击。本文协议能够抵抗攻击者发起的假冒攻击,具体分析如下:

攻击者假冒标签,对于攻击者来说,缺少IDST、KT、K信息,因此加密过程中用到这三个量的时候,攻击者只能随机选择一个量充当,导致攻击者计算出来的加密信息C、D、E_L都是不正确的。当移动读写器或后台服务器接收到信息后,通过简单的计算即可识别出发送过来信息的通信实体是伪造的。攻击者假冒标签发起的攻击失败。

攻击者假冒移动读写器,对于此时的攻击者而言,缺少IDSR、KR、K信息,因此发送给标签的信息A和B都是错误的,标签通过简单的计算即可识别出移动读写器的真伪。本文对文献[5]协议具体分析时指出,当后台服务器传送消息给移动读写器之后,移动读写器并没有进行任何操作,而是直接将信息转发给标签,才导致文献[5]协议无法抵抗攻击者的假冒攻击。为解决此安全问题,本文协议在移动读写器收到后台服务器发送来的信息后,并不是直接转发该信息,而是对其中的E_R再次进行加密后传送标签。因攻击者无法获取随机数x和y,因此攻击者无法假冒移动读写器计算正确的G,故协议可以抵抗攻击者假冒移动读写器发起的假冒攻击。

攻击者假冒后台服务器,攻击者此时不知晓IDST、KT、IDSR、KR、K这些信息,因此对于移动读写器发送来的信息无法进行解密。解密失败,则无法获取随机数x和y,缺少这两个随机数,攻击者只能随机选择两个随机数替换,由此计算所得到的F_R和E_R都是不正确的。移动读写器和标签收到信息后,简单计算即可识别出后台服务器是攻击者假冒的,攻击者假冒攻击失败。

基于上述分析,协议可以抵抗攻击者发起的各种类型的假冒攻击。

(2) 双向认证。移动RFID系统中有三个通信实体,因此三个通信实体之间均需要实现双向认证,本文协议能够提供该安全需求。

移动读写器与标签之间的双向认证:第二步中,标签通过A和B实现对移动读写器的第一次认证;第六步中,标签将会通过G再次对移动读写器进行认证。通过两步认证,但凡只要有一次移动读写器是假冒的,协议都会立刻停止。移动读写器对标签的认证则是在第三步中完成的,通过C和D完成对标签的认证。

移动读写器与后台服务器之间的双向认证:第四步中,后台服务器收到移动读写器发送来的信息后,通过A和F_L实现对移动读写器的认证。第五步中,移动读写器通过F_R完成对后台服务器的认证。

后台服务器与标签之间的双向认证:第四步中,后台服务器先对移动读写器进行认证,认证通过之后,将会开始对标签进行认证,通过C和E_L完成对标签的认证。第六步中,标签通过G在完成对后台服务器认证的同时,亦完成了对移动读写器的认证。

基于上述阐述,协议能够实现三个通信实体之间的双向认证。

(3) 重放攻击。攻击者通过监听等手段可以获取上一轮的通信消息,企图通过重放监听的信息来获取标签存放的隐私信息,但攻击者无法成功。协议为了能够抵抗攻击者的重放攻击,在所有传输信息加密过程中混入随机数,且随机数每轮都是随机产生,从而使得每一轮通信信息的具体数值是不相同的,且无法提前预测。当攻击者重放监听到的上一轮信息时,通信实体用到的认证密钥已经发生变化,此时通过简单计算即可识别出该消息是攻击者重放的,协议停止,攻击者并未获取有效的隐私信息,因此协议可以抵抗重放攻击。

(4) 追踪攻击。攻击者企图通过长时间的监听方式,对标签实施追踪攻击,但对于本文协议,攻击者实施的追踪攻击无法成功。具体原因如下:其一,为确保标签不会被定位,信息加密过程中未使用标签的标识符,而是引入标签的假名标识符进行加密;其二,为确保标签不被定位,标签的假名标识符每进行一轮认证之后,都会及时进行更新;其三,消息加密过程中混入随机数,每轮混入的随机数都是不一样的。基于上面的因素,使得攻击者无法从窃听的消息中定位标签的位置,因此,协议可以抵抗攻击者的追踪攻击。

(5) 去同步化攻击。为了保证后台服务器与标签之间加密密钥的同步性,即为了能够抵抗攻击者发起的去同步化攻击,协议在后台服务器一端不仅存放有当前认证用到的加密密钥,同时存放上一轮认证用到的密钥。具体地,在协议认证步骤的第四步中,后台服务器会首先用KT、IDST信息对标签进行认证,当此次认证失败之后,后台服务器会再次用KT_old、IDST_old信息替换KT、IDST对标签进行认证,从而用来抵抗攻击者发起的去同步化攻击。

(6) 暴力破解攻击。基于当前计算机计算能力大幅提升,攻击者可能采用更为直接和暴力的穷举方式对信息进行破解,从而破解出标签存放的隐私信息。为抵抗攻击者发起的暴力破解攻击,协议在设计的时候从以下几个方面进行改进:其一,所有信息都是加密后再传输;其二,信息加密过程中用到的参数,对于攻击者来说,都至少有两个参数的量攻击者是不知晓的;其三,信息加密过程中混入随机数,随机数每轮都是随机产生,无法提前预测。此处选取消息F=Cro(x⊕IDSR,x⊕KR)作为分析的对象,F在加密过程中用到IDSR、x、KR三个参数,但是攻击者并不知道这三个参数中任何一个,无法通过穷举的方式穷尽出隐私信息,因此协议可以抵抗攻击者的暴力破解攻击。

本文协议与其他此类协议进行安全性对比如表2所示。

表2 协议的安全性对比

注:√表示能够抵抗,×表示无法抵抗

6 结 语

本文分析了移动RFID系统产生的背景因素,阐述了传统的RFID系统双向认证协议并不能很好地适用于移动RFID系统中。对近些年经典的移动认证协议进行分析,重点分析了文献[9]提出的认证协议,指出其协议存在的安全缺陷,然后给出改进的协议。改进的协议为降低标签一端的计算量,摒弃哈希函数加密的方法,采用字合成运算对信息进行加密;为保证信息的安全,所有信息均加密后在传送;信息加密过程中混入随机数,增大攻击者的破解难度。对协议进行安全性分析,表明协议具备较高的安全性;对协议进行性能分析,表明协议在计算量方面适用于受限的标签。下一步将在具体的应用系统中实现出来,对协议的具体计算量更进一步详细分析。

猜你喜欢
读写器攻击者后台
基于贝叶斯博弈的防御资源调配模型研究
宁波轨道交通AFC系统读写器测试平台设计
Wu Fenghua:Yueju Opera Artist
正面迎接批判
正面迎接批判
后台暗恋
基于国家标准的UHF RFID读写器数字基带系统设计
后台的风景
基于Intel R1000的超高频RFID读写器设计