張海波,陳舟,黃宏武,賀曉帆
(1.重慶郵電大學(xué)通信與信息工程學(xué)院,重慶 400065;2.重慶郵電大學(xué)移動(dòng)通信技術(shù)重慶市重點(diǎn)實(shí)驗(yàn)室,重慶 400065;3.武漢大學(xué)電子信息學(xué)院,湖北 武漢 430072)
無線通信和汽車技術(shù)的飛速發(fā)展,促進(jìn)了智能交通系統(tǒng)(ITS,intelligent transportation system)的發(fā)展。VANET(vehicular ad-hoc network)系統(tǒng)作為ITS 的重要組成部分,能夠?yàn)檐囕v節(jié)點(diǎn)提供當(dāng)前駕駛路面情況、交通擁塞狀況和天氣情況等輔助信息,使車輛駕駛員能夠更加安全便捷地駕駛車輛[1]。VANET 系統(tǒng)主要包括3 種實(shí)體:可信機(jī)構(gòu)(TA,trusted authority)、路邊單元(RSU,road side unit)和車載單元(OBU,on broad units)。TA 負(fù)責(zé)RSU以及OBU 的注冊(cè),是一個(gè)完全可信的機(jī)構(gòu)。RSU是TA 與車輛之間的橋梁,安裝在道路的兩側(cè),方便車輛的快速訪問。OBU 負(fù)責(zé)車輛的計(jì)算任務(wù)和無線通信服務(wù)。
VANET 系統(tǒng)使用專用短程通信(DSRC,dedicated short range communication)協(xié)議進(jìn)行通信[2],DSRC 協(xié)議符合IEEE 802.11p 標(biāo)準(zhǔn)。VANET 系統(tǒng)主要的通信方式分為2 種:車輛與車輛(V2V,vehicle-to-vehicle)、車輛與基礎(chǔ)設(shè)施(V2I,vehicle-to-infrastructure)。V2V 和V2I 都是在公開的無線信道上進(jìn)行通信的,所以在VANET 系統(tǒng)中進(jìn)行信息傳輸時(shí)很容易受到惡意者的攻擊,例如竊聽、仿冒、重放攻擊等[3]。惡意者的攻擊行為使VANET 系統(tǒng)中的通信隱私安全受到威脅。同時(shí),與其他靜態(tài)的網(wǎng)絡(luò)結(jié)構(gòu)相比,VANET 系統(tǒng)具有車輛高速移動(dòng)和快速的網(wǎng)絡(luò)拓?fù)渥兓奶匦?,這使VANET 系統(tǒng)的隱私安全更容易受到惡意者的破壞[4]。
認(rèn)證密鑰協(xié)商(AKA,authentication key agreement)協(xié)議能夠使參與者在公開的網(wǎng)絡(luò)上完成相互認(rèn)證并建立安全的會(huì)話密鑰,以保護(hù)通信雙方的隱私安全。許多學(xué)者對(duì)AKA 技術(shù)做了大量研究工作,并提出了很多有價(jià)值的方案。傳統(tǒng)的基于公鑰基礎(chǔ)設(shè)施(PKI,public key infrastructure)方案[5-6],以數(shù)字證書為媒介,結(jié)合對(duì)稱與非對(duì)稱加密技術(shù),將用戶的身份和公鑰等信息捆綁在一起,從而確保消息的完整性、身份認(rèn)證和不可否認(rèn)性。但是該方案需要管理大量的匿名證書和撤銷列表,存儲(chǔ)開銷非常大;且該方案的證書驗(yàn)證過程涉及的節(jié)點(diǎn)數(shù)量較多,比較煩瑣,導(dǎo)致該方案認(rèn)證效率比較低。為避免基于PKI 技術(shù)帶來的管理大量匿名證書和撤銷列表的難題,Shamir[7]引入了基于身份基礎(chǔ)設(shè)施的方案。身份基礎(chǔ)設(shè)施由用戶身份信息和一個(gè)可信的擁有用戶密鑰對(duì)的私鑰生成中心(PKG,private key generator)組成,允許用戶很容易地從自己的身份信息(例如電子郵箱、手機(jī)號(hào)碼等)中獲取公鑰,再由PKG 為用戶頒發(fā)私鑰,這樣就減輕管理大量證書帶來的開銷。基于區(qū)塊鏈[8-9]的密鑰協(xié)商方案通過利用區(qū)塊鏈的優(yōu)勢,如可審計(jì)的日志、分散的體系結(jié)構(gòu)和拒絕服務(wù)(DoS,denial of service),在保護(hù)用戶隱私的同時(shí)提供了用戶間的相互認(rèn)證和密鑰協(xié)商。但是基于區(qū)塊鏈的認(rèn)證密鑰協(xié)商方案很少考慮成員動(dòng)態(tài)變化的因素,無法應(yīng)對(duì)VANET拓?fù)淇焖僮兓奶匦浴o證書非對(duì)稱的群密鑰協(xié)商方案[10-11]提供了一個(gè)公開的加密密鑰,每個(gè)群成員都可以計(jì)算一個(gè)對(duì)應(yīng)的解密密鑰,并且只有群成員才能正確解密通過公鑰加密的信息。該方案可以實(shí)現(xiàn)成員間的相互認(rèn)證和密鑰協(xié)商。但是該方案沒有考慮成員的身份可追溯性和可撤銷性,無法處理群成員的惡意行為。
許多學(xué)者對(duì)中國剩余定理(CRT,Chinese remainder theorem)在身份認(rèn)證和密鑰協(xié)商中的應(yīng)用也進(jìn)行了大量研究。文獻(xiàn)[12]基于CRT 提出了2 種群簽名方案,可信機(jī)構(gòu)利用群成員的部分簽名生成群簽名,方案的安全性依賴于整數(shù)難分解、離散對(duì)數(shù)和橢圓曲線離散對(duì)數(shù)難題。文獻(xiàn)[13]提出了一種基于CRT 的車載自組網(wǎng)中條件隱私保護(hù)認(rèn)證方案,利用CRT的密鑰管理方案為TA側(cè)的每個(gè)車輛生成一個(gè)通用域密鑰,降低了TA 的計(jì)算復(fù)雜度。
混沌系統(tǒng)具有對(duì)初始條件、偽隨機(jī)性和遍歷性十分敏感的特性,并具有良好的擴(kuò)散和混淆特性,這對(duì)密碼學(xué)特別是密鑰系統(tǒng)有重要意義[14]。Kocarev 等[15]提出了一種基于切比雪夫混沌映射的公鑰加密協(xié)議,由于切比雪夫混沌映射的數(shù)學(xué)特性,在公鑰密碼體制中使用切比雪夫混沌映射是一種更加安全的方法。Cui 等[16]提出了一種車載自組網(wǎng)中基于混沌映射的全會(huì)話密鑰協(xié)商方案,利用擴(kuò)展的切比雪夫多項(xiàng)式建立公鑰,實(shí)現(xiàn)了霧服務(wù)器和車輛群管理者之間的安全會(huì)話。
綜上所述,現(xiàn)有文獻(xiàn)提出的VANET 系統(tǒng)中的認(rèn)證密鑰協(xié)商方案大多對(duì)車輛的匿名性、可追溯性和撤銷性等安全問題考慮不全面,并且很少考慮VANET 拓?fù)涞膭?dòng)態(tài)變化。本文針對(duì)上述問題,結(jié)合中國剩余定理和切比雪夫混沌映射,提出了一種VANET 系統(tǒng)中群內(nèi)相互認(rèn)證密鑰協(xié)商協(xié)議。本文的主要貢獻(xiàn)如下。
1)提出了一種基于CRT的動(dòng)態(tài)車輛群建立方案。TA 利用分配給車輛節(jié)點(diǎn)的素?cái)?shù)信息和車輛節(jié)點(diǎn)返回的公鑰信息,再結(jié)合CRT 建立動(dòng)態(tài)車輛群。新車輛節(jié)點(diǎn)加入時(shí),群內(nèi)成員不需要改變自己的私鑰,只需要TA 重新計(jì)算系統(tǒng)公鑰。車輛離開車輛群或TA 撤銷車輛節(jié)點(diǎn)時(shí),TA 將其對(duì)應(yīng)的公鑰信息修改即可。
2)提出了一種基于切比雪夫混沌映射的密鑰協(xié)商協(xié)議。密鑰協(xié)商雙方通過訪問RSU 獲取對(duì)方的素?cái)?shù)信息,并通過獲取的素?cái)?shù)認(rèn)證對(duì)方的身份。密鑰協(xié)商發(fā)起方利用切比雪夫映射產(chǎn)生密鑰協(xié)商信息。接收方認(rèn)證發(fā)起方對(duì)應(yīng)的車輛身份后,利用切比雪夫混沌映射生成密鑰協(xié)商回應(yīng)信息。本文通過BAN 邏輯模型證明了所提協(xié)議的語義安全性。
3)安全分析結(jié)果表明,和現(xiàn)有的文獻(xiàn)相比較,本文提出的認(rèn)證密鑰協(xié)商協(xié)議對(duì)車輛節(jié)點(diǎn)的身份認(rèn)證性、身份隱私性和不可否認(rèn)性等VANET 系統(tǒng)中的通信安全問題考慮更加全面,還考慮了VANET 拓?fù)鋭?dòng)態(tài)變化的特性。仿真結(jié)果表明,本文所提協(xié)議能有效降低通信消耗,并且顯著減少了計(jì)算開銷。
本文提出的AKA 協(xié)議的系統(tǒng)模型如圖1 所示。該模型中的VANET 主要由3 個(gè)實(shí)體組成,即TA、RSU 和OBU。
圖1 AKA 協(xié)議的系統(tǒng)模型
TA。TA 擁有強(qiáng)大的計(jì)算能力、存儲(chǔ)能力,是一個(gè)完全可信的機(jī)構(gòu)。在VANET 系統(tǒng)中,合法的RSU 和OBU 都需要在TA 進(jìn)行注冊(cè),然后TA 為注冊(cè)實(shí)體分配參數(shù)。當(dāng)有新的車輛節(jié)點(diǎn)加入車輛群或車輛節(jié)點(diǎn)離開車輛群使VANET 拓?fù)浒l(fā)生改變時(shí),TA 會(huì)實(shí)時(shí)更新系統(tǒng)公鑰。當(dāng)有注冊(cè)車輛進(jìn)行惡意行為時(shí),TA 會(huì)對(duì)該車輛的身份進(jìn)行追溯并撤銷其合法身份。
RSU。RSU 安裝在道路的兩側(cè),連接車輛和可信中心。RSU 負(fù)責(zé)管理車輛假名和素?cái)?shù)信息表;當(dāng)車輛通過RSU 的驗(yàn)證后,可以得到密鑰協(xié)商對(duì)象的素?cái)?shù)。相鄰RSU 之間也可以進(jìn)行通信,當(dāng)車輛群進(jìn)行下一個(gè)RSU 覆蓋范圍時(shí),當(dāng)前RSU 將假名和素?cái)?shù)信息表發(fā)送給下一個(gè)RSU。
OBU。每一個(gè)車輛都配備一個(gè)OBU,OBU 負(fù)責(zé)車輛的通信和計(jì)算任務(wù)。
本文提出的認(rèn)證密鑰協(xié)商協(xié)議的安全性基于2種難破解問題,即計(jì)算離散對(duì)數(shù)問題(CDLP,computational discrete logarithm problem)和Zhang[17]提出的基于擴(kuò)展切比雪夫混沌映射的計(jì)算Diffie-Hellman 問題(CDHP,computational Diffie-Hellman problem)。
CDLP。給定一個(gè)P階有限循環(huán)乘法群G=〈g,P是一個(gè)大素?cái)?shù),g1,g2,…,gn是乘法群G的生成元。選定任意乘法群G的生成元g和y,計(jì)算x滿足y=gx,其中0≤x≤|G|。
基于擴(kuò)展切比雪夫混沌映射的CDHP。給定3 個(gè)參數(shù)x∈(-∞,+∞)、Tα(x)modn和Tβ(x)modn。其中n是一個(gè)大素?cái)?shù)。計(jì)算Tαβ(x)modP。
通常情況下,想要在多項(xiàng)式時(shí)間內(nèi)解決CDLP和基于擴(kuò)展切比雪夫混沌映射的CDHP是非常困難的。這2 種難破解問題在密碼學(xué)中的應(yīng)用十分廣泛,例如數(shù)字簽名技術(shù)、匿名認(rèn)證技術(shù)和密鑰協(xié)商等。
為滿足VANET 系統(tǒng)中車輛間安全通信的需求,本文提出的AKA 協(xié)議包含7 個(gè)階段,即系統(tǒng)初始化階段、注冊(cè)階段、相互認(rèn)證和密鑰協(xié)商階段、VANET 拓?fù)渥兓A段、私鑰更新階段、假名更新階段、RSU 切換階段。協(xié)議涉及的參數(shù)及定義如表1 所示。
表1 協(xié)議涉及的參數(shù)及定義
TA 負(fù)責(zé)系統(tǒng)初始化,定義2 個(gè)單向哈希函數(shù)H0,H1:{0,1}*→,i∈{0,1},li為哈希函數(shù)輸出的位寬。對(duì)于切比雪夫混沌映射,TA 選擇公共參數(shù)x、大素?cái)?shù)n和系統(tǒng)私鑰δsk。
RSUi和車輛的OBUi在TA 完成注冊(cè)后身份才合法。
1)OBUi的注冊(cè)
假設(shè)現(xiàn)有一個(gè)車輛群,該群里現(xiàn)在有k個(gè)車輛成員{V1,V2,…,Vk}。車輛節(jié)點(diǎn)Vi在進(jìn)行身份注冊(cè)時(shí),Vi上的OBUi將Vi的真實(shí)身份IDVi通過安全信道發(fā)送給 TA。TA 收到消息后,計(jì)算Vi的假名SIDVi=H0(IDVi||δsk)并公布在整個(gè)系統(tǒng)中。TA 選擇一個(gè)大素?cái)?shù)pi(i=1,2,…,k),滿足i≠j時(shí)pi≠pj,且在pi-1中有2 個(gè)大素?cái)?shù)。TA 選擇系統(tǒng)公共參數(shù)g,g是指數(shù)運(yùn)算的原根,也是所有乘法群的生成元。TA 將{SIDVi,pi}通過安全信道發(fā)送給Vi。
Vi收到TA 發(fā)來的{SIDVi,pi}后,隨機(jī)選擇自己初始密碼xi,0∈,計(jì)算Vi的公鑰yi≡·modpi。Vi將{yi}通過安全信道發(fā)送給TA。TA將車輛群內(nèi)車輛的公鑰的有效時(shí)間劃分為L個(gè)時(shí)間片段,在L個(gè)時(shí)間片段內(nèi),車輛節(jié)點(diǎn)的公鑰yi保持不變。當(dāng)L個(gè)時(shí)間片段用完時(shí),Vi會(huì)重新選擇私鑰并重新計(jì)算公鑰yi,TA 也會(huì)更新系統(tǒng)公鑰c。
2)RSUi的注冊(cè)
RSUi的注冊(cè)過程和OBUi的注冊(cè)過程類似,將真實(shí)身份IDRi通過安全信道發(fā)送給TA,TA 計(jì)算RSUi的假名 SIDRi=H0(IDRi||δsk),并分配給RSUi一個(gè)大素?cái)?shù)pk+1。RSUi選擇私鑰xk+1,0∈,并計(jì)算對(duì)應(yīng)公鑰yk+1返回給TA。
3)TA 構(gòu)建群組
TA 根據(jù)接收到的來自k個(gè)車輛節(jié)點(diǎn)的yi(i=1,2,…,k)和來自RSUi的yk+1構(gòu)建同余方程組。
其中,c為系統(tǒng)公鑰,利用中國剩余定理可以計(jì)算該同余方程組為
其中,P=p1p2…pk+1,表示對(duì)pi取模的逆。TA 計(jì)算 SPi=H1(SIDVi||pi),并將{SIDVi,pi}發(fā)送給經(jīng)過注冊(cè)的RSUi。RSUi根據(jù)收到的{SIDVi,pi}生成一個(gè)Vi假名和素?cái)?shù)對(duì)應(yīng)的列表λSIDV,p。
根據(jù)上面的描述,系統(tǒng)公布的參數(shù)為{x,n,g,SIDVi,SIDRi,c,P,SPi}。
在該階段,車輛節(jié)點(diǎn)Vi和Vj在公開網(wǎng)絡(luò)上完成相互認(rèn)證和密鑰協(xié)商,流程如圖2 所示。具體步驟如下。
圖2 認(rèn)證密鑰協(xié)商流程
Step1Vi通過發(fā)送請(qǐng)求給RSUi來獲取Vj的素?cái)?shù)pj。Vi選擇時(shí)間戳Tvi,計(jì)算Bvi=H1(SIDVi||pi||Tvi)、AIDVi=SIDVi⊕H1(pi||Tvi),然后發(fā)送{Bvi,Tvi,AIDVi,SIDVj}給RSUi。
Step2RSUi對(duì)接收到的消息進(jìn)行驗(yàn)證。RSUi收到消息后,首先通過TRi-Tvi<Δt檢查Tvi的新鮮度。檢驗(yàn)通過后,計(jì)算=AIDVi⊕H1(pi||Tvi),通過判斷等式是否成立,判斷消息請(qǐng)求方身份的合法性,只有群內(nèi)成員才能通過驗(yàn)證。如果等式不成立,拒絕請(qǐng)求消息;如果等式成立,RSUi將{pj,TRi}發(fā)送給Vi。
Step3Vi驗(yàn)證來自RSUi的消息,并發(fā)送密鑰協(xié)商請(qǐng)求消息給Vj。Vi收到{pj,TRi}后,首先由TvRi-TRi<Δt檢驗(yàn)時(shí)間戳TRi的新鮮度,TvRi是系統(tǒng)當(dāng)前時(shí)間戳。然后通過等式 SPj=H1(SIDVj||pj)是否成立來判斷來自RSUi消息的正確性。驗(yàn)證通過后,Vi選擇當(dāng)前時(shí)間戳Tij,選擇隨機(jī)數(shù)α,計(jì)算ξ1≡Tα(x)modn。Vi對(duì)密鑰協(xié)商請(qǐng)求進(jìn)行簽名,隨機(jī)選擇rvi∈,確定時(shí)間片段tvi,計(jì)算。Vi將簽名消息發(fā)送給Vj。
Step4Vj檢查來自Vi消息的時(shí)間戳,然后向RSUi訪問Vi對(duì)應(yīng)的素?cái)?shù)pi。Vj收到消息后,通過Trj-Tij<Δt檢驗(yàn)Tij的新鮮度,Trj是系統(tǒng)當(dāng)前時(shí)間戳。驗(yàn)證通過后,生成時(shí)間戳Tvj,計(jì)算Bvj=H1(SIDVj||pj||Tvj)、AIDVj=SIDVj⊕H1(pj||Tvj)。Vj發(fā)送素?cái)?shù)請(qǐng)求消息{Bvj,Tvj,AIDVj,SIDVi}給RSUi。
Step5RSUi對(duì)接收到的消息進(jìn)行驗(yàn)證。RSUi收到消息后,首先通過TRj-Tvj<Δt檢查時(shí)間戳Tvj的新鮮度,TRj是系統(tǒng)當(dāng)前時(shí)間戳。檢驗(yàn)通過后,計(jì)算,通過等式是否成立判斷消息請(qǐng)求方身份的合法性。如果等式不成立,拒絕請(qǐng)求消息;若成立,RSUi將{pi,TRj}發(fā)送給Vj。
Step6Vj驗(yàn)證來自RSUi的消息,然后對(duì)Vi的身份進(jìn)行認(rèn)證,最后發(fā)送密鑰協(xié)商消息給Vi。Vj通過TvRj-TRj<Δt判斷時(shí)間戳TRj的新鮮度,TRj是系統(tǒng)當(dāng)前時(shí)間戳。通過等式 SPi=H1(SIDVi||pi)判斷來自RSUi素?cái)?shù)的正確性。驗(yàn)證通過后,對(duì)Vi的身份信息進(jìn)行認(rèn)證,具體方法如下:計(jì)算yi≡c(modpi),判斷等式是否成立。如果等式不成立,拒絕來自Vi的密鑰協(xié)商請(qǐng)求。如果等式成立,Vj隨機(jī)選擇β和時(shí)間戳Tji,計(jì)算ξ2≡Tβ(x)modn,sk≡Tβ(ξ1)modn,Mij=H1(sk||ξ1||ξ2),δ≡modn。然后,Vj對(duì)密鑰協(xié)商消息進(jìn)行簽名,隨機(jī)選擇rvj∈,確定時(shí)間片段tvj,計(jì)算。Vj發(fā)送消息{,tvj,Tji,ξ2,δ}給Vi。
Step7Vi檢驗(yàn)Vj的密鑰協(xié)商消息,檢驗(yàn)通過后,會(huì)話密鑰建立成功。Vi首先通過Tri-Tji<Δt對(duì)時(shí)間戳Tji進(jìn)行檢驗(yàn),Tri是系統(tǒng)當(dāng)前時(shí)間戳。時(shí)間戳檢驗(yàn)通過后,再認(rèn)證Vj的身份,即判斷是否成立。認(rèn)證通過后,計(jì)算 sk′≡Tα(ξ2)modn和=H1(sk′||ξ1||ξ2),判斷等式δ′≡(sk′)modn=δ成立。若成立Vi,Vj之間會(huì)話密鑰協(xié)商成功,會(huì)話密鑰即為sk≡Tα(Tβ(x))modn=Tβ(Tα(x))modn。
1)車輛節(jié)點(diǎn)的加入
當(dāng)新的車輛節(jié)點(diǎn)Vk+2想要成為車輛群的一員時(shí),Vk+2首先需要向TA 發(fā)送加入請(qǐng)求。TA 接收到Vk+2的請(qǐng)求后,選擇新的大素?cái)?shù)pk+2發(fā)送給Vk+2,并確保g是的生成元。Vk+2接收到pk+2后,隨機(jī)選擇初始密鑰xk+2,0∈,計(jì)算公鑰yk+2≡·(modpk+2)并發(fā)送給TA。TA 收到y(tǒng)k+2后對(duì)系統(tǒng)公鑰c進(jìn)行更新,并將{SIDVk+2,pk+2}發(fā)送給RSU。此時(shí)Vk+2就成為車輛群的一員。
從Vk+2的加入過程可以發(fā)現(xiàn),新的車輛節(jié)點(diǎn)的加入,不會(huì)導(dǎo)致原始群內(nèi)車輛的密鑰發(fā)生改變,TA只需要重新計(jì)算c。
2)車輛節(jié)點(diǎn)的追溯與撤銷
當(dāng)經(jīng)過注冊(cè)的車輛節(jié)點(diǎn)Vi在車輛群內(nèi)發(fā)布惡意消息時(shí),TA 會(huì)對(duì)其合法身份進(jìn)行追溯和撤銷。Vi在RSUi覆蓋范圍內(nèi)發(fā)布惡意消息時(shí),RSUi首先獲取Vi在發(fā)送惡意消息使用的pi,然后在假名和素?cái)?shù)列表λSIDV,p中找到TA 為Vi生成的當(dāng)前假名。得到Vi的當(dāng)前假名SIDVi后,發(fā)送假名SIDVi和pi給TA。TA 通過等式H0(IDVi||δsk)=SIDVi、pi對(duì)應(yīng)的l和假名更新種子δIDi判斷該假名對(duì)應(yīng)車輛的真實(shí)身份。獲取Vi的真實(shí)身份后,TA 將會(huì)對(duì)Vi在群內(nèi)的合法身份進(jìn)行撤銷。此外,當(dāng)經(jīng)過注冊(cè)的合法車輛節(jié)點(diǎn)Vj離開TA 建立的車輛節(jié)點(diǎn)群時(shí),TA 也會(huì)撤銷Vj的身份。
TA 撤銷群成員Vi在群內(nèi)的合法身份,只需要將Vi對(duì)應(yīng)的公鑰信息yi修改為另一個(gè)隨機(jī)數(shù),其他車輛節(jié)點(diǎn)信息保持不變,然后更新系統(tǒng)公鑰c。此時(shí)Vi就被撤銷了,其密鑰將不能生成有效的密鑰協(xié)商信息。
從撤銷Vi的過程看,如果系統(tǒng)想要撤銷一個(gè)車輛節(jié)點(diǎn),TA 只需要改變Vi對(duì)應(yīng)的公鑰并重新計(jì)算c。
Vi在第tvi個(gè)時(shí)間片段的私鑰為,則在tvi+1個(gè)時(shí)間片段內(nèi)Vi的私鑰為。當(dāng)tvi+1個(gè)時(shí)間片段對(duì)應(yīng)的私鑰生成后,OBUi會(huì)立刻將第tvi個(gè)時(shí)間片段的私鑰刪除。若tvi=L,車輛節(jié)點(diǎn)Vi輸出的第tvi+1個(gè)時(shí)間片段的密鑰為空串。當(dāng)Vi的時(shí)間片段用完時(shí),Vi重新選擇私鑰并重新計(jì)算對(duì)應(yīng)公鑰yi,TA 也會(huì)更新系統(tǒng)公鑰c。
如果車輛自始至終都使用一個(gè)假名,這個(gè)假名就會(huì)被視為該車輛對(duì)應(yīng)的真名。攻擊者通過收集該車輛假名對(duì)應(yīng)的信息,就可以對(duì)該車輛進(jìn)行攻擊。為了解決使用固定假名導(dǎo)致的安全問題,本文采用假名更新方案對(duì)車輛對(duì)應(yīng)假名進(jìn)行更新。TA 給每一個(gè)注冊(cè)車輛都分配一個(gè)假名更新種子δIDi,當(dāng)車輛節(jié)點(diǎn)Vi訪問Vj當(dāng)前假名對(duì)應(yīng)的素?cái)?shù)后,RSU 向TA 發(fā)送假名更新請(qǐng)求,TA 計(jì)算Vj對(duì)應(yīng)的下一個(gè)假名并公布,記錄對(duì)應(yīng)的素?cái)?shù)pj和l。然后將假名素?cái)?shù)對(duì)應(yīng)列表發(fā)送給RSU。
本文協(xié)議中的車輛節(jié)點(diǎn)的假名和素?cái)?shù)對(duì)應(yīng)表λSIDV,p由RSU 直接存儲(chǔ)和維護(hù),車輛節(jié)點(diǎn)不需要通過訪問TA 獲取λSIDV,p,而是直接通過訪問RSU獲取。當(dāng)車輛節(jié)點(diǎn)Vi從RSUi覆蓋的區(qū)域進(jìn)入經(jīng)過注冊(cè)的RSUj覆蓋的區(qū)域后,Vi向RSUj發(fā)送獲取Vj的素?cái)?shù)的請(qǐng)求,λSIDV,p在RSU 間的傳遞如圖3所示。
圖3 λSIDV,p 在RSU 間的傳遞
BAN 邏輯[18]由Burrows、Abadi 和Needham 提出,主要用于對(duì)認(rèn)證協(xié)議的可靠性形式化證明,來確定信息交換面對(duì)任何惡意節(jié)點(diǎn)時(shí)是否安全。本節(jié)通過BAN 邏輯對(duì)本文提出的認(rèn)證密鑰協(xié)商協(xié)議的安全性進(jìn)行證明。
1)BAN 邏輯符號(hào)
在對(duì)本文協(xié)議安全證明過程中,使用的BAN邏輯符號(hào)如下。
①P|≡X:P相信消息X是真實(shí)可信的。
②P?X:P發(fā)現(xiàn)一條包含X的消息。
③P|~X:P在某個(gè)時(shí)間段發(fā)送過包含X的消息。
④P|?X:P擁有消息X的管轄權(quán)。
⑤#(X):消息X是新鮮的。
⑥(X,Y):X和Y是消息(X,Y)的一部分。
⑦〈X〉Y:使用密鑰Y加密消息X。
⑧PQ:K是P和Q共享的密鑰。
2)BAN 邏輯規(guī)則
本文使用4 個(gè)BAN 邏輯規(guī)則R1~R4 對(duì)協(xié)議安全進(jìn)行形式化證明。
①信息含義(message-meaning)規(guī)則
②隨機(jī)數(shù)證明(nonce-verification)規(guī)則
③管轄權(quán)(jurisdiction)規(guī)則
④新鮮度(freshness)規(guī)則
3)建立2 個(gè)協(xié)議安全證明目標(biāo)
為了表明群內(nèi)車輛節(jié)點(diǎn)相互認(rèn)證密鑰協(xié)商是安全的,需要實(shí)現(xiàn)2 個(gè)協(xié)議安全證明目標(biāo)Goal1 和Goal2。
Goal1:Vj|≡ξ1。Vj相信Vi發(fā)來的密鑰協(xié)商信息。
Goal2:Vi|≡ξ2。Vi相信Vj發(fā)來的密鑰協(xié)商信息。
4)理想化協(xié)議形式
將2.3 節(jié)認(rèn)證和密鑰協(xié)商協(xié)議流程的普遍形式轉(zhuǎn)化為理想化形式。
5)前提假設(shè)
在對(duì)協(xié)議進(jìn)行安全證明之前,需要對(duì)BAN 邏輯做出如下假設(shè)。
6)協(xié)議安全性證明
通過分析理想化協(xié)議形式的安全性,得到2 個(gè)協(xié)議安全證明目標(biāo)Goal1 和Goal2。
從Goal1 和Goal2 的證明過程可以看出,本文提出的協(xié)議能夠有效地實(shí)現(xiàn)群內(nèi)成員相互認(rèn)證密鑰協(xié)商的安全證明。
利用BAN 邏輯模型,模擬了協(xié)議中涉及的所有消息,建立了2 個(gè)協(xié)議安全證明目標(biāo)。并通過合理的假設(shè)前提,完成了對(duì)消息來源的驗(yàn)證、消息新鮮度的驗(yàn)證和消息來源可信度的驗(yàn)證。最后根據(jù)模型規(guī)則證明了預(yù)先設(shè)定的2 個(gè)目標(biāo),完成了對(duì)協(xié)議的形式化證明。任何認(rèn)證密鑰協(xié)商協(xié)議都必須滿足形式化安全證明的要求,否則提出的協(xié)議很可能存在安全漏洞。
為了在VANET 系統(tǒng)中安全通信,認(rèn)證密鑰協(xié)商協(xié)議除了需要對(duì)協(xié)議的語義安全進(jìn)行形式化證明,還需要滿足VANET 系統(tǒng)中一些基本安全需求[19],如身份認(rèn)證性、身份隱私性、消息不可否認(rèn)性、前向和后向安全性。同時(shí)協(xié)議還需要能夠抵御各種惡意攻擊,如女巫攻擊、OBU 和RSU仿冒攻擊、重放攻擊。
1)身份認(rèn)證性。本文提出的認(rèn)證密鑰協(xié)商協(xié)議中,Vj通過檢驗(yàn)Vi對(duì)密鑰協(xié)商消息的簽名來認(rèn)證Vi的身份,即判斷是否成立。所有簽名只有經(jīng)過注冊(cè)的群成員使用私鑰才能生成。攻擊者只有破解了CDLP 和基于擴(kuò)展的切比雪夫混沌映射的CDHP 才能生成正確的簽名信息。通過對(duì)簽名信息的檢驗(yàn),車輛能夠?qū)邮障⒌纳矸葸M(jìn)行驗(yàn)證和消息完整性檢驗(yàn)。所以該密鑰協(xié)商協(xié)議可以實(shí)現(xiàn)Vi和Vj的相互身份認(rèn)證。
2)身份隱私性。整個(gè)密鑰協(xié)商過程中,V i和Vj都使用假名進(jìn)行通信,只有TA 知道它們的真實(shí)身份。如果攻擊者想要通過車輛節(jié)點(diǎn)的假名SIDVi=H0(IDVi||δsk)知道車輛的真實(shí)身份,就必須破解單向哈希函數(shù)難題并獲取系統(tǒng)私鑰。因?yàn)閱蜗蚬:瘮?shù)難題解決的困難性和系統(tǒng)私鑰的隱私性,車輛假名可以有效保護(hù)車輛的真實(shí)身份,實(shí)現(xiàn)車輛節(jié)點(diǎn)在認(rèn)證密鑰協(xié)商過程中的隱私性。
3)消息不可否認(rèn)性。當(dāng)車輛Va在RSUi覆蓋范圍內(nèi)發(fā)布惡意消息時(shí),如果Va不是合法的車輛群內(nèi)成員,其他車輛群內(nèi)成員可以直接拒接Va發(fā)布的消息;如果Va是車輛群內(nèi)成員,RSUi通過檢查Va的發(fā)布信息使用的素?cái)?shù)pa,在λSIDV,p找到pa對(duì)應(yīng)的假名SIDVa,再將假名和對(duì)應(yīng)素?cái)?shù)pa發(fā)給TA。TA通過H0(IDVa||δsk)=、pa對(duì)應(yīng)的l和假名更新種子δIDa就找到Va的真實(shí)身份,完成了對(duì)車輛身份的追溯,確保車輛發(fā)送消息的不可否認(rèn)性。
4)前向和后向安全性。Vi選擇隨機(jī)數(shù)α,計(jì)算出ξ1≡Tα(x)modn。Vj選擇隨機(jī)數(shù)β,計(jì)算出ξ2≡Tβ(x)modn。會(huì)話密鑰skt≡Tαβ(x)modn。Vi和Vj都是通過選擇隨機(jī)數(shù)計(jì)算當(dāng)前會(huì)話密鑰,攻擊者無法通過skt推導(dǎo)出skt-1或者skt+1。所以該方案的會(huì)話密鑰具有前向和后向安全性。
5)抵御女巫攻擊。攻擊者創(chuàng)建大量假名車輛身份發(fā)送錯(cuò)誤信息,以獲得對(duì)對(duì)等網(wǎng)絡(luò)的控制。在本文提出的認(rèn)證密鑰協(xié)商協(xié)議中,會(huì)話雙方都可以通過訪問RSU 對(duì)接收消息中假名對(duì)應(yīng)的素?cái)?shù)進(jìn)行訪問,如果沒有獲取到該假名對(duì)應(yīng)的素?cái)?shù),可以直接拒絕接收的信息;如果獲取到對(duì)應(yīng)的素?cái)?shù),就可以利用該素?cái)?shù)對(duì)消息的簽名進(jìn)行驗(yàn)證。在這個(gè)過程中,會(huì)話車輛并不關(guān)注其他車輛對(duì)該接收消息的信任度,而是通過素?cái)?shù)對(duì)簽名消息進(jìn)行驗(yàn)證。所以本文提出的協(xié)議能夠有效抵御女巫攻擊。
6)抵御OBU 和RSU 仿冒攻擊。對(duì)于OBU 仿冒攻擊,攻擊者A想要仿冒OBUi或OBUj來完成會(huì)話密鑰協(xié)商。如果A不是合法的群成員,就無法通過RSUi的檢驗(yàn)。RSUi根據(jù)A發(fā)來的消息計(jì)算,并判斷等式是否成立,如果等式不成立,RSUi將會(huì)拒絕A的素?cái)?shù)請(qǐng)求。如果A是經(jīng)過注冊(cè)的群成員,那么A就能成功的獲取密鑰協(xié)商的發(fā)起方和接收方對(duì)應(yīng)的素?cái)?shù);但是密鑰協(xié)商雙方通過訪問RSUi都知道對(duì)方對(duì)應(yīng)的素?cái)?shù)pi,然后計(jì)算y i≡c(modpi),對(duì)對(duì)方生成的簽名進(jìn)行檢驗(yàn);攻擊者沒有密鑰協(xié)商雙方的密鑰xi,t,xj,t,就無法生成有效的簽名。所以無論A是不是群成員都無法仿冒OBUi或OBUj,本文協(xié)議可以抵御仿冒攻擊,對(duì)于RSU 仿冒攻擊,當(dāng)車輛節(jié)點(diǎn)Vi向RSU 發(fā)送素?cái)?shù)請(qǐng)求后,得到RSU的回答。Vi通過 SPj=H1(SIDVj||pj)檢驗(yàn)來自RSU 的信息,λSIDV,p只有進(jìn)過注冊(cè)的合法的RSU才能獲取,其他RSU 無法獲取。所以本文協(xié)議可以有效抵御RSU 仿冒攻擊。
7)抵御重放攻擊。在車輛進(jìn)行認(rèn)證和密鑰協(xié)商協(xié)商過程中,惡意車輛監(jiān)聽車輛節(jié)點(diǎn)和RSUi之間的通信,并在當(dāng)前會(huì)話中重放身份驗(yàn)證消息,以模擬該車輛。為避免這種情況,RSUi驗(yàn)證由車輛節(jié)點(diǎn)生成的時(shí)間戳,由于時(shí)間戳是新鮮的,因此重放攻擊消息無法通過驗(yàn)證。同樣,車輛節(jié)點(diǎn)雙方進(jìn)行消息的傳輸?shù)倪^程中,都使用時(shí)間戳來保證消息的新鮮度。此外,每個(gè)會(huì)話都使用不同的時(shí)間戳,這增加了對(duì)重放攻擊的抵抗力。所以本文協(xié)議可以有效抵御重放攻擊。
VANET 系統(tǒng)具有車輛快速移動(dòng)和網(wǎng)絡(luò)拓?fù)淇焖僮兓奶匦?,所以VANET 系統(tǒng)對(duì)通信性能要求比較高。下面將從安全性、計(jì)算開銷和通信開銷這幾個(gè)角度對(duì)本文協(xié)議進(jìn)行分析,并和Cui[16]方案、Bagga[20]方案和Ying[21]方案進(jìn)行比較。
安全是VANET 系統(tǒng)中車輛間進(jìn)行通信最基本的需求。本文對(duì)幾種VANET 系統(tǒng)中認(rèn)證和密鑰協(xié)商方案的安全性進(jìn)行了對(duì)比,具體如表2 所示。Cui方案、Bagga 方案和Ying 方案都忽略了車輛認(rèn)證密鑰協(xié)商的不可否認(rèn)性、身份可撤銷性和群組動(dòng)態(tài)性的安全需求。Cui 方案無法完成身份的雙向認(rèn)證,Bagga 方案無法保證會(huì)話密鑰的前向和后向安全性,Ying 方案也忽略了車輛身份雙向認(rèn)證性且不可以抵御RSU/Fog 仿冒攻擊。本文協(xié)議滿足所有安全需求,有較高的安全性。
本文使用OpenSSL-1.0.1 密碼學(xué)庫,在配置為Intel(R)Core(TM)i5-8500、RAM 為2 GB的Windows 10 系統(tǒng)及Visual Studio 2017 的編譯環(huán)境下對(duì)幾種方案涉及的密碼學(xué)操作進(jìn)行了模擬,密碼學(xué)運(yùn)算的平均執(zhí)行時(shí)間如表3 所示。其中Th、Tc、Texp、Tecm、Teca、Tsym、Tasy分別表示進(jìn)行一次哈希運(yùn)算、切比雪夫映射、模指數(shù)運(yùn)算、橢圓曲線中的點(diǎn)乘運(yùn)算、橢圓曲線中點(diǎn)的加法運(yùn)算、對(duì)稱加密/解密運(yùn)算、非對(duì)稱加密/解密運(yùn)算的執(zhí)行時(shí)間。
表3 密碼學(xué)運(yùn)算的平均執(zhí)行時(shí)間
表4 給出了各方案在認(rèn)證密鑰協(xié)商過程中,在密鑰協(xié)商發(fā)起方Vi、密鑰協(xié)商接收方Vj和RSU 處需要執(zhí)行的密鑰學(xué)運(yùn)算次數(shù)和總的計(jì)算開銷。Cui 方案需要執(zhí)行17 次單向哈希運(yùn)算、18 次切比雪夫映射和3 次對(duì)稱加密運(yùn)算。所以Cui 方案總的計(jì)算開銷為 17Th+18Tc+3Tsym≈362.86 ms。Bagga 方案需要執(zhí)行10 次單向哈希運(yùn)算、12 次橢圓曲線乘法運(yùn)算和4 次橢圓曲線加法運(yùn)算。所以 Bagga 方案總的計(jì)算開銷為10Th+12Tecm+4Teca≈310.19 ms。Ying 方案需要執(zhí)行22 次單向哈希運(yùn)算、4 次模指數(shù)運(yùn)算和4 次非對(duì)稱加密/解密運(yùn)算。所以Ying 方案總的計(jì)算開銷為22Th+4Texp+4Tasy≈272.23 ms。本文協(xié)議需要執(zhí)行16 次單向哈希函數(shù)、6 次切比雪夫映射和4 次模指數(shù)運(yùn)算,所以總的計(jì)算開銷為 16Th+6Tc+4Texp≈223.25 ms。
表4 各方案在認(rèn)證密鑰協(xié)商過程中的計(jì)算開銷
各方案計(jì)算開銷對(duì)比如圖4 所示。從圖4 可以看出,Cui 方案的計(jì)算開銷最大,本文協(xié)議的計(jì)算開銷明顯低于其他方案。與Cui 方案相比,本文協(xié)議的計(jì)算開銷減少了約38%。計(jì)算開銷所導(dǎo)致就是通信時(shí)延。VANET 系統(tǒng)對(duì)通信時(shí)延特別敏感,因?yàn)橹挥械偷耐ㄐ艜r(shí)延才能滿足VANET 拓?fù)淇焖僮兓男枨蟆K韵噍^于其他認(rèn)證和密鑰協(xié)商方案,本文協(xié)議擁有低通信時(shí)延的屬性。
圖4 各方案計(jì)算開銷對(duì)比
本文假設(shè)哈希摘要為160 bit,時(shí)間戳為32 bit,ID 為160 bit,橢圓曲線點(diǎn)乘為320 bit,切比雪夫映射為480 bit,非對(duì)稱加密為1024 bit,對(duì)稱加密為256 bit。各方案在密鑰協(xié)商過程中需要發(fā)送的消息數(shù)量和總的通信開銷如表5 所示。Cui 方案在密鑰協(xié)商過程中需要發(fā)送4 條消息,分別是{h(ki),yi}、{sidi,zi,Ci,MACi}、和{Di},總的通信開銷為2 464 bit。Bagga 方案在密鑰協(xié)商過程中需要發(fā)送 3 條消息,分別是{,Sigx,t1}、{,SigSK,t2}和{,Vm,t3},總的通信開銷為2 176 bit。Ying 方案在密鑰協(xié)商過程中需要發(fā)送 4 條消息,分別是{DIDVi,j,CVi,nj,}、{DIDRi,CVi,nj,}、{C3,Mi,}和{C3,Mi,},總的通信開銷為3 392 bit。本文協(xié)議在密鑰協(xié)商過程中需要發(fā)送6 條消息,分別是{Bvi,Tvi,AIDVi,SIDVj}、{pj,TRi}、{,tvi,Tij,ξ1}、{Bvj,Tvj,AIDVj,SIDVi}、{pi,TRj}和{,tvj,Tji,ξ2,δ},總的通信開銷為3 232 bit。
表5 各方案在密鑰協(xié)商過程中需要發(fā)送的消息數(shù)量和總的通信開銷
各方案通信開銷對(duì)比如圖5 所示。從圖5 可以看出,Ying 方案通信開銷最大,因?yàn)榉桨钢惺褂昧朔菍?duì)稱加密解密運(yùn)算。Bagga 方案通信開銷最小。本文協(xié)議的通信開銷比Ying 方案低但高于Cui 方案和Bagga 方案,主要是本文利用了簽名機(jī)制驗(yàn)證群成員身份并使用了切比雪夫映射進(jìn)行密鑰協(xié)商,在認(rèn)證和密鑰協(xié)商過程中都保證了車輛節(jié)點(diǎn)通信的安全。從4.1 節(jié)的分析也可以看出,相較于Cui 方案和Bagga 方案,本文協(xié)議對(duì)VANET 系統(tǒng)中認(rèn)證密鑰協(xié)商的安全性考慮更加全面。
圖5 各方案通信開銷對(duì)比
本文提出了一種VANET 系統(tǒng)中的基于中國剩余定理的群內(nèi)相互認(rèn)證密鑰協(xié)商協(xié)議。利用中國剩余定理建立動(dòng)態(tài)車輛群,以適應(yīng)VANET 拓?fù)渥兓?。群?nèi)成員利用簽名機(jī)制實(shí)現(xiàn)相互身份認(rèn)證,并利用切比雪夫混沌映射實(shí)現(xiàn)車輛間的密鑰協(xié)商。采用假名更新和私鑰更新機(jī)制,保護(hù)通信雙方隱私安全。通過BAN 邏輯模型證明了該協(xié)議的語義安全。最后,仿真結(jié)果表明,相較于現(xiàn)有方案,所提協(xié)議對(duì)VANET 系統(tǒng)中通信的安全性考慮更加全面,能有效降低通信消耗,并且顯著減少了計(jì)算開銷。