基于公交车缓存的车联网位置隐私保护方案
2021-08-16崔杰陈学峰张静魏璐仲红
崔杰,陈学峰,张静,魏璐,仲红
(1.安徽大学计算机科学与技术学院,安徽 合肥 230601;2.安徽省物联网安全技术工程实验室,安徽 合肥 230601;3.安徽大学物质科学与信息技术研究院,安徽 合肥 230601)
1 引言
作为传统车载自组织网络(VANET,vehicular ad-hoc network)的超集,车联网(IoV,Internet of vehicles)是5G 网络的重要应用之一[1]。IoV 是一种集成和开放的网络系统[2],除了包含异构网络、用户以及车辆以外,还包括车辆持续感知、计算和存储能力。不同类型的车辆使用统一的通信协议与相邻车辆或基础设施进行无线通信。目前,有2 种无线通信协议在IoV 中被广泛使用,分别是专用短程频谱协议(DSRC,dedicated short-range spectrum)和蜂窝车辆对一切协议(C-V2X,cellular vehicle-to-everything)[3]。这2 种协议都支持车辆对一切(V2X,vehicle-to-everything)通信,包括车辆对车辆、车辆对行人和车辆对基础设施通信[4]。
通过区分数据在各个实体之间流动的方向,可将IoV 中的应用程序分成2 类,分别为安全应用和娱乐应用[5]。安全应用根据道路信息及时做出响应,例如碰撞检测、行人避让等。娱乐应用则是为了提高车辆行驶时的用户体验,常见的娱乐应用有导航、音乐和视频等。基于位置服务(LBS,location-based service)的应用作为重要的娱乐应用之一,被广泛应用于IoV 中。
在LBS 中,私家车首先向LBS 提供商(LBSP,location-based service provider)发送查询请求消息,其中包含车辆当前位置和能够反映车辆兴趣的查询关键字。然后,LBSP 返回基于关键字的响应消息,其中包含与车辆位置及查询关键字相关的POI(point of interest)(例如餐馆、加油站、停车场等)的信息。正如硬币有正反两面一样,虽然LBS 给用户带来了很多的好处和便利,但是也出现了很多重要的安全和隐私问题。例如,当车辆的请求数据(如位置数据)被泄露时,敌手可以重建其行车轨迹并推断出车辆用户的隐私信息,如家庭地址、工作单位以及健康状况等。这些隐私信息的泄露可能会导致发生危害用户人身安全的行为[6]。因此,LBS 中的位置隐私保护得到了学者的关注[7-8]。
近年来,为了解决上述问题,学者先后提出了许多方案[9-11]。其中,基于缓存策略的方案相对容易实现。它的主要思想是使用缓存来减少LBSP 获取私家车的真实位置的次数,从而降低位置隐私泄露的可能性。在某些方案中[6,11],使用路边单元(RSU,road side unit)为其覆盖范围内的车辆提供POI 缓存数据。然而,在IoV 中大规模部署RSU 的费用高昂,还可能发生物理攻击RSU 的情况,造成额外的损失[12-13]。而公交车具有相对固定的移动轨迹以及移动模式,可以用来作为POI 数据的缓存节点。因此,本文使用公交车作为对POI 数据进行缓存、广播以及更新的边缘节点,相比于大规模部署RSU,使用公交车在成本上更具有竞争力,并且可以更广泛地分布在IoV 中。
综上所述,本文主要的创新点可以总结为以下3 个方面。
1) 本文提出了一种安全的基于广播的位置隐私保护方案,在该方案中,公交车充当边缘节点,周期性地从LBSP 中预先获取大量的POI 数据,在其中挑选部分数据并将其广播给私家车。
2) 当发生缓存未命中时,车辆可以使用k-匿名技术向LBSP 发送包含其真实位置的查询,以确保为车辆提供更好的服务。本文在用户体验和位置隐私之间取得了一个较好的平衡。
3) 针对缓存失效问题,本文提出了一种基于主动推送的缓存数据更新算法,该算法可减少LBSP网络流量并更好地保护车辆位置的隐私。仿真实验结果表明,本文提出的方案具有较低的网络开销和计算开销。
2 相关工作
随着IoV 的普及,车辆位置隐私问题引起了许多学者的关注。目前,针对LBS 的位置隐私保护方案主要可分为以下3 类。
1) 基于密码学的方案。此类方案可以提供可证明的安全性和隐私性。Yi 等[14]提出了一种基于差分隐私的位置隐私保护方案,该方案使用Paillier 同态加密技术以实现地理不可区分性的s-差分位置隐私。Paulet 等[15]提出了一种最近邻搜索方案,该方案使用茫然传输(OT,oblivious transfer)和私有信息检索(PIR,private information retrieval)等密码学技术在不损害位置隐私的情况下向LBSP 查询POI信息。然而,使用重量级密码学技术来提供可证明的位置隐私保护的开销过大。因此,此类方案不适合资源受限的移动设备。
2) 基于混淆的方案。Beresford 等[16]提出了混合区域的概念,将混淆的思想引入位置隐私保护中。它通过不断改变用户在这个区域内的假名来保护用户的位置隐私。然而,混合区域对区域内的用户数量有严格的要求,导致在实际环境下中很难实现这个方法。k-匿名作为混合区域的补充方法被提出,其前提条件是用户的真实位置不能与其他k−1 个虚拟位置区分。为实现k-匿名,Gruteser 等[17]引入了一个第三方可信实体(通常被称为匿名服务器[10,18]),该方案通过在私家车的查询请求被发送到LBSP 之前,混淆请求内的位置信息,从而保护用户的位置隐私。然而,匿名服务器很容易被黑客攻击,造成单点故障,从而降低用户服务质量。为了解决这一问题,Chow 等[19]提出了一种方案,每个用户首先与其他k−1 个用户合作,形成一个没有第三方可信实体的群,然后利用群里其他成员的位置作为虚拟位置实现k-匿名。Cui 等[20]提出了一种位置隐私保护方案,车辆根据周围车辆的状态动态生成虚拟位置,并将混淆后的位置数据发送给LBSP。然而基于混淆的方案往往会忽略敌手拥有的背景知识(如道路拓扑、查询概率、移动模式)[21]。因此,敌手可以很容易地使用基于机器学习的算法[22]从私家车提交的k个位置中过滤一些没有被精心设计的,甚至是随机生成的虚拟位置,从而降低 k-匿名方案的隐私保护程度。
3) 基于缓存方法的方案。近年来,一些学者还提出了基于缓存的方案,为用户提供位置隐私保护。在此类方案中,用户可以在本地缓存中检索所需的内容,而不需要向LBSP 发送查询。Amini 等[23]提出了一种隐私保护方案,通过在用户到达特定区域之前,预先下载该区域内的所有POI 数据来保护用户的位置隐私。然而,该方案要求用户具有特定的移动轨迹且用户的移动设备上具有很大的存储空间。Shokri 等[24]提出了一种被称作MobiCrowd 的方案。在移动用户从LBSP 请求所需的POI 数据之前,首先向邻居用户请求POI 数据,以减少真实位置泄露的可能性。然而,该方案没有考虑邻居是恶意用户的情况。Niu 等[25]提出了2 种虚拟位置生成算法来保护用户位置隐私,但该算法需要群内用户之间进行协作。Peng等[26]提出了一种通过移动用户之间的协作缓存来保证连续位置隐私的方案。Zhang 等[27]提出了一种通过缓存和均匀网格来增强位置隐私的方案,该方案可以避免不同的用户在同一区域中发送相同查询。Liu 等[11]和Hu 等[6]提出使用主动缓存在车联网中对车辆的位置隐私进行保护,然而它们都依赖于RSU。
3 问题描述
本节将简要介绍本文所需的预备知识、系统模型、威胁模型以及安全性目标。表1 中列出了本文所使用的符号和描述。
表1 本文所使用的符号和描述
3.1 椭圆曲线密码体制
下面,简要介绍椭圆曲线密码体制(ECC,elliptic curve cryptosystem)的基本知识和3 个相关的性质[28]。
Fp是一个有限域,它是由一个大质数p所决定的。在Fp上有一个椭圆曲线E:y2=x3+ax+b(modp),其中a,b∈Fp且 (4a3+27b2)modp≠ 0。设有无穷远点O,椭圆曲线E上所有的点和O共同组成一个阶为大质数q、生成元为P的加法椭圆曲线群G,其具有以下性质和困难性假设。
加法运算。设P和Q是群G上的2 个点,如果P≠Q,可得R=P+Q,其中R是曲线E与一条连接P、Q直线的交点;如果P=Q,可得R=2P;如果P=−Q,可得P+Q=O。
标量点乘运算。设P∈G,m∈,则E上的点乘被定义为m⋅P=P+P+…+P(m个P)。
椭圆曲线离散对数问题(ECDLP,elliptic curve discrete logarithm problem)。该问题是椭圆曲线密码体制中的一个困难问题,即对于在椭圆曲线E上给定的任意2 个点P,Q∈G,其中Q=xP,x∈,在多项式时间内计算出x的值是困难的。
3.2 系统模型
IoV 系统模型如图1 所示,主要包含4 种实体,即可信中心(TA,trusted authority)、LBSP、基站以及车辆。
图1 IoV 系统模型
在本文中,每种实体的主要功能和前提假设介绍如下。
1) TA。该实体由交通管理部门负责管理,通常可被视为是完全可信的。TA 具有强大的计算能力和足够的存储容量且配备防篡改设备(TPD,tamper proof device),可以利用足够的资源来防御各种网络攻击以及物理攻击。TA 还负责为所有实体分配公私钥对。
2) LBSP。该实体负责响应来自公交车或私家车的请求,并将最新的POI 数据主动推送给公交车。它根据车辆发送的位置信息和关键字返回相应的POI 数据,例如车辆可以向LBSP 获取离车辆最近的加油站的相关信息。
3) 基站。该实体属于公共基础设施,通常由运营商负责部署和维护,它仅负责为车辆提供蜂窝网络接入[29]。因为它不进行任何加解密计算,所以即使被攻击,它也不会泄露任何有价值的信息。正在广泛普及的5G 技术可以为车辆提供足够的带宽和超低的时延。
4) 车辆。车辆内置车载单元(OBU,onboard unit),OBU 的计算和存储能力有限。车辆还配备多个传感器、TPD 以及通信模块。车辆通常使用C-V2X或DSRC协议与其他基础设施或者车辆进行通信。在本文中,车辆分为2 种:私家车和公交车。与私家车相比,公交车的OBU 具有更加强大的计算能力和更充足的存储空间。私家车在道路上的行驶模式通常不可预测,公交车具有相对固定的行驶轨迹和发车间隔且所有用户都可以提前获知。车辆在首次登记或者年审时都会从TA 获取一个最新的真实身份RID 以及密码PWD。
3.3 威胁模型
本文使用全局敌手(GA,global adversary)模型作为威胁模型[30]。GA 不仅可以通过窃听消息来追踪特定区域中的目标车辆,还可以篡改消息中的内容。GA 的主要目的是通过跟踪目标车辆的真实位置和行驶轨迹来获取车主的敏感数据以及生活方式。敌手可以通过攻击LBSP 和公交车来获取用户隐私数据,因此LBSP 和公交车通常被认为是半可信的,即它们会执行相应的功能,但是可能泄露其中的数据。本文仅考虑基于有线和无线通信的攻击[31],不考虑基于计算机视觉的攻击,比如车辆重识别追踪。
3.4 安全性目标
安全性是本文方案的基本属性,必要的安全性目标如下。
1) 消息完整性。为了抵抗女巫攻击,车辆和其他实体需要验证彼此的身份。此外,参与实体之间交换的消息应得到完整性保护。
2) 匿名性。私家车使用假名与除TA 以外的其他实体进行通信。
3) 不可链接性。任何第三方都不能将窃听到的消息链接到同一辆车上。
4) 可追溯性。当发生交通事故时,TA 有权通过消息中的假名揭露相关车辆的真实身份。
5) 抗攻击性。本文不仅可以抵抗女巫攻击,还可以抵抗其他常见的网络攻击,例如中间人攻击和重放攻击。
4 基于公交车缓存的位置隐私保护方案
4.1 概述
本文旨在设计一种安全有效的位置隐私保护方案应用于IoV 中。其基本思想是使用公交车作为特殊的缓存节点来缓存POI 数据,并在公交车行驶过程中将它们广播给周围的私家车。私家车通过接收来自公交车的广播,可以在没有LBSP 的情况下获得其所需的POI 数据,从而减少私家车泄露其真实位置的次数,降低敌手获取私家车真实位置的可能性。
本文方案的数据流[32]如图2 所示,其中,阴影矩形表示POI 数据(不同灰度的阴影表示不同内容的POI 数据),白色矩形表示查询请求。LBSP 首先根据公交车的线路信息将其沿路所经过的POI 数据预先发送给公交车,公交车在行驶过程中再根据其当前位置选择部分POI 数据广播给私家车,私家车接收广播的数据并存储到本地缓存中。若私家车在本地缓存中没有检索到想要的POI 数据,则通过k-匿名的方式向LBSP 发送查询请求,LBSP 根据查询请求返回相应的数据。
图2 本文方案的数据流
4.2 初始化阶段
1) TA 预先为所有车辆分配公私钥对,且已经预装在所有车辆的TPD 中。TA 选择一个随机数skTA∈作为TA 的一个私钥并且计算出它所对应的公钥 PKTA=skTAP。TA 再选择2 个哈希函数H1:G→Zq和H2:{0,1}*→Zq。最后TA 将系统安全参数ψ= {p,q,PKTA,P,H1,H2}发送给全体车辆。
3) 当TA 收到公交车发送的密文A后,首先使用其私钥skTA对A进行解密,并核对BUSi的RID和PWD,核对成功后使用BUSi的公钥验证签名σA。如果验证通过,则TA 生成一个随机数ri,作为TA 与BUSi之间共享的秘密参数,并计算出公交车的临时公钥TPKi=ri⊕ RID用于之后广播消息。然后,TA 生成一个随机数xi,留作后续步骤使用。最后,TA 将这些参数(TPKi,ri,xi)存储到本地,并且发送密文(TPKi,(TPKi,xi))给公交车。
4) 当私家车PVj首次进入公交车BUSi的广播范围时,首先向公交车获取其临时公钥TPKi,然后连同私家车的RID 和PWD 一起使用生成签名σC=ECDSA(RID,PWD,TPKi),再使用PKTA加密它们生成密文C=ECIES(RID,PWD,σC),并通过公交车将密文C发送给TA。
5) 当TA 收到密文C后,首先使用自己的私钥skTA对C进行解密,并检查私家车PVj的RID 和PWD 是否正确,检查无误后使用PVj的公钥验证签名σC。如果能够验证通过,TA 则能够使用TPKi在本地存储中检索到参数xi,作为公交车BUSi与PVj之间共享的秘密参数。然后,TA 发送密文给公交车,让其转发给私家车。
6) 当公交车收到密文B和D之后,使用私钥解密B,得到临时公钥TPKi和秘密参数xi。公交车验证签名(TPKi,xi)成功以后,计算出秘密参数ri=TPKi⊕ RID,将密文D转发给私家车PVj。
7) 私家车收到来自公交车转发的密文D后,使用私钥解密D,然后使用PKTA验证其中的签名,验证通过以后能够得到公交车的临时公钥TPKi和共享的秘密参数xi。
4.3 公交车广播阶段
公交车首先从LBSP 获取POI 池,并将它们存储在公交车的OBU 中。随后,公交车在行驶过程中,基于其当前位置从POI 池中挑选一些附近的POI 数据以生成POI 列表,并将它们广播给周围的私家车,具体步骤介绍如下。
1) 获取POI 池。为了最大限度地利用缓存的POI 数据,应该选择私家车经常访问的POI 数据进行缓存和广播。私家车在接收公交车广播的消息之前,需要对公交车的身份进行认证。为了找到这些流行的POI 数据,本文假设LBSP 具有城市中所有POI 的历史被查询数据,其中不包含任何隐私数据。
公交车在发车前,首先向LBSP 发送一个请求消息以获取POI 池,其格式为{PID,routeid},其中,PID 表示公交车的假名身份;id 表示公交车的线路编号,即第id 路公交车;routeid表示公交车的线路信息,即第id 路公交车的轨迹信息。
LBSP 根据公交车线路周围POI 的流行程度以及其他背景知识生成POI 池,然后向公交车发送一个响应消息,其格式为 {PID,PPid,T},其中,表示第k个POI 的地理位置,分别表示POI的名称和类别,包括与POI 相关的信息,例如POI 的地址以及额外数据。LBSP 在生成POI 池后,会将其存储起来并且定期更新其中的数据,以便能够直接响应来自同一条线路不同RID 的公交车发送的请求。
2) 生成POI 列表。为降低广播时的数据分组丢失率,公交车需要从POI 池中选择部分POI 数据,生成适合广播的POI 列表。公交线路被车站所分隔,每个车站之间的距离大致相同。当公交车停靠在第m站时,从POI 池中选择第m站到第m+1站之间公交车线路附近的POI 生成POI列表。由于需要本地检索和缓存更新,公交车广播的POI 列表格式可以定义为 {PID,PLid,σ,T},其中,PLid表示第id 路公交车广播的POI 列表,其格式与PP 的相同,包含POI 的位置信息以及与POI相关的数据信息。
3) 广播POI 列表。公交车在道路上行驶时,使用算法1 周期性地广播其生成的POI 列表。假设公交车以间隔Tgap广播POI 列表,通常设置为8~10 s。
算法1POI 列表广播算法
4.4 基于主动推送的缓存更新阶段
随着交通流的变化,不同的POI 流行程度也随之变化,因此LBSP 需要及时更新公交车中的POI池缓存以保持较高的缓存命中率。例如,某地新增了一个加油站,周围的车辆经常访问这个POI,一个新流行的POI 就此产生。
传统的缓存更新策略要求用户主动请求服务器以更新失效的缓存数据。如果使用这种更新策略,则需要让公交车知道私家车访问哪些POI 时发生了缓存未命中,这意味着公交车能够了解车辆的兴趣,从而根据这些信息推出车主的其他隐私信息。因此,本文设计了一种基于推送的更新算法,不需要公交车掌握车辆的缓存未命中情况,也能正常更新私家车本地缓存中无效的数据,从而更好地保护私家车的位置隐私。详细策略分为以下3 个步骤。
1) LBSP 只更新被修改过或者新增的POI 数据,以降低通信成本和存储开销。LBSP 分析私家车发送的查询请求并检查POI 的更新,执行POI 池的添加、删除和修改数据等操作。假设LBSP 以Ugap的间隔推送更新补丁,通常设置为1~3 h,这取决于在此期间POI 池 PPid中发生变化的POI 的数量。LBSP 生成补丁后,将更新补丁以消息{id,diff,T}的格式发送给公交车,其中,diff 表示增量更新补丁,其为unix-diff 格式。
2) 公交车接收来自LBSP 的缓存更新消息,并将其中的增量更新补丁合并到存储在公交车上的PPid中。POI 池中的时间戳将被更新补丁中的时间戳替换,以表示 PPid中的数据是最新的。
3) 如果私家车的本地缓存中已经存储了来自同一条线路公交车的广播数据,那么比较广播消息中的时间戳。然后从本地缓存中删除时间戳较旧的POI 列表,并存储具有较新时间戳的POI列表。
4.5 私家车接收阶段
私家车在接收到公交车的广播消息BM 后,需要对消息中的签名σ进行验证,具体步骤如下。
1) 设私家车接收到广播消息的时间戳为Tv,若BM 中时间戳为T,若TPV−T≤ΔT则消息无效,其中ΔT为系统预设的可容忍的传输时延。
2) 验证签名能否满足σP=sP+hxP,其中h=H2(BM||PID||T)。若等式成立,则说明BM有效,然后私家车提取BM中的PLid放入本地缓存中。
3) 否则,说明BM 无效,私家车丢弃BM。
若私家车想要同时验证来自多辆公交车BUS1,BUS2,…,BUSn的广播消息BM1,BM2,…,BMn,可以通过以下步骤去进行验证。
1) 验证时间戳T1,T2,…,Tn是否有效。
2) 随机选择小指数向量v={v1,v2,…,vn},vi∈ [1,2t],为了降低计算开销,t应该取一个非常小的正整数。
3) 验证签名能否满足
4) 否则,说明这批广播消息中有无效的消息,需要对BM 单独进行验证。
4.6 私家车查询阶段
在私家车使用LBS 之前,首先使用关键字在本地缓存中进行检索。如果私家车在不同的POI 列表中检索到相同的POI,则选择时间戳较新的那个POI 列表中的数据。例如私家车本地缓存中有2 个POI 列表PL1和PL2,其中都包含相同的兴趣点POIk=(Lk,nk,lk,Rk)。若私家车此时想要查询关于兴趣点k的信息,那么其会同时在PL1和PL2中检索到同一个兴趣点POIk,此时私家车会比较PL1和PL2的时间戳,然后使用时间戳较新的那个PL 中的POIk。若在本地缓存未检索到想要查询的POI 数据,则通过算法2[33]生成k−1 个虚拟位置,然后连同车辆的真实位置,一起发送给LBSP,获取POI 信息,其具体流程如图3 所示。
图3 私家车查询POI 流程
算法2虚拟位置生成算法
5 仿真实验分析
本节提出了用来评估位置隐私保护程度的性能指标,描述了本文方案所使用的仿真实验环境,并与Hu 等[6]提出的PAPT 位置隐私保护方案以及Liu 等[11]提出的LBS-CBAC 位置隐私保护方案进行了各方面的性能对比与分析。
5.1 度量指标
为了评估方案的位置隐私的能力,本文提出位置隐私保护度作为度量标准,其由匿名集的熵和缓存命中率共同决定,具体定义如下所示。
定义1匿名集的信息熵表示匿名集中真实位置和虚拟位置被正确区分的不确定性。假设在匿名集AS 中,只有一个私家车的真实位置,其余都是根据真实位置生成的虚拟位置。例如私家车使用k-匿名方式,向LBSP 发送的k个查询请求中的k个位置信息都能形成一个匿名集。设r为匿名集中的真实位置,d为匿名集中的虚拟位置,则AS 的信息熵定义为
其中,p(r,d)表示r和d被正确区分的概率。熵的值越大说明LBSP 掌握的关于车辆真实位置的信息越多,反之越少。
定义2缓存命中率表示查询缓存命中的数目占总查询数的比例。缓存命中表示私家车需要查询的POI 数据能够在本地缓存中检索到。缓存命中率具体定义为
其中,qi表示私家车需要查询的POI 请求,hi表示缓存命中的查询请求。缓存命中率越高,表示私家车向LBSP 发送的查询次数越少,则LBSP 获取私家车的真实位置的可能性就越低。
定义3位置隐私保护度表示私家车在整个行驶过程中其位置隐私被保护的程度,具体定义为
其中,H表示整个行驶过程中缓存命中率,E表示当缓存未命中时向LBSP 请求服务时的信息熵的值,Emax表示信息熵的最大值,Emin表示信息熵的最小值。根据最大熵模型可以计算出在本文方案中,Emin=0。D的值越大,则说明私家车在行驶过程中的位置隐私被保护的程度就越高。
5.2 仿真环境设置
本文方案基于Veins 4.6 环境[34]进行仿真实验,这是一种进行车联网仿真的开源框架,其基于2 种常用的模拟器:OMNeT++5.1.1 和SUMO 0.30.0。其中,OMNeT++是一种基于事件的网络仿真模拟器,支持有线和无线网络的仿真;SUMO是一种开源的道路交通模拟器,用于生成道路中的交通流数据。Veins 是连接OMNeT++和SUMO的中间件软件。仿真环境的详细参数设置如表2所示。
表2 仿真环境的详细参数设置
5.3 性能对比与分析
本节与PAPT 方案[6]和LBS-CBAC 方案[11]进行了各方面的性能对比与分析。
数据分组丢失率的具体定义为
在IoV 中,车辆在道路上行驶时为了保证行驶安全,需要向周围车辆和RSU 广播以及接收信标数据。然而,如果广播的数据分组大小过大可能会干扰正常的信标传输,因为大量的数据下载可能会长时间占用无线信道,从而导致较高的数据分组丢失率。将本文方案与 PAPT 方案[6]和LBS-CBAC 方案[11]进行了数据分组丢失率的比较,结果分别如图4 和图5 所示。
图4 不同大小的数据分组对广播性能的影响
图5 私家车不同的速度对广播性能的影响
从图4 和图5 可以看出,本文方案具有较低的数据分组丢失率,不会对IoV 造成显著干扰。本文方案具有较低的数据分组丢失率的原因是本文方案中私家车直接从附近的公交车上获取POI 数据;而公交车和同向行驶的私家车相对距离较短,相对速度较小,所以公交车与私家车之间的传输环境比RSU 与私家车之间的传输环境更好。相比于车速变化带来的影响,广播数据分组大小的变化对数据分组丢失率的影响更显著。这是因为车辆接收较大的数据分组时需要较长时间占用的CCH信道,从而导致车辆需要竞争使用该信道,造成数据分组丢失率的增加。
图6 给出了3 种方案中不同的缓存文件大小对位置隐私保护度的影响。从图6 可以看出,当缓存文件很小时,3 种方案的位置隐私保护度都比较低,这是因为缓存文件很小时,缓存文件中无法容纳所有的热门POI 数据,导致私家车需要频繁地向LBSP 获取POI 数据,从而暴露了私家车的真实位置。缓存文件越大,私家车就可以从缓存中检索到越多的热门POI 数据,减少了其直接向LBSP 获取POI 数据的次数,从而降低了私家车真实位置被泄露的可能性。随着缓存文件不断增大,它所带来的边际收益也在不断降低。因此,一个合适的缓存文件大小可以让本文方案在位置隐私保护度和广播性能之间寻找到一个较合适的平衡点。
图6 不同缓存文件的大小对位置隐私保护度的影响
不同的缓存命中率对位置隐私保护度的影响如图7 所示。从图7 可以看出,随着缓存命中率的增加,3 种方案的位置隐私保护度都会相应提高。因为缓存命中率越高,私家车直接向LBSP发送查询请求的可能性就越低。如果私家车能在缓存中检索到所有想要查询的POI 数据,那么这3 种方案都可以完全保护私家车的位置隐私,这是因为在整个行驶过程中,私家车没有将真实位置发送给LBSP。然而,在实际生活中,这种情况几乎不可能发生。
从图 7 还可以看出,与 PAPT 方案和LBS-CBAC 方案相比,本文方案在缓存命中率较低的情况下,依旧可以为用户提供较高的位置隐私保护能力。这是因为当出现缓存未命中时,PAPT 方案通过RSU 转发包含私家车真实位置的查询请求,LBS-CBAC 方案则是私家车直接将自己的真实位置发送给LBSP 进行POI 查询。而本文方案则首先使用k-匿名技术处理私家车的发送查询请求,在查询请求中加入噪声数据,从而实现对位置信息的混淆,然后向LBSP 发送查询请求。在本文方案中,LBSP 从单次查询中推断出私家车真实位置的概率理论上仅为 1/k,远小于PAPT 方案和LBS-CBAC 方案。
图7 不同的缓存命中率对位置隐私保护度的影响
不同POI 数量对缓存更新文件大小的影响如图8所示。从图8 可以看出,当有大量的POI 数据发生变化时,与PAPT 方案和LBS-CBAC 方案相比,本文方案可以显著降低缓存更新所需的网络开销。这就意味着,本文方案可以高效地进行缓存更新,降低了缓存更新对IoV 的影响。
图8 不同POI 数量对缓存更新文件大小的影响
6 安全性分析
基于本文提出的消息认证过程和困难假设,本节进行了安全性分析,以表明本文方案可以完成本文提出的安全性目标。
1) 消息完整性。由于ECDLP 难以在常数项时间内被解决以及单向哈希具有不可逆的特性,在随机预言模型下,敌手在自适应选择消息攻击中无法生成代表车辆的合法签名。因此,本文方案可以实现签名的不可伪造性。车辆可以对所发送的消息进行签名,从而保证了消息的完整性。
2) 匿名性。因为车联网中的广播信道是公开的,可以被敌手监听,所以车辆在和其他车辆进行通信时,使用假名身份以对车辆的真实身份进行保护。在初始化阶段,TA 与车辆共享秘密参数,车辆随后将这些参数存入TPD 中。在行驶过程中,定期从TPD 中取出秘密参数,生成假名。
3) 不可链接性。因为假名身份是由安全的单向哈希函数H生成的,所以敌手不能确定2 个不同的假名身份是否源自同一车辆。
4) 可追溯性。TA 可以对车辆真实身份连接其他参数进行哈希,检查是否和假名身份相称,从而实现对车辆身份的可追溯性。
5) 抗攻击性。将主密钥和其他安全参数放入不会被攻破的TPD 中,可以抵抗物理攻击;使用消息认证,可以抵抗女巫攻击;使用时间戳,可以抵抗重放攻击;使用消息签名,可以抵抗中间人攻击。
7 结束语
本文提出了一种车联网中基于公交车缓存的位置隐私保护方案。在该方案中,公交车负责进行缓存管理与广播,即公交车首先根据其线路信息向LBSP 发送请求以获取POI 池,然后在行驶过程中,周期性地根据其当前位置从POI 池中挑选部分POI数据形成POI 列表,广播给周围的私家车。私家车在接收到广播消息后,对消息进行认证,认证通过后将POI 列表存储到车辆的本地缓存中。当私家车需要查询POI 信息时,首先在本地缓存中进行检索,若在缓存中没有检索到相应的POI 信息,则通过k-匿名的方式向LBSP 发送查询请求。此外,本文还基于增量更新技术设计了一种缓存更新策略,以降低缓存更新所带来的通信开销。仿真实验结果表明,本文方案在具有较高的位置隐私保护水平的同时,具有较低的通信开销;安全性分析表明,本文方案可以实现车辆通信时所需的安全性目标。