理论教育 RFID认证协议(第2版):安全协议

RFID认证协议(第2版):安全协议

时间:2023-10-28 理论教育 版权反馈
【摘要】:当消费者购买了使用RFID标签的商品时,销售终端设备将隐私bit置为“1”,让标签处于隐私地带。目前,已经提出了多种RFID安全协议,如Hash-Lock协议、随机化Hash-Lock协议、Hash链协议等。但是,现有的大多数RFID协议都存在着各种各样的缺陷。图10.12Hash-Lock协议Hash-Lock协议的执行过程如下。Tag验证IDj与IDk是否相同,如相同,则认证通过。图10.14Hash链协议在系统运行之前,Tag和后端数据库首先要共享一个初始秘密值st,1,则Tag和Tag读写器之间执行第j次Hash链的过程如下。

RFID认证协议(第2版):安全协议

当前,实现RFID安全性机制所采用的方法主要有三大类:物理方法、密码机制以及二者的结合。使用物理方法来保护RFID Tag安全性的方法主要有如下几类:Kill命令机制、静电屏蔽、主动干扰以及阻止标签等方法。这些方法主要用于一些低成本的Tag中,因此难以采用复杂的密码机制来实现与Tag读写器之间的安全通信

•Kill标签:由标准化组织Auto-ID Center提出的Kill标签是解决信息泄露的一个最简单方法。它从物理上毁坏Tag,一旦对Tag实施了Kill毁坏命令,Tag便不可能再被重用。例如,结账时禁用附着于商品上的标签。缺点是RFID标签标识图书馆中的书籍,当书籍离开图书馆后这些标签是不能被禁用的,这是因为当书籍归还后需要使用相应的标签再次标识书籍。此外,难以验证是否真正对标签实施了Kill操作。

•Sleeping标签:让标签处于睡眠状态,而不是禁用,以后可使用唤醒口令将其唤醒。困难在于一个唤醒口令需要和一个标签相关联,于是这就需要一个口令管理系统。但是,当标签处于睡眠状态时,没有可能直接使用air interface将特定的标签和特定的唤醒口令相关联。因此,需要另一种识别技术,如条形码,以标识用于唤醒的标签。

•Blocking标签:隐私bit“0”表示标签接受非限制的公共扫描;隐私bit“1”表示标签是私有的。以bit“1”开头的标识符空间指定为隐私地带(Privacy Zone)。当标签生产出来,并且在购买之前,即在仓库、运输汽车、储存货架的时候,标签的隐私bit置为“0”。换句话,任何阅读器都可扫描它们。当消费者购买了使用RFID标签的商品时,销售终端设备将隐私bit置为“1”,让标签处于隐私地带。

法拉第网罩:防止标签被追踪的另一物理方法是使用“静电屏蔽”(法拉第网罩)。由于无线电波可被传导材料做成的容器屏蔽,法拉第网罩将贴有RFID标签的商品放入由金属网罩或金属箔片组成的容器中,从而阻止标签和读写器通信。由于每件商品都需要使用一个网罩,该方法难以大规模实施。

•主动干扰:标签用户通过一个设备主动广播无线电信号用于阻止或破坏附近的RFID读写器操作。但该方法可能干扰附近其他合法的RFID系统,甚至阻断附近其他使用无线电信号的系统。

与基于物理方法的物理安全机制相比,基于密码技术的安全机制受到人们更多的青睐,其主要研究内容则是利用各种成熟的密码方案和机制来设计和实现符合RFID安全需求的密码协议。目前,已经提出了多种RFID安全协议,如Hash-Lock协议、随机化Hash-Lock协议、Hash链协议等。但是,现有的大多数RFID协议都存在着各种各样的缺陷。

我们用H和G来表示两个不同的抗碰撞的安全杂凑函数,f表示一个安全的伪随机函数。

1.Hash-Lock协议

Hash-Lock协议是由Sarma等人提出的,为了避免信息泄露和被追踪,它使用metaID来代替真实的标签ID。其协议流程如图10.12所示。

图10.12 Hash-Lock协议

Hash-Lock协议的执行过程如下。

(1)Tag读写器向Tag发送Query认证请求。

(2)Tag将metaID发送给Tag读写器。

(3)Tag读写器将metaID转发给后端数据库

(4)后端数据库查询自己的数据库,如果找到与metaID匹配的项,则将该项的(key,ID)发送给Tag读写器,其中ID为待认证Tag的标识,metaID=H(key);否则,返回给Tag读写器认证失败的信息。

(5)Tag读写器将从后端数据库接收的部分信息key发送给Tag。

(6)Tag验证metaID=H(key)是否成立,如果成立,则将其ID发送给Tag读写器。

(7)Tag读写器比较自Tag接收到的ID是否与后端数据库发送过来的ID一致,若一致,则认证通过;否则,认证失败。

从上述过程可以看出,Hash-Lock协议中没有ID动态刷新机制,并且metaID也保持不变,ID是以明文的形式通过不安全的信道传送,因此Hash-Lock协议非常容易受到假冒攻击和重传攻击,攻击者也可以很容易地对Tag进行追踪。也就是说,Hash-Lock协议完全没有达到其安全目标。

2.随机化Hash-Lock协议

随机化Hash-Lock协议由Weis等人提出,它采用了基于随机数的询问-应答机制,其协议流程如图10.13所示。

图10.13 随机化Hash-Lock协议

随机化Hash-Lock协议的执行过程如下。

(1)Tag读写器向Tag发送Query认证请求。

(2)Tag生成一个随机数R,计算H(IDk‖R),其中IDk为Tag的标识。Tag将(R,H(IDk‖R))发送给Tag读写器。

(3)Tag读写器向后端数据库提出获得所有Tag标识的请求。

(4)后端数据库将自己数据库中的所有Tag标识(ID1,ID2,…,IDn)发送给Tag读写器。

(5)Tag读写器检查是否有某个IDj(1≤j≤n),使得H(IDj‖R)=H(IDk‖R)成立;如果有,则认证通过,并将IDj发送给Tag。

(6)Tag验证IDj与IDk是否相同,如相同,则认证通过。

由以上过程可以看出,认证通过后的Tag标识IDj仍以明文的形式通过不安全信道传送,因此攻击者可以对Tag进行有效的追踪。同时,一旦获得了Tag的标识IDj,攻击者就可以对Tag进行假冒。当然,该协议也无法抵抗重传攻击。因此,随机化Hash-Lock协议也是不安全的。另外,每一次Tag认证时,后端数据库都需要将所有Tag的标识发送给读写器,二者之间的数据通信量很大,效率也就很低。故而,该协议不具有实用性。

3.Hash链协议

本质上,Hash链协议是基于共享秘密的询问-应答协议。但是,在Hash链协议中,当使用两个不同杂凑函数的Tag读写器发起认证时,Tag总是发送不同的应答,其协议流程如图10.14所示。

图10.14 Hash链协议(www.daowen.com)

在系统运行之前,Tag和后端数据库首先要共享一个初始秘密值st,1,则Tag和Tag读写器之间执行第j次Hash链的过程如下。

(1)Tag读写器向Tag发送Query认证请求。

(2)Tag使用当前的秘密值st,j计算at,j=G(st,j),并更新其秘密值为st,j+1=H(st,j),Tag将at,j发送给Tag读写器。

(3)Tag读写器将at,j转发给后端数据库。

(4)后端数据库系统针对所有的Tag数据项查找并计算是否存在某个IDt(1≤t≤n)以及是否存在某个j(1≤j≤m),其中m为系统预设置的最大链长度,使得at,j=G(Hj-1(st,1))成立。如果有,则认证通过,并将IDt发送给Tag;否则,认证失败。

由上述流程可以看出,Hash链协议是一个单向认证协议,即它只能对Tag身份进行认证。容易受到重传和假冒攻击,只要攻击者截获某个at,j,它就可以进行重传攻击,伪装Tag通过认证。此外,每一次Tag认证发生时,后端数据库都要对每一个Tag进行j次杂凑运算,计算量相当大。同时,该协议需要两个不同的杂凑函数,也增加了Tag的制造成本。

4.David的数字图书馆RFID协议

David等人提出的数字图书馆RFID协议使用基于预共享秘密的伪随机函数来实现认证,其协议流程如图10.15所示。

系统运行之前,后端数据库和每一个Tag之间需要预先共享一个秘密值s,该协议的执行过程如下。

(1)Tag读写器生成一秘密随机数RR,向Tag发送Query认证请求,将RR发送给Tag。

(2)Tag生成一个随机数RT,使用自己的ID和秘密值s计算σ=ID⊕fs(0,RR,RT),Tag将(RT,σ)发送给Tag读写器。

(3)Tag读写器将(RT,σ)转发给后端数据库。

(4)后端数据库检查是否有某个IDi(1≤i≤n),使得IDi=σ⊕fs(0,RR,RT)成立;如果有,则认证通过,并计算β=IDi⊕fs(1,RR,RT),然后将β发送给Tag读写器。

(5)Tag读写器将β转发给Tag。

(6)Tag验证ID=β⊕fs(1,RR,RT)是否成立,若成立,则认证通过。

图10.15 David的数字图书馆RFID协议

到目前为止,还没有发现该协议具有明显的安全漏洞。但是,为了支持该协议,必须在Tag电路中包含实现随机数生成以及安全伪随机函数的两大功能模块,故而该协议不适用于低成本的RFID系统。

5.分布式RFID询问-应答认证协议

Rhee等人提了一种适用于分布式数据库环境的RFID认证协议,它是典型的询问-应答型双向认证协议,其协议流程如图10.16所示。

图10.16 分布式RFID询问-应答认证协议

该分布式RIFD询问-应答协议的执行过程如下。

(1)Tag读写器生成一秘密随机数RReader,向Tag发送Query认证请求,将RReader发送给Tag。

(2)Tag生成一随机数RTag,计算H(ID‖RReader‖RTag),其中ID为Tag的标识。Tag将(H(ID‖RReader‖RTag),RTag)发送给Tag读写器。

(3)Tag读写器将(H(ID‖RReader‖RTag),RReader,RTag)发送给后端数据库。

(4)后端数据库检查是否有某个IDj(1≤j≤n),使得H(IDj‖RReader‖RTag)=H(ID‖RReader‖RTag)成立;如果有,则认证通过,并将H(IDj‖RTag)发送给Tag读写器。

(5)Tag验证H(IDj‖RTag)与H(ID‖RTag)是否相同,如相同,则认证通过。

到目前为止,也没有发现该协议有明显的安全漏洞或缺陷。但是,每执行一次认证协议需要Tag进行两次杂凑运算。Tag电路中自然也需要集成随机数发生器和杂凑函数模块,因此它也不适合于低成本RFID系统。

6.基于时间戳和消息验证码的YA-TRAP协议

YA-TRAP协议(如图10.17所示)后端数据库存储预计算的Hash查找表(如表10.4所示),认证时不再进行Hash计算,增强了实时性,其缺点是存在拒绝服务攻击。

图10.17 YA-TRAP协议

表10.4 Hash查找表

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈