黃海旭
(北京長焜科技有限公司,北京 100088)
隨著5G物聯網技術與汽車產業、交通產業的深度融合,車聯網技術應用得到了飛速發展,被認為是5G物聯網領域中最具發展潛力的應用之一。借助于信息通信技術,車聯網技術將實現車與車、車與人以及車與路之間的互聯互通,實現交通智能化,構建交通服務新業態,從而提高交通運行效率,降低交通事故發生率,為用戶提供更舒適、更高效、更安全的駕乘感受。車路協同技術通過道路設施的智能化、數字化以及車與路之間實時的信息交互,在輔助駕駛階段和自動駕駛階段,都可以有效提升駕駛安全性,改善交通擁堵,提高交通運行效率。
在車聯網技術飛速發展的同時,信息安全問題越來越受到人們的關注。V2V通信過程中,車輛信息和用戶隱私如何不被泄露、車輛內部的控制數據如何不被攻擊者篡改等安全問題,已成為車聯網商用過程中必須面對的問題[1]。區塊鏈(Blockchain)匿名認證機制的共識機制和不可篡改的特性被認為是信息安全的有力保障,將匿名認證機制應用到車聯網的信息安全中,必將為車聯網信息安全防護提供一種新的解決方案。
默克爾樹是一種二叉樹,由一個根節點、一組中間節點和一組葉節點構成,如圖1所示。

圖1 默克爾樹
從下往上看,D0、D1、D2和D3是葉子節點包含的數據,也就是葉子節點的value。繼續往上看,N0、N1、N2和 N3是葉子節點,是將數據 D0、D1、D2和D3分別進行Hash運算后得到的Hash值;繼續往上看,N4和N5是中間節點,分別是N0和N1經過Hash運算得到的哈希值以及N2和N3經過Hash運算得到的哈希值,它們是把相鄰的兩個葉子結點合并成一個字符串,然后運算這個字符串的哈希;繼續往上看,Root節點是N4和N5經過Hash運算后得到的哈希值,即這顆默克爾樹的根哈希。
默克爾樹中最下面的大量的葉節點包含基礎數據;每個中間節點是它的兩個葉子節點的哈希,根節點是它的兩個子節點的哈希,代表了默克爾樹的頂部。從默克爾樹的結構可以看出,任意一個葉子節點的交易被修改,葉子節點Hash值會變更,最終根節點的Hash值會改變。所以,確定的根節點的Hash值可以準確作為一組交易的唯一摘要[2]。
默克爾樹的具有如下特點:
(1)默克爾樹常見的結構是二叉樹,但它也可以是多叉樹,具有樹結構的全部特點;
(2)默克爾樹的基礎數據不是固定的,因為它只要數據經過哈希運算得到的Hash值;
(3)默克爾樹是從下往上逐層計算的,就是說每個中間節點是根據相鄰的兩個葉子節點組合計算得出的,而根節點是根據兩個中間節點組合計算得出的,所以葉子節點是基礎[3]。
本方案的系統組成如圖2所示,主要由車輛、數字證書認證中心、授權中心和Blockchain共4部分組成。
2.1.1 車 輛
通過V2I的方式從RSU上獲取匿名認證所需要的數據,并保存在本地。通過V2V的方式與其他車輛進行通信及匿名認證,整個匿名認證過程需要基于Blockchain來實現,以保證認證過程中的安全性。
2.1.2 數字證書認證中心
在授權中心下發頒發證書或者公鑰撤銷指令時,對車輛進行頒發證書或者公鑰撤銷的過程中,數字證書認證中心不需要知道公鑰和車輛信息的對應關系[4]。同時,數字證書認證中心和授權中心需要將公鑰和車輛信息進行雙重加密后保存到Blockchain中,以防止單獨一方獲取公鑰和車輛信息的對應關系。

圖2 方案的系統組成
2.1.3 授權中心
接收車輛上報的匿名認證申請,判斷車輛信息是否合法。如果合法,則授權數字證書認證中心向該車輛頒發數字證書。當車輛認證過程中發生糾紛時,對車輛進行身份確認,對于認證過期或者未認證車輛,有權要求其重新上報匿名認證申請,在必要時可以在數字證書認證中心撤銷其公鑰。為了保證系統的安全,授權中心在完成數字證書授權后,需將接收到的車輛信息從本地刪除,不保存公鑰和車輛信息的對應關系。
2.1.4 Blockchain
利用默克爾樹永久地保存公鑰和車輛信息的對應關系,包括數字證書的認證和公鑰撤銷記錄,并提供完整而高效的驗證機制,以方便車輛在通信過程中快速地證明自己的合法性。
2.2.1 證書頒發
數字證書認證中心在收到授權中心的授權后,向車輛A頒發數字證書,具體實施過程如下:
第一步,車輛A使用自己保存的私鑰產生新的公鑰;
第二步,車輛A將新產生的公鑰和能夠證明自己的合法材料上報給授權中心;
第三步,授權中心審核通過后,向數字證書認證中心發送授權;
第四步,數字證書認證中心在驗證授權的真實性后,給車輛頒發數字證書;
第五步,所有操作都被記錄在Blockchain中。
2.2.2 公鑰撤銷
與頒發數字證書不同的是,它不包括公鑰和車輛的身份關聯信息。具體步驟與證書頒發類似,授權中心向數字證書認證中心發送授權,數字證書認證中心驗證通過后對數字證書進行撤銷[5]。在產生糾紛時,數字證書認證中心向授權中心提代私鑰,用于在Blockchain中解析出車輛公鑰與車輛身份信息的對應關系,授權中心根據車輛公鑰與車輛身份信息的對應關系來追蹤相關車輛[6]。
在車與車間的V2V通信中,車輛A向車輛B發送認證數據,用于驗證車輛A的公鑰是否合法。每產生一個新的區塊或者新增加一個節點,RSU都會將用于匿名認證的數據通過V2I的方式廣播給各個車輛[7]。車輛B根據接收到的車輛A發送的數據分別計算出默克爾根值和MPT根值,如果計算的值和區塊中保存的值相同,則說明車輛A的公鑰是合法的。這個過程即是存在性證明。
公鑰和車輛信息的關聯關系保存在Blockchain中,Blockchain的共識機制保證了車聯網中所有實體記錄數據的一致性。同時,由Blockchain數據結構默克爾樹和MTP本身的性質可知,其中任何一個值的修改都會造成根值的變化,進而會改變區塊的散列值。攻擊者至少要占有50%以上算力的情況下,才能偽造出被篡改區塊的所有區塊。由于只需要計算若干次的SHA-256即可驗證區塊是否被篡改,想要偽造出被篡改區塊的所有區塊是不可能的。因此,Blockchain的特性保證了該方案中數據的一致性和安全性[8]。
數字證書的頒發和公鑰撤銷都按時間的順序保存在默克爾樹中,每觸發一次數字證書的頒發和公鑰撤銷都會改變MPT的根值。改變后的根值會永久地且不可篡改地保存在Blockchain中。車聯網中的任何一個節點都可以對每一條記錄進行驗證,這種驗證的開銷很低[9],因此數字證書認證中心和授權中心的所有記錄都是可以驗證的,這就保證了證書透明和公鑰撤銷透明。
由于在數字證書認證中心和授權中心中都并沒有保存公鑰和車輛信息的對應關系,而是分別使用各自的私鑰進行雙重非對稱加密后保存到了Blockchain中。因此,在匿名認證過程中,車輛之間只能驗證公鑰的合法性,而無法獲取公鑰對應的車輛信息,除非數字證書認證中心和授權中心的私鑰同時被攻擊者破解,才有可能獲得到這種對應關系。
本文在詳細分析匿名認證機制的基礎上,提出了一種基于匿名認證機制的車聯網信息安全保護方案。通過Blockchain的共識機制和不可篡改的特性,保證了方案的數據一致性和安全性,重點是通過默克爾樹和MTP根值實現了車聯網中各節點間快速、高效的認證過程,同時保證了車輛信息的隱私性。理論分析該方案的系統開銷是可以接受的,但還需進一步在真實場景中進行測試驗證。