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