3.1.2 RFID标签的安全防护

3.1.2 RFID标签的安全防护

RFID系统容易遭受各种主动攻击和被动攻击的威胁。RFID系统本身的安全问题可归纳为隐私和认证两个方面:隐私方面主要是可追踪性问题,即如何防止攻击者对RFID标签进行任何形式的跟踪;认证方面主要是要确保只有合法的阅读器才能够与标签进行交互通信。当前,保障RFID系统自身安全的方法主要有两大类:物理方法(Kill命令、静电屏蔽、主动干扰以及Blocker Tag法等)、安全协议(哈希锁随着物联网技术的日益普及应用)。

RFID标签的安全防护日益受到关注,主要原因有:使用RFID标签的消费者隐私权备受关注;在使用电子标签进行交易的业务中,标签复制和伪造会给使用者带来损失;在RFID标签应用较广的供应链中,如何防止信息的窃听和篡改显得尤为重要。RFID标签的安全防护主要分为两个方面,分别是物理防护和逻辑防护。

1.物理防护

(1)Kill命令机制(Kill标签)

Kill命令机制由标准化组织自动识别中心(Auto-ID Center)提出。Kill命令机制采用从物理上销毁RFID标签的方法,一旦对标签实施了销毁(Kill)命令,RFID标签将永久作废。读写器无法再对销毁后的标签进行查询和发布指令,通过自毁的方法来保护消费者的个人隐私。这种牺牲RFID电子标签功能以及后续服务的方法可以在一定程度上阻止扫描和追踪。但是Kill命令机制的口令只有8位,因此恶意攻击者仅以64的计算代价就可以获得标签访问权。而且由于电子标签销毁后不再有任何应答,很难检测是否真正对标签实施了Kill操作。因此,Kill标签并非一项有效检测和阻止标签扫描与追踪的防止隐私泄漏的技术。

EPC Class1 Gen2(简称G2)协议设置了Kill命令,并且用32位的密码来控制。有效使用Kill命令后,标签永远不会产生调制信号以激活射频场,从而永久失效。但原来的数据可能还在标签中,若想读取它们并非完全不可能,因此可以考虑改善Kill命令的含义——附带擦除这些数据。此外在一定时期内,由于G2标签的使用成本或其他原因,所以会考虑到兼顾标签能回收重复使用的情况(如用户要周转使用带标签的托盘、箱子,内容物更换后相应的EPC号码、User区内容要改写;更换或重新贴装标签所费不菲、不方便;等等),需要即使被永久锁定了的标签其内容也能被改写的命令。因为不同锁定状态的影响,仅用Write或Block Write、Block Erase命令,不一定能改写EPC号码、User内容或者Password(如标签的EPC号码被锁定,从而不能被改写,或未被锁定,但忘了这个标签的Access Password而不能去改写EPC号码)。这样就产生了一个需求,需要一个简单明了的Erase命令。比较起来,改善的Kill命令和增加的Erase命令的功能基本相同(包括都使用Kill Password),区别仅在于前者的Kill命令不产生调制信号;这样也可以统一归到由Kill命令所带参数RFU的不同值来考虑。

(2)静电屏蔽机制

静电屏蔽机制的工作原理是使用法拉第笼(Faraday Cage)来屏蔽标签。

法拉第笼是一个由金属或者良导体形成的笼子,是以电磁学的奠基人、英国物理学家迈克尔·法拉第的姓氏命名的一种用于演示等电势、静电屏蔽和高压带电作业原理的设备。它由笼体、高压电源、电压显示器和控制部分组成,笼体与大地连通,高压电源通过限流电阻将10万伏直流高压电输送给放电杆,当放电杆尖端距笼体10 cm时,出现放电火花。根据接地导体静电平衡的条件,笼体是一个等位体,内部电势差为零,电场为零,电荷分布在接近放电杆的外表面上。

添加法拉第笼前,两个物体可产生电磁反应,但添加法拉第笼后,外部电磁信号不能进入法拉第笼,里面的电磁波也无法穿透出去。当人们把标签放进由传导材料构成的容器里时,可以阻止标签被扫描,被动电子标签接收不到信号也就不能获得能量,主动电子标签发射的信号不能发出。利用法拉第笼可以阻止非法窥测者通过扫描获得标签的信息。采用法拉第笼需要添加一个额外的物理设备,这带来了不便,也增加了物联网系统设备的成本。

(3)主动干扰

主动干扰无线电信号是另一种屏蔽标签的方法。标签用户可以通过一个设备来主动广播无线电信号以阻止或破坏附近的物联网阅读器的操作。这种初级的方法可能导致非法干扰,附近的其他合法物联网系统也会受到干扰,更严重的是这种方法可能阻断附近其他使用无线电信号的系统。

(4)阻塞标签法

阻塞标签法(Blocker Tag)通过阻止阅读器读取标签来保护用户的隐私。与一般用来识别物品的标签不同,Blocker Tag是一种被动干扰器。在读写器进行某种分离操作时,当搜索到Blocker Tag所保护的范围,Blocker Tag便发出干扰信号,使读写器无法完成分离动作,读写器无法确定标签是否存在,也就无法和标签沟通,以此来保护标签,保护用户的隐私。但是由于增加了阻塞标签,因此应用成本相应地增加了。Blocker Tag还可以模拟大量的标签ID,从而阻止阅读器访问隐私保护区域以外的其他标签,因此Blocker Tag的滥用可能导致拒绝服务攻击。同时,Blocker Tag有其作用范围,超出隐私保护区域的标签将得不到保护。

2.逻辑防护

(1)哈希锁(Hash Lock)

哈希锁是一种完善的抵制标签未授权访问的安全与隐私技术。整个方案只需要采用哈希函数,因此成本很低。方案原理如下。数据库中存储着每个标签的访问密钥K和对应的标签存储元身份(MetaID),其中MetaID=Hash(K)。标签接收到阅读器的访问请求后发送MetaID作为响应,阅读器通过查询获得与标签MetaID对应的密钥K并发送给标签,标签通过哈希函数计算阅读器发送的密钥K,检查Hash(K)是否与MetaID相同,若相同则解锁,并发送标签的真实ID给阅读器。哈希锁的工作机制如图3.3所示。

图3.3 哈希锁的工作机制

1)锁定标签

对于唯一标志号为ID的标签,阅读器随机产生该标签的Key值并计算MetaID=Hash(Key),然后将MetaID发送给标签;标签将MetaID存储下来并进入锁定状态;阅读器将(MetaID,Key,ID)存储到后台数据库中,并以MetaID为索引。

2)解锁标签

当阅读器访问标签时,标签返回MetaID;阅读器将查询后台数据库,找到对应的(MetaID,Key,ID)记录,然后将该Key值发送给标签;标签收到Key值后,计算Hash(Key)的值,并与自身存储的MetaID值进行比较,若Hash(Key)=MetaID,则标签将其ID发送给阅读器。此时,标签进入已解锁状态,并为附近的阅读器开放所有的功能。

3)方法的优点

解密单向哈希函数是较困难的,因此哈希锁可以阻止未授权的阅读器读取标签的信息数据,在一定程度上为标签提供隐私保护;该方法只需在标签上实现一个哈希函数的计算,以及增加少量存储空间(存放MetaID值),因此在低成本的标签上容易实现。

4)方法的缺陷

由于每次询问时标签回答的数据是特定的,因此不能防止位置跟踪攻击;阅读器和标签间传输的数据是未经加密的,窃听者可以轻易地获得标签的Key值和ID值。

(2)随机哈希锁(Randomized Hash Lock)

作为哈希锁的扩展,随机哈希锁解决了标签位置隐私问题。采用随机哈希锁方案,阅读器每次访问标签时的输出信息均不相同。随机哈希锁的原理如下。标签包含哈希函数和随机数发生器,后台数据库存储所有的标签ID。阅读器请求访问标签,标签接收到访问请求后,使用哈希函数计算标签ID与随机数R(由随机数发生器生成)的哈希值。标签发送该哈希值给相应的阅读器,阅读器在后台数据库中检索所有标签的ID值,并依次计算所有ID和R的哈希值,判断是否为对应的标签ID。标签接收到阅读器发送的ID后解锁。随机哈希锁的工作机制如图3.4所示。

图3.4 随机哈希锁的工作机制

首先要解释一下字符串连接符号“II”,如标签ID和随机数R的连接即表示为“ID II R”。并且,该方案中数据库存储的是各个标签的ID值,设为IDl,ID2,…,IDk,…,IDn

1)锁定标签

通过向未锁定的标签发送简单的锁定指令,即可锁定该标签。

2)解锁标签

阅读器向标签发出访问请求,标签产生一个随机数R并计算Hash(ID II R),将(R,Hash(ID II R))数据对发送给阅读器;阅读器收到数据对后,在后台数据库中查询所有的标签,分别计算与各个ID值相对应的Hash(ID II R)值,并与收到的Hash(ID II R)值比较,若两者相同,则向标签发送相应的ID值;若标签接收到的ID值与其自身存储的ID值相同,则标签将被解锁。

3)方法的优点

在随机哈希锁中,标签的每次应答是随机的,因此可以防止依据特定输出而进行的位置跟踪攻击。

4)方法的缺陷

尽管哈希锁函数可以在低成本的情况下实现,但要将随机数发生器集成到计算能力有限的低成本被动标签中却是很困难的。另外,随机哈希锁锁仅解决了标签位置隐私问题,但它不具备前向安全性,一旦标签的秘密信息被事先截获,恶意攻击者可以获得访问控制权,通过信息回溯得到标签的历史记录,推断标签持有者的隐私。由于阅读器需要在数据库中搜索所有标签的ID值,并为每一个ID值计算相应的Hash(ID II R)值,因此当标签数目很多时,这样的穷举计算会使得系统延时,效率并不高,而且存在拒绝服务攻击。

(3)哈希链(Hash Chain)

作为哈希方法的一个发展,为了解决可跟踪性,标签使用了一个哈希函数,在每次阅读器访问后自动更新标识符,实现前向安全性。哈希链的原理如下。标签最初在存储器设置一个随机的初始化标识符S,同时这个标识符也储存在后台数据库中。标签包含两个哈希函数(G和H)。当阅读器请求访问标签时,标签返回当前标识符G(Sk)给阅读器,同时当标签从阅读器的电磁场获得能量时自动更新标识符Sk+1=H(Sk)。哈希链的工作机制如图3.5所示。

图3.5 哈希链的工作机制

1)锁定标签

对于每一个标签ID,阅读器随机选取一个数S发送给标签,并将(ID,S)数据对存储到后台数据库中;标签接收数S后,计算H(S)值并予以保存,即进入锁定状态。

2)解锁标签

在第i次事务交换中,阅读器向标签发出访问请求,标签返回G(Si)值,并更新Si+1=H(Si),其中G和H为单向哈希函数。阅读器收到G(Si)值后,搜索数据库中所有的(ID,S)数据对,并为每个标签计算G(H(S)),比较G(Si)值和G(H(S))值是否相等,若相等,则向标签发送相应的ID值,并且将数据库中对应的数据对更新为(ID,H(S))。若标签接收到的ID值与其自身存储的ID值相同,则标签将被解锁。

3)方法的优点

哈希链具有不可分辨性。因为G是单向哈希函数,外人获得G(Si)值后不能推算出Si值;当外人观察标签的输出时,G输出的是随机数,所以不能将G(Si)和G(Si+1)联系起来。哈希链还具有前向安全性。因为H是单向哈希函数,即使外人窃取了Si+1值,也无法推算出S值,所以无法获得标签的历史活动信息。

4)方法的缺点

哈希链并不能阻止重放攻击,并且该方案每次识别都需要进行穷举搜索,计算每个标签的G(H(S))值,并对每个标签的ID进行比较,总共要计算2N个哈希函数、N个记录搜索和N个值比较,一旦标签规模增大,相应的计算负担也将急剧增大。因此哈希链存在所有标签自动更新标识符方案的共同缺点,难以大规模扩展。同时,因为需要穷举搜索,所以哈希链存在拒绝服务攻击。