1、RFID读写器面临的安全问题及解决方案RFID系统面临的安全问题 1.RFID系统安全问题分类目前,RFID主要存在的安全问题可以分为如下几类: 1.物理破坏。主要是指针对 RFID设备的破坏和攻击。攻击者一般会毁坏附在物品上的标签,或使用一些屏蔽措施如“法拉第笼” 使 RFID的标签失效。对于这些破坏性的攻击,主要考虑使用监控设备进行监视、将标签隐藏在产品中等传统方法。另外, “KILL”命令和“ RFID Zapper”的恶意使用或者误用也会使 RFID的标签永久失效。为了降低恶意使用或者误用“KILL” 命令带来的风险,在 Class-1 Gen-2 EPC标准中, “KILL”命令的使
2、用必须要有一个 32位的密码认证。 2.“中间人”攻击。攻击者将一个设备秘密地放置在合法的 RFID标签和读写器之间。该设备可以拦截甚至修改合法标签与读写器之间发射的无线电信号。目前在技术上一般利用往返时延以及信号强度等指标来检测标签和读写器之间的距离,以此来检测是否存在“中间人” 攻击。比较著名的有 Hancke & Kuhn提出基于超宽带( Ultra wide band)脉冲通信的距离限(distance bound)协议。之后,Reid等人研究了基于超宽带脉冲通信的距离限协议的缺陷,然后提出了另一种基于 XOR操作的距离限协议。 3.隐私保护相关问题。隐私问题主要是指跟踪( Track
3、ing)定位问题,即攻击者通过标签的响应信息来追踪定位标签。要想达到反追踪的目的,首先应该做到 ID匿名。其次,我们还应考虑前向安全性。前向安全性是指如果一个攻击者获取了该标签当前发出的信息,那么攻击者用该信息仍然不能够确定该标签以前的历史信息。这样,就能有效的防止攻击者对标签进行追踪定位。 4.数据通信中的安全问题。主要有假冒攻击、重传攻击等。通常解决假冒攻击问题的主要途径是执行认证协议和数据加密,而通过不断更新数据的方法可以解决重传攻击。 5.对中间件的攻击。缓冲器溢出和恶意代码植入是常见的对中间件的攻击。缓冲器溢出使程序随意执行代码,从而危及中间件后台系统安全。恶意代码植入是入侵者先制作
4、恶意 URLs,欺骗用户点击,激活时这些脚本将执行攻击。当然,针对 RFID系统的威胁与攻击还不止这些。随着应用的加深,新的攻击还会出现。因此,关于 RFID系统安全问题的研究还任重而道远。 2. RFID系统的安全需求根据上面对现存安全问题的分类和分析,我们着重针对隐私保护和数据通信中存在的安全问题提出了 RFID系统相应应满足的安全要求,包括访问控制、前向安全性、防假冒、反追踪和抵御重传攻击五个方面。实际上由于 RFID系统的计算能力有限,除了需要考虑上述的安全性需求外,算法的复杂度和系统的开销、成本等方面也必须予于考虑。如果盲目追求安全保密性,而导致系统开销、成本急剧上升,其应用场合必然
5、受到限制,结果也没有太大的实际意义。因此,我们需要在系统安全性和系统性能及成本之间进行权衡,找到一个可以接受的平衡点。 RFID安全问题的一些解决方法根据上面提出的 RFID系统的安全性要求,目前一般采用设计一定的安全协议来解决相应的安全问题。现有的解决方案主要有基于“询问应答” 模式的安全协议、基于公钥密码机制的方法以及在分布式场景下的方法。1. Hash-Lock协议及一系列改进方法 Hash-Lock协议是由 Sarma等人提出的,核心思想是使用 meta ID来代替真实的标签 ID以避免信息泄漏和被追踪。该协议能够提供访问控制并对标签数据进行保护。但是由于 ID没有使用动态刷新机制,标
6、签易被跟踪定位。而且 key和 ID以明文形式发送,容易被窃取者获取,进行假冒和重传攻击。同时该协议也不具有前向安全性。因此,该协议未能满足我们所认为安全需求。但是该协议运用“ 询问 应答” 机制,建立了一个基本的安全协议模型,是后续许多协议的一个基础。为解决 Hash-Lock协议中的标签被跟踪问题, Weis等人提出了随机 Hash-Lock协议。该协议中对于读写器的不同询问,标签生成随机数 R,标签将 H( ID|R)回传给读写器以避免被追踪,其中 “ |”是字符串连接符号。此验证协议中,标签的响应是随机的,解决了依据相同的响应对标签进行跟踪定位的问题。但是此协议不具有前向安全性。而且该
7、协议数据通信和运算量很大,很难用于复杂的场合。为了保证前向安全性,NTT实验室提出了 Hash-Chain协议。每次标签收到读写器的认证请求时,将产生响应值回传到读写器并且更新密值。标签中存储的密值不断进行自我更新,避免了被跟踪定位而导致隐私信息的泄露。而且由于使用单向散列函数,因此具有前向安全性。但是该协议无法阻止假冒和重传攻击,因为只要攻击者截获了响应值,就可以伪装成合法标签通过验证。基于杂凑的 ID变化协议与 Hash-Chain协议相似。由于系统使用了一个随机数 R对标签的 ID不断进行动态刷新,同时还对 TID(昀后一次回话号)和 LST(昀后一次成功的回话号)信息进行更新,因此该协
8、议还可以抵抗重传攻击。但是如果攻击者对标签进行干扰,则可能会在后端数据库和标签之间出现数据不同步问题。与基于杂凑的 ID变化协议的情况类似,LCAP协议亦存在数据库同步的潜在安全隐患。根据上述几种方法的思想,国内学者曾丽华等人提出了一种“key值更新随机Hash锁”方法。该方法的核心是增加了“ 锁定标签 ”和“解锁标签” 的机制。该方案具有前向安全性,也能够抵御跟踪和重传攻击,基本满足了安全需求。还有学者提出基于密钥阵列的 RFID安全认证协议。该协议中对每个读写器i和标签j之间都分配了一个密钥key,形成了一个密钥矩阵。该方法也能较好的满足基本的安全需求,但是对于标签数众多的 RFID系统,
9、很显然构造出的密钥矩阵将会非常的庞大,数据的存储、检索复杂度比较高,因此对于大型系统很难应用。 2. 基于公钥密码机制的方案 RFID标签的计算资源和存储资源都十分有限,因此极少有人设计使用公钥密码体制的 RFID安全机制。到目前为止,基于公钥密码机制的 RFID安全方案主要有两个: Juels等人提出的用于欧元钞票上标签ID的建议方案;Golle等人提出的可用于实现RFID标签匿名功能的方案。这两种方案都采用了再次加密机制,但两者还是有显著的不同:Juels等人的方案基于一般的公钥加密签名方案,完成再次加密的实体知道被加密消息的所有知识(本方案中特指钞票的序列号)。而Golle等人的方案则采
10、用了基于 ElGamal体制的“通用再加密”技术。因此完成对消息的再次加密无需知道关于初始加密该消息所使用的公钥的任何知识。 3. 分布式环境下的安全方案目前,分布式环境下的安全方案主要有David等提出的数字图书馆 RFID协议和 Rhee等人提出了一种适用于分布式数据库环境的RFID认证协议。前者使用基于预共享秘密的伪随机函数来实现认证,而后者则是它是典型的“询问应答”型双向认证协议。这两种方案都能满足系统的安全性需求。但是为了支持这两个协议,必需在标签电路中包含比较复杂的电路和函数功能模块,故而它们不适用于低成本的RFID系统。4.其他解决方案1、防止窃听 在认证过程中,即使敌人窃听到读
11、写器的输出 a (k) ,也不能在下一步获得认证。因为每一认证过程中需要的 a (k)值是变化的。前一次认证的 a (k) 值对于后一次认证来说是无意义的。 认证完成后,射频标签输出Hash (TagID )而不是 TagID。因为 Hash 方程很难求其反函数,所以敌人捕获到输出 Hash (TagID) 值,也不能得到 TagID 的值。总之,上述方法即使在读写器和射频标签之间的通信遭遇到窃听时,也是安全的。 2、防止跟踪 射频标签只对被认证的读写器响应。因为没有标签输出,所以敌人不能通过跟踪标签来跟踪客户刚付费买的是什么。位置隐私及客人携带的物品得到了保护。 3、低计算负载 该改进方法运
12、算速度快,成本低。当要从 N 个已知的射频标签中识别出一个时,读写器只需要执行 1 次 Hash 操作和 N 次 ID 搜索,而随机读取控制 Hash 锁方法至少需要 N 次 Hash 操作和 N 次 ID 搜索。显然在同一安全级上,所提出的改进方法计算负载显著降低。 4、适用于大量射频标签 因为计算负载低,并且随着射频标签的数量增加而缓慢增加,所以该方法适合有大量标签存在的需要被保护的 RFID 系统。安全协议小结对于以上的若干种安全协议,通过比较分析我们发现目前基于密码技术的协议中尚没有一个既能很好满足系统安全性目标又能很好的兼顾到系统成本和开销,能够在现实的场景中广泛应用的。Hash-L
13、ock等协议的安全性能较低,很多情况下无法满足需要,而基于杂凑的 ID变化协议和 LCAP协议则存在数据同步等问题。基于公钥密码机制的方案数量少,应用十分有限,不是目前主要的研究方向。分布式环境中的两种方案虽然本身能够满足安全需求,但是其成本高、结构复杂,不适合于大规模的应用。所以,对于如何权衡安全性和成本之间的矛盾,如何实现在现实生活中的广泛应用还有很多工作要做。实际上,根据现实的需要,我们也可以有不同的选择策略。比如,在一些涉及军事、国家安全等方面的应用中,我们一般选择安全性能高的方案;对于大规模的普及应用,其目标主要就是要降低成本,此时只能降低部分安全性的要求。此外,上述安全协议中大多都
14、涉及到了密钥key。由于每个标签和读写器之间都会有一个密钥,因此在像物流运输等大型的RFID系统中密钥的数目很大,对于密钥的存储、管理、查找等有较高的要求。目前已经有不少学者都对此问题作一些探索研究。 Juels把解决这个问题的方法划分为三类:同步方法、时空交换的方法和基于平衡树的方法。基于平衡树的方法其核心思想是采用平衡树来存储并管理标签的密钥。采用深度优先搜索法,就可以将复杂度从线性复杂度降低到对数级。但是该方案中密钥是不变的,并且被多个标签共享,因此一旦某个标签被攻破,可能会对其他的标签产生不利影响。另外,基于平衡树的方案会挤占标签中较多的存储空间。基于以上问题,刘云浩等人又提出了新方案 ACTION。ACTION采用分裂树来管理密钥,而且每个标签都拥有相互独立的密钥,有效的解决了前面的问题。