物联传媒 旗下网站
登录 注册
RFID世界网 >  技术文章  >  交通  >  正文

RFID系统数据安全研究

作者:王信 薛小平 张思东
来源:RFID世界网
日期:2011-06-27 11:06:36
摘要:通信安全对于RFID 技术是至关重要的。本文分析了RFID系统中威胁数据安全的主要因素,研究了有代表性的四种应对方案并对其进行了分析和比较,同时也提出了RFID系统中数据安全的研究方向。

    1  引言

    RFID(射频识别) 是Radio Frequency Identification 的缩写。它的应用始于二战,长久以来多用于军事。与传统的条形码技术相比,它具有非接触读取、无需光学对准、工作距离长、适于恶劣环境、可识别运动目标等明显优势,又得益于电子技术的发展,因此逐渐得到了广泛的应用。典型的应用包括火车和货运集装箱的识别、高速公路自动收费及交通管理、仓储管理、门禁系统、防盗与防伪等方面。

    当前的RFID 技术研究主要集中于天线设计 、安全与隐私防护 、标签的空间定位和防碰撞技术等方面。

    本文研究了RFID系统前端数据采集和操作的信息安全问题。本文其他部分内容安排如下:第二部分对RFID系统数据数据安全的问题进行了分类描述,并说明了保护RFID系统数据安全的意义。第三部分分别介绍了RFID系统数据安全的有代表性的几种方案。第四部分对这些方案进行了分析比较和总结。

    2  RFID 数据安全问题

    RFID系统在进行前端数据采集工作时,标签和识读器采用无线射频信号进行通信。这在给系统数据采集提供灵活性和方便的同时也使传递的信息暴露于大庭广众之下,这无疑是信息安全的重大威胁。随着RFID 技术的快速推广应用,其数据安全问题已经成为一个广为关注的问题。

    对于RFID系统前端数据采集部分而言,信息安全的威胁主要来自于对标签信息的非法读取和改动、对标签的非法跟踪、有效身份的冒充和欺骗三个方面。

    图一为RFID 前端数据采集系统示意图。识读器和数据库服务器之间用可信任的安全信道相连(如何保证这种信道的安全不是本文要讨论的问题) 。而识读器和标签之间则是不安全不可信任的无线信道,存在被窃听、欺骗和跟踪等危险。本文将主要讨论如何保证这一通信过程的数据安全。

    对于RFID系统应用的不同领域,数据安全防护的重点也不尽相同。在零售业,商家需要防止有人非法改动商品的价格。在物流领域,不仅要防止商业间谍窃取标签内货物的信息,也要防止他们通过跟踪标签来跟踪货物的流向、通过对标签进行计数来估计货物的数量。在门禁和自动收费的应用中要防止非法标签冒充合法标签来通过身份验证。


图1  系统示意图

    3  主要解决方法

    针对RFID系统数据安全的问题,现在已经提出各种途径的解决方法,其中有代表性的方法有以下几种:物理隔离、停止标签服务、读取访问控制、双标签联合验证。下面将具体介绍和分析这几种方法。

    3. 1  物理隔离

    这种方法主要思想是:在不希望标签被读取的时候使用物理方法阻断电磁波传递路径。例如有人购买了贴有RFID标签的商品,在回家的路上他可以使用一种特殊的可阻断电磁波的包装袋来保护他的个人隐私不被人知晓。信息安全厂商RSA 在这方面做了很多努力,他们已经开发出这种可以阻断RFID 信号的包装袋。另外,RSA 还在开发一种沙粒大小的微型芯片来阻断RFID标签与RFID 识读器之间的通信。这种方法适用于零售小商品、医药、邮政包裹、档案文件等需要RFID标签保密的场合。

    3. 2  停止标签服务

    停止标签服务就是在RFID标签的应用周期完成之后,部分或者完全地停止标签的信息服务,有人把这叫做“killtag”。这种方法主要是针对那种只存储标签ID 的无源标签。这种标签的ID 号是唯一的,往往是由产品的分类号和一个局部唯一的序列号组成。举个例子,我们可以在商品售出或货物易手时去掉RFID标签的序列号,只保留厂家和产品类型信息,或是干脆停止标签的工作。

    3. 3  读取访问控制

    读取访问控制(Read access control) 是利用hash 函数进行加密和验证的方案。进行读取访问控制时,RFID标签只响应通过验证的识读器。除RFID 识读器和RFID标签以外,还需要数据库服务器的支持。这是一种能够提供较完整的数据安全保护的方案,也是近来研究比较多的方案。下面将介绍其典型的实现方法。

    Hash 函数是一种单向函数,它计算过程如下:输入一个长度不固定的字符串,返回一串定长度的字符串,又称hash值。单向hash 函数用于产生信息摘要。Hash 函数主要解决以下两个问题:在某一特定的时间内,无法查找经hash 操作后生成特定hash 值的原报文;也无法查找两个经hash 操作后生成相同hash 值的不同报文。

    初始化过程:方案对硬件的要求较高,标签的ROM存储标签ID 的hash 函数值hash (TagID) 。RAM 存储经授权的有效识读器的ReaderID。另外要求标签具有简单逻辑电路,可以做简单计算如计算hash 函数和产生随机数。Reader 与Tag和数据库服务器相联系,并被分配ReaderID。后台数据库存储TagID 和hash(TagID) 数据。

    验证过程:识读器首先发出请求,标签产生一个随机数k作为回应。服务器从识读器得到k 值并计算k 和ReaderID相异或的值(本文中记为k ReaderID) ,然后对其进行hash 运算得到a (k) = hash(k ReaderID) 并通过识读器将a (k) 发给标签。与此同时,标签也用自己存储的k 值和ReaderID 值按同样的方法计算出a (k) ’。标签比较a (k) 和a (k) ’,相同则识读器拥有正确的ReaderID ,验证通过,否则标签沉默。

    信息传递过程: 验证通过之后,标签会将其有效信息hash(TagID) 发给识读器,数据库服务器从识读器处取得hash(TagID) 并在数据库中查找出对应的TagID 值,这就完成了信息传送。过程如图2 所示。


图2  读取访问控制的验证

    更新ReaderID 过程:需要更新合法ReaderID 时,用新的ReaderID 和原来的ReaderID 相异或,发给标签,标签可以使用原有的ReaderID 值算出新的ReaderID 值。

    3. 4  双标签联合验证

    双标签联合验证法是Ari Juels 等人提出的一种面向低端、无源、计算能力低的RFID标签的安全验证方法。这种机制将在RFID标签数据要随货物多次易手的较复杂的情况下保持物流链中RFID标签信息的完整性。

    这种方法的主要思想是在两个相对应的RFID标签被识读器同时读到时,使用读取设备作为中介进行互相验证。即使在识读器不被信任的情况下,标签也能够脱机进行验证。此方法适合某些特殊的应用如:药品分发中保证药品说明书和药瓶一同运输,保证某些飞机零件出厂时有安全阀。

    验证过程如图3 所示。它所使用的是一种消息验证码(message authentication codes (MACs) ) 机制。标签由唯一的秘密的长度为d 比特的密钥来加密。另外每个标签都有一个计数器C ,初始值为0。密钥集合由一个可信任的证明者V 保管。MACx[m]表示用密钥x 对信息m 算出的MAC。fx[C]代表用密钥x 对输入c 进行hash 运算。在标签TA 和TB被同时扫描到时,产生了一个联合验证(yoking2proof) PAB 。阅读器传送“左验证”和“右验证”的信息。作为结果的验证PAB由V 使用它所知的密钥来查证。


图3  双标签联合验证

    此方法的关键是两个标签同时被读到,但不一定是这些标签一定是被同一设备所读取。入侵者要从远端满足同时读取的条件是非常困难的,这提高了它的安全性。

    4  RFID 数据安全的比较及研究方向

    物理隔离的方法简单、直接并且有效,适用于RFID 简单应用场合。但是它的简单安全机制也限制了它的应用范围:首先,贴有RFID标签的物品必须适于装在这种电磁隔离的包装中。因此体积不能太大,而无线通讯设备也不适于这种电磁屏蔽的方法。其次,处于屏蔽隔离状态中的RFID标签虽保护了其中的信息,但此时标签也不能提供服务。另外,无论是特殊的包装或是阻隔电磁波的芯片都会增加RFID标签的成本,然而RFID标签的成本目前还需要进一步降低才能真正广泛地应用。

    停止标签服务的方法简单易行,但只提供最简单的信息保护,能够适用的范围很小。如果只清除了标签序列号,他人仍可以得到标签中的其他信息,也可以凭此对标签进行跟踪。如果完全停止了标签的工作,那么就无法对标签进行进一步的利用。从资源和效率的方面讲,都是很不经济的。另外,消费者并不容易检测他所买的商品上的RFID标签是否得到了有效的停止,换句话说,只要商家愿意,他们仍然可以跟踪消费者并窥探其隐私。所以目前需要解决的是如何能保证停止标签的有效性问题和如何对标签进行重用的问题。

    读取访问控制的方法对识读器通信的全程都进行了加密防护,特别是对验证过程加入了随机数。具有防窃听、防跟踪、防欺骗的能力,并且可安全地更换合法的ReaderID。然而它对硬件的要求很高,尤其是标签要实现比较多的逻辑运算并要求有可读写的存储器。对于这种方法,关键的是提高标签芯片的计算和存储能力,以及对验证方法的改进和简化。

    双标签联合验证的方法意在加密算法的小代价实现,达到了一定的安全强度。然而它仍然要求计算hash 函数并且要求标签有360bit 的存储器,对于无源标签来讲还要有待于RFID 硬件技术的进步才能实现。

    下面分析一下后两种方法的计算量。我们可以看到,为了进行一次读取访问控制验证,标签必须有一次产生随机数的运算,一次hash 运算和一次比较运算;而数据库服务器也要做相应的hash 运算,另外如果系统中一共有n 个标签的话,服务器必须在n 个标签的记录中查找对应的hash(TagID) 。整个验证标签和识读器和标签之间至少进行两次对话。而为了进行一次双标签联合验证,标签需要作一次hash 运算,两次MAC 运算,还有两次增量运算。标签和识读器间至少进行三次对话。

    5  结论

    分析了RFID系统前端数据采集系统的数据安全问题,对可能的攻击进行了论述和分类。针对这些攻击,研究了目前有代表性的几种解决方案,并对其实现要求、安全强度和适用范围等特性进行了比较,分析了其不足,提出了待改进之处。