改进的无后端数据库的RFID认证协议
2021-05-14常志鹏
常 志 鹏
(宁夏医科大学现代教育技术中心 宁夏 银川 750001)
0 引 言
射频识别技术出现距现在已近百年时间,20世纪中,因科学技术的局限性以及人类需求有限等诸多因素,使得射频识别技术并没有得到广泛的运用和推广。进入新世纪之后,伴随着人类科学技术的空前快速发展和人类需求不断增加,促进了射频识别技术的研究和发展以及推广运用[1-2]。RFID系统是射频识别技术众多运用中最为广泛的运用之一,该系统一般由读写器、标签、后端数据库三者组成。但随着人类需求越来越多,越来越繁琐,传统的RFID系统早已无法满足人类多种多样的需求,于是新型的RFID系统由此产生[3-4]。
新产生的RFID系统中不再有后端数据库的存在[5-6]。适用于传统RFID系统的认证协议并不一定百分之百适用于新系统,为保障系统中通信实体的安全性,因此需要为新产生的系统设计出适用于其系统的认证协议。
1 相关工作
Tan等[7]于2007年首次提出无后端数据库的RFID系统概念,并给出相对应的适用于无后端数据库的RFID系统认证协议。分析发现协议只提供读写器一端对标签的验证,并未提供标签一端对读写器的验证,无法抵抗假冒攻击。
Sundaresan等[8]基于文献[7]中协议基本思想提出一个协议,协议具备一定的安全性,同时满足EPCC1G2标准体系。分析发现,该协议因盲因子构造不合理,无法抵抗攻击者发起的重放攻击和异步攻击,加之标签一端共享密钥的更新基于固定种子因素,使得协议易被攻击者追踪,导致标签的位置隐私受到威胁。
Hoque等[9]提出一种增强的隐私保护的认证协议,协议适用于无后端数据库系统中。Deng等[10]指出文献[9]中协议无法提供异步攻击,同时协议还无法提供标签一端的位置隐私安全,并设计出自己的协议。但王萍等[11]分析指出文献[10]协议未能解决异步攻击问题,同时通过基于安全模型推理出协议无法保证标签一端的位置隐私安全,并给出一种改进的协议。
本文对文献[11]协议进行详细的安全性分析,发现攻击者通过监听获取的通信消息,可以通过穷举的方式穷尽出标签标识符隐私信息,以及穷尽出标签与读写器之间的共享密钥隐私信息,即协议不能满足异步攻击的安全需求。
Rahman等[12]基于分组匿名认证的机制设计出一种认证协议,协议具备较低的计算量,但协议运用过程中,通信实体之间未进行共享密钥的更新操作,使得前后多次通信用到的共享密钥数值始终不变,不能抵抗追踪攻击。
鉴于篇幅有限,更多有关于无后端数据库的RFID系统认证协议可参考文献[13-17]。
鉴于现有的适用于无后端数据库的认证协议存在计算量大或无法提供必备的安全需求,本文在重点分析文献[11]协议基础之上,给出一种能够满足安全需求的超轻量级认证协议。该协议采用基于位运算实现的交叉再交换运算对信息加密,能够达到超轻量级的级别;为增加攻击者的破解难度,以及确保隐私信息的安全,交叉再交换运算加密时根据加密参数汉明重量取值不同,进行相对应的操作。
2 文献[11]协议的安全性分析
对文献[11]协议进行较为深入的安全性分析,具体分析过程如下:
攻击者通过监听获取消息包括:request、randi、randj、aj、nj、ni。其中:aj=P(IDGj⊕(randj‖randi))、nj=P(SeedTj⊕(randi‖randj))、ni=P(M(SeedTj⊕randj))。
由文献[11]协议步骤可得知:上述监听的信息在通信过程中,randi、randj两个量是明文传输,且P()、M()表示的伪随机函数加密算法对外是公开的,因此攻击者可对监听获得aj信息进行穷举。具体地,在aj=P(IDGj⊕(randj‖randi))公式中,对于攻击者来说,randi、randj的值已通过监听获取其明文值;P()表示的伪随机函数加密算法通过查阅相关文档即可获取。因此,在aj中,对于攻击者而言,有且仅有IDGj一个参数的值是攻击者不知晓的,此时攻击者可以进行暴力破解攻击,通过穷举的方式穷尽出标签标识符IDGj可能存在的数值。基于上述,攻击者对aj发起的暴力破解攻击成功,成功地获取标签标识符信息。
下面再对nj=P(SeedTj⊕(randi‖randj))公式进行分析。同理:对攻击者而言,randi、randj的值已通过监听获取其明文值;P()表示的伪随机函数加密算法通过查阅相关文档即可获取。因此,在nj中,对于攻击者而言,有且仅有SeedTj一个参数的值是攻击者不知晓的,此时攻击者可以进行暴力破解攻击,通过穷举的方式穷尽出标签与读写器之间的共享密钥SeedTj可能存在的数值。基于上述,攻击者对nj发起的暴力破解攻击成功,成功地获取标签与读写器之间的共享密钥信息。
当上述暴力破解攻击成功之后,攻击者完全可以自己通过计算得出ni的值;因为在ni=P(M(SeedTj⊕randj))公式中,randj已通过监听获取具体值,SeedTj已通过上述暴力破解攻击获取其数值,P()、M()表示的伪随机函数加密算法通过查阅相关文档即可获取;在获取上述所有信息之后,攻击者只需按照一定的计算法则即可计算出正确的ni的值。
因此,基于上述,文献[11]协议不具备抗暴力破解攻击安全需求。
鉴于上述协议存在的安全缺陷,借鉴协议设计思想,现将改进的协议核心思想描述如下:
为能够抵抗攻击者发起的暴力破解攻击,改进的协议在设计之时,信息加密后再传送;为确保标签标识符隐私信息的安全性,改进的协议中引入标签假名参量,标签假名采用明文方式传送,即便是攻击者可以获取,也无法从假名中推导出标签标识符隐私信息;为保证加密算法的安全及降低协议的计算量,改进的协议中舍弃原协议中使用的伪随机函数加密算法,采用超轻量级的交叉再交换运算对信息进行加密,该加密算法自身存在的参数值对于攻击者来说不知晓,使得即便是攻击者知晓加密算法如何实现,但因算法自身携带的参数值不知晓,也无法进行破解攻击。
3 改进协议的设计
3.1 符号说明
改进的协议出现的符号说明如下:
READER:读写器;
TAG:标签;
IDT:标签的标识符;
IDS:标签的假名;
IDSnew:当前通信中标签的假名;
IDSold:上轮通信中标签的假名;
K:READER与TAG之间的共享密钥;
Knew:当前通信中READER与TAG之间的共享密钥;
Kold:上轮通信中READER与TAG之间的共享密钥;
rR:读写器产生的随机数;
rT:标签产生的随机数;
⊕:异或运算;
Cre(X,Y):交叉再交换运算(Crossover-Re-Exchange Operations)。
Cre(X,Y)定义如下:X、Y、Z均属于二进制序列,长度均为偶数L位;用HW(X)、HW(Y)符号分别表示序列X、序列Y的汉明重量。当HW(X)≥HW(Y)时,对X、Y从左向右依次进行遍历操作,将X偶数位上的数放在Z的奇数位上,同时将Y的奇数位上的数放在Z的偶数位上,从而得到一个新的二进制序列Z,再将Z分成左右长度均为L/2位的两部分,同时交换两部分数值,即可得到最终结果。当HW(X) 加密时,对进行加密的信息X和Y的汉明重量保密,且每轮加密用到的X和Y的数值不尽相同,使得每轮汉明重量的值也不相同,因此具体是按照上述哪种情况进行处理,攻击者是不确定的。为便于对交叉再交换运算的理解,此处举例进行描述:取L=8位,同时取X=0110 1101、Y=0100 0110,则HW(X)=5、HW(Y)=3,属于HW(X)≥HW(Y)情况,根据上述定义,可得Z=1000 1011,更进一步可推导出Cre(X,Y)=1011 1000,详细过程如图1所示;取L=8位,同时取Y=0110 1101、X=0110 0110,则HW(X)=4、HW(Y)=5,属于HW(X) 图1 交叉再交换运算示意图(HW(X)≥HW(Y)) 图2 交叉再交换运算示意图(HW(X) 初始化阶段主要完成标签和读写器存放信息的任务。初始化完成,标签一端存放信息有 改进的协议双向认证过程如图3所示。 图3 改进的协议认证示意图 结合图3本文协议认证步骤可描述如下: 第一步:READER→TAG。 读写器向标签发送Query消息。 第二步:TAG→READER。 标签将自身的假名IDS发送给读写器,以表示标签对读写器的响应。 第三步:READER→TAG。 读写器首先搜索标签发送过来的IDS在读写器一端是否存在。若存在,进行步骤1。若不存在,读写器将再次搜索IDSold中是否存在与IDS相等的数据。如果存在,进行步骤1;如果仍然不存在,验证失败,协议停止。 步骤1产生随机数rR,计算A、B,最后将发给标签。其中:A=rR⊕IDT;B=Cre(rR,IDT)。 第四步:TAG→READER。 标签收到信息,通过A⊕IDT计算得到随机数rR;接着用计算得到的随机数rR,再结合IDT计算得到B′,然后比对B′与B是否相等。 若B′=B,则说明标签通过计算得到的随机数rR与读写器产生的随机数是相同;产生随机数rT,计算C、D,将 若B′≠B,则表明读写器是伪造的,协议终止。其中:rR=A⊕IDT;B′=Cre((A⊕IDT),IDT);C=rR⊕rT;D=Cre(rT⊕IDT,rR⊕K)。 第五步:READER→TAG。 读写器收到信息,通过C⊕rR计算得到随机数rT;接着用计算得到的随机数rT,再结合rR、K、IDT计算得到D′,然后比对D′与D是否相等。 若D′=D,验证通过;然后读写器进行步骤2。若D′≠D,读写器将再次用Kold替换Knew进行计算得到D″,再次比对D″与D是否相等。 如果D″=D,则表示标签与读写器之间之前暂时失去同步性,经过此次认证之后,再次恢复同步性,然后读写器进行步骤2。如果仍然D″≠D,验证失败,协议停止。 步骤2用rT、rR、K计算得到E;接着读写器开始更新信息Kold=K、K=Knew、IDSold=IDS、IDS=IDSnew;最后将 第六步:TAG。 标签收到信息后,用之前计算得到的随机数rR,再结合rT、K计算得到E′,然后比对E′与E是否相等。 若E′=E,表明读写器通过验证,接着标签开始更新信息K=Cre(Cre(rR,rT),IDT⊕K)、IDS=Cre(IDS⊕rR,rT)。若E′≠E,验证失败,协议停止。其中E′=Cre(A⊕IDT,rT⊕K)。 1) 重放攻击。协议加密过程中混入随机数,随机数的加入可以保障消息的新鲜性。当攻击者重放消息时,本轮用到的随机数数值发生变化,重放攻击失败。因此,协议具备抗重放攻击的安全需求。 2) 异步攻击。每轮验证标签过程中,先搜索当前一轮通信中标签假名IDS以及共享密钥K信息,当两者均无法验证标签之时,读写器将会再次用上一轮通信中标签假名IDSold替换IDSnew,以及共享密钥Kold替换Knew再次进行计算,再次对标签发起验证。当且仅当前后两次验证均失败之时,读写器对标签的验证才算是失败。因此,协议能够抵抗异步攻击。 3) 追踪攻击。为能够抵抗攻击者的追踪攻击,本文协议设计之时特地引入标签假名IDS参量,目的是:(1) 便于读写器与标签通信时,能够马上知晓是哪个标签在进行通信;(2) 假名参与运算,明文或密文传送,即便是攻击者可以获取,也是无法推导出标签标识符信息。每轮通信完成之后,标签的假名再次进行更新,更新操作的目的在于:使得每次通信的时候传送的标签的假名值均是不同的,从而使得攻击者无法通过标签假名发起对标签位置的追踪;因假名的值总是处于不断变化中,且因更新过程中随机数的引入,使得前后假名之间无任何关系,无法进行逆推或预测,因此攻击者无法根据当前获取的假名信息追踪定位预测下轮通信时标签的位置。 4) 暴力破解。攻击者监听可获取消息:Query、IDS、A、B、C、D、E,其中Query表示认证请求命令,除了IDS是明文传输,其他信息均是加密后的密文,且都混入随机数。此处选择公式B=Cre(rR,IDT)为例子进行详细的暴力破解攻击分析,具体地:(1) 攻击者想要获取B中含有的隐私信息IDT,就需要知道随机数rR,但本文协议并没有通过明文传送该随机数,因此攻击者想要获取该随机数,还要想其他办法进行破解;(2) 即便是攻击者获取了随机数rR的值,但交叉再交换运算加密算法还需要知晓rR、IDT两个参数汉明重量大小,才可确定算法具体加密实现过程,但攻击者根本无法知晓;(3)B加密过程中混入随机数,下次通信之时用到的B数值与上次用到的B数值完全不同,且无法进行预测,更进一步增加了攻击者的破解难度。 5) 假冒攻击。基于上面的分析,攻击者无法通过暴力破解攻击手段获取相关隐私信息,因此攻击者在进行消息计算过程中就无法计算出正确的加密消息。同时结合本文协议可得知:每一步骤中,通信实体都是先对消息的发送源进行验证,当且仅当消息的发送源验证通过之后,才会进行后续操作。对于攻击者来说,无法获取隐私信息,就无法进行正确的消息计算,攻击者又想发起假冒攻击,此时攻击者只能随机选择一些数据用作加密的相关参数进行运算。当另一方通信实体收到攻击者发送来的消息之后,只需要进行简单的计算,即可识别出消息的来源方是伪造的,协议终止。基于上述,协议能够抵抗假冒攻击。 6) 后向安全。为能够使得攻击者无法通过获取的当前通信过程中消息推导或预测出下次通信的消息,协议必须提供相对应的后向安全性,以确保标签中存放隐私信息的安全。除假名IDS之外,文中所有消息均加密后再传送,攻击者即便是可以获取,也无法破解;同时所有消息加密之时混入随机数,攻击者无法预测随机数,使得攻击者根本无法从当前获取的通信消息中推导或预测出下次通信的消息数值。基于上述,协议具备后向安全。 本文协议与其他此类双向认证协议进行安全性比较,结果如表1所示。 表1 安全性比对 注:√表示能够抵抗,×表示无法抵抗。 逻辑形式化证明的四步骤:给出协议抽象模型;给出协议初始假设;给出协议需证明的安全目标;给出完整的推理过程[18]。 (1) 协议的理想化模型: 消息① R→T:Query; 消息② T→R:IDS; 消息③ R→T:A,B; 消息④ T→R:C,D; 消息⑤ R→T:E。 (2) 协议的初始假设: P7:R|≡#(rR) P8:T|≡#(rR) P9:R|≡#(rT) P10:T|≡#(rT) P11:R|≡T|⟹CP12:R|≡T|⟹D P13:T|≡R|⟹AP14:T|≡R|⟹B P15:T|≡R|⟹E (3) 协议的安全目标: G1:R|≡C,表示读写器相信C。 G2:R|≡D,表示读写器相信D。 G3:T|≡A,表示标签相信A。 G4:T|≡B,表示标签相信B。 G5:T|≡E,表示标签相信E。 (4) 协议的分析推理: G2可证。 鉴于篇幅有限,且其他目标与G2的推理证明过程相似,此处不再阐述。 在进行性能分析之时,选择标签作为研究对象进行性能分析。本文协议是基于文献[11]协议进行改进的,因此本节在进行性能分析的时候,重点分析本文协议与文献[11]协议在标签一端性能比对,结果如表2所示。 表2 性能比较 表2中:ha表示异或运算的计算量;hb表示交叉再交换运算的计算量;hc表示随机数产生器产生随机数的计算量;hd表示伪随机函数的计算量。 ha、hb均属于超轻量级的运算,hc、hd属于轻量级的运算。现有的理论研究已表明:一次轻量级运算的计算量相当于几十次超轻量级运算的计算量,因此相对于轻量级运算来说,超轻量级运算次数多几次,甚至多十几次,所产生的计算量带来的影响几乎可以忽略不计。从标签一端计算量角度出发,本文协议计算量远少于文献[11]协议的计算量。 约定标签的标识符信息、标签的假名信息、标签与读写器之间的共享密钥等参数信息长度均为l位。从标签一端的存储量角度出发,本文协议与文献[11]中协议存储量相当。 综合上面分析,本文协议在标签一端存储量相当的情况,在计算量方面有明显的改进,同时本文协议能够弥补文献[11]协议存在的安全缺陷,具备一定的使用价值。 本文针对文献[11]协议进行安全性分析,指出其协议存在无法抵抗攻击者暴力破解攻击缺陷,从而引发攻击者更进一步发起假冒攻击,并在该协议设计思想基础之上给出一种改进的协议。协议采用计算量更少、安全等级更高的交叉再交换运算对信息进行加密;该加密算法基于位运算实现,能够减少标签计算量;读写器一端存放前后两轮共享密钥,以便于抵抗异步攻击;标签假名的引入,能确保标签标识符信息的安全性。对协议进行分析,结果表明协议具备较高的安全性,且适用于无后端数据库的低成本系统中。下一步的研究方向是将协议运用在实际的无后端数据库的RFID系统中,对协议运算时间等参数进行详细分析。3.2 协议步骤描述
4 安全性分析
5 基于BAN逻辑形式化证明
6 性能分析
7 结 语