一种基于Hash函数的RFID双向认证协议
2015-04-07关辉
关辉
摘 要:RFID技术近年来发展迅速,在诸多领域得到了广泛应用,但随之而来的各种安全问题也越来越突出。现有的一些RFID系统安全方案都存在着一定的缺陷,不能很好地解决安全问题。通过对一些典型安全方案的分析,提出了一种基于Hash函数的双向认证协议,并对其进行了性能分析。该协议能够更好地保护用户隐私,实现了更高的安全性。
关键词:射频识别;认证协议;Hash函数;安全方案
中图分类号:TP393 文献标识码:A 文章编号:2095-1302(2015)02-00-02
0 引 言
RFID(Radio Frequency Identification,射频识别)利用射频信号通过空间耦合(交变磁场或电磁场)在阅读器和电子标签之间实现无接触的信息传递,并可通过所传递的信息达到自动识别的目的[1]。随着大规模集成电路技术的不断进步,RFID产品的成本正不断降低,RFID技术在各行各业的应用也越来越广泛。但随之而来的各种安全问题也日益严峻,并逐渐成为制约RFID进一步推广应用的重要因素。因此,必须开发出一种高效、可靠和具备一定强度的安全技术,来解决RFID的安全问题。
1 RFID系统面临的安全威胁
基本的RFID系统主要由读写器(Reader)和标签(Tag)两部分组成。标签是由IC芯片和无线通信天线组成的微型电路,每个标签都具有唯一的电子编码;读写器负责向标签发射读取信号并接收标签的应答,对标签的对象标识信息进行解码,将对象标识信息和标签上其它相关信息传输到主机以供处理[2]。由于标签和读写器之间的通信是非接触和无线的,很容易造成一些安全问题。因此,RFID系统面临的安全威胁主要体现在以下两个方面:
(1)标签信息泄漏
没有安全机制的电子标签会向邻近的读写器泄露标签内容和一些重要信息。由于低成本电子标签资源的有限性,它们普遍缺乏支持点对点加密和PKI密钥交换的功能。在RFID系统应用过程中,恶意攻击者能够读取、篡改电子标签上的数据。
(2)恶意跟踪
在RFID系统中,电子标签不用保存和传输大量信息,大量的数据都保存在后台数据库中。通常情况下标签只需要传输简单的标识符,通过该标识符访问数据库即可获得目标对象的相关数据和信息。因此,即使标签进行加密后不知道标签内容仍然可以通过固定的加密信息追踪标签,得出标签的定位信息,从而进一步推断出标签持有者的行踪。
2 现有安全方案
目前,实现RFID安全机制所采用的方法主要有两大类:一类称之为物理方法,另一类称之为逻辑方法[3]。
2.1 物理方法
物理方法主要依靠外加硬件设备或硬件功能从而阻止标签与读写器之间的通信。目前主要的方法有:KILL标签、法拉第网罩和主动干扰等。KILL标签是使标签失效,但标签破坏后无法重用;法拉第网罩可以屏蔽无线电波,但需增加硬件设备,提高了成本;主动干扰法可以使用户通过主动发送信号来干扰附近读写器的操作,但可能导致非法干扰[4]。
2.2 逻辑方法
逻辑方法是一种基于加密认证技术的安全机制,通过设计读写器与标签之间相互认证的方案,来实现RFID系统的信息安全。目前,这种方法被更多地采用。具有代表性的主要有以下几种方案:
(1)Hash锁方案[5]
该方案使用metaID来代替标签真实ID。读写器存储每个标签的访问密钥K,标签中存储对应的metaID,metaID=Hash(K),此时标签处于“加锁”状态。若要“解锁”标签,读写器需要发送K值到标签,标签通过Hash函数计算出Hash(K),若该值与存储的metaID匹配则解锁,发送标签真实ID给读写器。
该方案可以提供访问控制和标签数据隐私保护,但由于其metalID固定,且访问密钥K和标签ID以明文形式发送,易被跟踪、伪造攻击和重传攻击。
(2)随机Hash锁方案[5]
该方案是Hash锁方案的扩展。标签包含有Hash函数和伪随机数生成器,读写器请求访问标签时,标签用一对数据(r, Hash(IDi || r))响应读写器的询问,其中r是标签产生的一个随机数,Hash(IDi || r)是第i个标签的ID与随机数r的Hash值。读写器收到响应后,在后台数据库中遍历所有标签ID和r的Hash值,如果找到匹配的则发送其ID“解锁”标签。
该方案虽然解决了标签定位隐私问题,但标签的秘密信息一旦被截获,侵犯者可以获得访问控制权并通过信息回溯得到标签历史记录,从而推断出标签持有者的隐私。
(3)Hash链方案[6]
该方案采用一种链状的Hash过程来加强安全。标签最初设置一个随机的初始化标识符S1,并包含两个不同的Hash函数G和H,当读写器请求标签时,标签返回当前标签标识符rk=G(Sk)给读写器,同时自动更新标识符Sk+1=H(Sk),读写器通过遍历获取匹配的值,完成验证。
该方案的主要优点是标签实现了自主ID更新,从而提供了前向安全性,但只能对标签身份进行认证,不能阻止重放攻击和假冒攻击。
3 基于Hash函数的双向认证协议
通过对RFID系统安全技术的分析,发现现有的RFID安全技术在不同程度上都存在着这样那样的缺陷。本文提出了一种基于Hash函数的双向认证协议。
在初始条件下,标签中包含一个伪随机数生成器和一个Hash函数,并保存有一个密钥ki;读写器中也有一个伪随机数生成器和一个相同的Hash函数;后台数据库中保存有每一个标签的密钥集合K。
具体认证过程如下:
(1)读写器生成一个随机数rr,发送给标签并向标签发出访问请求。
(2)标签收到请求后,生成另一随机数rt,并计算m=rtki,n=Hash(rt || rr),将m、n发回给读写器。
(3)读写器将m、n和rr发送给后台数据库。
(4)遍历后台数据库中每一个密钥k,计算r=km,判断Hash(r || rr)是否等于n。若找到某个密钥kj满足条件,则停止计算并将kj发给读写器;若全部遍历完后所有密钥都无法满足条件则认证失败。
(5)读写器收到后台数据库发来的密钥kj后,计算Hash(kj || rr || rt)并发给标签。
(6)标签计算Hash(ki || rr || rt)并与读写器发来的Hash值进行比较,若相同则完成认证。如图1所示。
4 性能分析
(1)标签资源是RFID系统的瓶颈,本协议中标签仅需要存储密钥ki、随机数rt和读写器发来的随机数rr,涉及的运算是两次Hash运算和一次异或运算,并生成随机数一次。总体来说对标签运算能力要求不高,适合实际应用。
图1 基于Hash函数的双向认证协议认证过程
(2)防非法读取:标签和读写器都需经过身份认证后才能交换数据,可有效防止非法读取。
(3)防窃听:认证过程中所有传递的有用信息均经过Hash函数加密或随机数异或处理,可有效防止窃听。
(4)防位置跟踪:每次产生的随机数都不相同,因此标签在每次通信中所传输的消息也都是不同的,可有效防止因固定输出而引发的位置跟踪问题。
(5)防伪装哄骗和重放:随机数在每次通信时都是不同的,攻击者即使记录下标签先前发出的信息,也无法模拟出下次标签发出的信息,可有效防止哄骗和重放攻击。
(6)前向安全性:两个随机数在每次通信中均不同,即使攻击者截取了某次标签的输出,也无法根据该值推算出以前标签的输出。
(7)双向身份认证:通过计算r=km并判断Hash(r || rr)是否等于n,读写器实现了对标签的身份认证;通过计算Hash(ki || rr || rt)并与Hash(kj || rr || rt)进行匹配,标签实现了对读写器的身份认证。
5 结 语
本文在分析了RFID系统面临的安全威胁和现有的安全方案后,针对一些典型安全方案的不足,提出了一种基于Hash函数的RFID双向认证协议。该协议应用成本较低,标签负载较小,实现了读写器和标签之间的双向身份认证,可以保证前向安全性,在一定程度上为RFID系统提供了更好的安全隐私保护。
参考文献
[1]刘云浩. 物联网导论[M]. 北京:科学出版社, 2011.
[2]游战清,刘克胜. 无线射频识别(RFID)与条码技术[M]. 北京:机械工业出版社,2006
[3]杨凡. RFID应用系统安全与隐私保护的研究[D]. 武汉:华中师范大学, 2011.
[4]钟伟. 智能RFID标签芯片及其安全认证系统的研究与实现[D]. 广州:中山大学, 2010.
[5]张伟,陶志荣. 基于Key值更新随机Hash锁的RFID隐私保护研究[J]. 计算机工程与应用, 2008,44(32):126-128.
[6]余恬恬,冯全源. 基于Hash函数的RFID挑战-应答认证协议[J]. 计算机工程, 2009,35(24):156-157.