劉 源,張愛新
(上海交通大學(xué),上海 200240)
隨著物聯(lián)網(wǎng)[1]的蓬勃發(fā)展,車聯(lián)網(wǎng)(Internet of Vehicle,IoV)[2-3]作為物聯(lián)網(wǎng)的重要組成部分之一,極大地促進(jìn)了智能交通系統(tǒng)(Intelligent Transport System,ITS)[4]的發(fā)展,在社會中發(fā)揮著越來越重要的作用。車聯(lián)網(wǎng)中,用戶可以適時地廣播位置、路況等信息。為保證車聯(lián)網(wǎng)中廣播信息的合法性和可信性,用戶在廣播信息時還需要同時提供其身份信息。換言之,在一條廣播信息中,同時存在用戶的位置信息和身份信息。文獻(xiàn)[5]指出,如果有惡意用戶持續(xù)收集來自某一固定用戶的廣播信息,可以推測出該用戶的隱私數(shù)據(jù)。比如,通過廣播信息可以跟蹤其行駛路線,進(jìn)而得到其生活習(xí)慣或是家庭住址等敏感信息。保護(hù)用戶的位置隱私對車聯(lián)網(wǎng)的安全發(fā)展至關(guān)重要,要保護(hù)位置隱私就需要打破位置與身份的對應(yīng)關(guān)系??梢杂袃煞N解決方案:一是在廣播信息中使用虛擬位置,二是在廣播信息中提供用戶的虛擬身份。由于在車聯(lián)網(wǎng)中廣播共享的信息大多與位置有關(guān),因此一般不采用虛擬位置進(jìn)行隱私保護(hù)。目前,用戶的虛擬身份大多采用生成假名的方式實現(xiàn)。基于假名的車聯(lián)網(wǎng)隱私保護(hù)方案一般由用戶、認(rèn)證中心(Trusted Authority,TA)和路邊單元(Roadside Unit,RSU)構(gòu)成。假名需要具備可認(rèn)證性和條件可追蹤性??烧J(rèn)證性是指通過用戶的假名即可驗證該用戶身份的合法性,同時不會泄露其真實身份信息;可追蹤性則是指當(dāng)需要對可疑用戶進(jìn)行調(diào)查取證時,可以從其假名中恢復(fù)出該用戶的真實身份。
文獻(xiàn)[6]通過在用戶的真實身份信息中加入隨機(jī)數(shù)生成假名,并經(jīng)由TA簽名后實現(xiàn)基于假名的身份認(rèn)證與追蹤。該方法假設(shè)TA是誠實可信的,無法防止來自TA的內(nèi)部攻擊;另外,用戶每更換一次假名,都要請求TA進(jìn)行簽名,嚴(yán)重降低了通信效率。文獻(xiàn)[7]提出了一種通過哈希鏈生成假名的方法。首先由用戶身份和一個稱為種子的隨機(jī)數(shù)經(jīng)哈希后得到初始假名;后續(xù)假名均由上一輪的假名哈希得到,TA要對所有假名進(jìn)行簽名操作。該方案也是建立在TA是誠實可信的基礎(chǔ)上,身份認(rèn)證依然依賴于TA的簽名。另外,由于哈希函數(shù)的單向性,無法從假名恢復(fù)出用戶的真實身份。為實現(xiàn)追蹤功能,該方案只能遍歷所有用戶的種子并逐一計算比對,系統(tǒng)效率低下。為提高效率,文獻(xiàn)[8]提出在RSU上布設(shè)霧節(jié)點,以承擔(dān)部分用戶管理功能,但假名的認(rèn)證和追蹤仍然依賴于TA或RSU的簽名,沒有從本質(zhì)上解決問題。文獻(xiàn)[9]采用零知識證明的思想實現(xiàn)條件隱私保護(hù)。首先由TA給合法用戶頒發(fā)一個證書,用戶可以通過此證書生成任意數(shù)量的假名,并且不再需要TA簽名,大大提高了系統(tǒng)效率,但是該方案依然假定TA是誠實可信的。
綜上,目前方案的安全性均依賴于TA是誠實可信的這一前提,TA掌握了系統(tǒng)中所有用戶及RSU的全部信息,無法有效抵御內(nèi)部攻擊。為此,本文提出了一種半可信環(huán)境下權(quán)限下放的隱私保護(hù)方法。用戶證書不再由TA單方生成,而是由TA、RSU和用戶三方共同生成。采用形式化方法對該方案的安全性進(jìn)行分析,仿真測試表明,與其他方案相比,本文方案具有更好的綜合性能。
本文系統(tǒng)總體架構(gòu)如圖1所示,TA、RSU和用戶呈樹狀結(jié)構(gòu)。
圖1 系統(tǒng)總體架構(gòu)
本文系統(tǒng)形式化定義如下。
(1)params←Setup(1λ):系統(tǒng)初始化,主要用于生成所需的公共參數(shù)集合params。
(2)CertR←JoinR(V1,V2,k):RSU加入時,需要向TA進(jìn)行注冊,以便為其他用戶提供服務(wù),并分擔(dān)TA的權(quán)限。RSU會生成自身的公私鑰對,并經(jīng)由TA合法化。
(3)CertU←JoinU(u,v,s1,s2,s3):用戶加入時要先選定一個RSU。TA、RSU和用戶各自生成一個隨機(jī)數(shù),分別為s1、s2和s3。TA、RSU會通過自己的私鑰u、v與用戶共同生成用戶的證書。即使某一方使用非隨機(jī)數(shù),仍然無法影響證書的分布。
(4)Pseudonym←PseuGen(CertU):用戶可以通過自己的證書CertU生成自身的假名。
(5){1,0}←Verify(Pseudonym):用戶可以驗證其他用戶的假名,以檢驗該用戶身份的合法性。若合法,輸出為1;若非法,輸出為0。這個過程中,無法獲取此假名對應(yīng)的用戶真實身份。
(6)A ← Trace(Pseudonym,u,v,):TA和 RSU使用兩方協(xié)議追蹤用戶。通過TA的主私鑰u和RSU的主私鑰v可以恢復(fù)用戶的真實身份。
本系統(tǒng)基于SM2簽名算法[10]和條件隱私保護(hù)認(rèn)證算法[11-12]實現(xiàn),主要流程如下。
(1)params← Setup(1λ)
若G1、G2、GT是3個p階循環(huán)群,p為素數(shù)。選取一個雙線性映射e:G1×G2→GT,g1和g2分別為G1和G2的生成元。TA選取一個隨機(jī)數(shù)u作為私鑰。相應(yīng)公鑰為。運(yùn)算過程中,選取一個哈希函數(shù)H:{0,1}*→Z*q,則系統(tǒng)公共參數(shù)集為:
(2)CertR←JoinR(V1,V2,k)
RSU的注冊,當(dāng)有新的RSU想要加入系統(tǒng)時,將進(jìn)行如下過程:
①將選取一個隨機(jī)數(shù)v,作為主私鑰,相應(yīng)的公鑰為V1=gv1、V2=gv2,然后將公鑰發(fā)送給TA。
②TA產(chǎn)生一個隨機(jī)數(shù)k,并進(jìn)行如下計算:
③TA將{r,s}發(fā)送回正在注冊的RSU,RSU將CertR←(r,s,V1,V2)作為自身證書。
(3)CertU←JoinU(u,v,s1,s2,s3)
當(dāng)有新用戶想要加入系統(tǒng)時,應(yīng)當(dāng)先從TA處查看有哪些RSU可用,然后選擇一個合適的RSU進(jìn)行注冊(如本區(qū)域或距離自己最近的RSU),最后RSU將自身證書CertR=(r,s,V1,V2)發(fā)送給用戶。
用戶進(jìn)行如下計算:
若r′=r,則用戶接受此RSU,然后TA、RSU和用戶將共同計算用戶的證書。本文采用文獻(xiàn)[13]中所提的全同態(tài)加密進(jìn)行計算,以EncAhom(m)表示以用戶A的公鑰對消息m進(jìn)行加密,具體證書生成步驟如下:
③RSU選取一個隨機(jī)數(shù)s2,并使用TA的公鑰對vs2進(jìn)行加密,然后計算
并發(fā)送給TA。
⑤TA將{A,s1}發(fā)送給用戶,RSU將s2發(fā)送給用戶,用戶將CertU={A,s1,s2,s3}作為自身證書。
(4)Pseudonym←PseuGen(CertU)
用戶得到CertU={A,s1,s2,s3}后,可以生成自身的假名。當(dāng)他改變自身位置時,可以重新生成另一個假名。
①用戶選取一個隨機(jī)數(shù)x。
②用戶選取 7 個隨機(jī)數(shù) rx、rs1、rs2、rs3、rα、rβ、rγ,然后進(jìn)行如下計算:
其中i表示此用戶所屬RSU的編號,CertRi為其證書。
(5){1,0}←Verify(Pseudonym)
其他用戶收到此假名后,可以驗證此假名對應(yīng)真實身份的合法性。
①取出CertRi中的信息并計算:
②若r′=r,則進(jìn)行如下計算:
③核實 c=H(TU||TV||V1||V2||δ1||δ2||δ3||δ4||δ5)是否成立。若成立,則輸出1,表示用戶為合法用戶;否則,輸出0,表示用戶為非法用戶。
(6)A←Trace(Pseudonym,u,v)
若用戶違規(guī),其他用戶可對其進(jìn)行究責(zé),將其假名上傳至其所屬RSU,則此RSU可以和TA共同計算非法用戶的證書,步驟如下:
①TA生成一對密鑰(pk,sk)=(h=gx,x),然后選取一個隨機(jī)數(shù)r并計算(a,b)發(fā)送給RSU,其中:
②收到(a,b)后,RSU計算(c,d)并發(fā)送給TA,其中:
③收到(c,d)后,TA計算:
然后TA可以得到違規(guī)用戶的真實身份。
定理1:在系統(tǒng)參與者按照規(guī)定協(xié)議工作的情況下,本方案是正確的。
證明:當(dāng)其他用戶接收到某一用戶k的假名信息后,通過判斷 c=H(TU||TV||V1||V2||δ1′||δ2′||δ3′||δ4′||δ5′)是否成立判斷用戶k的身份信息是否合法,關(guān)鍵在于c中的δi′是否與用戶k生成的δi(i=1,2,…,5)相等。
由于:
可知用戶身份驗證方案是正確的。
在已有的車聯(lián)網(wǎng)隱私保護(hù)方案中,匿名性及可追蹤性完全依賴于TA。TA能夠獨立地由用戶假名恢復(fù)出其真實身份,造成隱私的泄露。本文將用戶的管理權(quán)限部分下放給RSU,只有在RSU參與的情況下,TA才可以恢復(fù)出用戶的身份,大大提高了隱私的安全性。
定理2:如果DDH假設(shè)成立,則本方案在沒有RSU參與的情況下,TA無法獨自判斷兩個假名是否屬于同一用戶。
證明:定義以下實驗序列,敵手為TA自身。
Expt1:
(1)TA選擇兩個證書(A1,s11,s12,s13)、(A2,s21,s22,s23),并發(fā)送給挑戰(zhàn)者。
(2)挑戰(zhàn)者用兩個證書以及TA和RSU的公鑰U1、U2、V1、V2各自生成一個假名 pseu0、pseu1。
(3)挑戰(zhàn)者產(chǎn)生一個比特b←{0,1},并將pseub發(fā)送給TA。
(4)TA對b進(jìn)行猜測,并輸出一個比特b′。
(5)如果b=b′,輸出1;否則,輸出0。
Expt2:
(1)TA選擇兩個證書 (A1,s11,s12,s13)、(A2,s21,s22,s23),并發(fā)送給挑戰(zhàn)者。
(2)挑戰(zhàn)者用兩個證書以及TA和另一個RSU 的公鑰 U1、U2、V1′、V2′各自生成一個假名pseu0′、pseu1′。
(3)挑戰(zhàn)者產(chǎn)生一個比特b←{0,1},并將pseub發(fā)送給TA。
(4)TA對b進(jìn)行猜測,并輸出一個比特b′。
(5)如果b=b′,輸出1;否則,輸出0。
可知pseu0′與pseu1′均為非法假名,然而分布完全隨機(jī)。
事實1:在DDH假設(shè)下,存在可忽略函數(shù)negl(·)使得:
事實1證明:
在Expt2中,pseu0′與pseu1′完全隨機(jī),所以式(34)成立。
為了證明式(33),構(gòu)造以下分辨算法D,輸入為(X,V,U)∈G:
(1)將X作為公鑰交給TA。
(2)TA產(chǎn)生兩個等長的證書消息A0、A1,并發(fā)送給挑戰(zhàn)者。
(3)挑戰(zhàn)者隨機(jī)選擇b←{0,1},并將{V,U·Ab}發(fā)送給TA。
(4)TA對b進(jìn)行猜測,并輸出一個比特b′。
(5)如果b=b′,輸出1;否則,輸出0。
根據(jù)DDH假設(shè),存在可忽略函數(shù)negl(·)使得:
針對車聯(lián)網(wǎng)隱私保護(hù)完全依賴于TA可信性的問題,本文將TA權(quán)限下放至RSU,由TA與RSU共同為用戶生成證書,并通過協(xié)同追蹤的方法降低系統(tǒng)對TA的依賴。正確性分析和安全性證明表明,本文方案在提升隱私保護(hù)性能的同時,有效解決了TA中心權(quán)限過大的問題。