最经学习了一些物联网RFID的相关安全方案,下面对相关的知识做一个总结。
0x00 RFID是啥?
0x01 RFID面临的问题
0x02 围观各类RFID安全方案
0x03 最新的研究成果和方向
0x04 参考文献
RFID即无线射频识别,是一种广泛用于我们生活当中的通信技术。
怎么个广泛应用法呢?举个例子,门禁系统常见吧?我们知道,门禁系统里通常有两个显而易见的东西,一个是通行卡片,一个是门上的读卡器。只要我们将在卡片在读卡器上刷一下,我们就能合法的通过门禁系统。这个过程中其实就完成了,读卡器和卡片之间的RFID通信。
除了这个,还有很多比如说校园卡系统啊、银行卡系统啊等等用到卡片作为身份认证的系统都是用到了RFID进行通信的。
这些卡片当中都存在一个芯片,当和读卡器接触的时候就会通电,然后发出无线电磁信号和读卡器进行通信。
别看芯片这么小,里面可以含有很多计算单元和一个小型存储器的呢。
还有哦,其实除了身份卡片和读卡器之外,还有一个东西是我们看不到的哦。
当当当当,那就是后台的数据库服务器。
读卡器仅仅只是读取数据,真正分析数据,验证身份的就是交给后台的数据库服务器啦。
以上就是RFID中的三个角色啦:卡片(学名标签)、读卡器(学名阅读器)、数据库服务器(学名就是服务器啦)。
那么RFID现在到底面临什么安全问题呢?请听我细细道来。
下面是这个结构的基本拓扑图:
那么啊,这个结构里面,有哪些需要考虑的问题呢?
由于数据通路是无线的,所以啊,标签是可以伪造的,读卡器也是可以伪造的。标签伪造很好理解,就是黑阔想进行未授权的访问啊。读卡器伪造呢,就是黑阔们想拿到标签的数据进而伪造标签啦。
以上就是RFID中面临的各种安全问题啦。下面我们围观一下已有的各类安全方案吧。
实现RFID安全机制所采用的方法主要有两类:物理安全方案和基于密码技术的软件安全方案 。
Kill命令机制采用从物理上销毁RFID标签的方法,一旦对标签实施了销毁(Kill)命令,标签将不再可用。
静电屏蔽的工作原理是使用Faraday Cage来屏蔽标签,使之不能接受来自任何读写器的信号,以此来保护消费者个人隐私。
主动干扰的基本原理是使用一个设备持续不断地发送干扰信号,以干扰任何靠近标签的读写器所发出的信号。
Blocker Tag是一种特殊的标签,与一般用来识别物品的标签不同,Blocker Tag是一种被动式的干扰器。
由于啊,RFID中所采用的物理安全机制存在种种缺点,人们先后提出了许多基于密码技术的安全机制。
Hash-Lock协议是由Sarma等人提出,使用metalID来代替真实的标签ID以避免信息的泄漏和被追踪,每个标签拥有自己的访问密钥key,且metalID=Hash(key),简写为metalID=H(key) 。
协议的通信过程如下图所示。
协议的本质是让标签回传metalID来代替ID,避免将ID直接通过不安全信道传送给标签读写器。
该协议能够提供访问控制和标签数据隐私保护。但是由于ID没有使用动态刷新机制,metalID保持不变,标签易被跟踪定位。(key,ID)以明文形式发送,容易被窃听者获取。
也就是说,这个协议无法抗拒中间人攻击。
由于Hash-Lock协议使用metalID可能被隐私侵犯者追踪定位,为了解决该协议中的标签跟踪性的问题,Weis等人提出了随机Hash-Lock协议。
该协议中,对于标签读写器的不同询问,标签将回传随机数形态的回传值给读写器以避免追踪。
协议的通信过程如下所示。
该协议中,对于读写器的访问请求,标签是随机响应的,解决了依据相同响应对标签进行跟踪定位的问题。
但由于IDk仍然以明文方式传输,获取了该信息就可以对标签进行假冒。
此外每次标签的认证,后台数据库都要将所有标签的标识发送给标签读写器,两者之间的通信量很大,同时也难以快速处理突发的信息,该协议不实用。
NTT实验室提出了一种Hash-Chain协议,本质上,此协议是基于共享秘密的询问-应答协议,但对两个使用不同Hash函数的标签发起认证时,标签总是发送不同的应答。
在Hash-Chain协议中,标签是个具有自主ID更新能力的主动式标签,避免了标签定位隐私信息的泄漏。又由于单向的Hash函数,不可能从St,j+1获得St,j,具有前向安全性。
但为了尽量降低标签的制作成本,该协议降低了标签的存储空间和计算能力,只是单向的认证协议,标签在协议的最后没有实现对读写器的认证,标签未确认读写器的合法性。
同时,Hash-Chain协议非常容易受到重传和假冒攻击。只要隐私侵犯者截获了at,j,它就可以进行重传攻击,伪装标签通过认证。
Rhee等人提了一种适用于分布式数据库环境的RFID认证协议,它是典型的询问-应答型双向认证协议 。
到目前为止,还没有发现该协议有明显的安全漏洞或缺陷。
但是,在本方案中,执行一次认证协议需要标签进行两次Hash运算。标签电路中自然也需要集成随机数发生器和散列函数模块,因此它也不适合用于低成本RFID系统。
LCAP协议也是询问-应答协议,但是与前面的同类其他协议不同,它每次执行之后都要动态刷新标签的ID。LCAP协议的后台数据库保存两类信息:更新前的信息Prev和更新后的信息。
由于RFID标签的计算资源和存储资源都十分有限,因此极少有人设计使用公钥密码体制的RFID安全机制。
到目前为止,公开发表的基于公钥密码机制的RFID安全方案只有两个:Juels等人提出的用于欧元钞票上Tag标识的建议方案;Golle等人提出的可用于实现RFID标签匿名功能的方案。
经过十几年的研究和发展,RFID在安全方案这一块已经做的很成熟了。
但是啊,其实还是有东西可以搞的哦。比如说,降低标签的芯片成本这一块,就有很大的空间。
我们知道,标签的芯片里面,含有许多运算单元。当在固定大小的芯片里面,想要加入更多的运算单元的话,成本自然就更高。
大概怎么个比例呢?举个例子,低级的磁卡成本只需几毛钱甚至几分钱,但是带芯片的卡片,成本可是要几元钱的哦。这种情况下, 哪怕只是节省了1毛钱的成本啊,乘以基数都是非常恐怖的数字。
最新的研究RFID安全方案的话,有两个方案。
PUF,即物理不可克隆(Physical Unclonable Function,PUF)。是一种硬件技术,它有一组微型延迟电路,当收到一个随机的二进制输入口令之后,会生成一个唯一的、随机的二进制序列作为响应,而这个响应是利用芯片制造过程中的光刻、掺杂等环节所产生的差异来生成的。由于芯片制造过程中产生的差异本身具有不可模仿和复制的特性,所以每个芯片中的 PUF 电路可以生成无限多个、唯一的、不可复制的口令/响应序列。即使是芯片的制造厂商也不可能从另外一个芯片上复制出一套一模一样的口令/响应序列。
同时,PUF 电路所需的硬件开销很小,一个 64 位的 PUF 电路大概需要 545 个门电路。而根据标签特点而简化设计的Hash运算和高级加密标准(Advanced Encryption Standard,AES)运算分别需要1700和3400个门电路。
协议的具体认证过程如下图所示:
这里用到了LSRF(线性反馈移位寄存器,Linear Feedback Shift Register),LFSR 是用来生成二进制序列的一种机制,如果 LFSR 的种子保持机密,LFSR 就可作为伪随机数产生器。同时,对于相同的密钥种子,两个相同结构的 LFSR 会产生相同的伪随机数,这个特点也用来对阅读器和标签的共享密钥进行同步更新。
既然降低成本的关键在于芯片,芯片的关键又在于加密算法,那么降低加密算法的复杂度不就可以了吗?
没错,这就是最简单直接的做法,虽然想做到这个并不简单。
现在超轻量级的加密算法的研究非常火热,但是其设计难度也大大增加了。原因在于,大型加密算法重复的循环操作比较多所以造成速度慢,如果要做超轻量级的加密算法的话,需要对加密的每一步都做出合适合理的设计才行,这是典型的增加脑力劳动来减少体力劳动啊。
下面将给出一个应用于RFID的超轻量级加密算法的例子:
其中,Rot(A, B)表示 A 向左旋转 n bit(就是移位啦),且n 是 B 中 1 的个数。
例如,Rot(111000,1110)=000111。
RFID认证协议的安全性分析_王明辉
安全的RFID认证协议研究设计_杜治国
基于PUF的高效低成本RFID认证协议_贺章擎
一个超轻量级的RFID认证协议_马巧梅
原文:http://www.cnblogs.com/study-development/p/3702824.html