最经学习了一些物联网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认证协议_马巧梅