陳葳葳,曹 利,邵長虹
(南通大學信息科學技術學院,江蘇南通 226001)
(*通信作者電子郵箱cl@ntu.edu.cn)
車聯網(Internet of Vehicles,IOV)是由車輛自組網(Vehicular Ad-Hoc Network,VANET)和移動互聯網組成的開放異構網絡,通過車、路、管理平臺的實時關聯與感知實現智能交通,并提供交通安全、信息娛樂等服務。在車聯網中,車輛必須周期性地廣播交通車輛的身份、當前位置、速度等相關信息給其周圍的所有車輛,惡意車輛可以通過分析消息與發送者的關系,獲取車輛駕駛者的隱私(身份、位置等)信息,對車輛用戶的隱私造成潛在的威脅,可引發偽裝攻擊、消息篡改、竊聽等一系列安全問題[1-3]。而身份的合法性認證是開放交通環境中車聯網其他一切應用安全的基礎,身份認證不僅包括對接入車輛身份合法性的校驗,以保證通信雙方身份的真實性,同時還需保護用戶的隱私,以匿名方式進行。車聯網身份認證需考慮的其他特性有:1)因車輛運動速度快、路側單元(Road Side Unit,RSU)覆蓋范圍小,車輛需要頻繁進行身份驗證,高效的身份驗證成為關鍵;2)認證節點RSU 大多獨立化,無人操作和管理,攻擊者可以輕易訪問認證設備,一旦認證節點遭到攻擊或數據被篡改,將會嚴重影響交通安全。因此,研究如何適應車聯網自身特點的身份認證方案,消除車聯網推廣應用的安全障礙,受到國內外學者的廣泛關注。
車聯網目前普遍采用公鑰基礎設施(Public Key Infrastructure,PKI)認證機制,通過為車輛分發唯一編號并提供證書頒發機構(Certification Authority,CA)證書進行身份認證,缺點是由于認證節點的中心化導致中心節點任務繁重、無法代理且易攻陷,此短板效應會引起用戶敏感信息等數據泄露[4-6],且無法有效保護用戶身份隱私。基于此,國內外學者提出車聯網環境下基于假名的身份認證、基于環簽名的認證和基于PKI 系統的匿名認證等方法。文獻[7]利用假名機制研究公務用車通信協議,協議結合了同態密鑰協商和數字簽名等技術以管理和使用假名,確保公務用車的通信安全和隱私保護,但無法抵制身份的濫用和對中心節點的依賴。文獻[8]在PKI 系統的基礎上設計了一種車聯網安全通信與隱私保護機制。車輛使用可信中心機構(Trusted Authority,TA)中心為其計算的公鑰進行通信,即使匿名密鑰泄露也不會導致用戶身份的泄露,但缺乏適合車聯網環境的移動路由。文獻[9]中提出了證書和假名機制結合的隱私保護方案。TA 為認證機構頒發證書,認證機構再為每一個用戶頒發假名授權證書,構建了智能傳輸系統的隱私框架,但網絡性能無法滿足車聯網頻繁認證的需求。文獻[10]利用路邊單元(Road Side Unit,RSU)批認證提出基于身份的高效匿名批認證方案。車輛根據TA 參數產生假名進行通信,實現匿名性和高效認證,但是存在RSU 認證工作頻繁、負荷過大等問題。文獻[11]利用離散對數難題(Discrete Logarithm Problem,DLP)提出一種高效條件隱私保護方案。結合TA 提供參數計算所得假名存放于防篡改設備,有效實現匿名性,但是未闡明密鑰分配和防篡改設備的使用問題。環簽名方案是車輛簽名信息時將自己的私鑰與其他車輛的公鑰混合,形成環簽名,以混淆方式防止自己身份的泄露。文獻[12]利用格困難問題設計環簽名方案,實現了無條件匿名性,保障其在量子攻擊下的安全性,但格簽名的長度有待優化。文獻[13]利用環簽名和基于身份的加密技術對車輛間的通信進行認證,但缺乏對復雜網絡環境的實驗分析。文獻[14]利用分布式車輛公鑰基礎設施提出隱私保護方案,采用票據為應用服務提供匿名訪問和認證,但是隨著車輛數目的增多,票據處理的時延成為問題。文獻[15]利用多假名保護、消息分片、編碼和緩存機制解決了車輛-基礎設施(Vehicle-to-Infrastructure,V2I)通信過程中車輛隱私泄露問題,消除了多條轉發路徑上的消息關聯性,但是沒有考慮RSU的可靠性問題。
綜合以上研究成果,車聯網因對認證效率和隱私保護的特殊要求,傳統的身份認證仍存在諸多問題有待解決。車聯網數據是典型的時空數據,包括時間和空間兩個維度,采用傳統的集中式方式處理雖然具有一定的便捷性,但不能充分滿足時空數據存儲及查詢等要求,而區塊鏈(Block Chain)技術采用去中心化的分布式存儲機制,并通過共識機制等技術來保證數據的安全性,適合作為車聯網安全問題的新型解決方案。區塊鏈技術于2008 年被中本聰提出,其本質是一個對等網絡的分布式賬本數據庫。一個完整的區塊鏈系統包含數據加密、數字簽名、時間戳等技術,以及作為支持的對等網絡(Peer-to-Peer,P2P)和維護系統的共識算法、采礦和工作量證明、匿名交易機制和Merkle樹快速檢索等相關技術,為區塊鏈上的交易、驗證等功能提供了技術支撐和運行動力。目前,區塊鏈以其特有的安全機制,在很多領域得到應用。很多學者將車聯網安全問題與區塊鏈技術相結合,進行了一些研究。文獻[16]基于車聯網通信(Wireless Access in Vehicular Environment,WAVE)協議設計了去中心化的車聯網數據交換系統,利用區塊鏈網絡分布特征廣播與存儲數據,實現了車與車的數據交換,但位置隱私保護問題有待解決。文獻[17]結合區塊鏈技術設計出車聯網身份認證系統框架,解決汽車與多服務器、路邊單元之間的認證問題,但是由于車輛數量較多,通信頻繁,缺乏高效、快速的共識機制。文獻[18]中提出了以區塊鏈為模型解決在車聯網中傳播重要信息的方案,區塊鏈存儲節點可信度達成車輛間信任機制,但事件傳播延時有待改善。
針對車聯網的特性與中心化認證系統的缺陷,本文提出一種基于區塊鏈技術的車聯網匿名身份認證方案。通過區塊鏈技術和智能合約的結合,實現身份存儲、認證的高效與可靠;利用公鑰密碼體制及數字簽名技術實現信息傳輸的保密性和完整性;采用臨時公鑰進行匿名通信,實現身份隱私的保護。
區塊鏈是一種按照時間順序將數據區塊以鏈條的方式組合而成的特定數據結構,并以密碼學方式保證的不可篡改和不可偽造的去中心化共享總賬。
區塊鏈結構如圖1 所示,每一個數據區塊主要由區塊頭和區塊體組成。區塊頭用來記錄當前區塊的元數據,主要封裝了當前版本號、前一個區塊的地址、當前區塊的目標哈希值、Merkle根等。前一區塊的地址,用于將當前區塊與前一區塊相連,形成鏈條。目標哈希值、隨機數、時間戳等用于共識機制。區塊體記錄具體的數據,數據結構為Merkle樹,數據記錄在葉子節點,非葉子節點的值為所有葉子節點數據的哈希值而不是具體數據,降低了區塊容量,便于同步與備份。區塊體中數據經過哈希運算得到Merkle 根,一個葉子節點數據的改動將會導致根節點數據的變化,達到快速查詢和校驗的目的。
車聯網的安全需求與區塊鏈技術特征(去中心化、防篡改及可追溯性)不謀而合。車聯網中所有節點權利平等,并且有較好的容錯能力。利用區塊鏈技術在海量分布式節點間建立信任關系,能解決中心化低效率與數據不安全等問題。利用區塊鏈的哈希函數的單向性、數字簽名不可否認等性質將車聯網相關數據存儲至區塊鏈,若攻擊者妄圖篡改數據,不僅要修改當前區塊的哈希值,還要修改所有區塊的哈希值,極大增加了攻擊難度和成本。區塊鏈帶有時間戳數據,將區塊按照時間順序關聯,方便檢索交易從發布源頭到最新狀態的整個變化流程,可以滿足車聯網快速認證的需求。

圖1 區塊鏈結構Fig.1 Structure of Blockchain
區塊鏈技術為適應社會的需求,不斷演進,目前發展到第三代:第一代以比特幣網絡為代表,以分布式賬本模式存儲交易,交易具有不可篡改、不可否認的特性,但其共識機制導致的時延無法滿足車聯網實時需求;第二代是以以太坊為代表的區塊鏈技術,在比特幣網絡的基礎上改進了區塊結構,并設計了智能合約,可以實現交易的自動化處理,具有了可擴展的特性,將區塊鏈底層技術推廣至應用層,適合車聯網的安全應用解決方案;第三代有向無環圖(Directed Acyclic Graph,DAG)區塊鏈結構正在起步階段,采用全新的區塊數據結構、大幅增加區塊鏈網絡吞吐量,但技術尚未成熟。本文方案的研究對象為車聯網,具有開放性、自組織、變化快的特性,及身份認證時延小、可追溯、隱私保護的需求,所以采用第二代聯盟鏈技術作為研究平臺。方案選擇Hyperledger 作為驗證平臺,主要是基于其開源性,方便實現區塊鏈共識機制的修改,并通過智能合約實現相關訪問控制。
本文以開源Hyperledger 聯盟鏈為原型設計了一種車聯網匿名快速身份認證模型,該認證模型可實現:1)保證RSU認證系統的可靠性和健壯性;2)車輛在進行通信時,不使用真實身份關聯的公私鑰,實現匿名性;3)通信過程中消息全程加密,保障信息的完整性和保密性。
車聯網基本結構見圖2,主要由三個主體部分構成:
1)交通管理中心(Trust Center,TC)是IOV 中最高權威機構,與路邊單元(RSU)通過有線連接,主要負責交通參與者初始化,核心信息保存等;
2)路邊單元(RSU)分布在十字路口及道路兩旁,提供車輛接入、身份驗證等相關服務;
3)車載單元(On Board Unit,OBU)安裝在車輛嵌入式設備中,作為車輛的通信模塊,與周圍車輛交互信息。
車聯網聯盟鏈認證信任模型如圖3 所示:行駛車輛的OBU 接入附近的路側單元RSU 并產生臨時身份密鑰對,RSU作為記賬節點,將車輛合法身份信息記錄和臨時身份密鑰對進行映射處理,記入區塊鏈,為車輛實現匿名通信提供憑證,各RSU組成聯盟鏈網絡。

圖3 認證模型Fig.3 Model of authentication
根據以上系統架構和信任模型,本文提出基于聯盟鏈的高效匿名認證協議。協議在傳統PKI 認證的基礎上,利用RSU 構建認證的聯盟區塊鏈,實現本區域行駛車輛的快速認證。假定區域內RSU是可信設備,且已由TA注冊證書。方案流程如圖4 所示:首先,車輛經過TA 中心線下注冊,生成公私鑰,頒發證書。車輛上路時,OBU自行生成用于隱私保護的臨時公私鑰對,然后申請入網并向RSU 注冊臨時公私鑰對。若OBU 通過PKI 機制完成初次身份驗證,RSU 就生成臨時公鑰與證書公鑰的映射關系,完成行駛中臨時認證注冊,并觸發聯盟區塊鏈的智能合約,將該次映射關系記載入區塊,各RSU達成共識后,發布至區塊鏈。RSU 通過檢索區塊鏈中的信息快速驗證通信車輛彼此的身份,車輛行駛中使用臨時公私鑰與其他車輛進行匿名雙向通信。

圖4 協議流程Fig.4 Process of protocol
2.2.1 Token結構
匿名通信中,車輛采用臨時公鑰代替TA 公鑰進行通信。為便于區塊鏈的檢索和臨時公鑰PToken的管理,方案生成Token 進行身份信息的關聯,并把Token 記入區塊鏈。Token主要由區域號、時間戳與PToken組成,其中PToken為Token 中標識符,結構如圖5所示。

圖5 Token結構Fig.5 Structure of Token
區域號:車輛注冊TA 所屬區域行政區劃代碼,便于車輛身份的查詢,區域號格式與國家行政區劃代碼類似,由6 位構成,其中:1~2位表示省編碼,3~4位表示市編碼,5~6位表示區縣編碼。
標識符:利用EIGamal 算法,結合TA 公開參數和私鑰計算得公鑰,生成標識符M,私鑰和離散對數難題的結合保證其唯一性、不可偽造性。
時間戳:規定其有效期,時間戳過期則無法使用。當檢測到過期的Token,自動觸發智能合約,刪除Token 與公鑰的映射關系。時間戳還用于判斷出塊時間,在認證時,實現相應區塊的快速定位。
2.2.2 區塊結構
區塊體記錄車輛經過注冊、更新、撤銷后公鑰和Token 的映射關系,以MPT(Merkle Patricia Tree)的形式存儲。區塊頭存儲根節點的哈希值、生成時間等。
MPT 結構中每一個節點的所有子孫都有相同的前綴,節點對應的key 由根節點到該節點路徑上的所有節點key 值前后拼接而成,存儲key-value 數據結構。方案中key 定義為Token,value 定義為Token 對應公鑰。RSU 以區域號歸納智能合約打包的映射關系,生成MPT。因在同一個地區注冊車輛的Token 區域號一致,故查詢時可快速匹配到省市縣組成的分支路徑,提高查詢效率,實現快速認證。區塊結構如圖6所示。

圖6 區塊結構Fig.6 Structure of block
2.2.3 PBFT共識機制和智能合約
區塊鏈普遍采用工作量證明(Proof of Work,POW)共識機制達成共識,不適合車聯網實時快速認證的需求。本文方案中,各區域RSU 組成聯盟鏈網絡,改用實用拜占庭容錯(Practical Byzantine Fault Tolerance,PBFT)算法共識機制,縮短出塊時間以滿足車聯網快速達成共識的需求,同時可容忍小于1/3 個無效或者惡意節點。PBFT 的算法流程如下:設共有3n+1 個記賬節點。首先,RSUi節點接收車輛注冊請求并認證其身份,其次RSUi節點通過廣播將請求發送至全網RSU 節點。所有節點都執行認證并將結果發回RSUi節點。RSUi需要等待n+1 個不同節點返回相同的結果,作為整個操作的最終結果。PBFT 共識機制下的交易吞吐量可以達到200~2 000 TPS(Transactions Per Second),實現毫秒級的確認時間,無分叉可能,同時抵抗女巫攻擊。
為了將OBU 的臨時公鑰與證書公鑰的映射關系即時計入聯盟鏈,方案采用智能合約技術,智能合約可以看作是運行在分布式賬本上的計算機程序,完成規則預設,無需第三方干涉處理,適應場景需求變換,監督合約的條款以檢查合規性。本文方案采用智能合約實現:
1)車輛生成Token 后,觸發智能合約實現Token 與公鑰的映射;
2)Token 時間戳失效,將觸發智能合約,將Token 與公鑰的映射刪除;
3)行駛中車輛身份驗證的請求行為觸發智能合約,對區塊鏈上的Token快速檢索;
4)對惡意節點的判定將觸發智能合約,將其加入撤銷列表。
智能合約主要功能實現偽代碼:
方案中假設底層采用短程通信(Dedicated Short Range Communication,DSRC)技術和802.11P 協議。802.11P 標準對DSRC 標準中的物理層(PHYsical,PHY)和介質訪問控制層(Media Access Control,MAC)的內容進行了規范,能為車車和車路之間提供高速的無線廣播通信服務,具有數據傳輸速率高、傳輸時延短的特點,且支持點對點或點對多點通信。所以在本文方案中,當OBU 接入車聯網時候,首先接收的是RSU 的廣播信息,屬于一點對多點通信。而在認證過程中OBU和RSU的多次握手,采用的是點對點通信方式。
基于區塊鏈的匿名快速認證可分為:預注冊(線下注冊、線上注冊)和快速認證兩部分。表1 為本文方案中使用的符號說明。

表1 本文方案所使用符號Tab.1 Symbols of proposed scheme
初始參數由TA 權威中心(如車管所)產生。TA 選擇滿足雙線性映射特性的群G1 和G2;選擇隨機數作為主密鑰,其中代表正整數集中素數;計算系統公鑰Ppub=sp;提取群中素數α、q,n=aq。公開的參數有{G1,G2,n,α,Ppub}。
2.3.1 預注冊
預注冊包含線下注冊和線上注冊兩部分。
線下注冊:部署RSU 前,TA 為每一個官方采購的RSU 頒發證書CertR。車輛線下注冊時,TA 核實其材料真實性,為其頒發證書,并記錄公鑰與車主真實身份的映射關系。具體為:官方采購RSU 設備后,TA 用RSA 算法生成RSU 私鑰SR和公鑰PR,頒發證書CertR。證書中包含:RSU 的公鑰、證書有效期、TA 私鑰的簽名、RSU 所部署的區域編號NR等信息。RSU存儲TA 公共參數、其證書和公、私鑰。車主提交真實身份材料經核實后,TA 利用RSA 算法生成車輛私鑰Svi和公鑰Pvi,頒發證書Certvi。證書中包含:車輛的公鑰、證書有效期、TA用私鑰的簽名和TA 所在區域號等信息。OBU 存儲TA 公共參數、車輛的證書和公、私鑰。TA 記錄包含:車輛公鑰與車主身份材料的映射關系,據此可以追溯違規車輛車主的真實身份;RSU 證書與RSU 編號NR映射關系。若有RSU 損壞,TA 可以根據RSU證書中的區域編號查找損壞設備,實時維修。
線上注冊:區域內RSU構成聯盟鏈網絡,RSU廣播自己的證書信息。當車輛上路后進入初始RSU 的廣播范圍,OBU 自行生成公私鑰對{PToken,SToken},將PToken、證書中的區域號附上時間戳組成Token,向RSU 發送對該Token 的注冊請求。RSU進行初次身份PKI認證,驗證通過后觸發智能合約,生成車輛的Token與公鑰的映射關系,同時返回Success消息,若認證不通過返回False消息。RSU根據新注冊的Token更新本地區塊中的MPT,使用PBFT 共識機制,RSU 間達成共識,完成記賬。通過驗證和注冊請求的OBU 在后繼行駛過程中采用聯盟鏈認證。線上注冊算法的流程如圖7所示。

圖7 線上注冊流程Fig.7 Process of online registration
1)RSU→OBU:{CertR,SignSR(CertR)}。
RSU廣播自己的證書和簽名。
2)OBU→RSU:EPR(V1,SignSvi(V1))。
①車輛接收到RSU 廣播信息,驗證RSU 身份,并生成隨機數,利用EIGamal 算法生成私鑰SToken,然后計算出公鑰,加上區域號和時間戳信息,生成本次的Token。
②OBU 用SToken簽名車輛證書,與Token、證書形成注冊請求內容:V1=Certvi,Token,SignSToken(Certvi),并對其簽名SignSvi(V1),用RSU公鑰加密后發給RSU。
3)RSU→OBU:EPvi(Success,SignSR(Success))||EPvi(False,SignSR(False))。
①RSU 用私鑰解密OBU 注冊請求,先利用PKI 驗證車輛的證書和簽名,保證公鑰不在撤銷列表;接著驗證Token里的區域號是否與車輛證書中的一致。驗證通過,提取PToken,驗證SToken的簽名,確保是PToken擁有者發出的注冊請求。
②驗證通過后,簽名車輛注冊的消息區塊鏈網絡同步,由本區域RSU 分別驗證,返回半數以上條成功結果后,智能合約觸發Search()功能模塊:區塊鏈檢索。檢索算法為:Search()先由時間戳計算出塊時間,定位到相應區塊;然后根據Token 區域號先找到其省級所在分支,再按照市縣行政代號匹配分支路徑。若PToken是初次注冊,執行registed()函數,生成車輛公鑰與Token的映射關系。
③RSU 用私鑰簽名注冊結果,注冊成功返回:EPvi(Success,SignSR(Success));若有一條驗證未通過,返回失敗消息:EPvi(False,SignSR(False))。
④RSU 根據新注冊的Token 更新區塊中的MPT,并通過PBFT共識機制快速添加至區塊鏈。
4)車輛用私鑰解密RSU 響應消息,驗證其簽名,根據注冊結果判斷是否獲得PToken的使用權。
2.3.2 快速認證
車輛OBUi、OBUj在完成線上注冊后,若需要彼此通信,就可發起快速身份認證。OBUi向OBUj發送身份信息:Token 和時間戳,并對其簽名。OBUj根據接收的信息可向附近任何一個RSU 請求認證OBUi的身份。若認證成功,雙方用對稱密鑰進行通信,否則中斷連接。具體流程如圖8所示。

圖8 快速認證過程Fig.8 Process of fast authentication
1)OBUi→OBUj:Tokeni,T,SignSTokeni(Tokeni,T)。
OBUi將自己的Tokeni、時間戳T簽名后發給OBUj。
2)OBUj→RSU:EPR(V2)。
OBUj將OBUi身份信息附加自己的Tokenj組成認證請求:V2=Tokeni,T,SignSTokeni(Tokeni,T),Tokenj,用RSU 公鑰加密發送給RSU。
3)RSU→OBUj:EPTokenj(R2,SignSR(R2))。
①RSU 用私鑰解密后觸發智能合約,調用Search()函數檢索區塊鏈,查看區塊鏈中是否記載Tokeni、Tokenj,若都存在并且Token 時間戳都未過期,提取PTokeni驗證STokeni的簽名,驗證通過后檢測消息中時間戳T是否有效。
②上述條件均滿足返回認證成功:R2=Success,T。否則返回認證失敗:R2=False,T。簽名消息SignSR(R2),提取PTokenj加密發送給OBUj。
4)RSU→OBUi:EPTokeni(PTokenj,SignSR(PTokenj))。
RSU 將OBUj的PTokenj簽名,并用OBUi公鑰加密傳給OBUi。
5)OBUj→OBUi:EPTokeni(S2,SignSTokenj(S2))。
①OBUj驗證RSU 簽名后,得到Success 消息便提取Tokeni中的PTokeni,生成對稱密鑰key。key為臨時會話密鑰。
②封裝對稱密鑰key、時間戳,和key加密的隨機數r4:S2=key,T,Ekey(r4),簽名SignSTokenj(S2)并用PTokeni加密發送給OBU。
6)OBUi→OBUj:Ekey(r4,Information,r5)。
①OBUi收到消息4)后用私鑰解密驗證,并接收RSU 發來的PTokenj;
②用PTokenj解密獲得OBUj發來的key,并驗證簽名和時間戳,提取隨機數r4;
③生成隨機數r5,將通信消息與隨機數r4、r5 封裝,使用臨時會話密鑰key加密發送給OBUj;
7)OBUj解密消息并驗證簽名,檢測隨機數r4(以保證通信對方身份并已拿到key),驗證通過,接受信息。
為了測試方案的可行性,利用Hyperledger Fabric 1.4 工具進行車聯網身份部署,模擬快速認證過程。因實驗環境限制,假設車聯網節點預注冊部分已經完成,安全性將在后面分析,實驗主要完成區塊鏈的共識建立和身份快速驗證。在本地虛擬機中部署5 個虛擬節點,用來實現不同的RSU 構建區塊鏈。實驗開始時,調用智能合約,模擬預注冊階段OBU 身份驗證后生成的Token,身份信息被RSU 打包,采用PBFT 算法達成共識,經過節點間的共識認證后生成區塊,存入區塊鏈;各節點進行數據的更新操作。實驗過程中涉及的測試工具及對應作用如表2所示。

表2 測試工具及其作用Tab.2 Testing tools and their functions
按照上述方式搭建仿真平臺,本文仿真驗證了5 個RSU節點30 min內在區塊鏈網絡中的共識情況。通過分析節點的在線情況、打包次數、是否進行區塊更新操作,檢測RSU 節點在區塊鏈網絡運行的可行性,結果如表3 所示。實驗結果表明,參與共識的節點均100%在線,打包次數分布平均,且各節點對網絡中區塊持續更新,在網絡暢通情況下無掉線、停滯、阻塞等現象出現,實驗結果說明了方案在區塊鏈上的可用性及正確性。

表3 正確性實驗結果Tab.3 Experimental results of correctness
為驗證PBFT共識算法在本文方案的可行性,實驗設計查詢請求發送速率為100、200 TPS(Transactions Per Second)的兩種網絡環境,檢測各自共識時延情況,得到兩組的最大、平均及最小共識時延。實驗數據如圖9 所示,表明Hyperledger fabric 中在發送請求速率不超過200 TPS 時,平均時延均在40 ms 左右,達到毫秒級的共識速度,滿足車聯網環境下實時認證的通信時延要求。

圖9 PBFT算法時延Fig.9 Time delay of PBFT algorithm
方案采用聯盟區塊鏈分布式賬本模式,可以抵御拒絕服務攻擊,防止中心化單點故障對車聯網認證系統帶來的破壞。利用區塊鏈智能合約的自動觸發性,及MPT 區塊結構易于檢索的特點,相較于傳統公鑰基礎設施(PKI)模式,能有效縮短車聯網身份認證過程的時延。實驗驗證了不同假名請求數量與時延的關系,結果如圖10 所示,與傳統PKI 模式、文獻[14]的假名授權身份認證方案進行比較,隨著假名請求量的增加,本文方案匿名身份認證方法時延增長最慢,更為高效。

圖10 時延對比Fig.10 Comparison of delay
3.2.1 防偽裝攻擊
采用公鑰密碼體制EIGamal 算法保證密鑰安全性,有效防止偽裝攻擊,證明如下:
OBU 生成私鑰Svi<q-1,計算公鑰Pvi=。設明文X,隨機選擇整數y<q。

攻擊者為了恢復私鑰,會計算Svi=dlogα,q(Pvi);或為了恢復一次性密鑰Y,選擇隨機數y計算離散對數y=dlogα,qC1。基于離散對數難題,當q≥300,q-1 至少有一個大的素因子時無法推算出私鑰;沒有合法車輛的PToken私鑰無法偽造身份,致使無法進行Token 注冊。同理沒有RSU 私鑰無法偽裝RSU認證車輛身份。
3.2.2 有條件的匿名性
利用聯盟區塊鏈創建賬戶的自發性特性,車輛可以自行生成多個Token,進行多身份混淆,一定程度上實現匿名。聯盟區塊鏈采用分布式存儲,實現車輛身份數據的永久存儲,同時區塊內部信息由車輛簽名,不可否認,便于身份的追溯,具體說明如下:
方案使用PToken代替用戶與真實身份相關聯的公鑰進行通信。除RSU 外無人知道車輛公鑰信息。若遇到惡意車輛,RSU 可以激活智能合約revoke()函數,將其對應公鑰加入撤銷列表,使之無法注冊Token 進行通信。對于違規車輛(如超速、壓線等,但仍然有權利生成Token),RSU 通過智能合約的Search()函數找到對應公鑰并上交至TA,TA 可以查詢到車輛的真實身份,實現追溯性。最壞情況下:車輛公鑰泄露,因為RSU 不存儲車輛的真實身份也不會導致車主身份隱私的泄露。
3.2.3 通信數據和存儲數據的完整性和保密性
1)通信數據的保密性和完整性證明。
OBU用自己的私鑰簽名消息X。OBU 先計算Hash值:x=H(X),OBU 選取隨機整數ri,滿足1 ≤ri≤q-1 且gcd(ri,q-1)=1。
a)計算S1=;
b)計算ri-1mod (q-1);
c)計算S2=ri-1(m-SviS1)mod (q-1);
d)簽名為(S1,S2)。
RSU可用OBU的公鑰解密:
a)計算:V1=αxmodq;
b)計算:V2=(Pvi)S1(S1)S2modq。
若V1=V2,簽名合法。證明如下:
假設V1=V2
只有擁有私鑰的OBU 才可以對消息簽名,用OBU 公鑰即可驗證,保證消息的完整性。OBU 使用RSU 公鑰加密消息,加密過程同上,僅擁有私鑰的RSU 才可解密消息,故保證消息的保密性。
2)存儲數據的保密性和完整性分析。
聯盟區塊鏈中數據除可信節點RSU 可知外,鏈外節點沒有權限無法訪問,實現了車輛身份信息的保密性存儲;
聯盟區塊鏈技術利用哈希函數不可逆和極難碰撞的特性,將區塊用哈希指針進行串連,實現鏈中數據的無法篡改,保證鏈中存儲的車輛身份信息的完整性。
3.2.4 防重放攻擊
車與車通信過程使用詢問-握手的方式,通信消息附上時間戳和隨機數,并將相關參數保存在本地,通過驗證時間戳和隨機數來保證消息是最新且未被篡改的。
身份認證是車聯網技術的基礎,隱私保護是車聯網的關鍵。本文提出基于區塊鏈的快速匿名身份認證方案,方案基于PKI 體制——TA 為車輛、RSU 頒發證書,保證通信雙方的真實性;利用分布式體系結構實現匿名性——車輛可自行生成多個PToken代替與真實身份關聯的公鑰進行服務請求和通信,PToken由全網認證,保證其有效性;采用智能合約的自動化——RSU 認證完車輛的身份后,觸發智能合約打包Token 和車輛公鑰映射數據,Token 過期后觸發智能合約刪除映射關系;利用區塊鏈不可篡改、可追溯、魯棒性等特性——區塊鏈上保存Token 與車輛的身份映射,保證數據的可追溯性和完整性。此外,區塊使用MPT 樹形數據結構縮短檢索區塊使用時間;利用實用拜占庭容錯共識機制提高共識效率;通信過程采用非對稱密碼體系,保證數據在傳輸過程中的安全性。車聯網跨域認證也可以基于相同的思路實現,限于篇幅,沒有展開論述。