基于MD5和DES算法的RFID标签签发和验证机制
2015-03-31胡冶李翔
胡冶 李翔
摘 要:RFID标签的签发和验证是RFID应用系统的关键环节和重要节点,是RFID应用系统安全的基础和保障。通过引入MD5签名算法和DES加密算法,有效提高了RFID标签的防伪、防篡改、防复制的能力,增强了RFID标签的安全性。
关键词:RFID;签发;验证;加密
中图分类号:TP316 文献标识码:B 文章编号:2095-1302(2015)03-00-02
0 引 言
RFID(Radio Frequency Identification,射频识别技术)是自动识别技术的一种,通过无线射频方式进行非接触双向数据通信,对目标加以识别并获取相关数据。它的主要核心部件是电子标签,通过相距几厘米到几米距离内读写器发射的无线电波,可以读取电子标签内储存的信息,识别电子标签代表的物品、人和器具的身份。射频识别技术具有很多突出的优点:RFID技术不需要人工干预、不需要直接接触、不需要光学可视即可完成信息输入和处理,可工作于各种恶劣环境,可识别高速运动物体并可同时识别多个标签,操作快捷方便,实现了无源和免接触操作,应用便利、无机械磨损、寿命长。目前RFID技术已在仓储、物流、交通、海关、追溯、金融等诸多领域得到了广泛应用,其安全特性的重要性不言而喻,它决定了各个RFID应用项目的成败。
RFID标签的签发是整个RFID应用链的起点和源点,是整个RFID应用的安全体系中最重要的核心环节之一,是后续安全要素的基础和前提。同样,RFID标签的验证也是RFID应用安全体系的核心环节和重要节点。本文通过引入MD5算法和DES算法,从技术上提高了RFID标签应用的安全特性,有效减低了RFID标签被伪造、篡改和攻击的风险。
1 MD5和DES算法
MD5(Message-Digest Algorithm 5[1],信息摘要算法5)用于确保信息传输完整一致,是计算机广泛使用的摘要算法之一。作为典型应用,MD5可对一段信息(Message)产生信息摘要(Message-Digest),以防止被篡改。MD5报文摘要算法将任意长度的信息作为输入值,并将其换算成一个 128 位长度的"指纹信息"或"报文摘要"值来代表这个输入值,并以换算后的值作为结果。
一般情况下,MD5算法是非常安全的。MD5算法的优势在于其使用不需要支付版权费用的,且已有各种计算机语言的算法实现。
DES(Data Encryption Standard)[2]是在1975年由IBM公司公开发表的。DES是对称加密算法体系中的代表,在计算机网络系统中广泛使用。在DES算法中,明文按64位进行分组,密钥长64位,密钥事实上是56位参与DES运算分组后的明文组和56位的密钥按位替代或交换的方法形成密文组的加密方法。
DES算法具有很高的安全性,到目前为止,除了用穷举搜索法对DES算法进行攻击外,还没有发现更有效的办法。
由于MD5算法存在一定的碰撞几率[3],为避免对RFID标签摘要信息的恶意攻击、复制和克隆,本文提出,在对RFID核心数据进行散列算法获得摘要信息后,用DES算法予以加密,从而避免对现有RFID标签数据的篡改、复制和克隆,以及非授权RFID标签的出现,提高了RFID标签的安全可靠性。
2 RFID标签的签发
RFID标签的签发,是指对对即将进入RFID应用领域的标签进行发行机构的数字签发,赋予其应用属性和特征,标明该标签的作用域、适用范围和发行机构,避免与其他标签或业务系统的混用、误用、非授权使用等,并尽量使其具备防伪造、防篡改和防攻击等能力的过程。通常,对RFID的标签需经过系统权限验证、读取预发行标签的基本特征数据并验证,对标签进行数字签名等若干步骤。在本文中,如图1所示,我们将整个签发过程分为:
①验证标签发行权限;②验证使用者权限;③读标签特征数据;④读标签TID;⑤对TID、系统预设的标签编号以及其他的标签特征数据进行MD5散列算法并进行DES加密;⑥将⑤的结果写入标签发行数据区。
图1 RFID标签签发流程
本发行签发模式的最大特点是将RFID标签固有的物理特征数据TID纳入了MD5数据摘要并进行了DES数据加密,结合后续的验证机制,可有效避免RFID标签被伪造、克隆或篡改,提高了RFID标签的安全防伪能力。
签发过程的部分核心源码实现如下:
Procedure issue
begin
...
tagValue=tagBasicValue+tagTid;
tagMD5Value:=MD5Encrypt(tagValue);
//MD5散列,得到信息摘要
tagDESValue:=DESEncrypt(tagMD5Value,Password);
//DES 加密
Res:=WriteLabelBlock(Handle_Scanner,
tagDESValue,USER,@mask,@AccessPassword);
//结果写入标签
...
end;
3 RFID标签的验证
RFID标签的验证是RFID应用系统对本其使用的RFID的标签的合法性进行确认的过程。本文提出的RFID标签的验证基本流程如图2所示。
RFID标签验证的基本流程包括:①验证RFID读权限;②读标签TID、标签编号及其他标签特征数据,读标签发行数据区数据;③DES解密标签散列数据、HASH(TID+标签编号+其他标签特征数据);④比较解密数据与HASH散列数据;⑤签名认证完毕。
结合RFID标签的签发流程不难看出,通过对标签固有的物理特征数据TID、标签编号和其他标签特征数据进行HASH散列,并将结果与解密后的发行签发数据进行比较,可有效验证RFID标签的合法性,降低了RFID标签被伪造和非法入侵的风险,提高了RFID应用系统的安全保障。
图2 RFID标签验证的基本流程
验证过程的部分核心源码实现如下:
Procedure Verification
begin
res:=ReadWordBlock(Handle_Scanner,USER,@IDTemp,@ nCounter);
if res=_OK then
begin
for j:=0 to nCounter do
begin
VerifyValues := VerifyValues +chr(IDTemp [j]);
End;
TidMD5Value:=DESDecode(VerifyValues, ,Password); //DES解密
end;
ReadLabelID(Handle_Scanner,Tid,Tid_len,@mask,@IDBuffer,@nCounter); //读
for j:=0 to nCounter do
begin
TidValues := TidValues +chr(IDBuffer [j]);
End;
If TidMD5Value = MD5Encrypt(TidValues) then
//比较MD5值
Begin
...
End;
end;
4 结 语
本文针对RFID标签的签发和验证提出了基于DES和HASH算法的链式结构,有效解决了RFID标签可能存在的可能被伪造、盗用或非法入侵的安全隐患,提升了RFID标签的安全和可用性。
在现有的诸多RFID应用体系框架中,还存在着很多安全隐患,亟待相关RFID从业人员从技术或管理角度予以解决,这也将是我们下一步的工作内容和研究方向。
参考文献
[1] Ronald L. Rivest. The MD5 Message-Digest Algorithm. Network Working Group Request for Comments: 1321[S].1992.
[2] NBS. Data Encryption Standard[S]. FIPS-Pub.46,1977.
[3] Tao Xie, Dengguo Feng. How To Find Weak Input Differences For MD5 Collision Attacks[EB/OL], http://eprint.iacr.org/2009/223.pdf, 2009.