APP下载

基于随机运算符的轻量级匿名射频识别系统双向认证协议

2021-07-02吴恺凡殷新春

计算机应用 2021年6期
关键词:令牌服务器端阅读器

吴恺凡,殷新春,2*

(1.扬州大学信息工程学院,江苏扬州 225127;2.扬州大学广陵学院,江苏扬州 225128)

(∗通信作者电子邮箱xcyin@yzu.edu.cn)

0 引言

射频识别(Radio Frequency IDentification,RFID)技术被认为是21 世纪最具发展潜力的信息技术之一。RFID 作为一种自动化识别技术,通过无线射频的方式在作为主体的记录媒体之间进行非接触的双向数据通信,以此互相交换数据,从而达到识别目标的目的。RFID 具有抗干扰能力强、记忆灵活、支持动态操作、使用寿命长、识别速度快、防碰撞等优点。同时,RFID 技术实现识别目标和读写数据的功能不需要物理接触与特定的复杂环境,这使得其在现实中被投入使用具有可行性。RFID 系统由标签、阅读器和后端服务器组成。其中标签具有唯一的身份标识,在进入阅读器工作区(即在阅读器产生的射频电磁场内)就可以进行相应读写操作。标签对识别信息进行加密并发送给阅读器,阅读器对接收到的数据和标签ID 进行身份验证。而后端服务器与阅读器之间的信道往往被认为是安全信道。RFID 系统分为无源和有源两种,这取决于系统是使用内置电源的标签,还是通过用RFID阅读器电流与无源标签自身的线圈电磁感应产生能量连续广播信号[1]。有源电子标签无需阅读器提供能量,读写距离较远同时体积较大,与无源射频标签相比成本更高。经济又实用的低成本标签在日常生活中得到更广泛的使用。选择低成本的RFID 设备虽然意味着保护系统安全需要会带来更大的挑战[2],但总体而言利大于弊,原因之一是传统加密原语固然安全性更高,但会增加此类设备的成本;二是传统加密原语的功耗过高[3]。设计低成本安全RFID 系统所面临的挑战包括设备的容量和计算能力有限等[4],所以实现一种安全、低成本的保护技术以确保用户信息的安全性是十分关键的[5]。

除了阅读器与标签之间在公共信道中交互的消息可能遭到的窃听、伪造、截获、去同步以及重放等攻击[6]之外,RFID在应用过程中存在一项重大的安全隐患,就是标签用户的个人隐私容易遭到泄露。比如,被标签标记的车牌在路过各处收费站时,如果忽视了标签匿名性,车牌的标签会因为接收到任意的阅读器的请求而向其回复自身唯一身份标识或假名ID,无论该阅读器的身份是否合法。因此,一些攻击者的恶意阅读器在获取某个合法标签的ID 后,就算没有破解协议而窃得当前通信所交换的具体信息,却也能实时追踪标签所有者在ID 更新前的行驶路线。这无疑极大增加了标签使用者隐私被侵犯的可能。因此,在不以明文的形式发送标签ID,即保证标签匿名性的情况之下,阅读器还能够区分不同标签,是RFID相互认证协议所面对的一个挑战。

目前有两种手段来解决上述问题:一是,阅读器与标签协商出一个独立于ID 的索引假名,让阅读器区分不同的标签,并在本轮通信结束后进行更新;二是,基于k-匿名(k-Anonymity)思想,采用动态令牌的方式,每轮通信随机选取该标签令牌组中的一个令牌作为ID,通信结束后将令牌组中已经使用的令牌删去,当令牌组中没有可以使用的令牌时再重新填充。本文结合上述两种方法,针对标签匿名性问题而提出一种新型轻量级双向身份认证,同时实现了假名的更新与动态假名的选取两个功能。本文的主要工作如下:

1)针对标签匿名性不足的问题,提出一种新的随机运算符方法,并基于此方法设计出了一个能够保护标签所有者隐私的RFID双向认证协议。

2)本文提出的协议除了能够提供匿名性以外,还能够满足物联网中所使用的RFID系统所需的所有安全需求。

3)使用互联网安全协议和应用程序的自动验证(Automated Validation of Internet Security Protocols and Applications,AVISPA)工具对本文所提出协议进行仿真,并验证所需的安全属性。

将本文方案与相关轻量级认证方案进行了性能方面的对比。对比结果显示,本文所提方案的性能远优于能够提供同等安全性的非轻量级协议。

1 相关工作

在过去的几年里,不断有RFID 匿名认证方案陆续被提出,文献[7]将它们分为了3 类:1)基于公钥密码系统(Public Key Cryptosystem,PKC)的方案;2)基于纠错(Error Correction,EC)的方案;3)基于对称密钥或非公钥密码系统(Non-Public Key Cryptosystem,NPKC)的方案。在基于PKC的方案[8-11]中,大多数方案都是在椭圆曲线密码系统上设计的,由于硬件成本昂贵而可行性不高[12]。基于EC 的方案[13-15]只有当错误率小于一定的阈值时,比如验证信息之间的汉明重量小于规定的上限时,才能保证安全性。此外,这些方案是不可伸缩的,因为它们只能支持有限的数字标签。基于NPKC 方案又可分为两类,即基于哈希的方案和基于物理不可克隆函数(Physical Unclonable Function,PUF)的方案。由于PUF 需要硬件支持会额外增加成本,所以基于哈希的方案更加适用于低成本场景,但也要求RFID标签的资源足够支撑哈希运算。

Peris-Lopez 等[16]提出了一系列基于NPKC 的超轻量级认证协议,即一种用于低成本RFID标签的轻量级双向认证协议(a real Lightweight Mutual Authentication Protocol for low-cost RFID tags,LMAP)、一种高效的低成本RFID 标签双向认证协议(an Efficient Mutual-Authentication Protocol for low-cost RFID tags,EMAP)[17]、一种适用于低成本RFID 标签的最小相互认证协议(a Minimalist Mutual-Authentication Protocol for low-cost RFID tags,M2AP)[18]。在这3 个协议中只使用了简单的异或、与、或和模2m加运算。文献[19-20]证实这些协议存在一些安全漏洞,不能抵抗主动攻击和被动攻击。文献[21]引入了一种非线性的位变换运算MIXBITS 函数,不使用导致输出结果有较大偏重的与运算和或运算,提出一个新的超轻量级认证协议——Gossamer协议[21]。文献[22]提出了一种基于排列组合运算的RAPP(RFID Authentication Protocol with Permutation)协议。而文献[23]指出Gossamer 协议存在拒绝服务攻击隐患,并且Gossamer 协议在标签端的计算量和功耗很大,不满足低成本RFID 标签的要求;同时指出RAPP 方案易受到去同步攻击。此外,由于电子产品代码(Electronic Product Code,EPC)标准[24]对低成本RFID 标签的限制,诸如数据加密标准(Data Encryption Standard,DES)、RSA(Ron Rivest,Adi Shamir and Leonard Adleman)算法、安全散列算法(Secure Hash Algorithm,SHA)家族,以及时间戳等相关高级加密原语并不适用。Gao 等[25]提出了一种基于现有算法的RFID 安全协议,但是不满足1 类2 代产品电子代码(Electronic Product Code Class1 Generation2,EPC C1 G2)标准。Liang 等[15]提出了一种在物联网环境中基于PUF 的RFID身份认证协议,该方案在服务器端使用机器学习相关方法,训练出一个符合当前标签所使用的原生PUF生成挑战响应对规律的模型,以用于身份验证,在减少通信开销的同时又降低了数据泄露的风险,具有较强的安全性。但是在实际使用时,机器学习方法训练出的PUF模型在协议中产生的数据能否通过原生PUF 的检验存在疑问,这同时也增加了计算资源与时间的消耗,方案可行性会受到影响。Gope 等[7]提出的基于PUF的匿名认证方案中,注册中心为了保证标签匿名性而给每一个标签分配一个临时标识TID和一组伪标识PID。当攻击者通过去同步攻击等方式使得标签发送无效TID时,服务器会回复PID中的任意一个伪标识来请求标签重新验证,这提高了协议执行的健壮性与安全性。然而该方案不仅对标签的存储空间有比较高的要求,而且由于方案的设定不全,导致无法实现PID的补充,甚至攻击者可以通过重放窃取到的以明文形式发送的TID耗尽PID,迫使标签重新注册,从而破坏协议进程,又无端地增加了标签的计算开销。同样,Chen 等[26]提出的增强的动态令牌认证协议(Enhanced dynamic Token based Authentication Protocol,ETAP)虽然能保证标签匿名性,但是令牌和指示器的更新也需要依赖具有较强存储能力的标签。Park等[27]提出一种基于聚类算法的RFID跨层认证协议,能够抵抗追踪攻击、假冒攻击和拒绝服务攻击。但该方案由于防碰撞功能的需要而对标签进行分组,这使得标签的存储负担更重,且采用哈希链和模幂运算,计算开销也比较高。Salem 等[28]提出一种基于El-Gamal 密码系统设计,并适用于远程医疗信息系统的RFID 认证协议。该协议具有较高的安全性,但为了构造离散对数问题而使用大量模幂计算而不适用于低成本标签。Wang 等[29]提出了一种抵抗信号重放攻击的RFID认证协议,一定程度上弥补了认证协议不支持抵抗物理攻击这一缺陷。Fan等[30]提出了一种基于云的轻量级RFID双向认证协议,以置换和旋转代替hash、以时间戳代替伪随机数发生器,进一步减少了标签计算开销。

综上,现有RFID 认证协议中,要么协议无法满足安全性需求,要么无法提供轻量级的快速认证协议。为此,本文提出了一种新的随机运算符方法,结合各种轻量级运算进而提出了一种新的RFID认证协议,称作基于随机运算符的轻量级双向认证协议(Lightweight Anonymous Mutual authentication Protocol Based on Random Operators,BRO-LAMP)。该协议能够在保证运算轻量级的基础上,保护标签匿名性并免受克隆攻击。

2 本文协议BRO-LAMP

2.1 符号说明

BRO-LAMP 所使用的符号、函数,以及对应参数如表1 所示。其中,Shuffle、Pad 和Bit 函数分别通过算法1、2、3 进行描述。

2.2 协议认证流程

在本文提出的协议BRO-LAMP 中,默认情况下阅读器和后端服务器及数据库之间的通信信道是安全的,所以可以将阅读器和后台看作一个整体,称作服务器端。本协议之中,中央服务器维护一个运算符表AT以存放具体的运算符,即各类轻量级运算。在每轮认证周期中,协议双方共同遵循一个独立的运算符选取顺序序列ST,根据其中存放的索引对应到AT中寻找并存储运算符。

算法1 Shuffle(Seed,a)。

输入Seed,列表a;

输出 列表a。

其中,所使用的三种自定义函数功能如下。

Shuffle()函数名为洗牌函数,其功能是,将长度为n的列表的第i个元素与第j个元素交换顺序,重复n次。其中,i,j∈Z+,i的初始值为1,每次交换后递增1,而每次执行交换前j是一个由伪随机数发生器(Pseudo Random Number Generator,PRNG)生成的随机数且满足j∈[i,n]。第一参数为PRNG 的种子,第二参数为待处理列表,空参默认为一个依次存入正整数的列表。

算法2 Pad(a)。

输入 列表a;

输出 列表b。

如果k<2n–3 则

将列表b剩余3个元素依次赋值为a[j++];结束

算法3 Bit(a)。

输入 列表a;

输出 二进制字符串tk。

Pad()函数名为填充函数,实现随机往长度为n的列表中插入n个不存放任何值的空槽的功能。

Bit()函数名为二进制转化函数,其功能是将作为参数的列表,从首地址开始往后一次遍历,若遇到空槽则输出0,否则输出1,输出结果按照先后顺序拼接,最后形成一个二进制字符串。

下面举一个具体示例(随机假设一个AT,并且各个函数取一个可能的结果),如图1所示。

图1 BRO-LAMP中三种自定义函数功能示例图Fig.1 Example diagram of three kinds of custom functions in BRO-LAMP

之后的认证阶段中,协议双方就按ST中相应位置所存入的值,对应地从服务器的后台数据库的运算符表AT获取相应运算符参与运算。在上述示例中,?1代表循环右移(≫),?2代表异或(⊕),?3代表拼接(‖)。

本协议在协商阶段以及信息更新阶段中增加了一个hash函数,保证随机生成种子的同时抵抗中间人攻击,并且在服务器端与标签交互时,不暴露种子Seed,从而保护标签当前轮次通信时随机运算符的选取顺序。初始化数据时,服务器端备份了已注册标签的基础令牌矩阵bk。其中,bk的每一行向量bki对应各个不同标签的基础令牌一维数组,服务器通过安全信道将每个bki共享给对应的标签,而当列坐标也确定下来的bki,j表示第i个已注册标签的第j个基础令牌,用于实现认证。为每个已注册标签设置协议双方共享的基础令牌数组的目的是:1)作为随机参数参与令牌的更新;2)当系统遭受去同步攻击或者拒绝服务攻击时作为令牌tk的替代供双方重新发起请求,使协议继续进行。这需要服务器端为每个已注册标签额外保存其bk已使用到的句柄作为指针,以便之后轮次双方的认证与通信周期能够正常进行。攻击者却无法得知当前轮次认证周期所使用的bk坐标。

协议的整个认证过程可以分为四个阶段,按照执行时序排列分别是数据初始化和密钥协商阶段、标签识别阶段、相互认证阶段以及同步更新阶段。其中协议的第一阶段为注册阶段,而第二、三、四阶段为认证阶段。注册阶段是在阅读器与第一次参与通信的标签开始交互时,由协议双方所执行,其目的是进行标签初始密钥的生成以及标签信息在服务器端的注册。每当标签与阅读器需要通信时,双方都会在通信前执行认证阶段。BRO-LAMP的协议过程如图2所示。

图2 BRO-LAMP认证流程Fig.2 Flow chart of BRO-LAMP authentication process

2.2.1 数据初始化和密钥协商阶段

在BRO-LAMP 中,由于标签选取运算符最终只由PRNG的种子决定,因此可以说是PRNG 生成标签在当前轮次协议下的运算符选取序列。其中,本协议对服务器端第一次发给标签的消息通过轻量级hash函数进行混淆。

服务器端生成秘密的新鲜随机数n1,计算M1=h(n1)⊕n1,再将M1发送给标签i。接收到M1后,标签i通过异或的方式,往其中混淆入自身的身份标识TIDi,即计算M2=M1⊕TIDi以及CT=M2‖TIDi,然后通过安全信道将CT发送给服务器端。接收到M2后,服务器端计算TIDi'=M2⊕M1,再计算n1'=M2⊕TIDi'⊕h(n1)。最后,服务器将得到的结果n1'与n1进行对比,如果n1'=n1成立,则标签在后台服务器上注册成功。之后双方将Seed=M2得到作为实现洗牌功能的种子。

Shuffle 功能基于随机洗牌算法,旨在给定协议双方相同的种子Seed,辅以相同的时间间隔,使得协议双方生成相同的ST,从而协商出相同的令牌tk。双方同步使用Shuffle函数,并在随机填充后生成运算符序列ST,接着经过Bit 函数二进制化后再二分异或,最后生成本轮协议的令牌tk,第一阶段结束,服务器端将为标签i生成令牌组bki,并通过安全信道将其提供给标签。服务器会备份所有已注册标签的一维基础令牌数组,并以矩阵的形式bk存储。

2.2.2 标签识别阶段

注册后的标签若需投入使用并参与通信,则必须通过认证。为了实现双向认证,阅读器需要识别标签,即阅读器需要对等待验证的标签进行鉴别。所提协议的标签识别阶段能够实现阅读器对标签的识别。

1)该阶段阅读器和标签之间发生通信,并且是由阅读器主动发起,即阅读器首先向标签发送一个挑战信息,定义为“Query”,以开始新一轮认证周期。

2)标签Tagi在接收到挑战信息后会对阅读器发送响应消息,即向服务器端回复此标签当前轮次认证周期的初始令牌tki。发出响应消息之后,标签Tagi立刻计算tki=tki?1bki,j来更新令牌,其中,索引j对应指针,从0开始取值并顺次递增。

3)阅读器在收到标签回应的令牌tki'后会在后端服务器中进行查询。如果是已注册具有合法身份的标签所发送的令牌,阅读器通过请求后台服务器就可以找到与之匹配的tki以及TIDi,然后计算以同步更新令牌,再通过PRNG生成用于接下来双向认证的新鲜随机值n2;若没有匹配成功,则标签识别失败,认证终止,服务器端认为该标签身份非法。

2.2.3 双向认证阶段

首先,BRO-LAMP中,协议双方会同时存储对应标签的两轮令牌tkold与tknew。所以,当协议的某一方需要验证令牌时,若其所收到的令牌与自身存储的tknew匹配,则更新时要令自身存储的tkold=tknew,再更新tknew;若与tkold匹配,则直接按照协议更新tknew,而tkold则保持不变。一旦识别标签成功,阅读器就需要对标签身份展开验证。标签的身份被阅读器成功验证后,还需验证阅读器的身份是否合法。两次验证依次通过后,该协议才能满足双向认证性。

1)阅读器验证标签身份。

识别标签成功后,阅读器向标签Tagi发送M3=随即更新。标签收到M3后,计算n2'=分离出新鲜随机数,再更新令牌tki=tki?2bki,j+1。最后,标签将新鲜值n2'与令牌混淆,即计算M4=tki?3n2',并把M4发送给阅读器。阅读器收到M4后,计算M4'=接着进行验证,若M4'=M4成立,则标签的身份通过了阅读器的验证;否则意味着存在数据遭到攻击、篡改而阻碍了协议进程,或是标签本身身份非法等情况,认证失败,服务器端认为该标签身份非法,通信过程终止。

2)标签验证阅读器身份。

标签通过验证后,服务器计算M5=并发送给标签,再更新令牌标签收到M5后进行验证,即计算M5'=tki?4n2',若M5'=M5,则阅读器的身份通过了标签的验证;否则意味着存在数据遭到攻击、篡改而阻碍了协议进程,或是阅读器本身身份非法等情况,认证失败,该标签认为服务器端身份非法,通信过程终止。

2.2.4 信息同步更新阶段

若双向认证成功,协议双方进入最后的信息同步更新阶段。标签首先为了保证数据一致性而更新令牌tki=tki?3bki,j+2。之后,双方同步更新以下信息:

3 正确性和理论安全性证明

本文是在DY(Dolev-Yao)模型[31]下,通过形式化分析来验证所提出的协议BRO-LAMP 的正确性以及理论上的安全性,攻击者的能力也符合DY模型下敌手的定义。

3.1 BAN逻辑分析

BAN(Burrows,Abadi and Needham)逻辑[32]是一种基于信念的模态逻辑,并且是首个将形式化手段用于密码协议安全验证的分析法,因而具有里程碑意义而被广泛应用。BAN 逻辑不涉及信仰的主体是否真实,即默认参与协议运行的主体是诚实的;其以协议运行的开始阶段为界,将整个协议执行过程分为当前时间与过去时间,即某观点若在协议开始是成立的,则在整个当前时间也成立,但在本轮协议开始之前的“过去时间”段中却不一定成立;其默认没有解密密钥的主体无法理解密文,且密钥不能从密文中推出。BAN 逻辑将在用户设置的理想假设与协议步骤的前提中,对协议能否在没有冗余信息的情况下达成认证的目的,以及协议中的加密信息是否在明文传递时不会影响协议的安全性这两个问题给予解答。

3.1.1 符号与规则

BRO-LAMP 只有在满足特定的目标时,才符合逻辑性并具备安全性。具体的符号表述如表2所示,P和Q代表参与协议的两个主体,X代表信息,K代表加密密钥。当信息是明文形式发送时,若是单个信息X,则表示为X,若是信息X与信息Y的复合信息,则表示为(X,Y);当信息是密文形式发送时,则发送的信息X表示为{X},若有下标,则表示用于加密信息X的密钥或是保证信息X机密性的秘密值。其中需要特别注意的是,X表示协议双方交互的信息,所有的公式都能作为信息,但所有信息不一定都是公式。

表2 BAN逻辑符号Tab.2 Symbols of BAN logic

BAN 逻辑规则遵循推理规则的形式,即分为上下两个部分,横线上方的公式集合称为前提,下方的公式则称为结论。在执行BAN 逻辑分析时,必须严格遵循如下所示的特定规则。

3.1.2 协议描述

在本文中,参与BRO-LAMP 协议的两个主体,即服务器端(包括服务器和阅读器)和标签,分别用S和T表示,协议的理想化模型如下:

S1S→T:M1

S2T→S:M2,TID

S3S→T:Query

S4T→S:tk

S5S→T:M3

S6T→S:{M4}Seed

S7S→T:{M5}tk

在该协议模型中,第3 步S3 与第4 步S4 的信息交互是以明文形式进行传输的,所以不作安全性分析。第5 步S5 中的消息M3虽然经过混淆,但没有用作相互认证,只是用于保护不安全信道中新鲜随机值的传递,以及标签对其的获取,所以也不作安全分析。主要的形式化验证工作是将用于身份验证的密文信息M4与M5转化为形式化语言并作安全分析。

其中,针对协议的第6步S6和第7步S7,可将其中传递的密文信息进一步形式化,表示为:

S6S⊲{M4}Seed

S7T⊲{M5}tk

3.1.3 形式化安全假设

A1S∣≡#M1

A2S∣≡T⇒M2

A3S∣≡S↔M1T

A4S∣≡S↔Seed T

A5T∣≡S↔tk T

A6S∣≡T⇒{M4}Seed

A7T∣≡S⇒{M5}tk

A8S∣≡#n2

A9T∣≡#tk

假设A1 表明,S认为消息M1是新鲜的,因为M1=h(n1)⊕n1,而n1是由S当前生成的随机数,所以A1成立。接下来,假设A2 说明,S认为T可以控制秘密值Seed,因为Seed即为消息M2,而消息M2是由消息M1和T自身的假名异或而成,即消息M2的取值是由T决定的,所以A2成立。假设A3、A4以及A5,则说明令牌tk是协议双方S和T的共享秘密信息,因为tk是由打乱和随机填充后的运算符顺序表ST决定,打乱方式只由标签T选择的PRNG 来决定,而PRNG 的种子是S与T协商出的,所以A3、A4、A5皆成立。因此,S(T)收到对面发来的密文M4(M5)时,也会相信对方,即T(S)对其具有管辖权,所以假设A6 和A7 成立。n2也是由S当前生成的随机数,并且T在每次信息交互后都会更新tk,所以假设A8和A9成立。

3.1.4 协议证明

假设设置的参数和流程正确,则提出的认证协议应该达到以下目标:

G1S∣≡Seed

G2S∣≡M4

G3T∣≡M5

证明 根据新鲜性定理R4和假设A1可得:

再根据结论1和假设A3,以及消息含义规则R1,可得:

这样,结合结论(1)和结论(2),根据新鲜值验证规则R2能得到:

最后,综合假设A2与结论(3),根据管辖权规则R3可得:

至此,目标G1 得证。接着,结合S6 和假设A4,S收到经过Seed加密后的密文M4,又与T共享秘密值Seed,所以根据消息含义规则R1可得:

根据假设A8,S认为随机数n2是新的,结合新鲜性规则R4可得:

给定结论(5)和结论(6),依据新鲜值验证规则R2,可得出:

最后综合假设A6和结论(7),根据管辖权规则R3可得:

至此,目标G2 得证。同理,根据假设A5 和A7,结合上述证明过程,目标G3也成立。

证毕。

经过BAN 逻辑形式化证明,三个目标全被证实,所以在理想的工作环境下,本文所提出的BRO-LAMP 协议,不仅满足双向认证性和相关秘密值的机密性,而且能够满足系统的功能与安全需求。

3.2 AVISPA模拟分析

本文所提出的BRO-LAMP 协议还通过正式的形式化验证工具AVISPA 进行安全性评估。AVISPA 是一款高效、稳定的,广泛适用于自动证明网络安全协议,以及符合工业复杂度实际的威胁模型的安全性的工具集,能够根据相应规则推导安全性目标[33-34]。作为一个实用的形式化验证工具,AVISPA包含4 种模型检测后端,并通过高级协议规范语言(High Level Protocol Specification Language,HLPSL)进行集成。

由于AVISPA 工具检测的需要,此处对协议的认证部分进行了简化。简化协议将令牌tk表示为Tk以示区分,并将tk更新时运算符的随机选取步骤抽象成了使用共享密钥Skt对Tk加密(见第2 步),并且定义两个不同的轻量级hash 函数与异或计算来替代随机选取的运算符(包括第4 步中第3 步Tk与Ns异或生成M3、第7 步中首先将M3与Tk异或生成Ns、第7步最后根据hash算法H1对Tk与Ns异或的结果取哈希值并记为M4、第9 步最后根据hash 算法H2 对Tk与Ns异或的结果取哈希值并记为M5),以满足tk的保密性。简化协议中,第2 步在原协议中是明文发送令牌tk,然而tk的不可预测与前向安全性体现在秘密值Seed以及发送后于第3、4 步的及时更新,所以第2步简化成发送用秘密值Skt加密令牌Tk后的密文,以此来表示除协议双方外的其他主体,在获取令牌tk时没有优势。因为随机值Ns参与了生成M3的混淆运算,而混淆方式取决于秘密值Seed,所以就取决于Skt,所以第5、8、9步根据同理也成立。在发送M4和M5后,即在第9、11 步,工具分别立即检测对标签和服务器的认证性,符合协议的安全目标。同时,在每一次通信后,对通信信息中的秘密值进行检验,已验证数据的机密性,如标签于第3、7步请求工具验证Tk的机密性,而服务器于第4步起请求工具监视随机值Ns的机密性。简化协议如图3 所示,其具有与原协议相似的算法表现,因此适用于实验分析。

图3 BRO-LAMP简化协议流程Fig.3 Simplified flow chart of BRO-LAMP authentication protocol

结合简化协议定义了一个正常的会话角色,包含所有的2 个合法主体角色——标签、阅读器,以及1 个分别能伪装成合法主体的入侵者角色。最终,简化协议中待证明的4 个安全目标,即随机数Ns、令牌Tk(分别对应原协议中的n2与tk)的机密性,以及标签和服务器端的身份认证性都得到了证实,如图4所示。如果仿真协议是检测到安全漏洞,“SUMMARY”字段则会显示为“UNSAFE”,并在“DETAILS”字段提示“ATTACK_FOUND”,最后会在“GOAL”字段提示出该协议所需证明的安全属性中首先不满足的那个属性。分析过程中,由HLPSL 描述转换为IF 形式描述保存在“PROTOCOL”字段给出的路径中文件名为“BRO-LAMP.if”的文件中。结果中的“BACKEND”字段显示了所用后端分析工具类型,“STATISTICS”字段则说明了分析工具所执行的时间及搜索的节点数或状态数量。根据图4 的实验结果,能够得出BROLAMP 协议是安全的(SUMMARY:SAFE,GOAL:as_specified),并且可以抵抗重放攻击和中间人攻击。

图4 AVISPA验证结果Fig.4 AVISPA validation results

本实验选取AVISPA 的即时模型检验器(On-the-Fly Model Checker,OFMC)这一后台工具,最终模拟出了惰性攻击者可能的中间人攻击流程,如图5 所示,攻击者因为无法得到原协议中的随机运算符顺序表ST,因而无法获得简化协议中的共享密钥Skt,所以令牌Tk不会被泄露,BRO-LAMP 协议是安全的。

图5 AVISPA入侵者仿真Fig.5 Intruder simulation of AVISPA

4 安全性分析

本章在第3 章安全性理论分析的基础上,重点分析了所提出的BRO-LAMP 协议在实际应用中,为何满足相关安全属性的要求,以及在应对各种安全问题时是如何保证系统安全性的。

4.1 抗跟踪攻击

BRO-LAMP 实现标签的识别是从标签注册开始的,同时标签为了协商出令牌tk而向服务器端发送自己的唯一身份标识TID。但是,标签发送TID只有在标签第一次接入系统时才会发生,之后该标签在此与系统内的RFID 通信时,会用上一轮通信后更新的令牌tk来表明自己的身份。所以,攻击者无法获取每个标签的唯一身份标识TID;并且在协议的每轮认证中,令牌tk都会进行动态的更新,同时用于更新的两个随机要素,由第i个注册标签的基本令牌组bki中随机抽取的bki,j,以及标签更新的随机数顺序表ST共同决定。随机数n2是以密文的形式进行传输,而ST也是动态更新的。所以,攻击者无法在同一个标签的前后几轮认证之中截获消息来提取不变的要素以定义追踪标签。因此,BRO-LAMP 能够有效抵御追踪攻击且标签匿名性也得到有效保证。

4.2 抗克隆攻击

攻击者在能获取合法便签的前提下,仿制该标签,并在芯片流片时烧录原标签的数据,最后取而代之。而作为BROLAMP 主体的阅读器在识别标签时,只有识别第一次参与协议的标签才需要依靠其唯一身份标识TID。之后由于频繁的同步更新机制,BRO-LAMP在每轮认证中,与不同标签的身份一一对应的令牌都是新鲜且不可预测的。攻击者通过克隆攻击能够获得的TID等,既不能让其辨别不同标签的身份,又不能帮助其推算出任何对于破解协议来说有效的秘密值。因此,BRO-LAMP能够有效抵御克隆攻击。

4.3 抗伪造攻击

伪造攻击是攻击者通过冒充为协议某一合法参与方与另一方通信来实施的。在RFID系统中,伪造攻击分为伪造标签与伪造阅读器。

1)抗伪造标签。

攻击者自己随机生成一个tk′去伪装成合法标签来与阅读器交互。但是攻击者无法获得随机运算符顺序表ST,而且tk′与tk很难碰撞成功,所以攻击者提取n2的概率相较于被伪造标签以外的标签来说没有优势。同时,若是攻击者参与注册成为一个新的合法标签,则首先其唯一身份标识TID不可能与其他合法标签的碰撞,其次初始化中hash 函数的因子有其自身的TID参与混淆,所以也很难发生碰撞。因此,BROLAMP能够抵御标签伪造攻击。

2)抗伪造阅读器。

攻击者通过随机生成一个n2'去伪装成合法阅读器来与某一标签交互。但是攻击者无法从合法标签发送的消息中分离出随机运算符顺序表ST,并且无法保持与合法标签同步更新令牌tk,所以其构造的消息M5'=tk″?4'n2'和合法阅读器构造的M5不同。假设攻击者成功侵入协议的初始化阶段,从而获取了合法标签的有效身份信息TID和tk,但是和标签的每轮认证周期很短,单次通信时间属于毫秒级操作,同时也难以通过经过若干次更新的tk定位标签,所以攻击者难以定位与捕捉已攻破的合法标签进行通信。而且,服务器与阅读器之前一般也通过了身份认证,标签只需要查询注册阶段阅读器发送来的阅读器的唯一身份标识RID进行查询,就能定位到攻击者的设备与身份。因此,BRO-LAMP 能够抵御阅读器伪造攻击。

4.4 抗去同步攻击

攻击者通过破坏阅读器与标签之间在非安全信道上传输的某些消息的一致性,使得协议双方信息失去同步,从而阻碍正常的认证。攻击者实现去同步攻击主要有两种方式:一是截获并篡改原有信息再发送给标签;二是截获原有信息并立即重新发送给标签,阻止对方的信息更新,以中断认证过程,攻击者甚至会大量发送这些信息,通过分布式拒绝服务(Distributed Denial of Service,DDoS)攻击的形式来达成这一目的。在BRO-LAMP 中,服务器端与标签都会额外存储上一轮的认证令牌tkold。当遭受去同步攻击导致服务器端与标签信息不一致,即某一方的令牌未及时更新时,认证双方中作为验证者的那一方会先用当前轮次认证令牌tknew进行验证,若匹配失败则再用上一轮成功通信的秘密值tkold进行对照匹配,匹配成功就能通过验证,使得认证流程继续进行并触发更新。因此,BRO-LAMP能够抵御去同步攻击。

4.5 抗重放攻击

攻击者成功捕获合法标签的身份验证信息,并请求使用这段信息进行身份验证,以欺骗合法标标签或服务器。这种类型的攻击适用于不及时更新密钥的协议。另外,前后向安全性要求攻击者无法通过当前轮次认证的正确认证来推导出之前以及之后轮次的秘密信息。所提出的协议每轮认证中的每一次信息交互后,令牌tk以及使用的运算都会更新,每轮认证的令牌tk、随机运算表ST以及随机秘密值n1和n2也经过更新或是重新生成。即不同轮次的秘密值均不同且不可预测,所以攻击者截获之前轮次的交互信息用于当前轮次认证的重放攻击均不会成功,符合前向安全性的要求。而随机运算表ST的更新意味着之前所使用的运算符与之后选取的没有逻辑关联,是随机不可预测的,符合后向安全性的要求。因此,BRO-LAMP能够抵御重放攻击,同时保证了前后向安全性。

4.6 抗中间人攻击

攻击者通过拦截正常的网络通信数据,并进行数据篡改和嗅探来发动中间人攻击,而通信的双方却毫不知情。所提出的协议在认证阶段的每一轮信息交互后,协议双方都会同步更新令牌tk以及更新所使用的运算符,当攻击者发动中间人攻击后,双方都能察觉到,所以篡改后的信息不会通过对方的验证。而在初始化阶段,由于消息M1=h(n1)⊕n1中混淆进了单向不可逆的轻量级hash 函数,所以攻击者无法通过截获的M1‖M2‖TID中获取随机数n1,也就无法篡改M1‖M2‖TID。因此,BRO-LAMP 能够抵御中间人攻击。同时,即时同步更新机制与秘密值的更新或重新生成,也使得BRO-LAMP保证了数据的完整性和机密性。

5 BRO-LAMP协议性能分析

5.1 安全性对比分析

本节主要结合第4 章分析的,BRO-LAMP 应对多种恶意攻击的抵御能力与所满足的安全属性,与其他常用RFID轻量级认证协议进行对比。

BRO-LAMP 与相关工作安全性能比较如表3 所示。根据表3 中所显示的对比结果可知,相较于其他方案,只有本文提出的方案能够满足所有提到的安全需求。

表3 BRO-LAMP与相关方案安全属性对比Tab.3 Comparison of security attributes between BRO-LAMP and other schemes

5.2 资源消耗对比分析

本节将从标签端的存储空间消耗、信息生成时的计算开销,以及认证过程中的通信代价等方面进行性能分析和对比。其中,BRO-LAMP所应用的轻量级无源标签,参照华盛顿大学于2016 年基于英特尔公司提出的射频能量捕获技术实现的无线识别和感知平台(Wireless Identification and Sensing Platform,WISP)这一新型标签,存储交互的相关信息的长度为L,L=96 bit。而文献[33]方案为了保证离散对数问题的困难性,密钥长度选择的是L′=L=1024 bit。

5.2.1 存储空间消耗

BRO-LAMP 的标签需要存储标签的唯一静态身份标识TID、随机运算符表ST=2L、基本令牌组中任意子令牌bki,j≥3L以及生成交互信息的密钥,总存储空间消耗至少是7L。

5.2.2 计算开销

BRO-LAMP 中包含的运算方式存在多种,比如轻量级hash函数(h)、模2L加法(+)以及异或运算(⊕)等,但是每次不超过四种运算。若是只讨论认证过程,每论认证只需选取三种运算,且都适用于轻量级无源标签。

5.2.3 双向认证通信代价

BRO-LAMP是一个双向认证协议,新一轮认证周期中,标签收到阅读器发来的激励信号后首先发送证令牌tk请求服务器识别,接着阅读器发送M3以传递秘密值n2,然后标签发送M4请求阅读器验证自身身份,阅读器再发送M5向标签证实自身身份,最后双方同步更新信息。每轮认证周期内,BROLAMP产生的总体通信量是4L。

BRO-LAMP 与部分轻量级RFID 认证协议的资源利用性能比较如表4 所示。其中,由于服务器端的计算能力不受设备资源条件的制约,所以计算开销仅针对标签进行分析。空间消耗的计算单位为比特。根据表4 中所显示的对比结果,文献[17]方案中的LMAP 协议虽然开销较小,但安全性不足;而文献[33]方案提供的安全性强,但通信开销和标签存储开销远大于其他轻量级方案,只有本文提出的方案能够在达到足够安全性的同时消耗较少的资源。

表4 BRO-LAMP与相关方案性能对比Tab.4 Performance comparison between BRO-LAMP and other schemes

6 结语

为了适应低成本RFID系统存储与计算资源受限的场景,同时保护通信的安全与标签的隐私,本文提出了一种新的基于随机运算符的方法,通过随机数保护无线信道中传输的秘密值;同时基于k-匿名的思想,通过基本令牌组中随机选取子令牌bki,j配合随机选取的运算符实现令牌tk的更新,以此为基础提出了一种新的RFID 认证协议BRO-LAMP。通过安全性分析与性能分析可知,所提方案被证明是可行、有效、实用的。

接下来,我们首先将会加强协议对侧信道攻击(Side Channel Attack,SCA)等针对电子设备运行中产生的参数被攻击者检测到,而产生信息泄露的攻击行为的抵抗。其次,本文提出的协议的安全性,很大程度上依赖随机运算符表ST的生成与更新,进一步说是依赖于洗牌算法Shuffle 所使用的种子Seed的随机性。所以,未来我们将设计并使用基于物理不可克隆函数的真随机数发生器(True Random Number Generator,TRNG)来改进Shuffle 算法,进一步增加种子Seed的随机性与不可预测性。

猜你喜欢

令牌服务器端阅读器
称金块
The Magna Carta
Winner Takes All
基于Qt的安全即时通讯软件服务器端设计
基于Qt的网络聊天软件服务器端设计
一种基于Java的IM即时通讯软件的设计与实现
亚马逊推出全新Kindle Paperwhite电子书阅读器
基于C/S架构的嵌入式监控组态外设扩展机制研究与应用
《道教法印令牌探奥》出版发行