浅谈基于哈希函数的RFID身份认证协协议
摘要:对基于哈希函数的RFID身份认证协议进行了简要的介绍,对多个协议的安全性能进行了详细的分析和比较,指出其存在的安全缺陷,并提出相应的改进思路。
关键词:无线射频识别;哈希函数;身份认证
DOI:10.3969/j.issn.1005-5517.2016.1.007
引言
无线射频识别(Radio Frequency ldentification,RFID)是一种非接触式的自动识别技术,可以视为无线版本的条形码,具有使用时间长、读取精度高、能够加密标签数据、数据容量更大、操作便捷等优点。RFID技术在生活中的应用日趋广泛,其安全与隐私问题也日益受到关注,比如伪造标签、非法访问等。身份认证是保证信息安全的关键技术之一,由于RFID系统中标签的存储空间和计算能力有限、难以进行复杂的数据加、解密运算,因此轻量级的RFID身份认证协议成为当前研究的热点之一。
现有的轻量级RFID身份认证协议多数基于哈希函数、其中比较典型的有:啥希锁协议[1]、随机啥希锁协议[2]、哈希链协议[3]等,这几个协议都存在无法保障用户隐私、标签容易追踪等安全隐患。对此、Shen等人提出了一种基于匿名机制的RFID身份认证协议ARAP(Anonymous RFID AuthenticationProtoc01)[4]。本文将对多个RFID身份认证协议进行简要介绍,着重对其安全性能进行讨论和比较。
1协议简介
1.1哈希锁协议
哈希锁协议采用哈希函数实现简单的访问控制,工作原理如图1所示:阅读器存储每个标签的访问密钥Key,并生成metaID=hash(key),写入标签。标签接收到阅读器的访问请求时,发送metaID,阅读器则查出相应的key发给标签。标签计算并判断hash(key)与metaID是否相同,若相同,则把自己的ID信息发给阅读器。
1.2随机哈希锁协议义
随机哈希锁是哈希锁协议的改良,工作原理如图2所示:当收到阅读器的访问请求时、标签先生成一个随机数R、并和计算的h(IDkIIR)-起发给阅读器。阅读器将此信息转送给后台数据库,后台数据库则需要穷举所有标签的JDi来计算h(IDiIIR),直至找到计算值与接收到的哈希值相同的IDi,阅读器将此JDi发回,对标签进行解锁和访问。
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)1乍为应答,其中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协议的安全和性能分析