基于HashGraph的车联网分布式信任机制研究和实现*
2023-10-23李原帅
李原帅,曹 利,张 迪
(南通大学信息科学技术学院,江苏 南通 226001)
0 引言
车联网利用无线通信技术,实现人、车、路实时互联,实现智能交通管理。其具有通信网络拓扑结构自主、易变,通信网络信道开放且频繁切换、有效链接短暂的特点,易受到网络身份假冒等欺骗攻击,难以进行复杂的身份认证授权和访问控制。
车联网信任机制通过分析通信节点间对彼此行为交互情况的信任程度,解决车辆节点的可信认证授权问题。目前该技术大多基于中心化的信任值处理,缺点是:①中心服务器易遭攻击,信任值缺乏完整性和可靠性,②中心服务器距离车辆终端较远,无法满足实时、短时延、高效传输时空数据的需求[1]。
有关的研究将区块链技术与车联网信任机制相结合。如:李凤祥等[2]提出了基于区块链的信任体系,并利用位置证明来替换工作量证明,采用贝叶斯概率公式判断消息的真实性,杨哲等[3]设计了基于智能合约的车辆访问控制策略。但这些方案无法解决区块链出块时延和车联网时空类数据实时性的矛盾。
HashGraph 算法是区块链的一种共识替代[4-5],实现了异步拜占庭容错(ABFT),因而能容纳非常高的吞吐量,完成非常快速的交易处理,具有公平、安全、高速的特性[4]。本文基于此技术,提出一种基于区块链技术的高效无延时车联网信任安全方案,从车辆实体的可靠性和面向消息的可信度两方面解决车辆间信任问题。
1 方案模型架构
方案的模型架构如图1所示。
图1 信任模型架构
⑴OBU 层:车载单元构成的网络。车载单元通过部署各类智能装置,实现车辆节点对信息的感知、采集、计算和通信功能。
⑵RSU 层:路侧单元构成的网络。相对车辆节点具有更强的计算和存储能力,为车辆节点无线接入提供服务,并转发路况等信息。
⑶后台可信中心TC:车联网中完全可信的基础服务设施,主要为接入网络中的节点分发密钥,完成节点身份的注册/撤销、认证等功能。
⑷区块链网络:建立在车联网节点上的HashGraph区块链网络。全节点RSU 在其账本区发布所连接车辆的信任区块,不同账本间区块的连接形成Hash-Graph 拓扑结构。车辆节点作为区块链轻节点,在获得全节点RSU的认证后接入区块链网络。
HashGraph 区块链节点用于存储车辆信任值,含时间戳、车辆ID、路况事件ID、信任值、双向哈希指针等字段。各字段含义如下。
TimeStamp:时间戳,即区块发布时间,用于判断车辆信任值的时效性。
车辆ID:车辆的身份标识。
路况事件ID:被传播的路况事件标识。车内记录车辆不同状态(车速、方向等)下的事件建模及对应编号。
信任值:当前车辆信任值,由RSU 根据信任评估公式计算所得。
双向哈希指针Hash1 和Hash2:Hash1 指向发布此区块的RSU;Hash2指向车辆需更新的信任值区块。
2 车联网分布式信任机制
车联网分布式信任机制的实现包括系统初始化、面向消息的可信性评估和基于车辆的信任值计算三个阶段。
2.1 系统初始化
⑴TC 中心分配初始化参数。方案基于PKI机制进行身份认证。设G为椭圆曲线,选取s∈G作为椭圆曲线上一点。计算公钥Ppub=sG,公开参数{G,H1,Ppub},其中H1代表单向哈希加密函数。
⑵RSU 节点初始化。TC 为RSU 设置公私钥对{Pr=H1(IDr),Sr=sH1(IDr)},IDr为RSU的惟一身份标识,为RSU 生成公钥证书。RSU 选取随机数Nr∈并广播参数NrPr。
⑶车辆身份注册。车辆提供身份信息IM(i如身份证号码、车牌号),TC 为车辆设置共享密钥xi∈Zq*并计算全局身份标识IDi=H1(IMi||xi),生成公私钥对{pi,Si},为车辆生成公钥证书、分配初始信任值T0。
2.2 可信性评估
车辆节点驶入RSU 覆盖路段基于PKI 机制完成双向身份认证。当车辆发送消息给邻近车辆时,邻近车辆利用智能合约调用评估算法对消息可信性进行评估,决定是否信任该消息,同时将消息评估值上传至RSU,更新发送消息车辆的信任值。具体步骤如下:
⑴双向身份校验后,OBUi合法身份得到确认,RSU在车联网中广播其身份IDi及其公钥证书。
⑵OBUi->OBUj:{A,IDi,SignSi}
车辆i生成路况数据包A=(Event,Time,acceleration),其中Event为路网状态事件编号,Time为发送消息时间,acceleration为此时车辆的加速度。车辆将身份IDi、A、签名SignSi生成路况消息发送至邻居车辆j。
⑶触发智能合约。
OBUj接收OBUi发布的事件消息,并检查消息完整性DPi(SignSi)=A,IDi,触发智能合约infoValue()对消息进行评估。infoValue()算法描述如图2 所示,输入参数IDi、A、自身加速度acceleration'、接收消息的时间Time'、接收此路段的路况消息个数λ:
图2 信任值评估算法
TravelGraph()函数为遍历区块链,定位OBUi当前信任值所在区块。对消息可信度评估的模式见公式⑴:
其中,α=Time'-Time为消息传播时延;a=acceleration'-acceleration表示两车之间的加速度之差。α和a 估测两车间状态相似度,数值越小,车辆状态越相似,消息可信度增加;λ为OBUj在此路段接收到的事件消息数值,其值增加表明事件发生的可能性越大。
⑷OBUj在->RSU:EPr(IDj,W,TSj,SignSj)
车辆j完成消息评估,若评估值C>评估标准θ,消息为可信,接收此消息,否则拒绝该消息。随后封装消息评估数据报文W=(IDi,C,warn),其中字段C为消息评估结果;字段IDi为被评估车辆ID;字段warn标识数据包类型,算法描述如图3所示。
图3 评估数据包分类
算法分析如下:
⑴warn值设为1:因区块时间戳>ΔT,信任值超出时效,RSU需重新计算车辆信任值;
⑵warn值设为0:区块时间戳有效,但评估值C小于标准值θ,即消息不可信,提示RSU 惩罚(减少)此车辆信任值;
⑶warn值设为-1:区块时间戳有效,且评估值C大于标准值θ,即消息可信度大,提示RSU 奖励(增加)此车辆信任值。
最后将消息评估数据包W、车辆身份ID(j防止重放攻击)、时间戳TSj和签名Signsj加密上传至RSU。
2.3 基于车辆的信任值计算
RSU 周期性统计连接的车辆总数(m),参与评估事件消息A的车辆数多于m时,区块链网络触发智能合约OBUValue(),根据warn 标识选择对应车辆信任值计算模型,计算生成新的信任值后生成区块链节点。算法如图4所示。
图4 车辆信任值算法
RSU收到邻接车辆j1-n上传的消息评估值,用私钥解密并验证每个评估数据包时效性、惟一性和签名的正确性。当评估量n≥m,区块链网络触发智能合约OBUValue()进行车辆信任值计算,首先调用TravelGraph()函数定位区块链中车辆i 的当前信任值所在区块,并根据warn值,进行被评估车辆的信任值计算:
⑴warn 值为1,表示当前信任值失效,需重新计算车辆信任值。
①使用公式2计算此事件发生概率:
其中,P(ej|Cj)为事件j 在样本量为n 条件下发生的概率;P(ej)表示事件j 在整个车联网系统中已发生的概率(存于路网状态标准信息库中);P(ej|Cj)即在事件j发生的情况下,消息评估Cj证实了该事件发生的概率。P()为ej对立事件发生的概率。
②使用公式⑶计算车辆信任值:
其中,Ti+1代表更新后的车辆信任值,Ti为车辆当前信任值。综合其余车辆对车辆i 行为的评估,重新计算车辆信任值。
⑵若warn值为0,表示此消息不可信,使用公式⑷惩罚(减少)车辆信任值:
其中,T0为初始信任值;λ0为接收到warn==0的评估数据包个数;使用函数arctan-1λ0,将惩罚的信任值维持在[0-T0]内。
⑶若warn 值为-1,表示此消息可信度大,使用公式⑸奖励(增加)车辆信任值:
其中,λ-1为接收到warn==-1的评估数据包个数。使用函数,将奖励的信任值维持在内。
更新信任值后,触发智能合约,生成新区块。若更新后的信任值小于初始信任值(Ti+1 考虑到部署在一条路段的多个RSU 会重复计算同一车辆的信任值,可能导致分叉的发生,方案在HashGraph 共识机制的基础上提出一种新型Follower共识算法,基本思路是,若上链时发现车辆信任值已被计算,则与已存在的信任值结果比较,为差值<ε的区块建立哈希指针,成为其跟随者(follower);否则进行分叉操作。最后成为知名见证人的区块达成全网共识,具体流程如下: ⑴RSU3 产生新区块,遍历区块链,找到当前信任值所在区块,执行步骤⑵; ⑵若当前信任所在区块(白色)无子区块(无其他RSU 对此车辆进行评估),新区块(黑色)哈希值指向此区块,成为其follower(图5),执行步骤5;若存在子区块,执行步骤⑶; 图5 共识情况1 ⑶若此车辆的信任值已被同一路段的RSU2计算(灰色区块),则与其存储的信任值比较,若差值小于阈值ε,则成为图6所示区块Follower;否则执行步骤⑷; 图6 共识情况2 ⑷若差值大于阈值ε,完成图7所示分叉操作,执行步骤⑸; ⑸其余RSU 重复步骤⑴到⑸,选择在误差<ε的子区块后站队。最终成为知名见证人的区块及其可见区块达成全网共识。 方案仿真和实验配置环境如下:Windows10 系统下,安装SUMO 仿真器,搭建VANET 仿真实验场景,利用TraCI接口调用Python 脚本,模拟智能合约,在不同车辆密度条件下计算车辆信任值、评估消息可信性,使用Matplotlib 和Numpy 库对仿真结果进行性能分析。方案设计了更新车辆信任值的三种情况: ⑴时间戳过期,重新计算信任值Ti+1=Ti∙P(ej|Cj); 为验证可行性,方案使用SUMO 仿真车辆移动轨迹,模拟长1000米的公路,分析车辆密度从10辆每公里到300辆每公里,在激励和惩罚情况下,车辆信任值的变化趋势。设车辆初始信任值为1,当前信任值为3。结果如图8、图9 所示,信任值最大增加0.4,最多减少0.8,减值速度为增值的2 倍。而随着车辆数目增多,信任值变化趋势越大,但都小于初始值1。公式4~5有效控制了信任值增减幅度,达到慢增快减的效果。 图8 信任值的减少 图9 信任值的增加 在上述信任值变化状态下,根据消息评估值公式C=e-(α+a)+Ti tan-1λ,分析消息评估结果的变化。结果如图10 所示,表明车辆信任值减小后,消息可信性快速下降,车辆信任值微小的变化可正确评估消息可信度,实现了车辆信任值与消息评估值的相互作用,说明本方案信任机制的高效可行。 图10 消息评估值变化 车联网因其开放信道、临时组网的特性,面临着比传统网络节点更多的恶意节点攻击。相对传统的节点认证授权机制,车联网信任机制能更有效的解决此问题。但目前车联网信任机制均存在中心化、高时延等问题,基于此,本文在HashGraph 技术的基础上,提出一种基于区块链3.0 的车联网分布式信任机制。利用智能合约实现信任值的自动验证和更新,设计了新的Follower 共识算法,满足车联网信任值实时发布需求。仿真实验分析表明,该方案既可实现对车辆消息真实性的高效判别,也可实现对车辆实体的可信性判断,满足车联网信任机制实时更新需求,有效地解决了车辆节点间的信任问题。3 实验仿真与性能分析
4 结束语