王 芳
(永城职业学院,河南 永城 476600)
车联网(vehicular ad hoc networks,VANETs)[1]已成为智能交通系统(intelligent transportation system,ITS)的重要组成部分[2]。随着交通流量的日益剧增,都市交通拥塞严重,交通事故也随之增加。通过引入VANETs,使车与车之间和车与其他路边设施(road side unit,RSU)间保持通信,能够缓解交通拥塞问题,增强交通的安全性。
VANETs 中的车辆采用DSRC 技术[3],并周期地向邻近车辆发送路况、位置等信息。通过这种方式,车辆能够实时掌握道路状况。同时,RSUs 也周期地广播位置服务消息,包括邻近加油站,事故区域等。
为了增强车间通信(vehicle-to-vehicle,V2V)以及车与RSUs间通信(vehicle-to-RSU,V2R)的安全性,所有车辆和RSUs均向信任实体(trusted authority,TA)注册。此外,由于V2V和V2R均采用无线方式通信,它们可能遭受多类安全攻击。如恶意第三方截取、篡改和重传消息。因此,接收节点对所接收的消息进行认证。文献[4-7]讨论了认证问题,但这些方案中的第三方能从所获取的消息中关联到车辆的真实身份信息以及车辆位置,并没有有效地实现车辆的匿名性。实现身份的匿名是保护车辆隐私的关键。
此外,由于车辆的计算能力,数据存储容量有限,降低车辆的计算开销和通信成本也是在设计认证协议需考虑的问题。
为此,针对车联网,基于批量匿名认证和会话密钥交互的安全协议(ABKS)。ABKS 协议要求车辆和RSU 在通信前,先相互认证。只有认证通过后,再建立会话密钥,它们再以此会话密钥进行通信。同时,ABKS 协议采用批量认证,进而降低RSU的认证负担。
考虑如图1 所示的系统模型,主要由3 个实体组成:实体信任TA;路边部署RSUs;道路上的车辆。
图1 系统模型Fig.1 System model
在VANETs 系统中,TA 负责为车辆和RSUs 注册。TA 通过有线方式与RSUs通信;而TA 采用无线方式与车辆通信,RSUs 也采用无线方式与车辆通信,并且每个RSU 仅与其覆盖范围内的车辆通信。一旦已认证过车辆进入RSU 的通信范围,RSU 就向车辆广播基于位置消息[8]。
由于采用专程短距离DSRC 技术,车辆只能与通信范围内的车辆或者RSU 通信。与RSU 通信前,RSU 需对车辆进行认证。同时,车辆也会对RSU 进行认证。当它们彼此认证过后,就建立会话密钥。
令G1、G2和GT分别价数为q的乘法循环群。令g1和g2分别表示G1和G2的原根,且g1∈G1,g2∈G2。令ψ表示从G2至G1的同构,致使ψ(g2)=g1。令e为线性对,致使e:G1×G2→GT,且具以下性质[9]:
1)双线性:对于任意a,b∈Zq*, ,且g1∈G1,g2∈G2,其中,Zq*=[1,2,…,q-1];
3)可计算性:双线性对e:G1×G2→GT和ψ都是可计算。
ABKS 算法主要由系统初始化、车辆注册,RSU注册,匿名相互认证,匿名会话密钥的建立,批量认证和消息完整性保护共7个阶段构成。
TA 先选择一个主密钥s∈Zq*,然后,选择两个单Hash 函数H(·)和F(·),它们输出编码的长度固定,且分别为ℓ1和ℓ2,ℓ1=2ℓ2。TA 再从Zq*中随机选择一个数α∈Zq*,并将此数作为它的私钥,并利用该数计算它的公钥。最后,TA计算Z=e(g1,g2),再形成系统参数:(G1,G2,H,F,e,q,g1,g2,PKTA)。
Step 1 为了保证在车辆(假定为车辆ℑi)注册阶段的安全性,车辆ℑi先以离线方式直接向TA 传输它的名字、电话号码以及地址。随后TA 为车辆ℑi计算它的公钥PKℑi:
Step 2 TA为车辆ℑi计算数字签名:
Step 5 TA给车辆ℑi计算重加密密钥。
TA 也以离线方式向车辆ℑi直接提供这些参数,如图2所示。
图2 车辆向TA注册Fig.2 Vehicles are registered in TA
一旦RSU(假定为Rk)被部署后,Rk就需向TA 进行注册。为此,TA先计算公钥PKRk:
TA为Rk计算批量编码:
任何一对通信实体在通信前需进行相互认证。首先分析RSU 对车辆的认证。若车辆ℑi需要从RSURk获取位置服务,RSURk就需要对车辆ℑi进行认证。认证过程如下:
Step 1 车辆ℑi先计算,再将传输至Rk。
接下来,分析车辆ℑi对RSURk的认证过程。类似地,RSURk先计算,再将传输至车辆ℑi。
一旦RSURk与车辆ℑi通过了相互认证,就准备建立会话密钥,为后续的通信做准备。建立匿名会话密钥的主要流程如图3所示。
图3 建立匿名会话密钥的主要流程Fig.3 Main process of establishing anonymous session key
车辆ℑi先计算以下参数:
式中,表示选择的随机数。
满足式(11)的验证,车辆ℑi就将Sk作为与RSURk的会话密钥。
如果有n个车辆同时向RSU 获取位置服务,RSU 就需要认证n个车辆。为此,采用批量认证协议降低认证负担。
具体而言,假定RSURk需要认证n辆车。为此,RSURk就先获取这n辆车的和信息。然后,再验证是否满足式(12):
如果满足式(12),则认为这n辆车为合法车辆。
为了防止消息被篡改,对消息内容进行认证,进而保证消息的完整性。为此,消息的发送者对它所发送的消息进行签名,并将签名附加在消息内。
先计算数字签名:
令M表示车辆ℑi的要传输的消息。车辆ℑi就向接收端发送{M,FIDℑ,sig,Ti,},其中,Ti表示时间戳。利用时间戳Ti,可以防止重放攻击。一旦接收了{M,FIDℑ,sig,Ti,},接收车辆就验证:
一旦验证通过,此消息M就被接收了。
3.1.1 中间人攻击
在ABKS 算法中,如果一个攻击者即使从车辆捕获了认证消息,该攻击者也不可能修改认证书。原因在于:RSU对进行认证,未通过认证的通信实体不可能通信。
一旦无法满足,车辆就无法通过RSU 的认证。在这种情况,车辆就无法与RSU进行通信。
3.1.2 伪装攻击
3.1.3 重放攻击
攻击者试着拦截有效会话密钥(S=Sk,T1,F(Sk,T1)),并重新发送至车辆。然而,如果时间戳T1过期,车辆不可能接收由攻击者发送的消息。即使攻击者产生新的时间戳,它也不可能篡改相应的Hash参数F(Sk,T1),因此,车辆会拒绝由攻击者发起的重放攻击。
在Windows 7 操作系统、8 GB 内存,core i7 CPU的PC 上进行实验。为了更好地分析ABKS 协议的性能,选择文献[10-13]作为参照,分析它们算法的运行时间和通信成本。
3.2.1 消息处理时延
假定一个RSU 的覆盖区域有100 辆车。依据DSRC 标准,每辆车每300 ms 产生一条安全相关的消息。消息处理时延等于将消息成功传输至RSU所需的时间与RSU 验证消息所需时间之和。利用式(15)计算各算法的消息处理的平均时延:
式中,Mi表示车辆ℑi传输的消息数;N表示车辆数;表示车辆ℑi将第m条消息成功传输至RSU所消耗的时间;TRSU-V-m表示RSU 验证这条消息所消耗的时间。
下页图4给出ABKS算法和其他参照协议的处理消息的平均时延。相比其他参照算法,ABKS协议降低了平均时延。例如,当车辆数为100 时(N=100),ABKS 协议的平均处理时间约0.004 8 ms。而PAPR协议、PMAS 协议、SAEA 协议和BVCA 协议的平均处 理 时 间 达 到0.008 ms、0.009 ms、0.008 5 ms 和0.005 5 ms。
图4 处理消息的平均时延Fig.4 Average time delay for processing messages
3.2.2 通信成本
在ABKS 协议中,一旦车辆进入新的RSU 覆盖区域,车辆就需要向RSU 传输,才能获取RSU的认证。类似地,RSU也需向车辆传输。相互认证后,它们需要建立会话密钥。上述操作过程,均产生了通信成本。
表1 给出了ABKS 协议和其他参照算法的通信成本。从表1可知,提出的ABKS协议的通信成本较大,高于PAPR 协议和PMAS 协议的成本。原因在于:为了增加通信的安全性,ABKS 协议对通信实体进行相互认证,并且构建会话的专用密钥。这些操作均提高了通信成本。
表1 通信成本Table 1 Communication cost
3.2.3 计算复杂度
分析ABKS 协议和其他参照算法的计算的复杂度。表2 给出匿名认证的计算复杂度,其中,n表示车辆数;Tp表示执行双线性配对操作所需的时间;Th表示执行Hash 函数操作所需的时间;Ta表示执行点加法操作所需的时间;Tm表示执行点乘法操作所需的时间。从表2 可知,相比于PAPR 协议,PMAS 协议、SAEA协议和BVCA协议,ABKS协议有效地降低了计算复杂度。例如,BVCA 协议的计算复杂度为nTh+4nTp,而ABKS协议的计算复杂度为nTp。
表2 计算复杂度Table 2 Computation complexity
图5 给出ABKS 协议和其他参照协议的完成认证操作的时间。提出的ABKS 算法有效地降低了认证操作的复杂度。例如,当车辆数为100 辆时,ABKS 协议的认证时间为约160 ms。而PAPR 协议、PMAS 协议、SAEA 协议和BVCA 协议的认证时间分别为500 ms、980 ms、580 ms和385 ms。
图5 认证时延随车辆数的变化情况Fig.5 Changes of authentication time delay with different number of vehicles
针对车联网的信息安全问题,提出一个有效的相互认证协议。通过相互认证,车辆或者RSU 能够认证即将要与自己通信的实体,进而防御伪装攻击,阻止恶意车辆篡改消息。采用批量认证协议,使RSU 端能够同时认证多个车辆,降低RSU 的认证负担。性能分析表明,提出的ABKS 协议可有效地防御多类攻击,并降低了协议的计算复杂度。