- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
基于ID变化的RFID安全协议
射频识别(RFID)系统是使用无线射频技术在开放系统环境中进行对象识别,通过射频信号自动识别目标对象并获取相关数据。这种识别的优点之一是不需要物理接触或其他任何可见的接触。现在,许多人已将RFID系统看作是一项实现普适计算环境的有效技术。但同时,关键问题是要确保只有授权用户能够识别各个标签,而攻击者无法对这些标签进行任何形式的跟踪。针对这一问题,国内外开展了大量关于RFID隐私安全保密的研究,提出了许多RFID安全协议,如Hash锁协议、随机化Hash锁协议、Hash链协议等,但这些协议存在着安全隐患、效率低下等缺陷。本文针对这些协议的不足,进一步对RFID的安全隐私进行研究。
1 RFID基本原理
1.1 RFID系统基本构成[1]
RFID系统一般由三大部分构成: (1)标签配备有天线的微型电路,但通常没有处理器,仅由数千个逻辑门组成;(2)读写器。一个有天线的无线发射与接收设备,它的处理能力、存储空间都比较大;(3)后台数据库。用户根据系统需求进行选择的数据库系统,存储所有标签的信息,它通过可信的读写器获得标签发送的信息,具有很强的处理能力和存储空间。一般认为读写器到后台数据库的通信信道为安全信道,标签到读写器之间的信道为不安全信道。
1.2 RFID安全隐患与安全需求
RFID读写器与标签之间通过空中接口进行通信,不需要任何物理或可见接触,使得隐私侵犯者可以通过监听,截获双方通信信息,获取标签中隐私的信息。此外,标签中含有唯一的序列号,隐私侵犯者可以通过其序列号追踪、定位标签,从而获得标签所有的信息。
正因为如此,设计安全、高效的RFID安全协议成为了一个具有挑战性的问题。而安全的射频识别系统对单向攻击应该能够予以防范:
(1) 标签信息泄漏问题:避免未授权读写器或者隐私侵犯者获取标签中的敏感数据。
(2) 标签的可追踪性:避免隐私侵犯者通过对标签序列号追踪定位获得标签持有者的隐私信息。
(3) 前向安全性:避免隐私侵犯者根据窃取的敏感信息获取标签历史活动记录和标签持有者隐私信息。
2 RFID安全协议
基于密码学的发展,到目前为止,已经有多种RFID安全协议被提出来,本文将介绍3种典型的RFID安全协议,并分析其优缺点。
2.1 Hash锁[2]协议
Hash锁(Hash Lock)协议是由Sarma等人提出来的。为了避免信息泄漏和被追踪,使用metaID代替真实的标签ID,协议流程如图1所示。
Hash锁协议的执行过程如下:
(1)读写器向标签发送Query认证请求。
(2)标签将metaID发送给读写器。
(3)读写器将metaID转发给后台数据库。
(4)后台数据库查询自己的数据库,如果找到与metaID匹配的项,则将该项的(Key,ID)发送给读写器,其中ID为待认证标签的标识,metaID=H(Key);否则返回给读写器认证失败信息。
(5)读写器将接收后台数据库的部分信息Key发送给标签。
(6)标签验证metaID=H(key)是否成立,如果成立,则将其ID发送给读写器。
(7)读写器比较从标签接收到的ID是否与后台数据库发送过来的ID一致,如果一致,则认证通过;否则,认证失败。
由上述过程可以看出,Hash锁协议中没有ID动态刷新机制,并且metaID也保持不变,ID是以明文的形式通过不安全的信道传送的,因此,Hash锁协议非常容易受到假冒攻击和重传攻击,攻击者也可以很容易地对标签进行追踪。也就是说,Hash锁协议没有达到其安全目标。
2.2 随机化Hash锁协议
为了解决Hash锁中位置跟踪的问题,将Hash锁方法加以改进,采用随机化Hash锁(Random Hash-Lock)协议,此协议由Weis等人提出,采用了基于随机数的询问-应答机制。首先介绍字符串连接符号“||”,如标签ID和随机数R的连接即表示为“ID||R”。该方法中数据库存储各个标签的ID值,设为ID1、ID2 … IDk…IDn。其协议流程如图2所示。
随机化Hash锁协议的执行过程如下:
(1)读写器向标签发送Query认证请求。
(2)标签生成一个随机化数R,计算H(IDk||R),其中IDk为标签的标识,标签将(R,H(IDk||R) )发送给读写器。
(3)读写器向后台数据库提出获得所有标签标识的请求。
(4)后台数据库将自己数据库中的所有标签标识(ID1,ID2…IDn)发送给读写器。
(5)读写器检查是否有某个IDj(1≤j≤n),使得H(IDj||R)=H(IDk||R)成立;如果有,则认证通过,并将IDj发送给标签。
(6)标签验证IDj与IDk是否相同,如果相同,则通过认证。
在随机化Hash锁协议中,认证通过后的标签标识IDk仍以明文的形式通过不安全信道传送,因此攻击者可以对标签进行有效的追踪。同时,一旦获得了标签的标识IDk,攻击者就可以对标签进行假冒,而该协议无法抵抗重传攻击。因此,随机化Hash锁协议也是不安全的。不仅如此,每一次标签验证时,后台数据库都需要将所有标签的标识发送给读写器,二者之间的数据通信量很大,该协议不实用。
2.3 Hash链协议
NTT提出了一种Hash链(Hash-Chain)[3-4]协议。在第i次与读写器交换时,射频标签有初始值Si,发送ai=G(Si)给读写器,再根据以前的Si更新密钥Si+1=H(Si)。其中G和H都是Hash函数,如图3所示。
该方法满足了不可分辨和前向安全的特性。G是单向方程,因此攻击者能获得标签输出ai,但是不能从ai获得si。G输出随机值,攻击者能观测到标签的输出,但不能将ai和ai+1联系起来。H也是单向方程,攻击者能篡改标签并获得标签的密钥值,但不能从si+1中获得si。该算法的优势很明显,但是计算和比较相对复杂。为了识别一个ID,后台服务器不得不计算ID列表中的每个ID。假设有N个一致的标签ID在数据库中,数据库不得不进行N次ID搜索、2N次Hash方程计算以及N次比较。计算机处理负载随着ID列表长度的增加线性也增加,因此,该方法也不适合存在大量射频标签的情况。