李子健,章國(guó)安,陳葳葳
(南通大學(xué)信息科學(xué)技術(shù)學(xué)院,江蘇南通 226019)
隨著第五代移動(dòng)通信技術(shù)的快速發(fā)展,車聯(lián)網(wǎng)(Internet of Vehicles,IoV)通過(guò)不斷降低車與車(Vehicle-to-Vehicle,V2V)、車與道路基礎(chǔ)設(shè)施(Vehicle-to-Infrastructure,V2I)之間的通信時(shí)延,為道路交通安全與暢通提供了有效保障,但由于車輛的高速移動(dòng)性和動(dòng)態(tài)性,使得網(wǎng)絡(luò)拓?fù)洳粩嘧兓瑯O易遭受惡意節(jié)點(diǎn)入侵與攻擊,影響整個(gè)車聯(lián)網(wǎng)系統(tǒng)的安全。近年來(lái),車聯(lián)網(wǎng)安全問(wèn)題受到越來(lái)越多學(xué)者的關(guān)注。傳統(tǒng)解決方案采用公鑰基礎(chǔ)設(shè)施(Public Key Infrastructure,PKI)對(duì)車輛身份進(jìn)行認(rèn)證[1-3],利用加密[4-6]、數(shù)字簽名[7]等技術(shù)對(duì)車輛身份及交互信息進(jìn)行管控。為提高隱私保護(hù)能力,車輛周期性接收到證書機(jī)構(gòu)所產(chǎn)生的假名,并用假名在車聯(lián)網(wǎng)環(huán)境中進(jìn)行匿名通信。利用上述技術(shù)能夠有效防止身份偽裝及隱私泄露,抵御篡改、女巫等攻擊[8-9],但由于車聯(lián)網(wǎng)點(diǎn)對(duì)點(diǎn)(Peer-to-Peer,P2P)的交互模式,無(wú)法抵御內(nèi)部惡意節(jié)點(diǎn)的攻擊。內(nèi)部惡意車輛節(jié)點(diǎn)在注冊(cè)身份后,以合法身份越過(guò)靜態(tài)信任機(jī)制認(rèn)證,對(duì)車聯(lián)網(wǎng)環(huán)境中的其他車輛節(jié)點(diǎn)進(jìn)行信息欺騙等攻擊[10-11],會(huì)對(duì)車聯(lián)網(wǎng)安全造成危害。通過(guò)將信任機(jī)制引入點(diǎn)對(duì)點(diǎn)網(wǎng)絡(luò),雙方通過(guò)歷史行為軌跡對(duì)對(duì)方進(jìn)行信任評(píng)估,能夠有效排查出環(huán)境內(nèi)部的惡意節(jié)點(diǎn)。文獻(xiàn)[12]提出基于貝葉斯的信任模型,利用概率評(píng)估可信度。文獻(xiàn)[13]綜合考量交易總數(shù)、交易滿意度、反饋信任度等與信任有關(guān)的參數(shù),提出一種基于信任的P2P 信任模型。近幾年,許多學(xué)者將車聯(lián)網(wǎng)中的安全技術(shù)與信任機(jī)制相結(jié)合,構(gòu)建車輛節(jié)點(diǎn)間的信任關(guān)系。文獻(xiàn)[14]通過(guò)將本地與全局信任相結(jié)合來(lái)構(gòu)建一個(gè)反攻擊的信任體系。文獻(xiàn)[15]提出基于人為因素的車輛信息估計(jì)算法,通過(guò)車輛間信任和基于OSN 信任的融合,綜合估計(jì)車輛的總體信任值。文獻(xiàn)[16]在車聯(lián)網(wǎng)中建立信任模型,將可信性檢查和鄰節(jié)點(diǎn)推薦相結(jié)合,抵御中間人攻擊。但上述方案并沒(méi)有給出完整的車聯(lián)網(wǎng)信任機(jī)制,如何有效地在車聯(lián)網(wǎng)中實(shí)施信任評(píng)估并對(duì)評(píng)估節(jié)點(diǎn)及其信任值進(jìn)行管理,成為車聯(lián)網(wǎng)亟待解決的安全問(wèn)題。
區(qū)塊鏈[17-18]作為比特幣的核心技術(shù),因去中心化、開(kāi)放性、防篡改性、匿名性、可追溯性等特點(diǎn)成為近年來(lái)的熱門研究方向。區(qū)塊鏈技術(shù)的各種特性與車聯(lián)網(wǎng)安全十分契合,能夠?yàn)檐嚶?lián)網(wǎng)中車輛身份和交互信息的驗(yàn)證和保存提供全新的思路。文獻(xiàn)[19]將SDN 與區(qū)塊鏈技術(shù)相結(jié)合來(lái)存儲(chǔ)車輛視頻信息,并提出一種信任管理機(jī)制來(lái)扼制惡意節(jié)點(diǎn)發(fā)送虛假信息。文獻(xiàn)[20]利用將位置證明替換工作量證明的區(qū)塊鏈來(lái)保存更新車輛的信用值。文獻(xiàn)[21]使用PoW 及PoS 共識(shí)機(jī)制將含有信任值的區(qū)塊上傳到區(qū)塊鏈。文獻(xiàn)[22]采用聯(lián)盟鏈中的PBFT 機(jī)制及公有鏈中的PoW 機(jī)制來(lái)選擇Leader 節(jié)點(diǎn)。文獻(xiàn)[23]提出一種基于聯(lián)盟鏈的車聯(lián)網(wǎng)管理方法,利用改進(jìn)的DPoS 共識(shí)對(duì)車輛數(shù)據(jù)的安全分享提供保障,但是沒(méi)有對(duì)車輛的可靠性進(jìn)行分析,進(jìn)而影響了對(duì)礦工的判定。上述文獻(xiàn)通過(guò)聯(lián)盟鏈與車聯(lián)網(wǎng)的結(jié)合,在一定程度上解決了車聯(lián)網(wǎng)內(nèi)部信任及信息存儲(chǔ)問(wèn)題,但是多數(shù)文獻(xiàn)將公有鏈中的共識(shí)機(jī)制應(yīng)用于聯(lián)盟鏈,造成了巨大的算力資源浪費(fèi),并且網(wǎng)絡(luò)性能較差。本文設(shè)計(jì)一種基于區(qū)塊鏈的車聯(lián)網(wǎng)安全通信策略,采用基于橢圓曲線的加密技術(shù)對(duì)車聯(lián)網(wǎng)外部攻擊進(jìn)行防御,利用基于Beta 分布的直接信任和基于PageRank 算法的推薦信任相結(jié)合的信任評(píng)估對(duì)車聯(lián)網(wǎng)內(nèi)部攻擊進(jìn)行防御,使用智能合約技術(shù)實(shí)現(xiàn)車輛信息上鏈、查詢以及信任評(píng)估功能,通過(guò)RAFT 共識(shí)機(jī)制降低車聯(lián)網(wǎng)時(shí)延并提高吞吐量。
基于區(qū)塊鏈的車聯(lián)網(wǎng)安全通信系統(tǒng)模型如圖1所示,由證書頒發(fā)機(jī)構(gòu)(CA)、路側(cè)單元(RSU)和車載單元(OBU)構(gòu)成。CA 負(fù)責(zé)為進(jìn)入車聯(lián)網(wǎng)的合法車輛進(jìn)行身份注冊(cè),產(chǎn)生公私鑰對(duì),頒發(fā)身份證書。RSU 是分布在路邊的設(shè)備,通過(guò)長(zhǎng)期演進(jìn)技術(shù)(Long Term Evolution,LTE)與車輛上的OBU 進(jìn)行信息傳遞,還負(fù)責(zé)將收集到的數(shù)據(jù)上傳到區(qū)塊。OBU 是車聯(lián)網(wǎng)的參與者,能夠與其他參與車聯(lián)網(wǎng)的車輛、路側(cè)單元、證書頒發(fā)機(jī)構(gòu)進(jìn)行通信,并向RSU上傳車輛信息。

圖1 基于區(qū)塊鏈的車聯(lián)網(wǎng)安全通信系統(tǒng)模型Fig.1 System model of blockchain-based IoV secure communication
基于區(qū)塊鏈的車聯(lián)網(wǎng)安全通信系統(tǒng)模型包括數(shù)據(jù)傳輸層、數(shù)據(jù)共識(shí)層和數(shù)據(jù)儲(chǔ)存層。數(shù)據(jù)傳輸層由車輛和RSU 組成。RSU 負(fù)責(zé)收集車輛上傳的歷史信任數(shù)據(jù),并將其共識(shí)存儲(chǔ)至區(qū)塊鏈網(wǎng)絡(luò)。車輛作為用戶節(jié)點(diǎn),駛?cè)隦SU 通信覆蓋范圍,與RSU 進(jìn)行交互。為保證V2V 通信安全,車輛間利用信任模型進(jìn)行信任評(píng)估,從而進(jìn)行安全消息傳遞。數(shù)據(jù)共識(shí)層由RSU組成,RSU 將接收到的信息上浮至數(shù)據(jù)共識(shí)層,通過(guò)共識(shí)機(jī)制進(jìn)行Leader 選舉并對(duì)信息進(jìn)行排序共識(shí)。數(shù)據(jù)儲(chǔ)存層根據(jù)選出的Leader 將這一時(shí)間段的信息進(jìn)行排序共識(shí),并將數(shù)據(jù)上傳到區(qū)塊鏈。
根據(jù)上文系統(tǒng)模型,提出基于區(qū)塊鏈的車聯(lián)網(wǎng)安全通信策略,策略流程如圖2 所示。接入車聯(lián)網(wǎng)的RSU 節(jié)點(diǎn)與車輛節(jié)點(diǎn)通過(guò)CA 機(jī)構(gòu)進(jìn)行身份注冊(cè)得到注冊(cè)信息,并將注冊(cè)信息存儲(chǔ)至區(qū)塊鏈。在車輛間通信時(shí),通過(guò)檢索區(qū)塊鏈查驗(yàn)交互對(duì)方信息是否屬實(shí),并計(jì)算對(duì)方車輛在此階段的信任值判別其可靠性,同時(shí)將本次計(jì)算的信任值存入?yún)^(qū)塊鏈。如果某一車輛的信任值多次低于某個(gè)設(shè)定的信任閾值,則將此車輛假名置于撤銷列表,車輛需重新向CA 申請(qǐng)身份注冊(cè)。

圖2 基于區(qū)塊鏈的車聯(lián)網(wǎng)安全通信策略流程Fig.2 Strategy procedure of blockchain-based IoV secure communication
區(qū)塊鏈通常采用PoW 共識(shí)機(jī)制來(lái)完成對(duì)信息的上傳,雖然PoW 去中心化程度及安全性能高,但是挖礦記賬將浪費(fèi)大量資源及時(shí)間,系統(tǒng)性能較差,無(wú)法滿足車聯(lián)網(wǎng)節(jié)點(diǎn)的高速移動(dòng)性及低時(shí)延要求。本文策略使用RAFT 作為區(qū)塊鏈的共識(shí)機(jī)制,具有如下優(yōu)勢(shì):
1)復(fù)雜度僅為O(n),優(yōu)于PBFT 的O(n2)。
2)可容忍(n?1)/2 個(gè)故障節(jié)點(diǎn),有效防止RSU 宕機(jī)產(chǎn)生的數(shù)據(jù)丟失等問(wèn)題。
3)對(duì)于車聯(lián)網(wǎng),Leader 選舉機(jī)制能較好地避免資源被浪費(fèi),數(shù)據(jù)信息上傳速度快且不會(huì)出現(xiàn)分叉。
RAFT 算法中的所有節(jié)點(diǎn)包含Leader、Candidate、Follower 等3 種角色,作為強(qiáng)一致性算法,選舉出的Leader 角色能夠決定信息的上鏈。RAFT 共識(shí)機(jī)制的具體過(guò)程如下:
1)一開(kāi)始區(qū)塊鏈系統(tǒng)中的所有RSU 節(jié)點(diǎn)都為Follower 節(jié)點(diǎn),如果Follower 節(jié)點(diǎn)在一段任期(Term)中沒(méi)有收到Leader 或者是Candidate 的響應(yīng),則自動(dòng)增加任期,轉(zhuǎn)變?yōu)镃andidate 節(jié)點(diǎn),對(duì)其他節(jié)點(diǎn)發(fā)起投票。當(dāng)?shù)闷睌?shù)超過(guò)一半時(shí),則說(shuō)明此節(jié)點(diǎn)被選舉為L(zhǎng)eader。如果另一個(gè)Candidate 節(jié)點(diǎn)贏得選舉,則此節(jié)點(diǎn)返回為Follower 節(jié)點(diǎn)。RAFT 選舉流程如圖3所示。

圖3 RAFT 選舉流程Fig.3 Procedure of RAFT election
2)Leader 節(jié)點(diǎn)將接收到的信息以區(qū)塊形式打包并廣播給其他節(jié)點(diǎn)。區(qū)塊中的區(qū)塊頭摒棄了公鏈需要的隨機(jī)數(shù)(Nonce),并增加了任期,如圖4 所示。其他節(jié)點(diǎn)收到區(qū)塊后對(duì)區(qū)塊內(nèi)容中的時(shí)間戳和任期進(jìn)行驗(yàn)證,并復(fù)制一份作為存證。

圖4 區(qū)塊結(jié)構(gòu)Fig.4 Structure of block
3)在得到超過(guò)半數(shù)節(jié)點(diǎn)的響應(yīng)后,Leader 節(jié)點(diǎn)將區(qū)塊上鏈。
策略設(shè)計(jì)由基于橢圓曲線算法的身份注冊(cè)、信任評(píng)估、安全通信等3 個(gè)部分構(gòu)成。身份注冊(cè)和安全通信中的符號(hào)說(shuō)明如表1 所示。

表1 符號(hào)說(shuō)明Table 1 Symbol description
所有參與車聯(lián)網(wǎng)的RSU 及車輛都需要向CA 進(jìn)行身份注冊(cè),RSU 將自己身份ID 提交給CA。CA 利用橢圓曲線加密算法對(duì)接入車聯(lián)網(wǎng)的車輛及RSU 生成公私鑰對(duì)及證書。CA 產(chǎn)生一個(gè)橢圓曲線Ep(a,b):y2=x3+ax+b(modp),必須滿足4a3+27b2≠0,且在橢圓曲線上取一個(gè)基點(diǎn)G(x,y),其中,p為素?cái)?shù)域內(nèi)點(diǎn)的個(gè)數(shù),a和b為兩個(gè)大數(shù)。RSU 與車輛的注冊(cè)流程如圖5 所示。

圖5 RSU 與車輛的注冊(cè)流程Fig.5 Procedure of RSU and vehicle registration
2.1.1 RSU 注冊(cè)
所有參與車聯(lián)網(wǎng)的RSU 都需要向CA 進(jìn)行身份注冊(cè),RSU 將自己身份ID 提交給CA,具體步驟如下:
步驟1RSU 向CA 發(fā)送注冊(cè)請(qǐng)求{RIDr,kr},可以抵御中間人攻擊。
步驟2CA 接受RSU 的發(fā)送注冊(cè)請(qǐng)求并驗(yàn)證RSU 身份,在確認(rèn)身份信息無(wú)誤后產(chǎn)生一個(gè)授權(quán)證書Certr,選擇一個(gè)橢圓曲線Ep(a,b)并隨機(jī)選取一個(gè)基點(diǎn)G(x,y)。CA 將RSU 發(fā)送的kr作為RSU 的私鑰PRIr,用私鑰PRIr產(chǎn) 生RSU 公 鑰PUBr=PRIr×G。在產(chǎn)生公私鑰對(duì)后,將RSU 注冊(cè)完成時(shí)間戳TSr及PUBr向全網(wǎng)廣播。
步驟3CA 將{TSr,PUBr,PRIr,Certr}通過(guò)安全通道傳輸給等待注冊(cè)的RSU,RSU 收到CA 消息后RSU 注冊(cè)流程結(jié)束。
2.1.2 車輛注冊(cè)
在車輛接入車聯(lián)網(wǎng)系統(tǒng)前,需要向CA 發(fā)起身份注冊(cè)申請(qǐng),具體步驟如下:
步驟1車輛向CA 發(fā)送注冊(cè)請(qǐng)求{RIDv,TSv},其中TSv為車輛申請(qǐng)時(shí)的時(shí)間戳。
步驟2CA 接受車輛的注冊(cè)申請(qǐng)請(qǐng)求并驗(yàn)證車輛身份,確認(rèn)身份信息無(wú)誤后,CA 產(chǎn)生一個(gè)隨機(jī)數(shù)kv作為車輛私鑰PRIv,選擇一個(gè)橢圓曲線Ep(a,b),并在橢圓曲線上取一個(gè)基點(diǎn)G(x,y)。CA 將自身產(chǎn)生的隨機(jī)數(shù)kv作為RSU 的私鑰PRIv,使用私鑰PRIv產(chǎn)生RSU 公鑰PUBv=PRIv×G。然后,CA 為車輛產(chǎn)生假名PIDv=h(RIDv||kv),CA 根據(jù)TSv為車輛頒發(fā)含有注冊(cè)失效時(shí)間的授權(quán)證書Certv并賦予車輛一個(gè)初始的直接信任值DTdefault。
步驟3CA 將{PIDv,PUBv,PRIv,Certv,DTdefault}通過(guò)安全通道傳輸給等待注冊(cè)的車輛并上傳至區(qū)塊鏈,車輛收到CA 信息后車輛注冊(cè)流程結(jié)束。
在注冊(cè)身份完成后,車輛節(jié)點(diǎn)依舊有可能會(huì)進(jìn)行惡意攻擊,對(duì)車聯(lián)網(wǎng)信息系統(tǒng)進(jìn)行破壞。本文策略在車輛通信時(shí)增加了信任評(píng)估機(jī)制,計(jì)算出的信任值將由車輛上傳至附近的RSU,RSU 通過(guò)共識(shí)機(jī)制將信任值等信息上傳到區(qū)塊鏈中進(jìn)行存儲(chǔ)。
2.2.1 直接信任值
計(jì)算在t+1 時(shí)段車輛節(jié)點(diǎn)j的直接信任值,主要考慮之前時(shí)段車輛節(jié)點(diǎn)i與j的交互情況。利用Beta分布對(duì)車輛節(jié)點(diǎn)i與j進(jìn)行直接信任值計(jì)算,如式(1)所示:

其中:S(i,j)表示車輛節(jié)點(diǎn)i和j交互成功次數(shù);F(i,j)表示車輛節(jié)點(diǎn)i和j交互失敗次數(shù);D(i,j)能夠反映兩個(gè)車輛節(jié)點(diǎn)之間交互的情況。
但是,僅依賴車輛節(jié)點(diǎn)交互成功率不能保證節(jié)點(diǎn)在獲得信任后會(huì)發(fā)送真實(shí)信息,因此增加反饋評(píng)價(jià)度C,表示在交互成功的前提下車輛節(jié)點(diǎn)i對(duì)j的可信度評(píng)價(jià),如式(2)所示:

其中:t(i,j)表示車輛節(jié)點(diǎn)i發(fā)送消息中真實(shí)信息的個(gè)數(shù);n(i,j)表示車輛節(jié)點(diǎn)i發(fā)送信息的總數(shù),發(fā)送的真實(shí)信息數(shù)越多,反饋評(píng)價(jià)度越高。
在t+1 時(shí)段車輛節(jié)點(diǎn)j的直接信任值計(jì)算如式(3)所示:

其中:N為交互次數(shù)。如果車輛沒(méi)有交互,那么直接信任值為注冊(cè)時(shí)CA 分發(fā)的初始信任值,但是如果節(jié)點(diǎn)進(jìn)行搖擺攻擊,即積累信任值,然后發(fā)動(dòng)攻擊,那么很難計(jì)算直接信任值。引入時(shí)間影響度δ(Δt),表示上一時(shí)段節(jié)點(diǎn)信任值對(duì)當(dāng)前節(jié)點(diǎn)信任值的影響,如式(4)所示:

其中:Δt=tn+1?tn;λ為調(diào)節(jié)系數(shù),λ越小,時(shí)間影響度越大,意味著上一時(shí)段的直接信任值對(duì)這一時(shí)段的直接信任值的影響越大。當(dāng)上一時(shí)段信任值減少時(shí),λ小幅增加;當(dāng)連續(xù)減少3 次及以上時(shí),λ大幅增加。
將時(shí)間影響度考慮在內(nèi)的直接信任值計(jì)算如式(5)所示:

2.2.2 推薦信任值
當(dāng)兩個(gè)車輛節(jié)點(diǎn)沒(méi)有直接交互或者直接交互次數(shù)過(guò)少時(shí),車輛節(jié)點(diǎn)i需要通過(guò)獲取在車聯(lián)網(wǎng)中其他與i進(jìn)行交互過(guò)的節(jié)點(diǎn)j的信任評(píng)價(jià)來(lái)計(jì)算推薦信任值。惡意詆毀攻擊通常發(fā)生在推薦信任值計(jì)算時(shí),攻擊方式有2 種:1)對(duì)同樣是惡意節(jié)點(diǎn)的車輛節(jié)點(diǎn)進(jìn)行過(guò)高評(píng)價(jià),使得惡意車輛節(jié)點(diǎn)能夠繼續(xù)維持一個(gè)較高的信任值,得以在車聯(lián)網(wǎng)中繼續(xù)運(yùn)作;2)對(duì)交互過(guò)的正常車輛節(jié)點(diǎn)進(jìn)行差評(píng),使得正常車輛節(jié)點(diǎn)的信任值下降,從而破壞信任模型。
通過(guò)改進(jìn)PageRank 算法[24]進(jìn)行車輛的推薦信任值計(jì)算,如式(6)所示:

其中:PR(u)為所計(jì)算的網(wǎng)頁(yè)u的PageRank 值;P為網(wǎng)頁(yè)總數(shù);α是阻尼系數(shù),一般取0.85;Bu為頁(yè)面u的入鏈集合;PR(Pv)為網(wǎng)頁(yè)P(yáng)v的PageRank 值;L(Pv)為Pv鏈出頁(yè)面的數(shù)量。
通過(guò)對(duì)PageRank 算法進(jìn)行改進(jìn),評(píng)估車輛的推薦信任值。所計(jì)算的推薦信任值也可看作是對(duì)系統(tǒng)環(huán)境內(nèi)車輛交互積極性的信任值獎(jiǎng)勵(lì),如果在一段時(shí)間內(nèi)車輛進(jìn)入車聯(lián)網(wǎng)系統(tǒng)但不與任何其他車輛進(jìn)行交互,那么只能得到一個(gè)較小的推薦信任值。與其他車輛節(jié)點(diǎn)交互越多,相應(yīng)的推薦信任值在一定程度上會(huì)越大。改進(jìn)PageRank 算法的推薦信任值計(jì)算如式(7)所示:

其中:K(k1,k2,…,kn)表示在n時(shí)段與車輛節(jié)點(diǎn)j交互過(guò)的所有節(jié)點(diǎn)的集合;PR 表示在n時(shí)段車輛節(jié)點(diǎn)k的PageRank 值;L(k)表示車輛節(jié)點(diǎn)k在n時(shí)段的總交互次數(shù);M表示此時(shí)段的車輛總數(shù)。車輛節(jié)點(diǎn)的推薦信任值由與車輛節(jié)點(diǎn)j交互過(guò)的車輛節(jié)點(diǎn)集合K(k1,k2,…,kn)共同決定。如果有車輛節(jié)點(diǎn)在當(dāng)前時(shí)段離開(kāi)車聯(lián)網(wǎng)或者是因?yàn)樾庞脝?wèn)題被強(qiáng)制注銷,那么此節(jié)點(diǎn)不包括在K集合中。同樣地,如果在當(dāng)前時(shí)段有新的車輛節(jié)點(diǎn)加入并與j發(fā)生交互,那么對(duì)j的推薦要等到下一時(shí)段才能生效。
在推薦信任值計(jì)算過(guò)程中加入節(jié)點(diǎn)相似度的概念,能夠更好地抵御惡意詆毀攻擊。節(jié)點(diǎn)相似度計(jì)算如式(8)所示:

其中:Set(i,k)為節(jié)點(diǎn)i與k都交互過(guò)的節(jié)點(diǎn)集合;N(Set(i,k))為此集合的節(jié)點(diǎn)數(shù)量;C(i,x)為節(jié)點(diǎn)i對(duì)此集合中節(jié)點(diǎn)x的反饋評(píng)價(jià);C(k,x)為節(jié)點(diǎn)k對(duì)此集合中節(jié)點(diǎn)x的反饋評(píng)價(jià)。兩個(gè)車輛節(jié)點(diǎn)對(duì)同一車輛的反饋評(píng)價(jià)越接近,兩個(gè)車輛節(jié)點(diǎn)的相似度越高。
推薦信任值計(jì)算公式如式(9)所示:

當(dāng)總交互次數(shù)小于等于1 次時(shí),系統(tǒng)只賦予一個(gè)較小的推薦信任值。
2.2.3 綜合信任值
將直接信任值和推薦信任值相結(jié)合計(jì)算綜合信任值,如式(10)所示:

其中:?為信任調(diào)節(jié)權(quán)重,能夠調(diào)節(jié)直接信任值和推薦信任值的比例。在產(chǎn)生車輛的信任值后,將車輛的假名、信任值、產(chǎn)生時(shí)間戳、其他信息以及此時(shí)RSU 的服務(wù)范圍傳給附近RSU 寫入?yún)^(qū)塊中。
車與車、車與RSU 在通信前必須對(duì)車輛身份進(jìn)行驗(yàn)證,驗(yàn)證流程如圖6 所示。

圖6 車輛身份驗(yàn)證流程Fig.6 Procedure of vehicle identity authentication
車輛節(jié)點(diǎn)的身份驗(yàn)證步驟具體如下:
1)車輛到RSU 的認(rèn)證申請(qǐng)
在車輛進(jìn)入RSU 管轄范圍后,對(duì)自身的假名、公鑰、證書以及信任值{PIDv,PUBv,Certv}使用Hash 函數(shù)產(chǎn)生摘要DIG1=h({PIDv,PUBv,Certv})。使用車輛私鑰PRIv對(duì)此摘要進(jìn)行簽名,產(chǎn)生數(shù)字簽名SIG=sig(DIG1)。車輛將SIG 以及{PIDv,PUBv,Certv}一起發(fā)送給RSU。
2)RSU 驗(yàn)證
步驟1RSU 收到車輛發(fā)送的信息后,用PUBv驗(yàn)證簽名SIG 得到DIG1,將收到的{PIDv,PUBv,Certv}使用同樣的Hash函數(shù)計(jì)算得到DIG2。如果DIG1=DIG2,則發(fā)送的信息沒(méi)有被篡改,則執(zhí)行步驟2。
步驟2RSU 提取車輛假名PID,調(diào)用智能合約Search Information()函數(shù),在區(qū)塊鏈中進(jìn)行查詢:若PID 存在,則說(shuō)明此車輛經(jīng)CA 授權(quán);若驗(yàn)證沒(méi)有通過(guò),則將此車輛的證書撤回,車輛需要重新在CA 中進(jìn)行身份注冊(cè)。
步驟3若車輛合法,則返回認(rèn)證成功消息。車輛向RSU 上傳信息。
3)車輛A 到車輛B 的認(rèn)證申請(qǐng)
車輛A 向車輛B 發(fā)送通信請(qǐng)求{PIDv,PUBv,Certv}。對(duì){PIDv,PUBv,Certv}使用Hash 函數(shù)產(chǎn)生摘要DIG3=h({PIDv,PUBv,Certv}),使用車輛私鑰PRIv對(duì)此摘要進(jìn)行簽名產(chǎn)生數(shù)字簽名SIG。車輛B 將SIG 和{PIDv,PUBv,Certv}一起發(fā)送給車輛B。
4)車輛B 驗(yàn)證
步驟1車輛B 收到車輛A 發(fā)送的信息后,使用PUBv驗(yàn)證簽名SIG 得到DIG3。將收到的{PIDv,PUBv,Certv}使用同樣的Hash 函數(shù)計(jì)算得到另外一個(gè)數(shù)字摘要DIG4。如果DIG3=DIG4,則可保證信息的完整性。
步驟2車輛B 接受請(qǐng)求申請(qǐng),首先查驗(yàn)車輛A證書是否到期,如果到期則拒絕通信。接著車輛B 根據(jù)車輛A 的假名,調(diào)用智能合約Search Information()在區(qū)塊鏈中查找車輛A 的信任值,如果信任值低于某一閾值,則拒絕通信。
步驟3車輛B 如果接受通信請(qǐng)求,則將{PIDv,PUBv,Certv}發(fā)給車輛A。車輛A 同樣按照上述步驟對(duì)車輛B 進(jìn)行認(rèn)證。在接受通信后,雙方對(duì)本次通信對(duì)方的信任值進(jìn)行計(jì)算并就近上傳至RSU,由RSU 寫入?yún)^(qū)塊。
5)全局通信安全
每過(guò)一段時(shí)間,車聯(lián)網(wǎng)中管理員會(huì)通過(guò)智能合約Revoke Information()來(lái)遍歷區(qū)塊鏈,找到被其他車輛認(rèn)定信任值低于閾值的車輛假名并置于撤銷列表。
安全通信涉及的區(qū)塊鏈賬本操作均通過(guò)智能合約完成。智能合約主要包括信息上鏈、身份信息驗(yàn)證、信任評(píng)估等3 種功能。智能合約根據(jù)不同的場(chǎng)景需求制定相關(guān)策略,通過(guò)代碼方式寫入?yún)^(qū)塊鏈,在觸發(fā)條件后能夠自動(dòng)完成合約上的預(yù)設(shè)。本文采用智能合約對(duì)車輛信任值及信息進(jìn)行管理,可以實(shí)現(xiàn)對(duì)車輛信任值的上鏈、更改與更新,以及查找出信任值不符合規(guī)定的所有車輛。
1)Upload Information()智能合約
Upload Information()智能合約收集車輛上傳給RSU 的信息,車輛信息包括假名、時(shí)間戳、所需提交的RSUID、車輛公鑰、信任值及其他信息,利用賬本數(shù)據(jù)狀態(tài)操作API 中GetState 及PutState 方法對(duì)信息狀態(tài)進(jìn)行操作。

2)Search Information()智能合約
Search Information()智能合約為用戶提供已上鏈車輛信息的查詢功能。當(dāng)用戶有查詢需求時(shí),需要輸入車輛的假名以此獲取車輛的所有信息。利用賬本數(shù)據(jù)狀態(tài)操作API中的GetState方法對(duì)信息狀態(tài)進(jìn)行操作。

Revoke Information()智能合約可對(duì)車聯(lián)網(wǎng)系統(tǒng)中信任值較低的車輛節(jié)點(diǎn)進(jìn)行排查,對(duì)于排查出的多次被其他車輛認(rèn)定信任值較低的車輛,能夠根據(jù)車輛的假名以及公鑰在CA 中進(jìn)行證書的撤回。


測(cè)試在5 個(gè)車輛節(jié)點(diǎn)交互的情況下車輛節(jié)點(diǎn)綜合信任值的變化情況。初始綜合信任值設(shè)為0.5,?設(shè)為0.7。如圖7 所示,隨著時(shí)段的增加,正常車輛綜合信任值不斷增加,惡意車輛綜合信任值不斷減小。

圖7 車輛綜合信任值評(píng)估Fig.7 Evaluation of vehicle comprehensive trust value
為測(cè)試本文策略的可行性,利用Hyperledger Fabric 組件搭建基于區(qū)塊鏈的信任評(píng)估系統(tǒng)(簡(jiǎn)稱為本文系統(tǒng))模擬車輛信息的上鏈查詢過(guò)程,部署多個(gè)節(jié)點(diǎn)模擬RSU 進(jìn)行區(qū)塊鏈仿真。仿真環(huán)境配置為Ubuntu 16.04 操作系統(tǒng)、Hyperledger Fabric 1.4.3 測(cè)試環(huán)境、Docker 應(yīng)用容器引擎、Golang 編程語(yǔ)言。仿真主要對(duì)系統(tǒng)吞吐量和平均時(shí)延進(jìn)行壓力測(cè)試。模擬車輛終端向系統(tǒng)發(fā)送5 000 筆交易,通過(guò)改變交易發(fā)送速率,觀察系統(tǒng)性能的變化。
在較低交易發(fā)送速率的情況下,在上鏈過(guò)程中系統(tǒng)吞吐量和平均時(shí)延的變化如圖8(a)、圖8(b)所示。在上鏈過(guò)程中,交易發(fā)送速率由25 transaction/s增加至150 transaction/s,每次疊加25 transaction/s 對(duì)系統(tǒng)進(jìn)行測(cè)試。在查詢過(guò)程中系統(tǒng)吞吐量和平均時(shí)延的變化如圖8(c)、圖8(d)所示。在查詢過(guò)程中,交易發(fā)送速率由50 transaction/s增加至300 transaction/s,每次疊加50 transaction/s 對(duì)系統(tǒng)進(jìn)行測(cè)試。基于區(qū)塊鏈的信任評(píng)估系統(tǒng)相比文獻(xiàn)[17]模型在較低交易發(fā)送速率的情況下具有較高的吞吐量以及較低的時(shí)延。

圖8 低交易發(fā)送速率下的吞吐量與平均時(shí)延對(duì)比Fig.8 Comparison of throughput and average time delay under low transaction sending rate
在較高交易發(fā)送速率的情況下,上鏈及查詢過(guò)程的系統(tǒng)吞吐量及平均時(shí)延變化如圖9、圖10 所示,兩個(gè)過(guò)程的交易發(fā)送速率均從100 transaction/s 增加至1 000 transaction/s,每次疊加100 transaction/s。由圖9 可以看出,在交易發(fā)送速率為400 transaction/s之后,上鏈過(guò)程吞吐量穩(wěn)定保持在373.8 transaction/s左右。在交易發(fā)送速率為700 transaction/s 之后,查詢過(guò)程吞吐量穩(wěn)定保持在665.1 transaction/s 左右,均能滿足車聯(lián)網(wǎng)需求。由圖10 可以看出,隨著交易發(fā)送頻率的提高,查詢與上鏈過(guò)程的平均時(shí)延都有所提高,但是上鏈過(guò)程的響應(yīng)時(shí)延均在7 s 之內(nèi),查詢過(guò)程的響應(yīng)時(shí)延均在3 s 之內(nèi)。因?yàn)椴樵冞^(guò)程不需要與Hyperledger Fabric 中的節(jié)點(diǎn)進(jìn)行通信,所以查詢過(guò)程的平均時(shí)延及吞吐量均要優(yōu)于上鏈過(guò)程。

圖9 高交易發(fā)送速率下的吞吐量對(duì)比Fig.9 Comparison of throughput under high transmission sending rate

圖10 高交易發(fā)送速率下的平均時(shí)延對(duì)比Fig.10 Comparison of average time delay under high transmission sending rate
綜上所述,本文設(shè)計(jì)的基于區(qū)塊鏈的信任評(píng)估系統(tǒng)在高交易發(fā)送速率及低交易發(fā)送速率下均具有較高的吞吐量及較低的時(shí)延,可滿足車聯(lián)網(wǎng)實(shí)時(shí)通信需求,同時(shí)保證數(shù)據(jù)傳輸?shù)陌踩煽啃浴?/p>
本文從車輛節(jié)點(diǎn)身份注冊(cè)與信任評(píng)估兩方面入手,提出基于區(qū)塊鏈的車聯(lián)網(wǎng)安全通信策略。利用橢圓曲線加密算法為車輛及RSU 生成通信所需的證書等信息,并對(duì)外部攻擊進(jìn)行抵抗,保證通信節(jié)點(diǎn)的真實(shí)性。運(yùn)用直接信任和推薦信任相結(jié)合的方式對(duì)車輛信任值進(jìn)行量化判斷,將其與車輛的其他信息共同寫入?yún)^(qū)塊鏈,利用區(qū)塊鏈去中心化、可追溯等特點(diǎn)為車聯(lián)網(wǎng)提供分布式存儲(chǔ)系統(tǒng)。同時(shí),通過(guò)智能合約上鏈查詢信息,對(duì)惡意車輛進(jìn)行評(píng)估監(jiān)管,實(shí)現(xiàn)對(duì)內(nèi)部攻擊的抵抗。仿真結(jié)果驗(yàn)證了該策略具有較高的系統(tǒng)吞吐量及較低的平均時(shí)延,能夠滿足車聯(lián)網(wǎng)實(shí)時(shí)安全通信需求。后續(xù)將改進(jìn)RAFT 選舉機(jī)制,通過(guò)提升RAFT 共識(shí)機(jī)制的去中心化程度以及區(qū)塊鏈系統(tǒng)的吞吐量,增強(qiáng)車聯(lián)網(wǎng)整體性能。