李原帥,曹 利,張 迪
(南通大學信息科學技術學院,江蘇 南通 226001)
車聯網利用無線通信技術,實現人、車、路實時互聯,實現智能交通管理。其具有通信網絡拓撲結構自主、易變,通信網絡信道開放且頻繁切換、有效鏈接短暫的特點,易受到網絡身份假冒等欺騙攻擊,難以進行復雜的身份認證授權和訪問控制。
車聯網信任機制通過分析通信節點間對彼此行為交互情況的信任程度,解決車輛節點的可信認證授權問題。目前該技術大多基于中心化的信任值處理,缺點是:①中心服務器易遭攻擊,信任值缺乏完整性和可靠性,②中心服務器距離車輛終端較遠,無法滿足實時、短時延、高效傳輸時空數據的需求[1]。
有關的研究將區塊鏈技術與車聯網信任機制相結合。如:李鳳祥等[2]提出了基于區塊鏈的信任體系,并利用位置證明來替換工作量證明,采用貝葉斯概率公式判斷消息的真實性,楊哲等[3]設計了基于智能合約的車輛訪問控制策略。但這些方案無法解決區塊鏈出塊時延和車聯網時空類數據實時性的矛盾。
HashGraph 算法是區塊鏈的一種共識替代[4-5],實現了異步拜占庭容錯(ABFT),因而能容納非常高的吞吐量,完成非??焖俚慕灰滋幚?,具有公平、安全、高速的特性[4]。本文基于此技術,提出一種基于區塊鏈技術的高效無延時車聯網信任安全方案,從車輛實體的可靠性和面向消息的可信度兩方面解決車輛間信任問題。
方案的模型架構如圖1所示。

圖1 信任模型架構
⑴OBU 層:車載單元構成的網絡。車載單元通過部署各類智能裝置,實現車輛節點對信息的感知、采集、計算和通信功能。
⑵RSU 層:路側單元構成的網絡。相對車輛節點具有更強的計算和存儲能力,為車輛節點無線接入提供服務,并轉發路況等信息。
⑶后臺可信中心TC:車聯網中完全可信的基礎服務設施,主要為接入網絡中的節點分發密鑰,完成節點身份的注冊/撤銷、認證等功能。
⑷區塊鏈網絡:建立在車聯網節點上的HashGraph區塊鏈網絡。全節點RSU 在其賬本區發布所連接車輛的信任區塊,不同賬本間區塊的連接形成Hash-Graph 拓撲結構。車輛節點作為區塊鏈輕節點,在獲得全節點RSU的認證后接入區塊鏈網絡。
HashGraph 區塊鏈節點用于存儲車輛信任值,含時間戳、車輛ID、路況事件ID、信任值、雙向哈希指針等字段。各字段含義如下。
TimeStamp:時間戳,即區塊發布時間,用于判斷車輛信任值的時效性。
車輛ID:車輛的身份標識。
路況事件ID:被傳播的路況事件標識。車內記錄車輛不同狀態(車速、方向等)下的事件建模及對應編號。
信任值:當前車輛信任值,由RSU 根據信任評估公式計算所得。
雙向哈希指針Hash1 和Hash2:Hash1 指向發布此區塊的RSU;Hash2指向車輛需更新的信任值區塊。
車聯網分布式信任機制的實現包括系統初始化、面向消息的可信性評估和基于車輛的信任值計算三個階段。
⑴TC 中心分配初始化參數。方案基于PKI機制進行身份認證。設G為橢圓曲線,選取s∈G作為橢圓曲線上一點。計算公鑰Ppub=sG,公開參數{G,H1,Ppub},其中H1代表單向哈希加密函數。
⑵RSU 節點初始化。TC 為RSU 設置公私鑰對{Pr=H1(IDr),Sr=sH1(IDr)},IDr為RSU的惟一身份標識,為RSU 生成公鑰證書。RSU 選取隨機數Nr∈并廣播參數NrPr。
⑶車輛身份注冊。車輛提供身份信息IM(i如身份證號碼、車牌號),TC 為車輛設置共享密鑰xi∈Zq*并計算全局身份標識IDi=H1(IMi||xi),生成公私鑰對{pi,Si},為車輛生成公鑰證書、分配初始信任值T0。
車輛節點駛入RSU 覆蓋路段基于PKI 機制完成雙向身份認證。當車輛發送消息給鄰近車輛時,鄰近車輛利用智能合約調用評估算法對消息可信性進行評估,決定是否信任該消息,同時將消息評估值上傳至RSU,更新發送消息車輛的信任值。具體步驟如下:
⑴雙向身份校驗后,OBUi合法身份得到確認,RSU在車聯網中廣播其身份IDi及其公鑰證書。
⑵OBUi->OBUj:{A,IDi,SignSi}
車輛i生成路況數據包A=(Event,Time,acceleration),其中Event為路網狀態事件編號,Time為發送消息時間,acceleration為此時車輛的加速度。車輛將身份IDi、A、簽名SignSi生成路況消息發送至鄰居車輛j。
⑶觸發智能合約。
OBUj接收OBUi發布的事件消息,并檢查消息完整性DPi(SignSi)=A,IDi,觸發智能合約infoValue()對消息進行評估。infoValue()算法描述如圖2 所示,輸入參數IDi、A、自身加速度acceleration'、接收消息的時間Time'、接收此路段的路況消息個數λ:

圖2 信任值評估算法
TravelGraph()函數為遍歷區塊鏈,定位OBUi當前信任值所在區塊。對消息可信度評估的模式見公式⑴:
其中,α=Time'-Time為消息傳播時延;a=acceleration'-acceleration表示兩車之間的加速度之差。α和a 估測兩車間狀態相似度,數值越小,車輛狀態越相似,消息可信度增加;λ為OBUj在此路段接收到的事件消息數值,其值增加表明事件發生的可能性越大。
⑷OBUj在->RSU:EPr(IDj,W,TSj,SignSj)
車輛j完成消息評估,若評估值C>評估標準θ,消息為可信,接收此消息,否則拒絕該消息。隨后封裝消息評估數據報文W=(IDi,C,warn),其中字段C為消息評估結果;字段IDi為被評估車輛ID;字段warn標識數據包類型,算法描述如圖3所示。

圖3 評估數據包分類
算法分析如下:
⑴warn值設為1:因區塊時間戳>ΔT,信任值超出時效,RSU需重新計算車輛信任值;
⑵warn值設為0:區塊時間戳有效,但評估值C小于標準值θ,即消息不可信,提示RSU 懲罰(減少)此車輛信任值;
⑶warn值設為-1:區塊時間戳有效,且評估值C大于標準值θ,即消息可信度大,提示RSU 獎勵(增加)此車輛信任值。
最后將消息評估數據包W、車輛身份ID(j防止重放攻擊)、時間戳TSj和簽名Signsj加密上傳至RSU。
RSU 周期性統計連接的車輛總數(m),參與評估事件消息A的車輛數多于m時,區塊鏈網絡觸發智能合約OBUValue(),根據warn 標識選擇對應車輛信任值計算模型,計算生成新的信任值后生成區塊鏈節點。算法如圖4所示。

圖4 車輛信任值算法
RSU收到鄰接車輛j1-n上傳的消息評估值,用私鑰解密并驗證每個評估數據包時效性、惟一性和簽名的正確性。當評估量n≥m,區塊鏈網絡觸發智能合約OBUValue()進行車輛信任值計算,首先調用TravelGraph()函數定位區塊鏈中車輛i 的當前信任值所在區塊,并根據warn值,進行被評估車輛的信任值計算:
⑴warn 值為1,表示當前信任值失效,需重新計算車輛信任值。
①使用公式2計算此事件發生概率:
其中,P(ej|Cj)為事件j 在樣本量為n 條件下發生的概率;P(ej)表示事件j 在整個車聯網系統中已發生的概率(存于路網狀態標準信息庫中);P(ej|Cj)即在事件j發生的情況下,消息評估Cj證實了該事件發生的概率。P()為ej對立事件發生的概率。
②使用公式⑶計算車輛信任值:
其中,Ti+1代表更新后的車輛信任值,Ti為車輛當前信任值。綜合其余車輛對車輛i 行為的評估,重新計算車輛信任值。
⑵若warn值為0,表示此消息不可信,使用公式⑷懲罰(減少)車輛信任值:
其中,T0為初始信任值;λ0為接收到warn==0的評估數據包個數;使用函數arctan-1λ0,將懲罰的信任值維持在[0-T0]內。
⑶若warn 值為-1,表示此消息可信度大,使用公式⑸獎勵(增加)車輛信任值:
其中,λ-1為接收到warn==-1的評估數據包個數。使用函數,將獎勵的信任值維持在內。
更新信任值后,觸發智能合約,生成新區塊。若更新后的信任值小于初始信任值(Ti+1 考慮到部署在一條路段的多個RSU 會重復計算同一車輛的信任值,可能導致分叉的發生,方案在HashGraph 共識機制的基礎上提出一種新型Follower共識算法,基本思路是,若上鏈時發現車輛信任值已被計算,則與已存在的信任值結果比較,為差值<ε的區塊建立哈希指針,成為其跟隨者(follower);否則進行分叉操作。最后成為知名見證人的區塊達成全網共識,具體流程如下: ⑴RSU3 產生新區塊,遍歷區塊鏈,找到當前信任值所在區塊,執行步驟⑵; ⑵若當前信任所在區塊(白色)無子區塊(無其他RSU 對此車輛進行評估),新區塊(黑色)哈希值指向此區塊,成為其follower(圖5),執行步驟5;若存在子區塊,執行步驟⑶; 圖5 共識情況1 ⑶若此車輛的信任值已被同一路段的RSU2計算(灰色區塊),則與其存儲的信任值比較,若差值小于閾值ε,則成為圖6所示區塊Follower;否則執行步驟⑷; 圖6 共識情況2 ⑷若差值大于閾值ε,完成圖7所示分叉操作,執行步驟⑸; ⑸其余RSU 重復步驟⑴到⑸,選擇在誤差<ε的子區塊后站隊。最終成為知名見證人的區塊及其可見區塊達成全網共識。 方案仿真和實驗配置環境如下:Windows10 系統下,安裝SUMO 仿真器,搭建VANET 仿真實驗場景,利用TraCI接口調用Python 腳本,模擬智能合約,在不同車輛密度條件下計算車輛信任值、評估消息可信性,使用Matplotlib 和Numpy 庫對仿真結果進行性能分析。方案設計了更新車輛信任值的三種情況: ⑴時間戳過期,重新計算信任值Ti+1=Ti?P(ej|Cj); 為驗證可行性,方案使用SUMO 仿真車輛移動軌跡,模擬長1000米的公路,分析車輛密度從10輛每公里到300輛每公里,在激勵和懲罰情況下,車輛信任值的變化趨勢。設車輛初始信任值為1,當前信任值為3。結果如圖8、圖9 所示,信任值最大增加0.4,最多減少0.8,減值速度為增值的2 倍。而隨著車輛數目增多,信任值變化趨勢越大,但都小于初始值1。公式4~5有效控制了信任值增減幅度,達到慢增快減的效果。 圖8 信任值的減少 圖9 信任值的增加 在上述信任值變化狀態下,根據消息評估值公式C=e-(α+a)+Ti tan-1λ,分析消息評估結果的變化。結果如圖10 所示,表明車輛信任值減小后,消息可信性快速下降,車輛信任值微小的變化可正確評估消息可信度,實現了車輛信任值與消息評估值的相互作用,說明本方案信任機制的高效可行。 圖10 消息評估值變化 車聯網因其開放信道、臨時組網的特性,面臨著比傳統網絡節點更多的惡意節點攻擊。相對傳統的節點認證授權機制,車聯網信任機制能更有效的解決此問題。但目前車聯網信任機制均存在中心化、高時延等問題,基于此,本文在HashGraph 技術的基礎上,提出一種基于區塊鏈3.0 的車聯網分布式信任機制。利用智能合約實現信任值的自動驗證和更新,設計了新的Follower 共識算法,滿足車聯網信任值實時發布需求。仿真實驗分析表明,該方案既可實現對車輛消息真實性的高效判別,也可實現對車輛實體的可信性判斷,滿足車聯網信任機制實時更新需求,有效地解決了車輛節點間的信任問題。

3 實驗仿真與性能分析



4 結束語