车载自组网中基于UTXO的无证书分布式匿名认证方案
2023-06-08崔凯平郭丛摇
崔凯平,冯 霞,郭丛摇,龚 玲
(1.江苏大学 汽车与交通工程学院, 江苏 镇江 212013;2.江苏大学 汽车工程研究院, 江苏 镇江 212013)
0 引言
作为智能交通系统(intelligent transportation system,ITS)的重要组成部分,车载自组网(vehicular ad-hoc network,VANET)是由远程服务器、路侧单元及车辆等实体构建的自组织和分布式的异构网络[1]。近年来,借助无线通信技术的蓬勃发展,VANET在交通管理、拥堵控制、促进交通系统中实时信息传播、提高行车效率等方面表现出了巨大的应用潜力[2]。VANET主要包含2种通信模式[3]:车与车之间的通信(vehicle to vehicle,V2V);车与基础设施之间的通信(vehicle to infrastructure,V2I)。VANET中的授权车辆可以将实时道路/交通信息上传到可信机构(trusted authority,TA)或云服务器,便于TA实时分析交通状况[4]。
然而,VANET具有节点高速移动、网络规模较大和开放性通信等特点,一系列的安全风险对VANET的信息安全和网络内用户隐私都产生了巨大威胁[5-8]。例如,恶意车辆可以通过冒充其他合法车辆广播伪造消息或制造虚拟交通场景,从而扰乱正常的交通秩序中[9]。此外,攻击者还可能利用车辆在通信过程中暴露的标识信息跟踪车辆,进而获取车辆的位置、运行轨迹等隐私信息,威胁用户的行车安全[10]。
为了解决VANET中的安全与隐私保护问题,国内外学者提出了一系列的隐私认证方案[11-13]。例如,Chen等[11]提出一种基于阈值的匿名公告方案,若至少有τ辆车广播相同的信息,可信机构才会接受该消息。然而,这些方法均存在较高的计算与储存开销。区块链[14]具有去中心化、可扩展及匿名性等特点。利用区块链技术可以建立起分布式系统架构,能够有效解决车联网中的隐私保护、资源调度和跨域认证等一系列问题。国内外许多学者提出了基于区块链的认证方案及研究展望[15-18]。但目前该类方案仍存在着节点共识开销较大、对车辆身份无法有效溯源和缺乏有效的车辆身份管理机制等问题。
综上所述,现有研究提出的认证方案大多不能满足VANET的高效认证需求,且存在一些不足。首先,现有方法存在较长的认证延迟,尤其是在认证与获取车辆相关信息等方面;其次,方案没有足够的可扩展性,存储消耗随着证书数量的增加而不断增长;最后,现有方案中,用户真实身份与数字证书之间存在可链接性风险。本文针对已有研究的不足,提出一种基于未花费交易输出(unspent transaction output,UTXO)模型的无证书分布式匿名认证方案。
1 相关工作
目前,国内外学者对VANET中的安全和隐私保护问题进行了一系列研究。Chen等[11]提出了一种基于阈值机制的匿名公告系统。在VANET的开放性通信环境下,阈值机制成为阻止虚假信息扰乱交通秩序的有效手段,即针对某一消息,仅当发布相同消息的用户数量超过设置阈值时,验证者才会接受该消息。该方案能有效确保消息公告的有效性,但无法及时撤销恶意用户的身份证书。Wu等[19]提出了一种基于群签名消息认证方案。该方案支持消息可追溯,但在消息溯源过程中需要进行多次双线性配对操作,导致存在较大的计算开销。Lin[20]基于路侧单元(road side unit,RSU)实现了对恶意车辆的检测与高效追溯。但该方案不适用于RSU分布稀疏的地区,无法抵御VANET中不可信RSU的攻击。Zhang等[21]利用群签名来解决用户消息广播过程中的可链接性问题。然而,该方案中同一个私钥需要在一个群组内的不同用户间共享,容易造成密钥的泄露。Ying等[22]提出了一种轻量级的身份认证方案,利用哈希计算实现车载单元(on board unit,OBU)、RSU和可信机构之间的相互认证。但是,该方案不能有效抵御重放攻击和篡改攻击。
许多学者利用区块链技术解决ANET中的安全和隐私保护问题。Lin等[17]利用智能合约来完成认证书注册、更新等操作,并在身份认证过程中实现条件隐私保护。但是该方案基于以太坊实现,可扩展性较差。Yao等[23]提出了一种基于区块链的轻量级匿名认证方案,满足匿名性、消息认证及完整性等安全需求,但在认证过程中存在可链接性的风险,攻击者能够根据静态假名追踪车辆,从而导致车辆隐私信息泄露。Shrestha等[24]基于区块链提出了一种身份验证与身份撤销方案,将车辆的身份证书储存在区块链中,使RSU能够借助区块链实现对车辆身份的高效认证,避免在认证过程中与可信机构建立通信,导致降低计算和通信开销。Wazid等[25]提出一种车联网环境下的轻量级认证密钥协商协议,但该方案在安全性上无法抵御同步攻击。
2 预备知识与数学假设
2.1 UTXO模型
基于未花费的交易输出(UTXO)模型构建的交易(transaction)主要依靠输入集合InputSet与输出集合OutputSet实现货币流通。其中,输入集合与输出集合中各包括若干输入Input与输出Output。
2.1.1输出(Output)
Output中储存着该输出对应交易对象的信息,主要包括V和Hpk两个参数。其中V代表对某一交易对象的交易值;Hpk代表交易对象公钥的哈希值。
2.1.2输入(Input)
当前交易包含的每个输入都是基于之前交易的输出生成的。Input中主要包括Ptran、Nout、σsk及pk四个参数。其中Ptran代表该输入所对应交易的索引;Nout用于标记该输入所对应输出在之前交易输出集合中的位置。与之前交易输出中Hpk相对应的用户公钥定义为pk。σsk为用户使用公钥pk对应的私钥基于交易索引生成的签名。
2.1.3验证机制
一般而言,一笔基于UTXO生成的交易包含若干输入与输出。验证者可以通过验证交易中所有交易输入的有效性来确认该笔交易的合法性,具体验证细节如下:
1) 验证者利用哈希函数计算输入中包含的公钥pk的哈希值Hashv。即:
Hashv=HashFunc(pk)
(1)
其中:Hashv为哈希计算结果;HashFunc为哈希函数。
2) 验证者比较计算值Hashv与该输入对应交易输出中的Hashpk是否一致。即:
Compare(Hashv,Hashpk)=true(2)
(2)
若结果一致,则比较结果返回为true;反之,则返回false。
3) 验证者利用公钥pk验证签名σsk,即:
Verify(pk,σsk)=true(3)
(3)
若验证通过,则验证结果返回为true;反之,则返回false。
通过以上步骤,验证者即可验证该交易包含的某个输入是否有效。
2.2 数学假设
ECDLP问题[27]: 给定素数q和椭圆曲线E,选定曲线E上任意一点C,且满足C=xP。其中,P,C∈G,G为q阶加法循环群,群的生成元为P。在已知P,C的情况下计算x是困难的。
3 相关定义
3.1 许可币
车辆许可币由可信机构生成。车辆基于许可币生成一笔有效交易来参与认证过程。车辆在没有许可币的情况下无法生成有效交易,也无法参与认证过程。当车辆身份认证成功时,可信机构向该车辆发放一定数量的许可证币作为奖励。
3.2 交易类型及功能
本文中,交易基于UTXO模型生成,分别为即时交易、认证交易、聚合交易和源交易。即时交易由用户和可信机构生成并用于具体过程,如参与身份认证过程。用户利用即时交易参与某具体过程时,该即时交易将被重新定义为其他交易类型。 例如,用户利用即时交易参与身份认证过程,即时交易将被重新定义为认证交易。即时交易用于聚合用户拥有的所有许可币时,即时交易将重新定义为聚合交易。当用户利用即时交易参与某具体过程之后,该交易被可信机构储存至区块链状态数据库。存储在该数据库中的交易将被重新定义为源交易。用户基于源交易的输出生成一笔最新的即时交易。
聚合交易对身份认证效率有显著影响,交易基于UTXO模型生成,验证者在认证过程中需要检查输入集合中包含的所有Input的合法性。该过程产生了大量的计算开销与认证延迟。为应对上述问题,提出一种许可证币聚合机制。用户可以生成一笔即时交易来聚合许可证币,此时即时交易被重新定义为聚合交易。用户基于持有的来自不同输出的所有许可币生成最新即时交易的输入,基于许可币总和与本地公钥哈希值生成即时交易的输出。之后,该聚合交易将被存储在区块链状态数据库中。
聚合交易只具备单个输出,因此用户基于聚合交易生成的即时交易将只包含单个输入。当用户利用该笔即时交易参与身份认证过程时,验证者仅需验证单一输入的有效性,可有效节省计算开销并降低认证时间延迟。
3.3 交易结构
本文中,交易主要包括交易索引、交易类型、失效时间、输入集合、输出集合、时间戳、交易序号及备注字段。主要字段含义如下:
1) 交易索引:基于椭圆曲线加密算法生成。该字段主要用于在区块链状态数据库检索目标交易。
2) 交易类型:表示用户利用该交易参与的过程,如聚合交易、认证交易等。
3) 失效时间:交易失效的时间。
4) 输入/输出集合:包含若干输入/输出。
5) 交易序号:用户总计生成的交易数。
4 系统架构与安全需求
4.1 系统架构
系统架构主要由计算层与用户层组成,如图1所示。用户层实体包括车载单元OBU、路侧单元RSU;计算层实体主要包括根权威机构(root authority,RA)、区域性可信机构(regional trusted authority,RTA)。
图1 系统架构示意图
1) RA。RA是一个法律授权机构。在所提方案中,RA是唯一可以揭露车辆真实身份的机构,拥有强大的计算与储存能力。在VANET中,RA负责对OBU和RSU进行注册,并与RTAs作为区块链节点维护区块链网络。本文中假设RA不会和其他实体合谋。
2) RTA。RTA负责检查接收信息的有效性并验证消息发送者的身份。RTA具有足够的计算与储存能力,并与RA作为区块链节点维护区块链网络。本文中假设RTA是完全可信的机构。
3) RSU。RSU是沿道路或十字路口固定的具备计算与通信能力的装置。RSU负责在其通信范围内广播最新的系统消息,例如 RTA 的公钥,并在网络环境较差时协助车辆完成消息上传过程。本文中假设RSU为半可信装置。
4) OBU。OBU是安装在车辆上负责处理车辆终端的感知、计算和通信任务的设备[6]。装备OBU的车辆能够通过无线链路完成交通信息的上传。另外,OBU具备防篡改装置,用于存储车辆的隐私信息[28]。本文中假设OBU与RSU保持同步。
4.2 安全需求
由于VANET为开放性网络,故方案需要满足更高的安全要求,具体如下:
1) 认证性:消息接收者能够验证消息发送者的身份是否合法。
2) 匿名性:车辆参与身份认证过程而无需透露真实身份。
3) 不可链接性:攻击者无法从不同的消息中链接到同一辆车。
4) 可追溯性:当车辆发生恶意行为时,根权威机构能够通过交易揭露车辆身份。
5) 重放攻击:在身份认证过程中,攻击者向消息接收者重复发送之前的交易,从而欺骗消息接收者。
6) 篡改攻击:攻击者修改认证消息并成功通过消息接收者的认证。
5 本文方案
本文中使用的符号定义具体如表1所示。
表1 相关符号定义
续表(表1)
5.1 系统初始化阶段
在系统初始化过程中,RA与RTA分别生成本地主密钥(skm,pkm)、(skr,pkr),具体过程如下:
1) RA定义椭圆曲线E:y2=x3+Ax+Bmodp,其中p>5,A,B∈Zp且满足4A3+27B2≠0。椭圆曲线E上的点及无穷远点构成1个椭圆曲线加法群Gp,点P为生成元。
5.2 用户注册
每个VANET用户层实体都需要进行身份注册。用户层实体向RA提交真实身份信息,RA验证该身份信息的合法性,并基于主密钥对接收到的真实身份信息加密生成身份假名。之后,RA将注册结果转发给用户层实体所在区域的RTA。RTA生成一笔注册交易向注册实体发放许可证币以初始化认证权限。该注册交易将作为源交易。详细过程如下:
1) 用户层实体向RA提交真实身份信息。
2) RA验证该身份信息的合法性。之后,RA通过将用户层真实身份信息加密生成用户的身份假名Pid。
3) RA将注册信息转发至用户层实体所在区域的RTA。RTA通过一笔注册交易向注册实体发放许可证币以初始化用户认证权限。
身份假名的具体生成过程为:
Cid=Encryptpkm(mr||t)
(4)
Pid=Cut(Cid)
(5)
其中:Cid表示基于pkm对用户真实身份加密产生的密文;Encrypt()代表加密函数;mr为用户的真实身份信息;Pid为用户的身份假名;Cut表示对Cid字段的前n位进行截取。
在完成身份注册过程后,RA将Pid与Cid以键值对的形式储存在区块链状态数据库中。
5.3 交易生成
交易生成主要包括2个主要计算过程:生成密钥对和交易假名。计算细节如下:
1) 车辆选择一个随机数作为其私钥skv,并计算对应公钥pkv=skv·p。
2) 车辆将(skv,pkv)储存在OBU的防篡改设备中。此外,假设该阶段没有隐私泄露和安全攻击风险威胁。
3) 车辆基于pkr通过对(Pid||t)加密计算得到交易索引,即:
Ctran=Encryptpkr(Pid||t) (6)
(6)
Ptran=Cut(Ctran)(7)
(7)
其中:Ctran表示基于pkr对(Pid||t)加密产生的密文,且该密文被储存在交易的备注字段中;Ptran为交易索引。
4) 如图2所示,车辆基于源交易中的输出Output信息生成最新交易中的输入Input。
图2 车辆基于源交易生成即时交易
5.4 消息验证
消息验证主要包括交易的合法性认证和发放许可币两个过程。
5.4.1交易认证
如图3所示,当用户层实体向RTA发送交通信息时,RTA会验证消息的有效性,并通过交易检查信息发送者身份的合法性。具体过程如下:
图3 交易认证过程
5.4.2发放许可币
RTA向认证成功的车辆发放数量为V的许可币,具体过程如下:
1) RTA在本地生成一笔即时交易,并计算车辆公钥哈希值Hpk。RTA利用参数V和Hpk构造该即时交易的输出。
2) RTA将即时交易发送给区域内的RSUs,并将该即时交易存储在区块链状态数据库中。RSU在管理区域广播该即时交易。
交易认证成功的车辆将基于RSU广播的即时交易进行交易聚合过程。
5.5 交易聚合
RTA通过一次即时交易向成功认证的相应车辆发放许可币。车辆利用聚合交易来聚合存在于其他交易中的许可币。车辆生成一笔聚合交易,并基于包含许可币的其他交易构造该聚合交易的Input;基于本地密钥对构造该聚合交易的Output。车辆将交易发送至RTA,然后RTA执行交易验证过程。在交易验证过程之后,该聚合交易将作为最新的源交易存储在区块链状态数据库中。
5.6 交易更新
将不同类型交易之间的转换定义为交易更新过程。基于交易更新机制,本文方案能够确保方案的可扩展性。具体细节如下:
1) 用户生成即时交易用于身份认证或聚合许可币。此时,即时交易被重新定义为认证交易或聚合交易。
2) 用户将临时交易发送至RTA,并通过交易验证过程。之后,该交易将被存储在区块链状态数据库中,作为最新的源交易。
3) 用户在源交易的基础上生成一笔最新的即时交易,即用户基于源交易构造最新临时交易的Input。
4) 最新的即时交易可以用于下一个认证过程或许可证币聚合。
6 方案分析
对所提方案进行安全性分析以及性能分析。在Intel(R) Core(TM) i7-6700HQ CPU @ 2.60GHz和12GB RAM 的笔记本电脑上运行Ubuntu V16.04,部署 Hyperledger Fabric V2.0.0。构建的联盟区块链包含2个组织org1和org2,4个peer节点,3个order节点和1个client节点。另外,编写相关智能合约实现对区块链状态数据库的读写,完成交易验证过程。
6.1 安全性分析
假设攻击者无法攻破本文的数学假设。所提方案能够有效抵御VANET中的集中常见攻击。
2) 匿名性:车辆使用交易完成消息认证过程。攻击者可以通过以下计算获取车辆的真实身份:攻击者可以通过交易索引,从数据库中检索出车辆的真实身份的密文;其次,攻击者需要从该密文中恢复出车辆的真实身份。在第1个步骤中,攻击者需要获取检索区块链状态数据库的权限;在第2个步骤中,攻击者需要获取RA的私钥。但基于本文的安全假设,攻击者无法从公钥计算出私钥,并且RA与RTA具备较高的安全强度。另外,由于采用Hyperledger Fabric联盟链,攻击者无法作为共识节点获取数据库检索权限,因此攻击者无法通过交易获取车辆的真实身份,实现了对车辆匿名性的保护。
3) 不可链接性与可追溯性:用户的真实身份信息由RA加密储存。假设RA具有足够的安全级别,攻击者无法通过RA公钥计算出私钥,进而获取用户的真实身份。另外,交易索引基于时间戳等字段通过加密的方式生成。因此,攻击者无法通过多个不同的交易链接到同一用户。当用户发生恶意行为时,RTA可根据交易索引从数据库中检索该用户真实身份的密文。RTA将检索结果转发至RA,RA可以利用本地私钥基于密文字段恢复出该用户的真实身份信息,实现对恶意用户身份的有效追溯。
4) 重放攻击:在交易认证的过程中,RTA需要通过区块链状态数据库检索源交易。另外,RTA通过将交易储存在区块链状态数据库实现对源交易的替换,即通过认证的交易将被作为最新的源交易储存至区块链状态数据库。因此,该源交易不存在于区块链状态数据库中,攻击者基于之前的源交易生成的临时交易无法通过认证。该方案能够有效抵抗重放攻击。
5) 篡改攻击:当攻击者篡改认证消息中的内容时,消息将无法通过签名验证。因此,该方案能有效抵御篡改攻击。
表2展示了所提出方案与现有消息认证方案的安全性能。可以看出,本文方案在安全性和抵御VANET中常见攻击方面考虑得更加全面。
表2 不同方案安全性能
6.2 方案可扩展性分析
通过交易更新机制,本文方案能够将区块链状态数据库的存储量保持在一个稳定的水平。在验证交易有效性的过程中,交易的检索效率受交易存储量的影响。本文中测试了基于交易更新机制下的区块链状态数据库储存开销,如图4所示。基于测试环境,区块链状态数据库存储消耗稳定在33 M左右,检索时间在0.3 ms左右。因此,在一定的车辆基数下,本方案的存储成本能保持相对稳定。检索时间未受到交易验证次数的影响,表明本文方案可有效实现可扩展性。
图4 区块链状态数据库的储存成本与检索时间开销
6.3 计算效率分析
在计算效率方面,将本文方案和其他几种认证方案进行比较。本文方案利用Java密码学库JPBC对方案中涉及的密码学操作进行计算时间的测试,具体结果如表3所示。考虑到测试结果的准确性,每种密码学操作的计算时间都基于 1 000次计算并取平均值作为最终结果。其中,Tp、Tep 1、Tep 2、Tm、Ta、Th分别表示进行一次双线性配对操作、基于群G1进行一次幂运算操作、基于群G2进行一次幂运算操作、基于椭圆曲线的点乘操作、基于椭圆曲线的点加操作、哈希运算的执行时间。
表3 密码学运算的平均执行时间
将本文方案与IBCPPA方案[31]、BPPA方案[32]及EAAP方案[33]进行对比。各方案在消息认证过程中需要执行的密码学操作以及总计算开销如表4所示。IBCPPA方案进行批量认证的开销为(2+n)Tp+2nTep1+2nTh,BPPA方案进行批量认证的开销为2nTm+nTa+25nTh,EAAP方案进行批量认证的开销为(1+n)Tp+4Tep1+nTep2,本文方案进行批量认证的开销为nTma+nTver+nTre+nTh。其中,Tma、Tver、Tre分别代表检验公钥哈希值一致性的时间、签名验证时间以及检索交易时间,其中,检验公钥哈希值一致性时间可忽略不计。签名验证时间与检索交易时间分别为0.71、0.36 ms。各方案的计算开销如图5所示。可以发现,本文方案的计算开销均低于其余各方案。当验证消息数为100时,本文方案的计算开销为107.1 ms,至少优于其他方案33.19%,符合即时通信的要求。
表4 各方案的计算开销
图5 不同认证方案计算开销
7 结论
针对传统基于数字证书的身份认证方案中常常出现的认证效率低、方案可扩展性差的问题,提出一种基于未花费的交易输出(UTXO)模型的无证书分布式匿名认证方案。车辆将交通信息与基于UTXO模型构建的交易上传至RTA,并基于交易完成身份认证过程。在消息认证效率方面,区域可信机构RTA能够通过检查上传交易中包含的交易输入的合法性实现对车辆身份合法性的快速验证。此外,方案通过构建交易更新机制实现可扩展性,避免由于维护数字证书而导致的系统数据库存储量不断增长的问题。
通过安全性分析与仿真实验可知,本文方案在抵御VANET中常见攻击方面考虑得更加全面,且总体计算开销优于目前常见的身份认证方案,在通信范围内符合即时通信的要求。考虑如何通过设置激励机制有效约束车辆行为是下一步的研究方向。