基于随机Hash链的双向安全认证RFID协议
2021-03-23董国超邓祖强张金娈牛永亮
周 静,董国超,邓祖强,张金娈,刘 超,牛永亮
(1.南瑞集团有限公司(国网电力科学研究院有限公司),江苏 南京 210061;2.国电南瑞科技股份有限公司北京能源科技分公司,北京 100085; 3.中国科学院信息工程研究所,北京 100093;4.中国科学院大学网络空间安全学院,北京 100049; 5.山西财经大学网络与信息教育技术中心,山西 太原 030006)
0 引 言
射频识别(RFID)技术是一种利用电磁发射或电磁耦合实现无接触信息传递,进而自动识别和获取目标对象信息数据的技术[1],近年来,基于RFID的应用在各行各业均有需求,对RFID的使用者来说如何保证RFID系统的安全使用变得尤为重要。
RFID系统由标签、阅读器和应用系统3个部分构成[2],如图1所示,其主要工作流程为:1)阅读器向标签发起验证请求,标签收到后会产生响应消息并将响应消息及时返回给阅读器。在该传输过程中,攻击者可嗅探到用户的传输报文,然后通过重放、伪装、标签追踪[2]等方法对RFID系统发起攻击。2)阅读器接收到标签返回的响应数据报文后将其转发到应用系统中,应用系统对接收到的信息进行鉴别检测,将验证结果返回至标签。在此验证过程中,如果标识ID发生泄露,攻击者可访问到该标签上的隐私信息,造成隐私泄露事故。
图1 RFID系统构成图
通过对RFID系统工作流程分析可将其面临的安全性问题归结为:
1)隐私泄露[3]。RFID系统对数据的访问限制策略较弱,未设置合理的数据访问策略,导致数据隐私泄露。
2)假冒攻击[3]。当攻击者使用假冒阅读器记录了标签的响应信息时,攻击者可使用该响应来回复阅读器,使得阅读器能够验证伪造的响应。
3)重放攻击[4]。这是攻击者捕获到RFID系统中传输的信息后,重复发送捕获的信息到系统中的一种攻击手法。
本文在剖析Hash-lock、Hash链协议的安全性后,提出一种标签与阅读器可互相完成验证的RFID协议,该协议使得RFID系统具有抗重放、防假冒、防隐私泄露的安全特性。
1 相关研究
目前Hash-lock[5]安全协议簇以及Hash链[6]安全协议簇已成为解决RFID系统安全性的主要实施方案,但这2类协议仍存在缺陷。其中Hash链协议只解决了向前安全性[6],但在实际使用中系统仍会遭受到假冒攻击;Hash-lock协议虽然可以有效保证系统的相关信息不被非法读取,但仍无法阻止假冒攻击和位置追踪。
1.1 Hash-lock协议簇
Hash-lock协议是Weis等[5]最先提出的RFID系统安全协议。基于Hash-lock协议提出的随机Hash-lock[7]协议,根据验证过程不断更新Key值来保证系统的向前安全性以及系统的隐私保护。在随机Hash-lock协议提出后,越来越多基于Hash-lock的研究开始出现[8-10],逐步形成了以Hash-lock协议为蓝本的RFID认证协议簇。
基于Hash-lock协议簇的安全认证设计了标签访问控制保护机制,通过访问控制策略的设置,实现了标签上数据隐私安全,使得标签可拒绝非法的访问[11]。
基于Hash-lock协议的协议簇仍存在安全隐患,其安全隐患一方面是由于标签在每次验证过程中,所使用的标签的metaID[5]一直是一个固定的值,一旦攻击者截获该值,攻击者便可根据该值查询到标签的详细位置信息,导致相关信息的泄露。在该类协议簇的验证过程中,其密钥key在传输过程中也并未经过加密处理,使得key值易于被窃取。攻击者可通过窃取metaID、key来对系统进行假冒攻击[7]。另一方面,基于Hash-lock的协议簇只实现了阅读器对标签身份的验证,标签并没有检测阅读器是否被伪造,不能有效防止假冒攻击。文献[10]基于Hash-lock提出的加密标签身份和secret协议,实现了标签ID的向前安全性,但因Hash-lock协议簇自身特性易受到假冒、位置追踪等攻击,所以该类协议簇的直接使用会存在较大安全风险。
1.2 Hash链协议簇
Hash链协议被NTT实验室提出之后,随机Hash链、Hash链协议优化等方案[12-13]陆续被提出,形成了一类以Hash链协议为基础蓝本的RFID认证协议簇。Hash链协议可很好地满足系统对向前安全性的需求,解决标签位置可被追踪问题,但是在该类协议的验证过程中并未实现标签对阅读器身份合法性的检验,在应用系统与标签之间的通信仍然会遭受到假冒攻击。
Hash链协议簇,标签中保存着初始标识ID以及初始的密钥S,在应用系统中保存着预置标签的初始标识ID以及初始密钥[14]。在该协议簇的认证过程中,每次验证后标签上的密钥值会随之改变。通过动态更新密钥,可有效防止泄露与标签位置有关的隐私信息[15]。但是该协议簇只满足单向认证[16],标签并没有检验阅读器是否被伪造,攻击者一旦捕获到从标签传出的消息,仍可进行假冒攻击。
2 双向认证协议设计
本文设计基于随机Hash链的双向安全认证RFID协议,可实现阅读器和标签间的双向认证并且有效地保护系统防止系统遭受假冒攻击、重放攻击和位置追踪的攻击威胁。本文协议在Hash链协议上进行优化,使得标签可以验证阅读器是否被恶意伪造利用,以应对假冒攻击。本文在协议随机数以及相关信息的传输过程中,设计加密函数对通信链路进行加密,以防止信息被恶意窃取利用。
2.1 协议前提条件
本文协议令阅读器随机得到的数值为K,标签的额外验证属性为TagR(该TagR表示在标签上预置的对阅读器的身份验证属性值),在标签和应用系统中同时存有共享密钥S。在标签上内置哈希函数H、哈希函数G。函数H主要用来动态更新标签的密钥值Si(该Si表示在标签上经过i次动态更新后的密钥值),函数G主要是为标签和阅读器之间的信息的传递提供安全性验证。在应用系统中,当对标签的验证通过后,会自动更新标签的内置密钥Si。
2.2 协议执行流程
该协议的执行过程主要包括标签上的操作、阅读上的器操作和应用系统上的操作。
1)在标签上执行的操作。使用预置的哈希函数G,计算G(Si),并将G(Si)返回给阅读器;标签对阅读器身份验证时,使用哈希函数H来比较H(TagR)与阅读器返回值是否相等,若返回值相等,则表示标签对阅读器身份验证成功,并更新Si+1=H(G(Si)),否则,将阅读器视作假冒恶意利用的阅读器,并中止当前的验证。
2)在阅读器上主要执行的操作。产生随机数Ki。
3)在应用系统中主要执行的操作。通过哈希函数G(Si)验证标签身份的合法性,对标签的属性TagR,通过哈希函数H计算H(TagR)并返回给标签,以检验阅读器是否属于当前的RFID系统。
如图2所示为该协议的执行过程。具体过程说明如下:
图2 双向认证协议示意图
1)认证开始时,阅读器向标签发送验证标签身份的请求,该发送请求中携带阅读器产生的随机数Ki。
2)标签收到相应的查询信息后,标签对密钥Si使用哈希函数G进行哈希运算得到G(Si)并使用密钥Si对阅读器发送的随机数Ki进行异或加密,并将哈希运算的结果以及加密后的随机值发送到阅读器。
3)阅读器将此消息继续发送到应用系统,应用系统对所有的标签记录使用哈希函数G进行哈希运算,如果哈希运算后的数值与阅读器传送的数值相等,则阅读器对标签的验证成功,并使用当前的密钥Si对加密的随机值进行异或解密得到Kj并传送至阅读器,再比较Kj与Ki的值是否相等,如果2个值相等,则验证成功。
4)阅读器对标签认证成功后,应用系统将标签属性值TagR使用哈希函数H进行哈希运算,并经过密钥Si异或加密后发送给阅读器。
5)阅读器将此消息继续发往标签。
6)标签对从阅读器接收到信息使用密钥Si对该消息值进行异或解密,并对预置属性值TagR使用哈希函数H计算得到H(TagR),与阅读器解密后的消息做比较,如果值相等,则标签对阅读器验证成功,同时更新标签密钥Si为Si+1=H(G(Si)),完成双向认证。
7)标签将更新后的密钥Si+1使用密钥Si进行异或加密后发送到阅读器、应用系统后,应用系统使用Si解密标签返回的信息后,更新Si的值为Si+1。
2.3 协议分析
在RFID系统中执行的计算次数是影响系统效率的重要因素[17]。在Hash链协议簇中,在验证应用系统身份合法性时,要进行G(Hj(Si))次的运算,计算复杂度为O(n2),在标签上执行的运算的时间复杂度为O(1),RFID系统总复杂度为O(n2+1)[18]。在本文协议中,应用系统会即时更新Si的数值,应用系统执行计算的复杂度降为O(n),在标签上执行的运算的复杂度仍为O(1),RFID系统复杂度为O(n+1)。与主流Hash链协议簇相比,本协议减少了程序的计算次数,提升了RFID系统的执行效率。
3 安全协议的验证分析
3.1 BAN逻辑证明
本协议的形式化验证采用了BAN逻辑证明[19]。本文将阅读器和标签的执行过程简化为4条通信消息,在验证过程中,假设应用系统与阅读器间具有可信安全的通信链路,其中R代表阅读器以及应用系统的集合,在本节中,若无特别说明R以及阅读器代表阅读器与应用系统的集合[20],T代表标签,如图3所示。
图3 协议抽象模型
该协议的具体过程如下:
1)R→T:Nk,阅读器给标签发送到随机数Nk。
2)T→R:Nk,G(Si),标签给阅读器发送随机数Nk,以及G(Si)。
3)R→T:H(TagR),阅读器给标签返回数据H(TagR)。
4)T→R:H(Si+1),标签返回更新后的H(Si+1)。
BAN逻辑验证分析是经过理想化协议定义[19]的以及初始化状态及假设设定;通过逻辑推理规则证明得到最后的验证目标。本文涉及的函数符号含义如下[19]:
1)see(A,B)表示A接收到B消息。
2)said(A,B)表示A发送B消息。
3)bel(A,B)表示A相信B。
4)secret(A,B,C)表示B是A和C之间的共享秘密。
证明过程如下:
1)理想化协议。
2)初始状态及假设。本协议假设应用系统与阅读器间具有可信安全的通信链路。
3)协议目标。本文协议验证的目标是在阅读器对标签消息G(Si)的验证,以及标签对阅读器发送的标签属性Tag的合法性的验证过程中,其通信过程的安全性:
4)在BAN逻辑证明的过程中,使用了消息意义规则、接收规则、传递原则等逻辑推理方法[11,21]。
对目标G1的推理验证过程如下:
step1通过M2可知,阅读器可以接收到标签发送的消息G(Si)。
a1:see(R,G(Si))
step2通过A2与a1的公式含义,结合消息意义规则推导可知,阅读器对标签发送的消息是可信的。
a2:bel(R,said(T,G(Si)))
step3通过M2可知,阅读器会接收到随机值。
a3:see(R,Nk)
step4通过A2与a3公式含义,结合接收规则推导可知,阅读器能接收到标签发出的消息G(Si)以及随机值Nk。
a4:see(R,said(T,(G(Si),Nk)))
step5通过a2与a4公式含义,结合消息意义规则推导可知,阅读器对标签发出的消息是可信的。
a5:bel(R,said(T,(G(Si),Nk)))
Step6通过a5的传递规则可知,阅读器对标签发出的消息G(Si)是可信的。
a6:bel(R,said(T,G(Si)))
由此可知,阅读器能验证标签传输的G(Si)是安全的,可知验证目标G1的安全性。
对目标G2的安全验证过程如下:
step1通过M3可知,标签可接收到对标签属性TagR的哈希信息。
a7:see(T,H(TagR))
step2通过A2与a7的公式含义,结合消息意义规则推导可知,标签对阅读器发出的消息H(TagR))是可信的。
a8:bel(T,said(R,H(TagR)))
由此证明,该协议可实现G2目标。
3.2 安全性分析
如表1可知,该双向认证协议在满足高执行效率前提下,实现了传输数据的访问控制安全和隐私安全,可有效防止攻击者蓄意的假冒、重放和位置追踪攻击,确保了RFID系统对安全目标的需求。
表1 协议安全性比较
1)向前安全性。本文协议中应用系统与标签使用的密钥S是一致同步的,由于哈希函数的单向性以及标签的密钥S会动态改变,所以攻击者无法通过攻击手段查询到标签之前的相关信息。
2)位置跟踪。Hash-lock协议簇以及Hash链协议簇产生的响应信息是固定不变的,而本文协议中设计的标签密钥S是动态更新,并且每次对阅读器的响应也随响应次数变化,可有效防止攻击对标签特定响应追踪造成位置信息的泄漏。
3)窃听与非法读取。Hash-lock以及Hash链协议簇中信息都是明文传输,容易被窃听,本文协议中信息在传输过程中经过了密钥加密,即使在非安全的信道传播中,系统中的信息被攻击者窃取到,攻击者也无法有效利用该信息进行恶意攻击。
4)假冒攻击。本文协议设计了阅读器和标签身份的互认证,可有效地防止在信息传输的过程中遭受假冒攻击,而在Hash-lock协议簇、Hash链协议簇中均未实现标签对阅读器的验证。
5)重放攻击。本文协议设计每次认证过程都要对随机值K进行验证,可保证即使攻击者截获到传输的消息,仍不能进行重放攻击。
4 结束语
本文通过分析借鉴Hash链协议的设计优势,提出基于随机Hash链的双向安全认证RFID协议方案,该方案较好地解决了RFID系统数据通信过程中的双向认证和通信隐私安全,并可防止RFID系统遭受假冒攻击和重放攻击,有效保障了传输过程中数据的真实性。