自从1946年人类发明计算机以后,数字技术的迅猛发展使人们逐渐脱离了原子的束缚,人们得以使用比特流进行创造财富。在这个数字时代,比特超越了原子,成为世界的主角。今天,物联网技术和发展,原子又实现了与比特的紧密连接,成为了一个用比特武装起来的原子。
在物联网中,RFID技术是最关键也是最基础的技术。目前,国际RFID编码体系存在3个标准体系:ISO标准体系,EPCglobal标准体系和UID标准体系。
一、Rpcglobal与ONS
目前应用最广泛的是EPCGlobal标准体系。EPCglobal是由UCC和EAN联合发起并成立的非盈利性机构。EPC系统最终目标是为每一单品建立全球的、开放的标识标准。,它由全球产品电子代码( EPC)的编码体系(EPC代码)、射频识别系统(EPC标签,读写器)及信息网络系统(EPC中间件,ONS,EPCIS)3部分6个方面组成。
EPCglobal作为一个开放的全球性网络,要具有能够追踪物品的功能。因为EPC标签的容量相对较小,只能存储EPC编码,而与商品相关的其他详细信息只能存储在服务器上。因此除了将EPC代码存储在标签中外,还要能将EPC编码与对应商品信息进行匹配的方法,这就需要对象名解析服务(ONS)实现。ONS用来为Savant系统定位某EPC对应的存储本产品信息的服务器。从结构与流程上来讲,ONS与互联网的DNS系统类似。ONS服务器是ONS系统的核心,用于响应本地软件的ONS查询,查询成功,则返回此EPC码对应的URI如图1所示。
二、一种安全的RFID标签信息传输方法
RFID技术的信息安全是RFID系统得到广泛应用的前提,也是基于RFID技术的物联网的发展根本。为了保证电子标签的密钥传输、分发及读写器和RFID标签之间通信的安全,必须采用加密技术,目前RFID系统中常用的加密算法有DES(对称加密)、RSA(非对称加密)等,但由于受到标签内芯片尺寸的限制,电子标签的计算能力还不强,这就导致了在电子标签中实现RSA加密算法时加密解密速度慢、密钥生成速度慢等缺点,因此在大部分的对系统安全性要求不太高的RFID应用系统中一般采用DES加密算法。
本文提出了一种基于变种DES的RFID标签加密信息传输的方法,在RFID标签和读写器的通信过程中,经过三重相互认证体制(ISO/IEC DIS9798-2)确认标签与读写器匹配后,利用一种变种DES加密的方法,对传输过程中的明文进行加密,以保证数据的传输安全。即使数据被窃取,由于攻击者不知道密钥和加密规则,这些数据对攻击者也毫无用处。
1、三重相互认证体制
三重相互认证方法可以保证相互通信的RFID标签和读写器是可信的,过程如下:
①际签进入读写器的范围后,读写器发出查询ID和口令;
②f示签中产生随机数A1,发送给读写器;
③读写器接收到A1卮产生随机数B1,并使用相同的密钥k和相同的密钥生成算法Ek,产生一个加密过的的数据令牌1,令牌中包括随机数A1,B1和附加的控制数据(CD),并发送给RFID标签:Tokenl=Ek( A1,B1,CD,明文1);
④RFID标签收到标签后,进行解密,从中取得刚才发送的随机数A1*,并与自身生成的A1进行比较,如果一致说明读写器与自身RFID标签是一致的,属于同一系统。然后产生另一个随机数A2,使用相同的密钥K和相同的密钥算法生成加密过的数据令牌2,发送给读写器:Tok en2=E k(A2,B1,明文2);
⑤读写器收到令牌2后,使用与RFID相同的方法进行身份识别。检查接收到的B1*与刚才发送的B1,确认一致后,说明读写器与标签间的共同密钥K是相同的,所以,RFID标签与读写器是共同的系统可以开始进一步的通信,如图2所示。
这种三重相互认证的优势在于:
①共同的密钥K不经空间传输,而只传输产生的随机数;
②认证传输的数据由两个随机数加密,密钥在通信中随机变化,可以保护传输的数据;
③可以使用任意的自定义算法来进行令牌加密,保证安全性;
④从产生的随机数可以算出随机的密钥(会话密钥),以便加密保护后继传输的数据。
三重相互认证的目的在于确认通信双方的互信,保证数据的传输不会被伪造的一方进行接收,下面的方法是用来保证可信双方数据传输过程中即使被第三方窃取,也很难得到有效的数据。
在以上认证过程中,Ek()为加密函数,目前来说最适合用于RFID标签电路中的就是DES算法,相对其他加密方法,比如RSA来说,DES加密方法的加解密速度快,安全性较好。
2、基于变种DES的数据加密方法
在读写器与RFID标签之间经过相互确认过,就可以进行数据的传输了,为了保证数据即使被窃取,也只是加密过的数据,不会造成信息的泄露。必须在数据传输前进行匹配强度的加密一在本文中,针对DES这种对称加密方法的缺点,采用了变种DES的加密方法,提出了一个有效的规则,来提高加密的安全性,流程如下:
已有:EPC数据data,约定好的对称密钥Mkey,接收端也保存相同的一份密钥,这些要由密钥管理机制来保证密钥的安全。
发送端(RFID TAG):
①利用随机函数,产生一个64位(8字节)的随机密钥( Rkey),对Rkey利用Mkey进行DES加密。产生密文DATAI;
②利用随机密钥Rkey,对数据data按自义加密规则进行加密。产生DATA2;
③拼装DATAI和DATA2产生等传输密文DATA。
接收端(RFID Reader):
①将接收到的密文DATA按规则拆分为两个部分,DATA1和DATA2;
②在数据库中查询此标签存储的密钥MKey,并利用MKey对DATA1进行DES解密,得到发送端产生的随机密钥,也就是解密密文所需的密钥Rkey;
③利用Rkey对DATA2进行按自义加密规则解密,得到明文data。
在接收端中,DES的解密算法与加密算法共用相同的算法过程,两者不同之处仅在于解密时子密钥M key的使用顺序与加密时相反。如果加密的子密钥为K1,K2,...,K16,那么解密时子密钥的使用顺序应该为K16,K15,…,K1,即:使用DES解密算法进行解密时,将以64位密文作为输入,第一轮迭代运算使用子密钥K16,第二轮迭代运算使用子密钥K15…,第十六轮迭代运算使用子密钥K1,其他的运算过程与加密算法相同,这样,最后输出的便是64位明文。
3、利用iPhone平台实现的模拟情况
本文利用智能手机iPhone 3GS与Windows系统电脑作为实验平台,来模拟RFID标签与读写器的工作流程。其中,iPhone3GS模拟RFID标签,作为客户端,程序使用Objective-C与C/C++混合编写;利用Windows平台模拟读写器,作为服务器端,程序使用C#语言编写,实现了上述认证过程的模拟,其中的RFID客户端的关键代码如下:
(1)生成随机密钥(Rkey),并进行DES加密,其中encrypt()函数是标准的DES加密过程,代码略过。
//生成随机key( Rkey)
unsigned char Rkey[8]={0};
for( intj=0;j<8;j++)
{
srand( time( nil));
int ranNum= random()%8+ 1;
Rkey[j]=ranNum;
}
//对随机key进行加密,encrptK ey为加密过的DA-ta1
NSData*DATAI=encrypt( Mkey, Rkey, 8);
(2)利用Rkey对明文data进行加密,生成DATA2
//用Rkey对数据进行加密
int length= len;
unsigned char*byt edata=(unsigned char*)malloc (lengLh);
memset ( bytedata, O, lengt h) ;
unsigned char* copydata = ( unsigned char* ) malloc (length);
memset ( copydata, 0, lengt h) ;
memcpy(copydata, data, length);
for (int n = 0; ri < length; )
{
for(inti= O; i< 8; i+ + , n+ +) { if (n > length)
{
break;
}
*( bytedata + n) = ( unsigned char)((int) *
( copydata+n)“(int) Rkey[i]);
}
}
NSData*DATA2= [[NSData alloc]initWith Byt es: byt edata length:length;
(3)将DATA1与DATA2组合成DATA,并做为结果返回。
NSM utableData术DATA=[NSM ut ableData dataW-ithData: DATA l];
[ DATA appendData: DATA 2];
(4)解密过程与加密过程类似,在Windows端使用C#编写。
至此,此加密解密过程结束,这个过程虽然简单,但却可以进行自定义的扩展,对EPC编码的不同长度也可以很好地适应,利用不同的规则,对数据进行不同形式的拼装或拆分。而如果密文传输过程被截获,黑客因为不清楚特殊的规则,也很难进行破解。这样,就实现了通过简单的密文拼装规则改变,达到一个有相当强度的加密方法,有较高的性价比。
再者,DES加密本身具有一定的安全性,因此只要做好密钥管理分配,并对密文拼装自义加密规则进行较好的规划,就可以达到效果。这样的加密策略,不失为一种简单,可行的方案。
小知识之物联网
物联网是新一代信息技术的重要组成部分,其英文名称是:“The Internet of things”。顾名思义,物联网就是物物相连的互联网。这有两层意思:其一,物联网的核心和基础仍然是互联网,是在互联网基础上的延伸和扩展的网络;其二,其用户端延伸和扩展到了任何物品与物品之间,进行信息交换和通信。