RFID系统的安全读取访问控制解决方案
发布时间:2008/12/17 0:00:00 访问次数:641
读取访问控制的方法对读写器通信的全程都进行了加密防护,特别是对验证过程加入了随机数,具有防窃听、防跟踪、防欺骗的能力,并且可安全地更换合法的readerld。然而,它对硬件的要求很高,尤其是标签要实现比较多的逻辑运算并要求有可读写的存储器。对于这种方法,关键是要提高标签芯片的计算和存储能力,以及对验证方法的改进和简化。带有读取访问控制的标签将只对已认证标签进行响应。也就是说,标签在某个读写器未受到自己认证之前,不会把信息泄露出去。
1. hash-lock协议.
hash-lock协议是由sarma等人提出的,为了避免信息泄漏和被追踪,它使用metald来代替真实的标签id,其协议流程如图1所示。
图1 hash-lock协议
hash-lock协议的执行过程如下:
(1)读写器向标签发送query认证请求;
(2)标签将metald发送给读写器;
(3)读写器将metald转发给后台数据库;
(4)后台数据库查询自己的数据库,如果找到与metald匹配的项,则将该项的(key,id)发送给读写器,其中id为待认证标签的标识,metald≡h(key);否则,返回给读写器认证失败信息;
(5)读写器将接收后台数据库的部分信息key发送给标签;
(6)标签验证metald=h(key)是否成立,如果成立,则将其id发送给读写器;
(7)读写器比较从标签接收到的d是否与后台数据库发送过来的id一致,如一致,则认证通过;否则,认证失败。
由上述过程可以看出,hash-lock协议中没有id动态刷新机制,并且metald也保持不变,d是以明文的形式通过不安全的信道传送的,因此hash-lock协议非常容易受到假冒攻击和重传攻击,攻击者也可以很容易地对标签进行追踪。也就是说,hask-lock协议没有达到其安全目标。
2. 随机化hash-lock协议
随机化hash-lock协议由weis等人提出,它采用了基于随机数的询问—应答机制,其协议流程如图2所示。
图2 随机化hash-lock协议
随机化hash-lock协议的执行过程如下:
(1)读写器向标签发送query认证请求;
(2)标签生成一个随机数r,计算h(idk||r),其中idk为标签的标识,标签将(rji(idku))发送给读写器;
(3)读写器向后台数据库提出获得所有标签标识的请求;
(4)后台数据库将自己数据库中的所有标签标识(id1,id2,…,idn)发送给读写器;
(5)读写器检查是否有某个idj(1≤j≤n),使得h(idj||r)=h(idk||r)成立;如果有,则认证通过,并将idj发送给标签;
(6)标签验证idj与idk是否相同,如果相同,则认证通过。
在随机化hash-lock协议中,认证通过后的标签标识idk仍以明文的形式通过不安全信道传送,因此玫击者可以对标签进行有效的追踪。同时,一旦获得了标签的标识idk,攻击者就可以对标签进行假冒。当然,该协议也无法抵抗重传攻击。因此,随机化hash-lock协议也是不安全的。不仅如此,每一次标签认证时,后台数据库都需要将所有标签的标识发送给读写器,二者之间的数据通信量很大。就此而言,该协议也不实用。
3. hash chain协议
ntt提出了一种hash chain协议。该协议流程如图3所示。在第i次与读写器交换时,标签有其初始值si,发送ai=g(si)给读写器,再根据以前的si更新密钥si+1=h(si)。其中g和h都是hash函数。
图3 ntt hash china协议
该方法满足了不可分辨和前向的安全特性。g是单向方程,因此攻击者能获得标签输出钩,但是不能从ai获得si。g输出随机值,攻击者能观测到标签输出,但不能把ai和ai+1联系起来。h也是单向方程,攻击者能篡改标签并获得标签的密钥值,但不能从si+1获得si。该算法的优势很明显,但是有太多的计算和比较。为了识别一个id,后台服务器不得不计算id列表中的每个d。假设有n个已知的标签d在数据库中,数据库不得不进行n次id搜索、2n次hash方程计算和n次比较。计算机处理负载随着id列表长度的增加线性增加,因此该方法也不适合存在大量射频标签的情况。
为了克服上述情况,ohkubo等人提出了一种能够减少可测量性的时空内存折中方案,其协议流程如图4所示。其本质上也是基于共享密钥的询问一应答协议。但是,在该协议中,当使用两个不同hash函数的读写器发起认证时,标签总是发送不同的应答。值得提出的是,作者声称该折中的hash-chain协议具有完美的前向安全性。
读取访问控制的方法对读写器通信的全程都进行了加密防护,特别是对验证过程加入了随机数,具有防窃听、防跟踪、防欺骗的能力,并且可安全地更换合法的readerld。然而,它对硬件的要求很高,尤其是标签要实现比较多的逻辑运算并要求有可读写的存储器。对于这种方法,关键是要提高标签芯片的计算和存储能力,以及对验证方法的改进和简化。带有读取访问控制的标签将只对已认证标签进行响应。也就是说,标签在某个读写器未受到自己认证之前,不会把信息泄露出去。
1. hash-lock协议.
hash-lock协议是由sarma等人提出的,为了避免信息泄漏和被追踪,它使用metald来代替真实的标签id,其协议流程如图1所示。
图1 hash-lock协议
hash-lock协议的执行过程如下:
(1)读写器向标签发送query认证请求;
(2)标签将metald发送给读写器;
(3)读写器将metald转发给后台数据库;
(4)后台数据库查询自己的数据库,如果找到与metald匹配的项,则将该项的(key,id)发送给读写器,其中id为待认证标签的标识,metald≡h(key);否则,返回给读写器认证失败信息;
(5)读写器将接收后台数据库的部分信息key发送给标签;
(6)标签验证metald=h(key)是否成立,如果成立,则将其id发送给读写器;
(7)读写器比较从标签接收到的d是否与后台数据库发送过来的id一致,如一致,则认证通过;否则,认证失败。
由上述过程可以看出,hash-lock协议中没有id动态刷新机制,并且metald也保持不变,d是以明文的形式通过不安全的信道传送的,因此hash-lock协议非常容易受到假冒攻击和重传攻击,攻击者也可以很容易地对标签进行追踪。也就是说,hask-lock协议没有达到其安全目标。
2. 随机化hash-lock协议
随机化hash-lock协议由weis等人提出,它采用了基于随机数的询问—应答机制,其协议流程如图2所示。
图2 随机化hash-lock协议
随机化hash-lock协议的执行过程如下:
(1)读写器向标签发送query认证请求;
(2)标签生成一个随机数r,计算h(idk||r),其中idk为标签的标识,标签将(rji(idku))发送给读写器;
(3)读写器向后台数据库提出获得所有标签标识的请求;
(4)后台数据库将自己数据库中的所有标签标识(id1,id2,…,idn)发送给读写器;
(5)读写器检查是否有某个idj(1≤j≤n),使得h(idj||r)=h(idk||r)成立;如果有,则认证通过,并将idj发送给标签;
(6)标签验证idj与idk是否相同,如果相同,则认证通过。
在随机化hash-lock协议中,认证通过后的标签标识idk仍以明文的形式通过不安全信道传送,因此玫击者可以对标签进行有效的追踪。同时,一旦获得了标签的标识idk,攻击者就可以对标签进行假冒。当然,该协议也无法抵抗重传攻击。因此,随机化hash-lock协议也是不安全的。不仅如此,每一次标签认证时,后台数据库都需要将所有标签的标识发送给读写器,二者之间的数据通信量很大。就此而言,该协议也不实用。
3. hash chain协议
ntt提出了一种hash chain协议。该协议流程如图3所示。在第i次与读写器交换时,标签有其初始值si,发送ai=g(si)给读写器,再根据以前的si更新密钥si+1=h(si)。其中g和h都是hash函数。
图3 ntt hash china协议
该方法满足了不可分辨和前向的安全特性。g是单向方程,因此攻击者能获得标签输出钩,但是不能从ai获得si。g输出随机值,攻击者能观测到标签输出,但不能把ai和ai+1联系起来。h也是单向方程,攻击者能篡改标签并获得标签的密钥值,但不能从si+1获得si。该算法的优势很明显,但是有太多的计算和比较。为了识别一个id,后台服务器不得不计算id列表中的每个d。假设有n个已知的标签d在数据库中,数据库不得不进行n次id搜索、2n次hash方程计算和n次比较。计算机处理负载随着id列表长度的增加线性增加,因此该方法也不适合存在大量射频标签的情况。
为了克服上述情况,ohkubo等人提出了一种能够减少可测量性的时空内存折中方案,其协议流程如图4所示。其本质上也是基于共享密钥的询问一应答协议。但是,在该协议中,当使用两个不同hash函数的读写器发起认证时,标签总是发送不同的应答。值得提出的是,作者声称该折中的hash-chain协议具有完美的前向安全性。
上一篇:RFID系统的安全物理解决方案