陶 敏, 关胜利, 崔鹏飞
(1.中国南方电网超高压输电公司广州局,广州510003;2.广州高澜节能技术股份有限公司,广州510663)
作为现代社会最重要的基础设施,交通系统的效率影响了居民生活质量。随着交通流量的增加以及道路车辆数的激增,交通事故频繁发生[1-2]。如何有效地提高道路安全是交通系统亟待解决的问题。
车联网(Vehicular Ad hoc Networks,VANET)已成为智能交通系统(Intelligent Transportation System,ITS)的重要组成部分[3]。VANET利用车辆间(Vehicle-to-Vehicle,V2 V)和车辆与路边设施(Road Side Unit,RSU)通信,提高道路行驶安全。
多数VANET应用均涉及到行驶安全。在VANET内实施相应的安全机制显得尤为重要。由于车辆的快速移动及无线通信的特性,相比于传统网络,VANETs容易遭受各类攻击。为确保VANET的安全,研究人员提出各类安全机制。多数安全机制来自IEEE或ETSI推荐的标准。
IEEE 1609.2标准[4]为车载环境(Vehicular Environment,VE)设备的无线接入定义了安全消息格式。与IEEE标准不同,ETSI标准并没有将安全设备定义成管理平台[5]的子函数。ETSI TS 102 941标准[6]定义了信任管理和隐私管理机制,利用这些机制支持或者实现ITS系统的安全。
通常,这些安全机制可基于3种模式构建:加密算法、公钥基础设施和安全认证。这些安全机制能够实现车载通信环境中消息的认证和完整性。车载网络容易遭受Sybil攻击[7]。一个恶意节点同时使用不同的假名,就容易发生Sybil攻击。每个假名伪装成一个虚拟节点(Virtual Node,VN)。
在车载网络中,Sybil攻击对网络层和应用层均有影响。由于网络层采用了CSMA/CA机制,多个虚拟节点间的连接,过多地占用信道资源。在应用层,虚拟节点也参以与其他ITS设备的通信。在这种环境下,当恶意节点同时使用多个假名时,这些假名产生的虚拟节点通过向良性节点广播虚假安全消息,发起攻击。一些安全机制采用了投票机制[8]。恶意节点利用产生多个虚拟节点进行恶意投票。
基于车辆行驶模型的Sybil攻击检测(Driving Pattern based Sybil AttackDetection,VDP-SAD)算法。考虑到虚拟节点不得不避开良性节点捕获的位置,这些虚拟节点的行驶模型可能是杂乱的,不稳定的。尤其是在动态的车载环境,它们的行驶模型极不稳定、不成形的。因此,VDP-SAD算法通过评估车辆行驶模型的相似性,检测Sybil攻击。
车联网主要由车辆、路边单位(Road-Side Units,RSU)构建,如图1所示。每辆车上安装一个车载诊断系统(On-Boart Diagnostic,OBD)[9]。利用OBD,车辆能够与其他车辆、RSU进行通信。每辆车中的OBD具有防攻击设备(Tamper Proof Device,TPD),存储相关的数据。在VANET中,车辆通过交互Beacon包与其邻居节点交互信息,获取邻居车辆的信息。车辆在一跳通信范围内以周期T=100 ms广播Beacon包,其主要包含车辆的身份,位置,速度和加速度。
图1 系统模型示意图
在道路边上部署RSU。这些RSU为车辆提供服务。每个RSU采用短程无线通信技术(Dedicated Short Range Communications,DSRC)协议[10]与其覆盖范围内的车辆通信。
若一辆车在一段时间内使用几个假名,从OBD和RSU角度,每一个假名都是一辆车。原因在于:每个有效的假名都拥有它自己的密钥对。因此,一辆车辆利用它的不同假名虚构多个身份(虚拟节点),进而发起Sybil攻击。
通常,车联网中的Sybil攻击有两个过程:虚拟节点产生过程和攻击发起过程。依据ETSI的标准,在虚拟节点产生过程中,虚拟节点利用协作感知消息(Cooperative Awareness Messages,CAM)使OBD和RSU[11-12]知晓自己;在攻击发起过程中,虚拟节点利用集中环境认知消息(Decentralized Environmental Notification Message,DENM)向RSU报告虚假的道路信息。
如图2所示,Vm是恶意节点,Vb为良心节点,Vυ是由Vm利用它的假名产生的虚拟节点。依据ETSI标准,Vυ通过传输CAM使系统内的其他车辆和RSU知晓自己,再通过传输DENM向RSU报告虚假的道路消息。
图2 Sybil节点的攻击模型
VDP-SAD算法就是聚集于虚拟节点产生过程,其先检测虚拟节点,再排除这些虚拟节点。
当车密度很高时,车辆行驶模型存在很明显的相似性。VDP-SAD算法利用行驶模型的特征值表述车辆行驶模型,构建行驶模型矩阵,计算每个行驶模型矩阵的特征值,检测Sybil攻击节点。
VDP-SAD算法引用行驶模型矩阵(Driving Pattern Matrix,DPM)表述车辆在一段时间内的行驶模型,并利用DPM的特征值估计相似性。
因此,车辆ϑi在时间段( t1,tn)区间的DPM可表示为:
若矩阵Mi满足式(2),则矩阵Mi有一个特征矢量x和相应的特征值λ:
在时间段( t1,tn)内,对于任意车辆ϑi的DPM的Mi,先构建矩阵·Mi,其满足式(3):
遵循特征值快速下降的事实。VDP-SAD算法以降序对特征值进行排序[13]。取排序后的前5个值,并利用这5个特征值表述分类器内的原始DPM的特性。
从5个特征值中选择2个最大的特征值,这2个特征值分别表示:
将车辆ϑi在一段时间内的行驶模型表述成二维平面上一个点,这2个特征值是这个点的坐标。
用两个矢量νi、νj分别表述车辆ϑi、ϑj的行驶模型,其中这2个矢量的明氏距离(Minkowski Distance,MD)为:
在测量明氏距离过程中,常将q取1或2。若q=1,则MD为曼哈顿距离;若q=2,则MD就为欧式距离。
矩阵的特征值是一组非负的实数。可认为矩阵相似性与特征值相似性之间存在正相关性。利用曼哈顿距离评估特征值间的相似性,检测Sybil攻击。
系统内存在N辆车,便可形成N个矢量νi,且i=1,2,…,N。用这N个矢量νi构成N行2列矩阵:
计算矩阵S第1行的矢量νi与中值矩阵e=的MD距离。令νi表示矩阵S的i行,其表示车辆ϑi的行驶模型。如果νi与MD距离d νi,( )e大于预定的阈值dth,则车辆ϑi被判定为恶意节点。
算法1给出检测Sybil攻击的流程。
收集N辆车的Beacon消息,并构建在( t1,tn)时间内每辆车的DPM。计算车辆ϑi的DPM Mi的特征值,如算法1 step2所示。依据式(5)计算2个最大的特征值,并构建矢量νi。
在Windows 7操作系统、8 GB内存,core i7 CPU的PC上进行实验仿真。采用交通仿真软件SUMO(Simulation of Urban Mobility)1.2.0进行仿真。SUMO是一个开源、微观、多模态交通仿真模拟软件,集成了车辆行驶规律,车辆驾驶行为、驾驶习惯、路径选择等内容,可以产生逼真的交通仿真场景。
采用都市交通场景,仿真场景为Manhatan Grid4×4。道路长为1 km,每条道路为双向2车道,具体的仿真参数见表1。
算法1 检测Sybil攻击输入:Beacons from vehicles输出:ID of malicious nodes Step1:for i=1 to N do for t=1 to n do Construct the DPM for each vehicle within n seconds Get Mi end for Step2:Calculate the eigenvalues of Mi Step3:Calculate the vector of→νi Step4:Construct matrix S and compute→e end for Step5:for i=1 to N do Calculate the MD d(vi,ei)between vi and ei if d(vi,ei)>dth Output the IDs of maliciousnodes end if end for
表1 仿真参数
分析VDP-SAD算法在不同的车流量密度环境下,检测Sybil攻击的准确率,简称为检测准确率,等于检测的Sybil攻击节点数与总的Sybil节点数之比。引用变量ρ,其表示Sybil攻击节点的百分比。
图3给出了ρ=1%、5%,10%、15%和20%环境下的VDP-SAD算法的检测准确率。由图3可知,Sybil攻击节点的百分率ρ的增加,使检测攻击节点的准确性下降。原因在于:百分率ρ越大,网络内存在的Sybil攻击节点数越多,这就加大了检测Sybil攻击节点的难度。
图3 检测率随ρ的变化情况
车流量密度的增加不利于提高对Sybil攻击节点检测的准确率。例如,当ρ=15%时,车辆数N=400的检测准确率为99.7%,当车辆数增加至N=800,检测准确率降低至94.71%。
图4给出了ρ=10%时的接受者操作特征(Receiver Operating Characteristic,ROC)。ROC也反映了检测Sybil攻击节点的准确性。ROC曲线上的每个点反映了2个指标:真阳性率(True Positive Rate,TPR)和虚警率(False Positive Rate,FPR)。FPR表示将良性节点误判为恶意节点的概率。
图4 ROC曲线
由图4可知,VDP-SAD算法具有低的FPR和高的TPR。在所有情况上,VDP-SAD算法能够检测90%以上的Sybil攻击节点。此外,车流量密度对ROC曲线存在一定影响。原因在于:车流量密度越大,降低了车与车之间的距离,使车与车之间的行驶模型更相似,这也有利于检测Sybil攻击节点。
选择文献[14]中提出的SRSUIM算法和文献[15]中的GSF算法作为参照,对比SRSUIM算法、GSF算法和VDP-SAD算法的检测性能。采用攻击检测率、误检率和漏检率3个指标评估检测Sybil攻击节点的性能[16]。其中检测率等于检测的Sybil攻击节点数与总的Sybil攻击节点数;误检率等于将Sybil攻击节点数误判为良性节点数与总的良性节点数之比;漏检率等未能识别的Sybil攻击节点数与总的Sybil攻击节点数之比。图5所示为SRSUIM、GSF和VDP-SAD算法的检测率、误检率和漏检率性能。
图5 SRSUIM、GSF和VDP-SAD算法的性能
由图5可知,相比于SRSUIM算法和GSF算法,VDP-SAD算法在检测率、误检率和漏检率性能存在优势。SRSUIM算法是通过节点影响力分析检测Sybil攻击节点;GSF算法是引用社交关系检测Sybil攻击节点。给合检测率、误检率和漏检率3个指标可得到结论,本文提出的VDP-SAD算法具有较好的检测性能。
针对车联网中的Sybil攻击问题,提出了基于车辆行驶模型的Sybil攻击检测VDP-SAD算法。VDP-SAD算法利用车辆行驶模型的相似性,检测车联网中Sybil攻击节点。利用车辆的移动信息构建车辆行驶矩阵,计算这些矩阵的特征值,然后利用特征值表述车辆行驶模型的相似性。仿真结果表明,VDP-SAD算法检测Sybil攻击节点的准确率保持在90%。
考虑智能的攻击节点,提高检测算法的有效性和拓展性。这些智能攻击节点通过伪装合理行为,进而逃避检测。