交叉口场景下基于区块链技术的匿名车辆身份认证方案
2020-10-21王昊吴天昊朱孔林张琳
王昊,吴天昊,朱孔林,张琳
(北京邮电大学信息与通信工程学院,北京 100876)
1 引言
V2X(vehicle to everything)是车辆与其他节点进行通信所需技术的总称,来自传感器和其他信号源的信息通过高带宽、低延迟、高可靠性链路传输,为车辆实现无人驾驶铺平了道路。V2X主要包括车辆与车辆(V2V,vehicle to vehicle)通信、车辆与基础设施(V2I,vehicle to infrastructure)通信等,其典型结构如图1所示。通过信息交互,有关道路交通和车辆状况的消息得到共享。其中,道路交通状况包括天气状况、道路缺陷、拥堵情况等消息;车辆状况包括车辆位置、行驶速度等消息。在收到这些消息后,其他车辆可以改变其行驶路线,以避免可能发生的交通事件,如交通堵塞、交通事故等,从而保障交通安全和提高车辆通行效率。这些优点使V2X成为智能交通系统中一项极为关键且有发展前途的技术[1]。随着智能网联汽车等技术的发展,车辆变得越来越智能化,越来越不依赖于人类操作。由于大量传感器和交通设施的相互连接,车辆用户可以享受更加安全、环保、高效的旅程。
图1 V2X技术的典型结构Figure 1 The structure of V2X technology
V2X技术在未来智能交通领域有着众多应用场景,城市道路中最常见的场景之一是道路交叉口,自动驾驶汽车在进出交叉口时,不再受传统信号灯的控制,而是通过协同感知周围车辆并与交叉口附近的区域服务器(LS,local server)进行信息交互,来进行统一的调度。其中,区域服务器是具有较高的计算与数据共享功能的路侧单元(RSU,road side unit),可以通过无线与车辆通信。通过这种方式,交叉口的车辆通行能力得到有效提升,从而进一步保障交通安全。
为防止恶意节点接入交叉口信息控制系统,车辆与控制中心的身份认证是必不可少的。车辆在道路上不断移动,并依次穿过多个交叉路口,在与区域服务器进行数据交互并接受控制与调度之前,必然需要进行车辆与区域服务器的身份认证。传统的认证模型不适用于高速移动车辆访问并接收服务的情况,因为这些模型要么忽略了用户隐私,要么忽略了车辆通信中的延迟要求。因此,在道路交叉口中需要一种轻量级的匿名认证机制,在保护车辆隐私的同时实现其身份的认证,从而实现后续与交叉口协同控制系统的信息交互。
目前,车联网中的安全通信环境通常是通过身份认证协议来实现的。文献[2]提出一种全新的认证加密方式,终端使用永久有效的认证证书和实时更新的临时假名证书相结合的认证方式。动态更新的假名临时证书不包含车辆、驾驶员的隐私信息,只被用作车车、车路通信的临时凭证,在一定程度上保护了车辆的隐私。文献[3]设计了基于证书颁发机构(CA,certificate authority)认证的中心化安全机制,在对数据进行加密之前,先通过CA对车辆节点进行认证,并进行有效密钥管理,然而此方案的认证过程过于集中化,一旦存储认证信息的节点被攻破,会导致信息泄露和车辆无法认证。
近年来,区块链技术在学术界和工业界引起了广泛关注。区块链是一个分布式系统,多个网络节点可在不需要中央授权的情况下维护相同的信息。因此,该技术不仅可以减少由中央管理的数据库被篡改的攻击,而且可以减少数据中心、区域、域管理器之间的通信开销,这特别适合应用在对延迟敏感的车联网环境中[4]。这些特点促使人们探索区块链技术在车辆认证机制中的应用。
为了解决上述问题,本文提出了一种基于区块链技术的车辆匿名认证方案,为提高系统性能,本文方案在认证中采用基于身份(ID)和哈希消息认证码(HMAC,hash message authentication code)的混合密码认证机制,认证过程保证了车辆的匿名性,并将认证结果记录在区块链中,提高了数据的交互效率和系统的防篡改能力。
2 相关工作
2.1 车联网中匿名认证机制
身份认证是一种保护V2X中各节点免受恶意实体攻击的机制,被认为是防御各种攻击的第一道防线。Biswas等[5]提出了一种车辆消息认证和针对道路周期性安全信息的高效验证策略。将椭圆曲线数字签名算法的一种变体与基于身份的签名相结合,利用车辆上的当前位置信息作为相应车辆的ID,这就不需要第三方公钥证书来验证V2X中的消息。Shen等[6]提出一种协作消息认证协议(CMAP,cooperative message authentication protocol),以发现恶意车辆在交通系统中传播的恶意信息。协作消息认证是一种很有前景的技术,它可以减少车辆在消息验证方面的计算开销。然而,随着车辆密度的增加,通信开销随之增加。该方法的主要限制是如果没有验证者来验证消息,那么恶意信息可能会被其他车辆用户错误使用。
隐私保护是V2X通信过程中的另一个关键问题。车辆以明文形式将其身份发送到RSU或其他车辆。通过捕捉车辆的信息,敌手可以追踪车辆的行驶路线。交通线路的泄露侵犯了驾驶员的隐私,并可能造成严重的后果,因为这些路线可能被用于某些违法行为。为解决隐私问题,必须在V2X通信中提供匿名消息,但可信的权威机构仍然可以从消息中提取真实的身份。例如,当恶意车辆发送虚假信息并导致犯罪或事故时,其真实身份可以被有效追溯,使恶意车辆因其行为而受到处罚。因此,应该在车联网认证中实现有条件的隐私,即保护车辆隐私的同时,实现车辆身份的可追溯性。文献[7]提出了一种基于群签名的认证方案,可以再车辆自组网中实现安全且隐私的车辆认证。文献[8]提出了一种车联网中基于密码和有条件隐私的身份认证和群密钥生成协议,该协议在设计时没有使用双线性对和椭圆曲线,因此在计算和通信方面是轻量级的。Azees等[9]提出了一种有效的匿名认证机制,该机制认证过程中提供了有条件的隐私保护,减少了车辆和道路匿名证书的存储开销。文献[10]介绍了一种基于身份的双线性对签名加密(IBSC,identity-based signcryption)方案,适用于低带宽通信,但由于其计算量大,不适用于交通场景中RSU在短时间内验证大量车辆的情况。
2.2 区块链在身份认证中的应用
区块链是一种按照时间顺序将数据区块以链条的方式组合而成的特定数据结构,其本质上是一种分布式的数据库。目前的区块链系统大致可分为3类(公有链、联盟链和私有链)[11],本文主要使用联盟链。联盟链只选择部分节点来确定协商一致意见,其具有以下特性:首先,对于联盟链的一致性确定,由一组选定的节点负责对区块进行验证;其次,记录的读取权限可以是公开的,也可以是受限的;最后,半分布式并不是网络中所有节点都能加入联盟链的共识过程,共识效率高。
区块链的关键优势之一是促进所有分散的节点在数据有效性上达成一致,这是节点间相互信任的基础。常见的共识算法有基于工作量证明(PoW,proof of work)算法、权益证明(PoS,proof of stake)算法、实用拜占庭容错(PBFT,practical Byzantine fault tolerance)算法等[12]。由于交叉口场景中对实时性要求高,不需要令牌,为提高认证效率,参与协商一致过程的节点数目相对固定的PBFT算法更适合在交叉口认证场景下使用。
传统认证机制需要用户和数据中心之间的多次交互,这是车辆有效访问路边节点的一个障碍。区块链作为一个分布式系统,多个网络节点可在不需要中央授权的情况下维护相同的信息,可以有效降低数据中心、区域、域管理器之间的通信开销。文献[13]提出了一种基于区块链的分布式PKI(public key infrastructure)认证系统,以提供密钥查询和身份绑定服务,但由于用户的身份和公钥直接存储在区块链中,可能会造成隐私泄露。文献[14]提出了一种适用于异构智能交通系统的基于区块链的动态密钥管理方法,通过仿真结果表明了使用区块链结构在密钥传输时间方面比中央管理器结构效果更好。Wang等[15]提出了一种基于块链的跨域认证模型BlockCAM,以保证在不同区域访问资源的安全性和效率。与传统的车联网认证机制相比,基于区块链的车联网身份认证机制既可以提高认证效率,又可以抵抗分布式拒绝服务(DDoS,distributed denial of service)攻击[16],因为区块链的节点是分散的,且每个节点具备完整的区块链信息,并能对其他节点的数据有效性进行验证,即使攻击者攻破某个节点,剩余节点也可以正常维持整个区块链系统,因此,针对区块链的DDoS攻击将会难上加难。
3 基于区块链的匿名认证方案
汽车正在向智能化、无人化的方向发展,对车辆进行管理,实现汽车安全行驶是车联网的重要课题。车联网属于物联网的一部分,同样具有分布式、去中心化等特点,因此,区块链技术可以解决车联网去中心化管理、隐私保护等问题。本节首先介绍系统模型,然后提出安全目标和系统的设计细节。
3.1 系统模型
本文研究了基于区块链技术的车辆匿名认证方案,系统模型如图2所示,主要包括4类参与者,分别为信任机构(TA,trust authority)、区域服务器、共识节点(WP,witness peer)和车辆(vehicle)。
(1)信任机构
为了保证系统的有序运行,需要一个充分可信任的机构TA,负责生成系统参数,以及追踪非法车辆。
(2)区域服务器
LS是在交叉口中为汽车通行提供路径规划的服务提供方。车辆不需要信号灯的指示,而是根据LS为其规划的通过交叉口的先后顺序依次通过,在此之前需要对进入交叉口的车辆进行身份认证。可将LS理解为具有较高的计算与数据交互功能的RSU。LS可以通过无线与车辆通信,接收车辆发过来的请求信息,也可以通过有线与TA和WP通信。在建立系统之前LS需要先在TA上注册。每个LS维护一个包含所有车辆访问记录的公共账本。公共账本只能由TA、LS和WP访问。
(3)共识节点
WP是通过协商一致算法将身份认证结果写入公共分类账的对等方。每个交叉口设有一个WP。所有的WP和LS组成联盟链。
(4)车辆
本文中指无人驾驶汽车。每辆靠近交叉口的车辆会向LS申请路径规划服务,在此之前会进行车辆与TA的注册和车辆与LS的身份认证,以确认其合法身份,并享受后续数据共享与控制管理等服务。每辆车内部均配有嵌入式计算机、无线网络接口、GPS接收机、车载导航系统、数字地图等计算和通信单元。
图2 系统模型Figure 2 System model
3.2 安全目标
在交叉口场景中,安全和隐私对于安全通信至关重要。在确定安全需求之前,应该首先讨论安全威胁,车辆与道路其他实体通信过程中几类常见的安全威胁有:伪装攻击、重放攻击、假消息攻击、拒绝服务(DoS)攻击等[17-18]。
考虑到上述交叉路口可能存在的安全威胁,本文设计基于区块链技术的车辆匿名认证方案,并实现以下有关安全性的目标。
保密性:确保敌手不能解密传输的消息。
完整性:保证敌手不能篡改发送的消息。
匿名性:允许每辆车使用临时的假名。在访问LS期间,若更换假名,车辆可以选择重新验证自己的身份,使敌手很难对车辆进行追踪或统计。
可追溯性:保证TA能够追踪非法车辆并拒绝他们访问LS。
不可否认性:保证当非法车辆被举报时,其不当行为是不可否认的。
轻量化:保证较低的计算和通信开销。
3.3 系统描述
本文提出的认证系统包含5个阶段,即初始化、注册、身份认证、协商一致和服务交付阶段。表1给出了相关符号含义。
(1)初始化阶段
TA进行初始化,生成自己的公私钥对和密钥,并将公钥广播。初始化阶段仅由TA在系统建立期间执行一次。
TA生成自己的公私钥对{PuKTA,PrKTA},其中,PuKTA用TA来为LS和车辆生成公钥,PrKTA用TA来为LS和车辆生成私钥。
TA利用式(1)生成密钥SrkTA,用作车辆认证中HMAC运算的密钥。其中,SrkTA每24 h改变一次。
TA对PrKTA进行保密,公开参数SrkTA、PuKTA。
TA初始化后获得的参数为
表1 符号含义Table 1 Definition of symbols
(2)注册阶段
本阶段主要执行LS和车辆的注册,LS和车辆分别向TA进行注册,与TA共同生成公钥和私钥,使LS和车辆均注册为合法节点。其中,LS注册时执行以下步骤。
TA利用RIDLS、PrKTA和PuKTA按照式(2)和式(3)为LS生成公私钥对{PuKLS,PrKLS}。
LS对私钥PrKLS进行保密,公开其公钥PuKLS。
LS完成注册后获得的参数为
车辆在注册时主要执行以下步骤。
TA利用RIDV和假名截止时间VTPPsID为车辆计算假名,具体见式(4)。
TA利用PsIDV、PrKTA和PuKTA等参数按照式(5)和式(6)为车辆计算其公私钥对{PuKV、PrKV}。
与此同时,TA将生成的参数{PrKV,PuKV,SrkTA,PuKTA}记录在车辆的防篡改设备中。
车辆完成注册后获得的参数为
(3)身份认证阶段
此阶段目的是位于交叉口的LS对其覆盖范围内的车辆进行身份认证,随后LS将认证结果对WP进行广播,WP在协商一致阶段将认证结果写入区块链中。图3展示了身份认证与共识过程的基本数据交互。
当一辆驶向交叉口的车辆访问LS时,它需要执行如下操作。
车辆利用PsIDV、VTPPsID和PuKV等参数按照式(7)计算HCV。
车辆利用PsIDV、VTPPsID、HCV和PuKV等参数按照式(8)计算BSV。
车辆向其所处交叉口的LS发送BSV,LS接收BSV后,执行如下操作。
LS利用接收到的BSV中包含的PsIDV、VTPPsID和PuKV等参数按照式(9)计算HC′,来验证BSV的正确性。
LS验证式(10)是否成立。
若成立,LS将搜索其本地数据库认证信息是否存在。如果存在身份验证信息,LS将更新其数据库中的身份验证结果。同时,它将向所有WP广播认证结果,并为车辆提供数据共享和路径规划服务。
至此,车辆可根据其合法身份与LS进行数据交互,车辆发送安全消息如下。
LS收到车辆的安全消息后,即可通过HMAC检查来验证消息的合法性和完整性,其中,安全消息类型如表2所示。有效字节数(playload)统一为67 B,方便在性能分析中与其他认证机制进行比较;HMAC采用常见的HMAC-SHA1算法,其摘要长度取20 B;为减少签名所占字节,本文采用Shim在文献[19]中的方法,使签名降低到64 B。考虑交叉口车辆数,本文设置假名长度为6 B;参考文献[20]等研究,时间戳默认为4 B。
表2 车辆发送的安全消息类型Table 2 Safety message type sent by vehicles
(4)协商一致阶段
WP在收到认证结果之后,通过实用拜占庭容错算法将认证结果写入区块链中,具体操作如下。
假设共有k个WP,分别是{WP1,WP2,…,WPk},认证结果的每一轮写入,都会有一个WP作为记录者,其他WP作为共识者。
通过x=(hight modk)+1决定出一个记录者WPx(1≤x≤k),其中,hight是当前的区块长度。
SM向所有的WP广播附带SM签名的认证结果,所有的WP独立监听广播的认证结果数据,并保存在自己的内存中。
设置区块产生的时间间隔为t,经过时间t后,记录者给所有共识者发送提议
共识者WPi收到所述提议后,发送
每个WP至少收到k-f个签名SIGWPi(block)时,达成共识并且发布该区块;如果签名数量没有达到k-f,将执行下一轮共识。其中,,表示系统中允许存在的最大数量的有问题的WP。
任何WP收到完整区块后,会从自己的内存中删除包含在区块中的认证结果信息,然后开始下一轮共识。
图3 身份认证与协商一致阶段Figure 3 Authentication and consensus phase
(5)服务交付阶段
在此阶段,当车辆移动到新交叉口时,意味着车辆移向了新的LS覆盖范围,执行以下操作。
LS首先搜索本地数据库查找车辆的公钥PuKV,如果不存在,则搜索公共账本,找到PuKV后,如果它不在撤销列表中,则验证签名,如果验证成功并且时间戳TS是有效的,LS方可响应车辆的服务请求,否则拒绝服务。
其中,如果一辆违法车辆被上报给TA,TA将会检查区块链找到违法车辆的ID,并通知LS该违法车辆的公钥是无效的,LS将该恶意车辆ID标记并存储到本地撤销列表中,同时广播给所有WP。WP将恶意车辆信息写入区块链中,写入过程同协商一致阶段中的操作,用于后续认证过程参考。
4 系统评估与分析
4.1 安全性分析
本节证明所提方案满足以下安全要求:①保密性;②匿名性;③可追溯性。另外,所提方案可以有效抵抗重放攻击和DDoS攻击等。
(1)保密性
本文将基于身份的非对称密码和HMAC结合起来,实现道路交叉口场景下匿名车辆身份认证。公钥分发阶段,利用LS和车辆自身的ID生成公私钥对,保证了密钥的可靠性。认证阶段,安全消息BSV中包含由SrKTA生成的哈希消息认证码。只有合法注册的LS才有SrKTA。另外,发送车辆的签名和假名PsIDV附加在安全消息中。HMAC、签名和临时假名PsIDV确保了车辆与LS通信认证过程中的保密性和消息完整性。此外,只有合法授权的TA、LS、WP等节点才可以访问区块链。在服务交付阶段,当发送的消息,TS}被敌手篡改时,敌手只能获得毫无价值的假名PsIDV和时间戳TS。因此,所提方案保证了关键信息在整个工作流程中的保密性。
(2)匿名性
为了实现匿名,必须确保在部署BSV时,没有任何敌手能够提取真实身份。在认证阶段,车辆在交叉口附近向LS发送BSV消息。此BSV包含基于ID的数字签名和假名PsIDV,而不是车辆的真实ID。数字签名和PsIDV实现V2I通信过程中节点认证的同时,保证了匿名性。如果一辆汽车更改了假名,它只需要重新认证。另外,认证结果被写入区块链中,但只有合法授权的实体才能访问区块链。敌手很难获得车辆的真实身份,车辆的假名也会随时间有规律地变化,从而保证该机制的匿名性。
(3)可追溯性
TA旨在实现可追溯性的功能。当发现和报告车辆的违规行为时,TA将搜索区块链,以查明非法匿名车辆的相应真实身份,并撤销其公钥,从而保证非法车辆的可追溯性。同时,揭露非法车辆的真实身份,使其无法对非法行为进行否认,实现了认证过程中的可追溯性和不可否认性。
另外,如3.3节服务交付阶段内容所述,在身份认证过程使用查询−响应握手机制,在传递消息时添加时间戳TS。若时间戳TS是有效的,LS方可响应车辆的服务请求,否则拒绝服务。通过验证时间戳是否有效,可以防止重放攻击。本文设计的方案建立在区块链的基础上,具有无中心化和冗余的特性。即使一个节点被破坏,其他节点也不会受到影响,因此可抵抗DDoS攻击。
结合车联网场景下身份认证需求,本文方案与其他认证方案的主要特性对比如表3所示。
表3 本文方案与其他认证方案的主要特征对比Table 3 Comparison of the main features between the scheme in this paper and other authentication scheme
4.2 性能分析
本文采用车联网专用仿真软件Veins对方案进行了仿真,本次仿真使用的计算机系统配置为Intel Core i3-3217,1.8 GHz,8 GB RAM。主要仿真参数如表4所示。
表4 仿真参数Table 4 Simulation parameters
将本文方案与现有4种车辆认证方法[21-24]的性能表现进行比较分析。对比方案解释如下:文献[21]采用基于证书的签名,简称为PKI-Certi;文献[22]采用基于ID的签名认证机制,实现一种有条件隐私保护的认证方案,简称为ECPP;文献[23]是一种使用代理车辆的基于身份的消息认证方案,简称为ID-MAP;文献[24]采用批认证方式,简称为bSPECS。将本文提出的方案与基于PKI、基于ID、基于批认证的方案进行对比,表明本文所提方案具备轻量化的特征,以及在安全性要求、开销和延迟方面有更好的性能。
通信开销定义为除去有效信息的字节数与传输总字节数(即有效信息字节加开销字节)的比值,表示为
表2以及表5~表8分别列出了本文方案和PKI-Certi、ECPP、ID-MAP和bSPECS中使用的安全消息类型。对比的5种认证方案的传输字节分别为161 B、248 B、172 B、191 B和451 B。
表5 PKI-Certi认证机制中安全消息类型Table 5 Safety message type in PKI-Certi
表6 ECPP认证机制中安全消息类型Table 6 Safety message type in ECPP
图4显示了固定有效信息(payload=67 B)下通信开销与车辆密度之间的关系(车辆密度为1时对应实际密度为1 080 veh/h)。本文方案的通信开销比ECPP、ID-MAP、PKI-certi和bSPECS分别低2.66%、6.53%、14.59%和26.75%。
表7 ID-MAP认证机制中安全消息类型Table 7 Safety message type in ID-MAP
表8 bSPECS认证机制中安全消息类型Table 8 Safety message type in bSPECS
图4 通信开销与车辆密度之间的关系Figure 4 Relationship between communication overhead and vehicle density
协商一致阶段独立于身份认证过程。因此,本文对其进行单独评估,设置t=1 s为区块生成时间,通过设置不同的共识节点数,得出协商一致过程时间开销,结果如表9所示。
表9 协商一致过程时间开销Table 9 Time overhead in consensus phase
5 结束语
随着V2X技术和智能网联汽车的发展,智能交通系统中的通信安全愈发重要,本文围绕道路交叉口这一具体场景,通过深入研究交通环境下认证机制的内在机理,提出一种基于区块链技术的匿名车辆认证方案。本文方案在认证中采用基于身份和哈希消息认证码的混合密码认证机制,并将认证结果记录在区块链中,提高了数据的交互效率和系统的防篡改能力。仿真与分析结果表明,本方案具有较好的安全性、匿名性等特性,同时在保证用户隐私的前提下具有一定的可追溯性。在交叉口车辆身份认证过程中具有较高的实用价值。