6.2.3.1 车辆组模式
VANET的一个独有的特征是行驶在高速公路上的车辆与相邻的车辆保持着临时稳定的相对距离,由于通信通常是在250~1000m范围内[21],根据车辆的行驶速度、道路和天气的情况,车辆之间的通信联系可维持几秒钟到几分钟或更长的时间,本书利用这一属性,根据车辆的物理位置对它们进行编组,对于给定的车辆O1,在其单跳通信范围内的所有其他车辆被定义在同一组O1中,该组的关系是动态的,当其他车辆进入通信范围或任何组成员离开该组时,组的关系需要被更新,大部分组成员在相当长的时间内保持稳定。
6.2.3.2 TSVC方案
假设所有的车辆在车辆登记阶段或年度检查时都已经安装了一组匿名公私密钥对<PKi,SKi>,其中匿名证书使用伪身份标识PVIDi作为证书标识[22],为了实现可追溯,车辆登记机关需要保存这些匿名证书及其对应的真实身份。每对密钥的生命周期较短,例如几分钟,每辆车需要从一个随机种子S生成一个散列链h1,h2,...,hn,其中hn=S,hi=Hj-i(hj),并且i<j。散列链中的每个元素作为加密密钥负责为若干个消息生成相应的MAC码,并且在一个短的延迟δ后发布该密钥,δ被称为密钥发布延迟。在不失一般性的情况下,本方案假设每个加密密钥作用于消息的数量为1,因此每个散列元素将为一个消息生成一个MAC码。另外,假设TESLA协议中的时间间隔为包发布间隔,这意味着,每个数据包及其相应的密钥发布包是在一个时间间隔内生成的。
散列链的长度可以根据每个匿名证书的有效期和消息发送的间隔预先确定。一旦匿名公共密钥对被更新,则需要初始化一个新的散列链并开始使用。实际上所有的散列链都可以在使用之前被预先初始化,以降低系统操作的延迟。用M1,M2,…,MK表示由车辆发送的常规安全消息,并且Mi被封装在数据包Pi中,1≤i≤k。此外,报文以300ms的固定间隔发送。数据包验证过程如图6-3所示。

图6-3 散列链和相应数据包之间的关系
发送的包可分为两类,第一类称为数据包,用Pi表示,该类数据包专门用于发送数据信息;第二类称为密钥发布包(KRP),用KrPi表示,专门用于发布加密密钥hi。这样的设计是为了减少数据包的端到端延迟,因为两个交通安全数据包之间的间隔通常长于所容许的人的最大反应延迟。在前一个数据包发布之后,经过一个固定的时间δ,KRP将被发布。
图6-4显示了TSVC方案,对于任意发送方O,它使用Hj作为加密密钥生成消息的MAC标签,其中1≤hj≤n。要发送的数据包具有以下格式:
Pj=〈PVID,Mj,MAChj(Mj‖Tj),Tj,index〉,j≥1(6.1)

图6-4 建议的安全方案
其中Mj是安全消息,PVID为车辆O的假名ID,与当前使用的公钥证书CertO的ID保持一致,Tj是发送方发送数据包的时间,该时间被用来防止重放攻击。
然后发送方O准备第一个密钥发布包(KRP),并利用传统的基于公钥的签名技术对散列链h1的commitment进行签名。第一个密钥发布包具有如下格式:

式中h1是密钥,该密钥用于生成第一个消息M1的MAC标签;CertO是当前使用的匿名公共密钥证书;SKO是对应于CertO的私钥;T′1是发送方发送第一个密钥发布包的时间;index表示当O发布该包时当前散列值在散列链中的索引,即1为第一个密钥发布包的索引。需要指出的是,KRP是在之前的数据包发布δ秒后发布的。密钥发布包的格式如下:
(https://www.xing528.com)
式中,hj被用来生成消息Mj的MAC标签。接收方接收到第一个数据包后只是简单地把所接收的包缓存起来,并等待第一个密钥发布包的到达。接收方收到由消息源签名的第一个密钥发布包后,并验证了发送方的匿名证书CertO后执行以下验证:

式中,密钥k是包含在第一密钥发布包中的h1。
因此,对于车辆O的相邻车辆来说,为了认证来自于O的数据包,接收到第一个密钥发布包是非常关键的,可以通过使用某种移动可靠广播协议[23],或者是将这些错过第一个密钥发布包的车辆作为新加入的组成员的方法来实现,具体方法将在第6.2.5.3小节中讨论。
接收方随后存储诸如PVID和T1等信息,以便与同一消息源发送的后续包同步。如果验证失败,则丢弃该包。否则,每个接收方在其本地缓存表(表6-1)中保留一个对应于发送方O的条目(packet#,source,c,T,Lifetime),其中存储数据包索引,即1至字段packet#,PVID至字段source,认证过的散列链元素h1至字段c,发送方发送数据包的时间T1至T。Lifetime是一个用以控制条目有效期的计时器。如果计时器变为0,则条目过期,并将其从接收方的缓存表中删除。每当一个新的从数据源发来的数据包到达时,接收方将更新该表中相应条目的定时器。
表6-1 接收方的缓存表

当接收数据包Pj,j>1时,接收方只是简单地把接收到的数据包放到缓存中,但并不尝试验证它。一旦下一个密钥发布包krPj到达时,接收方将开始验证之前接收到的数据包。首先,接收方通过检查下式是否成立来检查收到的散列链元素的合法性:

其中hj包含在密钥发布包krPj中,而c和pcket#则来自于存储在本地缓存表中对应于PVID的条目中。如果式(6.5)不成立,则丢弃krPj包;否则,通过以下公式检查是否应该在当前传输时间间隔内释放接收到的hj:
(Tj′-T-δ)-((j-packet#)×d)<∈(6.6)式中,T′j是发送方发送密钥发布包的时间;d是包发布间隔;δ是密钥发布延迟;T是来自于本地缓存表中对应于PVID的表项;∈是时钟误差(偏移)。如果式(6.6)不成立,表示对手尝试使用一个已经发布了密钥伪造消息,因此该数据包是不安全的,并将其丢弃,否则接收方开始通过检查MACk(Mj‖Tj)=MAChj(Mj‖Tj)是否成立来验证数据包Pj,其中Mj、Tj和MAChj(Mj‖Tj)是先前缓存的数据包中的值,k是krPj中的散列元素hj。如果验证成功,接受Pj并交给应用层使用,然后,接收方利用索引、hj和Tj修改对应于PVID表项中的第一、第三和第四字段,并利用一个新的计时器更新最后一个字段,否则丢弃Pj。
通过上述分析可以看出,该方案在消息的完整性、匿名性和认证性上可以实现与基于传统的PKI方案同样的安全性,相关分析将在6.3节中详述。该方案提供了针对公众的匿名性,但是在需要的情况下可以为权威机关(如警察)提供可追溯性,因为所有被接收的消息都唯一地与发送方的匿名公钥证书相关联,通过检查这个唯一的公钥证书,权威机关可以像在传统的基于PKI的方案中那样跟踪消息发送方的真实身份。
6.2.3.3 安全需求和密钥公布延迟δ
在TSVC方案中,防止消息伪造攻击的安全需求是密钥发布的等待时间应当比消息从发送方到达所有接收方的时间长,如果任何接收方r能够在原始数据包到达另一个接收方r之前接收到发布的密钥,则接收到密钥的r能够通过生成一个有效的MAC码伪造一个消息,并将该消息发送至r,而这个伪造的消息可以通过r的验证,这种情况可以通过选择合适的密钥公布延迟δ来避免。在符合IEEE802.11p的车辆通信中,最长的传输范围约是1000m[21],因此δ应该比消息在无线信道中传输1000m的时间稍长,据此通信延迟被确定约为10ms[17]。在本章的方案中δ被设置为100ms,大约是实现绝对安全通信延迟的10倍,同时也能满足最大允许延迟需求,此参数设置将通过6.4节中的仿真得到验证。
在执行正常的消息认证处理之前,接收方需要检查消息的有效性,以确定其是否满足相关的安全需求,这意味着接收方必须知道数据包属于哪个间隔,以及相应的密钥是否已经被释放。如果不能满足相关的需求,则不需要验证该数据包,并直接丢弃。需要注意的是,由于VANET中实时应用对时间的严格要求,应丢弃延迟或过时的消息,因此如果消息在所允许的最大延迟时间(例如人类最大反应时间)后到达,应直接丢弃该消息,而不需要将其放入缓存中。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。
