1 无线射频识别技术简介
无线射频识别技术(radio frequency identification,RFID)或称电子标签技术是从二十世纪六七十年代兴起的一项非接触式自动识别技术。它利用射频方式进行非接触双向通信,以达到自动识别目标对象并获取相关数据的目的,具有精度高、适应环境能力强、抗干扰性强、操作快捷等许多优点。最基本的RFID 系统主要由下面3部分组成:
(1)标签(tag):又称电子标签、智能卡、识别卡或标识卡,由嵌入式微处理器及其软件、卡内发射与接收天线、收发电路组成。标签为信息载体,含有内置天线,用于和射频天线问进行通信。
(2)阅读器(reader):读取/写入标签信息的设备。
(3)后台数据库(backend):用于存储标签标识所对应的相关数据。
一般情况下,阅读器和后台数据库之间的通信可以认为是安全可靠的,本文将二者等同看待。
2 RFID面临的安全问题
无线射频识别技术的应用虽然十分广泛,但其存在一个不可忽视的隐患——安全机制。没有可靠的安全机制,就无法有效保护RFID标签中的数据信息。目前,RFID的安全性已经成为制约RFID广泛应用的重要因素。针对RFID的主要安全攻击可简单地分为主动攻击和被动攻击2种类型。主动攻击主要包括: (1)从获得的RFID标签实体,通过逆向工程手段,进行目标RFID 标签重构的复杂攻击;(2)通过软件,利用微处理器的通用通信接13,通过扫描RFID标签和响应阅读器的探询,寻求安全协议、加密算法以及它们实现的弱点,进而删除RFID标签内容或篡改可重写RFID标签内容的攻击;(3)通过干扰广播、阻塞信道或其他手段,产生异常的应用环境,使合法处理器产生故障,拒绝服务的攻击等。
被动攻击主要包括:通过采用窃听或非法扫描等技术,获得RFID标签和识读器之间或其他RFID通信设备之间的通信数据,跟踪货品流通动态等。
攻击者通过对RFID系统中的标签、标签中存储的数据以及标签与阅读器之间的通信实施主动攻击或被动攻击,将使RFID系统面临非常巨大的安全风险。
RFID 系统中最主要的安全风险是“数据保密性”。显然,没有安全机制的RFID标签会向邻近的识读器泄漏标签内容和一些敏感信息。由于缺乏支持点对点加密和 PKI密钥交换的功能,在RFID系统应用过程中,攻击者有许多机会可以获取RFID标签上的数据。RFID系统中的另一个安全风险是“位置保密性”。如同个人携带物品的商标可能泄漏个人身份一样,个人携带物品的RFID标签也可能会泄漏个人身份,通过识读器就能跟踪携带系列不安全RFID标签的个人。此外,攻击者还可以利用伪造标签代替实际物品来欺骗货主,使其误认为物品还在货架上。攻击者也可能通过篡改RFID标签上的数据,用低价物品标签替换高价物品标签,以此来获取非法利益。
3 基于Hash函数的安全通信协议
为了解决RFID系统的安全问题,最大限度地降低其面临的安全风险,必须为RFID系统构造一个可靠的安全机制,用于tag与reader间的相互认证和传输数据。所有的安全机制都需要建立在一个加密算法的基础之上。但由于RFID标签的使用数量大、范围广,必须将其造价控制在比较低廉的水平,这使得RFID标签通常只能拥有大约5 000个“10 000个逻辑门,而且这些逻辑门主要用于实现一些最基本的标签功能,仅剩少许可用于实现安全功能。但实现AES(advanced encryption standard)算法需要大约20 000个”30 000个逻辑 门,实现RSA、椭圆曲线密码等公钥密码算法则需要更多的逻辑门。因此,大多数RFID标签根本无法提供足够的资源来实现一些比较成熟和先进的加密算法,而只能采用一些 “PIN码”或“password”机制来保护秘密数据。
按照目前已有的技术和芯片制造水平,在tag标签芯片中实现SHA-1等成熟Hash算法大约需要3 000个“4 000个逻辑门,因此,本文提出了基于Hash函数的安全通信协议,用于保证tag和reader之间数据传输的安全性,同时防止在传输时泄漏tag所携带的个人信息和位置信息。
3.1 协议中的Hash函数
在本协议中需要用到2个Hash函数:H和G,这2个Hash函数的实现是可以公开的,无须保密。而且,H和G理论上可以是同一算法,但是考虑到H仅用于计算一个标签标识串的Hash值,可以采用比较简单的算法,而G要用于计算tag和backend间互相鉴别和传输会话密钥时的Hash值,因此,应该采用安全强度较大的Hash算法。显然,作为Hash函数,H和G均应满足:
(1)对于任意长度的消息M,H和G返回固定长度m的函数值h=H(M)或G(M);
(2)给定M很容易计算出h,甚至在RFID芯片上计算资源有限的条件下也是如此;
(3)给定h,很难还原出M,即使知道H和G的算法也是如此;
(4)对于特定的M,很难找到另一个M’,使得H(M)=H(M’),即使知道H和G的算法也是如此。
3.2 协议的初始化
协议要求在使用前对backend的数据库和系统所使用的tag进行初始化操作。
(1)tag端:tag中被写入初始值由3部分构成:1)私密信息S0,如EPC条码等可供识别tag的标识;2)计数器初值C0;3)会话密钥R0。
(2)backend端:其数据库中保存有一张所有tag的表单,表单记录有每个tag所对应的S0、会话密钥R0、S0的当前值Si(等于S0)和backend端计数器值(等于CibC0)。
3.3 协议的算法步骤
(1)backend向tag发送R/W请求。
(5)对通信内容的保护。因为协议首先对tag和backend进行了相互认证,通过认证的双方在协议的第(4)步进行了会话密钥的传递,而且此密钥将用于本次会话时的数据传输加密,所以攻击者即使能够窃听到tag和reader之间的通信数据,也无法获取其真实内容。
5 结束语
目前已有不少关于RFID系统的安全问题的协议和方案公开发表,但是其中的绝大多数只是针对安全问题的某些方面,并没有一个成熟的完整解决方案。而另一方面,受到被动式标签芯片性能和运算能力的限制,一些比较成熟和先进的加密算法如AES、RSA、椭圆曲线密码等近期内还无法运用到RFID标签的加密中。
本文提出的RFID安全通信协议基于传统的challenge—response框架,其采用的Hash函数对标签芯片的计算能力要求较低,比较适用于目前的实际情况和成本控制目标。同时,该协议的框架具有向后兼容公钥密码体制的特性,当今后标签芯片性能可以支持某些公钥密码算法时,可以方便地将Hash函数部分改为公钥密码算法,而对于协议的执行步骤,只须做少许改动即可。
责任编辑:gt
全部0条评论
快来发表一下你的评论吧 !