一种用于rfid系统的安全双向认证方法

文档序号:7796746阅读:227来源:国知局
一种用于rfid系统的安全双向认证方法
【专利摘要】本发明公开了一种用于RFID系统的安全双向认证方法。所述方法针对现有系统认证中计算存储开销大、易受到重放、假冒攻击等缺陷,将伪随机数、共享秘密和散列函数结合起来实现认证加密。所述方法中,标签与后端数据库共享密钥、标识和两个散列函数;标签标识与系统散列函数加密的逻辑运算结果作为应答消息发送给后端数据库,大幅减少了系统认证开销;后端数据库将认证密钥和私有散列加密结果进行系统散列函数加密并响应给标签,实现标签对系统的反向认证。标签不必存储阅读器标识,不需要生成伪随机数,因而降低了标签成本,增加了方法适用范围。本发明在完成基本认证功能的前提下,安全性高、成本较低、复杂性小,可用于标签规模较大的环境中。
【专利说明】—种用于RFID系统的安全双向认证方法
【技术领域】
[0001]本发明属于物联网射频无线通信领域,具体涉及一种基于散列函数的RFID系统安全双向认证方法。
【背景技术】
[0002]无线射频识别系统,即RFID是一种在开放的系统环境中使用无线射频技术对目标进行认证识别的技术手段。其开放式的应用环境使得无需进行物理接触就可以完成双方的识别认证,具有使用寿命长、可工作在电磁干扰、高温等极端环境中的特点,RFID技术自诞生以来飞速应用和发展,目前已广泛应用于大型超市、物流跟踪、电子票证、停车场管理、门禁识别等生活中的各个方面,在物联网领域有着广阔的应用天地,越来越紧密地与日常生产和生活联系在一起。
[0003]身份认证是射频通信的第一步,后端数据库和阅读器需要核实标签的身份,验证其合法性,避免读入假冒和伪造的数据;同时标签也需要核实阅读器身份的合法性,以防其存储的数据信息被非法读出或重写。
[0004]目前针对射频识别系统安全的双向认证方法有很多,总体上可分为物理安全机制方法和密码安全机制方法。物理安全机制方法在认证的安全性上都存在一定的缺陷和局限性,对硬件环境的要求相对较高,考虑到认证系统的硬件环境和标签的制作成本,一般采用基于密码学的方法。而散列函数由于其计算速度快、资源占用低,而且由输出无法推导出输入的单向安全加密特性,经常被用作加密函数,基本的基于散列函数的认证方法如Hash-Lock协议、随机Hash-Lock协议和Hash链协议,这些方法存在着明显的安全隐患,如标签标识的明文传输、只能实现阅读器对标签的单向认证、不能抵抗窃听和重放攻击等。在这些认证方法基础上,国内外研究人员在安全认证方法方面后续做了大量改进和研究工作,提出了各自的方法模型和流程,这些方法大体都能实现认证系统所需的安全目标,但是对标签的成本和计算复杂性、后端数据库的计算复杂性等方面有更高的要求,例如为了实现标签和数据库之间的同步而进行的认证密钥更新操作。因此本发明提出的认证方法在实现各安全性目标的同时,尽量降低标签和后端数据库的计算开销和存储开销。
[0005]射频识别技术的推广普及,使得其安全问题和使用环境日益严峻复杂。恶意的攻击者、不合法的阅读器或标签有可能进行非法访问,窃听通信过程中的消息,同时阅读器与标签之间的通信量也越来越多。因此,设计出安全有效的认证方法是非常有意义的。

【发明内容】

[0006]针对现有技术中安全认证方法存在的计算和存储开销大,存在重放、假冒攻击等缺陷,本发明提出了一种基于散列函数的RFID系统的安全双向认证方法。在执行过程中,引入伪随机数对通信消息作盲化处理;在标签和后端数据库之间共享标签标识、认证密钥和私有散列函数三元组,可抵抗无线信道中窃听、跟踪、重放、假冒等攻击。由于标签不必存储阅读器标识,且不生成伪随机数,因而降低了标签成本,在节省系统成本和计算复杂性的同时,实现标签和阅读器之间的安全双向身份认证。
[0007]为了实现上述目的,本发明采用如下技术方案:
[0008]一种用于RFID系统的安全双向认证方法,包括如下步骤:
[0009]b、在初始状态下,阅读器产生伪随机数,并发出认证询问请求,要求在其阅读范围内的标签做出应答;
[0010]C、当有标签进入阅读器的作用范围时,就会接收到阅读器发出的认证询问请求和伪随机数;标签先是利用私有散列函数对认证密钥和伪随机数进行私有散列加密;然后将运算结果和伪随机数利用系统散列函数进行系统散列加密;最后将标签标识与系统散列加密结果进行逻辑异或运算,运算结果和私有散列加密结果一起作为认证应答消息发送给阅读器;
[0011]d、阅读器接收到认证应答消息后,将自身阅读器标识、伪随机数和接收到的认证应答消息同时发送给后端数据库进行认证;
[0012]e、认证过程中,后端数据库首先验证阅读器的身份,如果该阅读器不合法,则停止认证过程;阅读器认证通过后,后端数据库根据接收到的伪随机数和私有散列加密结果进行系统散列函数加密,加密结果与接收到的认证应答消息进行逻辑异或运算,得到标签的身份标识;然后利用后端数据库存储的所有标签信息对该标签进行第一次系统认证,如果该标签不合法,认证失败;
[0013]标签通过第一次系统认证后,后端数据库获得标签的认证密钥和私有散列函数,使用该标签的私有散列函数对认证密钥和伪随机数进行私有散列加密,并将运算结果与认证应答消息中的私有散列加密结果进行验证,若验证匹配则标签通过了第二次系统认证,系统对标签认证完成;
[0014]f、后端数据库对认证密钥和私有散列函数运算结果进行系统散列函数加密,并将系统散列函数运算结果作为数据库发送给标签的认证消息,通过阅读器发送给标签;
[0015]标签利用认证密钥和步骤b中私有散列加密运算结果进行系统散列函数加密运算,将运算结果与系统发送来的认证消息进行验证,如若验证一致,则标签完成对后端数据库和阅读器的反向认证;否则,标签对系统认证失败;
[0016]其中,后端数据库和标签共享标签标识、认证密钥和私有散列函数,且均具有相同的系统散列函数。
[0017]进一步,所述步骤b之前还包括步骤:
[0018]a、认证通信开始前进行安全双向认证系统的初始化,自身标签标识、认证密钥、私有散列函数组成的信息三元组,后端数据库存储所有标签的标签标识、认证密钥和私有散列函数组成的信息三元组以及合法阅读器标识。
[0019]进一步,所述步骤e中,后端数据库将接收到的阅读器标识与库中存储的阅读器标识相比较,若库中存储的标识与阅读器标识不同,表明该阅读器是非法的,立刻中断认证过程;若库中存在与阅读器相同的标识,则表明阅读器合法,阅读器通过认证。
[0020]进一步,所述步骤e中,得到标签身份标识后,搜索后端数据库存储的标签标识中是否存在某个标签标识与得到的标签身份标识一致,若不存在则表明阅读器对标签认证失败,该标签不合法,阅读器向标签发送认证失败消息;若存在则表明标签通过了阅读器的认证,该标签是合法有效的。[0021]本发明具有如下优点:
[0022]本发明将伪随机数和散列函数结合起来用于设计射频通信中的安全认证方法,标签中不需要存储阅读器标识,并且不用产生伪随机数,因而降低了标签成本,增加了方法的适用范围;标签标识与系统散列函数加密的逻辑运算结果作为应答消息发送给后端数据库,大幅减少了系统的查询开销;整个认证过程中不需要进行密钥更新,实现了安全的双向认证过程。本发明在完成基本的身份认证功能的前提下,安全性高、成本较低、复杂性小、适用范围广,可用于标签规模较大的环境中。
【专利附图】

【附图说明】
[0023]图1为本发明中基于RFID系统的安全双向认证方法的流程框图;
[0024]图2为本发明中基于RFID系统的安全双向认证系统的组成框图。
【具体实施方式】
[0025]下面结合附图以及【具体实施方式】对本发明作进一步详细说明:
[0026]本发明的基本思想是针对射频识别系统的安全双向认证,一般假定阅读器与后台数据库服务器之间的通信信道是安全的,它们之间可以明文传输信息,关注考虑的是标签和阅读器之间的不安全通信信道。采用单向安全的加密函数将认证消息加密后传输,可防范数据窃听等安全威胁,认证过程中后端数据库首先要对阅读器的身份进行确认,可避免被非法阅读器访问,计算和存储开销与其他认证方法相比都相对较为合适,有效地实现了标签和阅读器之间的安全双向认证过程。
[0027]如图2所示,RFID系统安全双向认证系统的认证协议过程如下:其中,
[0028]① Reader->Tag: (Query, N)
[0029]②Tag->Reader: (S=UID ? H(N| |M), M=f (N| |K))
[0030]③Reader->DB: (S=UID ? H(N| |M), N, M=f (N| | K),IDe)
[0031 ]④ DB->Reader: (a=H (K ? M), UID)
[0032]⑤Reader->Tag: (a=H(K ? M))
[0033]DB-后端数据库,Reader-阅读器,Tag-标签,Query-认证询问请求,IDk-阅读器身份标识,UID-标签唯一身份标识,N-伪随机数,K-共享认证密钥,H-系统散列函数,f-私有散列函数,散列函数映射为{0,I}*——>{0,1}N,M-对认证密钥加密后的密文,S-标签发给数据库的认证消息,S=UID ? H (N I M),a-数据库发给标签的认证消息,a=H (K θ Μ),θ -字符串按位异或操作,I 1-字符串按位连接操作,
[0034]安全双向认证系统以Hash单向散列函数为基础,将伪随机数、共享秘密与散列函数结合起来,实现标签和阅读器之间的双向安全认证,在保证各安全性指标的前提下,方法的设计要求是轻量级的,尽量降低标签和后端数据库的计算和存储复杂度。如图1所示,RFID系统安全双向认证的具体实现步骤如下:
[0035]首先认证通信系统初始化,标签存储自身标识WD、认证密钥K、私有散列函数f组成的信息三元组,后端数据库存储系统中所有标签的信息三元组以及合法阅读器标识IDk ;
[0036](I)初始状态下,阅读器产生伪随机数N,并发出认证询问请求Query,要求在其阅读范围内的标签做出应答;[0037]伪随机数N的产生可以对认证消息作盲化处理,使得每次认证通信发送的消息都不同,需要用到标签和后端数据库共享的认证密钥K,因此可以抵抗窃听、跟踪、重放等攻击;
[0038](2)当有标签进入阅读器的作用范围时,就会接收到阅读器发出的认证询问请求Query和伪随机数N ;标签首先利用自身私有散列函数f对认证密钥K和伪随机数N进行单向加密,得到密文M=f (NI K)并存储在标签中;然后利用系统散列函数H对密文M和伪随机数N进行单向加密运算,将加密结果与标签自身标识UID进行逻辑异或运算,得到标签发给数据库的认证消息S=UID ? H(N| I Μ);随后标签将认证消息S和密文M作为认证应答消息发送给阅读器,这里,标签标识MD、伪随机数N和认证密钥K的长度统一设为128个比特位;
[0039](3)阅读器将自身标识IDk和伪随机数N发送到后端数据库,同时阅读器对收到的标签应答消息不做任何处理,直接将认证消息S和密文M转发给后端数据库进行认证;
[0040](4)后端数据库收到阅读器标识IDk后,首先与库中存储的阅读器标识进行比较,验证阅读器的合法性,避免被非法阅读器进行访问,如果不是合法阅读器,则立刻中断认证过程;
[0041]阅读器认证通过后,后端数据库利用收到的密文Μ、伪随机数N进行系统散列函数加密得到H (N I |μ),再与标签发送来的认证消息s进行逻辑异或运算,即可快速得到标签标识WD ;然后,后端数据库搜索查找数据库中是否存在某个标签标识nD’与计算得到的WD一致,如果没有则说明阅读器对标签认证失败,该标签不合法,阅读器向标签发送认证失败消息;
[0042]若存在WD’与计算得到的UID—致,则表示标签通过了系统第一次认证;由于标签标识WD、认证密钥K和私有散列函数f是一一对应存储的,这样后端数据库就得到了该标签的认证密钥K和私有散列函数f,使用私有散列函数f对密钥K加密计算得到M’ =f(N| |K),核对是否与密文M相同,即系统对标签进行第二次认证,如若不相同,则标签认证失败;
[0043]系统对标签认证成功后,后端数据库使用系统散列函数对密钥K和密文M进行单向加密计算,得到a=H(K ? Μ),并作为系统对标签的认证响应消息,和标签标识UID —起发给合法阅读器;
[0044]这里,后端数据库将认证密钥加密发给标签进行认证之后,并没有对认证密钥进行更新操作,这样可以降低后端数据库和标签的计算量,是轻量级安全认证方法所需要考虑的;
[0045](5)阅读器获得标签标识WD,同时将a=H(K ? Μ)转发至标签;
[0046](6)标签收到认证消息a=H(K ? Μ)后,利用认证密钥K和标签ROM中存储的M进行逻辑异或运算,然后使用系统散列函数计算得到b=H(K ? Μ),随后,标签比较b和认证消息a是否相等,如果不相等,则标签对阅读器或后端数据库认证失败,认为该阅读器或后端数据库是非法的;如果相等,则标签对系统认证成功。
[0047]至此,阅读器和标签之间已完成双向身份认证,准备进行接下来的通信。
[0048]本发明结合利用散列函数计算速度快、资源占用低、安全的单向特性和伪随机数不确定性的特点,可有效抵抗重放攻击、数据窃听、非法访问、拒绝服务等多种攻击形式,为标签的接入通信提供了很好的安全防护。本发明中标签和数据库端的复杂性和成本都相对较小,适合在现实应用中推广使用。
[0049]当然,以上说明仅仅为本发明的较佳实施例,本发明并不限于列举上述实施例,应当说明的是,任何熟悉本领域的技术人员在本说明书的教导下,所做出的所有等同替代、明显变形形式,均落在本说明书的实质范围之内,理应受到本发明的保护。
【权利要求】
1.一种用于RFID系统的安全双向认证方法,其特征在于包括如下步骤: b、在初始状态下,阅读器产生伪随机数,并发出认证询问请求,要求在其阅读范围内的标签做出应答; C、当有标签进入阅读器的作用范围时,会接收到阅读器发出的认证询问请求和伪随机数;标签先是利用私有散列函数对认证密钥和伪随机数进行私有散列加密;然后将运算结果和伪随机数通过系统散列函数进行系统散列加密;最后将标签标识与系统散列加密结果进行逻辑异或运算,运算结果和私有散列加密结果一起作为认证应答消息发送给阅读器; d、阅读器接收到认证应答消息后,将自身阅读器标识、伪随机数和接收到的认证应答消息同时发送给后端数据库进行认证; e、认证过程中,后端数据库首先验证阅读器的身份,如果该阅读器不合法,则停止认证过程;阅读器认证通过后,后端数据库根据接收到的伪随机数和私有散列加密结果进行系统散列函数加密,加密结果与接收到的认证应答消息进行逻辑异或运算,得到标签的身份标识;然后利用后端数据库存储的所有标签信息对该标签进行第一次系统认证,如果该标签不合法,认证失败; 标签通过第一次系统认证后,后端数据库获得标签的认证密钥和私有散列函数,使用该标签的私有散列函数对认证密钥和伪随机数进行私有散列加密,并将运算结果与认证应答消息中的私有散列加密结果进行验证,若验证匹配则标签通过了第二次系统认证,系统对标签认证完成; f、后端数据库对认证密钥和私有散列函数运算结果进行系统散列函数加密,并将系统散列函数运算结果作为数据库发送给标签的认证消息,通过阅读器发送给标签; 标签利用认证密钥和步骤b中私有散列加密运算结果进行系统散列函数加密运算,将运算结果与系统发送来的认证消息进行验证,若验证一致,则完成了对后端数据库和阅读器的反向认证;否则,标签对系统验证失败; 其中,后端数据库和标签共享标签标识、认证密钥和私有散列函数,且均具有相同的系统散列函数。
2.根据权利要求1所述的一种用于RFID系统的安全双向认证方法,其特征在于所述步骤b之前还包括步骤: a、认证通信开始前进行安全双向认证系统的初始化,标签存储自身标签标识、认证密钥、私有散列函数组成的信息三元组,后端数据库存储所有标签的标签标识、认证密钥和私有散列函数组成的信息三元组以及合法阅读器标识。
3.根据权利要求1所述的一种用于RFID系统的安全双向认证方法,其特征在于,所述步骤e中,后端数据库将接收到的阅读器标识与库中存储的阅读器标识相比较,若库中存储的标识与阅读器标识不同,表明该阅读器是非法的,立刻中断认证过程;若库中存在与阅读器相同的标识,则表明阅读器合法,阅读器通过认证。
4.根据权利要求1所述的一种用于RFID系统的安全双向认证方法,其特征在于,所述步骤e中,得到标签身份标识后,搜索后端数据库存储的标签标识中是否存在某个标签标识与得到的标签身份标识一致,若不存在则表明阅读器对标签认证失败,该标签不合法,阅读器向标签发送认证失败消息;若存在则表明标签通过了阅读器的认证,该标签是合法有效的。
【文档编号】H04L9/32GK103795543SQ201410048296
【公开日】2014年5月14日 申请日期:2014年2月12日 优先权日:2014年2月12日
【发明者】石乐义, 贾聪, 付文静, 邢文娟, 刘昕 申请人:中国石油大学(华东)
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1