
1.本发明属于车联网信任及安全领域,具体涉及一种基于区块链的抵御合谋攻击的车联网信任管理方法。
背景技术:2.车载自组网作为移动自组织网络的应用之一,已在汽车工业中得到广泛的应用。由于整个vanet(车载自组织网络,即车联网)通信是一个开放式的访问环境,vanet的高移动性和易变性使网络容易遭受内部和外部的攻击。为车联网的车辆节点间提供可靠的通信环境,车联网信任管理机制是有效的解决方案。随着区块链技术的兴起,为车联网信任管理机制提供了有效的数据存储方案。通过区块链存储车辆信任的方式,不仅解决分布式方案中各节点信任值不一致的问题,也避免集中式方案单点故障问题。基于区块链公开透明的特点,避免车辆信任被篡改问题的发生,阻止针对车辆信任发动恶意攻击,克服根据邻居车辆获取推荐信任的不足。
3.目前,利用区块链技术已经设计出多种车载网络信任管理解决方案。该类方案主要过程包括评级生成和上传、基于节点属性的信任值偏移量计算、区块生成和共识应用等阶段。并且,该类方案已被广泛证明其有效性。但通过调研发现,该类方案普遍存在扩展性低、鲁棒性差等问题。传统区块链的共识算法不适于车联网信任管理应用。例如,pow(工作量证明)算法产出区块速率低、计算消耗大,与车联网中流量密度大、边缘节点计算资源受限相矛盾。此外,现有信任管理方案中不具备解决合谋攻击问题的能力,在遭遇合谋攻击时,会导致信任机制失效,因此方案整体鲁棒性较差。
技术实现要素:4.本发明的目的是改进现有基于区块链车联网信任管理方案的不足,设计一种基于区块链的抵御合谋攻击的车联网信任管理方法,其目的是增强车联网信任管理方案的扩展能力和应对复杂攻击的鲁棒性。相比于传统的信任管理方案,本发明在进行消息合谋攻击时基于车辆信任关系进行合谋攻击分析、应用“慢奖励快惩罚”思想设计车辆信任调整策略、优化共识算法等,从整体提升区块链技术在信任管理方案的适应效果。
5.本发明提供一种基于区块链的抵御合谋攻击的车联网信任管理方法,包括如下步骤:
6.1)构建车联网分布式架构,根据地理单元将车联网系统划分若干区域,每个区域内由若干个rsu设备组成,rsu设备负责将区域内的事件数据通过区块链在其他区域内进行共享,每个车辆节点与所在区域距离其最近的rsu进行交互;
7.2)启动rsu信息收集程序,收集事件发起车辆发出的安全警告消息和事件参与车辆发出的用于消息验证的推荐证据信息;
8.3)对提供推荐证据信息的事件参与车辆进行合谋攻击检测,根据车辆历史信任关系设计一组信任变化参数,通过k-means聚类检测分析合谋车辆;
9.4)基于剔除了合谋车辆影响后的推荐证据信息,识别车联网内的恶意车辆节点及虚假安全警告消息,综合信息的距离、时效性以及车辆信任值因素,通过计算直接信任和间接信任的方式评估安全警告消息的有效性;
10.5)根据消息评估结果和车辆的历史行为对事件发起车辆和事件参与车辆的车辆信任值进行调整;
11.6)基于重要性证明的优化pbft算法,完成存储在区块链中的信任变化参数和车辆信任值的更新,将信任数据在车联网内共享。
12.在本发明的基于区块链的抵御合谋攻击的车联网信任管理方法中,所述步骤1中构建车联网分布式架构后,进行初始化工作,为存储车辆信任值的区块链创建创世纪块;初始化车辆节点,为每个车辆节点分配唯一身份标识,并初始车辆信任值,车辆信任值的取值范围为0到1,信任值低于0.5的车辆节点被判定为恶意节点。
13.在本发明的基于区块链的抵御合谋攻击的车联网信任管理方法中,所述步骤2)包括如下步骤:
14.201)车辆节点发现事件时,为事件生成安全警告消息msg,并将其发送给附近rsu,并将报告安全警告消息的车辆称为事件发起车辆,其安全警告消息 msg的内容格式如下:
15.《消息编号,事件位置坐标,事件描述,事件发起车辆位置坐标,时间戳》
16.202)rsu接收到安全警告消息msg后,验证该安全警告消息是否首次接收;若在事件验证的有效时长内未出现与此安全警告消息msg相同的消息编号,则认为rsu首次接收,随后为安全警告消息msg创建对应的消息信任评估事件,并生成与事件相关的事件请求消息eventrequest;rsu向通信范围内的邻近车辆发送事件请求消息,eventrequest的内容格式如下:
17.《事件编号,msg,rsu id,rsu位置坐标》;
18.若收到的安全警告消息msg不是首次接收时,将发送此安全警告消息msg 的相关车辆信息加入事件验证列表,为消息信任值计算提供参考依据;
19.203)邻近车辆收到事件请求消息eventrequest时,根据自身意愿决定是否参与事件验证,将参与验证的邻近车辆称为事件参与车辆;对于事件参与车辆,会给予信任奖励来获取相应车联网服务;如果车辆参与事件验证,生成相应事件推荐证据信息eventreply,推荐证据信息的内容格式如下:
20.《事件编号,反馈结果,车辆id,事件参与车辆位置坐标,时间戳》;
21.如果事件参与车辆认为事件可信,则反馈结果为1,反之,反馈结果为0。
22.204)当rsu收集到的推荐证据信息达到设定数目,或者事件收集程序超过设定的时间阈值,则终止证据收集。
23.在本发明的基于区块链的抵御合谋攻击的车联网信任管理方法中,所述步骤3)包括如下步骤:
24.301)将事件参与车辆组成合谋攻击待检车辆集合veh
list
,并对veh
list
生成合谋攻击检测所需的参数列表dfλ
list
;按照k-means均值聚类算法的一般迭代过程,确认两个初始聚类中心o1和o2;初始聚类中心根据信任变化因子的综合度量值tcplevel来确定,分别选取最大和最小的tcplevel作为o1和o2;聚类中心选取公式如下:
[0025][0026]
o1=max(tcplevel
vi
)
[0027]
o2=min(tcplevel
vi
)
[0028]
其中,d、f、λ为一组信任变化参数,d是车辆信任变化度,指事件参与车辆在信任连续变化区间内最大车辆信任值和最小车辆信任值的差值;f是信任波动指数,指事件参与车辆在信任连续变化区间内车辆现任值连续增加或连续减少的次数;λ是信任增减变化指数,指在整个历史时间内出现车辆信任递增和递减趋势的总次数;信任连续变化区间是指车辆信任值呈现连续递增或者连续递减变化趋势的一段时间;vi表示合谋攻击待检车辆集合中车辆身份标识;d
vi
、f
vi
、λ
vi
表示合谋攻击待检车辆集合中每辆车的车辆信任变化度、信任波动指数和信任增减变化指数;
[0029]
302)分别计算veh
list
中其他事件参与车辆节点与o1和o2的信任变化参数之间的差异difftcp
vij
;将每个事件参与车辆节点分配到difftcp
vij
较小的聚类中心,形成两个初始聚类集合;
[0030][0031]
其中,vj表示作为聚类中心的车辆节点的身份标识;
[0032]
303)重新选取聚类中心,并重新分配事件参与车辆节点到新的聚类中心,一直迭代到聚类中心不再变化为止;每次迭代中,先分别计算两个聚类集合的平均信任变化参数tcp
avg
和平均信任变化因子的综合度量值tcplevel
avg
,再选择接近tcplevel
avg
的车辆节点作为新的聚类中心,计算公式如下:
[0033][0034][0035]
o1'=min(|tcplevel
avg-tcplevel
vi
|)
ꢀꢀ
vi∈o1[0036]
o2'=min(|tcplevel
avg-tcplevel
vi
|)
ꢀꢀ
vi∈o2[0037]
其中,n表示合谋攻击待检车辆集合中的车辆数目,o1'和o2'表示两个新的聚类中心;
[0038]
304)通过聚类后,计算出两个最终聚类的信任变化因子的综合度量值的总和tcplevel
sum
,确定tcplevel
sum
较大的聚类集合即为合谋车辆集合。
[0039]
在本发明的基于区块链的抵御合谋攻击的车联网信任管理方法中,所述步骤4)中消息信任评估包括以下步骤:
[0040]
邻近车辆推荐证据信息收集后,形成用于事件验证的信息集合 {ie,ve1,ve2,
…
vei},ie代表事件发起者的信息记录,ve代表代表与事件相关邻近车辆的信息集合;ie和ve的信息内容形式如下:
[0041]
ie:《车辆id,事件位置,报告者位置,事件报告时间,车辆信任列表》;
[0042]
ve:《车辆id,事件反馈值,报告者位置,车辆信任值》;
[0043]
401)基于事件发起车辆计算安全警告消息的直接信任,计算公式如下所示:
[0044]
dt=ω+e-λ(h+t+l)
[0045][0046][0047]
l=1-(tv-δ
×
tv
chnum
)
[0048]
其中,dt表示事件发起车辆关于事件的直接信任值;h、t、l分别表示事件发起车辆位置与事件位置间的有效距离、消息时效性以及事件发起车辆的车辆信任值,dist表示rsu的通信半径,x
vid
、y
vid
为事件发起者位置,x
event
、y
event
为事件位置,t表示当前时段内完成消息评估的平均处理时长,tv表示车辆节点的当前信任值,tv
chnum
代表车辆信任增减变化次数,t
end
表示证据收集结束时间, t
init
表示事件发起时间,δ表示车辆信任值调减系数,相关信任参数均存储在区块中;
[0049]
402)基于邻近车辆的推荐证据信息集合ve计算消息的间接信任值,根据车辆的反馈结果0或1分成两个集合,seta和set
na
;根据每个事件参与车辆的信任水平及距离因素计算出每条推荐证据消息的可信度eci,计算公式如下所示:
[0050][0051]
其中,θ1、θ2分别表示证据可信度的计算参数;
[0052]
rsu获得事件推荐证据信息的可信度集合ec={ec1,ec2,
…
eci},然后在ec 基础上,使用贝叶斯推理理论计算消息的间接信任值,计算方式如下:
[0053][0054]
其中,p(event)表示事件发生的先验概率,是根据以往经验分析设定的概率,而对立事件的p(eci/event)表示认为事件发生的条件概率,其值为属于seta集合中的eci;相反,的值为属于set
na
集合中的eci;
[0055]
403)得到msg的直接信任值和间接信任值后,采用加权聚合的方式计算聚合消息信任值mt,其中,α和β分别表示直接信任值和间接信任值的权重,满足如下条件:α,β∈(0,1)且α+β=1;
[0056]
mt=α
×
dt+β
×
it
[0057]
若聚合消息信任值超过预设的阈值,则认为消息可信,并将消息的验证结果置为1,否则置为0。
[0058]
在本发明的基于区块链的抵御合谋攻击的车联网信任管理方法中,所述步骤5)中所述的车辆信任调整策略如下:
[0059]
501)将msg的评估结果与事件参与车辆的推荐证据信息逐一比对,划分出信任调增和调减的车辆列表;
[0060]
502)计算车辆信任调增基数和奖励系数:
[0061][0062][0063]
其中,tbase
inc
为信任调增基数,tbase
init
信任调整的初始值,num
mv
为车辆被加入恶意名单中的次数,为车辆奖惩因子,μ
+
车辆发送真实消息的次数;
[0064]
503)计算车辆信任调减基数和惩罚系数:
[0065][0066][0067]
其中,tbase
dec
为车辆信任调减基数,惩罚系数,μ-车辆发送真实消息的次数;
[0068]
504)更新车辆信任值
[0069]
当车辆推荐证据信息的反馈结果与msg的评估结果不同时:
[0070][0071]
当车辆推荐证据信息的反馈结果与msg的评估结果相同时:
[0072][0073]
其中,tv
update
为更新后的车辆信任值,tv
cur
为当前的车辆信任值。
[0074]
在本发明的基于区块链的抵御合谋攻击的车联网信任管理方法中,所述步骤6)中共识过程包括如下步骤:
[0075]
601)进行系统初始化,为每个划分区域选择初始共识rsu和候选rsu;
[0076]
602)根据消息评估结果,计算事件重要性event
importance
及区块重要性 block
importance
,并基于事件的重要性来决定rsu的记账权,计算方式如下:
[0077]
event
importance
=a
×
contain_cv+b
×
num_mv+c
×
tcm
[0078][0079]
hash(block)≤target
×
(block
importance
+τ)
[0080]
其中,contain_cv表示当前区块中是否包含合谋车辆,取值0或1;num_mv 表示当前区块数据中恶意车辆的数目;tcm表示需调整车辆信任满足a》b》c, a+b+c=1的条件;率先求解答案的rsu获取记账权,获得记账权的rsu即为本轮共识的主节点;
[0081]
603)主节点将区块广播给所有共识rsu,若共识rsu中不存在拜占庭节点,则采用优化的pbft算法完成区块共识;
[0082]
604)达成共识后,将区块上传至区块链中,并把共识结果广播给其他候选 rsu。
[0083]
在本发明的基于区块链的抵御合谋攻击的车联网信任管理方法中,所述步骤603)包括如下步骤:
[0084]
6031)共识rsu收到区块后进行验证,但不在共识rsu之间相互广播;
[0085]
6032)共识rsu验证后直接将结果反馈给主节点;
[0086]
6033)主节点收到所有共识rsu的反馈并且反馈结果一致,则达成共识;
[0087]
6034)若反馈结果不一致,则共识rsu中存在拜占庭节点,共识rsu收到区块时,与其他rsu进行相互广播,并在收到所有其他共识rsu节点发送的区块后,进行验证并反馈结果给主节点;
[0088]
6035)主节点收到2/3的确认结果,即达成共识。
[0089]
本发明一种基于区块链的抵御合谋攻击的车联网信任管理方法,至少具有以下有益效果:
[0090]
综上实施示例,完成基于区块链信任管理环节的全部流程。本发明的示例具有如下效果:
[0091]
(1)采用联盟链和车联网区域划分的思想来设计信任管理方案的整体架构,使区块链技术更适用于车联网的特点,也为共识算法的设计奠定结构基础。
[0092]
(2)本发明具备合谋攻击检测能力。基于车辆信任关系可有效识别车联网内的合谋攻击车辆,抵御消息合谋攻击;基于区块链存储方案,抵御车辆信任合谋攻击,增强整体方案的鲁棒性。
[0093]
(3)本发明设计的消息评估策略,可以有效识别虚假消息。基于后续的车辆信任调整策略,使得车辆信任变化呈现线性递增,指数递减的趋势。体现出“慢奖励快惩罚”的设计思想,有效激励车辆诚实行为,抑制其恶意行为。
[0094]
(4)根据基于重要性证明的优化pbft算法的共识思想,可以增强信任管理方案的扩展性,提升区块的出块速率。此外,也能保证重要信息优先上链,并在区块链中进行共享。基于车辆的恶意程度来评估区块的重要性,确保“恶意程度”较大的区块,快速在区块链网络中共享。
[0095]
(5)本发明方法改进了基于区块链信任管理方案中的共识算法,在保证重要信息优先上传到区块链的前提下,提高信任管理方法的可扩展性。
附图说明
[0096]
图1为具有区域划分的车联网分布式架构图;
[0097]
图2为基于区块链的车联网信任管理框架图;
[0098]
图3为本发明的基于区块链的抵御合谋攻击的车联网信任管理方法的流程图;
[0099]
图4为收集推荐证据信息的流程图;
[0100]
图5为合谋攻击检测模型图;
[0101]
图6为合谋攻击检测后置处理流程图;
[0102]
图7为消息信任值计算流程;
[0103]
图8为车辆信任调整策略整体流程;
[0104]
图9为信任区块示意图;
[0105]
图10为车辆信任列表与块体事件记录结构;
[0106]
图11为基于重要性证明的优化pbft算法流程图。
具体实施方式
[0107]
下面结合说明书附图对本发明作进一步阐述。以下实施示例用于说明本发明,但不用于限制本发明的范围。
[0108]
本发明提供一种基于区块链的抵御合谋攻击的车联网信任管理方法,下面分别从框架结构设计和整体流程来介绍本发明的内容。
[0109]
框架结构设计是信任管理整体内容的基础。在本发明中依然使用区块链技术作为
车辆信任的存储方式。为避免集中式和分布式方案的缺陷,本发明采用半分布形式在车联网中进行部署。半分布式网络是车联网中采用区域划分的网络结构,可以帮助部署的边缘节点来快速决策并有效维护区块链。在区块链选择上,联盟链比私有链访问受限限制较低,比公共链安全性较好,产出区块的效率更大。综合考虑,联盟链存在较大优势,并能够与半分布式网络的特点有效融合。因此,在结构设计上,本方案采用半分布式网络和联盟链作为结构基础。
[0110]
为更好的实施本发明的信任管理方案,将车联网场景区域化,如附图1所示。根据地理单元将车联网系统划分若干区域,且每个区域内由若干个rsu(路边单元)组成。rsu负责将区域内的事件数据通过区块链在其他区域内进行共享。每个车辆节点与所在区域距离自己最近的rsu进行交互,让事件请求就近处理以得到快速响应。
[0111]
在车联网分布式架构基础上,设计如图2所示的车联网信任管理框架。该框架整体包括车辆信息交互层和车辆信任管理层两个层次,并且由车辆和rsu 两类实体构成。其中,车辆是车联网内通信主体,每个车辆节点可以通过v2v (车辆与车辆)模式与邻居车辆共享信标信息,也可以通过v2i(车辆与基础设施)模式向rsu报告安全紧急消息,并且每辆车拥有一组信任参数,用于评估车辆实体的可信水平;rsu是指部署在道路两侧的基础设施,用于维护和托管区块链,负责收集车辆汇总信息来评估安全信息的真实性,广播安全紧急通知,记录事件信息到区块链,更新车辆信任值等,发挥边缘服务器节点的作用。车辆信息交互层负责车辆信息交互以及证据信息收集;车辆信任管理层执行相关信任值计算、车辆信任调整、共识等过程。信任管理框架整体流程包括3个环节,分别为消息信任评估、车辆信任调整以及信任区块的创建与共识。消息信任评估过程用于验证车辆报告的安全紧急消息是否可信,它包含证据信息收集、合谋攻击检测和消息信任值计算三个步骤。车辆信任调整和信任区块的创建与共识是消息信任评估的后续处理过程。前者根据消息信任评估结果对参与事件的车辆给予奖励和惩罚。后者将车辆更新后的信任值以及相关事件信息打包成区块,达成共识后,将车辆信任值的信息在车联网内进行共享。
[0112]
如图3所示,本发明一种基于区块链的抵御合谋攻击的车联网信任管理方法,包括以下步骤:
[0113]
1)构建车联网分布式架构,根据地理单元将车联网系统划分若干区域,每个区域内由若干个rsu设备组成,rsu设备负责将区域内的事件数据通过区块链在其他区域内进行共享,每个车辆节点与所在区域距离其最近的rsu进行交互;
[0114]
具体实施时,构建车联网分布式架构后,进行相关系统初始化工作。为存储车辆信任值的区块链创建创世纪块;初始化车辆节点,为每个节点分配唯一身份标识并的初始车辆信任值,初始默认值为0.5。在本文中,车辆信任值的取值范围为0到1,信任值低于0.5的车辆节点被判定为恶意节点。随后,启动 rsu监听程序,接收车辆报告的安全消息。
[0115]
步骤2)启动rsu信息收集程序,收集事件发起车辆发出的安全警告消息和事件参与车辆发出的用于消息验证的推荐证据信息;
[0116]
推荐证据信息收集是执行信任管理模型的前提或入口,它主要用于采集车联网内的交互数据。首先当事件发生时,事件发起车辆向附近rsu广播安全警告信息。然后,rsu会向周围邻近车辆发送事件请求消息来收集证据信息。接着,邻近车辆根据意愿给予rsu事件应答消息。最后,当超时或达到推荐证据信息的阈值时,终止本次信息收集流程;如图4所
示,包括如下步骤:
[0117]
201)车辆节点发现事件时,为事件生成安全警告消息msg,并将其发送给附近rsu,并将报告安全警告消息的车辆称为事件发起车辆,其安全警告消息 msg的内容格式如下:
[0118]
《消息编号,事件位置坐标,事件描述,事件发起车辆位置坐标,时间戳》;
[0119]
202)rsu接收到安全警告消息msg后,立即验证该安全警告消息是否首次接收;若在事件验证的有效时长内未出现与此安全警告消息msg相同的消息编号,则认为rsu首次接收,随后为安全警告消息msg创建对应的消息信任评估事件,并生成与事件相关的事件请求消息eventrequest;完成上述操作后,rsu向通信范围内的邻近车辆发送事件请求消息,并收集相关证据;eventrequest的内容格式如下:
[0120]
《事件编号,msg,rsu id,rsu位置坐标》;
[0121]
若收到的安全警告消息msg不是首次接收时,将发送此安全警告消息msg 的相关车辆信息加入事件验证列表,为消息信任值计算提供参考依据。
[0122]
203)邻近车辆收到事件请求消息eventrequest时,根据自身意愿决定是否参与事件验证,将参与验证的邻近车辆称为事件参与车辆;对于事件参与车辆,会给予信任奖励来获取相应车联网服务;如果车辆参与事件验证,生成相应推荐证据信息eventreply,推荐证据信息的内容格式如下:
[0123]
《事件编号,反馈结果,车辆id,事件参与车辆位置坐标,时间戳》;
[0124]
如果车辆认为事件可信,则反馈结果为1,反之,反馈结果为0。
[0125]
204)当rsu收集到的事件反馈信息达到设定数目,或者事件收集程序超过设定的时间阈值,则终止证据收集。
[0126]
步骤3)为消除合谋攻击对后续消息信任评估的影响,对步骤2)中提供推荐证据信息的事件参与车辆进行合谋攻击检测,根据车辆历史信任关系设计一组信任变化参数,通过k-means聚类检测分析合谋车辆。其执行流程如附图5 和附图6所示。
[0127]
为消息评估过程进行合谋攻击检测,识别出参与信任评估的合谋车辆。为合谋攻击检测设计一组信任变化参数,是表示车辆信任历史变化情况的一组度量值。根据对合谋攻击特征分析,设计了车辆信任变化度、信任波动指数和信任增减变化指数,分别用d、f、λ来表示。其中,d是车辆信任变化度,指事件参与车辆在信任连续变化区间内最大车辆信任值和最小车辆信任值的差值;f 是信任波动指数,指事件参与车辆在信任连续变化区间内车辆现任值连续增加或连续减少的次数;λ是信任增减变化指数,指在整个历史时间内出现车辆信任递增和递减趋势的总次数;信任连续变化区间是指车辆信任值呈现连续递增或者连续递减变化趋势的一段时间;其中每个车辆节点均具备一组信任变化参数。
[0128]
合谋攻击检测的具体过程为:
[0129]
301)首先将消息收集过程的事件参与车辆组成合谋攻击待检车辆集合 veh
list
,并对veh
list
生成合谋攻击检测所需的参数列表dfλ
list
;按照k-means均值聚类算法的一般迭代过程,确认两个初始聚类中心o1和o2;初始聚类中心根据信任变化因子的综合度量值tcplevel来确定,分别选取最大和最小的tcplevel 作为o1和o2;聚类中心选取公式如下:
[0130][0131]
o1=max(tcplevel
vi
)
[0132]
o2=min(tcplevel
vi
)
[0133]
其中,vi表示合谋攻击待检车辆集合中车辆身份标识;d
vi
、f
vi
、λ
vi
表示合谋攻击待检车辆集合中每辆车的车辆信任变化度、信任波动指数和信任增减变化指数;
[0134]
302)分别计算veh
list
中其他事件参与车辆节点与o1和o2的信任变化参数之间的差异difftcp
vij
;将每个事件参与车辆节点分配到difftcp
vij
较小的聚类中心,形成两个初始聚类集合;
[0135][0136]
其中,vj表示作为聚类中心的车辆节点的身份标识。
[0137]
303)然后进入迭代过程,重新选取聚类中心,并重新分配事件参与车辆节点到新的聚类中心,一直迭代到聚类中心不再变化为止;每次迭代中,先分别计算两个聚类集合的平均信任变化参数tcp
avg
和平均信任变化因子的综合度量值tcplevel
avg
,再选择接近tcplevel
avg
的车辆节点作为新的聚类中心,计算公式如下:
[0138][0139][0140]
o1'=min(|tcplevel
avg-tcplevel
vi
|)
ꢀꢀ
vi∈o1[0141]
o2'=min(|tcplevel
avg-tcplevel
vi
|)
ꢀꢀ
vi∈o2[0142]
其中,n表示合谋攻击待检车辆集合中的车辆数目,o1'和o2'表示两个新的聚类中心;
[0143]
304)通过聚类后,计算出两个最终聚类的信任变化因子的综合度量值的总和tcplevel
sum
,确定tcplevel
sum
较大的聚类集合即为合谋车辆集合。
[0144]
在检测后,将合谋车辆的证据信息从反馈的消息列表中清除,并重新整理事件证据列表。然后进行步骤4)中的信任值计算过程,如附图7所示。
[0145]
步骤4)邻近车辆推荐证据信息收集后,形成用于事件验证的信息集合,即 {ie,ve1,ve2,
…
vei}。其中,ie代表事件发起者的信息记录,ve代表代表与事件相关邻近车辆的信息集合。ie和ve的信息内容形式如下:
[0146]
ie:《车辆id,事件位置,报告者位置,事件报告时间,车辆信任列表》
[0147]
ve:《车辆id,事件反馈值,报告者位置,车辆信任值》
[0148]
然后基于上述汇总信息执行如下步骤:
[0149]
401)基于事件发起车辆计算安全警告消息的直接信任,计算公式如下所示:
[0150]
dt=ω+e-λ(h+t+l)
[0151][0152][0153]
l=1-(tv-δ
×
tv
chnum
)
[0154]
其中,dt表示车辆节点关于事件的直接信任值;h、t、l分别表示事件发起车辆位置与事件位置间的有效距离、消息时效性以及事件发起车辆的信任水平,它们是dt计算的参考因素。其中,h和t反映事件发起车辆所提供的信息质量,事件发起车辆距离事件发送位置距离越近说明其可信度越高,而时效性越短说明消息价值越大;l则反映事件发起车辆本身的可信程度,其值越大也同样说明消息的可信度越大。ω和λ为公式设置的预参数,控制dt的最低水平以及调节参考因素的变化率。dist表示rsu的通信半径,x
vid
、y
vid
事件发起者位置,x
event
、 y
event
表示事件位置,t表示当前时段内完成消息评估的平均处理时长,tv表示车辆节点的当前信任值,tv
chnum
代表车辆信任增减变化次数,t
end
表示证据收集结束时间;t
init
表示事件发起时间;δ表示车辆信任值调减系数;相关信任参数均存储在区块中。
[0155]
402)基于邻近车辆的推荐证据信息集合vei计算消息的间接信任值,根据车辆的反馈结果0或1分成两个集合,seta和set
na
;考虑到每个参与事件验证的反馈者的可信度是不同的,所以先根据每个回复车辆实体的信任水平及距离因素计算出每条证据消息的可信度eci。计算公式如下所示。
[0156][0157]
其中,θ1、θ2分别表示证据可信度的计算参数;
[0158]
rsu获得事件推荐证据信息的可信度集合ec={ec1,ec2,
…
eci},然后在ec 基础上,使用贝叶斯推理理论计算消息的间接信任值,计算方式如下:
[0159][0160]
其中,p(event)表示事件发生的先验概率,是根据以往经验分析设定的概率,而对立事件的p(eci/event)表示认为事件发生的条件概率,其值为属于seta集合中的eci;相反,的值为属于set
na
集合中的eci;
[0161]
403)从上述步骤中得到msg的直接信任值和间接信任值后,采用加权聚合的方式计算最终的消息信任值,其中,α和β分别表示直接信任值和间接信任值的权重,满足如下条件:α,β∈(0,1)且α+β=1:
[0162]
mt=α
×
dt+β
×
it
[0163]
若聚合消息信任值超过预设的阈值,则认为消息可信,并将消息的验证结果置为1,否则置为0。对于可信的消息,rsu向其他车辆或rsu节点进行广播,发布道路安全预警。
[0164]
步骤5)为有效实施奖惩策略,抑制车辆的恶意行为,根据消息评估结果和车辆的历史行为对事件发起车辆和事件参与车辆的车辆信任值进行调整。车辆信任值调整过程如附图8所示。
[0165]
本发明采用“慢奖励快惩罚”的思想来设计车辆信任调整策略。首先设计本发明所需的信任变化参数,并存储在后续内容中的信任区块。如信任递增或递减的次数(即车辆发送虚假或真实消息的次数,分别用μ
+
和μ-表示)、车辆信任水平低于0.5的次数(即车辆被加入恶意名单中的次数,用num
mv
表示),具体包括如下步骤:
[0166]
501)将msg的评估结果与事件参与车辆的推荐证据信息逐一比对,划分出信任调
增和调减的车辆列表;
[0167]
502)对于信任奖励列表中的车辆:若为非恶意车辆,从区块链中查询该车的num
mv
和μ
+
;然后计算车辆信任调增基数tbase
inc
以及奖励系数最后计算出车辆更新后的信任值。若为恶意车辆,首先判断它在事件评估中的角色类型。如果是事件发起者,则执行非恶意车辆的计算逻辑。如果是事件参与者,则终止车辆信任更新。因为在消息信任评估中,恶意车辆的反馈值是不参与间接信任计算的,所以恶意车辆作为事件参与者,不予以信任奖励,只能通过作为事件发起者的角色来获取信任值。
[0168][0169][0170]
其中,tbase
inc
为信任调增基数,tbase
init
信任调整的初始值,num
mv
为车辆被加入恶意名单中的次数,为车辆奖惩因子,μ
+
车辆发送真实消息的次数;
[0171]
503)对于信任惩罚列表中的车辆:若为非恶意车辆,则获取num
mv
和μ-的值,然后更新μ-,并依次计算车辆信任调增基数tbase
dec
,惩罚系数以及惩罚后的车辆信任值。若为恶意车辆,则同时更新μ-和num
mv
的值。处于恶意名单中的车辆节点若继续发送虚假消息,则继续调增其num
mv
的值。
[0172][0173][0174][0175]
其中,tbase
dec
为车辆信任调减基数,惩罚系数,μ-车辆发送真实消息的次数,
[0176]
504)更新车辆信任值
[0177]
当车辆推荐证据信息的反馈结果与msg的评估结果不同时:
[0178][0179]
当车辆推荐证据信息的反馈结果与msg的评估结果相同时:
[0180][0181]
其中,tv
update
为更新后的车辆信任值,tv
cur
为当前的车辆信任值。
[0182]
对于信任调整基数,tbase
init
的初始值为0.01,并且tbase
inc
和tbase
dec
的值随着num
mv
的次数的变化而变化。当车辆始终保持诚实行为,其奖励、惩罚额度均为0.01。随着,num
mv
次数的增加,其奖励、惩罚额度呈指数变化。
[0183]
对于奖惩系数,呈线性变化,呈指数变化,在系数杠杆的设计中应用“慢奖励快惩罚”的思想。μ
+
和μ-只在车辆信任一直处于可信范围内进行累加,当车辆信任值低于0.5时,将其加入恶意车辆名单,并在一段时间内此类车辆被认为是存在信任威胁的,不再考虑此类车辆节点所提供的推荐证据。而恶意名单中的车辆只能通过发送大量真实消息来积累信任值。对于刚加入到恶意列表中的车辆,将前一时期内积累的μ
+
和μ-置为0,开始重新计数,并将num
mv
的值加1。当车辆信任值为0时,则将车辆加入黑名单,禁止车辆在网络内进行通信、获取相关服务。考虑到合谋车辆的危害程度,一旦检测发现,则直接将其列入黑名单中。
[0184]
消息信任评估结束后,根据评估结果和车辆信任调整情况,按照附图9所示创建信任区块。其中,根据事件聚合的车辆信任列表与块体中记录的事件记录如附图10所示。
[0185]
步骤6)基于重要性证明的优化pbft算法,完成存储在区块链中的信任变化参数和车辆信任值的更新,将信任数据在车联网内共享,如图11所示,进行区块的共识和上链过程。具体如下:
[0186]
601)在执行算法流程前,进行系统初始化。在车联网场景中的每个区域内随机选取共识rsu节点,其余节点为区域内的候选rsu。并且,每个区域内共识rsu和候选rsu保持一定且合适的比例关系。每个区域具体的共识rsu和候选rsu的数目由区域内包含rsu的总数目来决定。而在后续共识rsu的选取中,则根据rsu的信任水平来决定。
[0187]
602)系统运行时,rsu节点基于事件的重要性程度来竞争记账权。rsu基于消息评估事件计算当前区块重要度,并根据区块重要度来求解随机数难度,率先求解的rsu获取记账权。若多个rsu同时计算出随机数,为避免分叉,则随机选取其中一个rsu获取本轮的记账权,然后为其他rsu随机分配调节参数τ,避免rsu长期无法获得记账权的情况发生。获得记账权的rsu即为本轮共识的主节点。
[0188]
计算方式如下:
[0189]
event
importance
=a
×
contain_cv+b
×
num_mv+c
×
tcm
[0190]
block
importance
=∑ievent
importance
[0191]
hash(block)≤target
×
(block
importance
+τ)
[0192]
其中,contain_cv表示当前区块中是否包含合谋车辆,取值0或1;num_mv 表示当前区块数据中恶意车辆的数目;tcm表示需调整车辆信任的变化度,即区块中所有车辆的tbase
inc
和tbase
dec
总和,a,b,c为上述参考因素的相关系数,并且满足a》b》c,a+b+c=1的条件;率先求解答案的rsu获取记账权,获得记账权的rsu即为本轮共识的主节点;
[0193]
603)主节点将区块广播给所有共识rsu。若共识rsu中不存在拜占庭节点,则执行优化的pbft算法:共识rsu收到区块后进行验证,不在共识rsu 之间相互广播;验证后直接将结果反馈给主节点;主节点收到所有共识rsu的反馈并且反馈结果一致,则达成共识。若反馈结果不一致,则共识rsu中存在拜占庭节点,按照完整的pbft算法进行共识:共识rsu收到区块时,与其他 rsu进行相互广播,并在收到所有其他共识rsu节点发送的区块后,进行验证并反馈结果给主节点。主节点收到2/3的确认结果,即达成共识。
[0194]
604)达成共识后,主节点和共识节点将区块上传至区块链中,并把共识结果广播给其他候选rsu。此外,还要清除共识rsu中的拜占庭节点,并从候选 rsu中选取新的共识rsu。每个rsu会拥有一个信任积分,当成功创建一个真实的区块,其信任积分加1。在新一轮的共识rsu选举中,选取信任积分较高的候选rsu。
[0195]
综上实施示例,完成基于区块链信任管理环节的全部流程。本发明的示例具有如下效果:
[0196]
(1)采用联盟链和车联网区域划分的思想来设计信任管理方案的整体架构,使区块链技术更适用于车联网的特点,也为共识算法的设计奠定结构基础。
[0197]
(2)本发明具备合谋攻击检测能力。基于车辆信任关系可有效识别车联网内的合谋攻击车辆,抵御消息合谋攻击;基于区块链存储方案,抵御车辆信任合谋攻击,增强整体方案的鲁棒性。
[0198]
(3)本发明设计的消息评估策略,可以有效识别虚假消息。基于后续的车辆信任调整策略,使得车辆信任变化呈现线性递增,指数递减的趋势。体现出“慢奖励快惩罚”的设计思想,有效激励车辆诚实行为,抑制其恶意行为。
[0199]
(4)根据基于重要性证明的优化pbft算法的共识思想,可以增强信任管理方案的扩展性,提升区块的出块速率。此外,也能保证重要信息优先上链,并在区块链中进行共享。基于车辆的恶意程度来评估区块的重要性,确保“恶意程度”较大的区块,快速在区块链网络中共享。
[0200]
尽管,已描述了本发明的具体实施案例。但本领域内的相关技术人员一旦得知相关概念,则可对本发明进行优化和更改。所以,所附权利要求意欲解释为包括本实施案例以及在本发明范围内的改动。显然,本领域的技术人员对本发明进行的各种改动而不脱离本发明的精神和范围。倘若本发明的这些修改和变型属于本发明权利要求及其同等技术的范围内,则本发明也意图包含这些改动和变型在内。