徐會彬
(湖州師范學(xué)院 信息工程學(xué)院,浙江 湖州 313000)
車載網(wǎng)絡(luò)(vehicle ad hoc networks,VANETs)[1]是運行于道路上的新型移動無線自組織網(wǎng)絡(luò)(mobile ad hoc network, MANET),在提高車輛行駛安全和疏導(dǎo)交通流量方面發(fā)揮了重要作用。通過安裝車裝單元,使得車輛能夠與鄰居設(shè)備(車輛、旁邊設(shè)備)完成通信。通過車輛間(vehicle-to-vehicle, V2V)、車與旁邊設(shè)備(vehicle-to-infrastructure, V2I)通信,提高車輛對周圍環(huán)境的認(rèn)知能力。
作為最有前景應(yīng)用,位置服務(wù)為車輛分發(fā)了價值信息,如車流量狀況。然而,如何可靠地將價值信息傳輸至移動車輛成為挑戰(zhàn)。由于VANETs拓?fù)涞膭討B(tài)變化和機會性連通特性,長距離采用單跳方式將消息成功傳輸至目的車輛的概率很小,這也會導(dǎo)致高的消息丟失率[2]。
為此,針對VANETs的特性,常借助于RSUs輔助消息的傳遞。文獻[3]提出基于RSUs轉(zhuǎn)發(fā)的消息傳輸方案,該方案依據(jù)車輛移動軌跡傳輸消息。目前,基于軌跡傳輸消息的方案得到廣泛研究?;谲壽E的消息傳輸如圖1所示。
圖1 基于軌跡的消息傳輸示意圖Fig.1 Schematic diagram of transmitting message based on trajectory
圖1中,假定sRSU1附近區(qū)域是車輛Vd的社區(qū)熱點區(qū)域。sRSU1收集熱點區(qū)域信息,并給車輛Vd提供位置服務(wù)。依據(jù)基于軌跡的傳輸消息算法,首先,sRSU1知曉車輛Vd的行駛路徑;然后,依據(jù)Vd的軌跡,sRSU1將價值信息通過RSU1和RSU2轉(zhuǎn)發(fā)至Vd。
然而,車輛的行駛路線或車輛的位置信息是用戶(行駛?cè)?的私人信息,而位置隱私是VANETs的安全要求的重要組成部分。在基于軌跡消息傳輸方案中,如果車輛需要與在熱點區(qū)域的sRSU共享自己的行駛路線,這就要求該車輛從保護自己的隱私角度,如何與sRSU共享自己的行駛軌跡。即行駛軌跡只能傳輸至已授權(quán)的sRSU,而不能暴露給其他設(shè)備(車輛、RSU等)。
現(xiàn)有的多數(shù)車輛通信隱私保護策略都是基于別名機制的匿名認(rèn)證[4-9]。Jeong為基于軌跡的消息傳輸提出模型結(jié)構(gòu)[3],但這是基于一個控制中心,并由控制中心維持車輛的軌跡。但是,從行駛員(用戶)角度,控制中心本身也存在安全問題,同時,用戶希望由自己控制哪些設(shè)備能夠接入它的行駛軌跡數(shù)據(jù),而不是由控制中心控制。
Dong基于代理加密技術(shù)提出安全位置共享概念[10]。在基于代理加密技術(shù)的公鑰分配中,委派代表不得不參與密鑰的產(chǎn)生,然而,在VANETs間歇性連通環(huán)境中,難以維持他們的互動。因此,本文考慮基于身份的代理重加密技術(shù),應(yīng)對這些間斷的互動特性[11],進而適應(yīng)于VANETs環(huán)境。
為此,本文提出代理重加密的安全位置服務(wù)算法(proxy re-encryption based secure location service, PRESLS)。PRESLS算法結(jié)合RSU輔助轉(zhuǎn)發(fā)消息,并利用代理重加密算法保障軌跡數(shù)據(jù)傳輸安全,使得只有車輛授權(quán)過的RSU才能接入軌跡數(shù)據(jù)。實驗數(shù)據(jù)表明,提出PRESLS算法能夠有效地維持車輛軌跡數(shù)據(jù)的安全,同時確保位置服務(wù)的質(zhì)量。
假定車輛Vd希望從位于熱點區(qū)域內(nèi)的sRSU獲取位置服務(wù),它必須與sRSU共享自己個人信息。為了實驗隱私安全,考慮如圖2所示的結(jié)構(gòu),其主要由信任機構(gòu)(trusted authority, TA),交通信息港(traffic information center, TIC),RSUs和車輛構(gòu)成。將系統(tǒng)已注冊的RSUs表示為R={RSU1,…,RSUm},并且這些RSU部署于主干車道上。車輛集為ν={V1,…,Vn},且車輛隨機分布于車道上。同時,車輛已知這些RSU的位置。
圖2 系統(tǒng)模型Fig.2 System model
由TA為系統(tǒng)產(chǎn)生公共參數(shù),并向RSUi∈R分配基于身份ID的密鑰。為了保證車輛的匿名,TA也管理車輛的假名身份。
而TIC收集流量信息,其作為中心管理者,負(fù)責(zé)維護車輛軌跡數(shù)據(jù)。并估計道路流量狀態(tài)。為了實現(xiàn)軌跡共享,TIC存儲基于車輛ID加密的車輛軌跡數(shù)據(jù)。同時,TIC也作為中介,并由它控制向車輛允許的RSU分發(fā)該車輛的軌跡數(shù)據(jù)。
作為轉(zhuǎn)發(fā)節(jié)點,RSUs設(shè)有緩存區(qū)域,用于存儲消息,進而支持VANETs的消息傳遞。假定有l(wèi)個RSUs位于熱點區(qū)域,將這些RSUs表示為SR={sRSU1,…,sRSUl}?R,并由sRSUk?SR向車輛提供位置服務(wù)。
每個車輛都裝備了OBU,并載入了數(shù)字地圖。首先每個已注冊車輛Vd∈ν從SR集中選擇自己感興趣sRSUk,然后再給sRSUk產(chǎn)生加密密鑰,最后通過TIC分享自己的行駛數(shù)據(jù)。一旦車輛Vd改變行駛路線,車輛Vd∈ν就更新它的加密行駛路線數(shù)據(jù),并傳遞至TIC。
此外,TIC與SR集中RSUs以有線方式連通,并且假定TIC為信任實體。
由于PRESLS算法引用了雙線性映射,先對雙線性映射以及相關(guān)知識進行概述。
假定G,GT為同素數(shù)階q的2個乘法循環(huán)群,且存在雙線性映射對e:G×G→GT,進而滿足以下特性[12-13]。
2)非退化:如果g是G的一個生成元,則e(g,g)是GT一個生成元;
3)可計算:對于任意g,h∈G, 則存在有效地算法去計算e(g,h)。
代理重加密算法是基于一個半可信的代理者,而半可信是指代理者必須嚴(yán)格依據(jù)協(xié)議的規(guī)定進行加密,但它需保存加密過程的中間信息[14]。
本文提出的基于身份代理重加密主要包括7個函數(shù),即idKeyGem,idEnc,idRKGen,idReEnc,idDec,idSig和idVrf,分別產(chǎn)生基于身份的密鑰、基于身份加密、產(chǎn)生基于身份的重加密密鑰、基于身份的重加密、基于身份的解密、基于身份的簽名和基于身份的驗證。這些函數(shù)的形式化定義[11]如下。
1)idKeyGem:節(jié)點ID結(jié)合主密鑰msk,調(diào)用函數(shù)idKeyGem(msk,id)產(chǎn)生私密鑰skid,即skid←idKeyGem(msk,id);
2)idEnc:節(jié)點ID結(jié)合消息m,調(diào)用函數(shù)idEnc(id,m)產(chǎn)生密文c,即c←idEnc(id,m);
3)idRKGen:利用私密鑰skid、身份(id1,id2),調(diào)用重加密函數(shù)idRKGen(skid1,id1,id2),便產(chǎn)生重加密密鑰rkid1→id2;
4)idReEnc:利用重加密密鑰rkid1→id2以及密文c,調(diào)用重加密函數(shù)idReEnc(rkid1→id2,c),產(chǎn)生重加密密文c′;
5)idDec:依據(jù)密文c和私密鑰skid,調(diào)用函數(shù)idDec(skid,c),解密,獲取消息m;
6)idSig:依據(jù)私密鑰skid,對消息m進行簽名,即idSig(skid,m)→sig;
7)idVrf:調(diào)用idVrf(id,m,sig)函數(shù)驗證消息m的簽名Sig對id是否有效,即驗證簽名。
params=(G,GT,q,e,g,h,A,H1,H2,H3,H4)
(1)
對于RSUl∈R,TA運行idKeyGen(a,RSUl)函數(shù),產(chǎn)生RSUl的私人密鑰skRSUl=H1(RSUl)α,并預(yù)先將skRSUl安全地傳輸至每個RSUl,其中,idKeyGen(msk,id)表示利用身份id、參數(shù)α產(chǎn)生的密鑰函數(shù)。
ν={V1,…,Vn}是想獲取VANETs提供位置服務(wù)的注冊車輛。對于每個Vd∈ν,TA先檢測它的資格,然后,為車輛Vd選擇別名身份
PIDd={pidd,t|0≤t≤ω}
(2)
再利用車輛Vd的別名PIDd產(chǎn)生車輛Vd的私密鑰
skVd,t←idKeyGen(α,pidd,t)
(3)
(3)式中:pidd,t∈PIDd;skVd,t=H1(pidd,t)α。在PRESLS算法中,將pidd,0用于重加密,而{pidd,1,…,pidd,ω}用于VANET通信。
隨后,車輛Vd選擇想獲取位置服務(wù)的熱點區(qū)域sRSU。假定車輛Vd所選擇的熱點區(qū)域SRd={sRSUj|1≤j≤k}?SR,并給每個sRSUj∈SRd分配重加密鑰
(4)
(5)
車輛Vd將重加密鑰和熱點區(qū)域RSUs清單RSMd={pidd,0,SRd,RKd}傳輸至TIC,其中,RKd={rkVd→sRSUj|sRSUj∈SRd}。然后,TIC對車輛Vd的軌跡數(shù)據(jù)加密,并給sRSUj授權(quán)解密權(quán)限。
行駛軌跡由一些具體位置構(gòu)成,如車輛Vd希望通過的主要十字路口。當(dāng)車輛Vd加入VANETs,它就希望行駛路線上具有一些RSU,{RSU1,…,RSUt}?R,從而使得它能夠在這些RSU上獲取位置服務(wù)信息。
車輛軌跡共享過程如圖3所示。車輛Vd先利用自己別名對軌跡trjd進行加密,然后再傳輸至TIC。接收加密文后,TIC驗證車輛Vd的簽名。如果驗證通過,則TIC從密文中提取車輛軌跡trjd數(shù)據(jù),對trjd加密,再傳輸至車輛Vd可能經(jīng)歷的熱點區(qū)域內(nèi)的RSU,最終由這些RSU解密獲取車輛軌跡數(shù)據(jù)trjd。
圖3 車輛與TIC共享軌跡數(shù)據(jù)示意圖Fig.3 Schematic diagram of sharing trajectory data between vehicles and TIC
2.2.1 車輛對trjd加密
為了與熱點區(qū)域RSUs共享行駛軌跡trjd={(pidd,i,RSUi)|1≤i≤t},車輛Vd利用pidd,0對trjd加密,并將已加密的trjd傳輸至TIC,步驟如下。
步驟1先設(shè)置加密文
C=(c1,c2,c3,c4)←idEnc(pidd,0,trjd)
(6)
(6)式中:c1=hr;c2=gr;c3=(trjd|θ)⊕H2(e(H1(pidd,0)r,A));c4=H1(c1|c2|c3)r;r=H3(trjd|θ),?θ∈G。
步驟2將已加密的軌跡融合成消息TMd={pidd,0,C,ts,σd}傳輸至TIC,其中,σd←idSig(skd,0,C|ts)為車輛Vd的簽名。
2.2.2TIC將trjd數(shù)據(jù)傳輸至熱點區(qū)域
一旦接收到TMd,TIC首先用idVrf(pidd,0,C|ts,σd)驗證Vd的簽名。如果滿足,則對密文加密,并給熱點區(qū)域內(nèi)RSUs提供已加密的軌跡數(shù)據(jù),具體步驟如下。
步驟1確認(rèn)是否e(c1,g)與e(h,c2)相等,e(c1,H1(c1|c2|c3))與e(h,c4)是否相等;
步驟2取回和解析重密鑰以及熱點區(qū)域RSUs清單消息RSMd={pidd,0,SRd,RKd};
(7)
e(skVd,0·H4(e(H1(sRSUj)x,A)),gr)=
e(skVd,0,gr)·e(e(skVd,0·hx·
H4(e(H1(sRSUj)x,A)),gr))。
步驟4向sRSUj提供{C′,ts},進而使得sRSUj獲取車輛Vd的軌跡數(shù)據(jù)。
2.2.3 熱點區(qū)域RSU解密軌跡數(shù)據(jù)
當(dāng)sRSUj從TIC獲取{C′,ts}信息后,sRSUj運行trjd←idDec(sksRSUj,C′),對數(shù)據(jù)進行解密,進而獲取軌跡數(shù)據(jù),具體步驟如下。
步驟1計算
e(H1(pidd,0)α,gr)
(8)
一旦sRSUj獲取了車輛Vd的軌跡數(shù)據(jù)trjd,sRSUj就向車輛Vd提供位置服務(wù)消息。假定sRSUj提供的位置服務(wù)消息為msg,RSUt為最優(yōu)接入點。消息msg傳輸過程如圖4所示。
圖4 消息msg的轉(zhuǎn)發(fā)示意圖Fig.4 Schematic diagram of transmitting msg
sRSUj為了保證消息傳輸?shù)陌踩约皩④囕vVd所需的位置服務(wù)消息準(zhǔn)確地傳輸至車輛Vd,而不是其他車輛,需對消息進行加密,并且對車輛Vd的身份進行確認(rèn)。具體過程如下。
2)sRSUj將消息M轉(zhuǎn)發(fā)至RSUt。一旦接收消息M,RSUt就暫存儲消息M,直到車輛Vd從消息M中提取了價值服務(wù)消息msg。具體過程如圖5所示。
圖5 車輛與RSUt間的消息傳遞過程示意圖Fig.5 Schematic diagram of transmitting message between vehicles and RSUt
3)當(dāng)車輛Vd行駛至RSUt的覆蓋范圍時,車輛Vd就向RSUt發(fā)送請求消息{pidd,t,req,ts″,σ′},其中,req表示面向消息請求協(xié)議的元數(shù)據(jù),而σ′←idSig(skVd,t,req|ts″)。
4)一旦接收到請求,RSUt就驗證簽名idVrf(pidd,t,req|ts″,σ′),進而識別Vd。如果驗證通過,則RSUt向搜索車輛Vd的消息M,再轉(zhuǎn)發(fā)至車輛Vd。
要求只允許由車輛認(rèn)證過的RSUs才可以接入車輛的軌跡數(shù)據(jù)trjd。即使TIC存儲、并管理了車輛的軌跡數(shù)據(jù),但TIC也必須通過正確解密密鑰才能獲取車輛軌跡數(shù)據(jù)。
證明車輛軌跡數(shù)據(jù)trjd是經(jīng)車輛Vd的別名pidd加密,并由TIC管理的。因此,只有知曉車輛的私密鑰skid,別名pidd的節(jié)點才能解密,竊取軌跡數(shù)據(jù)trjd。具體而言,TIC利用車輛Vd的身份pidd對車輛軌跡數(shù)據(jù)trjd加密,即形成密文C←idEnc(pidd,trjd)。因此,只有知道車輛Vd的私密鑰skid才能解密密文C。
此外,在軌跡數(shù)據(jù)傳遞過程中,車輛Vd所經(jīng)歷的sRSUs也會需要接觸軌跡數(shù)據(jù)trjd。因此,車輛Vd通過利用重加密密鑰rkVd對軌跡數(shù)據(jù)加密,形成密文,而不是向TIC提供明文軌跡數(shù)據(jù)。假定利用rkVd加密后的密文表示為C′,只有知道rkVd的sRSUs才能解密C′,進而獲取軌跡數(shù)據(jù)。
即使TIC獲取加密的軌跡數(shù)據(jù)和重加密密鑰rkVd,TIC也很難破解C或C′。因此,只有受車輛授權(quán)過車輛或RSU才能接入車輛的軌跡數(shù)據(jù)trjd。
車輛行駛軌跡不允許被VANETs的竊聽攻擊者跟蹤。因此,PRESLS算法必須給這些攻擊者設(shè)置阻力。為此,利用跟蹤概率分析PRESLS算法避免跟蹤的性能。文獻[15]研究表明,可利用簡單的跟蹤算法分析系統(tǒng)的跟蹤概率。因此,本小節(jié)利用跟蹤概率分析PRESLS算法防御車輛被跟蹤的性能。
假定偷聽者試著跟蹤從RSUi移動至RSUj的目標(biāo)車輛。假定從RSUi移動至RSUj的移動距離為m,車輛移動平均速度 為υm/s。因此,車輛需要t=/υs從RSUi移動至RSUj。
假定在時間t內(nèi),道路上的車輛數(shù)為N(t)。依據(jù)泊松分布,車輛均勻分布率為λ。因此,N(t)的分布函數(shù)為
(9)
假定每輛車能夠修改自己的別名,并且道路上至少有一輛車。跟蹤概率定義:能夠?qū)⑿碌膭e名關(guān)聯(lián)到同一輛車的概率Pt,表示為
Pt=Pr{N(t)=1|N(t)≥1}=
(10)
圖6 跟蹤概率(υ=25 m/s)Fig.6 Tracking probability (υ=25 m/s)
PRESLS算法的目的是保護車輛信息,特別是車輛的位置信息。而提供位置信息的保護目的就是讓車輛提供的信息是真實的,并使得其他車輛能夠獲取更便利的位置。為此,本小節(jié)分析提供位置隱私安全是否影響了位置服務(wù)查詢成功率(query success ratio, QSR)。
選用地圖位置服務(wù) (map-based location service,MBLS)[16]作為參照,并在MBLS上實施PRESLS算法,記為PRESLS-MBLS。為此,利用NS3軟件建立仿真平臺,車輛數(shù)為200,車輛通信半徑為250 m,區(qū)域環(huán)境為2 500×2 500,RSU數(shù)量為20個。車輛移動速度υ分別從10~60 m/s變化。位置服務(wù)查詢率如圖7所示。
圖7 位置服務(wù)查詢成功率Fig.7 Query Success Ratio of location service
從圖7可知,車輛移動速度的增加降低了查詢成功率。原因在于車速的增加縮短了車輛與RSU的鏈路的連通時間,進而降低了查詢成功率。此外,與MBLS相比,PRESLS-MBLS算法的查詢成功率并沒有下降。例如,在車速小于50 m/s時,PRESLS-MBLS算法的位置服務(wù)查詢成功率與MBLS算法相近,并沒有降低服務(wù)效率。而當(dāng)車速進一步提高時(當(dāng)車速達到60 m/s時),MBLS算法的服務(wù)查詢成功率迅速下降,而PRESLS-MBLS算法的查詢成功率較平衡。這要歸功于PRESLS-MBLS算法通過提供位置信息安全,排除了一些惡意節(jié)點所提供的虛假位置信息,進而使位置服務(wù)查詢率隨車速變化較穩(wěn)定。
本文針對基于軌跡的消息傳輸?shù)能壽E數(shù)據(jù)安全問題,提出基于代理重加密的安全位置服務(wù)算法。該算法是以RSU輔助消息傳輸為前提,同時以TA為管理中心,負(fù)責(zé)管理車輛行駛軌跡數(shù)據(jù)。利用代理重加密算法,限制接入車輛軌跡數(shù)據(jù)的實體對象,進而保護車輛位置隱私。實驗數(shù)據(jù)表明,提出的PRESLS算法實現(xiàn)了車輛在享受位置服務(wù)的同時保障了車輛軌跡數(shù)據(jù)安全的目的。