李原帥,曹 利,張 迪
(南通大學(xué)信息科學(xué)技術(shù)學(xué)院,江蘇 南通 226001)
車聯(lián)網(wǎng)利用無線通信技術(shù),實現(xiàn)人、車、路實時互聯(lián),實現(xiàn)智能交通管理。其具有通信網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)自主、易變,通信網(wǎng)絡(luò)信道開放且頻繁切換、有效鏈接短暫的特點,易受到網(wǎng)絡(luò)身份假冒等欺騙攻擊,難以進(jìn)行復(fù)雜的身份認(rèn)證授權(quán)和訪問控制。
車聯(lián)網(wǎng)信任機(jī)制通過分析通信節(jié)點間對彼此行為交互情況的信任程度,解決車輛節(jié)點的可信認(rèn)證授權(quán)問題。目前該技術(shù)大多基于中心化的信任值處理,缺點是:①中心服務(wù)器易遭攻擊,信任值缺乏完整性和可靠性,②中心服務(wù)器距離車輛終端較遠(yuǎn),無法滿足實時、短時延、高效傳輸時空數(shù)據(jù)的需求[1]。
有關(guān)的研究將區(qū)塊鏈技術(shù)與車聯(lián)網(wǎng)信任機(jī)制相結(jié)合。如:李鳳祥等[2]提出了基于區(qū)塊鏈的信任體系,并利用位置證明來替換工作量證明,采用貝葉斯概率公式判斷消息的真實性,楊哲等[3]設(shè)計了基于智能合約的車輛訪問控制策略。但這些方案無法解決區(qū)塊鏈出塊時延和車聯(lián)網(wǎng)時空類數(shù)據(jù)實時性的矛盾。
HashGraph 算法是區(qū)塊鏈的一種共識替代[4-5],實現(xiàn)了異步拜占庭容錯(ABFT),因而能容納非常高的吞吐量,完成非??焖俚慕灰滋幚?,具有公平、安全、高速的特性[4]。本文基于此技術(shù),提出一種基于區(qū)塊鏈技術(shù)的高效無延時車聯(lián)網(wǎng)信任安全方案,從車輛實體的可靠性和面向消息的可信度兩方面解決車輛間信任問題。
方案的模型架構(gòu)如圖1所示。
圖1 信任模型架構(gòu)
⑴OBU 層:車載單元構(gòu)成的網(wǎng)絡(luò)。車載單元通過部署各類智能裝置,實現(xiàn)車輛節(jié)點對信息的感知、采集、計算和通信功能。
⑵RSU 層:路側(cè)單元構(gòu)成的網(wǎng)絡(luò)。相對車輛節(jié)點具有更強(qiáng)的計算和存儲能力,為車輛節(jié)點無線接入提供服務(wù),并轉(zhuǎn)發(fā)路況等信息。
⑶后臺可信中心TC:車聯(lián)網(wǎng)中完全可信的基礎(chǔ)服務(wù)設(shè)施,主要為接入網(wǎng)絡(luò)中的節(jié)點分發(fā)密鑰,完成節(jié)點身份的注冊/撤銷、認(rèn)證等功能。
⑷區(qū)塊鏈網(wǎng)絡(luò):建立在車聯(lián)網(wǎng)節(jié)點上的HashGraph區(qū)塊鏈網(wǎng)絡(luò)。全節(jié)點RSU 在其賬本區(qū)發(fā)布所連接車輛的信任區(qū)塊,不同賬本間區(qū)塊的連接形成Hash-Graph 拓?fù)浣Y(jié)構(gòu)。車輛節(jié)點作為區(qū)塊鏈輕節(jié)點,在獲得全節(jié)點RSU的認(rèn)證后接入?yún)^(qū)塊鏈網(wǎng)絡(luò)。
HashGraph 區(qū)塊鏈節(jié)點用于存儲車輛信任值,含時間戳、車輛ID、路況事件ID、信任值、雙向哈希指針等字段。各字段含義如下。
TimeStamp:時間戳,即區(qū)塊發(fā)布時間,用于判斷車輛信任值的時效性。
車輛ID:車輛的身份標(biāo)識。
路況事件ID:被傳播的路況事件標(biāo)識。車內(nèi)記錄車輛不同狀態(tài)(車速、方向等)下的事件建模及對應(yīng)編號。
信任值:當(dāng)前車輛信任值,由RSU 根據(jù)信任評估公式計算所得。
雙向哈希指針Hash1 和Hash2:Hash1 指向發(fā)布此區(qū)塊的RSU;Hash2指向車輛需更新的信任值區(qū)塊。
車聯(lián)網(wǎng)分布式信任機(jī)制的實現(xiàn)包括系統(tǒng)初始化、面向消息的可信性評估和基于車輛的信任值計算三個階段。
⑴TC 中心分配初始化參數(shù)。方案基于PKI機(jī)制進(jìn)行身份認(rèn)證。設(shè)G為橢圓曲線,選取s∈G作為橢圓曲線上一點。計算公鑰Ppub=sG,公開參數(shù){G,H1,Ppub},其中H1代表單向哈希加密函數(shù)。
⑵RSU 節(jié)點初始化。TC 為RSU 設(shè)置公私鑰對{Pr=H1(IDr),Sr=sH1(IDr)},IDr為RSU的惟一身份標(biāo)識,為RSU 生成公鑰證書。RSU 選取隨機(jī)數(shù)Nr∈并廣播參數(shù)NrPr。
⑶車輛身份注冊。車輛提供身份信息IM(i如身份證號碼、車牌號),TC 為車輛設(shè)置共享密鑰xi∈Zq*并計算全局身份標(biāo)識IDi=H1(IMi||xi),生成公私鑰對{pi,Si},為車輛生成公鑰證書、分配初始信任值T0。
車輛節(jié)點駛?cè)隦SU 覆蓋路段基于PKI 機(jī)制完成雙向身份認(rèn)證。當(dāng)車輛發(fā)送消息給鄰近車輛時,鄰近車輛利用智能合約調(diào)用評估算法對消息可信性進(jìn)行評估,決定是否信任該消息,同時將消息評估值上傳至RSU,更新發(fā)送消息車輛的信任值。具體步驟如下:
⑴雙向身份校驗后,OBUi合法身份得到確認(rèn),RSU在車聯(lián)網(wǎng)中廣播其身份IDi及其公鑰證書。
⑵OBUi->OBUj:{A,IDi,SignSi}
車輛i生成路況數(shù)據(jù)包A=(Event,Time,acceleration),其中Event為路網(wǎng)狀態(tài)事件編號,Time為發(fā)送消息時間,acceleration為此時車輛的加速度。車輛將身份IDi、A、簽名SignSi生成路況消息發(fā)送至鄰居車輛j。
⑶觸發(fā)智能合約。
OBUj接收OBUi發(fā)布的事件消息,并檢查消息完整性DPi(SignSi)=A,IDi,觸發(fā)智能合約infoValue()對消息進(jìn)行評估。infoValue()算法描述如圖2 所示,輸入?yún)?shù)IDi、A、自身加速度acceleration'、接收消息的時間Time'、接收此路段的路況消息個數(shù)λ:
圖2 信任值評估算法
TravelGraph()函數(shù)為遍歷區(qū)塊鏈,定位OBUi當(dāng)前信任值所在區(qū)塊。對消息可信度評估的模式見公式⑴:
其中,α=Time'-Time為消息傳播時延;a=acceleration'-acceleration表示兩車之間的加速度之差。α和a 估測兩車間狀態(tài)相似度,數(shù)值越小,車輛狀態(tài)越相似,消息可信度增加;λ為OBUj在此路段接收到的事件消息數(shù)值,其值增加表明事件發(fā)生的可能性越大。
⑷OBUj在->RSU:EPr(IDj,W,TSj,SignSj)
車輛j完成消息評估,若評估值C>評估標(biāo)準(zhǔn)θ,消息為可信,接收此消息,否則拒絕該消息。隨后封裝消息評估數(shù)據(jù)報文W=(IDi,C,warn),其中字段C為消息評估結(jié)果;字段IDi為被評估車輛ID;字段warn標(biāo)識數(shù)據(jù)包類型,算法描述如圖3所示。
圖3 評估數(shù)據(jù)包分類
算法分析如下:
⑴warn值設(shè)為1:因區(qū)塊時間戳>ΔT,信任值超出時效,RSU需重新計算車輛信任值;
⑵warn值設(shè)為0:區(qū)塊時間戳有效,但評估值C小于標(biāo)準(zhǔn)值θ,即消息不可信,提示RSU 懲罰(減少)此車輛信任值;
⑶warn值設(shè)為-1:區(qū)塊時間戳有效,且評估值C大于標(biāo)準(zhǔn)值θ,即消息可信度大,提示RSU 獎勵(增加)此車輛信任值。
最后將消息評估數(shù)據(jù)包W、車輛身份ID(j防止重放攻擊)、時間戳TSj和簽名Signsj加密上傳至RSU。
RSU 周期性統(tǒng)計連接的車輛總數(shù)(m),參與評估事件消息A的車輛數(shù)多于m時,區(qū)塊鏈網(wǎng)絡(luò)觸發(fā)智能合約OBUValue(),根據(jù)warn 標(biāo)識選擇對應(yīng)車輛信任值計算模型,計算生成新的信任值后生成區(qū)塊鏈節(jié)點。算法如圖4所示。
圖4 車輛信任值算法
RSU收到鄰接車輛j1-n上傳的消息評估值,用私鑰解密并驗證每個評估數(shù)據(jù)包時效性、惟一性和簽名的正確性。當(dāng)評估量n≥m,區(qū)塊鏈網(wǎng)絡(luò)觸發(fā)智能合約OBUValue()進(jìn)行車輛信任值計算,首先調(diào)用TravelGraph()函數(shù)定位區(qū)塊鏈中車輛i 的當(dāng)前信任值所在區(qū)塊,并根據(jù)warn值,進(jìn)行被評估車輛的信任值計算:
⑴warn 值為1,表示當(dāng)前信任值失效,需重新計算車輛信任值。
①使用公式2計算此事件發(fā)生概率:
其中,P(ej|Cj)為事件j 在樣本量為n 條件下發(fā)生的概率;P(ej)表示事件j 在整個車聯(lián)網(wǎng)系統(tǒng)中已發(fā)生的概率(存于路網(wǎng)狀態(tài)標(biāo)準(zhǔn)信息庫中);P(ej|Cj)即在事件j發(fā)生的情況下,消息評估Cj證實了該事件發(fā)生的概率。P()為ej對立事件發(fā)生的概率。
②使用公式⑶計算車輛信任值:
其中,Ti+1代表更新后的車輛信任值,Ti為車輛當(dāng)前信任值。綜合其余車輛對車輛i 行為的評估,重新計算車輛信任值。
⑵若warn值為0,表示此消息不可信,使用公式⑷懲罰(減少)車輛信任值:
其中,T0為初始信任值;λ0為接收到warn==0的評估數(shù)據(jù)包個數(shù);使用函數(shù)arctan-1λ0,將懲罰的信任值維持在[0-T0]內(nèi)。
⑶若warn 值為-1,表示此消息可信度大,使用公式⑸獎勵(增加)車輛信任值:
其中,λ-1為接收到warn==-1的評估數(shù)據(jù)包個數(shù)。使用函數(shù),將獎勵的信任值維持在內(nèi)。
更新信任值后,觸發(fā)智能合約,生成新區(qū)塊。若更新后的信任值小于初始信任值(Ti+1 考慮到部署在一條路段的多個RSU 會重復(fù)計算同一車輛的信任值,可能導(dǎo)致分叉的發(fā)生,方案在HashGraph 共識機(jī)制的基礎(chǔ)上提出一種新型Follower共識算法,基本思路是,若上鏈時發(fā)現(xiàn)車輛信任值已被計算,則與已存在的信任值結(jié)果比較,為差值<ε的區(qū)塊建立哈希指針,成為其跟隨者(follower);否則進(jìn)行分叉操作。最后成為知名見證人的區(qū)塊達(dá)成全網(wǎng)共識,具體流程如下: ⑴RSU3 產(chǎn)生新區(qū)塊,遍歷區(qū)塊鏈,找到當(dāng)前信任值所在區(qū)塊,執(zhí)行步驟⑵; ⑵若當(dāng)前信任所在區(qū)塊(白色)無子區(qū)塊(無其他RSU 對此車輛進(jìn)行評估),新區(qū)塊(黑色)哈希值指向此區(qū)塊,成為其follower(圖5),執(zhí)行步驟5;若存在子區(qū)塊,執(zhí)行步驟⑶; 圖5 共識情況1 ⑶若此車輛的信任值已被同一路段的RSU2計算(灰色區(qū)塊),則與其存儲的信任值比較,若差值小于閾值ε,則成為圖6所示區(qū)塊Follower;否則執(zhí)行步驟⑷; 圖6 共識情況2 ⑷若差值大于閾值ε,完成圖7所示分叉操作,執(zhí)行步驟⑸; ⑸其余RSU 重復(fù)步驟⑴到⑸,選擇在誤差<ε的子區(qū)塊后站隊。最終成為知名見證人的區(qū)塊及其可見區(qū)塊達(dá)成全網(wǎng)共識。 方案仿真和實驗配置環(huán)境如下:Windows10 系統(tǒng)下,安裝SUMO 仿真器,搭建VANET 仿真實驗場景,利用TraCI接口調(diào)用Python 腳本,模擬智能合約,在不同車輛密度條件下計算車輛信任值、評估消息可信性,使用Matplotlib 和Numpy 庫對仿真結(jié)果進(jìn)行性能分析。方案設(shè)計了更新車輛信任值的三種情況: ⑴時間戳過期,重新計算信任值Ti+1=Ti?P(ej|Cj); 為驗證可行性,方案使用SUMO 仿真車輛移動軌跡,模擬長1000米的公路,分析車輛密度從10輛每公里到300輛每公里,在激勵和懲罰情況下,車輛信任值的變化趨勢。設(shè)車輛初始信任值為1,當(dāng)前信任值為3。結(jié)果如圖8、圖9 所示,信任值最大增加0.4,最多減少0.8,減值速度為增值的2 倍。而隨著車輛數(shù)目增多,信任值變化趨勢越大,但都小于初始值1。公式4~5有效控制了信任值增減幅度,達(dá)到慢增快減的效果。 圖8 信任值的減少 圖9 信任值的增加 在上述信任值變化狀態(tài)下,根據(jù)消息評估值公式C=e-(α+a)+Ti tan-1λ,分析消息評估結(jié)果的變化。結(jié)果如圖10 所示,表明車輛信任值減小后,消息可信性快速下降,車輛信任值微小的變化可正確評估消息可信度,實現(xiàn)了車輛信任值與消息評估值的相互作用,說明本方案信任機(jī)制的高效可行。 圖10 消息評估值變化 車聯(lián)網(wǎng)因其開放信道、臨時組網(wǎng)的特性,面臨著比傳統(tǒng)網(wǎng)絡(luò)節(jié)點更多的惡意節(jié)點攻擊。相對傳統(tǒng)的節(jié)點認(rèn)證授權(quán)機(jī)制,車聯(lián)網(wǎng)信任機(jī)制能更有效的解決此問題。但目前車聯(lián)網(wǎng)信任機(jī)制均存在中心化、高時延等問題,基于此,本文在HashGraph 技術(shù)的基礎(chǔ)上,提出一種基于區(qū)塊鏈3.0 的車聯(lián)網(wǎng)分布式信任機(jī)制。利用智能合約實現(xiàn)信任值的自動驗證和更新,設(shè)計了新的Follower 共識算法,滿足車聯(lián)網(wǎng)信任值實時發(fā)布需求。仿真實驗分析表明,該方案既可實現(xiàn)對車輛消息真實性的高效判別,也可實現(xiàn)對車輛實體的可信性判斷,滿足車聯(lián)網(wǎng)信任機(jī)制實時更新需求,有效地解決了車輛節(jié)點間的信任問題。3 實驗仿真與性能分析
4 結(jié)束語