随着物联网技术的高速发展与应用,射频识别(Radio Frequency Identification,RFID)标签的使用越来越普遍.比如仓存管理[1]、物流跟踪[2]、门禁控制、图书管理[3-4]、生产线自动化管理等.RFID标签的广泛使用给人们带来了很大的便利,但是RFID标签在使用的过程中也存在着一些问题.由于RFID标签主要由金属材质所制,使得RFID标签在某些特定的环境下其存储的数据可能会被损坏,比如金属环境、恶劣电磁环境、高温环境、强辐射环境等.RFID标签数据遭到损坏后,缺乏快速而高效的数据完整性校验与恢复的方法.另外,也有可能人为恶意伪造标签信息.
为了克服RFID标签在使用过程中可能出现的这些问题,本文设计了一个安全可靠、成本低、基于云存储的RFID标签数据管理系统,并提出了一种基于Hash函数的RFID标签数据完整性维护的方法.
1 云存储云存储是指通过互联网将大量各种不同类型的存储设备整合在一起协同工作,为用户提供数据在线存储服务.信息爆炸的大数据时代的到来为云存储带来了无限的发展动力.国内外许多知名IT公司(如Google、Amazon、Dropbox、阿里云、又拍云)都成为了云存储服务提供商(Cloud Storage Providers,CSP)中的一些佼佼者.云存储可分为3类:公共云存储、私有云存储、混合云存储.
云存储具有可靠性强、通用性强、易扩展、海量存储、成本低等特征,而且云存储能让用户在任何时间、任何地点,通过网络设备链接到云端存取数据.正是由于云存储数据存取的随时性、随地性以及可靠性,本文选择使用云存储系统来存储RFID标签数据.云存储数据能保证在检测到RFID标签数据受损的时候,可以随时随地通过3G/4G/WIFI网络从云端读取RFID标签的数据对其进行恢复.另外,在云存储系统中,数据往往都有多个备份, 如基于Hadoop实现的云存储系统,这使得存储在云存储系统中的RFID标签数据不易丢失,即云存储的可靠性高.云存储的高扩展性和数据接口的易用性,使得用户可根据自己业务的需求向CSP购买一定大小的空间来存储数据或部署应用.
本文应用云存储技术,将RFID标签数据存储到云端实现对标签数据的多个备份,并且可随时从云端读取RFID标签数据来对受损的标签进行数据恢复.
2 RFID标签管理系统RFID标签管理系统可以对RFID标签进行统一管理,实现标签管理信息化.系统架构如图 1所示,标签信息存储到云存储系统进行备份和供实时查询.阅读器可通过3G/4G以及WIFI等网络实时从云存储系统读取RFID标签信息生成校验码来验证标签信息完整性.因为标签信息数据量比较小,在正常网络下,读取一个标签信息的网络延迟能控制在毫秒级.
|
图 1 RFID标签管理系统架构图 Figure 1 Diagram of the RFID management system |
系统功能主要包括3大部分:RFID标签采购入库、RFID标签发行和RFID标签数据完整性维护.
2.1 RFID简介射频识别(Radio Frequency Identification,RFID)技术是物联网的关键技术之一[5].它是一种非接触式的自动识别技术,通过射频信号自动识别目标物体并获取相关数据信息.RFID标签可用于物流管理[6]与数据交换[7],具有其他标签技术所不能比拟的高可靠性、安全性、易操作、信息量大、精准等优点[8].RFID的技术标准主要由ISO和IEC制定,主要的射频技术标准有ISO/IEC 14443、ISO/IEC 24753、ISO/IEC 15693等.RFID标签主要由3部分组成:
(1) 标签(Tag), 由耦合元件及芯片组成,每个标签都具有唯一的编码.据RFID标签能量来源,标签可分为被动式、半被动式、主动式3类,表 1为标签分类及其特点.
| 表 1 标签分类及特点 Table 1 Classification and features of RFID tag |
(2) 阅读器(Reader):用于读取、写入标签信息的设备.
(3) 天线(Antenna):用于在标签与阅读器间传递射频信号.
2.2 RFID标签采购入库与发行新的RFID标签采购后需要对标签进行入库以对标签进行信息管理, 为标签的发行使用做准备.入库的信息主要包括标签的ID、入库时间、入库操作人员等信息.
RFID标签发行环节主要涉及到RFID标签的初始化、写入产品信息、标签校验码的生成、将标签信息存储到云存储系统以进行备份.RFID标签发行流程如图 2所示.
|
图 2 RFID标签发行流程图 Figure 2 Flow chart of RFID tag issuing |
虽然RFID标签具有抗腐蚀性、抗干扰、耐磨等特点,但是在某些极其恶劣的环境下,标签的数据就可能遭到破坏.另外,也有可能人为伪造标签或恶意篡改标签信息.这时,对RFID标签数据进行完整性校验显得尤为重要.对数据完整性检验的方法主要有消息验证码(Message Authentication Code,MAC)、数字签名(Digital Signature)、数字水印[9](Digital Watermarking)、CRC(Cyclic Redundancy Codes)、信息摘要算法[10](Message Digest Algorithm,MD5)等技术.
MAC是物联网网络安全中广泛应用的一种防止数据伪造和数据完整性保护技术[11-12],根据被保护的数据经加密等方式计算得到的值.MAC长度受数据量的影响变化较大.文献[11]提出一种由数据通过哈希加密函数产生MAC, 然后将MAC与数据一起进行传输.Yang等[12]提出了携带多重MAC的方法,防止被攻破的节点伪造数据包.虽然MAC能在一定程度上解决某些物联网应用中的数据完整性问题,但是MAC的复杂密钥算法增加了数据完整性校验的复杂度,而且MAC的长度会随着数据量的增减而变化,冗长的MAC需要额外通信开销,MAC这些缺陷使得其不太适用于RFID标签数据完整性校验.
另外,应用在RFID数据完整性校验比较多的还有CRC、数字水印技术.文献[13]设计了一种并行数据输入的循环冗余校验码算法,提高了CRC的性能.文献[9]提出了基于数字水印的数据完整性保护方案,但是其生成数字水印算法太过复杂.
由于CRC不适合检测2位或2位以上的错误;MD5算法较复杂、速度慢、对CPU要求高,不适合物联网应用中的RFID标签数据完整性验证.本文根据RFID标签信息字段的特点而设计了一个基于Hash函数的校验码生成算法,生成固定长度且唯一的数据校验码.
3.1 RFID标签的数据组成数据完整性校验是网络数据传输中一种检测数据完整性最常用的手段.根据RFID标签数据的内容,通过高效的哈希函数设计出一个数据校验码生成算法.表 2为标识某一类产品的RFID标签所存储的数据信息,其中D1、D2和D3是由标签所要标识的产品的数据字段,不同的产品中D1、D2、…Dk字段不一定相同.完整性校验码(Integrity Check Code, ICC)则是由校验码生成器根据RFID标签的ID和产品的数据字段生成的校验码,ICC的长度由标签ID和产品信息字段数之和确定.校验码生成器实质上就是内嵌在阅读器中的一个校验码生成算法.
| 表 2 RFID标签存储内容信息数据 Table 2 Information stored in RFID tags |
标签ID和产品信息Di一般是由数字、字母或二者组合而成,记为:D = {D0,D1,D2,…,Dk},RFID标签的数据完整性校验算法具体实现如下:
输入:RFID标签数据D;
输出:RFID标签数据的完整性校验码ICC.
具体步骤如下:
(1) 用哈希函数H1(Di,n)求每个字段Di对应的哈希值H1(i),其中i={x∈Z|0≤x≤k},n={1,2,3,4},n是根据Di的长度而选定的,一般以分段后各段字符的长度为4或5时n的值为最优.函数H1(Di,n)描述如下:
① 将字段Di分成n段,每段由[length(Di)/n]位数组成.注:[length(Di)/n]表示不小于length(Di)/n的最小整数,当最后一段数不足[length(Di)/n]位,在其后面用0将其补全为[length(Di)/n]位.
② 将每段数据中出现的字母替换成字母在字母表中出现的序号:1-26.
③ 分别将每段中的[length(Di)/n]个数字相加,对相加后的和求100的余数Yj,j = {x∈Z| 1≤x≤n}.
④ 将n段的余数相加,然后将相加的和求36的余数Yi:
(2) 构建哈希表.根据步骤1中k+1个字段Di由H1(Di,n)求得的哈希值h1(i)进行哈希造表,哈希表长度:L=k+1.采用哈希函数H2(i):H2(i)=h1(i) MOD L,所得的哈希值h2(i)即为h1(i)在哈希表htable中的哈希地址.
其中H2(i)使用线性探测再散列[14]的方法处理冲突,H2(i)=(H2(i)+di)MOD L,i=1, 2,…,k(k≤L- 1).因为哈希表的长度比较短,利用线性探测再散列总能快速地找到一个不发生冲突的地址.而其他的一些方法,比如二次探测再散列只有在哈希表长L为形如4j + 3(j为整数)的素数时才能解决冲突,而随机探测再散列还要额外引进伪随机数序列从而增加了算法复杂度.所以,选择使用线性探测再散列的方法来处理冲突效果会更好.
(3) 将步骤1中各字段的哈希值h1(i)根据其在哈希表htable中的哈希地址组合起来,即为所要求得的RFID标签数据的完整性校验码ICC,返回ICC.
图 3为数据完整性校验算法对RFID标签中某产品唯一标识号Di:ABC090931DH090024512计算得到其组成校验码的某个字段的流程,其中假设L=4.
|
图 3 数据完整性校验算法示例图 Figure 3 An example of data integrity check algorithm |
RFID标签数据完整性维护是指在标签的使用过程中对RFID标签中的数据进行完整性验证,若RFID标签数据受到损坏,则通过网络即时从云端读取该标签的数据对其进行恢复,这种标签数据完整性维护的机制是该RFID标签管理系统的一个应用创新点.图 4所示为RFID标签数据完整性维护流程.
|
图 4 RFID标签数据完整性维护流程图 Figure 4 Flow chart of maintaining the data integrity of RFID tags |
由阅读器扫描RFID标签读取标签的信息,检查该RFID标签的ICC字段中是否含有校验码.
(1) 当检测发现RFID标签信息中未含完整性校验码时,则根据RFID标签的ID到云存储系统查询该标签的数据信息,并对RFID中的数据用数据完整性校验算法来生成完整性校验码ICC1.若ICC1与从云存储系统查询到的ICC不相同,则意味着标签数据已受损,需要从云端读取该RFID标签数据对其进行恢复;若ICC1与从云存储系统查询到的ICC相同, 则只需驱动阅读器对该RFID标签的ICC进行写入校验码操作.
(2) 当检测发现RFID标签信息中含完整性校验码时,则由阅读器中的校验码生成器根据RFID标签数据字段自动生成完整性校验码ICC1.当对比ICC1与标签中所含的ICC一致时,则表示RFID标签数据完好无损;当对比ICC1与标签中所含的ICC不一致时,则意味着标签的内容已被损坏,这时根据RFID标签的ID到云存储系统查询该标签的数据信息.当查询到RFID标签的内容信息后,则驱动阅读器对标签的数据进行恢复.当未查询到该标签的内容信息时,则有两个可能:①该标签的ID被损坏;②该标签的信息未采集备份.
5 实验结果及分析为验证数据校验方法的有效性及效率,本文采用的RFID读写器为深圳市玖锐技术有限公司生产的WG26超高频读写器,RFID标签采用UHF超高频Alien电子标签JR9204/ALN-9640,读写程序采用VC6.0编写,核心数据验证算法分别采用CRC-5、CRC-16、MD5算法及本文改进的基于Hash函数的算法,标签写入的数据大小为2048 Bit,针对每个算法的校验准确率和校验时间在不同标签读写距离范围内进行对比.测试数据通过应用程序先存储在文本文件中,然后提取采用Matlab6.5进行分析,结果如表 3所示.
| 表 3 各算法校验准确率/校验时间测试结果 Table 3 Veracity of different algorithms and time coste to test |
从表 3可以看出,本算法的校验准确率和校验时间相比其他算法都有一定优势,随着校验距离的增加,CRC-16算法准确率大幅度下降,MD5算法由于运算复杂,耗时较多,在距离增加时,校验准确率和时间都下降比较迅速,本算法受的影响较小,但在距离增加时,校验时间会有明显增加.
6 结论本文设计了一个基于云存储的RFID标签管理系统,并提出了基于Hash函数的校验码生成算法来验证数据的完整性.
(1) RFID标签管理系统使用云存储来存储标签信息,云存储系统中数据的多副本性和数据存储访问的安全机制提高了管理系统的安全性,并且可随时随地访问云存储系统中的数据对受损标签进行数据验证恢复.另外,客户可以根据自己的需求向CSP弹性购买存储空间,相比传统的关系数据库成本更低.
(2) RFID标签管理系统支持对RFID标签信息的完整性进行校验和恢复.本文针对RFID标签数据信息的特征而提出了基于Hash函数的校验码生成算法,可对使用中的RFID标签数据进行校验,在标签数据受损的情况下,可以即时通过网络从云存储系统中查询受损标签的信息对其进行恢复.
| [1] |
Seungjin Whang. Timing of RFID adoption in a supply chain[J].
Managemnet Science, 2010, 56(2): 343-355.
DOI: 10.1287/mnsc.1090.1121. |
| [2] |
Yang Y D, Chen X F, Li D. Research on RFID application on small packages express[J].
Logistics Sci-Tech, 2009, 33(5): 22-26.
|
| [3] |
刘绍荣, 杜也力, 张丽娟. RFID在图书馆使用现状分析[J].
大学图书馆学报, 2011, 29(1): 83-86.
Liu S R, Du Y L, Zhang L J. The analysis of the implementation of RFID technology in library[J]. Journal of Academic Libraries, 2011, 29(1): 83-86. |
| [4] |
Molnar D, Wagner D. Privacy and security in library RFID: Issues, practices, andarchitectures[C]//Proceedings of the 11th ACM Conference on Computer and Communications Security. Washington DC: [s. n. ], 2004. 210-219.
|
| [5] |
王宝云. 物联网技术研究综述[J].
电子测量与仪器学报, 2009, 23(12): 3-4.
Wang B Y. Review on internet of things[J]. Journal of Electronic Measurement and Instrument, 2009, 23(12): 3-4. |
| [6] |
周永彬, 冯登国. RFID安全协议的设计与分析[J].
计算机学报, 2006, 29(4): 582-583.
Zhou Y B, Feng D G. Design and analysis of cryptographic protocols for RFID[J]. Chinese Journal of Computers, 2006, 29(4): 582-583. |
| [7] |
Robert O, Thomas F, Bernard C, et al. Shape distributions[J].
ACM Transactions on Graphics, 2002, 21(4): 807-832.
DOI: 10.1145/571647.571648. |
| [8] |
Xiao Y J, Werghi N, Siebert P. A Topological approach for segmenting human Body shape[C], 2003, 8: 82-87.
|
| [9] |
曹远福, 孙星明, 王保卫, 等. 基于关联数字水印的无线传感器网络数据完整性保护[J].
计算机研究与发展, 2009, 46(z1): 71-77.
Cao Y F, Sun X M, Wang B W, et al. Association watermarking-based data integrity protection in WSN[J]. Journal of Computer Research and Developmnet, 2009, 46(z1): 71-77. |
| [10] |
张裔智, 赵毅, 汤小斌. MD5算法研究[J].
计算机科学, 2008, 35(7): 295-297.
Zhang Y Z, Zhao Y, Tang X B. MD5 Algorithm[J]. Computer science, 2008, 35(7): 295-297. |
| [11] |
Perrig A, Szewczyk R, Tygar J D, et al. SPINS:security protocols for sensor networks[J].
Wireless Networks, 2002, 8(5): 521-534.
DOI: 10.1023/A:1016598314198. |
| [12] |
Yang H, Ye F, Yuan Y, et al. Toward resilient security in wireless sensor networks[C]// Proceedings of the 6th ACM International Symposium on Mobile ad Hoc networking and Computing. New York: [s. n. ], 2005: 25-27.
|
| [13] |
尹震宇, 赵海, 孙佩刚, 等. 一种并行数据输入的循环冗余校验码算法设计[J].
计算机工程与应用, 2006, 42(27): 1-5.
Yin Z Y, Zhao H, Sun P G, et al. The design of cyclical redundancy check arithmetic based on parallel data input[J]. Computer Engineering and Applications, 2006, 42(27): 1-5. DOI: 10.3321/j.issn:1002-8331.2006.27.001. |
| [14] |
Cleary J G. Compact hash tables using bidirectional linear probing. computers[J].
IEEE Transactions, 2006(C-33): 828-834.
|
2014, Vol. 31