陳 凱,徐 成,劉宏哲,代松銀
(1.北京聯(lián)合大學(xué) 北京市信息服務(wù)工程重點實驗室,北京 100101;2.北京聯(lián)合大學(xué) 機器人學(xué)院,北京 100101)
近年來,汽車數(shù)量的急劇增加,給現(xiàn)有的交通系統(tǒng)帶來了巨大壓力。交通擁堵和交通事故的頻發(fā),嚴(yán)重威脅人們的生命和財產(chǎn)安全。車聯(lián)網(wǎng)(Internet of Vehicle,IoV)[1]被公認為是從根本上解決車輛安全問題、遏制交通事故的有效途徑,通過在車與車之間、車與網(wǎng)絡(luò)設(shè)施之間建立通信,使得車輛能夠有效獲取交通環(huán)境信息,提前做出駕駛決策,從而提升交通安全和效率[2]。但如果車聯(lián)網(wǎng)中相關(guān)駕駛數(shù)據(jù)遭到竊取或者篡改,則會直接造成財產(chǎn)或生命損失。因此,如何防止車輛信息被修改,保證車聯(lián)網(wǎng)數(shù)據(jù)安全和共享是智能駕駛的關(guān)鍵。
區(qū)塊鏈?zhǔn)且环N去中心化的數(shù)據(jù)庫存儲技術(shù)[3],具有去中心化[4]、對等傳輸[5]、匿名性[6]、記錄不可逆性[7-8]等特性,可以有效地對加入?yún)^(qū)塊的數(shù)據(jù)可信度進行分析鑒別,確保數(shù)據(jù)可信、可用和可溯[9]。本文建立危險駕駛地圖數(shù)據(jù)評估模型,利用區(qū)塊鏈去中心化技術(shù)對車輛數(shù)據(jù)進行處理。針對單一車輛具體地圖運行數(shù)據(jù)采集上鏈[10],根據(jù)車輛運行過程中遇到的不同危險場景進行危險評估[11],利用自動化執(zhí)行的智能合約[12]程序有效避免數(shù)據(jù)篡改[13],通過全域集理論[14]構(gòu)建輸入輸出模型,提升模型擴展性與適用性。
車聯(lián)網(wǎng)應(yīng)用越來越普遍[15],但其網(wǎng)絡(luò)安全形勢日趨嚴(yán)峻[16]。針對車聯(lián)網(wǎng)中數(shù)據(jù)安全方面存在的問題,學(xué)者們對此進行了大量研究并取得了重要的成果。文獻[17]提出一個認證和安全的數(shù)據(jù)傳輸算法,在車聯(lián)網(wǎng)框架中使用區(qū)塊鏈技術(shù),確保節(jié)點之間的信息通信。文獻[18]提出一種新的基于區(qū)塊鏈技術(shù)的車輛信息系統(tǒng)架構(gòu),保持分布式服務(wù)提供商之間的一致性,從而確保數(shù)據(jù)的完整性、車輛認證、隱私保護和無縫訪問控制。這種分散的區(qū)塊鏈框架適用于管理大規(guī)模車聯(lián)網(wǎng)數(shù)據(jù),通過本地緩存策略可避免較長的事務(wù)時間限制。
信息數(shù)據(jù)通信是車聯(lián)網(wǎng)中的重要環(huán)節(jié),節(jié)點之間的高效通信可避免發(fā)生交通事故。為了防止惡意活動,如篡改緊急消息或發(fā)送虛假信息,在網(wǎng)絡(luò)中只允許存在經(jīng)過身份驗證[19]的節(jié)點。文獻[20]提出一個邊緣信任管理方案,使用開源平臺以太網(wǎng)區(qū)塊鏈建立分散式信任管理平臺,所有的響應(yīng)單元以分布式方式工作,以維護一致的車輛信任數(shù)據(jù)庫并增強可靠性、可用性和一致性。車輛與車輛之間通過建立信任機制對車輛每次傳輸?shù)臄?shù)據(jù)進行準(zhǔn)確性判斷,避免應(yīng)用錯誤信息導(dǎo)致發(fā)生事故。文獻[21]提出一種匿名地址管理方案,將個人數(shù)據(jù)的控制分權(quán),由AC 管理加密地址,由RS 管理解密私鑰,但雙方都沒有獲得真正的地址,只有在授權(quán)TP 訪問后,TP 提交加密地址給RS 并由其解密地址,才能得到真正的地址并執(zhí)行TP 的數(shù)據(jù)請求,以此實現(xiàn)對個人數(shù)據(jù)的有效保護。
車聯(lián)網(wǎng)建立了智能運輸應(yīng)用程序,由于無線通信的開放性,使得傳輸信息資源的完整性、機密性和可用性容易被非法訪問所破壞,面臨相關(guān)IoV 應(yīng)用的安全性威脅。文獻[22]提出一種新穎的基于危險預(yù)測的訪問控制模型RPBAC,該模型通過預(yù)測危險級別將訪問權(quán)限分配給節(jié)點。區(qū)塊鏈智能合約技術(shù)確保了數(shù)據(jù)傳輸過程中不被篡改,建立的危險評級使得車輛獲取到的數(shù)據(jù)可信可靠,根據(jù)數(shù)據(jù)進行車輛設(shè)備映射達到最終控制車輛的目的。文獻[23]利用智能邊緣鏈來實現(xiàn)對IoV 設(shè)備的訪問控制,為提高RPBAC 模型的精度,設(shè)計Wasserstein 復(fù)合GaN(WCGaN),解決了原GaN 中的梯度消失和模式崩潰問題,并優(yōu)化了RPBAC 模型來規(guī)范車輛的行為。
本文的主要貢獻如下:1)基于智能合約技術(shù)建立網(wǎng)絡(luò)數(shù)據(jù)加密平臺,確保用戶個人信息及車輛運行數(shù)據(jù)安全,利用智能合約建立自動執(zhí)行的合約程序,對車輛運行過程產(chǎn)生的數(shù)據(jù)進行信息上鏈,建立智能合約匿名系統(tǒng),確保數(shù)據(jù)可信;2)為智能車地圖數(shù)據(jù)交互建立危險評估模型,在遭遇網(wǎng)絡(luò)攻擊、危險路段、惡劣天氣等場景時,根據(jù)環(huán)境因素以及被攻擊程度增高車輛安全評級,當(dāng)車輛接收到的數(shù)據(jù)危險評級過高時根據(jù)具體情況對車輛實施減速慢行、停車等安全舉措。
表1 給出了本文使用到的符號及含義。每個參與者用戶先申請唯一性地址,當(dāng)用戶駕駛車輛連入?yún)^(qū)塊鏈網(wǎng)絡(luò)時,將用戶個人信息、車輛運行數(shù)據(jù)、車輛環(huán)境信息和基站網(wǎng)絡(luò)信息先轉(zhuǎn)換為精確的位置坐標(biāo)信息再匿名打包發(fā)布,智能合約對地圖數(shù)據(jù)進行處理,針對不同場景數(shù)據(jù)進行危險評估,當(dāng)網(wǎng)絡(luò)受到攻擊時,發(fā)出應(yīng)對指令。智能合約交易僅顯示地址交互,確保匿名性。交易信息進行區(qū)塊上鏈,區(qū)塊鏈同時提供能夠查詢交易的接口。
表1 相關(guān)符號及含義Table 1 Relevant symbols and meanings
將用戶數(shù)據(jù)和車輛運行數(shù)據(jù)進行非對稱加密,建立自動化智能合約腳本,對上鏈的區(qū)塊進行自動處理,將處理后的數(shù)據(jù)存入?yún)^(qū)塊鏈分布式賬本中,之后為每一個用戶建立賬本副本,將賬本副本借助Fabric 平臺發(fā)布到對應(yīng)的每一個用戶中。
如圖1 所示,車輛危險駕駛地圖數(shù)據(jù)評估模型有五元組S構(gòu)成,其中:A是模型輸入端數(shù)據(jù),具體為用戶信息數(shù)據(jù)、地圖信息以及網(wǎng)絡(luò)基站傳輸?shù)闹噶钚畔?;B是模型映射環(huán)境,車輛信息加密后構(gòu)成區(qū)塊,通過此過程將數(shù)據(jù)信息上鏈組成區(qū)塊鏈賬本;F是模型數(shù)據(jù)變換過程,區(qū)塊鏈賬本信息通過智能合約過程,自動化處理Hash 數(shù)據(jù),對不同的地圖數(shù)據(jù)信息進行權(quán)重運算得到當(dāng)前時刻地圖數(shù)據(jù)反饋的危險系數(shù),對地圖數(shù)據(jù)進行危險分級并對應(yīng)相應(yīng)的危險系數(shù),不同的危險系數(shù)將反饋不同的行為指令;D為模型數(shù)據(jù)轉(zhuǎn)換對應(yīng)的表映射,危險評估結(jié)果通過此表結(jié)合當(dāng)前車輛運行狀態(tài)將決策數(shù)據(jù)轉(zhuǎn)換為對應(yīng)的安全態(tài)、平穩(wěn)態(tài)、危險態(tài),不同運行態(tài)將對應(yīng)的車輛控制指令通過基站網(wǎng)絡(luò)傳輸?shù)杰囕v實際控制層,數(shù)據(jù)表示為速度、方向、停止、運行等狀態(tài);J是模型環(huán)境映射的滿意值,表示環(huán)境映射滿意值的界限范圍,智能合約腳本處理后將評估結(jié)果數(shù)據(jù)上鏈,將此滿意值也作為映射關(guān)鍵權(quán)重參與下一次迭代循環(huán)。
圖1 車輛危險駕駛地圖數(shù)據(jù)評估模型Fig.1 Evaluation model of vehicle dangerous driving map data
系統(tǒng)模型使用全域集理論定義如下:
用戶車輛信息非對稱加密后生成的Hash 值使用非對稱加密算法對數(shù)據(jù)進行加密解密,對數(shù)據(jù)明文A采用公鑰(n,e)進行加密,n和e是公鑰,加密后密文為Y,加密公式如下:
對密文Y采用私鑰(n,d)進行解密,n和d是私鑰,解密后明文為A,解密公式如下:
危險評估使用決定系數(shù)對模型進行擬合判斷,其中安全參數(shù)λ和時間t為決定系數(shù),通過改變λ和t對危險值評估范圍進行調(diào)整,估算預(yù)測公式如下:
其中:yi表示車輛運行過程中獲取到的真實行為數(shù)據(jù);表示某一時間段t中采集到的地圖信息數(shù)據(jù)的平均值;fi表示估算的數(shù)據(jù);Sres表示估算數(shù)據(jù)與平均值的誤差;Stot表示真實數(shù)據(jù)與平均值的誤差。
信息匿名加密過程如圖2 所示。首先進行初始化,輸入安全參數(shù)λ,車輛本地和服務(wù)端分別生成一對加密和解密的公鑰和私鑰。在消息傳遞時獲取服務(wù)端公鑰,隨后使用橢圓曲線數(shù)字簽名加密算法(Elliptic Curve Digital Signature Algorithm,ECDSA)對信息進行非對稱加密,信息傳輸后分別使用私鑰進行解密,保證信息傳輸安全。車輛本地生成密鑰對K1和P1,服務(wù)端生成密鑰對K2和P2,本地通過非對稱加密算法使用服務(wù)端公鑰K2進行加密,傳輸后服務(wù)端使用私鑰P2進行解密。同理,服務(wù)端返回的數(shù)據(jù)使用K1進行加密,本地使用私鑰P1進行解密。
圖2 信息匿名加密過程Fig.2 Information anonymity encryption process
地圖數(shù)據(jù)匿名加密過程的偽代碼如算法1 所示。系統(tǒng)執(zhí)行信息上鏈行為時,先對比λ值,若λ在安全范圍內(nèi),則進行數(shù)據(jù)上鏈行為。其中λ為安全參數(shù),每次通過危險評估改變其數(shù)值,若網(wǎng)絡(luò)受到攻擊,則安全參數(shù)會適當(dāng)下降,危險參數(shù)會上升。在消息傳遞時獲取服務(wù)端公鑰K1,然后用公鑰K1和制定的訪問策略T進行加密得到密文CCTK,最終將公鑰和加密后的密文暴露在區(qū)塊鏈網(wǎng)絡(luò)上,然后進行數(shù)據(jù)傳輸。具體實施過程為:用戶使用時需要注冊賬號作為交易的唯一性地址,在一個完整的行車過程中此地址作為車輛連接網(wǎng)絡(luò)的唯一憑證。用戶數(shù)據(jù)隱私信息以及某一時刻地圖信息使用ECDSA 封裝加密,服務(wù)端通過私鑰進行解密讀取數(shù)據(jù)信息。如果網(wǎng)絡(luò)被攻擊,則攻擊者只能獲取到公鑰,因此沒有私鑰逆運算進行解密,可有效防止密鑰泄露造成的數(shù)據(jù)信息損失。在每次加密后,數(shù)據(jù)信息與此刻時間戳建立數(shù)據(jù)ID,以便同一網(wǎng)絡(luò)能夠區(qū)分不同時間片的地圖數(shù)據(jù)信息。在循環(huán)添加區(qū)塊鏈網(wǎng)絡(luò)數(shù)據(jù)時,只需匹配用戶ID 降低認證時間成本。
算法1地圖數(shù)據(jù)匿名加密
該模型進行以下2 種狀態(tài)的危險評估:1)環(huán)境危險態(tài),車輛將要處于危險駕駛狀態(tài),獲取到的地圖信息暴露出車輛即將遭遇危險;2)網(wǎng)絡(luò)攻擊態(tài),區(qū)塊鏈共識過程中的其他節(jié)點收到的信息存在被修改的危險,該危險由網(wǎng)絡(luò)攻擊者攻擊區(qū)塊鏈引起。區(qū)塊鏈具有去中心化特點,不具備集中式數(shù)據(jù)庫修改方式,如果要修改區(qū)塊鏈信息則需要進行全網(wǎng)節(jié)點投票,需要大部分節(jié)點投票同意修改寫入?yún)^(qū)塊才能執(zhí)行。自動化執(zhí)行的智能合約腳本定期進行鏈上數(shù)據(jù)信息比較,將上一次模型處理數(shù)據(jù)與本次數(shù)據(jù)進行節(jié)點比對,計算節(jié)點修改率,如果節(jié)點修改率過高則視為有危險。
圖3 描述了數(shù)據(jù)進行自動化執(zhí)行的智能合約過程,合約主要功能是根據(jù)輸入的不同數(shù)據(jù)判斷網(wǎng)絡(luò)安全性,并分析得到當(dāng)前網(wǎng)絡(luò)數(shù)據(jù)的危險值,其中,①、②、③、④、⑤為數(shù)據(jù)傳輸?shù)南群筮^程,直線箭頭表示智能合約中固定執(zhí)行的邏輯,虛線箭頭表示根據(jù)評估結(jié)果需要動態(tài)調(diào)整修改率以便更新安全參數(shù)。
圖3 危險評估過程Fig.3 Danger evaluation process
智能合約執(zhí)行過程的偽代碼如算法2 所示,其中輸入?yún)?shù)是區(qū)塊鏈上鏈數(shù)據(jù)。智能合約腳本首先對車輛傳輸?shù)臄?shù)據(jù)使用私鑰P2進行解密,然后對每次傳輸?shù)膮^(qū)塊鏈節(jié)點進行修改率計算,如果節(jié)點修改率過高則視為危險場景,隨后判斷是否為社區(qū)投票進行的區(qū)塊鏈分叉行為,如果不是則判別為受到網(wǎng)絡(luò)攻擊,更新為網(wǎng)絡(luò)攻擊狀態(tài)attack。如果上鏈加密過程視為安全,則對數(shù)據(jù)進行危險預(yù)測,根據(jù)建立的預(yù)測模型,不同的輸入數(shù)據(jù)權(quán)重不同,然后通過式(6)計算出本次地圖信息的危險值,最后根據(jù)數(shù)據(jù)狀態(tài)和評估值映射轉(zhuǎn)換到本地車輛控制。
算法2智能合約執(zhí)行
危險評估映射過程的偽代碼如算法3 所示。根據(jù)智能合約獲取到危險值R和網(wǎng)絡(luò)攻擊狀態(tài),將區(qū)塊鏈網(wǎng)絡(luò)中獲取的車輛地圖信息,根據(jù)危險值和網(wǎng)絡(luò)攻擊狀態(tài)以及表2 映射將數(shù)據(jù)轉(zhuǎn)換為車輛可執(zhí)行的指令,對數(shù)據(jù)進行ECDSA 加密傳輸,本地車輛提供私鑰P1解密數(shù)據(jù),根據(jù)參數(shù)權(quán)重計算評估數(shù)據(jù),并更新安全參數(shù)λ,同時根據(jù)返回的車輛行為數(shù)據(jù)進行車輛控制。
表2 危險行為映射Table 2 Dangerous behavior mapping
算法3危險評估映射
在表2 中,不同危險值對應(yīng)不同的安全狀態(tài),不同的安全狀態(tài)會反饋給車輛不同的安全行為,其中,s表示每秒鐘車輛前進的距離,v表示車輛的瞬時速度,-max 表示車輛處于危險態(tài),不受s和v參數(shù)影響而采取的緊急制動行為以確保車輛安全。
為防止區(qū)塊鏈網(wǎng)絡(luò)被惡意攻擊者隨意注冊節(jié)點,利用聯(lián)盟鏈Fabric 充當(dāng)網(wǎng)絡(luò)環(huán)境,在加入節(jié)點前需要得到指定節(jié)點授權(quán)。使用的共識機制為拜占庭容錯,在實用拜占庭容錯(Practical Byzantine Fault Tolerance,PBFT)模型下,選擇一個擁有記賬權(quán)的主節(jié)點,其他節(jié)點作為備份節(jié)點。系統(tǒng)內(nèi)的所有節(jié)點都相互通信,最終以少數(shù)服從多數(shù)的原則達成共識。如果記賬節(jié)點作惡,其他節(jié)點則會聯(lián)合起來替換記賬節(jié)點。隨后該區(qū)塊節(jié)點通過gPRC 消息傳遞機制將交易記錄轉(zhuǎn)發(fā)給區(qū)塊鏈網(wǎng)絡(luò)中的其他節(jié)點,2/3 的節(jié)點驗證通過后將交易存入到區(qū)塊鏈中。
首先車輛用戶通過Fabric 申請加入節(jié)點權(quán)限,通過后保存節(jié)點ID 及相關(guān)個人與車輛信息進行車輛注冊。然后模型通過車載攝像頭采集道路圖片,利用深度學(xué)習(xí)算法對道路圖片分類,同時通過激光雷達確定道路環(huán)境信息以及障礙物信息,結(jié)合慣導(dǎo)系統(tǒng)對車輛進行精確定位獲取定位數(shù)據(jù)。將評估模型需要的參數(shù)數(shù)據(jù)進行加密上鏈,上鏈傳輸過程中特定車輛充當(dāng)投票節(jié)點。對比具有2、4、8 個投票節(jié)點的3 組節(jié)點,令每組節(jié)點分別執(zhí)行1 000 次評估事務(wù),計算本文模型的區(qū)塊鏈網(wǎng)絡(luò)吞吐量如圖4 所示,其中,網(wǎng)絡(luò)吞吐量定義為從評估事務(wù)第一次部署開始每秒成功部署的評估事務(wù)數(shù)量,平均吞吐量為執(zhí)行時間內(nèi)的平均吞吐量。
圖4 網(wǎng)絡(luò)吞吐量比較Fig.4 Comparison of network throughput
從圖4 可以看出:對于評估1 000 個事務(wù)不同組節(jié)點的處理時間不同,即模型的吞吐量不同,隨著加入的投票節(jié)點增多,區(qū)塊鏈網(wǎng)絡(luò)需要轉(zhuǎn)發(fā)更新信息的節(jié)點增多,導(dǎo)致網(wǎng)絡(luò)評估模型的吞吐量降低。對于評估單組1 000 個事務(wù),隨著評估事務(wù)數(shù)量的增長,吞吐量增長的速度也會下降,由此可以看出隨著區(qū)塊鏈評估事務(wù)數(shù)量不斷增多,區(qū)塊鏈網(wǎng)絡(luò)的平均吞吐量將變?yōu)槟硞€常量。
使用MATLAB 工具Simulink 創(chuàng)建虛擬車輛,并采用轎車、卡車和公交車做對比實驗。選定固定地圖場景進行正常態(tài)車輛運行,記錄時間及模型評估結(jié)果,并對以下2 種危險場景進行模擬預(yù)測:1)網(wǎng)絡(luò)攻擊場景,在車輛運行過程中區(qū)塊鏈網(wǎng)絡(luò)接入算力更高的設(shè)備對評估車輛進行算力攻擊,算力高且成鏈速度快就能覆蓋測試車輛區(qū)塊鏈從而修改數(shù)據(jù),通過此網(wǎng)絡(luò)攻擊來測試模型評估效果;2)障礙物場景,在車輛正常運行環(huán)境地圖中增添障礙物,使得車輛感知危險環(huán)境數(shù)據(jù)以此來測試模型評估效果。
圖5 是模擬仿真了3 種車輛在不同場景下的危險值結(jié)果,3 種車輛的變化趨勢大致相同,在受到攻擊后,車輛剎車躲避危險(即危險值為0)的速度為轎車比卡車快、卡車比公交車快,緣由為車輛質(zhì)量越大導(dǎo)慣性較大,車輛減速或者剎車所需時間較長。從圖5 可以看出:網(wǎng)絡(luò)攻擊場景車輛危險值迅速提高,車輛狀態(tài)轉(zhuǎn)換為網(wǎng)絡(luò)攻擊態(tài),車輛剎車停止運行;障礙物場景車輛危險值提高,車輛狀態(tài)轉(zhuǎn)換為環(huán)境危險態(tài),車輛減速避開障礙物后恢復(fù)到正常態(tài)。實驗結(jié)果表明,基于本文模型,同一路段不同車輛在不同危險場景下能夠進行危險預(yù)測,準(zhǔn)確評估網(wǎng)絡(luò)攻擊與環(huán)境危險并進行危險規(guī)避。
圖5 同一路段在不同危險場景下危險值隨時間的變化情況Fig.5 Variation of danger values with time under different danger scenarios in the same road section
本文通過對車聯(lián)網(wǎng)數(shù)據(jù)交互過程中受到的惡意攻擊及危險駕駛場景進行預(yù)測分析,構(gòu)建基于區(qū)塊鏈技術(shù)的危險駕駛地圖評估模型。根據(jù)個人信息以及車輛駕駛途中產(chǎn)生的數(shù)據(jù)進行上鏈評估,使用智能合約技術(shù)保證數(shù)據(jù)傳輸安全性。針對傳輸數(shù)據(jù)進行危險評估,使得車輛在道路危險、網(wǎng)絡(luò)攻擊等場景下能進行應(yīng)急處理,保障車輛安全運行。應(yīng)用全域集理論對危險評估模型進行設(shè)計,將智能合約建立成獨立模塊,使得模塊與模塊之間只有數(shù)據(jù)輸入和輸出,并且通過修改獨立模塊即可建立新功能,增強了模型的普適性與健壯性。實驗通過設(shè)定不同危險場景驗證了該模型的可用性。下一步將對多車輛某段路程地圖數(shù)據(jù)進行危險評估,同時使用機器學(xué)習(xí)算法對危險評估模型進行優(yōu)化,使車輛能夠自適應(yīng)地圖道路環(huán)境,從而對不同危險場景進行評估預(yù)測。