适用于供应链的RFID读写器-标签双向认证协议
文章出处:http://www.nexussmartsolutions.com 作者:蔡韶颖 赵一鸣 人气: 发表时间:2011年10月15日
0 引 言
RFID技术是一种非接触自动识别技术,它利用射频信号的空间藕合(交变磁场或电磁场)实现无接触信息传递并通过所传递的信息达到识别一个对象的目的,在供应链管理、访问控制、动物追踪等领域中已经得到广泛的应用。
在供应链管理中引入RFID系统,能够提高供应链的可视性,改善供应链的操作效率,为整个供应链提供高效的实时的信息,有效地预防偷盗、遗失和假冒的发生。供应链中安全的标签和读写器间交互协议应该满足以下要求:只有合法的读写器才能从标签发送的信息中获取其所属物品的相关信息,只有合法的标签才能被读写器有效地识别,攻击者不能跟踪标签。
文献[1]提出了HashLock协议,使用匿名ID来保护标签的内容,但是由于匿名ID是静态的,因此标签不能抵抗跟踪攻击。文献[2]使用Hash链来更新标签的秘密,然而该协议不能抵抗重传攻击,攻击者可以假冒合法的标签。文献[3]提出的数字图书馆RFID协议中,引入了基于树的认证协议的概念,这个方案虽然降低了后端服务器的搜索时间,但协议运行的轮次大大提高,此外,标签上需存储logn个秘密,由于logn-1个秘密是和其它标签共享,这个方案中很难实现对标签秘密的更新。文献[1]提出了基于门限秘密共享的方案,解决了秘密分发的问题,对标签的成本需求最低,但是这个方案中标签不具备抗跟踪性。
除了以上几种典型的协议,最近几年,出现了大量的随机化的询问应答双向认证协议,如文献[5]提出的协议等。这类协议中,每个标签和读写器共享一些秘密,这些秘密在读写器的后端数据库中和标签的一些信息关联。为了避免重放攻击,读写器和标签在每个会话中都产生和使用随机数,这使得每个标签的回复不可以预计算,后端数据库在线识别每个标签的代价是O(n)。和其它的RFID技术的应用相比,供应链管理由于批量处理大量标签的特性而对性能要求最高。然而这类协议不具备可扩展性(可扩展性是指当识别一个标签的代价不会随着标签总数量增大而明显增大)。
文献[6]对部分协议有详尽的分析。由于目前还没有适用于供应链的可扩展读写器.标签双向认证协议,我们针对供应链中货品大批量处理以及处理流程的可预知性,提出一种适用于供应链的可扩展的读写器一标签双向认证协议。
1 供应链的RFID系统模型
在通用的供应链的模型上,一个供应链上有多个参与者。货物经过一个参与者的处理之后,被移交给下一个参与者。在这个过程中,一批货物每次只属于一个参与者。在一个参与者处理的过程中,可能需要多次读取标签上的信息。在一个参与者处理完货物之后,货物被移交给供应链中的下一个参与者。通用的RFID系统由三个主要部件构成:标签(Tag)、标签读写器(Reader)和后端数据库(Backend Database)。标签由芯片与天线组成,存储相关对象的信息。标签读写器,简称读写器,是一个带有天线的无线发射与接受设备,可以对标签进行读写操作。后端数据库用于存放系统中所有标签所标识对象的有关数据,接受读写器对特定标签信息的检索。
根据一般的供应链的流程,建立如图1所示供应链RFID系统模型。这里P代表参与者,S代表后端数据库,R代表读写器, 代表标签 在我们的系统中,每个参与者有一个中心服务器,所有的读写器都与其连接,中心数据库也是该参与者内所有读写器的后端数据库。读写器和后端数据库具有较强的存储和计算能力,本文将二者作为一个整体看待,即默认读写器是带有后端数据库的高性能计算机。标签的存储空间和计算能力比较有限。在读写器和标签之间的通信信道上,使用Dolev—Yao攻击者模型,即攻击者能监听、阻止、修改或插入读写器或标签发送的信息。
图1 供应链RFID系统模型
在供应链RFID系统中,至少应该包含两个协议,即读写器-标签双向认证协议和标签所有权移交协议。读写器.标签双向认证协议用来保证合法的参与者在货物处理或运输过程中对货物的安全识别。当货物要从一个参与者P 移交到下一个参与者P,时,需要运行标签所有权移交协议使得P,识别标签并更新标签的秘密。本文完成读写器一标签双向认证协议的设计。
2 读写器一标签双向认证协议
供应链和其它RFID应用的最为显著区别就是:(1)带有标签的货物是成批处理的;(2)对于任一个参与者,货物在其内部的处理流程是可预知的,也就是要读取标签的次数是可以预先估计的。这两个特性为设计高效的认证协议提供了一个切入点。本文采用了一种全新的机制,每个标签和读写器共享一个秘密,这个秘密在读写器上作为标签身份的索引。读写器首先发送一个认证码给标签,每批标签都设定同一个值用来认证验证码的安全性。标签验证认证码合法后发送匿名ID。匿名ID的值和认证码及共享的秘密相关,合法的读写器可以预先计算并排序所有标签的匿名ID,因此在线识别一个标签是通过查找匿名ID列表找到和标签发的匿名ID相等的值。当读写器识别标签后,发送回复信息给标签,标签验证回复合法之后,更新标签上用来验证认证码的值。一个认证码只能使用一次,标签每次所发的匿名ID都是变化的,只有合法的读写器才能识别标签。攻击者不能由监听到的认证码计算一个合法的认证码。
2.1 初始化 .
参与者Pj中标签的最多被读取次数标记为m。Pi选择一个随机数a0,计算a1=h(a0),a2=h(a1),a3=h(a2),... ,am =h(a m-1 )。其中h:{0,1}’→{0,1} 是一个单向哈希函数,l是该RFID系统的安全参数,默认本文中所有变量的长度都为l。Pj的中心数据库sj保存a 0,a 1,...,a m-1的值。这些值将按逆序依次分配给读写器作为认证码。首先,我们在标签上保存a ,此时标签能接受的唯一验证码是a 1。当双向认证成功后,标签上am 的值被a m-1,取代,此时,标签能接受的唯一验证码是a m-2,以此类推。下面是在货物从P j-1 移交到P j后,标签和中心数据库的初始化。
标签初始化
标签Ti上保存两个值,(bi,ki )。对于1≤i≤n,n是所有标签的数量,Pj设定b。=n ,k 为一个随机串作为标签和数据库s j共享的新秘密。
中心数据库初始化每个标签Ti ,对于0≤t≤m-l,中心数据库sj计算h(a t ‖k i)的值,h(a t‖k i )是标签T i对于合法认证码a t回复的匿名ID。中心数据库结构如表1所示。
表1 中心数据库结构
2.2 协议描述
当Pj第一次要读取标签时,读写器从中心服务器得到这批标签当前合法的认证码a m-1 ,当使用a m-1 成功和一个标签实现双向认证后,标签更新用来认证认证码的值b i,a m-1 不再是合法的认证码。当一批标签初理完,所有的标签可接受的认证码都变成口。第二次要处理标签时,读写器从中心服务器得到新的认证码a m-2。认证码是使用单向哈希函数生成,攻击者无法从监听到的合法的认证码a m-1 算出下一个合法认证码a m-2的值。同时,使用哈希函数可以方便地实现标签和数据库的同步更新。
本文的协议由三轮报文发送过程组成。当要处理一批标签时,读写器从中心数据库得到当前这批标签能接受的合法的认证码a。
(1)数据库/读写器→标签读写器产生随机数r 1,并发送(a,r 1)给标签。
(2)标签→数据库/读写器 当标签T i收到(a,r 1)后,首先验证h(a)=b i 是否成立,如果成立,生成随机数r 2 ,并计算A=h(a‖k i),B =h(r 1‖r 2‖k i ),并发送(r 2 ,A,B)给读写器;如果不成立,则终止协议的运行。
(3)数据库/读写器→标签读写器查找后端数据库中预计算出来的对于认证码。的所有标签的回复,如果找到和A相等的值,则该标签被识别,读写器得到该标签的秘密k。随后,读写器验证曰的合法性,如果B=h(r 1‖r 2‖k),则该标签通过读写器的认证,读写器计算C=h(r 2|| k)并发送给标签;如果B不合法,则协议终止。
最后标签T i 收到c之后,验证C=h(r 2‖k i)是否成立,如果成立,则标签认证读写器为合法的读写器,标签更新b的值为a;如果不成立,则协议中止。协议流程图如图2所示。
3 安全性及效率分析
抗隐私泄露在读写器与标签的交互中,k i 没有采用明文发送,由于哈希函数h的单向性,攻击者不能从h(a‖k i),h(r 1‖r2‖k i),h(r 2‖k i )的值中计算出ki 的值。
抗假冒标签攻击虽然一批标签使用同一个认证码,对于每个标签,每次读写器运行协议,都会使用新鲜的随机数r 1。因此,在攻击者不知道ki的值的情况下,不能生成合法的B,B= h(r 1‖r 2‖k i )以通过读写器的认证。
抗假冒读写器攻击标签对读写器的认证有两重,首先,只有读写器发来合法的认证码。,标签才会回应,只有合法的读写器才可以从中心数据库得到当前的认证码。由于读写器在处理大批量的标签时,攻击者可以监听先处理的标签和读写器的对话,得到同一批次标签共同的认证码,然后假扮读写器,因此,只有一个验证码来实现标签对读写器的认证是不够的。在第三个消息中,标签通过验证读写器发送的C的值确认读写器已经正确识别出标签,C=h(r 2‖k i)。只有合法的读写器才能识别出标签,得到k i的值,标签在再次对读写器进行认证之后,才更新bi的值。
抗跟踪 攻击者不能通过主动询问标签来获得信息,因为攻击者不能得到当前的合法认证码。对同一个标签,任意两次合法的对话中,第一次对话的记录(a,r 1,r 2,A,B,C)和第二次对话的记录(a',r1',r 2',A ',B ',C' )对于攻击者是不可区分的。因此,我们的协议具有抗跟踪性。
本文的协议首次引入一次性认证码的使用,使得数据库可以预计算所有合法标签的回复并排序,当在线识别一个标签时,查找数据库代价是O(logn)次比较大小的运算,数据库完成一次读写器-标签双向认证总共需要进行3次hash运算以及O(logn)次的比较大小的运算。在Song提出的协议以及其它大量随机化匿名协议中,后端数据库在线识别一个标签需要尝试所有标签的秘密进行hash运算,直到找到一个记录中的秘密使得计算出来的值和标签发送过来的值相等,识别一个标签要进行O(n)次哈希运算。本文提出的协议显著提高了后端数据库在读写器.标签双向认证中在线识别一个标签的效率。本文的协议中标签需要进行4次hash运算,和其它协议中标签的运算量相当,如Song的协议中,标签需要进行3次hash运算,Song中引用的三个协议 ,标签均需要进行4次hash运算。
4 结论
后端数据库的对标签的在线识别往往是RFID系统中的瓶颈。对于数据库中包含大量标签记录,同时要成批识别大批量标签的供应链RFID系统,提高后端数据库在线识别的效率成为当务之急。本文中的读写器-标签双向认证协议在保证供应链系统安全性的情况下显著提高了数据库在线识别一个标签的效率。本文中的协议只适合于批量处理的供应链。在未来的工作中,我们将完成标签所有权移交协议的设计,进一步完善该供应链RIFD系统。
(文/复旦大学计算机科学与技术学院 蔡韶颖 赵一鸣 )
参考文献
[1]Sarma S E,Weis S A,EngelsDW.RFID systems and security and privaey implications[C]//In:Kaliski B S,Koc C K,Paar C.eds.Pro—ceedings of the 4th Intemational Workshop on Cryptographic Hardwareand Embedded Systems(CHES 2002).Lectures Notes in ComputerScience 2523.Berlin:Springer Verlag,2003:454—469.
[2]Ohkubo M,Suzuki K,Kinoshita S.Hash.chain based forward secure privacy protection scheme for low—cost RFID[C]//In:Proceedings ofthe 2004 Symposium on Cryptography and Information Security(SCIS2004),Sendai,2004:719—724.
[3]Molnar D,Wagner D.Privacy and security in library RFID:Issues.practices,and architectures[C]//In:Procedings of the 11 ACMConference on Computer and Communications Security (CCS 04),Washington,DC,USA,2004:210—219.
[4]Juels A,Pappu R,Pamo B.Unidirectional key distribution across time and space with applications to RFID security[C]//In 17 USENIXSecurity Sym posium,2008:75—90.
[5]Song B,Mitchell C J.Rfid authentication protocol for low.cost tags
[C]//In WISEC,2008:140—147.
[6]周永,冯登国.RFID安全协议的设计与分析[J].计算机学报,2006,29(4):8l一89.
[7]Dolev D,Yao A c.On the security of public key protocols[C]//Technical Report,Report No.STAN—CS-81-854,Standford,CA ,USA ,1981.