基于视觉密码的RFID安全协议
2015-06-24李春艳
摘要:RFID系统中标签计算能力低、资源受限等对感知层安全带来很多威胁,因此设计一种高效、安全、计算简单的认证协议是保障物联网安全的重点。现有认证协议所采用的加密算法较复杂、运算量大。利用视觉密码无条件安全、解密简单的特性,构造一种新的RFID认证协议,可弥补传统认证协议的不足。使用视觉密码实现标签与读写器之间的认证,并在认证后更新标签中的影子图像,可有效抵御位置跟踪、窃听、重放、非法读取等攻击。该协议具有前向性安全、成本低、安全性好等特点。
关键词:物联网;RFID;视觉密码;安全协议
DOIDOI:10.11907/rjdk.151503
中图分类号:TP309.7
文献标识码:A 文章编号:16727800(2015)006017303
基金项目基金项目:
作者简介作者简介:李春艳(1981-),女,云南蒙自人,硕士,红河学院工学院讲师,研究方向为数字水印、物联网安全。
0 引言
射频识别技术(Radio Frequency Identification,RFID)是一种高效而实用的识别技术,它通过无线电波在读写器和标签之间传递信息,实现对物体的跟踪和识别。RFID系统主要由标签、读写器和后端数据库系统构成。标签可接收数据,也可将数据发送给读写器。读写器负责处理并捕捉标签的数据,并将数据传送给后端数据库系统。读写器在标签和后端系统中发挥中介作用。这种非接触性技术在带来便利的同时,也存在很多安全隐患,如物体的位置跟踪及标签信息泄露等。RFID安全保密问题日益备受关注,很多学者提出了安全认证协议,如基于密钥矩阵的RFID安全协议、Key值更新随机Hash锁对RFID安全隐私的加强、基于轻量级加密技术建立物联网感知层信息安全的解决方案等。这些算法在一定程度上可抵御攻击,有一定的安全性,但也存在同步问题及运算量大、对重放攻击不具有免疫性等缺陷。
视觉密码VCS(Visual Cryptography Scheme)是一种新型的密码技术,具有解密简单、计算量小、满足无条件安全等优势。它由Naor和Shamir在1994年的欧洲密码学会议上提出[1]。其基本思想是将秘密图像编码到n个影子图像(分享图像)中,并将影子图像分别赋给n个参与者,解密时只需k(k≤n)个参与者将影子图像叠加起来,就可通过视觉辨认出秘密信息[1-3]。文献[4]提出了一个基于布尔操作的(2, n)门限视觉密码方案,加密时将秘密图像分享为n个分享图像,解密时取任意两个分享图像进行异或运算即可恢复秘密图像。文献[5]分析了物联网架构中感知层存在的安全漏洞,提出了视觉密码的身份认证方案。该方案虽采用了视觉密码运算简单的特点,但其在认证过程中只实现了单向认证,即对标签的认证,而没有实现对读写器的认证。另外,由于认证过程中认证信息始终不变,所以方案不能抵御位置跟踪、重放等攻击。文献[6]利用视觉密码实现了双向身份认证,然而在认证过程中以明文传送,算法很难抵御假冒攻击,一旦被俘获算法也不能保证前向性安全。鉴于现有认证协议的缺陷,本文利用视觉密码构造一种新的RFID认证协议,使用视觉密码实现标签与读写器间的认证,并在认证后更新标签中的影子图像,弥补现有认证协议运算量大、安全性差的不足。
1 视觉密码
1.1 基本原理
(k,n)的视觉密码方案将一幅秘密图像P加密成n幅影子图像,解密时只需将k(k≤n)个影子图像重叠起来就能恢复秘密信息。加密基本原理是对秘密图像P中的每个像素进行n次处理,P中每个像素在影子图像中对应m个黑白子像素(m称为像素扩展度),对P中所有像素都作此处理后就得到n幅影子图像。若为P中每个像素的加密构建一个n*m的布尔矩阵A=(Aij)n*m,则Aij=0表示对于秘密图像中某一个像素,它在第i个分享者的第j个子像素的颜色为白色;Aij=1表示它在第i个分享者的第j个子像素的颜色为黑色。矩阵A的第i行为秘密图像p中一个像素在影子图像中对应的子像素。对A中第j列的所有元素作或运算,其值W(v)称为该像素块的汉明重量。
解密时将k个影子图像重叠,计算每个像素块的汉明重量,当W(v)≥d时,图像中该像素点为黑色;W(v) 1.2 二值图像的(2,2)视觉密码分解 以一幅黑白二值图像p分解为2幅影子图像为例来说明视觉密码方案的基本原理,分解时用公式(1)作加密矩阵(H0和H1分别表示秘密图像中白色像素和黑色像素的加密矩阵),像素扩展度m=2。具体步骤如下:(1)对于P中的每一个像素pxy进行扩展,扩展方法:若pxy为白色,则从集合H0中等概率挑出一个矩阵来对该像素加密;矩阵中的一行即为像素pxy在影子图像中对应的像素块。若pxy为黑色,则从集合H1中等概率挑出一个矩阵来对该像素进行加密。 (2)重复上述操作,直至P中所有像素都被加密为止。 解密步骤如下: ①选择参数d和a;叠加2个影子图像,计算叠加图像中每个像素块的汉明重量W(v); ②汉明重量W(v)≥d时,恢复图像中该像素点为黑色;W(v) ③重复上述过程即可得恢复图像。 2 基于视觉密码的RFID认证协议 2.1 预置信息 在基于视觉密码的RFID认证协议中,后台数据库为每个标签存储一条记录(ID、S1、Rr、Pointer),ID是标签的唯一标识符,Rr是系统生成的随机数,由Rr构造一幅黑白二值图像P;S1是对P作(2,2)视觉密码分解所得的影子图像。Pointer是数据记录关联指针,其作用是保证认证过程中的同步安全。标签中存储ID标识符和标签对应的另一个影子图像S2。读写器含有随机数发生器,并为每个标签存储一条记录(Hash(ID||R)、ID),Hash(ID||R)是标签ID与随机数的哈希值。后端系统和标签共用Hash()和Ard(),Hash()是哈希函数,Ard()为猫脸变换函数,用来对影子图像进行加密与恢复。
初始化时,为每个标签随机生成一幅二值图像P,使用视觉密码将P分解为影子图像S1和S2,将这些信息分别存入后台系统和标签中,如图1所示。
2.2 协议认证过程
(1)读写器向标签发送认证请求Query和随机数R后,更新读写器中记录的Hash(ID||R)值。
(2)标签计算Hash(ID||R),对影子图像S2加密,将信息Hash(ID||R)和EN(S2)发送给读写器。
(3)读写器以Hash(ID||R)为索引搜索表中的记录,若找到则将记录中的ID和EN(S2)转发给后端系统;否则,会话结束。
(4)后台以ID为索引搜索数据库。若找到,取出记录中的S1与解密后的S2作视觉密码运算得到恢复图像P`,系统检测P`中的信息与Rr是否一致,一致则对标签通过认证。后端系统随机生成新的随机数Rrnew和对应的二值图像Pnew,对Pnew作视觉密码分解得到新的影子图像S1new、S2new,生成随机数R,并计算Hash(ID||R),将Hash(ID||R)、R和EN(S2new)发送给读写器。读写器收到后转发给标签。若P`中检测的信息与Rr的信息不一致,则会话结束。
(5)数据库检查当前记录j中的Pointer值,若Pointer=0,则再添加一条新的记录k:(ID、S1new、Rrnew、j),并将记录j中的Pointer值改为k。若Pointer!=0,则找到第Pointer所指的记录,将其内容修改为(ID、S1new、Rrnew、j)。
(6)标签收到Hash(ID||R)、R和EN(S2new)后,标签计算Hash(ID||R),并与收到的Hash(ID||R)进行比对,比对成功则读写器认证通过,标签对EN(S2new)解密后更新影子图像S2,否则会话结束。标签与读写器间的认证过程如图2所示。
3 协议安全性分析
3.1 双向身份验证分析
标签与读写器间的双向身份验证是设计安全协议时需考虑的首要问题,本文只有合法的标签才拥有正确的影子图像S2,S2与其对应的S1重叠后恢复的信息才与Rr的信息吻合;若标签是伪造的,则其恢复的信息与Rr的信息不一致。所以利用S2可实现读写器对标签身份的认证。协议中S2以密文的方式传送,所以即便传送的信息泄露,攻击者也无法得到S2的任何信息。此外,当后端系统通过对标签的认证时,协议会生成新的影子图像S2new、计算标签ID与随机数R的哈希值,并将Hash(ID||R)、R和EN(S2new)发送给标签,标签通过Hash(ID||R)的计算比较,实现标签对阅读器的认证。最后,在整个协议过程中,ID不在读写器和标签间传输,所以攻击者无法获得正确的ID,除非标签从物理上被攻破。认证时标签要发送Hash(ID)、EN(S2),仅持有正确的Hash(ID)是毫无用处的。总体来讲,协议能够安全可靠地实现读写器与标签间的双向认证。
3.2 不可跟踪性分析
射频识别认证协议必须考虑的另一个问题是标签的位置跟踪。本协议含有反位置跟踪设计。每次认证获通过后,标签都会更新影子图像S2,且随机数R的值也在更新变化,所以标签对读写器的每次回答(Hash(ID||R)和EN(S2))是不同的,从而实现了标签的反跟踪。
3.3 前向性和同步性安全分析
假设某标签被攻击者攻破并获得密钥,攻击者将得到正在使用的影子图像S2。但由于每次验证通过后,系统都会随机产生二值图像P来更新标签中的影子图像S2,这些影子图像间无任何关联,所以即使当前S2被窃取,也无法从现有的值推算出之前的S2,不可获得标签的历史活动记录。
协议对标签的认证获通过后,数据库为更新的S2new建立新记录,同时保留旧的S2对应的记录。若S2new更新不成功,标签仍能使用旧的S2实现与读写器的身份验证,这样就防止了S2更新时可能出现的异常情况。
3.4 其它性能分析
标签中只存储标签ID和影子图像S2,一次认证过程需2次哈希运算和1次加密、解密运算,降低了标签的存储空间、运算复杂度。因此这在低成本的标签上较易实现。每次认证时后台数据库在2N(N为标签的个数)条记录中搜索,进行1次哈希运算,产生2个随机数,作一次视觉密码的加、解密运算,且视觉密码的加解密运算量较小,所以本方法延时短、速度快,效率高。
3.5 与其它协议性能比较
表1为本协议与文献[5]、[6]协议的比较。表中VCS为视觉密码加密或解密,H表示哈希运算,R表示产生随机数操作的次数,EN为对称加密算法,DE为对称解密算法。
4 结语
本协议通过对随机二值图像作视觉密码分解,把分解后的影子图像分别存储在标签和后台系统中,认证时对影子图像作视觉密码解密,然后用提取的恢复图像信息与Rr作比较,若信息一致,则标签的认证通过,否则会话结束。视觉密码的加密、解密过程简单,运算量小,标签端存储的数据少、运算量不大,复杂运算主要在运算能力和存储能力较强的后台数据库和读写器中进行。该算法具有成本低,延时短,安全性高等特点,在实现双向认证的基础上能有效抵御位置跟踪、窃听、非法读取等攻击。
参考文献:
[1]ANDREAS KLEIN,MARKUS WESSLER.Extended visual cryptography schemes[J]. Information and Computation,2007(205):716732.
[2]GIUSEPPE ATENIESE,CARLO BLUNDO,ALFREDO DE SANTIS, et al. Stinson, visual cryptography for general access structures[J]. Information and Computation,1996(2):86106.
[3]M NAOR, B PINKAS. Visual authentication and identification[J]. SpringerVerlag LNCS, 1997(1294):322336.
[4]WANG D S, ZHANG L, MA N, et al. Two secret sharing schemes based on Boolean operations[J]. Pattern Recognition, 2007(40):27762785.
[5]杜轶焜,严承华,冯剑川.基于视觉密码的物联网身份认证技术研究[J].技术研究,2012(1):2628.
[6]樊攀星,严承华,程晋.视觉密码在交互式身份认证中的应用研究[J].技术研究,2013(8):3132.
[7]宋海龙,张书真.一种基于视觉密码的访问控制方案[J].电脑知识与技术,2012(6):12441246.
责任编辑(责任编辑:陈福时)