CN109190725B - 一种rfid双向认证方法 - Google Patents
一种rfid双向认证方法 Download PDFInfo
- Publication number
- CN109190725B CN109190725B CN201810792139.2A CN201810792139A CN109190725B CN 109190725 B CN109190725 B CN 109190725B CN 201810792139 A CN201810792139 A CN 201810792139A CN 109190725 B CN109190725 B CN 109190725B
- Authority
- CN
- China
- Prior art keywords
- tag
- parameter
- reader
- writer
- balance
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K17/00—Methods or arrangements for effecting co-operative working between equipments covered by two or more of main groups G06K1/00 - G06K15/00, e.g. automatic card files incorporating conveying and reading operations
- G06K17/0022—Methods or arrangements for effecting co-operative working between equipments covered by two or more of main groups G06K1/00 - G06K15/00, e.g. automatic card files incorporating conveying and reading operations arrangements or provisious for transferring data to distant stations, e.g. from a sensing device
- G06K17/0029—Methods or arrangements for effecting co-operative working between equipments covered by two or more of main groups G06K1/00 - G06K15/00, e.g. automatic card files incorporating conveying and reading operations arrangements or provisious for transferring data to distant stations, e.g. from a sensing device the arrangement being specially adapted for wireless interrogation of grouped or bundled articles tagged with wireless record carriers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3271—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response
- H04L9/3273—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response for mutual authentication
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本发明提供一种RFID双向认证方法。方法包括:接收读写器发送的第一参数C1、随机数N、标签账户地址TAddress和读写器账户地址RAddress;若获知自身维护的区块链中存储有标签账户地址TAddress,则根据标签账户地址TAddress、标签账户余额balanceBC和随机数N,生成第二参数C2;若获知第一参数C1与第二参数C2相等,则判定本次读写器对标签认证成功,并根据标签账户余额balanceBC和随机数N,生成第三参数C3并通过读写器发送至标签,以使得标签基于第三参数C3,获取标签对读写器的认证结果。将区块链技术与RFID技术相结合,由于区块链本质上是由网络中的每个节点维护的分布式账本,因此本发明提供的方法可以在完成安全认证的同时保证每个标签在没有数据库和可信第三方的情况下的隐私。
Description
技术领域
本发明实施例涉及射频识别技术领域,尤其涉及一种RFID双向认证方法。
背景技术
射频识别(RFID)技术近年来发展迅速,广泛应用于库存管理,供应链,产品跟踪,运输,物流和自助超市等各种应用。RFID***通常由一个或多个RFID读写器,一大批RFID标签和一个后端服务器组成。每个标签都附着在一个物理对象上,读写器可以通过与相应的标签进行通信来识别或追踪对象。由于标签和读写器之间的通信是通过射频信号无线传输的,攻击者可以实施诸如窃听、重放、篡改、Dos等类型的攻击,以此获取到敏感标签信息或影响整个RFID***的正常工作。为了解决这些问题,许多认证安全协议被提出。
最早的RFID认证协议是Sarma等人提出的Hash-Lock协议。此协议的认证过程如图1所示,图1为Hash-Lock协议认证过程图。每个标签内存储自己的{metaID,ID}字段,其中metaID是hash函数映射标签密钥key得到的。后台服务器中存储着n条{metaID,ID,key}记录,分别对应n个标签。认证过程开始后,读写器首先发送一个Request质询开始通信。标签收到此消息后,将自己存储的metaID发送给读写器。读写器收到后,将metaID继续传送给后端服务器。服务器收到后,检查数据库中是否存在一条记录,其中的metaID与收到的一致,若存在,就将对应的ID和key发给读写器,否则认证失败即停止。读写器在收到服务器发来的{ID,key}后,将key发送给标签,标签收到后,计算hash(key)是否与自己存储的metaID一致,若一致则标签认证读写器通过,然后将ID发送给读写器,否则,认证失败即停止。读写器收到标签发送过来的ID后,与服务器发送过来的ID进行对比,相同的话则读写器认证标签成功,否则认证失败即停止。
为了改进初始RFID协议的各项安全性,后续不断出现了大量RFID协议。比如随机化的Hash-Lock协议、Hash链协议、基于Hash的ID变化协议、David的数字图书馆RFID协议和分布式RFID询问-应答认证协议等。这些协议都在原有的基础上改进了某个或某几个方面的安全性,使RFID的应用越来越成熟。比如随机化的Hash-Lock协议引入了随机数的概念,每次标签与读写器的交互都将一个变化的随机数加入到hash计算中,从而进一步保证标签ID的隐私性。而David的数字图书馆RFID协议不仅引入了随机数,还将加解密技术应用到了协议中,是一种基于预共享秘密的伪随机数实现的RFID协议,此协议的设计并没有出现比较明显的安全漏洞。
原有的RFID协议或多或少都会存在某种攻击的漏洞,比如在Hash-Lock协议、随机化的Hash-Lock协议、Hash链协议中,标签ID是以明文传输的,不能抵御重放攻击、假冒攻击、跟踪攻击等。在基于Hash的ID变化协议中,由于后端服务器更新标签信息与标签更新的时间不同步,因此如果攻击者进行数据阻塞或者干扰,导致电子标签收不到部分认证消息的话,就会造成服务器存储标签数据与标签数据不同步,导致下次认证的失败。即使是安全性较高的协议,如David的数字图书馆RFID协议,因为标签必须完成随机数生成机加解密操作,因此增加了标签设计的复杂度,提高了设计成本,不适合小成本的RFID***。
一个已有RFID协议的通病就是身份验证的过程需要存储在服务器中的一个集中数据库来支持,因此这种身份验证过程容易受到SQL攻击。一旦这个集中数据库遭到攻击,整个RFID***都可能瘫痪。并且这种集中式的架构不适合应用在分布式的***中,无法保证***中各个子部分的隐私性要求。即使存在为分布式***设计的RFID协议,也是采用引入可信第三方的方式,这又进一步增加了***的通信成本。
发明内容
本发明实施例提供一种RFID双向认证方法,用以解决现有技术中RFID双向认证协议安全性不足且不适用于分布式***的缺陷,提高了认证的安全性,并且,适用于分布式***。
本发明实施例提供一种RFID双向认证方法,包括:
接收读写器发送的第一参数C1、随机数N、标签账户地址TAddress和读写器账户地址RAddress;
若获知自身维护的区块链中存储有标签账户地址TAddress,则根据标签账户地址TAddress、标签账户余额balanceBC和随机数N,生成第二参数C2;
若获知第一参数C1与第二参数C2相等,则判定本次读写器对标签认证成功,并根据标签账户余额balanceBC和随机数N,生成第三参数C3并通过读写器发送至标签,以使得标签基于第三参数C3,获取标签对读写器的认证结果;
其中,第一参数C1为标签根据标签账户地址TAddress、标签余额balance和读写器发送的随机数N生成,标签账户地址TAddress为区块链根据标签ID生成,读写器账户地址RAddress为区块链根据读写器ID生成。
本发明实施例提供一种RFID双向认证方法,包括:
若第一参数C1与第二参数C2相等,则接收服务器发送的第三参数C3;
基于第三参数C3,获取标签对读写器的认证结果;
其中,第三参数C3根据标签账户余额balanceBC和随机数N生成,第一参数C1由读写器发送至服务器,第二参数C2根据标签账户地址TAddress、标签账户余额balanceBC和随机数N生成。
本发明实施例提供的一种RFID双向认证方法,通过将区块链技术与RFID技术相结合,由于区块链本质上是由网络中的每个节点维护的分布式账本,因此本发明实施例提供的方法可以在完成安全认证的同时保证每个标签在没有数据库和可信第三方的情况下的隐私。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为Hash-Lock协议认证过程图;
图2为根据本发明实施例提供的一种RFID双向认证方法流程图;
图3为根据本发明另一实施例提供的一种RFID双向认证方法流程图;
图4为根据本发明实施例提供的一种基于区块链的多部门合作分布式RFID***架构图;
图5为根据本发明实施例提供的一种相互认证RFID协议图;
图6为根据本发明实施例提供的一种服务器的结构框图;
图7为根据本发明实施例提供的一种标签的结构框图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
RFID技术中的读写器可以通过与设置在目标对象上的标签进行通信,进而识别或追踪对象。读写器可以对标签进行读写操作,由于标签和读写器之间的通信是通过射频信号无线传输的,攻击者可以实施诸如窃听、重放、篡改、Dos等类型的攻击,以此获取到敏感标签信息或影响整个RFID***的正常工作,因此,许多RFID双向认证安全协议被提出。RFID双向认证的目的就是防止非授权阅读器浏览标签中存储的部分或全部信息,并授予合法阅读器区分合法标签和非法标签的能力。需要说明的是,以下实施例中,RFID双向认证方法也可称为RFID双向认证协议,即方法与协议具有同样的含义。
图2为根据本发明实施例提供的一种RFID双向认证方法流程图,该方法的执行主体为服务器,如图2所示,该方法包括:
步骤201:接收读写器发送的第一参数C1、随机数N、标签账户地址TAddress和读写器账户地址RAddress。
步骤202:若获知自身维护的区块链中存储有标签账户地址TAddress,则根据标签账户地址TAddress、标签账户余额balanceBC和随机数N,生成第二参数C2。
步骤203:若获知第一参数C1与第二参数C2相等,则判定本次读写器对标签认证成功,并根据标签账户余额balanceBC和随机数N,生成第三参数C3并通过读写器发送至标签,以使得标签基于第三参数C3,获取标签对读写器的认证结果。
其中,第一参数C1为标签根据标签账户地址TAddress、标签余额balance和读写器发送的随机数N生成,标签账户地址TAddress为区块链根据标签ID生成,读写器账户地址RAddress为区块链根据读写器ID生成。
需要说明的是,本发明实施例中涉及到的硬件设备为:服务器、读写器和标签。其中,服务器用于获取读写器对标签的认证结果,并当认证结果为认证成功时,协助标签获取标签对读写器的认证结果,以完成读写器和标签的双向认证。
其中,步骤201的具体过程为:服务器接收读写器发送第一参数C1、随机数N、标签账户地址TAddress和读写器账户地址RAddress。
步骤202的具体过程为:遍历自身维护的区块链,若区块链中存储有标签账户地址TAddress,则从区块链中取出标签账户余额balanceBC,并基于异或运算和单向哈希运算,根据接收到的标签账户地址TAddress、账户余额balanceBC和随机数N,计算生成第二参数C2,具体计算公式如下:
C2=H(TAddress⊕balanceBC⊕N);
其中,⊕为异或运算,H()为单向哈希运算。
步骤203的具体过程为:服务器将第一参数C1和第二参数C2进行比较,若比较结果为两者相等,则判定本次读写器对标签认证成功。并基于异或运算和单向哈希运算,根据标签账户余额balanceBC和随机数N,计算生成第三参数C3,并将第三参数C3发送给读写器,以使得读写器将第三参数C3转发给标签,进而以使得标签基于接收到的第三参数C3,获取标签对读写器的认证结果。其中,第三参数C3的具体计算公式如下:
C3=H(balanceBC⊕N);
其中,⊕为异或运算,H()为单向哈希运算。
需要说明的是,本发明实施例将区块链技术与RFID技术相结合,将RFID中的服务器作为区块链中的节点运行,区块链中的所有节点(也即服务器)共同维护区块链。对于一个服务器来说,其包含了一批所有节点都可以访问的标签和阅读器相关的帐户。
标签账户地址TAddress的生成过程如下:以标签ID作为密码,使用区块链生成公钥地址,并将该公钥地址作为标签账户地址。读写器账户地址RAddress的生成过程如下:以读写器ID作为密码,使用区块链生成公钥地址,并将该公钥地址作为读写器账户地址。每个标签存储自身的{TAddress,balance},每个读写器存储自身的RAddress。区块链中每个标签的账户余额balanceBC被初始化为(0,10)之间的随机数,而存储在标签中的余额值也即标签余额balance被初始化为balanceBC+M。其中,M为标签账户与读写器账户每笔交易的金额。
本发明实施例提供的方法,将区块链技术与RFID技术相结合,由于区块链本质上是由网络中的每个节点维护的分布式账本,因此本发明实施例提供的方法可以在完成安全认证的同时保证每个标签在没有数据库和可信第三方的情况下的隐私。对普通攻击(例如重放攻击,主动攻击,Dos攻击,去同步攻击)的完全抵抗,并且在不使用任何额外保护技术的前提下根除所有潜在的数据库攻击;每一条RFID标签与读写器的通信记录都是可追踪和不可修改的;并且,分布式***中的每一子***都有自己的秘密标签信息,这些信息不包含在服务器中。子***之间共享不敏感标签信息以进行后续操作,无需中央服务器或受信任的第三方。
基于上述实施例,本实施例提供的方法还包括:
若获知第一参数C1与第二参数C2相等,则判定上一次认证过程异常,并记录在自身维护的区块链中;其中,认证过程异常为认证消息丢失或被拦截。
具体地,若服务器获知第一参数C1与第二参数C2相等,则判定本次读写器对标签认证成功,并且,判定上一次认证过程异常,并记录在自身维护的区块链中。
基于上述实施例,本实施例提供的方法还包括:
若获知第一参数C1与第二参数C2不相等,则根据标签账户地址TAddress、标签账户余额balanceBC、交易金额M和随机数N,生成第四参数C4。
若获知第一参数C1与第四参数C4相等,则判定本次读写器对标签认证成功,且上一次认证过程正常,并根据交易金额M对标签账户余额balanceBC进行更新,并根据更新后的标签账户余额balanceBC和随机数N,生成第五参数C5并通过读写器发送至标签,以使得标签基于第五参数C5,获取标签对读写器的认证结果。
具体地,若服务器通过比较第一参数C1与第二参数C2获知两者不相等,则生成第四参数C4,并基于第四参数C4获取读写器对标签结果额的认证结果。其中,第四参数C4的计算公式为:
C4=H(TAddress⊕(balanceBC⊕M)⊕N)
其中,⊕为异或运算,H()为单向哈希运算。
服务器生成第四参数C4后,将第一参数C1与第四参数C4进行比较,若两者相等,则判定读写器对标签认证成功,并生成第五参数C5后发送至读写器,以使得读写器将第五参数C5转发至标签,进而以使得标签基于第五参数C5获取标签对读写器的认证结果。其中,第五参数C5的计算公式为:
C5=H(balanceBC'⊕N)
其中,⊕为异或运算,H()为单向哈希运算,balanceBC'为根据交易金额M对标签账户余额balanceBC进行更新后得到的更新后的标签账户余额。
基于上述实施例,本实施例提供的方法还包括:
若获知第一参数C1与第二参数C2相等,则标签账户余额balanceBC保持不变。
若获知第一参数C1与第四参数C4相等,则根据交易金额M对账户余额balanceBC进行更新。
具体地,若服务器获知第一参数C1与第二参数C2相等或第一参数C1与第四参数C4相等,则判定读写器对标签认证成功。其中,若C1==C2,则balanceBC保持不变,若C1==C4,则更新balanceBC为balanceBC'=balanceBC+M。
基于上述实施例,本实施例提供的方法还包括:
若获知第一参数C1与第四参数C4不相等,则判定读写器对标签认证失败。
基于上述实施例,本实施例提供的方法还包括:
若获知区块链中未存储有标签账户地址TAddress,则判定读写器对标签认证失败。
图3为根据本发明另一实施例提供的一种RFID双向认证方法流程图,其执行主体为标签,如图3所示,该方法包括:
301:若第一参数C1与第二参数C2相等,则接收服务器发送的第三参数C3。
302:基于第三参数C3,获取标签对读写器的认证结果。
其中,第三参数C3根据标签账户余额balanceBC和随机数N生成,第一参数C1由读写器发送至服务器,第二参数C2根据标签账户地址TAddress、标签账户余额balanceBC和随机数N生成。
具体地,若服务器向读写器发送第三参数C3,则读写器将第三参数C3转发给标签。若标签接收到第三参数C3,则基于第三参数C3获取标签对读写器的认证结果,认证结果为标签对读写器的认证成功或认证失败。需要说明的是,各参数均已在本实施例或上述实施例中进行了说明,此处不再赘述。
基于上述实施例,本实施例提供的方法还包括:
若第一参数C1与第四参数C4相等,则接收服务器发送的第五参数C5;
基于第五参数C5,获取标签对读写器的认证结果;
其中,第五参数C5根据更新后的标签账户余额balanceBC和随机数N生成,第四参数C4根据标签账户地址TAddress、标签账户余额balanceBC、交易金额M和随机数N生成。
基于上述实施例,获取标签对读写器的认证结果,进一步包括:
根据标签余额balance和随机数N,获取第六参数C6;
若获知第三参数C3和第六参数C6相等,或者,第五参数C5和第六参数C6相等,则判定标签对读写器认证成功。否则,判定标签对读写器认证失败,标签拒绝进一步通信。第六参数C6的具体计算公式如下:
C6=H(balance⊕N);
其中,⊕为异或运算,H()为单向哈希运算。
基于上述实施例,本发明实施例提供的方法还包括:
若标签对读写器认证成功,则根据交易金额M,对标签余额balance进行更新。具体更新公式为:
balance'=balance+M
基于上述实施例,接收服务器发送的第三参数C3或接收服务器发送的第五参数C5,之前还包括:
接收读写器发送的随机数N;根据标签账户地址TAddress、标签余额balance和随机数N,生成第一参数C1;将第一参数C1和标签账户地址TAddress发送给读写器,以使得读写器将第一参数C1、随机数N、标签账户地址TAddress和读写器账户地址RAddress发送给服务器。
为了更好地说明本发明实施例的方案,以下通过具体的举例进行说明:
图4为根据本发明实施例提供的一种基于区块链的多部门合作分布式RFID***架构图,如图4所示,将本发明实施例提供的方法应用在如下领域:
一家公司有多个部门或分支机构,特别是其中一些分散在不同地区,甚至分布在不同的国家,内部网络很难相互连通。以基于RFID的人员门禁***为例,它需要高安全性,但实时性和吞吐率要求较低。每个部门都有一个敏感的<真实对象——标签ID>表,不能被其他部门知晓。但是,公司的运营和管理要求部门共享标签的一些信息以完成RFID认证过程。那么如何在满足公司实际需求的同时保证部门的隐私是新RFID***和协议应该实现的要求。而且,当添加新标签或每轮更新认证消息时,分布式RFID***中的同步问题也是亟待解决的。
在本发明实施例中,一条私有区块链足以满足上述公司内RFID***的要求。在这种情况下,多个部门一起维护私有区块链并执行相同的身份验证协议过程。该***模型可以确保共享非敏感标签信息以进行认证,同时可通过以下设置保护部门内部的机密标签信息:
(1)每个部门都有几台服务器作为区块链上的节点运行,每个节点都包含一批所有节点都可以访问的标签和阅读器相关的帐户。
(2)以标签或读写器ID作为密码,区块链会生成一个20字节的公钥地址作为帐户标识符(以太坊中)。每个部门各自的<真实对象——ID——帐户地址>映射表存储在远离整个***的秘密位置,不可能推导出真实ID与帐户地址的关联关系。
基于图4所示的***架构图,下面描述本发明实施例提出的基于区块链的相互认证RFID协议,其中用到的符号说明如表1,协议图如5所示,表1为协议中用到的符号说明表,图5为根据本发明实施例提供的一种相互认证RFID协议图。具体流程如下:
(1)初始化阶段:在初始化阶段,使用标签或读写器ID作为密码,区块链生成公钥地址作为帐户标识符。每个标签存储元组{TAddress,balance},每个读写器存储RAddress。由于读写器是整个协议的发起方,所以其账户必须具有初始余额,这可以在协议开始之前通过默认设置实现。区块链中每个标签账户在区块链中真正的余额(balanceBC)被初始化为(0,10)之间的随机数,而标签中存储的账户余额(balance)被初始化为balanceBC+M。
(2)认证阶段:
(a)读写器:读写器生成一个随机数N并将其发送给标签。
(b)标签:标签计算C1=H(TAddress⊕balance⊕N),并将(C1,TAddress)发回给读写器。
(c)读写器:读写器发送(C1,N,TAddress,RAddress)到服务器进行标签认证。
(d)服务器:服务器收到读写器发来的(C1,N,TAddress,RAddress)后,首先检查TAddress是否存在。如果TAddress不存在,标签认证失败,服务器停止会话。否则,查询TAddress对应的标签账户的余额balanceBC,然后执行以下步骤。
判断:服务器计算C2=H(TAddress⊕balanceBC⊕N)。如果C1==C2,则表示上一次认证的最后一条消息丢失或被攻击者拦截;若C1≠C2,服务器计算C4=H(TAddress(balanceBC⊕M)⊕N)。如果C1==C4,则表示上一次认证是完整的。如果上述两种情况都不符合,标签认证失败,服务器停止会话,不再执行以下步骤更新、发送、e)和f)。
更新:如果上一步中比较结果是C1==C2,则在区块链中记录与该标签账户相关的拦截记录,balanceBC保持不变(即balanceBC'=balanceBC)。服务器计算C3=H(balanceBC⊕N),并将C3发送给读写器。如果比较结果是C1==C4,服务器会解锁读写器的帐户,并从读写器帐户向标签的发送M,并更新balanceBC(即balanceBC'=balanceBC+M)。服务器计算C5=H(balanceBC'⊕N),并将C5发送给读写器。
(e)读写器:读写器收到C3(或C5)然后转发给标签。
(f)标签:标签计算C6=H(balance⊕N),并检查等式C6==C3(或C5)是否成立。如果成立,标签成功认证读写器,并更新balance'=balance+M。若不成立,认证失败,标签拒绝进一步通信。
表1协议中用到的符号说明表
本发明实施例的关键点在于本发明实施例提供提出了一种基于区块链的新型分布式RFID双向认证安全协议。由于区块链本质上是由网络中的每个节点维护的分布式账本,因此本发明实施例提供的协议可以在完成安全认证的同时保证每个部门在没有数据库和可信第三方的情况下的隐私。
本发明实施例的有益效果如下:
本协议保证了各部门的隐私性:由于协议中只涉及标签账户的地址和余额,且各部门的<真实对象——ID——帐户地址>映射表只能自行存储,所以敏感ID相关信息不会透过协议中使用的信息被泄露,这保证了部门的隐私。
本协议保证了以下安全性:标签匿名性、标签可用性、前向安全性、抵抗重放攻击、抵抗主动攻击、部分保护标签不可追踪性。具体的分析如下。
(1)标签匿名性:在本发明实施例提供的协议中,标签的真实ID在初始化阶段被匿名为区块链上的帐户地址(TAddress)。在认证过程中,每条消息都受到由随机数N辅助的单向散列hash函数的保护,因此此协议可以保护标签的匿名性。
(2)标签可用性:标签可用性通常包括抵抗DoS攻击和抵抗去同步攻击。在本发明实施例提供的协议中,标签不需要具有生成随机数的功能,因此不会因为随机数被耗尽而拒绝服务。另外,即使最后的读写器验证消息丢失或被攻击者拦截,也不会导致标签信息与区块链失去同步。这是因为服务器将判断C1是否与C2或C4一致,在这两种情况下,无论标签之前是否收到该消息,都可以验证标签。
(3)前向安全性:协议实现了前向安全性是因为标签会在hash之前将TAddress、N、balance做异或运算。由于N和balance在每一轮中都会变化,所以即使攻击者知道当前balance和N,他也不会知道前一个的哈希结果,这保证了前向安全性。
(4)抵抗重放攻击:与前向安全类似,读写器将在每轮中产生一个新的随机数N,balanceBC和balance也会改变。所以即使攻击者窃听到了上一轮的所有消息,他也无法通过重放消息来通过身份验证。
(5)抵抗主动攻击:考虑攻击者可以用随机数N'主动质询标签,然后从标签获得响应{C1'=H(TAddress⊕balance⊕N'),TAddress}。但是由于hash是单向函数,因此他无法从C1'反向推导出balance。因此,当合法读写器用随机数N进行质询时,他无法构造一个正确的消息返回给读写器,也就意味着他无法冒充合法标签进行进一步的通信,即本发明实施例提供的协议完全抵抗主动攻击。
(6)标签不可追踪性:严格来说,本发明实施例提供的协议可能会遭受跟踪攻击。因为它在每次认证中使用相同的TAddress。但即使攻击者找到两次相同的TAddress,他也无法推断出该标签的真实ID号,这意味着本协议在某种程度上保证了标签不可追踪。
图6为根据本发明实施例提供的一种服务器的结构框图,如图6所示,所述设备包括:处理器(processor)601、存储器(memory)602和总线603;其中,所述处理器601和所述存储器602通过所述总线603完成相互间的通信;所述处理器601用于调用所述存储器602中的程序指令,以执行上述各方法实施例所提供的方法,例如包括:接收读写器发送的第一参数C1、随机数N、标签账户地址TAddress和读写器账户地址RAddress;若获知自身维护的区块链中存储有标签账户地址TAddress,则根据标签账户地址TAddress、标签账户余额balanceBC和随机数N,生成第二参数C2;若获知第一参数C1与第二参数C2相等,则判定本次读写器对标签认证成功,并根据标签账户余额balanceBC和随机数N,生成第三参数C3并通过读写器发送至标签,以使得标签基于第三参数C3,获取标签对读写器的认证结果。
图7为根据本发明实施例提供的一种标签的结构框图,如图7所示,所述设备包括:处理器(processor)701、存储器(memory)702和总线703;其中,所述处理器701和所述存储器702通过所述总线703完成相互间的通信;所述处理器701用于调用所述存储器702中的程序指令,以执行上述各方法实施例所提供的方法,例如包括:若第一参数C1与第二参数C2相等,则接收服务器发送的第三参数C3;基于第三参数C3,获取标签对读写器的认证结果。
本发明实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如包括:接收读写器发送的第一参数C1、随机数N、标签账户地址TAddress和读写器账户地址RAddress;若获知自身维护的区块链中存储有标签账户地址TAddress,则根据标签账户地址TAddress、标签账户余额balanceBC和随机数N,生成第二参数C2;若获知第一参数C1与第二参数C2相等,则判定本次读写器对标签认证成功,并根据标签账户余额balanceBC和随机数N,生成第三参数C3并通过读写器发送至标签,以使得标签基于第三参数C3,获取标签对读写器的认证结果。
本发明实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如包括:若第一参数C1与第二参数C2相等,则接收服务器发送的第三参数C3;基于第三参数C3,获取标签对读写器的认证结果。
本发明实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行上述各方法实施例所提供的方法,例如包括:接收读写器发送的第一参数C1、随机数N、标签账户地址TAddress和读写器账户地址RAddress;若获知自身维护的区块链中存储有标签账户地址TAddress,则根据标签账户地址TAddress、标签账户余额balanceBC和随机数N,生成第二参数C2;若获知第一参数C1与第二参数C2相等,则判定本次读写器对标签认证成功,并根据标签账户余额balanceBC和随机数N,生成第三参数C3并通过读写器发送至标签,以使得标签基于第三参数C3,获取标签对读写器的认证结果。
本发明实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行上述各方法实施例所提供的方法,例如包括:若第一参数C1与第二参数C2相等,则接收服务器发送的第三参数C3;基于第三参数C3,获取标签对读写器的认证结果。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种RFID双向认证方法,其特征在于,包括:
接收读写器发送的第一参数C1、随机数N、标签账户地址TAddress和读写器账户地址RAddress;
若获知自身维护的区块链中存储有标签账户地址TAddress,则根据标签账户地址TAddress、标签账户余额balanceBC和随机数N,生成第二参数C2;
若获知第一参数C1与第二参数C2相等,则判定本次读写器对标签认证成功,并根据标签账户余额balanceBC和随机数N,生成第三参数C3并通过读写器发送至标签,以使得标签基于第三参数C3,获取标签对读写器的认证结果;
其中,第一参数C1为标签根据标签账户地址TAddress、标签余额balance和读写器发送的随机数N生成,标签账户地址TAddress为区块链根据标签ID生成,读写器账户地址RAddress为区块链根据读写器ID生成。
2.根据权利要求1所述的方法,其特征在于,还包括:
若获知第一参数C1与第二参数C2相等,则判定上一次认证过程异常,并记录在自身维护的区块链中;其中,认证过程异常为认证消息丢失或被拦截。
3.根据权利要求1所述的方法,其特征在于,还包括:
若获知第一参数C1与第二参数C2不相等,则根据标签账户地址TAddress、标签账户余额balanceBC、交易金额M和随机数N,生成第四参数C4;
若获知第一参数C1与第四参数C4相等,则判定本次读写器对标签认证成功,且上一次认证过程正常,并根据交易金额M对标签账户余额balanceBC进行更新,并根据更新后的标签账户余额balanceBC和随机数N,生成第五参数C5并通过读写器发送至标签,以使得标签基于第五参数C5,获取标签对读写器的认证结果。
4.根据权利要求3所述的方法,其特征在于,还包括:
若获知第一参数C1与第二参数C2相等,则标签账户余额balanceBC保持不变;
若获知第一参数C1与第四参数C4相等,则根据交易金额M对账户余额balanceBC进行更新。
5.根据权利要求3所述的方法,其特征在于,还包括:
若获知第一参数C1与第四参数C4不相等,则判定读写器对标签认证失败。
6.根据权利要求1所述的方法,其特征在于,还包括:
若获知区块链中未存储有标签账户地址TAddress,则判定读写器对标签认证失败。
7.一种RFID双向认证方法,其特征在于,包括:
若第一参数C1与第二参数C2相等,则接收服务器经读写器发送的第三参数C3;
基于第三参数C3,获取标签对读写器的认证结果;
其中,第三参数C3是服务器根据标签账户余额balanceBC和随机数N生成,第一参数C1由读写器发送至服务器,第二参数C2是服务器根据标签账户地址TAddress、标签账户余额balanceBC和随机数N生成;第一参数C1为标签账户地址TAddress、标签余额balance和读写器发送的随机数N生成,标签账户地址TAddress为区块链根据标签ID生成。
8.根据权利要求7所述的方法,其特征在于,还包括:
若第一参数C1与第四参数C4相等,则接收服务器发送的第五参数C5;
基于第五参数C5,获取标签对读写器的认证结果;
其中,第五参数C5根据更新后的标签账户余额balanceBC和随机数N生成,第四参数C4根据标签账户地址TAddress、标签账户余额balanceBC、交易金额M和随机数N生成。
9.根据权利要求8所述的方法,其特征在于,获取标签对读写器的认证结果,进一步包括:
根据标签余额balance和随机数N,获取第六参数C6;
若获知第三参数C3和第六参数C6相等,或者,第五参数C5和第六参数C6相等,则判定标签对读写器认证成功。
10.根据权利要求7所述的方法,其特征在于,还包括:
若标签对读写器认证成功,则根据交易金额M,对标签余额balance进行更新。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810792139.2A CN109190725B (zh) | 2018-07-18 | 2018-07-18 | 一种rfid双向认证方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810792139.2A CN109190725B (zh) | 2018-07-18 | 2018-07-18 | 一种rfid双向认证方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109190725A CN109190725A (zh) | 2019-01-11 |
CN109190725B true CN109190725B (zh) | 2020-07-07 |
Family
ID=64936248
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810792139.2A Active CN109190725B (zh) | 2018-07-18 | 2018-07-18 | 一种rfid双向认证方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109190725B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109788465B (zh) * | 2019-01-22 | 2020-04-14 | 西安电子科技大学 | 用于区块链上基于射频识别的双向身份认证方法 |
CN111953494A (zh) * | 2019-05-15 | 2020-11-17 | 株式会社日立制作所 | 一种认证方法及装置 |
CN112019336B (zh) * | 2019-05-30 | 2021-12-10 | 中国科学技术大学 | Rfid认证方法及装置 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7791451B2 (en) * | 2006-10-17 | 2010-09-07 | International Business Machines Corporation | Methods, systems, and computer program products for providing mutual authentication for radio frequency identification (RFID) security |
CN102510335A (zh) * | 2011-11-10 | 2012-06-20 | 西北工业大学 | 基于Hash的RFID双向认证方法 |
US20180096175A1 (en) * | 2016-10-01 | 2018-04-05 | James L. Schmeling | Blockchain Enabled Packaging |
CN106792686B (zh) * | 2016-12-13 | 2020-01-07 | 广东工业大学 | 一种rfid双向认证方法 |
CN107545501A (zh) * | 2017-07-17 | 2018-01-05 | 招商银行股份有限公司 | 资产管理方法、***及计算机可读存储介质 |
CN108053001B (zh) * | 2017-12-14 | 2021-09-28 | 上海密尔克卫化工储存有限公司 | 电子仓单的信息安全认证方法和*** |
-
2018
- 2018-07-18 CN CN201810792139.2A patent/CN109190725B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN109190725A (zh) | 2019-01-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Fakroon et al. | Secure remote anonymous user authentication scheme for smart home environment | |
Kapoor et al. | Single RFID tag ownership transfer protocols | |
JP5959410B2 (ja) | 決済方法、これを実行する決済サーバ、これを実行するためのプログラム及びこれを実行するシステム | |
US8209744B2 (en) | Mobile device assisted secure computer network communication | |
CN110945549A (zh) | 用于对用于跨机构数字认证的用户拥有的凭证的通用存储和访问的方法和*** | |
US11063941B2 (en) | Authentication system, authentication method, and program | |
CN108737442A (zh) | 一种加密校验处理方法 | |
Wang et al. | Blockchain-based mutual authentication security protocol for distributed RFID systems | |
Abughazalah et al. | Secure improved cloud-based RFID authentication protocol | |
Wang et al. | A server independent authentication scheme for RFID systems | |
Li et al. | A hash based remote user authentication and authenticated key agreement scheme for the integrated EPR information system | |
CN109190725B (zh) | 一种rfid双向认证方法 | |
JP5355685B2 (ja) | 無線波読取装置による無線タグの認証方法 | |
CN107147498B (zh) | 用于rfid认证过程中的认证方法和传递信息的加密方法 | |
Brelurut et al. | Survey of distance bounding protocols and threats | |
Akgün et al. | Attacks and improvements to chaotic map‐based RFID authentication protocol | |
Kumar et al. | Ultra-lightweight blockchain-enabled RFID authentication protocol for supply chain in the domain of 5G mobile edge computing | |
CN114466353A (zh) | App用户ID信息保护的装置、方法、电子设备及存储介质 | |
Liou et al. | T-auth: A novel authentication mechanism for the IoT based on smart contracts and PUFs | |
CN117376026A (zh) | 物联网设备身份认证方法及*** | |
Kumari | Real time authentication system for RFID applications | |
Chabbi et al. | RFID and NFC authentication protocol for securing a payment transaction | |
Erguler et al. | Practical attacks and improvements to an efficient radio frequency identification authentication protocol | |
Azad et al. | A lightweight protocol for RFID authentication | |
KR100955880B1 (ko) | Rfid 환경에서의 보안 방법, 이를 기록한 기록 매체 및그 시스템 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |