蔡沛婧,罗 威,胡钰林,吴 静
1.武汉大学 电子信息学院,武汉 430072
2.中国舰船研究设计中心,武汉 430064
车载自组织网络(vehicular ad-hoc network,VANET)[1]是一种易于部署且成本低的车用移动通信网络,是车联网的重要组成部分。近年来,随着车载智能计算和通信技术的发展,车联网进入高速发展期,车辆可以通过专用短距离通信技术(dedicated short range communication,DSRC)与车辆或基础设施进行通信。车辆获取并分析其他车辆和基础设施发布的动态信息,进而判断道路流量状况,规划最佳行车路线,从而可以保障交通安全和提高行驶效率。在VANET 的发展过程中,软件定义网络(software-defined network,SDN)[2]以其灵活性、可编程性以及转控分离等特点受到研究者们的青睐。SDN与VANET的融合称为软件定义车载网络(software-defined vehicle network,SDVN)[3],SDN 将控制层和数据层解耦,提供更加高效的数据流,保证可扩展性和动态配置,与车联网相结合,是处理车辆应用需求、管理动态网络拓扑以及最小化网络管理成本的有效途径。
尽管SDVN带来了更好的驾驶体验,但仍存在许多未解决的安全问题,使得SDVN 还不能广泛应用和部署。例如,SDN架构存在着单点故障的风险;网络中可能存在恶意车辆竞争资源、广播虚假信息等。共享消息可对交通系统的安全保障有很大帮助,但是车辆通常不愿意相互信任和合作,因为它们在大多数情况下对彼此是陌生状态。因此有效评估和管理车辆与路边通信单元(road side units,RSU)之间的信任对维护VANET 的安全非常重要[4]。
信任评估[5]是指为获得节点或数据的信任值而执行的一组步骤,通过收集和分析车辆发送消息的历史行为,评估车辆的信任值。一旦在本地为节点计算了信任值,就会在与该节点交互的持续时间内对其进行管理,这称为信任管理[6-7]。为了解决中心化服务的单点故障问题,有效评估和管理车辆信任值,本文利用区块链在SDVN 中构建信任模型,通过非对称加密确保数据隐私,使用共识机制来保证数据的一致性。随着区块链部署到RSU,车辆广播行为和RSU 的信任记录都写入区块链账本中,防止节点的信任值被篡改,不会影响整个网络数据的完整性和正确性。
基于以上内容,本文提出了一种基于联盟区块链的SDVN 信任管理机制,该机制包括信任评估和信任管理,主要贡献如下:
(1)从车辆的时空行为特征角度,提出一种信任评估方法,准确评估车辆的信任等级。
(2)提出了一种基于Hyperledger Fabric 的信任管理方法,应用智能合约进行信任值的查询和更新,提高了信任管理的整体效率,保证了SDVN的安全性。
车联网的信任管理可以分为集中式、分布式和去中心化的信任管理模型。集中式通过部署一个具有强大处理能力的中心服务器,获取、计算和存储所有车辆的信任值[8],但这种架构很容易遭受单点故障,且会带来巨大时延。分布式信任管理模型[9]可以解决单点故障问题,但会带来存储数据不一致和不完整的问题。第三种是去中心化的信任管理模型,Yang等人[10]使用区块链技术在VANET 中建立了去中心化的信任管理模型,基于区块链的去中心化特性,可以在分布式RSU 之间进行信任管理,有效避免中心化问题。
共识算法[11]作为区块链的核心算法,会直接影响到区块链系统的性能,许多学者研究去中心化信任管理会采用经典的公有链共识算法工作量证明(proof of work,PoW)或权益证明(proof of stake,PoS)[10,12],但公有链不是与车联网结合的最佳选择,它会浪费大量的计算资源,降低网络吞吐量。在文献[13]中,实用拜占庭容错算法(practical Byzantine fault tolerance,PBFT)作为共识算法,解决了公有链共识算法效率与时延问题。
文献[14-15]分别提出了一种信任评估方案,基于车辆历史交互数据使用β分布来评估信任值,以及利用贝叶斯模型对接收到的消息评估车辆可信度。信任评估方法大多使用概率和统计作为信任评估方法,在准确性上还有待提高。
上述研究为VANET 中的信任管理提供了参考,本文分析车辆的时空行为特征,构建了车辆信任评估方法。此外提出了一种基于联盟链的信任管理方法,使用Hyperledger Fabric 平台,以PBFT 算法作为共识算法,加速了共识过程,在效率上具有很大优势。
本文的网络架构系统模型分为三层,从下往上依次为车辆网络层、区域控制层和主控层。图1展示了系统模型每层的主要设施。
图1 系统模型Fig.1 System model
车辆网络层:该层主要设备是车辆,车辆在SDVN中既是消费者也是生产者。作为生产者,车与车、车与路的互联让车辆收集路况、交通事故信息等,车辆内部配有传感器和车载单元(on board unit,OBU),通过DSRC技术与邻居车辆或者RSU进行通信,车辆通信范围在1 000 m 左右。作为消费者,车辆利用SDVN 网络资源,为车主提供导航、影音娱乐、资讯等功能。车辆之间互相通信,将车辆信任值发送给区域控制层。
区域控制层:该层以分布式区块链的方式运行,主要设备是RSU。RSU设置在道路的十字路口,具有数据存储和运算能力,通信范围约为1 000 m,用于大面积传感与通信,服务于覆盖范围内的车辆。文中区域控制层收集各自区域的信任信息,收集之后传递给主控层进行相应指标的计算。一般来说,RSU 比车辆更加可靠、稳定,计算能力更强大,因此RSU 参与共识,每辆车定期将信任值发送给所在区域的RSU,然后在RSU 内进行评级、账本更新等操作。作为区块链中的对等节点,即使部分RSU 遭受恶意攻击,也仍然可以保持数据的一致性。
主控层:SDN 控制器作为SDVN 架构的核心组件,负责网络管理和操作,如规则下发、资源分配、网络整体调控等。
SDVN 中的车辆与RSU 设备都可能发生恶意入侵。恶意车辆为争夺交通资源可能会向邻居节点和RSU 发送虚假消息,攻击者劫持RSU 将会导致车辆用户隐私泄露以及车辆信息被篡改。针对车辆的攻击以消息欺骗攻击[14]为例,针对RSU的攻击以数据一致性攻击[16]为例,下面分析这两种攻击行为。
消息欺骗攻击[17]:攻击者为了占用更多的带宽资源和信息资源,可能会故意广播虚假消息,例如恶意车辆在通过红绿灯路口时故意广播红灯信息以抢占车道,扰乱交通秩序,即:
数据一致性攻击:攻击者篡改和删除RSU 的本地数据,导致RSU之间的数据不一致,即:
建立SDVN 网络中节点间的信任管理系统需要两个主要步骤,即信任评估和信任管理。信任评估是指获得车辆节点的信任值而进行的计算步骤,当为车辆节点计算了信任值后,在同一个RSU范围内,对节点交互持续过程中的信任值进行管理,这称为信任管理。
信任值是在基于历史行为的情况下,一个实体对另一个实体未来行为的期望[18],需要根据车辆的行为对车辆进行信用评估。恶意节点一方面为抢占交通资源提供虚假的道路信息和位置信息影响VANET 的安全,另一方面会发送大量无效请求浪费RSU计算资源。因此本文基于实体信任,从空间性和时间连续性两方面联合评估车辆节点的信任值。表1 总结了信任评估算法中给出的重要符号。
表1 符号定义表Table 1 Symbol definition
3.1.1 空间上的车辆信任评估
将每个RSU 通信范围划分为l=a×a个大小的单元格,同个区域内的车辆进行车辆位置计算。假设车辆c向区域RSU通信范围内V辆车进行广播,信任值往往与距离有关,相对距离近的车辆比距离远的车辆更可信,通过对RSU 覆盖范围内发起车辆广播查询进行统计分析,计算转发车辆c对范围内第i辆车(i∈{1,2,…,V-1})的信任值:
从位置上分析,一小块区域内所播报的路况信息应该是类似的,不会出现两种截然不同的信息。假设有恶意车辆广播虚假路段信息,所有车辆比较自身信息与广播报文,计算消息的直接信任度:
其中,Mc,i表示转发车辆c向区域内节点i(i∈V)广播的数据包总数,表示正确匹配的数据包数量。
在空间上联合考虑距离与消息信任,加权平均区域内所有广播车辆提高信任值的可靠性,因此转发车辆c空间上的信任值Ts定义为:
3.1.2 时间频率上的车辆信任评估
恶意车辆另一个特点就是通过大量合法的请求占用网络资源,以达到瘫痪网络的目的。为了避免恶意车辆在短时间内连续发送大量请求,本文从消息发送的频率考虑信任值,用Tf表示车辆c的消息频率信任值,设置消息发送的频率阈值。假设当两次消息发送的时间间隔大于t时,消息频率是合理的,则消息频率信任值为1。如果两次消息时间间隔小于t,则将阈值t均分为n个时间间隔{t1,t2,…,tn},第k个时间间隔内,tk越小,说明发送消息频率越高,发生恶意攻击的可能性大,则相应的信任值也应该越小。综上所述,消息频率信任值的计算如式(4)所示,其中α∈(0,1)。
3.1.3 车辆信任评级
联合考虑空间上和时间频率上的车辆信任值Tc,得到综合的车辆行为评估的结果:
其中,ρ为可调节参数,且ρ∈[0,0.5]。当历史查询信息较少时,空间上的信任值对整体评估影响小,因此ρ赋值也较小;当历史查询信息较多时,二者的权重趋于平衡。
对车辆进行信任评估后,因为每辆车的评估分数都不同,所以根据评估结果对车辆进行信任评级,将结果聚类化,本文将其划分为m个等级,处于第i个等级表示为Ri,其中i=1,2,…,m。车辆的信任值越高,相应的信任等级也越高。当信任值处于区间时,信任等级都为Ri,T表示信任值上限,特别地,当信任值为0时,记为等级R1,即:
区块链会记录所有车辆收到的各信任等级总数以评估车辆的行为。对于车辆c来说,向RSU范围内的车辆进行广播,当车辆c第p次向RSU范围内车辆广播,收到评级为Ri的总数记为。车辆c在区块链上的信任等级存储用向量表示为:
其中,p表示第p次的广播,前p-1 次广播的信息包含在Numc_p中,即当车辆c进行下一次广播时,反馈的等级数直接在上一次记录的基础上相加,历史查询总数也相应增加。
当RSU 发现车辆c的信任等级Rankc≤3,则认定为该车已处于失信状态,将对车进行警告。
信任评估算法的步骤总结如下:从空间与时间频率上考虑消息的可信度,分别为Ts与Tf,可以抵抗消息欺骗攻击。联合考虑车辆的时空特征计算车辆的信任值,为了更好地分析,将信任值分级。记录评估车辆c的每一等级的数量,最后计算期望评级,当车辆信任等级较低时,列为失信车辆。实现上述方法的算法描述如算法1所示。
区块链技术在近几年得到了飞速发展,所提供的服务广泛涵盖多个领域,区块链技术作为当下解决车联网信任管理的最新兴技术,二者的结合也使得研究者们重新看待信任管理解决方案[7,19]。
区块链分为公有链、联盟链和私有链。公有链中,所有用户都可以参与网络,无需注册和认证,公有链的时效性不佳,不能满足信任值更新的时效性。对于私有链,其中的用户都是注册用户,同时他们的权限也受到限制,如果应用在SDVN 的信任管理中,只能假设所有节点、设备都是安全可靠的,显然这种假设对于本文威胁模型互相矛盾。
本文使用联盟链的Hyperledger Fabric 技术平台与信任管理结合。区域控制层设备RSU作为对等节点构建区块链网络,维护车辆信任值数据,并将信任值写入区块链账本。不同运营商的RSU 归属于不同的组织,创建在组织之间进行交易的Fabric通道与账本,账本以键值对的方式存储记录着车联网车辆信任值的当前状态,车辆ID与车辆信任值、车辆历史消息分别作为键和值,调用智能合约使用账本API 来获取、写入状态。这些不同运营商的RSU 对等节点存储信任值账本,通过智能合约对其进行管理,提高了信任管理机制的整体效率,确保更好的安全性。
智能合约和共识机制是信任管理机制中最重要的两部分内容。智能合约能够持续地进行信任值的更新以及对账本的访问和控制,本文中智能合约包含添加、更新和查询三个主要逻辑。对信任值的查询、更新和添加的操作,都作为交易记录存储在区块链中,具体的值存于数据库中。区块链的共识机制解决了RSU节点之间互相信任的问题,实现了分布式节点之间信任值账本的一致性。传统公有链一般是基于PoW、PoS等共识算法,但这种算法以浪费计算资源、降低吞吐量为代价确保达成共识。本文所用的共识机制为PBFT,与公有链的共识机制相比,提高了共识过程中的效率和安全性。
图2 是车辆与区域控制层RSU 之间有关区块链的交互逻辑关系图。
图2 中,第一步在区域控制层完成初始化,包含不同运营商组织建立通道,将各个RSU节点加入通道,安装链码,实例化链码。第二步收集RSU 区域内各车辆的广播信息。第三步计算车辆的信任值,并且调用链码更新账本。第四步查询账本中的信任值,查询是最简单的调用,包含一个请求和响应,向状态库查询某辆车的当前信任值。第五步在网络中收集到新的信息,在区块链更新账本。
图2 车辆网络层与区域控制层交互逻辑图Fig.2 Interaction logic diagram of vehicle network layer and area control layer
下面介绍实验所需的硬件和软件环境。首先,比较了传统网络与SDN 框架下车联网的网络性能,以此验证本文框架的优越性以及信任管理机制的可靠性。其次,展示了本文中信任评估算法的信任值趋势。最后,比较了Hyperledger Fabric中所用共识算法与其他算法性能效率。本文的实验环境如表2所示。
表2 实验环境与所用工具Table 2 Experimental environment and tools
本文的实验环境为:Intel i7-4790 CPU 3.60 GHz,8 GB RAM,Ubuntu-16.04版本的操作系统。Mininet网络仿真器用于创建一个支持SVDN 的网络。本文利用Mininet网络仿真工具模拟车联网中的车辆节点与RSU节点,并且通过运行Python 的Scapy 脚本,实现从车辆节点生成自定义数据包,该数据包中包含了信任评估的信任值。Mininet 仿真将RSU 节点作为交换机,实现车辆节点之间及车辆与RSU 节点之间的相互通信。此外,利用Ping网络诊断工具和Iperf网络性能测量工具,收集在SDN网络结构和传统网络结构下时延抖动情况。
信任管理实验中,通过Hyperledger Fabric 技术平台实现车联网数据共享系统,区块链网络部署在车联网中的RSU节点,维护车辆信任值数据。Node.js SDK与账本所在的区块链网络进行交互,借助shim 接口来调用智能合约,提供给用户添加、更新及查询车辆信任值账本的功能。
本文设置仿真所需要的实验参数,首先在车辆网络层选取大小为3 km×3 km的区域作为仿真区域,仿真区域内包含车辆网络层60 个车辆节点、区域控制层8 个RSU节点,且RSU部署在道路的十字路口,服务于覆盖范围内的车辆。车辆节点速度上限在40 km/h。车辆与车辆及车辆与RSU 之间将通过DSRC 技术中的IEEE 802.11p协议进行通信,根据协议内容,RSU通信覆盖范围在1 000 m左右。
本节实验通过对比传统网络与SDN 网络性能,以证明在车联网中部署SDN 架构的可行性。在Mininet平台进行网络模拟,使用流量生成器生成流量网络,收集来自这两个网络的RTT、带宽和数据包传输速率,然后进行比较。图3 是SDN 网络与传统网络的时延抖动分布对比图,传统网络的时延抖动大,网络不稳定。对于车联网来说,网络稳定是其网络安全的一个重要因素。
图3 SDN与传统网络架构时延抖动对比图Fig.3 Comparison of delay jitter between SDN and traditional network architecture
在本实验中,仅考虑单个RSU 覆盖范围内车辆的信任值评估,假设范围内实验车辆总数为30辆,随机选择其中的20%假定为恶意车辆,其向区域内所有车辆广播虚假消息。从车辆广播信息到RSU计算车辆信任等级记为一轮信任评估,图4是本文方法中多轮信任评估下某一恶意车辆的平均信任值与信任等级变化趋势,图5显示的是本文方法以及Luo等人[20]提出的信任评估下某一恶意车辆的平均信任值变化趋势曲线与理想状态曲线的比较。前20 s恶意车辆表现正常,20 s后恶意车辆开始广播虚假及恶意消息,直到40 s时该恶意车辆又重新表现出可信行为。理想状态下当恶意车辆开始攻击行为,信任值急剧下降,维持在低水平处,当恶意车辆停止攻击,则信任值又回到攻击前的状态。但真实仿真情况下,需要一定的反应时间,本文方法与Luo 等人方法比较,车辆信任值的变化趋势差异明显。前20 s内,由于环境等因素影响,车辆信任值都维持在0.8 左右,20 s时周围车辆对恶意车辆发送的虚假信息做出回应,二者信任值均呈下降趋势,其中Luo 等人的方法在车辆表现出恶意行为后,信任值即时下降趋势不明显,车辆评价未受到影响,当车辆在40 s时再次表现出可信行为,信任值的上升趋势也非常缓慢,相较于本文方法,Luo等人的方法实时性较差,无法有效识别恶意车辆。
图4 本文方法的信任等级与信任值趋势Fig.4 Trust level and trust value trend of proposed method
图5 信任值趋势对比Fig.5 Trust value trend comparison
VANET中大多数基于区块链的信任管理系统选择了公有链作为底层技术,为比较本文所用共识机制以及Hyperledger Fabric 与信任管理结合的优势所在,本节设计了一个与公有链相对比的实验。
(1)不同共识机制下三种智能合约的时延对比
Hyperledger Fabric技术平台所用共识机制为PBFT,测试在PBFT共识机制下不同请求次数的三种智能合约分别的处理时间,此外添加公有链的PoS共识机制作为对比组,PoS 即权益证明。图6 是两种共识机制对于智能合约处理时间的对比图。可以看到PBFT 共识机制下,不同并发请求数量中,查询和更新两个智能合约耗时更多。因为在这两个过程中需要在区块链完成共识以及同步查询,随着请求次数的增加,时延也成正比增加,而添加的智能合约耗时更少。相比而言,PoS 共识机制的耗时远远高于PBFT,说明本文使用Hyperledger Fabric技术平台进行信任管理带来较少的时延,适合车联网动态变化的特点。
图6 PBFT与PoS的三种合约耗时对比Fig.6 Time consuming comparison of three contracts between PBFT and PoS
(2)RSU达成共识所需的时间
实验模拟了不同运营商RSU 之间达成共识的过程。PBFT 共识过程包括Pre-prepare、Prepare、Commit和Reply 四个阶段,包含计算RSU 对新区块的签名,将签名包广播给所有共识节点,达成共识所需要的互相通信以及将最新区块提交到数据库等。图7展示了PBFT与PoS 两个共识机制下RSU 共识节点数量与达成共识所需时间的关系。随着RSU 数量的增加,两条曲线协商一致性过程中所需的时延就越大。但PoS 算法的共识时间的量级为秒,而PBFT算法量级为毫秒,因此在图中PBFT算法的上升趋势不明显。
图7 PBFT与PoS共识机制下RSU共识节点与耗时关系Fig.7 Relationship between RSU consensus node and time under PBFT and PoS consensus mechanism
本文提出了一种在SDVN 中基于车辆时空特征评估的信任管理机制,在实验中比较了SDN 与传统网络架构的性能,说明了在车联网部署SDN 架构的优越性。在本文研究中,信任评估算法从空间与时间频率两个角度出发,前者考虑车辆之间的位置与正确发包数量,后者利用车辆两次消息发送的时间间隔,进而判断是否有恶意流量攻击,二者可以在一定程度上检测出恶意车辆的消息欺骗行为与高频率发送消息行为。此外,设计了一种基于联盟区块链的信任管理方法,获取到车辆信任值之后将信任值发送给区域所在的RSU设备进行管理。在实验中,比较智能合约的耗时与RSU 设备共识时间,结果表明利用Hyperledger Fabric 进行信任管理提高了账本更新与查询的效率,说明本文方法在信任评估和信任管理方面具有良好的可行性。