玄世昌,湯浩,楊武
(哈爾濱工程大學信息安全研究中心,黑龍江 哈爾濱 150001)
隨著智慧城市的興起和交通壓力的增長,融合了移動邊緣計算技術和車輛自組織網絡(VANET,vehicular ad-hoc network)的車聯網(IoV,Internet of vehicles)受到了學術界的廣泛關注。目前,城市中已經部署了許多車聯網服務。例如,實時交通信息服務可以為用戶更好地規劃出行路線,避免交通堵塞;天氣信息共享服務可以為用戶規劃出行時間。這些服務都需要依靠道路中的車輛共享數據作為基礎支撐。
因為共享的數據(如位置信息等)可能存在隱私泄露的風險,所以在車聯網中通常對用戶的信息進行假名轉換和管理。但是,這種方法也為網絡中可能存在的惡意節點提供了掩護,導致網絡中容易出現共謀攻擊。攻擊者在網絡中部署大量惡意的節點進行共謀攻擊。這些惡意節點不僅可以依靠真實的身份信息偽裝為可信節點,還可以通過互相掩護共享虛假的路況信息。這些惡意節點通常具有更高的性能,往往會成為網絡中的洪泛節點,并被更多的節點加入快速節點池中,從而進一步增加了參與共享過程的可能性。顯然,如果存在多個惡意節點,將很難保證實時路況信息共享的正確性。
車載自組織網絡在信息安全和隱私保護方面需要滿足以下5 個要求。1) 認證:每個身份都必須得到保證和驗證,此外,每個有效的消息都必須得到保證。2) 完整性和正確性:在傳輸過程中,必須保證數據不被修改或丟棄,發送方的地理數據必須準確,避免接收方被誤導。3) 不可否認性:發送方不能否認數據的操作。4) 隱私性:真實身份不能通過數據直接鏈接,具有一定的匿名性。5) 效率:在上述條件下,必須達到一定的處理能力。
區塊鏈技術在2008 年首次被提出[1]。區塊鏈可以被視為一個公共分類賬,所有提交的交易都存儲在一個區塊鏈中。區塊鏈技術具有分散性、安全性、匿名性和可審計性等關鍵特征。該技術能以較低的成本實現車聯網的安全、隱私保護和信任建立等服務,并能夠有效地解決路況信息共享時產生的共謀攻擊問題。
本文首先介紹了區塊鏈和車聯網的概念;其次,總結了研究人員將區塊鏈技術應用到車聯網場景中的工作進展;再次,設計了一種基于信譽積分的路況信息共享中共謀攻擊節點檢測方法;最后從理論分析和實驗驗證兩方面對該方法進行了分析。
近年來,加密貨幣引起了工業界和學術界的廣泛關注。比特幣通常被認為是第一種加密貨幣。區塊鏈技術是比特幣的核心機制。區塊鏈技術由于其在加密貨幣中的應用而被認可,但是區塊鏈技術的可應用領域不局限在加密貨幣中。由于區塊鏈技術允許在沒有任何銀行或中介機構的情況下完成支付,因此可以用于各種金融服務,如數字資產、匯款和在線支付等[2]。此外,區塊鏈技術正在成為下一代互聯網系統中最受關注的技術之一,例如智能合約[3]、公共服務[4]、物聯網(IoT,Internet of things)[5]和聲譽系統[6]。
區塊鏈技術具有以下關鍵特征。
1) 分散性。在傳統的集中交易系統中,每一筆交易都需要通過中央受信機構(如中央銀行)進行驗證。這必然導致中央服務器的成本和性能瓶頸。不同的是,區塊鏈網絡中的交易可以在任何2 個對等點(P2P,peer-to-peer)之間進行,而不需要中央機構的認證。所以,區塊鏈技術可以顯著降低服務器成本(包括開發成本和運營成本),緩解中心服務器的性能瓶頸。
2) 安全性。區塊鏈網絡中傳播的每一筆交易都需要確認并記錄到網絡中每一個節點所存儲的數據塊中,因此,幾乎不可能被篡改。此外,每個廣播塊將由其他節點驗證并檢查,所以任何偽造都很容易被發現。
3) 匿名性。每個用戶都可以使用自己生成的地址參與區塊鏈網絡的交互。用戶可以通過生成多個地址來避免身份暴露。但是,由于固有的限制,區塊鏈無法提供完美的隱私保護。
4) 可審計性。由于區塊鏈上的每一筆交易都在驗證后記錄到區塊中,用戶可以通過訪問分布式網絡中任何節點的區塊鏈數據來驗證和跟蹤以前的交易記錄。例如,在比特幣中,每一筆交易都可以迭代追蹤到之前的全部交易。這提高了區塊鏈中數據的可追蹤性和透明度。
車聯網的理想目標是實現人車物環境的深度融合,降低社會成本,提高運輸效率和城市服務水平。
近年來,物聯網、云計算和大數據技術的發展,催生了大量的服務和應用程序。其中的數據資源已成為最有價值的資源。在車聯網應用中,車輛、用戶的大規模交通數據共享方法,已經成為備受關注的研究熱點。
車聯網的數據可以分為3 種類型:車輛數據、用戶數據和環境數據。
1) 車輛數據。車輛數據包括車輛使用數據(車速、里程、行駛路段/時間/方向/頻次、單次行駛/擁堵/暢行時長等)、性能數據(發動機轉速、油耗、百米加速等)、工況數據(蓄電池/電機/發動機狀態、主缸壓力、ABS 狀態、EBD 狀態、ESP 狀態、牽引力控制系統狀態、告警信息等)。
2) 用戶數據。用戶數據包括用戶操控數據(加速、制動、駐車、遠近光/霧燈/位置燈、方向盤轉角/轉速等)、用戶畫像數據(地址、行程分析、常用路線、不良行為分析、活動范圍等)。
3) 環境數據。環境數據包括天氣、路況、道路類型/限速/擁堵等情況。
有了這些詳細的數據,車輛可以知道車主的用車習慣以及車況狀態,其中包括車輛的運行狀態、行為軌跡等信息。這將有助于政府相關部門對交通進行調度和車企有針對性地對產品、技術和服務等進行改良升級。
將區塊鏈技術應用到車聯網中,可以安全、可信地記錄車輛的全部數據,從而解決車輛數據誠信問題。
區塊鏈可接入汽修汽配、車輛管理、汽車制造商、汽車租賃、保險等眾多機構。智能合約能夠實現交易的自動執行。車輛與車輛之間、車輛與人之間、車輛與服務商之間等使用區塊鏈技術來保護分享的數據,從而提高駕駛的安全性和服務商管理的效率。由于區塊鏈分布式存儲的數據具有不可篡改性,使用車輛唯一識別碼(VIN,vehicle identification number)作為唯一賬號接入區塊鏈網絡時,車輛的違章、故障、交通事故等信息可以被永久記錄,實現證據的固化,從而解決車輛數據誠信問題。用戶可將車聯網設備行車期間的車內外數據分享給第三方,使誠信數據產生價值,讓用戶獲利。
目前,已經展開了一些將區塊鏈技術應用到路況信息共享中的研究工作。
2.3.1 使用區塊鏈技術激勵用戶參與共享路況信息
在路況信息共享場景中,吸引大量優質用戶參與進來是比較困難的。
Yang 等[7]提出了一種基于區塊鏈的車輛網絡分散信任管理方案。在該方案中,每輛車首先根據接收到的消息為其相鄰的車輛生成一個評級,然后將評級結果上傳到所連接的路邊單元(RSU,road side unit)。根據車輛的評級結果,每個RSU 計算其所涉及車輛的信任值,并將這些數據打包成一個塊。工作量證明(PoW,proof of work)和權益證明(PoS,proof of stake)作為協商一致的機制用于將塊添加到區塊鏈中。每個車輛都可以很容易地從RSU獲得其他車輛的信任值,從而能夠評估接收到其他車輛共享消息的可信度。
Li 等[8]提出了一種基于區塊鏈的激勵車輛公告網絡CreditCoin。該網絡通過聲譽點數(即金幣)來激勵車輛分享與道路相關的信息。
在共享路況信息的過程中,只有一套完善的激勵策略是不夠的,還需要關注共享路況信息網絡環境中的安全因素。
2.3.2 使用區塊鏈技術解決共享路況信息中的安全性問題
車輛之間共享道路相關信息(如事故、交通擁堵等路況信息),可以提高交通效率。然而,由于網絡中車輛的高機動性和交通條件動態性等特殊限制,車輛之間往往不能充分信任。由于惡意車輛共享的不準確信息會對交通安全和效率產生不良影響。因此,在非可信環境下,有必要設計一種有效的車輛網絡信任管理機制。隨著智能車輛的快速部署,使用完全可信的集中實體管理大量車輛是不切實際的。在這種情況下,分散系統對于信任管理更有效。區塊鏈的分散化、透明性和不變性使其成為分散化信任管理系統的理想選擇。
Lu 等[9]提出了一種面向車聯網的基于區塊鏈的信任管理系統(BARS,blockchain-based nonymous reputation system),并提出了一種信譽評分機制,根據區塊歷史上的消息來確定車輛的可信度;Malik 等[10]提出了一種使用區塊鏈的車聯網認證和撤銷框架。這些系統設計保護了車輛的隱私,但沒有解決通信安全問題。Singh 等[11]提出了一種基于區塊鏈的加密信任點,用于車輛之間的安全數據共享。類似地,Sherstha 等[12]討論了為車聯網提供的基于區塊鏈的消息發布服務。盡管這2 種解決方案都提供了良好的車輛通信安全性,但它們都沒有解決相關的隱私問題。Zhang 等[13]的方案強調了車聯網產生的數據量,以及移動邊緣計算在抵消基于區塊鏈的車聯網的資源消耗方面的重要性,該方案有助于減少區塊鏈的計算開銷,但移動邊緣計算的引入并沒有使其真正去中心化。
此外,Singh 等[14]提出了一種基于獎勵的車輛通信機制TrustBit,并使用區塊鏈與唯一加密ID 的安全通信和獎勵系統。Zhang 等[15]介紹了一種基于區塊鏈的車聯網數據共享和存儲安全平臺,但是該平臺會產生額外的開銷。Khelifi 等[16]提出了區塊鏈在車聯網中用于安全數據網絡緩存的方法。Lei 等[17]討論了一種使用區塊鏈技術的異構智能交通系統的動態密鑰管理方案。
盡管上述系統為車輛通信提供了良好的安全性,但它們未能保護車輛的隱私。如果產生隱私泄露,可能會使人處于潛在的風險中。為了解決車輛在共享路況信息中存在的共謀攻擊,Feng 等[18]提出了交通信息交換中抗內外合謀攻擊(TFAA,traffic messages exchange against inside and outside collusive attack)方案。TFAA 方案試圖解決共享路況信息過程中由信任漏洞帶來的共謀攻擊,并通過實驗驗證了TFAA 方案的準確性和有效性。但是從文獻[18]的設計機制可以看出,TFAA 方案在惡意節點數量占比超過50%的情況下并不適用。
路況信息共享過程中,真實性是基礎。然而,由共謀攻擊帶來的路況信息真實性問題的研究工作目前還處于起步階段。現有的解決方法因為機制的局限,不能適用于共謀節點數量占比較多的情況。針對以上問題,本文提出了一種基于信譽積分的路況信息共享中共謀攻擊節點的檢測方法。
在一個典型的路況信息共享方案中,首先由道路上行駛的車輛將其行駛數據上傳到RSU;其次由RSU 通過聚合多臺車輛的行駛數據得到當前道路的路況信息,并將當前道路的路況信息廣播到區塊鏈網絡中。在這個過程中,可能存在一部分惡意節點。這些節點具有真實身份,它們可以合謀將一個假的路況信息上傳到區塊鏈中。區塊鏈中的路況信息可以被用來估測道路的擁堵。因此,虛假的路況信息會給需要依賴路況信息做分析的服務造成很大影響,并對道路上的司機造成誤導,甚至給道路造成安全隱患。本文針對車聯網共享路況信息存在惡意節點的場景,設計了一種有效的抗共謀攻擊的方法(MDCA-RP,method of detecting collusion attack node based on reputation point)。
一個典型的車聯網共享路況信息的場景由注冊服務器、共識節點(CN,consensus node)、RSU和車輛組成,如圖1 所示。
1) 注冊服務器。注冊服務器為車輛提供在網絡中所需要的一個或者多個虛擬的身份信息。服務器在完成假名注冊后,會在區塊鏈網絡中廣播假名地址。
2) 共識節點。共識節點將發送到網絡中的路況信息打包并生成一個新的區塊,再經過共識算法驗證該區塊的合法性后將區塊上鏈。每個共識節點只負責一個區域的共識。
3) RSU。RSU 是車輛參與共享路況信息過程中的媒介,負責每條道路實時信息的聚合與上傳工作。在進行路況信息聚合的過程中,RSU 需要進行惡意節點識別。
4) 車輛。在整個車聯網共享路況信息的過程中,車輛是終端實體。
在MDCA-RP 中,需要進入網絡的車輛要先到注冊服務器中進行用戶信息注冊。注冊階段注冊服務器會為車輛生成一定數量的假名信息。注冊服務器會將這些假名信息返回給車輛進行存儲,同時也會將這些假名信息中的地址信息公布到區塊鏈網絡中。

圖1 一個典型的車聯網共享路況信息的場景

圖2 MDCA-RP 的區塊結構
車輛有了假名信息后就可以參與路況信息聚合。車輛在道路中將采集的實時信息共享給RSU。RSU 在對實時信息進行聚合的階段,會對實時信息和車輛的信譽積分進行分析,其中,信譽積分需要RSU 從區塊鏈中進行獲取,從而對車輛節點進行惡意檢測。RSU 聚合路況信息后,將數據打包發布到網絡中。網絡中的共識節點就會對這條數據包進行驗證,然后將一個區塊時間間隔內RSU 打包的數據打包成一個區塊發布到網絡中。最后,由網絡中其他共識節點對這個區塊進行驗證,驗證通過后此區塊將會加入區塊鏈。公布到區塊鏈網絡中的路況信息可以被車輛、交管、路政等需要路況信息的實體查詢。
在MDCA-RP 的設計中,考慮到產生數據的量非常龐大,按照不同區域進行劃分,每個區域擁有單獨的區塊鏈網絡。車輛作為收集路況信息最底層、規模最龐大的實體,是最容易進行惡意攻擊的實體。傳統的車輛網絡中,如果大量的虛擬車輛節點協商好對系統進行攻擊,那么系統是沒有什么反抗能力的。所以,如何有效地防止大量節點合謀進行攻擊是MDCA-RP 主要關心的問題。
MDCA-RP 的區塊結構由區塊頭和區塊體組成,具體如圖2 所示。
在區塊頭部分,MDCA-RP 設計的區塊結構與傳統的車載區塊鏈網絡不同。除了區塊ID(Block ID)、前一個區塊的哈希值(Previous Hash)、默克爾樹根(Merkle Root)、時間戳(Time Stamp)外,MDCA-RP 引入了幾個新的關鍵字。
CN,即區塊鏈網絡中的共識節點。區塊鏈網絡中的每個共識節點負責將一個區域內路況信息的數據封裝成區塊。在共識節點封裝區塊時,應該把該節點的ID 同時封裝到區塊頭中。
SigCN (Merkle Root),CN 對默克爾樹根的簽名。網絡中其他的共識節點可以通過驗證這個簽名快速地完成區塊有效性的驗證。區塊體部分主要用于記錄區塊網絡中發生的事件。這里MDCA-RP 主要關注網絡中的2 種事件:服務器為車輛注冊假名的事件和路況信息共享的事件。
區塊體中道路信息的結構如圖3 所示,每條道路上的RSU 打包路況信息由以下關鍵字組成。

圖3 區塊體中道路信息的結構
RoadInfo,一條道路上的RSU 對這一階段內道路中的車輛共享的路況信息聚合的結果。這條關鍵字后面的信息上傳到網絡中,可以被其他的車輛、交通運輸、交警和路政等部門和個人用來參考和分析。
contributeList,參與共享路況信息做出貢獻節點的列表。該字段用于記錄本次路況信息聚合過程中做出貢獻的車輛的數量。
shamList,發布虛假路況信息節點的列表。該字段用于記錄本次路況信息聚合過程中發布虛假信息的惡意節點的數量。
Creditscore,一個RSU 產生一條路況信息的信譽積分。信譽積分用于激勵車輛進行路況信息共享。RSU 一個時間段內聚合一次路況信息產生的信譽積分是一定的,并根據車輛貢獻值進行分配。
MDCA-RP 主要有3 個操作流程,分別是服務器為車輛注冊生成假名的過程、車輛與RSU 建立連接的初始化過程和RSU 對共享的路況信息進行聚合的過程。
注冊服務器為車輛注冊生成假名的操作流程如圖4 所示。在車輛注冊階段,服務器收到車輛發送的消息

圖4 注冊服務器為車輛注冊生成假名的操作流程
首先,車輛參與路況信息前需要向服務器發送注冊假名的請求。其次,注冊服務器同意車輛的請求后,車輛需要發送用戶身份信息和注冊的假名數量。最后,服務器返回假名的公鑰、私鑰和假名地址給用戶,同時將這些信息打包成區塊發布到區塊鏈中的車輛列表(CarList)中存儲。
圖4 注冊假名流程中,注冊服務器采用橢圓曲線數字簽名算法生成公私密鑰對。設橢圓曲線公鑰密碼系統參數為SP,則有

其中,Fq是有限域;E是Fq上的橢圓曲線;G是E上的q階生成元(q為一大素數),稱為基點;P為橢圓曲線E上的點;a、b是橢圓曲線E的系數;h是一個單向安全的哈希函數。
根據系統參數SP,用戶a隨機選擇n個整數(Ka1,Ka2,…,Kan) ∈[1,q?1]作為其私鑰(priKa1,priKa2,…,priKan),由式(2)計算公鑰為(pubKa1,pubKa2,…,pubKan)。

其中,K為計算得到的公鑰,k為用戶私鑰,G為E上的q階生成元。
RSU 與車輛之間建立連接的初始化階段操作流程如圖5 所示。在初始化階段,RSU 會監聽連入的車輛。通過檢測車輛的行為特征,RSU 能夠鑒別是否存在共謀節點和虛假節點。

圖5 RSU 與車輛之間建立連接的初始化階段操作流程
在初始化階段為RSU 設計了基于行為特征的節點檢測算法。當車輛生成數據時,RSU 檢查它是否合法。如果車輛在已注冊列表中,則向其發送身份詢問。如果它對詢問產生了積極的響應,驗證正確并且行為合法,那么車輛和本地區塊鏈之間就成功地建立了聯系。
基于行為特征的節點檢測算法的具體步驟如下。
步驟1車輛與RSU 建立連接時,向RSU 發送,其中pubK是車輛的公鑰;Rpre是車輛上次共享路況的RSU,Tpre是車輛上次共享路況的時間。
步驟2RSU 在CarList 中查詢用戶的公鑰pubK是否真實存在。如果是,則執行步驟3;否則直接結束。
步驟3RSU 根據Tpre查詢在Tpre±min BlockPeriod 是否存在區塊,其中,minBlockPeriod是最小區塊時間間隔。如果存在區塊,則返回BlockID并執行步驟4;否則將pubK加入unTrustList并結束,其中,unTrustList 表示不可信的車輛列表。
步驟4RSU 根據BlockID 尋到對應區塊,并查詢其中是否保存了車輛的公鑰pubK。如果是,則執行步驟5;否則將pubK加入unTrustList 中。
步驟5RSU 判斷pubK在區塊BlockID 中存在于TrustList 還是HalfList 中。如果存在于TrustList中,則將pubK加入TrustList 中;如果存在于HalfList中,則將pubK加入HalfList 中。
RSU 聚合車輛上傳數據的操作過程如圖6 所示。在路況信息聚合階段,RSU 根據車輛的信譽值計算權值。通過每個車輛的權值比重聚合路況信息,然后篩選出對路況信息做出貢獻的車輛和發布虛假消息的車輛。

圖6 RSU 聚合車輛上傳數據的操作過程
在RSU 進行數據聚合之前,需要在節點檢測的基礎上查詢車輛的信譽積分。如果該節點的信譽積分高于低采納閾值Trustlow,即為信任節點;如果該節點的信譽積分低于低采納閾值Trustlow,即為低采納節點;如果該節點的信譽積分低于失信閾值Trustdeline,即為失信節點。信任節點、低采納節點和失信節點分別存在TrustList、HalfList、unTrustList 中。
在路況信息聚合階段,一個RSU 負責處理的一條道路中的n個車輛發送到RSU 的消息,記為txV1,txV2,...,txVn。其中,txV是車輛打包生成的數據結構,且包括m個實時信息字段mes1,mes2,...,mesm,并且滿足mesi∈[1,valuei],1≤i≤m。為了聚合每個路況信息字段的最終數據,n個車輛的mes1,mes2,...,mesm建立如式(3)所示的0-1 模型。

其中,mes1…m表示mes1,mes2,...,mesm中的每條消息。對于mes 來說,當第i個車輛取值為j時,則將mij賦值為1,否則為0,如式(4)所示。

其中,i∈[1,n],j∈[1,vali]路況信息聚合過程是在mesi∈[1,vali],i∈[1,m]找出權值weight 最大的取值作為最終mesi的值。權值weight 的計算式為

其中,c為半可信調整系數且大于1,i∈[1,n]。
因此,可以通過車輛的信譽值計算得到n個車輛的數據聚合權值(weight,i∈[1,n])。經過式(6)計算可以得到1...m個字段實時信息的1...vali取值的權值分布,如式(7)所示。

其中,i∈[1,m],j∈[1,vali],k∈[1,n]。
根據1...m個字段實時信息的1...vali取值權值分布,利用式(8)對每個字段取權值最大的實時信息取值。最后RSU 將包含m條關鍵字的實時信息聚合成為。

其中,max_loc 函數返回mesij最大值對應的位置j。
RSU 聚合路況信息后,要對做出貢獻的車輛和發布虛假消息的車輛進行統計,分別記錄在RoadData 的contributeList 和shamList 中。對于m條數量的路況信息關鍵字,如果車輛共享真實信息達到φ個(φ由式(9)給出),則認為該車輛為網絡中的實時路況信息共享工作做出了貢獻;否則認為該車輛是發布虛假消息的惡意車輛。

其中,σ∈(0,1)是自定義的檢測參數。
RSU 根據式(10)計算n個車輛共享真實路況信息的數量βi,i∈[1,n]。

RSU會根據βi對車輛i進行評價,如果βi≥φ,則將車輛i加入contributeList;否則將車輛i加入shamList。
最后,RSU將聚合的RoadInfo 和contributeList、shamList 打包生成 RoadData。contributeList、shamList 為系統獎懲車輛和后續對車輛的惡意行為檢測提供支持。其中,系統根據contributeListh 和shamList 決定車輛i的獎懲。車輛i的信譽更新方式由式(11)給出。其中,mul 為懲罰參數。

在路況信息共享的過程中,網絡中存在的惡意節點發送虛假的路況信息,會導致道路中的車輛、交通運輸、交警和路政等部門產生錯誤的結果,給道路安全帶來安全隱患。MDCA-RP 能夠針對惡意節點在網絡中的不同數量、不同行為做出相應的對策。
首先,對真實的網絡環境中做出如下假設。
1) 道路中的RSU 具有足夠算力,可以作為礦工節點。
2) 道路中車輛與RSU 之間是開放的網絡。
3) 車輛之間不進行直接通信,所有共享都與區塊鏈網絡進行交互。
其次,假設與一個RSU 建立連接的誠實車輛數量為nh,這條道路中存在的惡意節點的數量為nm。由式(12)可以定義惡意節點與誠實節點的比率ε。本文將危險情況分為2 種:ε<1和ε≥ 1。

1)ε<1。這種情況下,惡意節點的數量是少數的。當這些惡意節點發布虛假路況信息給RSU后,RSU 可以通過加權的方式聚合路況信息。由于這些節點的數量少,即使是加權計算,它們的權值也比真實的節點小。進而,惡意節點發送的虛假路況信息會被RSU 所忽略,保證了聚合的路況信息的安全性。
2)ε≥ 1。這種情況下,有人操縱大量惡意節點進行合謀,向網絡中發布大量虛假路況信息。針對這種情況,MDCA-RP 的方法是根據節點的行為特征篩查出合謀的惡意節點。在真實的網絡環境中,要同時控制大量真實的車輛進行合謀攻擊是非常難的,可能的方法就是通過虛擬一些網絡節點進行合謀攻擊。但是這種偽造的虛擬節點經過MDCA-RP 的驗證就會被發現。
TFAA 方案采用車輛間通信共享數據,而MDCA-RP采用車輛直接將數據共享給RSU進行聚合的方法,MDCA-RP 和TFAA 的比較如表1 所示。由表1 可以看出,由于方案設計機制的原因,TFAA方案中車輛會對惡意節點共享的惡意信息產生響應做出錯誤的決策,而MDCA-RP 中的車輛則不會產生響應。根據TFAA 的實驗結果可以看出,其網絡中車輛對惡意節點的響應與共享周期呈線性關系。然而,MDCA-RP 由于路況信息直接由RSU 進行聚合,然后上傳到網絡中,不經過車輛間互評的階段。因此,MDCA-RP 網絡中的車輛對惡意節點發布的虛假路況信息是不能進行評價和響應的。MDCA-RP 在網絡中的車輛對于虛假信息的響應方面是優于TFAA 方案的。

表1 MDCA-RP 和TFAA 的比較
綜上所述,不論網絡中節點的數量如何,MDCA-RP 都可以檢測出惡意節點,進而過濾掉虛假的路況信息,保證最終聚合路況信息的真實性和共享路況信息過程的安全。
下面,通過實驗來驗證MDCA-RP 的安全性以及消息的準確性。具體將從惡意節點信譽積分變化和惡意節點數量對路況信息結果的準確率的影響2個方面與TFAA 進行對比。
實驗過程中使用如表2 所示的數據格式作為車輛共享的數據。其中m1、m2、m3、m4、m5代表5 種不同類型的車輛實時信息,其取值范圍各有不同。設定<0,2,1,3,30>為真實消息,<0,0,0,0,0>和<1,2,3,3,5>為2 組虛假消息。

表2 車輛共享數據格式
不同惡意節點數量對路況信息準確率的影響實驗中,設定真實節點的數量是50 個,虛假節點的數量是0~100 個。
惡意節點信譽積分變化實驗中,模擬惡意節點在網絡中進行20 個周期的路況信息共享。其中,設定50 臺車輛(40 臺正常車輛,10 臺共謀車輛)從惡意節點中隨機選取4 個節點(a、b、c、d)與TFAA 方案進行對比,即4 個節點不規律地發布2組虛假消息。不同惡意節點數量對路況信息準確率的影響如圖7 所示。
從圖7 中可以看出,MDCA-RP 整體路況信息的準確率基本都能達到90%。當惡意節點數量在50%左右時,其準確率開始降低到95%以下,這時的準確率容易出現波動,會漏掉幾個惡意節點的路況信息;當惡意節點占比超過50%后,將采用優先分析車輛的行為特征。TFAA 只對惡意節點占比從10%到50%的情況做了實驗分析。從圖7 中可以看出,網絡中存在的惡意節點越多,TFAA 處理的準確率越低,并且TFAA 不能處理的惡意節點數量占多數情況。

圖7 不同惡意節點數量對路況信息準確率的影響
惡意節點信譽積分對比如圖8 所示。從圖8 中可以看出,MDCA-RP 對惡意節點發布虛假消息時,信譽積分下降得很快,對系統做貢獻時信譽積分增長得卻很慢,這樣可以使惡意節點的信譽積分很快就降低到失信閾值之下。當閾值為550 時,節點的信譽積分降低到500 以下就不再降低了,系統也不會采納這個信譽積分的路況信息。
經過實驗驗證,MDCA-RP 與TFAA 方案相比,對于數量較少的惡意節點發動攻擊的情況,MDCA-RP 能夠快速地降低惡意節點的信譽積分,讓其發揮不了作用;對于TFAA 不能處理的大量惡意節點合謀進行攻擊情況,MDCA-RP 能夠通過分析惡意節點的行為特征將其篩查出來。最終證明,MDCA-RP 能夠更好地應對路況信息共享過程中的共謀攻擊。
本文針對車聯網中共謀節點協同發布虛假路況信息,導致路況信息共享過程中消息真實性無法保證的問題,通過研究信譽管理的機制,結合信譽積分模型和節點特征檢測算法,提出了基于信譽積分的路況信息共享中共謀攻擊節點檢測方法。通過與現有工作的安全性對比分析,以及車輛節點信譽積分變化情況和路況信息準確率的對比實驗,驗證了本文所提方法的有效性,并且顯著提高了檢測高占比共謀節點的能力。

圖8 惡意節點信譽積分對比
在未來的研究中,可將深度學習用于惡意節點的行為特征檢測中,進一步提高檢測能力。