楊小東,席婉婷,王嘉琪,陳艾佳,王彩芬
(1.西北師范大學計算機科學與工程學院,甘肅 蘭州 730070;2.深圳技術大學大數據與互聯網學院,廣東 深圳 518118)
車聯網[1]是車、路、人協同的開放融合網絡,是借助現代通信技術實現信息共享的移動通信系統。車聯網中車輛行駛數據、交通狀態數據和交通事故數據的共享,不僅能夠實現路況監測以避免交通混亂,也能夠為交通執法部門和保險公司等提供重要信息。例如,交通執法部門可以通過車輛行駛數據調查事故原因;保險公司可以將交通事故數據作為理賠證據等。然而,車聯網數據在促進智慧交通發展的同時,也面臨著嚴峻的數據安全挑戰。由于車聯網數據具有巨大的經濟價值,惡意用戶利用車聯網進行非法行為的情況頻頻發生[2],數據被竊取或偽造可能會造成車聯網交通事故難以定責等問題。
電子證據[3]作為一種新型的證據,是利用電子設備進行傳遞、存儲和共享的一切形式的證據。傳統證據的提取依賴于人工,人工取證費時費力且效率極低;而電子證據具有收集迅速、易于保存、占用空間少和便于審查核實的特點,它的共享則能夠更高效地解決車聯網交通事故的追責及賠償等問題。然而,電子證據因其本身較脆弱且依賴存儲介質,易被丟失、修改和偽造[4]。如發生肇事類交通事故時,無有效證據或責任人故意偽造證據會導致定責困難或追責出現偏頗。保險公司的賠償可能隨之出現偏差造成重大利益損失,且追責有失公允也會導致司法部門公信力下降。因此,電子證據共享過程中的隱私泄露與數據安全問題亟待解決。
基于身份的簽密[5]和代理重加密技術[6]可以通過對數據加密來解決數據隱私與安全問題。基于身份的簽密具有更短的密文和更小的計算開銷,對數據既簽名又加密保證了數據的機密性和不可否認性。代理重加密技術使用重加密密鑰進行密文轉換,將授權者的密文轉換成被授權者可以解密的密文,實現了第三方用戶對授權方數據的共享。然而,基于身份的簽密和代理重加密技術依賴于半可信第三方,通常存在數據存儲中心化的問題。云服務器通常在執行用戶命令的同時,仍對用戶的信息保持好奇,因此其是半可信的。集中化存儲的云服務器很容易遭到不法分子的攻擊,造成隱私數據的篡改、丟失或泄露[7]。
區塊鏈技術[8]是一種具有去中心化、數據難以篡改、可追溯、不可偽造等特性的信任機制,為電子證據在車聯網中的共享提供了新的去中心化的解決方案。區塊鏈技術可以在防止證據被篡改的同時,實現電子證據的分布式安全存儲。然而,區塊鏈技術現階段存在性能瓶頸[9],無法大規模存儲車聯網電子證據數據。隨著區塊鏈交易數據的增長,節點記錄數據的時間也不斷延長,數據確認的時延也會越來越高,因此單純使用區塊鏈存儲和共享車聯網電子證據存在效率低下的問題。
針對上述問題,本文提出了基于簽密和區塊鏈技術的車聯網電子證據共享方案。該方案采用鏈上存儲證據報告、鏈下存儲證據密文的方式,將云的海量存儲能力和區塊鏈的難以篡改性結合進行優勢互補;利用基于身份的簽密和代理重加密技術對電子證據進行加密,實現了證據的機密性、身份可驗證性和不可否認性。同時,通過管理車輛用戶的信譽值,提高了數據的可靠性;采用聚合簽名技術降低了簽名驗證的計算開銷。
電子取證逐漸替代傳統人工取證,一定程度上解決了證據收集依賴人工、取證效率低下、證據容易失真等問題。但是目前還面臨著安全和隱私挑戰,如證據提供車輛的隱私保護問題和電子證據易受攻擊被篡改和偽造的問題。因此,車聯網電子證據共享成為公共法治及智慧交通領域重點關注的研究課題之一。
為了解決數據隱私泄露和共享安全問題,Malone 等[10]在數字簽名體制[11]的基礎上利用雙線性對計算構造了第一個基于身份的簽密方案,保證了數據的機密性、消息的完整性和不可否認性;但其明文的簽名在密文中可見,Libert 等[12]隨后指出該方案是不安全的。Karati 等[13]介紹了一種新的基于身份的雙線性對簽名加密方案,實現了身份的可追溯性;但由于其計算量大不適合在交通場景中短時間內對大量車輛簽名進行驗證。Boneh 等[14]提出的聚合簽名解決了多個簽名的驗證問題,簽名驗證者僅需驗證聚合后的一個簽名即可,提高了系統中簽名的驗證速率。Blaze 等[15]提出代理重加密機制實現了密文轉換,解決了實際應用中的細粒度解密權限分配問題;但該方案的授權人與代理人可以串通獲取授權人的私鑰,即存在合謀攻擊安全風險。Hundera 等[16]和Luo 等[17]將云計算技術引入代理重簽密方案,降低了大量數據的存儲成本,滿足了云端數據的機密性和完整性的安全需求;但其方案仍消耗較高昂的計算成本,且存在數據存儲中心化和數據易被篡改的問題。
區塊鏈技術的出現為數據易被篡改和偽造的問題提供了一種新的解決方案[18-19],區塊鏈能夠確保數據的去中心化存儲、難以篡改和不可偽造。Zhang 等[20]提出了一個基于區塊鏈的云取證方案,該方案在提供證據同時可實現身份的隱私保護;但方案的效率和安全均受限于中心信任節點。Malamas 等[21]提出了一種基于移動物聯網的取證框架,利用區塊鏈獲取證據保證了證據完整性和可靠性;但密鑰管理技術煩瑣,無法適用于車聯網場景。Huang 等[22]提出了一種基于區塊鏈的云計算電子取證模型,該模型可以防止取證各方的串謀篡改;但不能滿足并發請求,算法效率需要進一步優化。Oham 等[23]利用區塊鏈技術存取證據,提出了一種自動車輛歸責框架,該框架能夠解決車輛與司法部門間在交通事故中的信任問題,但無法避免數據確認時延高的問題。Li 等[24]對電子證據加密實現了數據的安全存儲及細粒度訪問控制,通過區塊鏈技術保證了數據記錄的防篡改性;但該方案存在大量雙線性對運算,計算開銷較大并不高效。
為此,本文基于簽密和區塊鏈技術提出了一個新的車聯網電子證據共享方案。利用云服務器存儲電子證據密文,區塊鏈存儲包含證據哈希值及簽名等的證據報告,這樣既能防止云服務器偽造或篡改證據,又能減輕區塊鏈的存儲負擔。使用基于身份的簽密和代理重加密算法加密電子證據保證數據機密性,為所有進行通信的實體生成匿名身份以保護其身份隱私。因此,本文方案既解決了車聯網電子證據的安全共享問題,又實現了證人即車輛用戶的隱私保護需求,使電子證據共享更加高效、安全。
本節首先重點介紹了模型的邏輯框架與實體功能,然后給出車聯網電子證據共享模型的設計目標。
本文提出將區塊鏈與云服務器相結合,實現數據的鏈上(區塊鏈)+鏈下(云服務器)混合存儲;同時,利用簽密和代理重加密技術,實現了車輛用戶的隱私保護和電子證據的安全共享。如圖1 所示,基于區塊鏈的車聯網電子證據共享模型包括可信機構(TA,trusted authority)、認證機構(CA,certification authority)、車輛(Vi,vehicle)、路邊單元(RSU,road-side unit)、區塊鏈(BC,blockchain)、云服務器(CS,cloud server)和保險公司(IC,insurance company)7 個實體,其中TA 對應圖1 中的車輛管理所,CA 對應圖1 中的交通警察局。
圖1 車聯網電子證據共享模型框架
各個實體的具體介紹如下。
1) 可信機構:負責進行全局設置,車輛和路邊單元需到車輛管理所登記注冊。
2) 認證機構:負責生成代理密鑰,管理并更新車輛的信譽值。
3) 車輛:參與取證任務,負責收集證據并對其進行簽密。
4) 路邊單元:負責驗證每個車輛的簽名,并將有效的一組車輛簽名進行聚合。
5) 區塊鏈:負責將證據報告存儲在記錄池中,保險公司需先入鏈查找證據報告,再根據報告請求云服務器返回證據密文。
6) 云服務器:負責進行代理重加密并存儲證據密文,具有足夠的存儲和計算資源。云服務器驗證證據密文的有效性,無效則拒絕存儲。
7) 保險公司:將取證任務委托給路邊單元,通過云服務器獲取證據密文并解密得到有效證據,對提供有效證據的車輛給予報酬獎勵。
該模型旨在達到如下設計目標。
1) 數據共享。采用云存儲和加密技術實現了多對多的共享,車輛用戶將電子證據加密存儲在云服務器中,保險公司通過解密獲取電子證據。車輛用戶借助云服務器將電子證據共享給需要有效證據的保險公司。
2) 隱私保護。利用基于身份的簽密技術,為車輛生成匿名身份進行交互使其真實身份不被泄露,同時也通過加密數據在共享過程中保護電子證據的數據隱私。
3) 安全高效。采用了區塊鏈和云計算相結合的混合存儲以保證證據數據的安全。區塊鏈中的數據記錄的防篡改性以及云服務器強大的存儲、計算能力可以確保電子證據的安全存儲。聚合簽名和代理重加密技術的應用能夠很好地提高方案效率,實現數據高效共享。
方案主要包括系統初始化、實體注冊、證據收集、證據上傳、證據訪問和激勵機制6 個步驟。
TA 選擇一個安全參數1λ并執行如下操作。
1) TA 選擇一個大素數p,2 個階為p的循環群G0和GT,其中G是群G0的生成元。循環群滿足雙線性映射
4) TA 秘密保存主密鑰msk=α,公開全局參數并將區塊鏈記錄池初始化為空。
車輛都需要在TA 處進行登記注冊。車輛通過安全信道將自己的真實身份發送給TA,對于真實身份為RIDi的車輛用戶,TA 為其生成匿名身份AIDi來保護身份隱私,具體注冊步驟如下。
4) 如果進行取證任務的車輛用戶出現任何違規或非法行為,TA 可以根據AIDi查詢注冊信息表registry 來曝光該車輛的真實身份以進行追查。
5) 區塊鏈節點向TA 實名注冊,TA 創建創世塊并廣播給整個區塊鏈網絡,區塊鏈節點記錄創世塊。
路邊單元RSU 接受IC 委托的取證任務后,邀請事故路段車輛進行如下證據收集操作。
2) RSU 邀請事故發生路段周圍車輛(V1,V2,…,Vj)收集事故相關證據數據附上簽名并上傳。經過事故路段但無證據的車輛Vf駛離該路段也可將任務附上簽名廣播給周圍的車輛,以提高取證任務完成的效率。
3) RSU 將車輛收集的事故相關證據發送至CA,由CA 的交通執法人員根據forensicsn篩選出有效的證據,并對相關證據數據進行代理重加密;若無有效證據則由RSU 繼續廣播證據收集任務。
車輛、路邊單元和認證機構執行以下流程向區塊鏈網絡和云服務器安全地上傳證據數據。
1) 車輛簽密
取證車輛對行車記錄儀拍到的現場照片、視頻以及事故車輛行駛狀態數據等證據進行簽密,以保證其他實體交互過程中是不知道證據明文的。無證據車輛將取證任務附上簽名廣播給周圍車輛。
2) 聚合簽名生成
路邊單元驗證車輛簽名是否合法,并為持有合法簽名的一組車輛進行如下操作生成聚合簽名。
①RSU 在區塊鏈賬本和本地數據庫中查找t是否已經存在。如果存在,則拒絕該車輛提供的證據,避免重復存證;否則,RSU 繼續進行聚合簽名。3) 代理重加密及密文存儲
CA 對聚合簽名進行驗證,若簽名合法,則執行以下操作進行代理重加密,并將經過簽密和代理重加密的證據密文進行如下存儲。
①交通執法人員根據forensicsn、證據報告和信譽值valuei篩選出有效的證據,其中CA 管理的車輛信譽值初始均為相同數值,僅提交過證據的車輛的匿名身份會被CA 保存,并對該車輛的信譽值進行更新。
保險公司IC 發送訪問請求,在接收到云服務器CS 的證據密文后,執行解密操作獲取證據明文,具體步驟如下。
1) IC 根據取證編號、偽名以及當前時間戳Ts向區塊鏈網絡請求訪問證據報告,數據請求為,持有相應數據記錄的區塊鏈節點向IC 返回證據報告report3。
2) IC 根據證據報告向云服務器發送request2請求證據密文,云服務器向保險公司返回證據密文C。
保險公司IC 根據證據報告中車輛信譽值valuei的高低對證據進行評估。IC 通過獎勵機制來刺激、鼓勵更多車輛收集并提供有效證據。一旦該有效證據被IC 成功接受,則對對應的車輛用戶進行報酬獎勵。
CA 初始時根據信譽感知激勵機制為不同的車輛Vi設置不同的信譽值。當IC 發布取證任務并且車輛Vi競爭參與這些任務時,感知平臺會根據Vi的信譽值valuei進行選擇,優先交由信譽值高的Vi參與取證任務。對Vi的信譽值valuei進行更新后,V i可再次進入下一輪的任務競爭中。通過該激勵機制,可以刺激車輛用戶提高任務完成率和參與率。
當有取證任務要處理時,CA 為每個不同的取證任務設置一個信譽閾值,用un表示。IC 為鼓勵更多Vi參與完成取證任務,會在每個任務處理完成后為對應Vi提供獎勵報酬。報酬函數用來表示,其中a為正常數,B為初始成本預算。通過這種方式,保險公司初始時會提供很高的報酬來鼓勵車輛用戶參與取證任務,隨著車輛用戶參與的比例l(r)越來越高,報酬會慢慢趨于平穩。
本節將從正確性、機密性、不可偽造性這3 個方面對本文所提方案進行安全性分析。
1) 簽名的正確性驗證
路邊單元RSU 需要對車輛Vi的簽名進行正確性驗證,以確保提供證據的該車輛身份是合法的。RSU計算式(1)進行驗證,當等式成立時車輛Vi的身份才合法,其對電子證據的簽名才有效。具體證明如下。
驗證得出等式成立,即該車輛簽名有效。路邊單元RSU 將所有合法車輛的簽名聚合起來形成新簽名發送給CA,CA 同樣需要驗證聚合簽名是否有效。當驗證等式成立時,該聚合簽名有效。
2) 證據密文解密正確性驗證
本文將基于身份的簽密與代理重加密結合起來,保證了車聯網環境下電子證據共享過程中的機密性。機密性是指除了提供證據的車輛及使用證據的保險公司外,其他實體都不知道證據的具體內容。在本文中,車輛用戶Vi對電子證據M進行簽密,將加密后的一級證據密文C'發送給CA;CA 生成代理重加密密鑰RKbc發送給云服務器CS,CS 對一級密文代理重加密后進行密文存儲。當保險公司IC 希望訪問一起事故的電子證據時,根據取證編號n、公司偽名AIDc等生成訪問請求request1。IC將訪問請求發送給區塊鏈網絡以獲取證據報告report3,再根據證據報告向云請求證據密文C,最終解密得到電子證據明文。由于Vi收集的證據經過了CS 的代理重加密,因此只有被授權的合法保險公司RIDc才能正確解密證據密文,其他實體無法獲取任何有關電子證據的具體內容。具體證明過程見附錄1。
在傳統車聯網數據共享方案中,由于云服務器是半可信的且存在響應時延的問題,因此車輛將證據全部發送至云服務器進行處理會存在較大安全風險。本文利用云服務器和區塊鏈混合存儲以及基于身份的簽名技術,保證了電子證據的不可偽造性。車輛Vi上傳的證據報告和保險公司IC 的訪問記錄對所有區塊鏈實體公開可見,并且所有鏈上的數據都具有公開可驗證、防篡改性。只要數據被記錄在車聯網區塊鏈上,就不會被輕易地偽造和篡改。車輛Vi進行數據交互時使用的都是匿名身份AIDi,非法攻擊者即使成功冒充身份,也會因為不知道系統主密鑰α而不能生成用戶私鑰SKi。因此,非法攻擊者無法偽造合法的車輛用戶簽名而偽造的無效簽名則不能通過等式的完整性驗證。具體證明過程見附錄2。
本節分析了方案的激勵性,并從計算開銷方面對所提方案與現有方案進行分析和比較。
本文方案引入信譽值是為了使取證任務快速被車輛用戶處理完成,即在更短的時間內獲得更高的任務完成比率。在圖2 中可以看出在一段時間內本文信譽激勵機制能很快地處理完取證任務,并在處理任務速度方面具有較好的穩定性。通過設置取證任務的信譽值,區別劃分車輛用戶,選擇信譽值高的車輛用戶來處理取證任務。這樣通過影響取證任務的信譽閾值un和保險公司支付的報酬Pn,從而使車輛用戶參與比例l(r)不斷增大,并最終趨于平穩。
圖2 取證任務完成趨勢(l (r)穩定前)
在保證取證任務順利處理完成的基礎上,減少保險公司支付給車輛用戶的報酬Pn,從而保險公司可以降低對車輛用戶獎勵的預算,減少成本的投入。當參與車輛足夠多時不需要再對車輛用戶進行激勵。圖3 表明l(r)穩定后的一段時間內,在保證取證任務順利完成的基礎上,可以減少保險公司支付給車輛用戶的報酬Pn,從而使其投入成本減少。綜上所述,本文中選擇了信譽高的車輛用戶處理取證任務,使車輛用戶參與比例l(r)不斷增大,保險公司需要支付給車輛用戶的報酬Pn逐漸減少;即該信譽激勵機制在有效提高任務處理效率的同時,降低了保險公司的成本開銷。
圖3 取證任務完成趨勢(l (r)穩定后)
本節采用對比分析的方式,將本文方案與Yu等[6]方案、Hundera 等[16]方案和Luo 等[17]方案的計算開銷進行了比較。由于這些方案是在雙線性對上構建的,因此通過評估標量乘法運算、指數運算和雙線性對運算消耗的時間來比較不同方案的計算開銷。各個方案的加解密算法計算開銷如表1 所示,其中,M表示一個標量乘運算,E表示一個指數運算,P表示一個雙線性運算。
表1 方案計算開銷比較
本文仿真實驗在Intel Core i5-7400 CPU@3 GHz 平臺上使用Pairing-Based Crypto(PBC)函數庫實現,所使用硬件環境為4 GB 處理器內存和64 位Windows 10 操作系統。通過仿真實驗對比了本文方案及相關3 種方案的計算開銷,對比結果如圖4 所示。本文方案生成代理密鑰、加密和解密消耗的總時間為151.96 ms,是4 個方案中計算開銷最少的,因此本文車聯網電子證據共享方案是高效的。
圖4 各方案計算開銷比較結果
在使用更高效方案對電子證據加解密的同時,本文使用的聚合簽名技術也降低了計算開銷。聚合簽名技術是將不同消息上不同用戶分別簽署的多個簽名聚合成一個短簽名。聚合簽名進行驗證后,驗證者可以判斷所接收簽名的有效性,很大程度上提高了消息驗證的效率。本文方案中單個簽名驗證和聚合簽名驗證的計算開銷比較如表2 所示,其中j為單個簽名的個數。
表2 單個簽名驗證和聚合簽名驗證的計算開銷比較
通過實驗對比本文方案中單個簽名驗證和聚合簽名驗證的計算開銷,結果如圖5 所示。當存在多個簽名時,聚合簽名的驗證時間遠小于單個簽名累加的驗證時間。因此,本文方案中采用的聚合簽名技術極大地降低了簽名驗證的開銷,使電子證據共享方案更加高效。
圖5 簽名驗證開銷比較
本文針對車聯網電子證據共享中的隱私安全和效率問題,提出了一種基于區塊鏈的車聯網電子證據共享方案。該方案不僅實現了證據數據的隱私保護及安全共享,也保證了證據上傳者與各實體的匿名交互。借助區塊鏈記錄所有證據報告,確保了電子證據不會被篡改和偽造。采用聚合簽名和代理重加密技術,使方案具有更優的計算高效性和可靠性。引入信譽激勵機制,在有效提高任務處理效率的同時,減少了保險公司支付獎勵報酬的成本。最后,通過仿真從計算開銷等方面驗證了方案的高效性。目前本文匿名交互不足以完全保護用戶隱私,只能保證真名被隱藏,無法阻止敵手進行會話鏈接來判斷兩次不同的匿名會話來自相同的車輛。在未來的工作中,將繼續結合車聯網應用場景設計出更安全、高效的隱私保護方案。
附錄1 機密性證明
定理1如果DBDH 問題是困難的,則本文簽密方案在適應性選擇密文攻擊下滿足機密性,即不存在一個攻擊者能在多項式時間內以不可忽略的優勢攻破本文方案。
證明如果存在一個概率多項式時間敵手A 可以以不可忽略的優勢τ選擇性地攻破本文方案,那么能夠構造一個概率多項式時間算法使挑戰者B 以不可忽略的優勢攻破DBDH 假設。即給定挑戰者B 一個隨機的DBDH 問題實例判斷等式Z=e(G,G)abc是否成立。
附錄2 不可偽造性證明
定理2如果CDH 困難問題成立,本文所提方案可以抵抗適應性選擇消息攻擊下的存在性偽造攻擊,即不存在一個攻擊者以不可忽略的優勢攻破本文方案。
證明如果存在一個多項式時間的敵手A 在適應性選擇消息攻擊下以不可忽略的優勢攻破了本文方案,那么能夠構造一個多項式時間算法使挑戰者B 以不可忽略的優勢攻破CDH 問題,即給定B 已知(aG,bG),最終可以計算出abG。
系統建立。挑戰者B 進行系統初始化,設置系統公鑰為Ppub=αG,生成系統參數Params 并將其發送給A 。B 維護和更新列表L1,L2,L3,L4,其分別對應對H1,H2,H3,H4的詢問結果。
階段1A 必須首先對身份RIDi做H1詢問之后,才能將其用做其他詢問。A 不可以利用簽名詢問的結果來進行解簽名詢問。H1,H2,H3和H4詢問與定理1 中同理。
私鑰詢問。當A 對身份為RIDi的車輛進行私鑰詢問時,B 在列表L1中尋找相對應的記錄(RIDi,AIDi)。如果身份為RIDi的車輛屬于路邊單元邀請的車輛組V*,B 計算私鑰SKi=αAIDi并將其返回A ;否則,挑戰者B 失敗并終止挑戰。