黃海旭
(北京長焜科技有限公司,北京 100088)
隨著5G物聯(lián)網(wǎng)技術(shù)與汽車產(chǎn)業(yè)、交通產(chǎn)業(yè)的深度融合,車聯(lián)網(wǎng)技術(shù)應(yīng)用得到了飛速發(fā)展,被認(rèn)為是5G物聯(lián)網(wǎng)領(lǐng)域中最具發(fā)展?jié)摿Φ膽?yīng)用之一。借助于信息通信技術(shù),車聯(lián)網(wǎng)技術(shù)將實(shí)現(xiàn)車與車、車與人以及車與路之間的互聯(lián)互通,實(shí)現(xiàn)交通智能化,構(gòu)建交通服務(wù)新業(yè)態(tài),從而提高交通運(yùn)行效率,降低交通事故發(fā)生率,為用戶提供更舒適、更高效、更安全的駕乘感受。車路協(xié)同技術(shù)通過道路設(shè)施的智能化、數(shù)字化以及車與路之間實(shí)時(shí)的信息交互,在輔助駕駛階段和自動(dòng)駕駛階段,都可以有效提升駕駛安全性,改善交通擁堵,提高交通運(yùn)行效率。
在車聯(lián)網(wǎng)技術(shù)飛速發(fā)展的同時(shí),信息安全問題越來越受到人們的關(guān)注。V2V通信過程中,車輛信息和用戶隱私如何不被泄露、車輛內(nèi)部的控制數(shù)據(jù)如何不被攻擊者篡改等安全問題,已成為車聯(lián)網(wǎng)商用過程中必須面對的問題[1]。區(qū)塊鏈(Blockchain)匿名認(rèn)證機(jī)制的共識(shí)機(jī)制和不可篡改的特性被認(rèn)為是信息安全的有力保障,將匿名認(rèn)證機(jī)制應(yīng)用到車聯(lián)網(wǎng)的信息安全中,必將為車聯(lián)網(wǎng)信息安全防護(hù)提供一種新的解決方案。
默克爾樹是一種二叉樹,由一個(gè)根節(jié)點(diǎn)、一組中間節(jié)點(diǎn)和一組葉節(jié)點(diǎn)構(gòu)成,如圖1所示。
圖1 默克爾樹
從下往上看,D0、D1、D2和D3是葉子節(jié)點(diǎn)包含的數(shù)據(jù),也就是葉子節(jié)點(diǎn)的value。繼續(xù)往上看,N0、N1、N2和 N3是葉子節(jié)點(diǎn),是將數(shù)據(jù) D0、D1、D2和D3分別進(jìn)行Hash運(yùn)算后得到的Hash值;繼續(xù)往上看,N4和N5是中間節(jié)點(diǎn),分別是N0和N1經(jīng)過Hash運(yùn)算得到的哈希值以及N2和N3經(jīng)過Hash運(yùn)算得到的哈希值,它們是把相鄰的兩個(gè)葉子結(jié)點(diǎn)合并成一個(gè)字符串,然后運(yùn)算這個(gè)字符串的哈希;繼續(xù)往上看,Root節(jié)點(diǎn)是N4和N5經(jīng)過Hash運(yùn)算后得到的哈希值,即這顆默克爾樹的根哈希。
默克爾樹中最下面的大量的葉節(jié)點(diǎn)包含基礎(chǔ)數(shù)據(jù);每個(gè)中間節(jié)點(diǎn)是它的兩個(gè)葉子節(jié)點(diǎn)的哈希,根節(jié)點(diǎn)是它的兩個(gè)子節(jié)點(diǎn)的哈希,代表了默克爾樹的頂部。從默克爾樹的結(jié)構(gòu)可以看出,任意一個(gè)葉子節(jié)點(diǎn)的交易被修改,葉子節(jié)點(diǎn)Hash值會(huì)變更,最終根節(jié)點(diǎn)的Hash值會(huì)改變。所以,確定的根節(jié)點(diǎn)的Hash值可以準(zhǔn)確作為一組交易的唯一摘要[2]。
默克爾樹的具有如下特點(diǎn):
(1)默克爾樹常見的結(jié)構(gòu)是二叉樹,但它也可以是多叉樹,具有樹結(jié)構(gòu)的全部特點(diǎn);
(2)默克爾樹的基礎(chǔ)數(shù)據(jù)不是固定的,因?yàn)樗灰獢?shù)據(jù)經(jīng)過哈希運(yùn)算得到的Hash值;
(3)默克爾樹是從下往上逐層計(jì)算的,就是說每個(gè)中間節(jié)點(diǎn)是根據(jù)相鄰的兩個(gè)葉子節(jié)點(diǎn)組合計(jì)算得出的,而根節(jié)點(diǎn)是根據(jù)兩個(gè)中間節(jié)點(diǎn)組合計(jì)算得出的,所以葉子節(jié)點(diǎn)是基礎(chǔ)[3]。
本方案的系統(tǒng)組成如圖2所示,主要由車輛、數(shù)字證書認(rèn)證中心、授權(quán)中心和Blockchain共4部分組成。
2.1.1 車 輛
通過V2I的方式從RSU上獲取匿名認(rèn)證所需要的數(shù)據(jù),并保存在本地。通過V2V的方式與其他車輛進(jìn)行通信及匿名認(rèn)證,整個(gè)匿名認(rèn)證過程需要基于Blockchain來實(shí)現(xiàn),以保證認(rèn)證過程中的安全性。
2.1.2 數(shù)字證書認(rèn)證中心
在授權(quán)中心下發(fā)頒發(fā)證書或者公鑰撤銷指令時(shí),對車輛進(jìn)行頒發(fā)證書或者公鑰撤銷的過程中,數(shù)字證書認(rèn)證中心不需要知道公鑰和車輛信息的對應(yīng)關(guān)系[4]。同時(shí),數(shù)字證書認(rèn)證中心和授權(quán)中心需要將公鑰和車輛信息進(jìn)行雙重加密后保存到Blockchain中,以防止單獨(dú)一方獲取公鑰和車輛信息的對應(yīng)關(guān)系。
圖2 方案的系統(tǒng)組成
2.1.3 授權(quán)中心
接收車輛上報(bào)的匿名認(rèn)證申請,判斷車輛信息是否合法。如果合法,則授權(quán)數(shù)字證書認(rèn)證中心向該車輛頒發(fā)數(shù)字證書。當(dāng)車輛認(rèn)證過程中發(fā)生糾紛時(shí),對車輛進(jìn)行身份確認(rèn),對于認(rèn)證過期或者未認(rèn)證車輛,有權(quán)要求其重新上報(bào)匿名認(rèn)證申請,在必要時(shí)可以在數(shù)字證書認(rèn)證中心撤銷其公鑰。為了保證系統(tǒng)的安全,授權(quán)中心在完成數(shù)字證書授權(quán)后,需將接收到的車輛信息從本地刪除,不保存公鑰和車輛信息的對應(yīng)關(guān)系。
2.1.4 Blockchain
利用默克爾樹永久地保存公鑰和車輛信息的對應(yīng)關(guān)系,包括數(shù)字證書的認(rèn)證和公鑰撤銷記錄,并提供完整而高效的驗(yàn)證機(jī)制,以方便車輛在通信過程中快速地證明自己的合法性。
2.2.1 證書頒發(fā)
數(shù)字證書認(rèn)證中心在收到授權(quán)中心的授權(quán)后,向車輛A頒發(fā)數(shù)字證書,具體實(shí)施過程如下:
第一步,車輛A使用自己保存的私鑰產(chǎn)生新的公鑰;
第二步,車輛A將新產(chǎn)生的公鑰和能夠證明自己的合法材料上報(bào)給授權(quán)中心;
第三步,授權(quán)中心審核通過后,向數(shù)字證書認(rèn)證中心發(fā)送授權(quán);
第四步,數(shù)字證書認(rèn)證中心在驗(yàn)證授權(quán)的真實(shí)性后,給車輛頒發(fā)數(shù)字證書;
第五步,所有操作都被記錄在Blockchain中。
2.2.2 公鑰撤銷
與頒發(fā)數(shù)字證書不同的是,它不包括公鑰和車輛的身份關(guān)聯(lián)信息。具體步驟與證書頒發(fā)類似,授權(quán)中心向數(shù)字證書認(rèn)證中心發(fā)送授權(quán),數(shù)字證書認(rèn)證中心驗(yàn)證通過后對數(shù)字證書進(jìn)行撤銷[5]。在產(chǎn)生糾紛時(shí),數(shù)字證書認(rèn)證中心向授權(quán)中心提代私鑰,用于在Blockchain中解析出車輛公鑰與車輛身份信息的對應(yīng)關(guān)系,授權(quán)中心根據(jù)車輛公鑰與車輛身份信息的對應(yīng)關(guān)系來追蹤相關(guān)車輛[6]。
在車與車間的V2V通信中,車輛A向車輛B發(fā)送認(rèn)證數(shù)據(jù),用于驗(yàn)證車輛A的公鑰是否合法。每產(chǎn)生一個(gè)新的區(qū)塊或者新增加一個(gè)節(jié)點(diǎn),RSU都會(huì)將用于匿名認(rèn)證的數(shù)據(jù)通過V2I的方式廣播給各個(gè)車輛[7]。車輛B根據(jù)接收到的車輛A發(fā)送的數(shù)據(jù)分別計(jì)算出默克爾根值和MPT根值,如果計(jì)算的值和區(qū)塊中保存的值相同,則說明車輛A的公鑰是合法的。這個(gè)過程即是存在性證明。
公鑰和車輛信息的關(guān)聯(lián)關(guān)系保存在Blockchain中,Blockchain的共識(shí)機(jī)制保證了車聯(lián)網(wǎng)中所有實(shí)體記錄數(shù)據(jù)的一致性。同時(shí),由Blockchain數(shù)據(jù)結(jié)構(gòu)默克爾樹和MTP本身的性質(zhì)可知,其中任何一個(gè)值的修改都會(huì)造成根值的變化,進(jìn)而會(huì)改變區(qū)塊的散列值。攻擊者至少要占有50%以上算力的情況下,才能偽造出被篡改區(qū)塊的所有區(qū)塊。由于只需要計(jì)算若干次的SHA-256即可驗(yàn)證區(qū)塊是否被篡改,想要偽造出被篡改區(qū)塊的所有區(qū)塊是不可能的。因此,Blockchain的特性保證了該方案中數(shù)據(jù)的一致性和安全性[8]。
數(shù)字證書的頒發(fā)和公鑰撤銷都按時(shí)間的順序保存在默克爾樹中,每觸發(fā)一次數(shù)字證書的頒發(fā)和公鑰撤銷都會(huì)改變MPT的根值。改變后的根值會(huì)永久地且不可篡改地保存在Blockchain中。車聯(lián)網(wǎng)中的任何一個(gè)節(jié)點(diǎn)都可以對每一條記錄進(jìn)行驗(yàn)證,這種驗(yàn)證的開銷很低[9],因此數(shù)字證書認(rèn)證中心和授權(quán)中心的所有記錄都是可以驗(yàn)證的,這就保證了證書透明和公鑰撤銷透明。
由于在數(shù)字證書認(rèn)證中心和授權(quán)中心中都并沒有保存公鑰和車輛信息的對應(yīng)關(guān)系,而是分別使用各自的私鑰進(jìn)行雙重非對稱加密后保存到了Blockchain中。因此,在匿名認(rèn)證過程中,車輛之間只能驗(yàn)證公鑰的合法性,而無法獲取公鑰對應(yīng)的車輛信息,除非數(shù)字證書認(rèn)證中心和授權(quán)中心的私鑰同時(shí)被攻擊者破解,才有可能獲得到這種對應(yīng)關(guān)系。
本文在詳細(xì)分析匿名認(rèn)證機(jī)制的基礎(chǔ)上,提出了一種基于匿名認(rèn)證機(jī)制的車聯(lián)網(wǎng)信息安全保護(hù)方案。通過Blockchain的共識(shí)機(jī)制和不可篡改的特性,保證了方案的數(shù)據(jù)一致性和安全性,重點(diǎn)是通過默克爾樹和MTP根值實(shí)現(xiàn)了車聯(lián)網(wǎng)中各節(jié)點(diǎn)間快速、高效的認(rèn)證過程,同時(shí)保證了車輛信息的隱私性。理論分析該方案的系統(tǒng)開銷是可以接受的,但還需進(jìn)一步在真實(shí)場景中進(jìn)行測試驗(yàn)證。