现有的轻量级RFID身份认证协议多数基于哈希函数,其中比较典型的有:哈希锁协议、随机哈希锁协议、哈希链协议等,这几个协议都存在无法保障用户隐私、标签容易追踪等安全隐患。对此,Shen等人提出了一种基于匿名机制的RFID身份认证协议ARAP(Anonymous RFID Authentication Protocol) 。本文将对多个RFID身份认证协议进行简要介绍,着重对其安全性能进行讨论和比较。
1 协议简介
1.1 哈希锁协议
哈希锁协议采用哈希函数实现简单的访问控制,工作原理如图1所示:阅读器存储每个标签的访问密钥Key,并生成metaID=hash(key),写入标签。标签接收到阅读器的访问请求时,发送metaID,阅读器则查出相应的key发给标签。标签计算并判断hash(key)与metaID是否相同,若相同,则把自己的ID信息发给阅读器。
1.2 随机哈希锁协议
随机哈希锁是哈希锁协议的改良,工作原理如图2所示:当收到阅读器的访问请求时,标签先生成一个随机数R,并和计算的h(IDk||R)一起发给阅读器。阅读器将此信息转送给后台数据库,后台数据库则需要穷举所有标签的IDi来计算h(IDi||R),直至找到计算值与接收到的哈希值相同的IDi,阅读器将此IDi发回,对标签进行解锁和访问。
1.3 哈希链协议
在哈希链协议中,标签和阅读器共享两个哈希函数H和G,H用来进行更新,G用来计算响应消息,具体过程如图3所示,S为共享的初始随机标识符。在收到阅读器的查询请求时,标签返回ai=G(Si),同时更新当前的Si为Si+1 =H(Si),准备接受阅读器的下一个访问请求。
1.4 ARAP协议
在ARAP协议中,阅读器R和标签T都拥有一个伪随机数发生器,每个标签T都与后端数据库DB共享一个初始秘密xT,DB能够根据T的假名P遍历出初始共享的秘密xT,实现对T的身份认证。具体认证过程如图3所示:
(1)R→T:R向T发送认证请求Query和随机数rR;
(2)T→R:T计算S=h(P⊕xT)和M=h(rT⊕rA⊕P)⊕S,并向R发送消息{rT,P,M}作为应答,其中xT是T与R互相共享的秘密;
(3)R→DB:R向DB发送消息{rT,rR,P,M};
(4)DB→R:DB收到消息后,计算S’=h(P⊕xT)和M’=h(rT⊕rA⊕P)⊕S’,验证M’与M是否相等。若相等,则通过认证,DB计算N’=h(M’⊕S’)发送给R。否则,认证失败,协议终止。
(5)R→T:R收到N’后转发给T,T计算N=h(M⊕S),验证N’与N是否相等,若相等,则R通过认证,T更新假名P,否则认证失败,协议终止。
2 协议的安全和性能分析
2.1 协议的安全性分析
哈希锁协议为标签提供初步的访问控制,可在一定程度上保护标签数据,抵抗非法访问攻击。但由于每次标签响应时均使用固定的metaID,攻击者可将此当作对应标签的别名,跟踪标签及其携带者。此外,密钥key通过明文传输,攻击者容易窃取,并可以通过记录、计算组合(metaID,key,ID),在与合法标签或者阅读器的信息交互中进行假冒攻击。
随机哈希锁协议采用基于随机数的询问/应答机制,可防止标签被跟踪,保护其隐私。但由于标签的返回消息不包含能够唯一确定本次会话的标识,攻击者可以此进行重放和假冒攻击。再者,每确认一个标签身份都需要遍历数据库所存的所有ID,认证过程耗时较多,且容易遭受拒绝服务攻击。因此哈希锁协议的可扩展性较差,只适用于小规模应用。
在哈希链协议中,标签使用不同的标识符响应阅读器的询问,以确保前向安全性,但无法抵抗假冒阅读器的攻击。此外,阅读器收到标签的响应后,需要计算数据库中所有标签标识符的哈希值来与之匹配。若标签被攻击者恶意扫描多次,则将导致穷举匹配时标签的认证时间过长,系统无法正常工作。因此,哈希链协议也只适合小规模的应用,且无法抵抗重放和拒绝服务攻击。
ARAP协议能够实现匿名双向认证,标签使用了大量假名来防止被跟踪,能够很好地保障用户的隐私,且协议每执行一次,假名P就随之更新,能够有效抵抗重放攻击。在通常情况下,ARAP协议执行时保持标签和阅读器共享的信息同时更新,能够抵抗拒绝服务攻击。
但是,ARAP协议也存在因异或不当而被攻击者假冒的安全隐患。在ARAP协议的第2步中,标签T计算了S=h(P⊕xT)和M=h(rT⊕rA⊕P)⊕S,其中P为标签的匿名,xT为共享秘密,rA和rT分别为攻击者与标签生成的伪随机数。若攻击者截取了消息M,rA,rT,P,利用异或运算的性质(a⊕a=0,a⊕0=a),则可直接计算M⊕h(rT⊕rA⊕P)=h(rT⊕rA⊕P)⊕S⊕h(rT⊕rA⊕P) =S,从而获取S,就相当于获得了阅读器向标签进行认证的钥匙N’=h(M⊕S),攻击者可假冒阅读器向标签发送N’,从而获取标签的信任,成功进行假冒攻击。
综上,可通过表1对上述协议的安全性进行比较,其中ARAP协议比其他3个协议复杂,安全性能也略胜一筹。无法抵抗假冒攻击是ARAP协议的重大缺陷。
2.2 协议的性能分析
在RFID系统中,标签的存储空间和计算能力有限,认证协议在解决安全性问题的同时,也要尽可能减少标签的计算量和存储容量,以降低标签的成本。在此对典型的RFID身份认证协议进行对比,比较各协议中标签、阅读器和后端数据库的计算量,结果如表2所示。其中,“H”表示Hash运算的次数,“X”表示异或运算的次数,“R”表示产生随机数的次数,“N”表示数据库存储的标签数量,“j”表示Hash链的长度。
通过比较,哈希锁协议的计算量是最小的,但其安全性得不到保证。随机哈希锁协议和哈希链协议的计算量与标签数量成正比,且执行过程需要遍历计算,只适合小规模应用。ARAP协议的计算量相对较大,但其并没有采用计算开销大的操作,协议中的哈希运算、异或运算、随机数运算标签都够实现,在RFID系统可执行的能力范围之内,具有较高的可行性。
3 结束语
本文主要对基于哈希函数的四种RFID身份认证协议进行了简要介绍和安全性能分析,与哈希锁协议、随机哈希锁协议和哈希链协议相比,ARAP协议的安全性能较好,但存在因异或不当而遭受假冒攻击的安全隐患。对此,需要对部分异或运算和验证操作进行修改,将标签用户的秘密隐藏入哈希函数中,使攻击者无法通过异或运算实施假冒攻击。ARAP协议的全面分析和改进工作将在后继的科研工作中展开。