陈小海,丁 勇,黄廷辉
(桂林电子科技大学 计算机与信息安全学院,广西 桂林 541004)
随着经济全球化的迅速发展,RFID技术虽然得到了广泛的应用,但却面临着安全和隐私的威胁,包括RFID伪造、嗅探、追踪、拒绝服务、欺骗、拒绝和重放攻击等[1,2]。同时,RFID安全研究主要集中在加强各种RFID协议的安全性和私密性,并与集中式数据库结合使用[3-5]。基于集中式数据库RFID系统存在数据易丢失、被篡改和单点故障等问题,且供应链产品溯源困难,数据透明度低,易出现假冒产品。区块链技术是一种新兴的去中心化的安全管理技术,可以通过引入区块链来解决集中式数据库的缺点[6-8]。
区块链解决了传统供应链技术存在的漏洞,但它的广泛应用存在许多问题,如与区块链系统中集成RFID技术相关的安全和隐私问题。Toyoda等[9]、Wang等[10]提出的基于区块链的RFID认证协议,用于解决区块链在RFID系统中应用的安全认证问题,但该协议存在易受追踪攻击和计算需求较大的问题。
当前轻量级RFID认证协议得到了广泛的研究,例如Lin等提出了一种用于供应链系统的基于云的RFID标签互认证协议[11],Hsu等[12]提出了一种用于高吞吐量RFID系统的密钥管理身份认证(KMIA)协议,Mujahid等[13]提出了一种超轻量级原语,即pseudo-Kasami代码,然而这些协议均存在不同程度的安全漏洞。
本文研究设计了一种超轻量级身份认证协议UPBBC(ultralightweight protocol based on block chain)来保障基于区块链系统的标签与阅读器之间的通信安全。与当前使用的方法相比,将区块链技术用于供应链管理具有明显的优势。
区块链技术于2008年引入,最初的目的是解决当前经济的问题[14],它可以使用户能够在没有中间第三方参与的情况下进行交易。区块链是一个以分布式分散账本(DLT)为基础的基础架构。数据只能添加到分类账中,不能删除[15]。所有的数据都以块的形式存储,对等节点网络共享区块链的副本,任何篡改数据的操作都将无法进行,并且大多数参与节点需要就添加到链上的数据达成共识。因此,与集中式数据库相比,不存在单点故障。
目前存在几种类型的区块链,它们根据网络上的节点可见性、用户如何连接到网络以及连接后获得的权限分为不同的类别,分别为公有链、联盟链和私有链。每种类型的区块链在匿名性、不变性、效率和透明度上都具有不同的重要性级别。公共区块链网络由于每个用户都可以看到所写的信息,私有区块链实体将完全控制权授予单个实体,从而使其变得所有权过于集中,不适用供应链系统。因此,具有混合功能的联盟区块链网络更适合在供应链管理中使用。
协议设计中主要的供应链节点有:制造商、分销商、零售商和最终用户。制造商节点作为控制供应链平台的治理主体,起着至关重要的作用,它具有完全的访问权限,并且能够授予某些参与方加入网络的权限。此外,它是这个网络中唯一可以执行一致协议的节点。网络中的其它节点,如分销商和零售商,具有与制造商节点相同的完全访问控制权限,但是,它们无法验证事务。终端用户节点只允许从网络读取数据。由于不同的供应链节点具有不同的访问级别,因此标签需要区分它们,并相应地更新或保持其机密数据的完整。同时由于RFID标签在计算上受到限制,因此引入了一个简单的解决方案来通知访问级别,并包含向标签发送特定的值。采用随机数的偶数表示具有读写访问权的供应链节点,采用随机数的奇数表示只具有读写访问权的终端用户节点。
UPBBC该协议主要包含3个部分:标签、阅读器和供应链节点。供应链节点包括上述的制造商、分销商、零售商和最终用户。由于低成本RFID标签在计算上受到限制,本文提出的协议采用按位异或和移位操作。而供应链节点没有计算限制,因此它可以执行更复杂的哈希计算操作。
通常供应链节点与读写器之间的通信通道是安全的,而读写器与标签之间的通信通道是不安全的,且由于分布式分类账本的特性,存储在区块链中的数据被认为是安全的。因此,设计该协议是为了保护读写器和标签之间通过通信信道传输的消息。表1为协议中使用的符号说明,图1为供应链节点、阅读器和标签之间的身份验证阶段进行的操作,以下对每个步骤进行解释。
表1 协议符号说明
图1 协议流程
(1)发起会话,阅读器向标签发送一条Query消息和一个随机数T。
(2)接收到这两条消息后,标签使用其存储的IDS、K、生成的随机数N和接收到的随机数T来计算消息A和消息B。标签将计算出的A和B发送给阅读器。
(3)阅读器将T、A、B的消息转发给供应链节点。
(4)供应链节点提取存储的密钥K,根据公式计算生成N′、IDS′,根据N′、IDS′计算得到S
N′=RROT(B,T)⊕K
IDS′=RROT(A,N′⊕K)⊕T
(5)读取器将消息C和D转发给标签。
(6)接收到消息C和D后,标签从接收到的消息D中提取随机数Z
Z′=RROT(D⊕ROT(T,K),IDS)
C′=ROT(T,IDS⊕K)⊕ROT(Z′,K)
如果从提取的Z计算出的消息C′等于接收到的C,则标签对读取器进行身份验证。身份验证之后,如果Z的值为偶数则标签更新其IDSnew,如果Z的值为奇数,则标签将不会更新其IDSnew
IDSnew=ROT(K⊕N,IDS)⊕ROT(IDS⊕K,T)
图2 基于区块链的供应链中相互认证协议应用场景
BAN逻辑形式化分析方法是由Burrows、Abadi和Neesham提出的,是最具影响力的安全协议形式化分析方法。本文使用BAN逻辑形式化分析方法对提出的协议UPBBC进行安全性分析。
3.1.1 BAN逻辑基本符号与推理规则
本节介绍UPBBC协议中用到的BAN逻辑形式化分析方法的基本符号和推理规则。
(1)BAN逻辑基本语义
BAN逻辑形式化分析过程中用到的表达符号的基本语义表示如下:
P、Q:分别表示不同的通信主体;
X、Y:分别表示通信的消息;
K:表示共享秘钥;
KP、KQ:表示对应主体P、Q公有秘钥;
P|≡X:表示主体P相信消息X为真;
P|~X:表示主体P发出了包含X的消息;
{X}K:表示X经过秘钥K加密的消息;
#(X):表示消息X是新鲜的;
P→Q:表示主体P发送消息给主体Q;
P|≡Q⟹X:表示主体P相信主体Q对消息X的管辖权。
(2)推理规则
BAN逻辑形式化分析方法的推理规则总体分为7类,安全协议根据推理规则来推导出协议的安全目标。以下介绍本协议用到的其中6类推理规则。
接收消息规则:接收消息规则(1)表明若P收到消息整体(X,Y),则P收到该消息的组成部分X
(1)
消息含义规则:消息含义规则(2)表明若P相信K为实体P、Q之间的共享密钥,且P收到由密钥K加密的消息{X}K,则P相信给主体Q发送了包含X的消息
(2)
新鲜性规则:新鲜性规则(3)表明若P相信X是新鲜的,则P相信包含X消息的整体(X,Y)也是新鲜的
(3)
临时校验规则:临时校验规则(4)表明若P相信消息X是新鲜的,且P相信Q发送过消息X,则P相信消息X
(4)
管辖权规则:管辖权规则(5)表明若P相信Q对消息X有管辖权,且P相信Q相信X消息,则P相信消息X
(5)
信念规则:信念规则(6)表明若主体P相信消息整体(X,Y),则P相信消息的组成部分X
(6)
安全协议的形式化分析证明需要先将协议转化成BAN逻辑形式化语言,并根据协议提出安全目标。下面介绍UPBBC协议转化为BAN逻辑形式化语言,提出协议的安全目标,并通过BAN逻辑规则对安全目标进行证明。
3.1.2 协议描述
(1)协议的理想化模型
将安全协议转换为BAN逻辑理想化模型如下,其中R表示阅读器,T表示标签:
M1:R→T:Query,T
M2:T→R:{{IDS,T,N}K,{T,N}K}
M3:R→T:{{IDS,T,Z}K,{T,IDS,Z}K}
将消息M2,M3转换成BAN逻辑语言:
(2)协议初始化假设
初始化假设为协议中已有的推导条件。本协议已有的条件有如下8条。
P3:T|≡#(N)
P4:R|≡#(N)
P5:T|≡#(T)
P6:R|≡#(T)
P7:T|≡R|⟹N
P8:R|≡T|⟹Z
(3)安全目标
安全目标即安全协议需要达到的目标,本协议需要到达的目标为阅读器相信标签动态IDS为真,且标签相信随机数Z为真,即目标一G1和目标二G2。
G1:R|≡IDS
G2:T|≡Z
3.1.3 安全性证明过程
安全性证明过程即安全协议推导安全目标的过程。协议能根据推理规则和初始化假设推导出安全目标G1、G2则证明协议安全。安全目标推导过程如下:
由逻辑语言M2、初始化假设P1和接收消息规则(1)可推出
(7)
由式(7)根据初始化假设P1和消息含义规则(2)推导出
R|≡T|~(IDS,T,N)
(8)
根据初始化假设P4和新鲜性规则(3)得出
R|≡#(IDS,T,N)
(9)
再由式(8)和式(9)根据临时校验规则(4)推导出
R|≡T|≡(IDS,T,N)
(10)
由式(10)及初始化假设P7根据管辖权规则(5)得出
R|≡(IDS,T,N)
(11)
再由式(11)根据信念规则(6)可推导出安全目标R|≡IDS,即安全目标G1得证。同理可证安全目标G2:T|≡Z。
本文对该系统及安全协议UPBBC可能面临的安全性攻击进行分析,具体如下:
(1)单点故障、数据篡改和假冒攻击
由于该系统基于分布式区块链技术设计,所有的数据都以块的形式存储,对等节点网络共享区块链的副本,任何篡改数据的操作都将无法进行,并且大多数参与节点需要就添加到链上的数据达成共识。因此,与集中式数据库相比,本系统不存在单点故障,也无法对数据进行篡改和假冒攻击。
(2)重放攻击
当攻击者记录在通信信道中交换的消息并重放这些消息以窃取信息或获得访问权时,就会发生重放攻击。①攻击者将前一会话中捕获的消息A和消息B重放给读取器。然而,读取器无法验证由真正的标签发送的消息,因为ID和K在每个新会话中都使用新的随机数(T和N)加密,无法通过认证;②攻击者将前一会话捕获的消息C和消息D重放到标签。同样,攻击者也不会成功,因为标签无法对消息进行身份验证,因为消息C和消息D的计算需要对每个新会话使用不同的随机数(T和Z)。因此所提出的协议能够抵抗重放攻击。
(3)中间人攻击
(4)去同步化攻击
(5)追踪攻击
这种攻击的目的是基于标签对阅读器查询返回的常量响应来追踪标签的移动。可以通过使用密钥对其进行加密来防止这种恒定响应。在该协议中,消息A~消息D分别使用秘密信息ID和K,以及随机数T、N、Z进行加密,每次成功会话结束时,都使用随机数T和N对ID和K进行更新。协议可以有效抵抗追踪攻击。
协议安全性对比见表2,可以看出本协议能有效抵抗重放攻击、数据完整性、去同步化攻击和追踪攻击者5种安全威胁,且由于区块链技术的优越性,本文提出的协议能有效解决单点故障和数据篡改问题,相比文献[2]、文献[10]、文献[13]、文献[15]安全性更高。
表2 协议安全性对比
由于RFID阅读器和供应链节点具有较高的处理能力,而标签资源受限,因此以下对RFID标签的性能进行分析。
存储开销,指RFID标签在部署之前存储所需数据所产生的成本。在UPBBC协议中,一个RFID标签需要存储K和ID,每个K和ID长度均为96位,所以标签总的存储开销为192位。
计算开销,指RFID系统认证所需的计算时间。Txor、Trot分别表示执行异或、移位操作所需的时间。RFID标签在认证阶段的总计算成本为12Txor+12Trot,异或操作Txor的计算成本可以忽略,因为该计算成本大大低于使用单向哈希函数Th和对称加密Tenc的计算成本。此外,移位操作都是按位操作,其计算消耗可以忽略不计,因此可以忽略本协议的计算成本。
通信开销,指RFID系统认证所需的通信时间。通信由读取器发送给标签的40位Query消息和96位随机数T启动。提出的协议使用4条消息(A、B、C和D)执行相互身份验证,每条消息长度为96位。因此,总的通信成本仅仅是传输520位的成本。
综上所述,该协议在性能方面与现有的轻量级身份验证RFID协议进行了比较,见表3,可以看出本协议保持了较低的通信开销,且在存储开销和计算开销方面相比现有协议均具有优势。
表3 协议性能对比
本文针对集中式数据库的传统RFID供应链系统存在的问题,在供应链管理系统集成利用联盟区块链网络,并针对该系统设计一种轻量级安全协议。将供应链节点分为4类,即制造商、分销商、零售商和最终用户,每个供应链节点被授予不同的访问级别,通过使用一个具有奇数或偶数的随机数来表示节点的访问级别来区分它们。根据该系统特点设计轻量级的身份认证协议,对系统及协议安全性进行分析并对协议性能进行分析,结果表明所提出的系统不受单点故障、数据篡改、假冒问题影响,且协议能保证系统不受密钥泄露、重放、中间人、去同步和追踪5种攻击。与现有的协议相比,所提出的协议UPBBC在存储、计算和通信成本方面均具有优势,该协议适用于RFID基于联盟区块链的供应链与网络,基于区块链的RFID供应链系统更适用于保护产品信息及用户数据的安全。