崔杰,陳學(xué)峰,張靜,魏璐,仲紅
(1.安徽大學(xué)計算機科學(xué)與技術(shù)學(xué)院,安徽 合肥 230601;2.安徽省物聯(lián)網(wǎng)安全技術(shù)工程實驗室,安徽 合肥 230601;3.安徽大學(xué)物質(zhì)科學(xué)與信息技術(shù)研究院,安徽 合肥 230601)
作為傳統(tǒng)車載自組織網(wǎng)絡(luò)(VANET,vehicular ad-hoc network)的超集,車聯(lián)網(wǎng)(IoV,Internet of vehicles)是5G 網(wǎng)絡(luò)的重要應(yīng)用之一[1]。IoV 是一種集成和開放的網(wǎng)絡(luò)系統(tǒng)[2],除了包含異構(gòu)網(wǎng)絡(luò)、用戶以及車輛以外,還包括車輛持續(xù)感知、計算和存儲能力。不同類型的車輛使用統(tǒng)一的通信協(xié)議與相鄰車輛或基礎(chǔ)設(shè)施進行無線通信。目前,有2 種無線通信協(xié)議在IoV 中被廣泛使用,分別是專用短程頻譜協(xié)議(DSRC,dedicated short-range spectrum)和蜂窩車輛對一切協(xié)議(C-V2X,cellular vehicle-to-everything)[3]。這2 種協(xié)議都支持車輛對一切(V2X,vehicle-to-everything)通信,包括車輛對車輛、車輛對行人和車輛對基礎(chǔ)設(shè)施通信[4]。
通過區(qū)分數(shù)據(jù)在各個實體之間流動的方向,可將IoV 中的應(yīng)用程序分成2 類,分別為安全應(yīng)用和娛樂應(yīng)用[5]。安全應(yīng)用根據(jù)道路信息及時做出響應(yīng),例如碰撞檢測、行人避讓等。娛樂應(yīng)用則是為了提高車輛行駛時的用戶體驗,常見的娛樂應(yīng)用有導(dǎo)航、音樂和視頻等?;谖恢梅?wù)(LBS,location-based service)的應(yīng)用作為重要的娛樂應(yīng)用之一,被廣泛應(yīng)用于IoV 中。
在LBS 中,私家車首先向LBS 提供商(LBSP,location-based service provider)發(fā)送查詢請求消息,其中包含車輛當(dāng)前位置和能夠反映車輛興趣的查詢關(guān)鍵字。然后,LBSP 返回基于關(guān)鍵字的響應(yīng)消息,其中包含與車輛位置及查詢關(guān)鍵字相關(guān)的POI(point of interest)(例如餐館、加油站、停車場等)的信息。正如硬幣有正反兩面一樣,雖然LBS 給用戶帶來了很多的好處和便利,但是也出現(xiàn)了很多重要的安全和隱私問題。例如,當(dāng)車輛的請求數(shù)據(jù)(如位置數(shù)據(jù))被泄露時,敵手可以重建其行車軌跡并推斷出車輛用戶的隱私信息,如家庭地址、工作單位以及健康狀況等。這些隱私信息的泄露可能會導(dǎo)致發(fā)生危害用戶人身安全的行為[6]。因此,LBS 中的位置隱私保護得到了學(xué)者的關(guān)注[7-8]。
近年來,為了解決上述問題,學(xué)者先后提出了許多方案[9-11]。其中,基于緩存策略的方案相對容易實現(xiàn)。它的主要思想是使用緩存來減少LBSP 獲取私家車的真實位置的次數(shù),從而降低位置隱私泄露的可能性。在某些方案中[6,11],使用路邊單元(RSU,road side unit)為其覆蓋范圍內(nèi)的車輛提供POI 緩存數(shù)據(jù)。然而,在IoV 中大規(guī)模部署RSU 的費用高昂,還可能發(fā)生物理攻擊RSU 的情況,造成額外的損失[12-13]。而公交車具有相對固定的移動軌跡以及移動模式,可以用來作為POI 數(shù)據(jù)的緩存節(jié)點。因此,本文使用公交車作為對POI 數(shù)據(jù)進行緩存、廣播以及更新的邊緣節(jié)點,相比于大規(guī)模部署RSU,使用公交車在成本上更具有競爭力,并且可以更廣泛地分布在IoV 中。
綜上所述,本文主要的創(chuàng)新點可以總結(jié)為以下3 個方面。
1) 本文提出了一種安全的基于廣播的位置隱私保護方案,在該方案中,公交車充當(dāng)邊緣節(jié)點,周期性地從LBSP 中預(yù)先獲取大量的POI 數(shù)據(jù),在其中挑選部分數(shù)據(jù)并將其廣播給私家車。
2) 當(dāng)發(fā)生緩存未命中時,車輛可以使用k-匿名技術(shù)向LBSP 發(fā)送包含其真實位置的查詢,以確保為車輛提供更好的服務(wù)。本文在用戶體驗和位置隱私之間取得了一個較好的平衡。
3) 針對緩存失效問題,本文提出了一種基于主動推送的緩存數(shù)據(jù)更新算法,該算法可減少LBSP網(wǎng)絡(luò)流量并更好地保護車輛位置的隱私。仿真實驗結(jié)果表明,本文提出的方案具有較低的網(wǎng)絡(luò)開銷和計算開銷。
隨著IoV 的普及,車輛位置隱私問題引起了許多學(xué)者的關(guān)注。目前,針對LBS 的位置隱私保護方案主要可分為以下3 類。
1) 基于密碼學(xué)的方案。此類方案可以提供可證明的安全性和隱私性。Yi 等[14]提出了一種基于差分隱私的位置隱私保護方案,該方案使用Paillier 同態(tài)加密技術(shù)以實現(xiàn)地理不可區(qū)分性的s-差分位置隱私。Paulet 等[15]提出了一種最近鄰搜索方案,該方案使用茫然傳輸(OT,oblivious transfer)和私有信息檢索(PIR,private information retrieval)等密碼學(xué)技術(shù)在不損害位置隱私的情況下向LBSP 查詢POI信息。然而,使用重量級密碼學(xué)技術(shù)來提供可證明的位置隱私保護的開銷過大。因此,此類方案不適合資源受限的移動設(shè)備。
2) 基于混淆的方案。Beresford 等[16]提出了混合區(qū)域的概念,將混淆的思想引入位置隱私保護中。它通過不斷改變用戶在這個區(qū)域內(nèi)的假名來保護用戶的位置隱私。然而,混合區(qū)域?qū)^(qū)域內(nèi)的用戶數(shù)量有嚴格的要求,導(dǎo)致在實際環(huán)境下中很難實現(xiàn)這個方法。k-匿名作為混合區(qū)域的補充方法被提出,其前提條件是用戶的真實位置不能與其他k?1 個虛擬位置區(qū)分。為實現(xiàn)k-匿名,Gruteser 等[17]引入了一個第三方可信實體(通常被稱為匿名服務(wù)器[10,18]),該方案通過在私家車的查詢請求被發(fā)送到LBSP 之前,混淆請求內(nèi)的位置信息,從而保護用戶的位置隱私。然而,匿名服務(wù)器很容易被黑客攻擊,造成單點故障,從而降低用戶服務(wù)質(zhì)量。為了解決這一問題,Chow 等[19]提出了一種方案,每個用戶首先與其他k?1 個用戶合作,形成一個沒有第三方可信實體的群,然后利用群里其他成員的位置作為虛擬位置實現(xiàn)k-匿名。Cui 等[20]提出了一種位置隱私保護方案,車輛根據(jù)周圍車輛的狀態(tài)動態(tài)生成虛擬位置,并將混淆后的位置數(shù)據(jù)發(fā)送給LBSP。然而基于混淆的方案往往會忽略敵手擁有的背景知識(如道路拓撲、查詢概率、移動模式)[21]。因此,敵手可以很容易地使用基于機器學(xué)習(xí)的算法[22]從私家車提交的k個位置中過濾一些沒有被精心設(shè)計的,甚至是隨機生成的虛擬位置,從而降低 k-匿名方案的隱私保護程度。
3) 基于緩存方法的方案。近年來,一些學(xué)者還提出了基于緩存的方案,為用戶提供位置隱私保護。在此類方案中,用戶可以在本地緩存中檢索所需的內(nèi)容,而不需要向LBSP 發(fā)送查詢。Amini 等[23]提出了一種隱私保護方案,通過在用戶到達特定區(qū)域之前,預(yù)先下載該區(qū)域內(nèi)的所有POI 數(shù)據(jù)來保護用戶的位置隱私。然而,該方案要求用戶具有特定的移動軌跡且用戶的移動設(shè)備上具有很大的存儲空間。Shokri 等[24]提出了一種被稱作MobiCrowd 的方案。在移動用戶從LBSP 請求所需的POI 數(shù)據(jù)之前,首先向鄰居用戶請求POI 數(shù)據(jù),以減少真實位置泄露的可能性。然而,該方案沒有考慮鄰居是惡意用戶的情況。Niu 等[25]提出了2 種虛擬位置生成算法來保護用戶位置隱私,但該算法需要群內(nèi)用戶之間進行協(xié)作。Peng等[26]提出了一種通過移動用戶之間的協(xié)作緩存來保證連續(xù)位置隱私的方案。Zhang 等[27]提出了一種通過緩存和均勻網(wǎng)格來增強位置隱私的方案,該方案可以避免不同的用戶在同一區(qū)域中發(fā)送相同查詢。Liu 等[11]和Hu 等[6]提出使用主動緩存在車聯(lián)網(wǎng)中對車輛的位置隱私進行保護,然而它們都依賴于RSU。
本節(jié)將簡要介紹本文所需的預(yù)備知識、系統(tǒng)模型、威脅模型以及安全性目標。表1 中列出了本文所使用的符號和描述。
表1 本文所使用的符號和描述
下面,簡要介紹橢圓曲線密碼體制(ECC,elliptic curve cryptosystem)的基本知識和3 個相關(guān)的性質(zhì)[28]。
Fp是一個有限域,它是由一個大質(zhì)數(shù)p所決定的。在Fp上有一個橢圓曲線E:y2=x3+ax+b(modp),其中a,b∈Fp且 (4a3+27b2)modp≠ 0。設(shè)有無窮遠點O,橢圓曲線E上所有的點和O共同組成一個階為大質(zhì)數(shù)q、生成元為P的加法橢圓曲線群G,其具有以下性質(zhì)和困難性假設(shè)。
加法運算。設(shè)P和Q是群G上的2 個點,如果P≠Q(mào),可得R=P+Q,其中R是曲線E與一條連接P、Q直線的交點;如果P=Q,可得R=2P;如果P=?Q,可得P+Q=O。
標量點乘運算。設(shè)P∈G,m∈,則E上的點乘被定義為m?P=P+P+…+P(m個P)。
橢圓曲線離散對數(shù)問題(ECDLP,elliptic curve discrete logarithm problem)。該問題是橢圓曲線密碼體制中的一個困難問題,即對于在橢圓曲線E上給定的任意2 個點P,Q∈G,其中Q=xP,x∈,在多項式時間內(nèi)計算出x的值是困難的。
IoV 系統(tǒng)模型如圖1 所示,主要包含4 種實體,即可信中心(TA,trusted authority)、LBSP、基站以及車輛。
圖1 IoV 系統(tǒng)模型
在本文中,每種實體的主要功能和前提假設(shè)介紹如下。
1) TA。該實體由交通管理部門負責(zé)管理,通??杀灰暈槭峭耆尚诺摹A 具有強大的計算能力和足夠的存儲容量且配備防篡改設(shè)備(TPD,tamper proof device),可以利用足夠的資源來防御各種網(wǎng)絡(luò)攻擊以及物理攻擊。TA 還負責(zé)為所有實體分配公私鑰對。
2) LBSP。該實體負責(zé)響應(yīng)來自公交車或私家車的請求,并將最新的POI 數(shù)據(jù)主動推送給公交車。它根據(jù)車輛發(fā)送的位置信息和關(guān)鍵字返回相應(yīng)的POI 數(shù)據(jù),例如車輛可以向LBSP 獲取離車輛最近的加油站的相關(guān)信息。
3) 基站。該實體屬于公共基礎(chǔ)設(shè)施,通常由運營商負責(zé)部署和維護,它僅負責(zé)為車輛提供蜂窩網(wǎng)絡(luò)接入[29]。因為它不進行任何加解密計算,所以即使被攻擊,它也不會泄露任何有價值的信息。正在廣泛普及的5G 技術(shù)可以為車輛提供足夠的帶寬和超低的時延。
4) 車輛。車輛內(nèi)置車載單元(OBU,onboard unit),OBU 的計算和存儲能力有限。車輛還配備多個傳感器、TPD 以及通信模塊。車輛通常使用C-V2X或DSRC協(xié)議與其他基礎(chǔ)設(shè)施或者車輛進行通信。在本文中,車輛分為2 種:私家車和公交車。與私家車相比,公交車的OBU 具有更加強大的計算能力和更充足的存儲空間。私家車在道路上的行駛模式通常不可預(yù)測,公交車具有相對固定的行駛軌跡和發(fā)車間隔且所有用戶都可以提前獲知。車輛在首次登記或者年審時都會從TA 獲取一個最新的真實身份RID 以及密碼PWD。
本文使用全局敵手(GA,global adversary)模型作為威脅模型[30]。GA 不僅可以通過竊聽消息來追蹤特定區(qū)域中的目標車輛,還可以篡改消息中的內(nèi)容。GA 的主要目的是通過跟蹤目標車輛的真實位置和行駛軌跡來獲取車主的敏感數(shù)據(jù)以及生活方式。敵手可以通過攻擊LBSP 和公交車來獲取用戶隱私數(shù)據(jù),因此LBSP 和公交車通常被認為是半可信的,即它們會執(zhí)行相應(yīng)的功能,但是可能泄露其中的數(shù)據(jù)。本文僅考慮基于有線和無線通信的攻擊[31],不考慮基于計算機視覺的攻擊,比如車輛重識別追蹤。
安全性是本文方案的基本屬性,必要的安全性目標如下。
1) 消息完整性。為了抵抗女巫攻擊,車輛和其他實體需要驗證彼此的身份。此外,參與實體之間交換的消息應(yīng)得到完整性保護。
2) 匿名性。私家車使用假名與除TA 以外的其他實體進行通信。
3) 不可鏈接性。任何第三方都不能將竊聽到的消息鏈接到同一輛車上。
4) 可追溯性。當(dāng)發(fā)生交通事故時,TA 有權(quán)通過消息中的假名揭露相關(guān)車輛的真實身份。
5) 抗攻擊性。本文不僅可以抵抗女巫攻擊,還可以抵抗其他常見的網(wǎng)絡(luò)攻擊,例如中間人攻擊和重放攻擊。
本文旨在設(shè)計一種安全有效的位置隱私保護方案應(yīng)用于IoV 中。其基本思想是使用公交車作為特殊的緩存節(jié)點來緩存POI 數(shù)據(jù),并在公交車行駛過程中將它們廣播給周圍的私家車。私家車通過接收來自公交車的廣播,可以在沒有LBSP 的情況下獲得其所需的POI 數(shù)據(jù),從而減少私家車泄露其真實位置的次數(shù),降低敵手獲取私家車真實位置的可能性。
本文方案的數(shù)據(jù)流[32]如圖2 所示,其中,陰影矩形表示POI 數(shù)據(jù)(不同灰度的陰影表示不同內(nèi)容的POI 數(shù)據(jù)),白色矩形表示查詢請求。LBSP 首先根據(jù)公交車的線路信息將其沿路所經(jīng)過的POI 數(shù)據(jù)預(yù)先發(fā)送給公交車,公交車在行駛過程中再根據(jù)其當(dāng)前位置選擇部分POI 數(shù)據(jù)廣播給私家車,私家車接收廣播的數(shù)據(jù)并存儲到本地緩存中。若私家車在本地緩存中沒有檢索到想要的POI 數(shù)據(jù),則通過k-匿名的方式向LBSP 發(fā)送查詢請求,LBSP 根據(jù)查詢請求返回相應(yīng)的數(shù)據(jù)。
圖2 本文方案的數(shù)據(jù)流
1) TA 預(yù)先為所有車輛分配公私鑰對,且已經(jīng)預(yù)裝在所有車輛的TPD 中。TA 選擇一個隨機數(shù)skTA∈作為TA 的一個私鑰并且計算出它所對應(yīng)的公鑰 PKTA=skTAP。TA 再選擇2 個哈希函數(shù)H1:G→Zq和H2:{0,1}*→Zq。最后TA 將系統(tǒng)安全參數(shù)ψ= {p,q,PKTA,P,H1,H2}發(fā)送給全體車輛。
3) 當(dāng)TA 收到公交車發(fā)送的密文A后,首先使用其私鑰skTA對A進行解密,并核對BUSi的RID和PWD,核對成功后使用BUSi的公鑰驗證簽名σA。如果驗證通過,則TA 生成一個隨機數(shù)ri,作為TA 與BUSi之間共享的秘密參數(shù),并計算出公交車的臨時公鑰TPKi=ri⊕ RID用于之后廣播消息。然后,TA 生成一個隨機數(shù)xi,留作后續(xù)步驟使用。最后,TA 將這些參數(shù)(TPKi,ri,xi)存儲到本地,并且發(fā)送密文(TPKi,(TPKi,xi))給公交車。
4) 當(dāng)私家車PVj首次進入公交車BUSi的廣播范圍時,首先向公交車獲取其臨時公鑰TPKi,然后連同私家車的RID 和PWD 一起使用生成簽名σC=ECDSA(RID,PWD,TPKi),再使用PKTA加密它們生成密文C=ECIES(RID,PWD,σC),并通過公交車將密文C發(fā)送給TA。
5) 當(dāng)TA 收到密文C后,首先使用自己的私鑰skTA對C進行解密,并檢查私家車PVj的RID 和PWD 是否正確,檢查無誤后使用PVj的公鑰驗證簽名σC。如果能夠驗證通過,TA 則能夠使用TPKi在本地存儲中檢索到參數(shù)xi,作為公交車BUSi與PVj之間共享的秘密參數(shù)。然后,TA 發(fā)送密文給公交車,讓其轉(zhuǎn)發(fā)給私家車。
6) 當(dāng)公交車收到密文B和D之后,使用私鑰解密B,得到臨時公鑰TPKi和秘密參數(shù)xi。公交車驗證簽名(TPKi,xi)成功以后,計算出秘密參數(shù)ri=TPKi⊕ RID,將密文D轉(zhuǎn)發(fā)給私家車PVj。
7) 私家車收到來自公交車轉(zhuǎn)發(fā)的密文D后,使用私鑰解密D,然后使用PKTA驗證其中的簽名,驗證通過以后能夠得到公交車的臨時公鑰TPKi和共享的秘密參數(shù)xi。
公交車首先從LBSP 獲取POI 池,并將它們存儲在公交車的OBU 中。隨后,公交車在行駛過程中,基于其當(dāng)前位置從POI 池中挑選一些附近的POI 數(shù)據(jù)以生成POI 列表,并將它們廣播給周圍的私家車,具體步驟介紹如下。
1) 獲取POI 池。為了最大限度地利用緩存的POI 數(shù)據(jù),應(yīng)該選擇私家車經(jīng)常訪問的POI 數(shù)據(jù)進行緩存和廣播。私家車在接收公交車廣播的消息之前,需要對公交車的身份進行認證。為了找到這些流行的POI 數(shù)據(jù),本文假設(shè)LBSP 具有城市中所有POI 的歷史被查詢數(shù)據(jù),其中不包含任何隱私數(shù)據(jù)。
公交車在發(fā)車前,首先向LBSP 發(fā)送一個請求消息以獲取POI 池,其格式為{PID,routeid},其中,PID 表示公交車的假名身份;id 表示公交車的線路編號,即第id 路公交車;routeid表示公交車的線路信息,即第id 路公交車的軌跡信息。
LBSP 根據(jù)公交車線路周圍POI 的流行程度以及其他背景知識生成POI 池,然后向公交車發(fā)送一個響應(yīng)消息,其格式為 {PID,PPid,T},其中,表示第k個POI 的地理位置,分別表示POI的名稱和類別,包括與POI 相關(guān)的信息,例如POI 的地址以及額外數(shù)據(jù)。LBSP 在生成POI 池后,會將其存儲起來并且定期更新其中的數(shù)據(jù),以便能夠直接響應(yīng)來自同一條線路不同RID 的公交車發(fā)送的請求。
2) 生成POI 列表。為降低廣播時的數(shù)據(jù)分組丟失率,公交車需要從POI 池中選擇部分POI 數(shù)據(jù),生成適合廣播的POI 列表。公交線路被車站所分隔,每個車站之間的距離大致相同。當(dāng)公交車??吭诘趍站時,從POI 池中選擇第m站到第m+1站之間公交車線路附近的POI 生成POI列表。由于需要本地檢索和緩存更新,公交車廣播的POI 列表格式可以定義為 {PID,PLid,σ,T},其中,PLid表示第id 路公交車廣播的POI 列表,其格式與PP 的相同,包含POI 的位置信息以及與POI相關(guān)的數(shù)據(jù)信息。
3) 廣播POI 列表。公交車在道路上行駛時,使用算法1 周期性地廣播其生成的POI 列表。假設(shè)公交車以間隔Tgap廣播POI 列表,通常設(shè)置為8~10 s。
算法1POI 列表廣播算法
隨著交通流的變化,不同的POI 流行程度也隨之變化,因此LBSP 需要及時更新公交車中的POI池緩存以保持較高的緩存命中率。例如,某地新增了一個加油站,周圍的車輛經(jīng)常訪問這個POI,一個新流行的POI 就此產(chǎn)生。
傳統(tǒng)的緩存更新策略要求用戶主動請求服務(wù)器以更新失效的緩存數(shù)據(jù)。如果使用這種更新策略,則需要讓公交車知道私家車訪問哪些POI 時發(fā)生了緩存未命中,這意味著公交車能夠了解車輛的興趣,從而根據(jù)這些信息推出車主的其他隱私信息。因此,本文設(shè)計了一種基于推送的更新算法,不需要公交車掌握車輛的緩存未命中情況,也能正常更新私家車本地緩存中無效的數(shù)據(jù),從而更好地保護私家車的位置隱私。詳細策略分為以下3 個步驟。
1) LBSP 只更新被修改過或者新增的POI 數(shù)據(jù),以降低通信成本和存儲開銷。LBSP 分析私家車發(fā)送的查詢請求并檢查POI 的更新,執(zhí)行POI 池的添加、刪除和修改數(shù)據(jù)等操作。假設(shè)LBSP 以Ugap的間隔推送更新補丁,通常設(shè)置為1~3 h,這取決于在此期間POI 池 PPid中發(fā)生變化的POI 的數(shù)量。LBSP 生成補丁后,將更新補丁以消息{id,diff,T}的格式發(fā)送給公交車,其中,diff 表示增量更新補丁,其為unix-diff 格式。
2) 公交車接收來自LBSP 的緩存更新消息,并將其中的增量更新補丁合并到存儲在公交車上的PPid中。POI 池中的時間戳將被更新補丁中的時間戳替換,以表示 PPid中的數(shù)據(jù)是最新的。
3) 如果私家車的本地緩存中已經(jīng)存儲了來自同一條線路公交車的廣播數(shù)據(jù),那么比較廣播消息中的時間戳。然后從本地緩存中刪除時間戳較舊的POI 列表,并存儲具有較新時間戳的POI列表。
私家車在接收到公交車的廣播消息BM 后,需要對消息中的簽名σ進行驗證,具體步驟如下。
1) 設(shè)私家車接收到廣播消息的時間戳為Tv,若BM 中時間戳為T,若TPV?T≤ΔT則消息無效,其中ΔT為系統(tǒng)預(yù)設(shè)的可容忍的傳輸時延。
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) 隨機選擇小指數(shù)向量v={v1,v2,…,vn},vi∈ [1,2t],為了降低計算開銷,t應(yīng)該取一個非常小的正整數(shù)。
3) 驗證簽名能否滿足
4) 否則,說明這批廣播消息中有無效的消息,需要對BM 單獨進行驗證。
在私家車使用LBS 之前,首先使用關(guān)鍵字在本地緩存中進行檢索。如果私家車在不同的POI 列表中檢索到相同的POI,則選擇時間戳較新的那個POI 列表中的數(shù)據(jù)。例如私家車本地緩存中有2 個POI 列表PL1和PL2,其中都包含相同的興趣點POIk=(Lk,nk,lk,Rk)。若私家車此時想要查詢關(guān)于興趣點k的信息,那么其會同時在PL1和PL2中檢索到同一個興趣點POIk,此時私家車會比較PL1和PL2的時間戳,然后使用時間戳較新的那個PL 中的POIk。若在本地緩存未檢索到想要查詢的POI 數(shù)據(jù),則通過算法2[33]生成k?1 個虛擬位置,然后連同車輛的真實位置,一起發(fā)送給LBSP,獲取POI 信息,其具體流程如圖3 所示。
圖3 私家車查詢POI 流程
算法2虛擬位置生成算法
本節(jié)提出了用來評估位置隱私保護程度的性能指標,描述了本文方案所使用的仿真實驗環(huán)境,并與Hu 等[6]提出的PAPT 位置隱私保護方案以及Liu 等[11]提出的LBS-CBAC 位置隱私保護方案進行了各方面的性能對比與分析。
為了評估方案的位置隱私的能力,本文提出位置隱私保護度作為度量標準,其由匿名集的熵和緩存命中率共同決定,具體定義如下所示。
定義1匿名集的信息熵表示匿名集中真實位置和虛擬位置被正確區(qū)分的不確定性。假設(shè)在匿名集AS 中,只有一個私家車的真實位置,其余都是根據(jù)真實位置生成的虛擬位置。例如私家車使用k-匿名方式,向LBSP 發(fā)送的k個查詢請求中的k個位置信息都能形成一個匿名集。設(shè)r為匿名集中的真實位置,d為匿名集中的虛擬位置,則AS 的信息熵定義為
其中,p(r,d)表示r和d被正確區(qū)分的概率。熵的值越大說明LBSP 掌握的關(guān)于車輛真實位置的信息越多,反之越少。
定義2緩存命中率表示查詢緩存命中的數(shù)目占總查詢數(shù)的比例。緩存命中表示私家車需要查詢的POI 數(shù)據(jù)能夠在本地緩存中檢索到。緩存命中率具體定義為
其中,qi表示私家車需要查詢的POI 請求,hi表示緩存命中的查詢請求。緩存命中率越高,表示私家車向LBSP 發(fā)送的查詢次數(shù)越少,則LBSP 獲取私家車的真實位置的可能性就越低。
定義3位置隱私保護度表示私家車在整個行駛過程中其位置隱私被保護的程度,具體定義為
其中,H表示整個行駛過程中緩存命中率,E表示當(dāng)緩存未命中時向LBSP 請求服務(wù)時的信息熵的值,Emax表示信息熵的最大值,Emin表示信息熵的最小值。根據(jù)最大熵模型可以計算出在本文方案中,Emin=0。D的值越大,則說明私家車在行駛過程中的位置隱私被保護的程度就越高。
本文方案基于Veins 4.6 環(huán)境[34]進行仿真實驗,這是一種進行車聯(lián)網(wǎng)仿真的開源框架,其基于2 種常用的模擬器:OMNeT++5.1.1 和SUMO 0.30.0。其中,OMNeT++是一種基于事件的網(wǎng)絡(luò)仿真模擬器,支持有線和無線網(wǎng)絡(luò)的仿真;SUMO是一種開源的道路交通模擬器,用于生成道路中的交通流數(shù)據(jù)。Veins 是連接OMNeT++和SUMO的中間件軟件。仿真環(huán)境的詳細參數(shù)設(shè)置如表2所示。
表2 仿真環(huán)境的詳細參數(shù)設(shè)置
本節(jié)與PAPT 方案[6]和LBS-CBAC 方案[11]進行了各方面的性能對比與分析。
數(shù)據(jù)分組丟失率的具體定義為
在IoV 中,車輛在道路上行駛時為了保證行駛安全,需要向周圍車輛和RSU 廣播以及接收信標數(shù)據(jù)。然而,如果廣播的數(shù)據(jù)分組大小過大可能會干擾正常的信標傳輸,因為大量的數(shù)據(jù)下載可能會長時間占用無線信道,從而導(dǎo)致較高的數(shù)據(jù)分組丟失率。將本文方案與 PAPT 方案[6]和LBS-CBAC 方案[11]進行了數(shù)據(jù)分組丟失率的比較,結(jié)果分別如圖4 和圖5 所示。
圖4 不同大小的數(shù)據(jù)分組對廣播性能的影響
圖5 私家車不同的速度對廣播性能的影響
從圖4 和圖5 可以看出,本文方案具有較低的數(shù)據(jù)分組丟失率,不會對IoV 造成顯著干擾。本文方案具有較低的數(shù)據(jù)分組丟失率的原因是本文方案中私家車直接從附近的公交車上獲取POI 數(shù)據(jù);而公交車和同向行駛的私家車相對距離較短,相對速度較小,所以公交車與私家車之間的傳輸環(huán)境比RSU 與私家車之間的傳輸環(huán)境更好。相比于車速變化帶來的影響,廣播數(shù)據(jù)分組大小的變化對數(shù)據(jù)分組丟失率的影響更顯著。這是因為車輛接收較大的數(shù)據(jù)分組時需要較長時間占用的CCH信道,從而導(dǎo)致車輛需要競爭使用該信道,造成數(shù)據(jù)分組丟失率的增加。
圖6 給出了3 種方案中不同的緩存文件大小對位置隱私保護度的影響。從圖6 可以看出,當(dāng)緩存文件很小時,3 種方案的位置隱私保護度都比較低,這是因為緩存文件很小時,緩存文件中無法容納所有的熱門POI 數(shù)據(jù),導(dǎo)致私家車需要頻繁地向LBSP 獲取POI 數(shù)據(jù),從而暴露了私家車的真實位置。緩存文件越大,私家車就可以從緩存中檢索到越多的熱門POI 數(shù)據(jù),減少了其直接向LBSP 獲取POI 數(shù)據(jù)的次數(shù),從而降低了私家車真實位置被泄露的可能性。隨著緩存文件不斷增大,它所帶來的邊際收益也在不斷降低。因此,一個合適的緩存文件大小可以讓本文方案在位置隱私保護度和廣播性能之間尋找到一個較合適的平衡點。
圖6 不同緩存文件的大小對位置隱私保護度的影響
不同的緩存命中率對位置隱私保護度的影響如圖7 所示。從圖7 可以看出,隨著緩存命中率的增加,3 種方案的位置隱私保護度都會相應(yīng)提高。因為緩存命中率越高,私家車直接向LBSP發(fā)送查詢請求的可能性就越低。如果私家車能在緩存中檢索到所有想要查詢的POI 數(shù)據(jù),那么這3 種方案都可以完全保護私家車的位置隱私,這是因為在整個行駛過程中,私家車沒有將真實位置發(fā)送給LBSP。然而,在實際生活中,這種情況幾乎不可能發(fā)生。
從圖 7 還可以看出,與 PAPT 方案和LBS-CBAC 方案相比,本文方案在緩存命中率較低的情況下,依舊可以為用戶提供較高的位置隱私保護能力。這是因為當(dāng)出現(xiàn)緩存未命中時,PAPT 方案通過RSU 轉(zhuǎn)發(fā)包含私家車真實位置的查詢請求,LBS-CBAC 方案則是私家車直接將自己的真實位置發(fā)送給LBSP 進行POI 查詢。而本文方案則首先使用k-匿名技術(shù)處理私家車的發(fā)送查詢請求,在查詢請求中加入噪聲數(shù)據(jù),從而實現(xiàn)對位置信息的混淆,然后向LBSP 發(fā)送查詢請求。在本文方案中,LBSP 從單次查詢中推斷出私家車真實位置的概率理論上僅為 1/k,遠小于PAPT 方案和LBS-CBAC 方案。
圖7 不同的緩存命中率對位置隱私保護度的影響
不同POI 數(shù)量對緩存更新文件大小的影響如圖8所示。從圖8 可以看出,當(dāng)有大量的POI 數(shù)據(jù)發(fā)生變化時,與PAPT 方案和LBS-CBAC 方案相比,本文方案可以顯著降低緩存更新所需的網(wǎng)絡(luò)開銷。這就意味著,本文方案可以高效地進行緩存更新,降低了緩存更新對IoV 的影響。
圖8 不同POI 數(shù)量對緩存更新文件大小的影響
基于本文提出的消息認證過程和困難假設(shè),本節(jié)進行了安全性分析,以表明本文方案可以完成本文提出的安全性目標。
1) 消息完整性。由于ECDLP 難以在常數(shù)項時間內(nèi)被解決以及單向哈希具有不可逆的特性,在隨機預(yù)言模型下,敵手在自適應(yīng)選擇消息攻擊中無法生成代表車輛的合法簽名。因此,本文方案可以實現(xiàn)簽名的不可偽造性。車輛可以對所發(fā)送的消息進行簽名,從而保證了消息的完整性。
2) 匿名性。因為車聯(lián)網(wǎng)中的廣播信道是公開的,可以被敵手監(jiān)聽,所以車輛在和其他車輛進行通信時,使用假名身份以對車輛的真實身份進行保護。在初始化階段,TA 與車輛共享秘密參數(shù),車輛隨后將這些參數(shù)存入TPD 中。在行駛過程中,定期從TPD 中取出秘密參數(shù),生成假名。
3) 不可鏈接性。因為假名身份是由安全的單向哈希函數(shù)H生成的,所以敵手不能確定2 個不同的假名身份是否源自同一車輛。
4) 可追溯性。TA 可以對車輛真實身份連接其他參數(shù)進行哈希,檢查是否和假名身份相稱,從而實現(xiàn)對車輛身份的可追溯性。
5) 抗攻擊性。將主密鑰和其他安全參數(shù)放入不會被攻破的TPD 中,可以抵抗物理攻擊;使用消息認證,可以抵抗女巫攻擊;使用時間戳,可以抵抗重放攻擊;使用消息簽名,可以抵抗中間人攻擊。
本文提出了一種車聯(lián)網(wǎng)中基于公交車緩存的位置隱私保護方案。在該方案中,公交車負責(zé)進行緩存管理與廣播,即公交車首先根據(jù)其線路信息向LBSP 發(fā)送請求以獲取POI 池,然后在行駛過程中,周期性地根據(jù)其當(dāng)前位置從POI 池中挑選部分POI數(shù)據(jù)形成POI 列表,廣播給周圍的私家車。私家車在接收到廣播消息后,對消息進行認證,認證通過后將POI 列表存儲到車輛的本地緩存中。當(dāng)私家車需要查詢POI 信息時,首先在本地緩存中進行檢索,若在緩存中沒有檢索到相應(yīng)的POI 信息,則通過k-匿名的方式向LBSP 發(fā)送查詢請求。此外,本文還基于增量更新技術(shù)設(shè)計了一種緩存更新策略,以降低緩存更新所帶來的通信開銷。仿真實驗結(jié)果表明,本文方案在具有較高的位置隱私保護水平的同時,具有較低的通信開銷;安全性分析表明,本文方案可以實現(xiàn)車輛通信時所需的安全性目標。