?

基于DAG分布式賬本的車聯網信譽值模型

2022-01-12 04:45李志展王永利宮小澤
信息安全研究 2022年1期
關鍵詞:信譽工作量分布式

李志展 王永利 宮小澤

1(南京理工大學計算機科學與工程學院 南京 210014)2(63863部隊 吉林白城 137001)

(lzz@njust.edu.cn)

隨著移動網絡的普及,智慧出行正在悄然改變著人們的生活方式,車聯網的快速發展,使得車與車之間、車與路邊基礎單元之間、車與行人之間得以實現互聯互通,車輛可以與周圍車輛分享交通安全相關的信息,例如道路狀況、剎車預警等.這些信息可以幫助車輛及時地感知附近的交通狀況,讓車輛控制、信息服務、交通管理逐步智能化,從而保障交通安全,提升交通效率[1].

然而,車聯網帶來的安全問題不容忽視,由于行駛過程中車輛之間的陌生關系,使得車輛發布的交通消息的可信度存疑.例如,某些攻擊者會故意散播虛假的交通消息,以影響消息接收車輛的駕駛決策,從而危及交通安全.

對于已認證的車輛發布虛假消息或篡改消息的惡意行為可以通過基于信任的方法來解決[2].基于信任的方法建立一種車聯網信任管理機制,解決車聯網中的虛假消息問題[3].

對于車聯網的信任管理模型已有大量研究成果,按照模型的整體架構可以分為中心化模型與去中心化模型.對于中心化信任管理機制的研究[4-5]有2個固有的問題:一方面,中心化服務器面臨單點失效的問題;另一方面,中心化服務器將信息統一收集再分發的模式,增加了不必要的通信開銷和消息延遲,不滿足實時性要求.所以,更多的研究[6-7]集中于去中心化的信任管理機制方面.去中心化的方法將計算與存儲任務下放到邊緣節點,擺脫了對中心服務器的依賴,由于車輛節點本身計算與存儲能力有限,通常需要借助基站或者路邊單元這種邊緣節點實現去中心化的信任管理,但是由于邊緣節點通常分布在室外,相對于中心式服務器更容易遭受攻擊,可能會出現數據被篡改或者被入侵者控制等安全問題,因此需要一種有效的方法使分布式節點達成共識.

區塊鏈技術的出現為解決分布式節點的共識問題提供了一種新的思路,可用于在互不信任的實體之間建立共識.區塊鏈是一種利用加密鏈式數據塊來驗證與存儲數據、利用分布式節點共識算法生成和更新數據、利用智能合約操作數據的分布式數據庫技術[8].區塊作為區塊鏈中數據存儲的基本單位,記錄著該區塊形成時間段內發生的所有交易信息,一個區塊通過包含一個指向上一個區塊頭的哈希指針,形成一條區塊鏈.

Lu等人[9]提出了一種基于區塊鏈的匿名信譽系統,使用2個區塊鏈高效地進行身份驗證和信任通信,消除了真實身份和公鑰之間的連接,更好地保護車輛的隱私,同時設計了一種信任模型防止虛假信息的傳播和激勵車輛揭發不良行為.Yang 等人[10]提出了一種基于區塊鏈的車聯網分布式信任管理系統,車輛使用貝葉斯模型驗證周圍車輛發送信息的可信度,根據驗證結果為每輛車生成相應的評級.然后結合工作量證明機制和權益證明機制提出了一種基于信譽值改變量的共識機制.由于區塊鏈本身不適用于記錄大量數據,所以該系統只記錄了信譽數據的改變量,沒有記錄消息本身,所以無法對信譽值的改變溯源,對于分布在區塊中的信譽值改變量缺少一種合理的組織方式.而且當前區塊鏈仍存在吞吐量不足和交易確認緩慢的問題,這大大限制了其在實際車聯網中的應用.

本文提出了一種新型的分布式車聯網信譽管理模型,該模型基于DAG(directed acyclic graphs)分布式賬本,并且在此基礎上設計了一種基于車輛信譽值的共識機制,用車輛信譽值評價車輛行為.然后該機制根據車輛節點的信譽值動態調整工作量證明的難度,使信譽高的節點容易獲得記賬權,信譽低的節點更難獲得記賬權.安全性分析證明本文模型在減少虛假消息產生的同時,可促進車輛參與消息共享,并且可抵御車聯網中常見的安全攻擊,為車聯網的信任管理問題提供了新的解決方案.

1 車聯網信譽管理系統結構設計

針對當前基于區塊鏈的車聯網信譽值模型吞吐量小、共識效率低的問題,本文基于有向無環圖的分布式賬本設計了一種車聯網信譽管理系統,該系統主要包含2個組成部分,分別為節點和Tangle網絡.根據節點的功能可以分為2類:一類是全節點,如路邊單元,這種節點有穩定的電量供應和較大的存儲空間,可以維護整個賬本;另一類是輕節點,即普通車輛節點,這類節點數量多,但是每個節點的計算和存儲空間有限,所以不能存儲完整的賬本,只能用于發起交易,并通過改進的工作量證明機制打包交易.Tangle網絡是分布式賬本,記錄系統的數據.

本文系統結構如圖1所示,下面詳細介紹系統各部分的功能.

圖1 車聯網信譽管理系統模型

1) 車輛節點:車輛節點作為區塊鏈系統中的輕節點,用于產生消息和發布交易.只有經過管理者認證的車輛才能進入系統,每個經過認證的車輛都會有1對公私鑰(Pk,Sk)用于車輛身份識別和交易簽名.

2) 路邊單元:路邊單元作為全節點,用于維護完整的分布式賬本.路邊單元接收車輛節點的交易請求,然后將合法交易記錄到分布式賬本.

3) 管理者:管理者是一個特殊的全節點,由交通管理部門維護,用于管理系統中所有車輛節點和路邊單元.管理者由政府背書,本文系統中認為是可信節點,管理節點的公鑰硬編碼到路邊單元設備中,使得管理者節點可以維護區塊鏈網絡中認證車輛節點名單,路邊單元可以根據該名單驗證1筆交易是否來自于經認證的車輛節點.

4) Tangle網絡:Tangle網絡是一種基于DAG的分布式賬本,常見的基于DAG的區塊鏈有IOTA,ByteBall[11].該賬本以交易為基本單位,省去了將交易打包成塊的時間,對交易的出度與入度沒有嚴格限制,1筆交易可以同時驗證多筆交易,也可以被多筆交易驗證,支持高并發場景下的寫入操作,每個車輛節點都可以向網絡上發交易.該網絡不僅記錄車輛信譽值變化量,還記錄車輛發出的消息,支持對信譽值的變化量溯源.相比鏈式區塊鏈,該網絡可以提高系統吞吐量,更適用于車輛網場景.

2 基于信譽的動態工作量證明機制

本節介紹我們設計的一種兼顧安全性與效率的工作量共識機制.傳統的工作量共識機制通過設置一個高難度的數學問題,保證擁有高算力的節點可以獲得更多記賬機會,這種方式雖然保證了系統的安全性,但是也導致記賬低效,且需要耗費大量電力,但是降低難度又會導致安全問題的發生.

為解決這一問題,本系統通過節點的行為來計算信譽值,節點的信譽值隨著節點的行為實時變動:合法的行為將提高車輛信譽值,如驗證其他車輛節點發送的消息,節點發送的消息被成功驗證;相反,惡意行為將降低節點的信譽值,如只接收其他車輛的消息卻不主動發消息或者發布虛假消息等.工作量證明的難度將隨著節點信譽值的變化而動態調整,節點信譽值越高,工作量證明的難度就越小,這樣車輛節點進行工作量證明時信譽值高的節點消耗更少資源,反之,消耗更多的資源,從而增加惡意節點的攻擊成本,減少虛假消息的傳播.

在詳細介紹基于信譽的動態工作量證明機制之前,首先介紹車聯網中可能存在的幾種安全威脅[2,13-14],在接下來的具體設計中,將針對這些安全問題提出相應的應對措施,以增強系統的安全性.

拜占庭問題是分布式系統中的經典問題,體現在車聯網中就是:車輛節點故意作出危害系統運行的行為,如故意丟棄其他節點的消息或者向不同的車輛節點發送內容沖突的消息.

當通過信譽的方式來解決拜占庭節點問題時,會出現開關攻擊現象,也稱為灰洞攻擊,即攻擊者開始會作為一個正常節點運行,當累積到一個較高的信譽值時,突然發動攻擊,直到信譽值快要下降到某一個值時,再停止作惡變為一個正常節點,逐漸恢復信譽,這樣既可以發動攻擊,又不容易被系統察覺,對系統危害極大.

另一種攻擊方式是阻塞攻擊,它與拒絕服務攻擊類似,通過在短時間內發送大量垃圾消息占用附近的帶寬資源,使得合法車輛節點的緊急告警消息無法及時發布到網絡中,導致事故的發生,所以這種攻擊方式對系統同樣有極大危害.

本文系統通過信譽值動態調整工作量證明的難度,信譽值會隨著車輛收發消息的行為而變動.在本文系統中車輛發送的消息將以交易的形式傳播,Tangle網絡中記錄了車輛發送的所有交易,路邊單元作為全節點維護完整的Tangle網絡,負責將車輛節點產生的交易同步到Tangle網絡中,同時維護所有車輛節點的信譽狀態.

下面將介紹根據車輛的消息收發行為來維護車輛信譽值的具體過程,其中涉及的符號及其含義如表1所示:

表1 符號對照表

首先,車輛通過節點發現方法找到周圍的全節點,即路邊單元,然后全節點根據注冊到該節點所在的位置以及關注的范圍,使用交易選取算法將網絡中出現的新交易實時推送給車輛節點.

然后,車輛節點收到全節點推送的交易列表之后,先驗證全節點的簽名,再根據消息集合驗證消息是否一致,防止單個全節點作惡.

車輛收到的來自多個全節點的消息:

(1)

其中全節點的總數i為奇數,避免消息不一致時無法得出投票結果,然后就是對消息的驗證與選擇.首先利用全節點的公鑰驗證每個全節點的簽名,然后選擇關注的交易Tip.車輛得到Tip之后利用其中的消息對自己的駕駛產生指導,使用消息的過程就對消息是否有幫助和消息真假進行評價,然后將認為正確或有用的消息加入到待驗證列表,同時將行駛中產生的待分享消息也打包成交易.然后進行工作量證明,因為工作量證明的難度是隨信譽值的變化而不斷變化的,所以車輛節點在進行工作量證明之前需要獲取自己的信譽值,從而得到工作量證明的難度.獲取到車輛節點VNi的信譽值Cri之后,通過以下公式計算當前信譽狀態下的工作量證明難度:

(2)

(3)

其中Di是車輛節點VNi的工作量證明難度值,δ是難度系數,用來控制難度的波動范圍,s指ΔT時間內該車輛發布的第幾筆交易,ΔT是1筆交易的驗證窗口期.首先需要根據一定范圍內車輛的信譽數據將車輛節點的信譽數據標準化,然后根據標準化后的結果計算難度值,標準化之后可以使得難度值控制在一定范圍內,保證難度值不會隨著信譽值的不斷升高而不斷降低.

根據難度Di得到挑戰數CNi,CNi與Di正相關,如以下公式所示:

(4)

(5)

Hash{Hash(Tip1)‖…‖Hash(Tipn)‖
nounce}≤CNi, 2

(6)

其中Tipi是車輛選擇驗證的交易,數量必須大于2,車輛節點通過調整nounce的值不斷產生新的哈希值,直到該值小于挑戰數CNi,說明此時即達到發送交易的條件.

根據式(2)~(6)可以看出,信譽值Cri越低,對應的難度Di就越大,產生的挑戰數就越小,計算出合適的nounce也就越困難.

然后,車輛節點將驗證的交易列表和工作量證明結果以及要發布的消息組裝成一個新的交易廣播給全節點,發布的交易分為消息交易與信譽值變動交易,交易結構如圖2和圖3所示:

圖2 消息交易結構圖

圖3 信譽值變動交易結構圖

一個打包好的交易分為交易頭和交易體,交易頭中包含交易的唯一標識TxID,用于從賬本中檢索消息,Is_msg字段用于區分一個交易是消息交易還是信譽值變動交易,Pki為發布者的公鑰,用于驗證車輛節點對消息的簽名,MPT_Root為該交易所驗證的交易組成的梅克爾樹根節點哈希,timestamp是交易發布的時間,Body_Hash是交易體的哈希值,Sig是車輛節點對哈希值簽名的結果,nounce與CN是與工作量證明有關的參數.交易體中包含了該交易所驗證的交易、車輛當前位置以及消息相關的字段.

全節點收到車輛節點發布的交易之后,將其添加到Tangle網絡中,1筆新的交易一定指向網絡中2個及以上的交易.進入網絡的交易將有1個驗證窗口期,只有在該時間段內的驗證才會對驗證節點與被驗證節點的信譽值產生影響,驗證窗口期之后的交易將推入監管者節點維護的待結算交易池,進入交易池之后交易仍然可以被驗證,但是不對信譽值產生影響,監管者節點每隔一定時間對交易池進行結算,從而生成1筆結算交易,用于結算當前交易池中所涉及的信譽值改變,然后全節點更新信譽樹.如圖4所示:

圖4 信譽值存儲結構

全節點首先根據交易頭中的公鑰找出當前交易池有哪些車輛節點的信譽值需要改變,然后計算信譽值.

(7)

(8)

對于每一筆交易產生的信譽值的變化分為2種情況,分別對應了式(8)中前2項,n表示交易所驗證Tip個數,m表示此交易被驗證的次數,第1種是信譽值增加的情況,信譽值的增加一部分來自于本交易對其他交易的驗證,驗證的交易越多,信譽增量就越大,而且對于同一筆交易,越早進行驗證收益越高,當1筆交易得到6個驗證之后或者交易發出過了驗證窗口期之后,Order趨向于正無窮,此舉用于鼓勵車輛節點對新發生的交易進行驗證;另一部分增量來自其他交易對本交易驗證,這與驗證本交易的節點信譽值和順序有關,hk為被驗證的次序,被信譽值越高的節點越早驗證,獲得的收益越高.第2種情況是信譽值減少的情況,當車輛節點發布消息,但是在驗證窗口期內沒有得到驗證,說明此交易包含的消息內容不實或無效,所以要減少該節點的信譽值,減少量與車輛本身信譽值成正比,此舉可有效遏制開關攻擊現象.第3種情況是針對在一段時間內沒有發布交易的懶惰節點,所以對該種節點首次不處罰,但是隨著懶惰次數的增加懲罰力度呈指數速度增加,以此來督促車輛發送交易.

然后監管者節點將車輛節點的信譽變化量打包成交易,與普通交易不同之處是Is_msg字段值為0,表明是一種結算類型的交易,State_Root字段指向當前信譽狀態樹的根節點.為了方便管理信譽值的變動,信譽狀態樹采用Merkle Patricia Tree數據結構存儲車輛節點的信譽狀態,從根節點到葉子節點的路徑代表1個賬戶,葉子節點記錄該賬戶對應的信譽值,信譽值發生改變時,只需重新計算相關路徑上的哈希值,狀態樹中未發生改變的節點可以在新的狀態樹中繼續引用,這種方式一方面可以快速查找和更新賬戶狀態,另一方面由于以前的狀態不會被刪除,可以方便查找歷史記錄和進行狀態回滾.

3 安全性分析

第2節介紹了交易發布和節點共識的過程,下面針在這個過程中路邊單元和車輛節點可能面臨的威脅進行安全性分析.

本文系統的安全假設作為監管者的全節點是可信的,該監管者節點由交通管理部門維護,理論上沒有作惡的動機.但是一旦監管者節點被入侵,發動拜占庭攻擊惡意篡改信譽數據,其他全節點也可以根據歷史交易驗證結算交易的合法性,如果遇到信譽狀態被惡意更改的情況,可以充分利用信譽狀態樹的存儲特點抵御拜占庭攻擊,由于信譽狀態樹使用了類似Merkle樹的結構,改變1個賬戶的狀態,根節點的哈希值就會發生變化,與Tangle網絡中結算交易中記錄的根哈希值產生沖突,自然無法與全網其他節點達成共識,從而保證惡意路邊單元無法對系統造成破壞.

對于基于信譽的車聯網管理系統來說需要重點關注開關攻擊行為,因為出于共識效率和鼓勵車輛節點發送消息的目的,系統往往會信任信譽高的車輛節點,給受信任的節點更多便利,如更低的工作量證明難度或更高的認證收益等,但是如果遇到聰明的攻擊者,在一段時間之內通過良好的表現取得較高的信譽值,然后突然變為惡意節點發動攻擊,信譽值下降到信任閾值再停止作惡,這種間歇性攻擊通常不容易被信譽系統發現.本系統不明確指定信任閾值,而且根據節點標準化后的信譽值來決定車輛發布交易的難度,如式(2)(3)所示.信譽值高的節點在打包和驗證交易時會有優勢,可以快速地發布到Tangle網絡中,但是發布到網絡中的交易還需要經過其他交易的驗證,這是由車輛節點根據實際駕駛情況來判斷的,所以對于虛假消息,即使發布到Tangle網絡中,也不會被其他交易驗證,經過驗證窗口期之后,監管者節點進行結算時針對未被驗證的交易,將扣除對應發布者的信譽分,而且發布者的信譽值越高,被扣除的信譽分越多,如式(8)所示,信譽高的節點被檢測到1次惡意行為將快速減少信譽值,使惡意節點難以發動2次攻擊,這樣可有效避免開關攻擊的發生.

當路邊單元失效時,將不能向外提供交易選擇和交易同步的功能,不過車輛節點往往會在一定范圍內的多個路邊單元進行注冊,即使個別路邊單元失效也不會影響系統的正常運行;當路邊單元被惡意控制,可能會給車輛節點提供篡改之后的交易,但是車輛不會直接相信來自單個路邊單元提供的消息,而是對比來自多個路邊單元的交易頭,保證接收到正確的交易,當遇到不一致情況時會進行投票,相信得票數較高的交易.

對于發送頻率正常的節點,工作量證明的難度主要與車輛節點的信譽值水平有關,但是如果惡意車輛節點在短時間內發動阻塞攻擊,將觸發系統的動態工作量調節機制,工作量證明難度會隨交易頻率的上升呈指數級上升,通過快速提高車輛節點發布交易的難度,降低惡意節點發布交易的速度,從而防止惡意節點短時間內發布大量交易占用全節點資源,使其他車輛節點發布的交易無法及時接收.交易頻率以一個驗證窗口期為單位進行計算,可在不影響正常車輛發布交易的情況下防止阻塞攻擊的發生.

4 總結與展望

本文將基于有向無環圖的分布式賬本應用于車聯網中以解決消息可信度的問題,通過設計一種基于信譽的動態工作量證明機制,用信譽值評價車輛行為,動態調整工作量證明的難度,可有效減少車聯網中虛假消息的產生.通過安全性分析,本系統可有效抵御車聯網中常見的攻擊方式,而且相較于基于傳統區塊鏈的共識機制有更高的共識速率.

在實際情況中,車聯網中消息內容的制造主體還是駕駛人,所以車輛信譽值與駕駛人的信譽值有很大相關性.在接下來的研究中可以考慮把個人在社交媒體中的行為因素納入車輛信譽評價體系中,可能會使得信譽評價的結果更加合理.

猜你喜歡
信譽工作量分布式
新一代分布式母線保護裝置
多四旋翼無人機系統分布式分層編隊合圍控制
基于單片機MCU的IPMI健康管理系統設計與實現
嵌入式系統軟件工作量多源線性估算方法仿真
信譽如“金”
基于Paxos的分布式一致性算法的實現與優化
思科發布云計算市場發展報告
實驗室工位考勤管理軟件設計
高校教師科研工作量的幾個問題
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合