馮霞,崔凱平,謝晴晴,王良民
(1.江蘇大學(xué)汽車與交通工程學(xué)院,江蘇 鎮(zhèn)江 212013;2.江蘇大學(xué)計算機(jī)科學(xué)與通信工程學(xué)院,江蘇 鎮(zhèn)江 212013;3.東南大學(xué)網(wǎng)絡(luò)空間安全學(xué)院,江蘇 南京 211110)
車載自組網(wǎng)(VANET,vehicular ad-hoc network)作為智能交通系統(tǒng)(ITS,intelligent transportation system)的重要組成部分,能夠有效促進(jìn)實(shí)時交通信息的傳播,成為緩解現(xiàn)有交通問題的關(guān)鍵技術(shù)。在實(shí)際交通場景中,車輛能夠通過VANET 實(shí)時獲取與安全相關(guān)的交通信息(如周圍車輛的速度和方向、危險路況等)來提高駕駛體驗(yàn)與行車安全性。然而,VANET 具有動態(tài)拓?fù)浣Y(jié)構(gòu)、節(jié)點(diǎn)分布不均勻、網(wǎng)絡(luò)規(guī)模龐大及移動軌跡可預(yù)測等特點(diǎn)[1],使其更容易受到竊聽攻擊、中間人攻擊、篡改攻擊等,因此隱私安全問題成為制約VANET 發(fā)展的重要因素[2]。匿名認(rèn)證是解決隱私安全問題的有效手段之一。傳統(tǒng)的匿名認(rèn)證算法比較復(fù)雜,尤其是車輛在高密度交通條件下同時發(fā)送認(rèn)證消息時,認(rèn)證效率相對較低[3]。并且,在網(wǎng)絡(luò)帶寬和計算能力有限的情況下,大量的消息傳輸會產(chǎn)生較大的計算開銷和通信開銷[4-6]。因此,提高匿名認(rèn)證效率、降低計算與通信開銷是VANET 認(rèn)證方案的必然要求。
針對VANET 匿名認(rèn)證方案中的效率與計算開銷問題,研究者提出了一系列批量認(rèn)證與輕量級認(rèn)證方案[7-12]。Zhang 等[7]提出了一種用于路側(cè)單元(RSU,road side unit)和車載單元(OBU,on board unit)之間通信的批量認(rèn)證方案,使RSU 能夠同時對多個車輛進(jìn)行身份認(rèn)證,但該方案對OBU 的安全性和算力要求較高。Chim 等[8]提出了一種基于隱私保護(hù)的批量認(rèn)證方案,允許完成身份認(rèn)證的車輛在沒有RSU 的參與下以群組的方式進(jìn)行車與車之間的安全通信,但該方案無法抵御偽造攻擊,攻擊者能夠偽裝成合法車輛發(fā)布交通信息或者與其他車輛進(jìn)行通信。Jiang 等[9]基于二進(jìn)制認(rèn)證樹實(shí)現(xiàn)了一種針對消息簽名的批量認(rèn)證方案,但該方案需要依賴半可信RSU 的參與。Jiang 等[10]在批量認(rèn)證方案中提出使用哈希消息驗(yàn)證碼(HMAC,hash message authentication code)來代替證書撤銷列表(CRL,certificate revocation list),該方案雖然克服了檢索CRL 導(dǎo)致的認(rèn)證開銷,但卻過分依賴于公鑰基礎(chǔ)設(shè)施(PKI,public key infrastructure)。Ying 等[11]提出了一種輕量級的認(rèn)證方案,利用哈希函數(shù)能夠快速計算的特點(diǎn),實(shí)現(xiàn)了OBU、RSU 及可信機(jī)構(gòu)(TA,trusted authority)三者之間的相互認(rèn)證,但該方案無法有效抵御重放攻擊與篡改攻擊。Cui 等[12]提出了一種基于霧的身份認(rèn)證方案,利用霧節(jié)點(diǎn)來代替RSU 實(shí)現(xiàn)OBU 與TA 之間的認(rèn)證,但無法實(shí)現(xiàn)對惡意車輛身份的快速追溯。另外,針對聚合簽名技術(shù)也有許多研究[13-17],然而它們都存在計算開銷較大的問題。
區(qū)塊鏈[18]具有去中心化、可擴(kuò)展及匿名性等特點(diǎn)。利用區(qū)塊鏈技術(shù)可以建立分布式系統(tǒng)架構(gòu),能夠有效解決VANET 中的廣播沖突、資源調(diào)度和隱私保護(hù)等諸多問題[19]。國內(nèi)外許多學(xué)者提出了基于區(qū)塊鏈的認(rèn)證方案[20-23]。然而,現(xiàn)有基于區(qū)塊鏈的認(rèn)證方案在應(yīng)用過程中仍存在三方面的不足:1) 驗(yàn)證者利用智能合約完成消息認(rèn)證,在共識階段會產(chǎn)生額外的時間開銷;2) 缺乏信譽(yù)評估機(jī)制,無法實(shí)現(xiàn)對車輛行為的有效約束;3) 部分方案在缺乏有效身份管理機(jī)制的情況下將數(shù)字證書存儲在區(qū)塊鏈上,造成了存儲資源的浪費(fèi)。
綜上所述,現(xiàn)有研究提出的認(rèn)證方案大多不能滿足VANET 的高效認(rèn)證需求,并且對車輛匿名性、可追溯性及有效撤銷等安全問題考慮不夠全面。本文針對已有研究的不足,提出了一種基于區(qū)塊鏈的分布式匿名認(rèn)證方案。本文主要的研究工作如下。
1) 提出一種基于區(qū)塊鏈的分布式匿名認(rèn)證方案。該方案能夠利用零知識證明對VANET 中車輛進(jìn)行快速匿名認(rèn)證,并采用非線性對的聚合簽名來實(shí)現(xiàn)快速批量認(rèn)證,有效減少認(rèn)證過程中產(chǎn)生的計算量,提高消息認(rèn)證效率。
2) 在認(rèn)證安全方面,本文方案可以實(shí)現(xiàn)對惡意車輛身份的匿名追溯,并基于區(qū)塊鏈對其身份進(jìn)行快速撤銷;還可以基于本地密鑰對車輛的短期匿名身份進(jìn)行及時更新,保證車輛的匿名性和簽名的新鮮性。
3) 安全分析結(jié)果表明,和現(xiàn)有研究相比,本文提出的基于區(qū)塊鏈的分布式匿名認(rèn)證方案在VANET 拓?fù)鋭討B(tài)變化特性的基礎(chǔ)上,對消息認(rèn)證性、身份隱私性及不可否認(rèn)性等安全問題考慮得更加全面。仿真結(jié)果表明,相較于現(xiàn)有同類方案,本文方案能有效降低計算開銷與通信開銷,并顯著提高認(rèn)證效率。
1) 幾何加法。假設(shè)曲線E上存在2 個隨機(jī)點(diǎn)P1和P2,若的連線和曲線E相交于點(diǎn)-P3,則有反之,若則有
2) 標(biāo)量乘法。定義橢圓曲線E上的標(biāo)量乘法為nP=P+P+… +P(n-1次加法),其中n> 0。
3) 橢圓曲線點(diǎn)的階。定義橢圓曲線上一點(diǎn)P的階為滿足nP=Θ的最小正整數(shù)n。
本文提出的分布式匿名認(rèn)證方案基于2 種難破解問題,即橢圓曲線離散對數(shù)問題(ECDLP,elliptic curve discrete logarithm problem)[24]和橢圓曲線計算Diffie-Hellman 問題(ECDHP,computational Diffie-Hellman problem)[25]。
橢圓曲線離散對數(shù)問題(ECDLP)。給定素數(shù)q和橢圓曲線E,選定曲線E上任意一點(diǎn)Q,且滿足Q=xP。其中,整數(shù)x,y∈[2,q-1],P,Q∈G,G為q階加法循環(huán)群,P為群的生成元。攻擊者在已知P,Q的情況下計算x是困難的。
橢圓曲線計算Diffie-Hellman 問題(ECDHP)。給定素數(shù)q和橢圓曲線E,選定曲線E上任意兩點(diǎn)Q,V,且滿足Q=xP和V=yP。其中,整數(shù)x,y∈[2,q-1],P,Q,V∈G,G為q階加法循環(huán)群,P為群的生成元。在隨機(jī)數(shù)x,y未知的情況下,攻擊者在概率多項(xiàng)式時間內(nèi)計算得到xyP∈G是困難的。
如圖1 所示,本文提出的匿名認(rèn)證方案的系統(tǒng)架構(gòu)分為兩層,主要由區(qū)塊鏈和4 種實(shí)體組成,即根機(jī)構(gòu)(RA,root authority)、區(qū)域性可信機(jī)構(gòu)(RTA,regional trusted authority)、RSU 和OBU。架構(gòu)上層主要由RA 和RTA 組成,它們之間能夠進(jìn)行安全通信,并負(fù)責(zé)維護(hù)區(qū)塊鏈網(wǎng)絡(luò)。架構(gòu)下層主要由車輛和RSU 組成,車輛可以利用OBU 通過專用短程通信(DSRC,dedicated short range communication)技術(shù)與 RSU 通信,RSU 能夠通過安全傳輸協(xié)議(如有線傳輸層安全協(xié)議)與RTA 通信[3]。
圖1 系統(tǒng)架構(gòu)
1) RA。RA 是一個完全可信的機(jī)構(gòu),且擁有強(qiáng)大的計算與存儲能力。在VANET 系統(tǒng)中,RA 主要負(fù)責(zé)生成系統(tǒng)參數(shù)、對OBU 和RSU 進(jìn)行注冊以及維護(hù)區(qū)塊鏈網(wǎng)絡(luò)。RA 是唯一存儲車輛真實(shí)身份信息以及能夠揭露車輛真實(shí)身份的機(jī)構(gòu)。當(dāng)有注冊車輛發(fā)生惡意行為時,RA 會對該車輛的身份進(jìn)行準(zhǔn)確追溯和有效撤銷。另外,本文假設(shè)RA 不會妥協(xié)以及與任何實(shí)體進(jìn)行合謀。
2) RTA。RTA 是完全可信的機(jī)構(gòu),且擁有足夠的計算與存儲能力。在VANET 系統(tǒng)中,RTA 負(fù)責(zé)驗(yàn)證、分析來自RSU 和車輛的消息,從而準(zhǔn)確預(yù)測交通分布以優(yōu)化實(shí)時交通信號燈控制等。RTA 受RA 的監(jiān)督,尤其當(dāng)RTA 檢測到惡意車輛時,RTA需要將該車輛的匿名身份信息上傳至RA,以實(shí)現(xiàn)RA 對該惡意車輛身份的準(zhǔn)確追溯。同時,RTA 和RA 作為區(qū)塊鏈共識節(jié)點(diǎn),共同負(fù)責(zé)維護(hù)區(qū)塊鏈網(wǎng)絡(luò)。另外,本文假設(shè)RTA 不會妥協(xié)以及與任何實(shí)體進(jìn)行合謀。
3) RSU。RSU 是一個固定在路邊且擁有計算與通信能力的裝置。它比OBU 具有更多的計算能力,與OBU 共同負(fù)責(zé)收集實(shí)時的車輛及路況信息。本文假設(shè)RSU 為半可信裝置,并在通信環(huán)境較差時輔助車輛向RTA 提交交通信息。
4) OBU。在VANET 系統(tǒng)中,每輛車都配備OBU。OBU 是一種防篡改設(shè)備,可以防止攻擊者獲取存儲在其中的數(shù)據(jù)。OBU 具備有限的計算能力,與RSU 共同負(fù)責(zé)收集實(shí)時路況信息。
5) 區(qū)塊鏈。在本文方案中,RA 與RTA 作為區(qū)塊鏈的共識節(jié)點(diǎn),負(fù)責(zé)維護(hù)區(qū)塊鏈網(wǎng)絡(luò)。區(qū)塊鏈技術(shù)主要應(yīng)用于車輛身份管理與認(rèn)證信息檢索,并且可以有效實(shí)現(xiàn)車輛信息共享與跨區(qū)域認(rèn)證。在車輛身份管理方面,RA 將車輛的匿名身份存儲在區(qū)塊鏈狀態(tài)數(shù)據(jù)庫中。匿名身份的更新與撤銷需要RTA 在該數(shù)據(jù)庫中對車輛匿名身份的狀態(tài)標(biāo)識進(jìn)行修改(見2.5 節(jié)和2.6 節(jié))。在認(rèn)證信息檢索方面,RTA 根據(jù)車輛提供的匿名身份檢索區(qū)塊鏈狀態(tài)數(shù)據(jù)庫,以獲得該匿名身份對應(yīng)的認(rèn)證參數(shù),從而完成零知識證明過程(見2.3 節(jié))。另外,本文利用智能合約實(shí)現(xiàn)對區(qū)塊鏈狀態(tài)數(shù)據(jù)庫的讀寫以及車輛匿名身份的更新和撤銷。因此,RTA 能夠通過調(diào)用部署在區(qū)塊鏈上的智能合約來完成車輛身份更新及認(rèn)證信息檢索過程。
為確保VANET 的通信安全,認(rèn)證方案應(yīng)該具備完整性、匿名性及不可鏈接性等屬性。本文應(yīng)滿足以下安全要求。
1) 匿名性。VANET 具有開放性,因此車輛在通信過程中必須以匿名的方式與其他實(shí)體進(jìn)行信息交互,并且網(wǎng)絡(luò)內(nèi)的任何實(shí)體(RA 除外)都無法獲得某個網(wǎng)絡(luò)參與者的真實(shí)身份,即參與者的真實(shí)身份對RA 以外的任何實(shí)體都是機(jī)密的。
2) 可追溯性。車輛以匿名的方式與其他實(shí)體進(jìn)行通信。當(dāng)車輛發(fā)生惡意行為時,例如廣播虛假路況信息以擾亂正常的交通秩序,RA 能夠?qū)囕v的真實(shí)身份進(jìn)行準(zhǔn)確追溯并拒絕其再次訪問系統(tǒng)。
3) 不可鏈接性。任何實(shí)體都無法將接收到的2 個或多個消息鏈接到同一車輛。
4) 消息驗(yàn)證及完整性。RTA 驗(yàn)證消息發(fā)送主體的身份合法性,并確保消息沒有被其他實(shí)體修改。
同時,本文方案應(yīng)確保能抵御以下常見攻擊[26]。
1) 重放攻擊。攻擊者將先前獲得的合法消息重新發(fā)送給接收者。通過重新發(fā)送消息,攻擊者能夠利用之前的消息誤導(dǎo)其他車輛并擾亂正常的交通秩序。
2) 偽造攻擊。攻擊者通過偽造授權(quán)車輛的簽名以冒充合法車輛。攻擊者使用虛假的合法身份向其他車輛/基礎(chǔ)設(shè)施發(fā)送偽造信息,進(jìn)而造成交通事故或交通擁堵以及擾亂交通秩序等。
3) 篡改攻擊[27]。攻擊者對驗(yàn)證消息進(jìn)行刪除、修改等,導(dǎo)致合法車輛認(rèn)證失敗或令惡意車輛成功欺騙認(rèn)證者。
4) 中間人攻擊。攻擊者同時與相互通信的雙方保持通信連接,并且使相互通信的雙方相信彼此在一個安全的連接中進(jìn)行信息交互,從而獲得有用信息,以達(dá)到攻擊的目的[28]。另外,攻擊者還可能會攔截認(rèn)證請求者發(fā)送的消息,然后將偽造的消息發(fā)送給接收者。中間人攻擊會導(dǎo)致嚴(yán)重的通信數(shù)據(jù)泄露。
為滿足VANET 通信過程中的安全與隱私保護(hù)需求,本文提出的基于區(qū)塊鏈的分布式匿名認(rèn)證方案包含6 個階段,即系統(tǒng)初始化階段、匿名身份生成階段、簽名及認(rèn)證階段、信譽(yù)評估階段、匿名身份更新階段、匿名身份撤銷階段,如圖2 所示。方案涉及的參數(shù)及定義如表1 所示。
表1 方案涉及的參數(shù)及定義
圖2 方案流程
RA 與RTA 負(fù)責(zé)系統(tǒng)初始化,詳細(xì)步驟如下。
1) RA 設(shè)定安全參數(shù)λ。如1.1 節(jié)所述,RA 基于橢圓曲線E上的點(diǎn)及無窮遠(yuǎn)點(diǎn)Θ構(gòu)建一個橢圓曲線加法群Gp。加法群Gp的階為q,生成元為P。
2) RA 生成系統(tǒng)主密鑰用于加密車輛真實(shí)身份。RA 選取隨機(jī)數(shù)作為系統(tǒng)私鑰skm,并計算相應(yīng)公鑰pkm。RTA 同樣生成本地密鑰對用于認(rèn)證車輛身份。RTA 選取隨機(jī)數(shù)作為本地私鑰skr,并計算相應(yīng)公鑰pkr。
4) 車輛vi基于參數(shù)集合向RA發(fā)送包含真實(shí)身份IDi的注冊信息,RA 與RTA 將為車輛生成匿名身份(見2.2 節(jié))。同時,RSU 也在初始化階段注冊,并以安全的方式獲取系統(tǒng)參數(shù)。
RA 與RTA 為車輛生成匿名身份。在消息認(rèn)證過程中,車輛將以匿名身份發(fā)送認(rèn)證信息,以保護(hù)其真實(shí)身份信息不被泄露。同時,通過匿名身份,系統(tǒng)可以實(shí)現(xiàn)有條件的隱私保護(hù)。在必要時,RA可以通過認(rèn)證消息揭露車輛的真實(shí)身份。車輛匿名身份生成過程如圖3 所示,其具體流程如下。
圖3 車輛匿名身份生成過程
4) RA 設(shè)置車輛的初始信譽(yù)值Cr,并將IDip和字段以鍵值對的形式存儲在區(qū)塊鏈狀態(tài)數(shù)據(jù)庫中。RA 將含有匿名身份的消息發(fā)送給車輛vi。車輛將存儲在OBU 中。
在認(rèn)證過程中,為保證消息的真實(shí)性和完整性,車輛必須對發(fā)送的認(rèn)證進(jìn)行簽名。具體來說,車輛vi基于匿名身份IDi利用簽名私鑰對消息Mi進(jìn)行簽名,其過程如圖4 所示,具體流程如下。
圖4 消息簽名及認(rèn)證過程
1) 車輛vi選取一個隨機(jī)數(shù),并且計算Ri=Pτ。
3) 車輛vi向RTA 發(fā)送包含交通信息的認(rèn)證消息
在認(rèn)證過程中,RTA 可能同時收到來自不同車輛的簽名。通過聚合簽名可以有效提高RTA 對簽名的驗(yàn)證效率,其過程如圖5 所示,具體流程如下。
圖5 基于聚合簽名的消息認(rèn)證過程
4) 當(dāng)出現(xiàn)無效簽名導(dǎo)致聚合簽名驗(yàn)證失效時,可以通過二進(jìn)制搜索來驗(yàn)證聚合簽名[23],即RTA 先將接收到的簽名進(jìn)行排序,并將簽名均分為兩部分;然后,將這兩部分的簽名分別進(jìn)行聚合、驗(yàn)證。對驗(yàn)證失敗的那部分簽名重復(fù)進(jìn)行均分、聚合、驗(yàn)證操作,直至找到全部無效的簽名。該方法可以有效避免聚合驗(yàn)證失敗后所有簽名都被判定為無效的問題。
為了對車輛行為進(jìn)行有效約束,本文方案在區(qū)塊鏈架構(gòu)的基礎(chǔ)上引入了信譽(yù)評估機(jī)制[29]。RA 首先設(shè)置一個信譽(yù)閾值并廣播?;谛抛u(yù)評估機(jī)制,當(dāng)車輛提供有效交通信息時,其信譽(yù)值會增加;反之其信譽(yù)值會被扣除。當(dāng)車輛的信譽(yù)值低于信譽(yù)閾值時,車輛的匿名身份會被撤銷。具體而言,針對車輛vi提供的交通信息,只有當(dāng)n輛車提供與之相同或相似的交通信息時,車輛vi提供的交通信息才會被RTA 接收。另外,本文設(shè)定即車輛vi信譽(yù)值越低,就需要越多的其他車輛提供與之相同或相似的交通信息;車輛vi提供的交通信息越難被接收,車輛的信譽(yù)值就越難恢復(fù),以此有效約束車輛行為。
本文方案中的信譽(yù)值計算方法為
其中,ni表示車輛在單位時間內(nèi)車輛提交有效交通信息的數(shù)量,ΔTc表示一個單位時間,ωj表示第j個交通信息的權(quán)重,該值由RTA 進(jìn)行計算。
其中,mi表示車輛i的惡意行為總數(shù),t表示目前時間,tj表示車輛i第j次惡意行為的時間,α(β)表示懲罰系數(shù)。
在進(jìn)行消息驗(yàn)證后,RTA 基于車輛提供的交通信息的有效性重新評估車輛的信譽(yù)值,并將包含車輛最新信譽(yù)值'Cr 的字段與參數(shù)IDp重新存儲在區(qū)塊鏈狀態(tài)數(shù)據(jù)庫中。
當(dāng)車輛的匿名身份失效時,車輛需要對匿名身份進(jìn)行更新,具體流程如下。
基于該匿名身份更新機(jī)制,本文方案可以采用預(yù)加載若干匿名身份的方法來抵抗可鏈接性。車輛可以基于較短的匿名身份有效期ΔT加載一個匿名身份池,匿名身份池中裝載的匿名身份在失效時能夠進(jìn)行及時的更新。
當(dāng)車輛進(jìn)行惡意行為時,RTA 與RA 能夠?qū)囕v身份進(jìn)行有效追溯,并對其全部的匿名身份進(jìn)行撤銷,具體流程如下。
另外,當(dāng)車輛主動申請撤銷某一匿名身份時,RTA與RA 需要驗(yàn)證車輛密鑰的合法性,具體流程如下。
針對所提方案在消息認(rèn)證過程中的具體實(shí)現(xiàn),本節(jié)從正確性與安全性的角度對其進(jìn)行驗(yàn)證和分析。
本節(jié)將從安全要求與抵御攻擊兩方面對本文協(xié)議進(jìn)行安全性分析。針對安全要求,本節(jié)將從匿名性、可追溯性、不可鏈接性以及消息驗(yàn)證及完整性等方面展開。同時,考慮到密鑰更新的安全性,本文還對密鑰生成過程中涉及的前向和后向安全性進(jìn)行分析。針對安全要求的分析細(xì)節(jié)如下。
2) 可追溯性。本文方案中,只有RA 可以揭露車輛的真實(shí)身份。RTA 根據(jù)惡意車輛的匿名身份可以計算得到向RA 發(fā)送加密字段基于本地私鑰從該字段中恢復(fù)出參數(shù),并通過計算等式最終得到車輛的真實(shí)身份IDi。因此,本文方案可以有效實(shí)現(xiàn)對惡意車輛的身份追溯。
本節(jié)對常見的抵御攻擊進(jìn)行分析,主要包括重放攻擊、偽造攻擊、篡改攻擊及中間人攻擊,其分析細(xì)節(jié)如下。
1) 重放攻擊。車輛在驗(yàn)證消息中添加時間戳ti即,并對其簽名以確保其為最新消息。RTA 能夠基于時間戳檢測重放攻擊。因此本文方案能夠有效抵御重放攻擊。
2) 偽造攻擊。根據(jù)前文的證明,基于ECDLP,攻擊者無法獲取RTA 或簽名者的私鑰。因此,攻擊者無法假冒簽名者的身份來偽造驗(yàn)證消息并使該消息滿足等式
4) 中間人攻擊。當(dāng)攻擊者在OBU 與RTA 之間進(jìn)行中間人攻擊時,需要假冒成OBU 向RTA 發(fā)送驗(yàn)證消息,同時假冒成RTA 向OBU 發(fā)送反饋消息。然而,所提方案能夠有效抵御偽造攻擊,因此攻擊者無法仿冒為其他合法實(shí)體。另外,由于消息簽名的存在,攻擊者只能截獲和轉(zhuǎn)發(fā)消息,而無法篡改消息。
VANET 系統(tǒng)具有車輛移動速度快、動態(tài)網(wǎng)絡(luò)拓?fù)涞忍攸c(diǎn),下面將從安全性、計算開銷和通信開銷等方面對本文方案進(jìn)行有效分析。
本文使用AMD Ryzen 7 5800H、Radeon Graphics CPU @ 3.20 GHz CPU、16 GB RAM 進(jìn)行仿真實(shí)驗(yàn),并基于Hyperledger Fabric v2.0.0 搭建聯(lián)盟鏈網(wǎng)絡(luò)。本文在區(qū)塊鏈網(wǎng)絡(luò)中使用Raft 共識機(jī)制,并基于Golang編寫智能合約?;诒疚姆桨讣軜?gòu),本文在Fabric 聯(lián)盟鏈中構(gòu)建了2 個組織,組織內(nèi)的節(jié)點(diǎn)分別代表RA和RTA。RA 和RTA 作為背書節(jié)點(diǎn),當(dāng)來自背書節(jié)點(diǎn)的有效簽名數(shù)量超過2n+1 個時,網(wǎng)絡(luò)內(nèi)的交易將被提交至排序節(jié)點(diǎn),進(jìn)而被打包至區(qū)塊。本文實(shí)驗(yàn)構(gòu)建了單通道下的4 個peer 節(jié)點(diǎn)(分別屬于2 個組織,即org1和org2)、3 個order 節(jié)點(diǎn)和一個客戶端節(jié)點(diǎn)。此外,由于車輛的移動性和有限的計算能力,車輛不會作為背書節(jié)點(diǎn)并且無權(quán)訪問區(qū)塊鏈通道。
安全性是VANET 系統(tǒng)中車輛利用通信協(xié)議與其他實(shí)體進(jìn)行信息交互的最基本需求。本節(jié)將所提方案與幾種VANET 系統(tǒng)中的認(rèn)證方案進(jìn)行了對比,具體包括Kamil 方案[30],Gayathri 方案[31],Liu方案[32]、Sikarwar 方案[33]、Wang 方案[34]及Yang方案[35]。本文方案與其他方案主要在匿名性、可追溯性、可撤銷性及抵御攻擊等方面進(jìn)行比較,具體比較細(xì)節(jié)如表2 所示。其中,Kamil 方案能夠?qū)崿F(xiàn)匿名性、可追溯性以及批量認(rèn)證等,且能夠有效抵御重放攻擊、中間人攻擊、篡改攻擊以及偽造攻擊等,但該方案缺乏對車輛身份可撤銷性的分析。Gayathri 方案和Liu 方案能夠有效實(shí)現(xiàn)匿名性、可撤銷性及可追溯性,但沒有分析是否能夠有效抵御重放攻擊以及中間人攻擊。Sikarwar 方案能夠有效實(shí)現(xiàn)匿名性、可追溯性等,但不能滿足可撤銷性。Wang 方案能夠滿足常見的安全需求,但不支持高效的批量認(rèn)證。Yang 方案能夠滿足可撤銷性、可追溯性以及批量認(rèn)證等,且能夠有效抵御篡改攻擊及偽造攻擊等,但該方案沒有對中間人攻擊等其他常見攻擊進(jìn)行分析。通過與其他方案比較,本文方案滿足常見的安全需求,且能夠?qū)崿F(xiàn)高效的批量認(rèn)證。
表2 本文方案與其他方案的安全性對比
為了更有效地分析本文方案的計算開銷,且考慮到需要與不同類型的方案進(jìn)行對比,本文選擇2 種基于雙線性配對的方案,即Liu 方案與Sikarwar 方案;以及4 種基于非雙線性配對的方案,即Gayathri 方案、Kamil 方案、Wang 方案和Yang 方案作為對比方案。本文使用C/C++密碼學(xué)庫MIRACL 對幾種方案設(shè)計的密碼學(xué)操作進(jìn)行了模擬測試??紤]到測試的準(zhǔn)確性,每一種密碼學(xué)操作都基于1 000 次計算并取平均值作為最終結(jié)果,具體如表3 所示。其中,Tbp、Tsbp、分別表示進(jìn)行一次雙線性配對操作、基于雙線性配對的標(biāo)量乘法計算、基于雙線性配對的MapToPoint 哈希操作、基于雙線性配對的點(diǎn)加操作、基于橢圓曲線的標(biāo)量乘操作、基于橢圓曲線的點(diǎn)加操作、哈希運(yùn)算的執(zhí)行時間。
表3 密碼學(xué)運(yùn)算的平均執(zhí)行時間
表4 給出了各方案在身份認(rèn)證過程中的計算開銷。Kamil 方案生成簽名的計算開銷為3Tsec+2Tpec+3Th≈0.493 ms,進(jìn)行單一認(rèn)證的計算開銷為4Tsec+3Tpec+3Th≈0.657 ms,批量認(rèn)證的計算開銷為(3n+1)Tsec+3nTpec+3nTh。Gayathri 方案生成簽名的計算開銷為2Tsec≈0.324 ms,進(jìn)行單一認(rèn)證的計算開銷為5Tsec+3Tpbp≈0.813 ms,批量認(rèn)證的計算開銷為5nTsec+3nTpbp。Liu 方案生成簽名的計算開銷為3Tsec+3Th≈0.489 ms,進(jìn)行單一認(rèn)證的計算開銷為2Tbp+2Tsbp+2Th≈8.246 ms,批量認(rèn)證的計算開銷為2Tbp+(n+1)Tsbp+2nTh。Sikarwar 方案生成簽名的計算開銷為Tsec+Th≈0.163 ms,進(jìn)行單一認(rèn)證的計算開銷為3Tbp+Tsbp+Th≈11.695 ms,批量認(rèn)證的計算開銷為3Tbp+nTsbp+3nTpbp+nTh。Wang 方案生成簽名的計算開銷為4Tsec+Tpec+5Th≈0.655 ms,進(jìn)行單一認(rèn)證的計算開銷為4Tsec+Tpec+6Th≈0.656 ms,批量認(rèn)證的計算開銷為4nTsec+nTpec+6nTh。Yang 方案生成 簽名的 計算開銷為2Tsec+Tpec+4Th≈0.33 ms,進(jìn)行單一認(rèn)證的計算開銷為4Tsec+2Tpec+4Th≈0.656 ms,批量認(rèn)證的計算開銷為4nTsec+2nTpec+4nTh。本文方案生成簽名的計算開銷為2Tsec+Th≈0.325 ms,進(jìn)行單一認(rèn)證的計算開銷為4Tsec+Tpec+2Th≈0.652 ms,進(jìn)行批量認(rèn)證的計算開銷為(2n+2)Tsec+(2n-1)Tpec+2nTh。
表4 各方案在身份認(rèn)證過程中的計算開銷
當(dāng)車輛數(shù)量分別為20、40、60、80、100、120時,各方案進(jìn)行批量認(rèn)證的計算開銷如圖6 所示。從圖6 中可以看出,隨著車輛數(shù)量的不斷增加,各方案的計算開銷也逐漸增大。其中,Gayathri 方案的計算開銷最大,本文方案的計算開銷最低。當(dāng)車輛數(shù)量為100 時,本文方案的計算開銷分別比Kamil 方案、Gayathri 方案、Liu 方案、Sikarwar 方案、Wang 方案及Yang 方案減少了約32.9%、59.01%、20.1%、26.54%、49.2%及49.2%。
圖6 各方案進(jìn)行批量認(rèn)證的計算開銷
本文構(gòu)建雙線性配對為e:G1×G1→G2。G1為加法循環(huán)群,該群元素的大小為64 × 2=128 byte?;跈E圓曲線E上的點(diǎn)及無窮遠(yuǎn)點(diǎn)Θ構(gòu)建橢圓曲線加法群G,該群元素大小為20 × 2=40 byte 。時間戳大小為4 byte,哈希值大小為20 byte,整數(shù)域中的元素大小為20 byte。各方案在認(rèn)證過程中的通信開銷如表5 所示。
表5 各方案在認(rèn)證過程中的通信開銷
各方案認(rèn)證過程中通信開銷對比如圖7 所示。從圖7 中可以看出,本文方案的通信開銷低于其他方案。這是由于本文方案在認(rèn)證過程中沒有依賴于雙線性配對操作,且基于區(qū)塊鏈?zhǔn)褂酶儆嬎悴襟E完成身份認(rèn)證過程,因此相較于其他方案,本文方案需要傳輸?shù)南⒃M體積更小,通信開銷也相對較少。
圖7 各方案認(rèn)證過程中通信開銷對比
為了更好地分析車載自組網(wǎng)場景下的實(shí)際需求,本文進(jìn)一步考慮了通信時延對認(rèn)證開銷的影響。因此,基于實(shí)際車載自組網(wǎng)場景利用Network Simulator 2 對各方案的通信模塊進(jìn)行了仿真,結(jié)果如圖8 所示。當(dāng)車輛數(shù)量分別為20、40、60、80、100時,Kamil 方案的通信時延為46.641 ms、90.732 ms、137.112 ms、182.839 ms、228.139 ms;Gayathri 方案的通信時延分別為46.991 ms、91.332ms、137.055 ms、182.982 ms、228.147 ms;Liu 方案的通信時延分別為39.445 ms、78.245 ms、116.646 ms、156.105 ms、193.479 ms;Sikarwar 方案的通信時延分別為73.805 ms、145.039ms、217.473 ms、289.726 ms、360.320 ms;Wang 方案的通信時延分別為32.265 ms、63.798 ms、94.232 ms、125.265 ms、157.385 ms;Yang 方案的通信時延分別為24.398 ms、49.652 ms、73.745 ms、94.532 ms、120.645 ms;本文方案的通信時延分別為21.182 ms、40.191 ms、61.845 ms、80.534 ms、102.276 ms。在通信時延方面,本文方案具有相較于其他方案更短的通信時延。這是由于本文方案的通信開銷低于其他方案,因此會產(chǎn)生更短的通信時延。
圖8 各方案通信時延對比
在考慮通信時延的情況下,本文計算了各方案的實(shí)際認(rèn)證開銷,如圖9 所示。從圖9 中可以看出,各方案的認(rèn)證時延與車輛數(shù)呈近線性關(guān)系。其中,當(dāng)車輛數(shù)量為100 時,Sikarwar 方案認(rèn)證開銷最高,而本文方案的總體認(rèn)證開銷分別比Kamil 方案、Gayathri方案、Liu 方案、Sikarwar 方案、Wang 方案及Yang方案減少了約40.54%、56.23%、42.41%、66.61%、39.26%及27.28%。這是因?yàn)楸疚姆桨冈谟嬎銖?fù)雜度與通信復(fù)雜度方面均優(yōu)于其他方案。在計算復(fù)雜度方面,本文方案沒有使用計算成本較高的雙線性配對操作,并且相較于其他方案具有更少的計算步驟。因此,本文方案具有更少的計算開銷。在通信復(fù)雜度方面,本文方案基于區(qū)塊鏈實(shí)現(xiàn),驗(yàn)證者通過檢索區(qū)塊鏈狀態(tài)數(shù)據(jù)庫獲得部分認(rèn)證參數(shù),有效減少了車輛在實(shí)際認(rèn)證過程中的數(shù)據(jù)通信需求。因此,本文方案具有更少的通信開銷。綜上,在車載自組網(wǎng)實(shí)際應(yīng)用場景中,本文方案具有更低的總體認(rèn)證開銷。
圖9 各方案認(rèn)證時延對比
為了更加清晰地分析本文方案中的信譽(yù)評估機(jī)制,本文選取參數(shù)λ1=1,λ2=0.5,ΔTc=20 s,α(β)=0.5。交通信息權(quán)重值ω需要由RTA 進(jìn)行評定計算,這里本文只做舉例。假設(shè)在消息認(rèn)證過程中,車輛vi在18 s 時進(jìn)行了一次惡意行為。由圖10可知,當(dāng)時間為0~18 s 時,車輛vi無惡意行為,此時負(fù)向影響值正向影響值曲線與信譽(yù)值曲線重合。當(dāng)時間為18 s 時,車輛在消息認(rèn)證過程中進(jìn)行了一次惡意行為,導(dǎo)致負(fù)向影響值絕對值急劇增大,同時,該車輛vi的信譽(yù)值也隨之下降。惡意行為導(dǎo)致車輛vi在時間為19~40 s 時提供的交通信息較少地被RTA 接收,正向影響值也隨之下降,車輛vi的信譽(yù)值此時處于較低的水平。當(dāng)時間為40~60 s 時,車輛vi的正向影響值逐漸升高,負(fù)向影響值絕對值逐漸降低,此時車輛vi的信譽(yù)值逐漸恢復(fù)到正常水平。當(dāng)車輛出現(xiàn)較多惡意行為時,信譽(yù)值恢復(fù)至正常水平的時間將會大幅增加;當(dāng)車輛的信譽(yù)值低于信譽(yù)閾值時,車輛的匿名身份將會被撤銷。因此,本文方案的信譽(yù)值評估機(jī)制能夠有效約束車輛行為。
圖10 信譽(yù)評估分析
本文提出一種基于區(qū)塊鏈的分布式匿名認(rèn)證方案。車輛利用簽名私鑰對認(rèn)證消息進(jìn)行簽名,而區(qū)域性可信機(jī)構(gòu)能夠利用零知識證明對簽名消息進(jìn)行快速認(rèn)證。另外,區(qū)域性可信機(jī)構(gòu)能夠利用簽名聚合機(jī)制可以將來自不同車輛的單一簽名聚合為一個短簽名進(jìn)行批量認(rèn)證。在認(rèn)證安全方面,本文方案能夠利用簽名信息對惡意車輛身份進(jìn)行準(zhǔn)確追溯,并通過區(qū)塊鏈狀態(tài)數(shù)據(jù)庫對車輛身份實(shí)現(xiàn)快速撤銷。另外,該方案在區(qū)塊鏈架構(gòu)的基礎(chǔ)上引入了信譽(yù)評估機(jī)制,實(shí)現(xiàn)對車輛行為的有效約束。最后,安全分析與仿真實(shí)驗(yàn)表明,本文方案能夠滿足匿名性、不可鏈接性等多種安全需求,且相較于現(xiàn)有同類方案,本文方案能有效降低計算與通信開銷,并顯著提高認(rèn)證效率。本文雖然已經(jīng)涉及車輛信譽(yù)評估,但是缺少具體的激勵機(jī)制,基于所提方案,考慮如何設(shè)置合理的激勵機(jī)制是下一步的主要工作方向。