王春東,郭茹月
天津理工大學 計算機科學與工程學院 天津 300384
隨著各種車載傳感、計算和通信設備[1]的發展,車輛獲得了越來越多的自主權。所有的基礎設施和智能車輛構成的車聯網已成為第五代移動網絡的重要場景。車聯網為車輛提供了一個可以與鄰居共享道路相關信息的平臺,例如路況、交通擁堵等信息。這些信息有助于車輛及時了解交通狀況,從而提高交通安全和效率[2]。
然而,隨著人為因素在車聯網中的參與,社會特征和人的行為在很大程度上影響著信息在網絡中的傳播。因此,對于駕駛員來說,區分可信信息和不可信信息是非常重要的[3]。以往的研究大多依賴傳統的安全技術來建立對非法車輛的防御[4],例如:公鑰基礎設施(public key infrastructure,PKI)。然而,合法車輛仍有可能由于自私或惡意的意圖而發送不可信的信息。因此,如何有效地識別惡意車輛是車聯網中的一個重要問題。
信任管理系統使車輛能夠判斷接收到的信息是否可信,也為網絡運營商提供了對特定車輛的獎懲依據[5]。通常情況下,車輛的信任值可以通過對歷史行為的評分來計算,這些評分由相關節點生成。現有的信任管理(trust management,TM)模型可分為集中式和分布式兩類[6]。在集中式TM 模型中,所有信任評級都在中央服務器(如云服務器)中存儲和處理。由于車輛通常必須在短時間內做出決策,集中式TM模型不能滿足車聯網嚴格的服務質量要求,同時還容易成為攻擊者的攻擊目標,一旦發生單點故障,將造成災難性的后果。為了克服集中式模型帶來的缺陷,一些研究者提出了分布式TM 模型。其核心是每個路邊單元(road side unit,RSU)主要負責其通信范圍內的車輛的信任評估。分布式TM 模型大大提高了效率,解決了單點故障的問題。然而,由于車聯網的高速移動性和復雜性,如何有效地在車聯網中實施信任評估并維護多個RSU之間的信任值的一致性和即時更新是一個不容忽視的問題。
作為比特幣的核心技術,區塊鏈具有去中心化、開放性、防篡改性、匿名性和可追溯性[7]等特點,可以合理地解決車聯網的信任管理問題。此外,由于區塊鏈的分布式共識算法,使得RSUs 可以協同工作,維護一致的數據庫,以保證信任評估消息的即時同步。區塊鏈在部分節點被入侵或失效的情況下,仍然能夠保持可靠運行,有效抵御RSUs 被攻擊。因此,本文提出了一種基于邏輯回歸與區塊鏈的車聯網信任管理方案。主要貢獻如下:
(1)根據通信車輛的歷史行為,除了考慮目標車輛的直接信任值,還考慮了基于PageRank 算法的推薦信任值,并基于邏輯回歸算法計算該車輛在此階段的綜合信任值來判別其可靠性,最后將車輛的綜合信任值上傳到附近的RSUs。
(2)提出基于權益證明(proof of stake,PoS)和實用拜占庭容錯(practical Byzantine fault tolerance,PBFT)的混合共識算法,優化礦工節點的選擇策略,使得權益越大的RSUs 更容易找到下一個區塊而贏得選舉(即更快地發布信任值變化較大的區塊),然后礦工將與授權的RSUs 一起工作驗證區塊的正確性,最終將正確的區塊存儲到區塊鏈中。
(3)通過安全性分析及性能仿真表明本文提出的信任管理方案在車聯網環境中是有效可行的。
車聯網中的集中式信任管理使用一個中央服務器來收集、計算和存儲所有車輛的信任值。中央服務器通常被認為是完全受信任的實體,攻擊者無法破壞它。文獻[8]提出了一種基于聲譽的車載網絡公告方案。車輛感知與交通相關的事件并向相鄰車輛發布公告。接收者需要評估信息的可信度并生成反饋報告,所有的反饋都是由一個集中的信譽服務器收集的。基于這些數據,服務器能夠更新信譽值,并為網絡中的所有車輛頒發證書。文獻[9]提出了一種基于軟件定義信任的深度強化學習框架,該框架將深度Q-learning 算法部署到軟件定義網絡(software defined network,SDN)邏輯集中控制器中。其基本思想是將SDN 控制器作為代理,通過卷積神經網絡學習車輛網絡環境中路由路徑的最高信任值,并設計信任模型來評估相鄰車輛轉發報文的行為。如果信任值大于或等于閾值,則表示信任該車輛。否則,該車輛將被視為惡意車輛。文獻[10]提出了一種抗新來者攻擊、抗開關攻擊和抗共謀攻擊的信任管理方案來評估車聯網中的車輛的可信度。利用基于貝葉斯推理的方法和基于TrustRank算法分別計算車輛的局部信任值和全局信任值。此外,為了防止車輛的信任值快速上升和快速下降,還采用自適應遺忘因子和自適應衰減因子更新局部和全局信任值。
以上這些方案都利用一個完全受信任的中央服務器進行信任管理。然而,隨著智能交通系統的快速發展,使用一個集中的節點來處理大量的車輛是不現實的,過多的請求可能會帶來較大的延遲甚至阻塞。此外,單點故障也是集中式網絡面臨的一大挑戰。
為了解決上述集中化問題,一些學者引入了分布式系統進行信任管理。文獻[11]提出了一種分散式態勢感知的車載網絡信任體系結構。文獻[12]提出了一種針對自組網的以數據為中心的信任管理方案,該方案中每個節點首先以分布式的方式計算信任積分,然后通過特定的算法聚合信任積分。文獻[13]還研究了車載自組網的聯合隱私和聲譽保障問題。該方案采用分散式聲譽管理模型,每個節點的聲譽評估由其自身及其鄰居共同完成。文獻[14]提出了一種用于車聯網的去中心化TM方案。考慮到協作性、誠實性和責任性等因素,采用一種基于模糊邏輯的方法,根據單跳鄰居車輛的行為和其他鄰居的報告評估其直接信任。此外,提出了一種Q-learning方法來評估非直接連接到評估者的車輛的間接信任,通過平均來自多輛車輛的評估報告來進行評估。但是,分布式RSUs中存儲的信任信息可能不一致。以上文獻都與支持信任評估的去中心化架構有關,它滿足了分布式應用場景的需求。然而,這些去中心化的方案并不是完全去中心化的,因為大多數方案都需要中央服務器的協助來完成最終的計算或維護信任積分。因此,在這種信任管理系統中仍然需要可信的第三方。然而,如果第三方不總是受到所有用戶的信任,則必須采用完全分布式的信任管理體系結構。有鑒于此,一些研究者通過引入區塊鏈技術,開創了去中心化信任管理的新方向。
文獻[15]利用將位置證明替換工作量證明的區塊鏈來保存更新車輛的信譽值。文獻[16]采用聯盟鏈中的PBFT機制及公有鏈中的工作量證明(proof of work,PoW)機制來選擇主節點。文獻[17]提出一種基于聯盟鏈的車聯網管理方法,利用改進的代理權益證明(delegated proof of stake,DPoS)共識為車輛數據的安全分享提供保障,但是沒有對車輛的可靠性進行分析,進而影響了對礦工的判定。在文獻[18]中,基于車載網絡中區塊鏈的分散性提出了一種交通事件驗證和信任驗證機制,其中RSUs首先利用車輛的合作交通信息,一旦采集到的數據達到相應的閾值,就會啟動所提出的過路車輛之間的事件證明(proof of event,PoE)共識算法。如果PoE 的結果被確認為事件,RSU 將通過廣播通知相鄰區域的車輛,存儲在區塊鏈上的事件將被永久保留,供公眾訪問。此外,文獻[19]研究了一種基于區塊鏈的可信數據管理方案,為解決邊緣計算環境下的數據信任和安全問題提出了認證協議、靈活共識、智能合約、交易數據管理、區塊鏈節點管理和部署方案。
上述文獻通過區塊鏈與車聯網的結合,在一定程度上解決了車聯網內部信任及信息存儲問題,但是由于車聯網的高速移動性和復雜性,如何保障車輛信任值評估的可靠性,以及使車聯網信任值的更新更具有時效性仍然是具有挑戰性的問題。
本文主要研究的是車聯網中的信任管理方案,系統模型如圖1所示。其主要流程可以分為三個階段:首先是信任評估階段。進入車聯網的車輛可以通過目標車輛的歷史行為計算其直接信任值,如果兩個車輛節點之間沒有直接交互或者直接交互次數過少時,基于PageRank 算法計算其推薦信任值,然后基于邏輯回歸算法對車輛的綜合信任值進行評估并上傳到附近的RSU;其次是礦工選舉及區塊的生成階段。RSU把從車輛得到的信任值進行打包,然后基于PoS 和PBFT 的混合共識機制,使得權益越大的RSUs 更容易找到下一個區塊而贏得選舉,即更快地發布信任值變化較大的區塊;最后是分布式共識階段。由礦工與授權的RSUs 一起擔任共識節點,驗證區塊的正確性。

圖1 系統模型Fig.1 System model
在該方案中存在以下兩個實體。
RSU:RSU 是停留在路邊的固定基礎設施,在TM系統[20]中具有較好的存儲和計算能力。RSUs需要收集并更新其通信范圍內的車輛的信任值。此外,所有RSUs共同維護一個一致的總賬本,部分授權的RSUs 在構建區塊鏈時承擔共識工作。
車輛:車聯網中的每輛車都安裝有裝載在車輛上的通信單元(on board unit,OBU),其具有無線通信能力,可以通過專用短程通信(dedicated short-range communication,DSRC)協議與其他車輛(vehicle-to-vehicle,V2V)和RSU(vehicle-to-RSU,V2R)進行通信,共享信息[21]。
(1)惡意車輛:有時車聯網中可能存在多個惡意車輛,他們通常會進行消息欺騙攻擊,即攻擊者可能故意廣播虛假消息,以降低交通安全或交通效率。例如,一輛惡意車輛可能在路上發現了交通事故,但卻對附近的車輛廣播一條消息,聲稱“道路暢通!”。
(2)受損的RSUs:RSUs沿道路分布,有時缺乏網絡運營商的保護。因此,假定這些實體是半信任的,可能會被攻擊者破壞。攻擊者一旦入侵RSUs,就能夠添加、刪除和篡改存儲在其中的數據。然而,由于攻擊者的能力有限,大規模入侵攻擊的可能性極低。此外,由于網絡運營商定期對RSUs 進行安全檢查,因此,被破壞的RSUs 無法長期被攻擊者控制。基于這些事實,可以假設只有一小部分RSUs能夠被成功入侵。
去中心化:隨著智能車輛的快速增長,中心化的信任管理方案可能不現實。因此,信任管理系統需要充分利用分布式節點,即RSUs 和車輛。信任值由通信雙方計算并存儲在RSUs中。
一致性:由于車輛的高速移動性特點,其通常需要在多個RSUs 之間行駛。在這種情況下,如何在車聯網中交換信任數據并保持數據庫的一致性成為車聯網去中心化信任管理的一個難題。
時效性:在該方案中,信任值是基于車輛的歷史行為對其進行的綜合評價。這個值可能會隨著時間的推移,根據該車輛最近發送的消息的可信度而變化。除此之外,惡意車輛可能會到達不同的區域,因此需要確保所有區域的RSUs都有該惡意車輛最新的信任值。
基于邏輯回歸與區塊鏈的車聯網信任管理的主要流程可以分為以下三個步驟:信任值評估機制;礦工選舉和區塊的生成以及分布式共識算法。
(1)直接信任值。計算在s時段車輛節點i的直接信任值,主要考慮在之前時間段,車輛節點i與j的交互情況。因此,當前時段車輛節點i的直接信任值Rs(i,j)計算如式(1)所示:
其中,qs(i,j)表示車輛節點i與j交互的消息總數,cs(i,j)表示其中正確的消息條數。如果車輛節點i與j沒有交互,那么其直接信任值為初始信任值,即rs(0)。
(2)推薦信任值。如果兩個車輛節點之間沒有直接交互或者直接交互次數過少時,那么車輛節點j需要通過在車聯網中其他與節點i進行交互過的車輛節點集合來計算推薦信任值。在這里,推薦信任值也可以看作是對車聯網環境內積極交互車輛的信任值獎勵。如果在一段時間內車輛進入車聯網系統,但是沒有與任何其他車輛交互,那么該車輛只能獲得較小的推薦信任值。如果與其他車輛節點交互越多,獲得的推薦信任值在一定程度上會越大[22]。改進PageRank 算法的推薦信任值計算如式(2)所示:
其中,K(k1,k2,…,kn)表示在s-1 時段與車輛節點i交互過的所有節點的集合;α是阻尼系數,PR表示在s-1時段車輛節點k的PageRank 值;L(k)表示車輛節點k在s-1 時段的總交互次數;M表示此時段的車輛總數。車輛節點的推薦信任值由與車輛節點i交互過的車輛節點集合K(k1,k2,…,kn)共同決定。如果有車輛節點在當前時段離開車聯網或者是因為信譽問題被強制注銷,那么此節點不包括在K集合中。同樣,如果在當前s時段有新的車輛節點加入并與節點i進行交互,那么對節點i的推薦要等到s+1 時段才能生效。
當車輛節點k在s-1 時段的總交互次數小于等于1 次(即L(k)≤1)時,系統只賦予車輛節點i一個較小的推薦信任值,即
(3)車輛節點i的綜合信任值可以用邏輯回歸算法計算,如式(3)所示:
其中,X表示為如下式(4):
A表示加權向量,可以用線性最小二乘法求值,A0表示偏差值,其為了調整車輛的初始信任值rs(0) 。rs-1(i)為車輛節點i上次計算的信任值。如果最新計算的信任值rs(i)低于閾值λ,則該車輛將被標記為惡意車輛,同時標志值fs(i)將上升,該標志表示發起者可能存在惡意行為。只有當該車輛在一段時間內持續具有誠實行為時,標志值才會下降。
由于分布式的網絡結構,不存在固定的中心節點來管理區塊鏈。因此,為了生成新的區塊,會周期性地從所有RSU中選出一個礦工節點。基于PoW的礦工選舉方法通常用于基于區塊鏈的系統,如比特幣。在這些系統中,所有節點不斷地改變nonce,然后計算包含nonce的塊的哈希值。得到哈希值低于哈希閾值的那個節點被選為礦工,并能夠發布它的區塊。所有節點都具有相同的哈希閾值,使得計算能力更強的節點更容易獲得正確的nonce并贏得選舉[23]。本文在PoW的基礎上,采用不同節點具有不同哈希閾值的PoS算法選取礦工節點,從而實現不同的塊生成速度。
在該方案中,以相對信任值的絕對值之和作為權益證明來選舉礦工節點,挖礦的難度取決于權益證明。權益越大的RSUs可以更容易地找到下一個區塊而贏得選舉(即更快地發布自己的區塊),從而保證了區塊鏈中存儲的數據的即時更新。提出的礦工選舉方法如式(5)所示:
其中,Mi是RSUi的哈希閾值。所有RSUs 不斷改變nonce,根據式(5)計算哈希值,得到滿足上述條件的nonce的RSU被選為礦工。Mi與Si正相關,Si定義為相對信任值絕對值之和,如式(6)所示:
其中,Δr(i)=rs(i)-rs-1(i),Oi是RSUi的當前相對信任值集合。因此,具有較大Si的RSU更有可能贏得選舉,然后公布其區塊。這樣可以即時更新區塊鏈中信任值變化較大的情況。Smax為Si的上界,用于避免具有最大Si的RSU持續獲勝的情況。因此,RSUs之間實現了相對公平。一旦RSU 將區塊成功添加到區塊鏈中,就會清除Oi中的元素。
Mi的結構如圖2所示,Mi是由幾個連續的零開始的一組二進制序列,其對每個RSU 生成區塊的速度有很大的影響。在本方案中,Mi與Si之間的關系定義如式(7):

圖2 Mi 的結構Fig.2 Construction of Mi
其中,Nz是在Mi頂部連續零的個數;Nm與哈希算法的哈希值位數有關(例如,SHA-1 為160,SHA-256 為256,等等)。
區塊的格式如圖3 所示,由區塊頭和區塊體兩部分組成。其中,區塊頭存儲:塊的基本信息,如Block ID、RSU ID、生成時間;用于將該塊鏈接到現有的區塊鏈的前一個區塊的哈希值;證明該塊有效性的信息,即nonce 和哈希閾值。區塊體部分主要包含車輛節點ui在s時段的綜合信任值rs(i),標志值fs(i),相對信任值Δrs(i)。

圖3 區塊結構Fig.3 Format of block
基于PoS 完成礦工節點的選舉后,由授權的RSUs和礦工節點RSU(記作leader)基于PBFT算法實現協商一致的過程。在這里,由授權的RSUs充當共識節點(記作ASUs)。其步驟如下:
步驟1leader將帶時間戳的塊數據(記作Blocknew)、它的簽名和它的權益證明廣播給ASUs進行驗證。
步驟2在ASUs 確認來自leader 的消息是有效的之后,這些ASUs將用他們的簽名互相廣播他們的審計結果。
步驟3ASU 從其他節點收集審計結果,并與其他節點進行比較。如果匹配的審計結果個數大于2f(f是拜占庭節點個數),則會向所有ASUs發送確認消息。
步驟4如果任意一個ASU 收集到超過2f+1 的確認消息,則Blocknew可以存儲到區塊鏈中。如果沒有達成共識,leader將會對審計結果進行分析,必要時再進行一輪共識。
(1)數據完整性:在基于區塊鏈的信任管理模型中,記錄在區塊鏈中的車輛信任數據已經得到了所有授權的RSUs的一致認可。塊的序列和數據通過使用哈希鏈來保護。每個塊的哈希值是唯一的,一旦任何塊的任何內容被修改[24],其他塊的哈希值將被更改。因此,如果對手想要執行消息修改攻擊,他不僅需要修改當前塊的內容,還需要重新計算所有塊的哈希值。
(2)防御受損的RSU:如果有惡意RSU想要向區塊鏈廣播一個偽造的塊,在協商一致階段,每個被授權的RSU都會檢查該塊的有效性,防止非法的塊被寫入區塊鏈。此外,攻擊者可能已經成功捕獲了多個授權的RSU。然而,由于PBFT 對失敗或惡意節點的容錯率約為33%,即使對手成功入侵了多個授權的RSU,它也不能將錯誤的塊存儲到區塊鏈中。
(3)抵抗重放攻擊:在基于邏輯回歸算法的信任評估方法中,每個車輛的信任數據都有一個唯一的時間參數,它與信任數據的內容相關聯。因此,通過比較參數與信任數據對應的內容,可以有效地防止重放攻擊。
(4)抵抗消息欺騙攻擊:如果目標車輛最新計算的信任值低于閾值,且仍然在繼續廣播虛假消息,則該車輛將被標記為惡意車輛,同時標志值將上升。此時他們將無法從車輛網絡接收任何服務,只有當該車輛在一段時間內持續具有誠實行為時,標志值才會下降,從而可以有效抵抗消息欺騙攻擊。
為了驗證所提方案的可靠性和有效性,采用基于OMNeT++的車聯網仿真平臺和基于Golang 的區塊鏈仿真平臺進行了性能評估。關鍵參數配置如表1 所示。本節分為三部分。第一部分研究了信任評估方案的可靠性。第二部分提供了隨相對信任值的絕對值之和變化的塊的生成時間間隔。第三部分分析了所提共識算法的平均時延。

表1 關鍵參數Table 1 Key parameters
(1)信任評估的可靠性
為了驗證基于邏輯回歸的信任值計算的可靠性,假設以下情景:在2 000 m×2 000 m 的網格區域內均勻分布有100輛車。每輛車的通信距離為200 m,速度在10~25 m/s 之間,車速過快會導致車輛反應時間較短,與中速車輛相比,車輛錯過一些事故并參與信息驗證的概率較小。車輛在十字路口隨機改變方向,暫停時間為零。在路網中隨機分布15 個RSUs,設置5~30 個惡意車輛,總仿真時間為1 h。
首先,對車輛的初始信任值進行了分析,當初始信任值較小時,將惡意車輛與誠實車輛區分開來需要很長時間;當初始信任值較大時,惡意車輛會花費更多的時間來降低其信任值,這意味著識別惡意車輛需要更長的時間。因此將初始信任值設置為0.5更適合區分誠實車輛和惡意車輛。觀察到,惡意車輛及誠實車輛的信任值隨時間變化如圖4 所示,隨著時間段的增加,誠實車輛綜合信任值不斷增加,惡意車輛的綜合信任值不斷減小。

圖4 車輛的信任值隨時間的變化Fig.4 Reputation value of vehicles over time
除此之外,將該解決方案與傳統主觀邏輯(traditional subject logic,TSL)方法[25]和多權重主觀邏輯(multiweight subjective logic,MWSL)方法[26]的性能進行了比較。考慮惡意車輛發送虛假消息的概率p的影響。觀察p=20%、p=50%、p=80%時,1 個惡意車輛的信任值在1小時內的變化情況,分別如圖5所示,當p=80%時,所有方法都能快速降低惡意車輛的信任值。然而,觀察到,當p=20%和p=50%時,TSL 和MWSL 缺乏足夠的證據來識別惡意車輛。

圖5 惡意車輛的信任值隨時間的變化Fig.5 Reputation value of one malicious vehicle over time
最后,比較了惡意車輛的識別率隨著p的增加而變化的情況。如圖6 所示,當p較低時,基于邏輯回歸的方法對惡意車輛的識別率較好,因為它將直接信任與推薦信任相結合來進行決策。當p越來越大時,三種方法的性能越來越相似,因為車輛惡意行為的不斷增加可以幫助TSL 和MWSL 識別惡意車輛。因此,提出的信任評估方案的可靠性是可以驗證的,因為即使發送惡意消息的概率很低,也能有效識別惡意車輛。

圖6 惡意車輛的識別率隨p 的變化Fig.6 Recognition rate of malicious vehicles with p
(2)區塊的生成時間
在獲得車輛的信任值后,RSUs 試圖成為礦工并發布他們的區塊。在本文共識算法中,每個RSU 的塊生成時間主要受兩個參數的影響,即相對信任值的絕對值之和Si與哈希率H(與RSU的計算能力有關)。Si越大表示其具有更大的哈希閾值Mi,從而更容易獲得正確的nonce,通常情況下,RSUs具有相同的哈希率,因此假設H=500。而在PoW 共識算法中,所有節點具有相同的哈希閾值,塊生成時間只取決于一個參數,即哈希率。假設所有RSU的Nz=24。從圖7可以清楚地看到,PoW 的塊生成時間不隨Si的變化而變化;而在本文方案中,隨著Si的增加,塊生成時間逐漸降低。因此,該方案能夠更快地更新變化較大的信任值,從而使車聯網信任值的更新更具有時效性,同時降低了網絡帶寬損耗與算力損耗。

圖7 區塊的生成時間隨Si 的變化Fig.7 Generation time of blocks with Si
(3)共識算法的平均時延
比較了提出的共識算法、傳統的以太坊[27]的區塊鏈共識算法PoW 以及文獻[16]中提出的PoW 和PBFT 的聯合共識算法之間更新信任值消息的反應時間。在本文實驗中,更新消息請求的數量設置為1、10、100、1 000和10 000,每個實驗結果在10 次獨立運行中取平均值。預選的ASUs 的總數為30臺。從圖8可以看出,當更新信譽數據的消息數量增加時,傳統的區塊鏈共識算法和聯合PoW 和PBFT 共識算法的延遲時間都比本文的共識算法長得多。當消息總數達到10 000條時,傳統的區塊鏈共識算法的平均延遲達到1 423.22 s,遠遠超過本文的共識算法的延遲。這是因為本文算法只在預先選擇的ASUs 上執行共識過程,而不是在所有連接的節點上。結果表明,提出的共識算法更適配復雜的車聯網環境。

圖8 共識算法的平均時延Fig.8 Average latency of consensus algorithms
本文提出了一種基于邏輯回歸與區塊鏈的車聯網信任管理方案。通過該方案,車聯網中的車輛可以通過目標車輛的歷史行為,計算其直接信任值和推薦信任值,并基于邏輯回歸算法對車輛的綜合信任值進行評估,從而可以進一步方便惡意車輛的識別。同時還提出了一種基于PoS 和PBFT 的混合共識機制,優化礦工節點的選擇策略和共識過程,從而提高了主節點選擇的合理性,降低了網絡帶寬損耗和時延。通過安全性分析和性能分析表明,該方案對于復雜的車聯網環境是有效可行的。然而,如何共同保證信任管理和隱私保護,建立安全高效的車聯網環境是一個有待深入研究的課題,這也是今后的研究工作。