基于Hash函数的RFID双向认证协议
2018-02-12高华黄稳定鲁俊
高华 黄稳定 鲁俊
摘要:为了改善RFID无线传感网络中读写器与标签之间安全隐私容易泄漏的问题,在现有安全协议研究基础上,提出一种改进的RFID双向认证协议。该协议包含读写器、电子标签双重认证,通过安全性检测可以有效抵御重传攻击、窃听、位置跟踪、非法读取以及假冒攻击等不安全问题,具有成本低、效率高、安全性好等优点。通过对协议建立理想化模型,利用BAN逻辑形式化分析方法从理论上证明其安全性。通过软件仿真模拟RFID系统,对读写器和标签的双向认证进行仿真测试,证明了协议的实用性。
关键词:射频识别;安全认证协议;安全性分析;BAN逻辑;软件仿真
RFID Mutual Authentication Protocol Based on Hash Function
GAO Hua HUANG Wen ding LU Jun
(1.Academic Affairs Office,University of Shanghai for Science and Technology, Shanghai 200093, China;
2.The Third Institute, Ministry of Public Security,Shanghai 201204, China;
3.Shanghai Electric Central Research Institute, Shanghai 200070, China)
Abstract:In order to improve issue of easy leak of privacy between readers and tags in RFID wireless sensor networks, an improved RFID bidirectional authentication protocol is proposed based on the existing security protocols. The protocol includes dual authentication of the reader and the tag, and it can effectively resist location tracking, retransmission attacks, eavesdropping and illegal reading and counterfeiting attacks and other unsafe problems through security analysis with advantages of low cost, high efficiency and high security advantages. BAN logic formalization analysis is used to prove the security of the protocol in theory by establishing an idealized model of the protocol. The two way authentication of the reader and the tag is simulated by software simulation, which demonstrates the practicability of the protocol.
Key Words:radio frequency identification;security authentication protocol;security analysis;BAN logic; software simulation
0 引言
射頻识别(Radio Frequency Identification,RFID)技术是一种利用电磁耦合或者电磁发射实现无接触信息传递,从而实现对目标对象信息数据的获取和自动识别[1]。RFID技术能快速、稳定、可靠地采集数据,同时对数据进行加工,完成响应,已在生活中多个领域得到了应用并充分突显出其强大的实用价值。针对可变RFID系统的安全问题,很多国内外学者已进行大量研究并提出相应的解决方案,促进了RFID系统安全问题研究的发展[2]。认证方案主要分为两大类:一类是物理安全机制,其是使用物理方法完善RFID系统安全性问题的机制;另一类是认证安全机制,其是使用成熟的密码体制以设计满足RFID系统安全性的认证协议。
Hash Lock协议是由Sarma等[3 4]提出的一种安全协议,但很容易受到位置追踪、重传攻击和假冒攻击。Weis等[5 6]提出一种随机化Hash Lock安全协议。RFID系统在每一次认证时,读写器需要请求后端数据库保存的全部标签ID,导致随机化Hash Lock很难在实际生产中广泛使用。Hash链协议是由NTT实验室提出的一种基于共享秘密的安全协议[7]。由于RFID系统标签需要嵌入2个不同的哈希函数,一个用于认证请求响应,一个用于秘密值更新,因此增加了RFID系统标签的制造成本。曾丽华等[8]提出一种 “Key值更新随机Hash锁对RFID安全隐私的加强” 安全认证协议。RFID系统标签需要嵌入2种不同的哈希函数,一个用于读写器认证响应,一个用于随机关键字更新,增加了标签制造成本[9]。
针对前人对RFID系统研究存在的不足,本文提出一种新的基于共享密钥Hash函数的RFID双向认证协议,采用双向认证和向前安全检验,在防止位置跟踪、防重传攻击和假冒攻击方面做了新的工作,能够有效防止窃听与非法读取,同时该协议具有系统低复杂性和低成本的优点。使用BAN逻辑和软件进行仿真实验,结果证明了协议的适用性和安全性。
1 RFID简介
1.1 RFID系统构成
RFID系统一般由三大部分构成:RFID标签、RFID读写器以及后端数据库[10 11]。RFID系统基本构成如图1所示。
(1)RFID标签。主要由无线通信天线及芯片组成,通过在电子标签中存储需要被识别物品的相关信息,以标识和分类不同物品。
(2)RFID读写器。读写器包含无线通信天线、射频接口和逻辑控制单元3个主要组成部分,主要实现与电子标签之间的数据通信,实现数据的读出和写入。
(3)后端数据库。对读写器转发过来的全部电子标签相关信息进行集中统计与分析,并通过特定的安全信道反馈给读写器。
1.2 RFID安全隐私需求
RFID技术在方便人们生活的同时,也带来诸多安全隐患,造成RFID系统出现安全隐私问题的根本原因是RFID系统应用完全开放。RFID系统面临的具体安全问题主要包括:重传攻击、位置跟踪、窃听与非法读取、假冒攻击[12]。能否抵御重传攻击等安全威胁,通常被用作评价RFID系统应用层协议安全性的重要指标[13]。
1.3 基于Hash函数的RFID安全认证协议
基于Hash函数的RFID安全认证协议是刘明生等[14]提出的一种安全认证协议。标签存储IDt,读写器存储IDr,后台数据库存储系统全部标签和读写器的记录对(IDt, H(IDt))、(IDr, H(IDr)),其中H是哈希函数。在每次标签认证过程中,假设数据库系统中存储N标签,认证时后台服务器需要执行2次记录搜索、1次Hash 函数运算。读写器需要生成一个随机数、执行2次Hash函数运算,相比而言增加了读写器计算能力需求[15]。标签需要执行1次数值比较和3次Hash函数计算。RFID系统中添加了异或操作,同时增加了系统制造成本。
2 基于共享秘密Hash函数的RFID安全认证协议
通过对基于Hash函数的RFID安全认证协议的深入學习与研究[16 17],针对其中存在的一些不足与安全隐患,本文提出一种新的改进型安全认证协议——基于共享秘密Hash函数的RFID安全认证协议。协议包含读写器、电子标签的双重认证,仿真实验结果证明该协议能够有效提高RFID认证的安全性[18]。
2.1 协议原理
标签存储ID、S和H(ID||S),认证前锁定标签。将所有标签数据对(ID、S、H(ID||S))存储到后端数据库,并将随机数生成器嵌入到后端数据库中。ID是唯一标识,S是认证前系统预先设置的秘密值,Hash(ID||S)为ID||S的单向Hash函数,其中S与Hash(ID||S)会因随机数的不同而不断更新。协议流程如图2所示。
2.2 认证步骤
安全协议步骤如下:
(1)后端数据库生成随机数R并发送给读写器。
(2)读写器向标签发出Query、R认证请求。
(3)标签计算H(ID||R||S),然后将(H(ID||R||S)、H(ID||S))数据对发送给读写器,并自行计算ST=H(R||S)、H(ID||ST)。
(4)读写器将接收到的标签信息转发到后端数据库。
(5)后端数据库根据接收到的数据,搜索是否存在(IDj,S,H(IDj||S))的H(IDj||S)与读写器转发过来的数据H(ID||S)相同。若相同,则根据该组的IDj、S计算H(IDj||R||S),并与读写器转发过来的数据H(ID||R||S)比较是否一致。若一致,则进行下一步,否则标签认证失败。
(6)后端数据库计算SDB=H(R||S)、H(ID||SDB)、H(IDj||R||SDB),并通过读写器将H(ID j||R||SDB)转发给标签。后端数据库使用SDB和H(ID||SDB)替换相应的S和H(ID||S)。
(7)计算H(ID||R||ST),同时与读写器转发过来的数据H(IDj||R||SDB)比较是否一致。若一致,则读写器认证成功,标签使用ST、H(ID||ST)替换相应的S、H(ID||S),否则读写器认证失败。
3 实验与分析
3.1 数值实验
假设认证前数据库系统记录了5个标签,ID分别为1、2、3、4、5,S分别为a、b、c、d、e,H(ID||S)分别为H(1||a)、H(2||b)、H(3||c)、H(4||d)、H(5||e),认证前数据库标签信息如表1所示。
假设读写器需要对ID为1的标签进行认证,那么数值实验的认证步骤如下:
(1)假设后台数据库生成随机数7,并将其发送到读写器。
(2)读写器发送认证请求和随机数7到标签。
(3)标签根据自身的唯一标识ID、哈希函数H和共享秘密值S计算H(ID||R||S),并将结果(H(1||7||a)、H(1||a))数据对响应给读写器。
(4)读写器将(H(1||7||a)、H(1||a))数据对转发到后台服务器。
(5)后台数据库根据H(1||a)检索数据库H(ID||S)列记录,找到ID等于1、S等于a的记录,然后计算H(1||7||a),并与读写器转发过来的H(1||7||a)对比是否一致。如果不一致,则标签认证失败,一致则标签认证通过,继续向下运行。
(6)后台数据库计算H(7||a)、H(1||H(7||a))、H(1||7||H(7||a)),使用H(7||a)替换数据库ID为1的S列,使用H(1||H(7||a))替换数据库ID为1的H(ID||S)列,并将H(1||7||H(7||a))发送给读写器。
(7)读写器将H(1||7||H(7||a))转发给标签。
(8)标签计算H(7||a)、H(1||H(7||a))、H(1||7||H(7||a)),比较H(1||7||H(7||a))与读写器转发过来的H(1||7||H(7||a))数据是否相等。如果相等,则读写器认证通过,并使用H(7||a)替换S,使用H(1||H(7||a))替换H(ID||S),否则读写器认证失败。认证完成后数据库标签记录如表2所示。
3.2 协议安全性分析
每个表均需要标注如下:
(1)双向认证。通过后端数据库比较H(IDj||R||S)与H(ID||R||S)是否相等,通过标签比较H(ID||R||ST)与H(IDj||R||SDB)是否相等,实现RFID系统合法身份的双向认证。
(2)向前安全。由于共享秘密值S、随机数R的可变性和Hash函数的单向性,即使非法获取了H(ID||R||S)和H(ID||S)的值,也无法回溯标签之前的相关信息。
(3)防位置跟踪。由于共享秘密值S和随机数R是動态变化与实时更新的,因此标签每一次回答读写器询问值H(ID||R||S)和H(ID||S)也是不等的,可以防止攻击者按照RFID系统标签特定的响应进行定位跟踪。
(4)防重传攻击。每次秘密数S是变化的,攻击者即使窃听到合法读写器前面发送的H(ID j||R||SDB)、合法标签前面发送的H(ID||S)和H(ID||R||S),也无法再次模拟出H(ID j||R||SDB)或H(ID||S)和H(ID||R||S)的值,有效防止了重传攻击。
(5)防窃听与非法读取。标签ID经过Hash函数加密后,即使在非安全信道传播,非法用户也无法窃听到标签的真实ID信息。
(6)防假冒攻击。因为在每次认证过程完成后,都对标签共享秘密值S和服务器共享秘密值S进行了更新,所以攻击者无法伪造秘密值S。攻击者伪造的标签响应与真实H(ID||S)和H(ID||R||S)不一致,因此无法通过读写器认证。读写器响应的H(ID j||R||SDB)与攻击者伪造的读写器响应不同,所以不会通过标签认证。
(7)低复杂性、低成本。将较为复杂的随机数产生器等运算转移到RFID系统后端数据库中,降低了RFID系统标签的复杂性,并且在标签中只嵌入一个哈希运算,同时又减少了RFID系统成本。
由此得出,基于Hash函数的RFID安全认证协议安全性能比较如表3所示。表3中以“×”表示不符合安全,以“√”表示符合安全。
3.3 BAN逻辑安全分析
3.3.1 惯性权重自适应调整
BAN逻辑分析时,假设读写器和后端数据库是主体A,标签是主体B。协议中S表示预共享秘密值,R表示后端数据库生成的随机数,ID i和ID t分别是后端数据库与标签中存放的唯一标识[19 20]。协议初始化假设如下:
3.3.2 理想化模型、逻辑规则及安全目标
在进行BAN分析时,可以抽象并省略掉与协议安全性分析间接相关的逻辑部分,只保留与协议安全性分析直接相关的逻辑部分,协议的理想化模型如下:
A{R,ID t} s(7)
B{R,ID i} s(8)
可能用到的逻辑规则包括消息含义规则、新鲜规则、随机数验证规则、仲裁规则,分别如式(9)、式(10)、式(11)、式(12)所示。
安全目标为:
3.3.3 分析推理及结论
(1) 证明 A|≡ID t 。
步骤一:由假设条件式(1)、理想化模型式(7)、消息含义规则式(9),可推导出式(15)。
步骤二:由假设条件式(3)、新鲜规则式(10)可推导出式(16)。
步骤三:由随机数验证规则式(11)可推导出式(17)。
步骤四:由假设条件式(5)、仲裁规则式(12),推导出目标结果: A|≡ID t 。
(2)证明 B|≡ID i 。
步骤一:由假设条件式(2)、理想化模型式(8)、消息含义规则式(9),可推导出式(18)。
步骤二:由假设条件式(4)、新鲜规则式(10),可推导出式(19)。
步骤三:由随机数验证规则式(11),可推导出式(20)。
步骤四:由假设条件式(6)、仲裁规则式(12),推导出目标结果: B|≡ID i 。
由上可推导出本文协议的安全目标 A|≡ID t和B|≡ID i 。因此,本文提出的安全协议能够有效实现RFID标签和读写器双向认证的安全目标。
3.4 仿真实验与分析
为验证基于共享秘密Hash函数的RFID双向认证协议的安全性和适用性,选用计算机软件模拟该协议进行仿真实验。
3.4.1 仿真实验系统软件结构
本文开发的仿真实验系统,主要以Eclipse作为系统开发环境,采用JavaSE 1.8开发系统应用软件,后台数据库管理系统采用MySQL关系型数据库,用MD5对通信数据进行加密。系统主要包括3个模块: 标签、后台服务器和读写器,各模块间通过TCP/IP通信。通过仿真实验软件模拟真实环境的RFID系统,并使用改进算法实现安全协议的认证过程。标签模块与读写器模块之间使用TCP/IP通信模拟射频通信,标签模块与读写器模块之间的通信信道为向前信道。图3为仿真实验系统软件结构。
3.4.2 协议报文设计
根据IP报文的设计思想,可将协议报文格式设计如下:报文首部的控制信息占3个字节,首字节表示协议的版本信息,第二个字节表示指令类型,第三个字节表示指令长度;控制信息部分之后就是实际的有效数据,即0个或多个数据字节。协议的报文格式如图4所示。
根据协议的认证过程,协议将发送和接收的报文分为6类,如表4所示。
3.4.3 仿真结果与分析
首先在数据库管理系统预先设置需要认证的标签信息,然后通过绑定、监听与连接端口,建立后台服务器、读写器和标签模块的通信链路,接下来选择一个合法的读写器和标签,并从后台服务器模块开始执行安全协议认证。完成一次安全协议认证,其后台服务器模块如图5示,读写器模块如图6示,标签模块如图7示。
当读写器和标签认证通过后,会生成新的秘密值S和H(ID||S),替换数据库标签信息表中相应的记录。认证前和认证后“合法标签1”的记录如表5所示。
从协议认证过程可以看出,后台服务器模块实现了对合法标签的安全认证,标签模块也实现了对合法读写器的安全认证,达到了协议双向认证的安全目标。
4 结语
本文通过分析目前典型的RFID安全认证协议,基于RFID系统制造成本和安全隐私问题的相关性,提出一种新的基于Hash函数的RFID动态认证协议,设计了相应的模拟认证过程,从不同角度对协议的性能进行分析,并使用形式分析方法BAN逻辑证明了新协议的安全性,最后在Eclipse环境下对该协议进行软件模拟仿真实验,对标签和读写器的双向认证过程进行仿真实验。通过理论分析和实验模拟仿真,结果表明本文提出的基于Hash函数的RFID动态认证协议可以改善多种RFID安全隐私泄漏问题,并且资源占用率、系统复杂性以及RFID系统硬件要求均保持在可接受范围之内,是一种可行的安全认证协议。本文实验是在理想条件下进行的,没有考虑到实际应用中的干扰因素,未来可在实验验证中加入干扰因素,验证其在实际应用中的价值。
参考文献:
[1] 裴小强,卫宏儒.基于Hash链的RFID安全双向认证协议[J].计算机应用,2014(S1):47 49+54.
[2] 张捍东,丁磊,岑豫皖.基于Hash函数的RFID安全协议研究[J].计算机工程与设计,2013,34(11):3766 3769.
[3] 石乐义,贾聪,宫剑,等.基于共享秘密的伪随机散列函数RFID双向认证协议[J].电子与信息学报,2016,38(2):361 366.
[4] SARMA S E, WEIS S A, ENGELS D W. RFID systems,security and privacy implications[J]. Proceedings of the 4th International Workshop on Cryptographic Hardware and Embedded Systems(CHES 2002),2003:454 469.
[5] SARMA S E, WEIS S A, ENGELS D W. Radio frequency identification: secure risks and challenges[J]. RSA Laboratories Cryptobytes, 2003,6(1):2 9.
[6] WEIS S A, SARMA S E, RIVEST R L, et al. Security and privacy aspects of low cost radio frequency identification systems[C]. Proceedings of the 1st International Conference on Security in Pervasive Computing, 2004:201 212.
[7] 周揚,龚畅,徐平平,等. Hash函数结合相互认证的智能卡远程双向安全认证方案[J].计算机测量与控制,2017,25(6):115 119.
[8] 曾丽华,熊璋,张挺.Key值更新随机Hash锁对RFID安全隐私的加强[J].计算机工程,200(3):151 153+159.
[9] 张朝晖,刘悦,刘道微.基于标签ID的RFID系统密钥无线生成算法[J].计算机应用研究, 2017,34(1):261 263.
[10] 谢锦彪, 欧毓毅, 凌捷.一种改进的基于Hash函数的RFID双向认证协议[J]. 广东工业大学学报, 2014 (3):62 66.
[11] 周永彬,冯登国.RFID安全协议的设计与分析[J].计算机学报,2006(4):4581 4589.
[13] RHEE K, KWAK J, KIM S, et al. Challenge response based RFID authentication protocol for distributed database environment[C]. Proc of the 2nd Int Conf on Security in Pervasive Computing, 2005:70 84.
[14] 刘明生,王艳,赵新生.基于Hash函数的RFID安全认证协议的研究[J].传感技术学报,2011(9):1317 1321.
[15] 黄稳定,邬春学,高华.基于Hash函数的RFID安全认证协议研究[J].软件导刊,2017,16(2):159 161.
[16] 熊婧,王建明.基于HASH函数的RFID安全双向认证协议研究[J].中国测试,2017,43(3):87 90.
[17] 陈庄,陈亚茹.基于hash实现低成本RFID的SRFID安全方案[J].重庆理工大学学报,2017(12):140 145.
[18] 丁振华,李锦涛,冯波.基于Hash函数的RFID安全认证协议研究[J].计算机研究与发展,2009(4):583 592.
[19] BURROWS M A, NEEDHAM R. Logic of authentication [J]. Computer Systems, 1990,8(1):18 36.
[20] 冯登国.可证明安全性理论与方法研究[J].软件学报,2005,10:1743 1756.