崔貴煥,柳 毅
(廣東工業(yè)大學 計算機學院,廣東 廣州 510006)
近年來,物聯(lián)網(wǎng)(IoT)[1]的快速發(fā)展,萬物互聯(lián)的概念經(jīng)常被提及,車載自組網(wǎng)[2](VANET)利用物聯(lián)網(wǎng)和現(xiàn)有科技進行車與X(即車與車、基礎(chǔ)設(shè)施、服務(wù)平臺等)之間的網(wǎng)絡(luò)通信,由于VANET通信是開放的,如果其中車輛共享信息不被保護,就可能會導致數(shù)據(jù)遭受被篡改、重放、拒絕服務(wù)等攻擊,車主就可能面臨非法追蹤等安全問題。為了克服這些問題及最小化證書管理開銷,無證書方案[3]被提出,后來為降低簽名驗證開銷,聚合簽名[4]概念被提出,并應用于移動支付、車聯(lián)網(wǎng)[5-6]、數(shù)據(jù)安全領(lǐng)域[7]。結(jié)合二者優(yōu)點,研究人員相繼提出無證書聚合簽名(CLAS)方案[8~22],將不同車輛產(chǎn)生的n個簽名聚合成一個,運行聚合驗證算法來驗證,從而降低簽名大小和驗證開銷。Gong等[8]首次提出兩種CLAS方案,并定義了安全模型。Horng等[9]為車載傳感器網(wǎng)絡(luò)提出CLAS方案,后來被證明對惡意但被動的KGC攻擊并不安全。Kumar等[10]為VANET設(shè)計CLS方案和CLAS方案,Zhong等[11]提出全聚合方案,但難以抵抗第二類敵手的簽名偽造攻擊。文獻[12-13]都是基于雙線性配對。Wang等[14]提出VANET標準模型中的CLAS方案,在文獻[15]基礎(chǔ)上用于車聯(lián)網(wǎng)。
為降低開銷,Cui等[16]提出不使用雙線性配對的CLAS方案,給每輛車配備防篡改裝置,但以這種方式實現(xiàn)防篡改太主觀且安全性不能保障。Kamil等[17]對文獻[16]提出改進,但仍無法抵抗偽造攻擊,后來他們提出新的聚合方案[18]。Zhao等[19]證明了Kamil方案不足以抵御兩類敵手的攻擊并提出改進方案,但其方案的構(gòu)建不正確。Han等[20]使用聚合服務(wù)器進行聚合操作,但未提及聚合器的安全問題。隨著區(qū)塊鏈的廣泛應用,在文獻[21]中,Ali等提出基于區(qū)塊鏈用于V2I通信的無證書公鑰簽名方案。Ren等[22]提出用兩個雙線性配對操作驗證簽名,但需昂貴計算成本。
該文提出基于區(qū)塊鏈的VANET無證書聚合簽名方案,將區(qū)塊鏈技術(shù)和聚合簽名應用于VANET中,減少車輛間的通信時間和實現(xiàn)高效的消息交換。與其他基于區(qū)塊鏈的方案相比,該方案結(jié)合智能合約提升用戶參與度。主要工作如下:
(1)提出基于區(qū)塊鏈的無證書聚合簽名方案,節(jié)省證書開銷,提高傳輸效率,保護車輛的隱私。
(2)使用假名策略注冊區(qū)塊鏈發(fā)布任務(wù),即使區(qū)塊鏈上交易與現(xiàn)實生活重合,也能降低隱私暴露的可能。既保護隱私,又能對路況進行準確廣播。
(3)添加智能合約實現(xiàn)訪問控制和獎懲,便于用戶獲得便捷信息與相應獎勵,確保其參與積極性。
在隨機預言機模型下證明了該方案的安全性。利用鏈上——鏈下存儲,實現(xiàn)六大安全性,與其它方案相比,該方案通信開銷更低。
區(qū)塊鏈[23]技術(shù)由中本聰提出,其本質(zhì)是一個去中心化的分布式數(shù)據(jù)庫,保存著包含所有交易且會不斷增加的區(qū)塊列表。它在參與節(jié)點之間維護一個數(shù)據(jù)塊的鏈式結(jié)構(gòu),是個基于密碼學的持續(xù)增長和不可變的數(shù)據(jù)記錄[24]。目前研究人員正嘗試將其應用金融供應鏈、位置隱私、匿名信譽系統(tǒng)等領(lǐng)域。
智能合約[25]作為區(qū)塊鏈網(wǎng)絡(luò)上的去中心化程序運行,能夠解決集中化應用程序中的數(shù)據(jù)消耗和延遲問題。在預定義條件下自動執(zhí)行,而無需干預中心化的第三方,程序不可變且會永久保留在區(qū)塊鏈網(wǎng)絡(luò)。自動精準執(zhí)行的特點提高了其信任度,適用于很多應用程序,被廣泛應用于區(qū)塊鏈。
如圖1所示,該方案包含以下實體:交通管理中心(Traffic Management Center,TMC)、密鑰生成中心(Key Generation Center,KGC)、區(qū)塊鏈(Blockchain)、路邊單元(Road Side Units,RSUs)和裝有通信車載單元的車輛(Vehicle)。其中TMC、KGC、RSU間通信通過諸如傳輸層安全協(xié)議的安全有線網(wǎng)絡(luò)進行,車輛間、車輛與RSU通過DSRC協(xié)議通信[26]。
圖1 方案模型
(1)TMC:交通管理中心與KGC共同生成公共參數(shù)。參與生成假名,存儲車輛真假名索引表、RSU發(fā)送的數(shù)據(jù)。初始化后進入離線狀態(tài),直到接收虛假消息報告,追蹤來源并處罰。
(2)KGC:與TMC共同生成系統(tǒng)參數(shù),當車輛節(jié)點在KGC完成注冊后,KGC為其發(fā)放部分私鑰。
(3)Vehicle:與其它實體通信,頻繁廣播交通信息。與TMC共同生成假名并根據(jù)需要更換假名。
(4)RSU:管理相應區(qū)域中的廣播消息。RSU驗證并接收交通廣播,將驗證成功后的數(shù)據(jù)發(fā)送到TMC,執(zhí)行簽名聚合操作。如發(fā)現(xiàn)虛假消息,上傳消息到區(qū)塊鏈防篡改同時上報給TMC。
(5)Blockchain:負責對交易和聚合簽名的驗證和存儲,利用智能合約實現(xiàn)訪問控制和支付操作。
本節(jié)將詳細描述所提方案,方案的部分符號說明如表1所示。
表1 方案的部分符號說明
(7)簽名驗證:RSU接收到車輛廣播的簽名消息{PSUi,VPKi,mi,TPi,σi}后執(zhí)行該算法,對同時接收到的簽名消息用公式SiP=Ui+h3i(Ri+h2iKpub+h1iXi)驗證。其中h1i=H1(PSUi,Xi),h2i=H2(PSUi,Ri,Kpub,Ti)。如果驗證通過則發(fā)送消息至TMC存儲,并對同一時間接收到的消息進行聚合。如果有消息驗證失敗,則將消息發(fā)送至TMC進行存儲的同時向TMC發(fā)送驗證失敗報告,TMC通過區(qū)塊鏈和身份索引表追蹤。
(8)聚合簽名:RSU從不同車輛接收到簽名消息{PSUi,VPKi,mi,TPi,σi},驗證后,將接收到的有效簽名σi=(Ui,Si)進行聚合。計算式(1)(2),其中n為簽名個數(shù)。聚合簽名為σ=(U,S)。區(qū)塊鏈存儲聚合簽名和消息{Dj,(PSUi,VPKi,mi,TPi)i∈{1,2,…,n},σ}哈希值。
(1)
(2)
(9)聚合驗證:區(qū)塊鏈上的礦工收到聚合結(jié)果進行驗證。輸入聚合簽名σ、params、VPKi=(Xi,Ri)。首先計算h1i、h2i、h3i,礦工驗證等式(3),其中n為簽名個數(shù),若等式成立,將其打包上傳到區(qū)塊鏈。
(3)
(10)數(shù)據(jù)通信:車輛Vi使用假名加入VANET,向KGC請求部分私鑰,生成自己的公私鑰。車輛在行駛過程中廣播路況等信息,所發(fā)消息均經(jīng)過簽名,RSU執(zhí)行簽名驗證并將獲得數(shù)據(jù)發(fā)送TMC,同時聚合已驗證成功的簽名,將聚合簽名以及向TMC所發(fā)消息的哈希值存儲至區(qū)塊鏈上;若部分驗證失敗,將驗證成功的數(shù)據(jù)發(fā)送TMC,驗證成功的簽名聚合后上鏈,同時向TMC報告驗證失敗消息以便追蹤懲罰。車輛主要從RSU中獲得可驗證聚合簽名的可信消息,也通過V2V交互獲得信息。礦工驗證聚合簽名并發(fā)布到區(qū)塊鏈。另外,車輛使用假名加入?yún)^(qū)塊鏈,通過觸發(fā)智能合約發(fā)送查詢?nèi)蝿?wù)以及交易,不經(jīng)過廣播交互來查詢相關(guān)服務(wù)信息,其他礦工(可以是車輛節(jié)點)解決任務(wù)可獲取獎勵。如果接收任務(wù)結(jié)果驗證為假,可向TMC舉報并上鏈存證,TMC追蹤發(fā)布假消息的節(jié)點,然后向RSU發(fā)布命令撤銷該節(jié)點并將其獲得的該交易款退回。
1)發(fā)改、經(jīng)信、商務(wù)部門數(shù)據(jù)。主要為主體功能區(qū)規(guī)劃、產(chǎn)業(yè)集聚區(qū)規(guī)劃、產(chǎn)業(yè)基地、工業(yè)園區(qū)分布范圍、規(guī)模以及加油站數(shù)據(jù)等相關(guān)資料,用于采集主體功能區(qū)、開發(fā)區(qū)、保稅區(qū)范圍及名稱、面積、類型、等級等屬性的賦值。
其中步驟(1)~(9)為無證書簽名及驗證過程,步驟(10)描述了結(jié)合區(qū)塊鏈實現(xiàn)數(shù)據(jù)的安全傳輸。
所提方案的正確性可以證明如下:
(1)部分私鑰驗證的正確性。
PSKPSUiP=(ri+ah2i)P=riP+ah2iP=
Ri+h2iaP=Ri+h2iKpub
(4)
(2)簽名驗證的正確性。
SiP=[ui+h3i(PSKPSUi+h1ixi)]P=
uiP+h3i(PSKPSUi+h1ixi)P=
Ui+h3i(riP+sh2iP+h1ixiP)=
Ui+h3i(Ri+h2iKpub+h1iXi)
(5)
(3)聚合驗證的正確性。
(6)
為了保護車輛隱私,該方案考慮了強匿名、不可鏈接性、消息完整性、不可否認、可追蹤、防篡改,并抵御以下兩種對手的攻擊。對手A1:惡意用戶的公鑰替換攻擊,即A1可替換合法用戶的公鑰,但無法獲取KGC系統(tǒng)主密鑰。對手A2:惡意但被動的KGC攻擊,即A2可以訪問KGC主密鑰,但不能替換任何車輛的公鑰。
引理1:若對手A1可以在隨機預言機模型中以不可忽略的概率ε1在多項式時間內(nèi)偽造出有效簽名,那么在多項式時間內(nèi),存在挑戰(zhàn)者C1在不可忽略的概率ε'解決ECDLP,則認為該方案在對手A1自適應選擇消息和身份攻擊下具有不可偽造性。
證明:假設(shè)挑戰(zhàn)者算法C1能有效解決ECDLP困難性問題,輸入(P,aP),目標是在交互中計算a。
(1)初始化階段:C1執(zhí)行系統(tǒng)初始化算法,隨機選擇s作為主密鑰,計算公共參數(shù)params并發(fā)送給A1,秘密保存s。
(2)查詢階段:本階段A1提出一系列查詢,這些查詢由挑戰(zhàn)者自適應回答。C1維護并初始化以下列表:L1={(PSUi,Xi)},L2={(PSUi,Ri,Kpub,Ti)},L3={(PSUi,mi,xi,Ui,TPi)},LPSK={(PSKPSUi,Ri,PSUi)},Luser=(PSUi,Xi,Ri,xi,PSKPSUi)。
(5)秘密值查詢:A1進行該查詢時,C1執(zhí)行:當PSUi=PSU*,C1終止,當PSUi≠PSU*,C1從Luser中查找(PSUi,Xi,Ri,xi,PSUPSUi)并將xi發(fā)給A1,若Luser中不存在,C1執(zhí)行創(chuàng)建用戶查詢添加xi到Luser,返回秘密值xi。
(6)公鑰替換:A1想要替換PSUi的公鑰,選擇新公鑰后,C1從Luser中查找元組(PSUi,Xi,Ri,xi,PSKPSUi),然后更新列表為(PSUi,Xi',Ri',⊥,⊥)。
如要成功偽造簽名,C1輸出a需滿足以下條件:E1:C1在部分私鑰和簽名查詢時未終止;E2:A1偽造的簽名有效;E3:在偽造身份中存在PSUi=PSU*。
在詢問階段,如果PSUi=PSU*的時候C1會終止,假設(shè)pr[PSUi=PSU*]=θ,則C1不終止的概率是1-θ,則pr[E1]≥(1-θ)qpsk+qsig,由對手A1以不可忽略的概率ε1在多項式時間內(nèi)偽造出有效的簽名可知pr[E1|E2]≥ε,另外,同時滿足以上條件的PSUi,有1個PSUi=PSU*,其余k-1個PSUi≠PSU*,pr[E1|E2∧E3]≥θ(1-θ)k-1,滿足以上挑戰(zhàn)者在不可忽略的概率ε'=θ(1-θ)qpsk+qsig+k-1ε1解決了橢圓離散對數(shù)難題。這與公理矛盾。其中qpsk為部分私鑰查詢次數(shù),qsig為簽名查詢次數(shù)。
引理2:如果對手A2可以在隨機預言機模型中以不可忽略的概率ε2在多項式時間內(nèi)偽造出有效的簽名,那么在多項式時間內(nèi),則存在挑戰(zhàn)者C2在不可忽略的概率ε''解決ECDLP,則認為該方案在對手A2自適應攻擊下具有不可偽造性。
證明:證明過程同引理1,在此不再贅述。
(1)強匿名性和不可鏈接性。
(2)消息完整性和不可否認。
從引理1和引理2的不可偽造性證明中也能看到在滿足身份認證的同時充分保證了消息完整性。用戶簽名時會利用安全哈希函數(shù),而且RSU會將驗證失敗的信息和聚合后的hash值上傳區(qū)塊鏈,TMC通過哈希運算比較結(jié)果值進行監(jiān)管,且一旦簽名被冒用驗證等式不會成立,多方驗證保證不可否認。
(3)可追蹤和防篡改。
由于惡意參與者不可避免,匿名保護車輛隱私,所以TMC擁有追查車輛身份的權(quán)利。如出現(xiàn)相應事件,RSU將消息上鏈并報告假名給TMC,TMC通過區(qū)塊鏈及索引表進行追蹤。區(qū)塊鏈上的發(fā)布如要修改,需重新發(fā)布,所有消息都可供追溯,聚合后的簽名哈希值存入?yún)^(qū)塊鏈,監(jiān)管機構(gòu)可有效追溯消息來認定車輛責任。
本節(jié)將從安全性、計算開銷、通信開銷等方面進行分析。使用2臺PC:Intel(R) Core(TM) i5-4460 CPU @ 3.20 GHz和AMD R5 4600H @3.00 GHz and 16 GB of RAM,通過IntelliJ IDEA調(diào)用JPBC庫量化操作的時間消耗,在64位Ubuntu18.04下構(gòu)建以太坊私鏈模擬車輛加入?yún)^(qū)塊鏈后節(jié)點的交互通信以及交易過程,使用truffle框架實現(xiàn)界面交互,對智能合約主要函數(shù)的gas消耗和調(diào)用函數(shù)的響應時間進行測試。
首先在安全性能上從8個方面與文獻[14-17,21-22]進行了對比,如表2所示。文中方案不基于雙線性配對運算,并且在強匿名性、不可鏈接性、可追蹤性等方面表現(xiàn)優(yōu)于其他方案。
表2 安全性能對比
文中方案在計算開銷和通信開銷兩方面與文獻[14-15,21-22]進行對比,如表3和表4所示。其中Tbp為雙線性配對運算時間,Tbp-mul為雙線性配對乘法運算時間,Tbp-add為雙線性配對加法運算時間,TECC-mul為橢圓曲線乘法運算時間,TECC-add為橢圓曲線加法運算時間,Th為單向哈希時間,分別為:6.086 ms,1.018 ms,0.007 ms,0.758 ms,0.047 ms,0.000 1 ms。
表3 計算開銷對比
表4 通信開銷對比
圖2展示了聚合驗證計算開銷對比,文獻[14-15,21]使用雙線性配對運算,驗證效率低開銷較高。文獻[22]雖然在計算開銷上較低,但其利用RSU聚合和驗證,加重RSU通信負擔,文中方案由礦工聚合驗證節(jié)省RSU開銷,結(jié)合通信開銷對比,文中方案基于無雙線性配對運算,效率更高,優(yōu)勢更明顯。
圖2 聚合驗證計算開銷對比
由圖3傳輸聚合簽名通信開銷在消息個數(shù)變化時的對比看出,文中方案通信開銷最低,相比開銷最接近的文獻[22]降低平均約85.8%,當n=10~100變化時實驗所得開銷降低約80.5%、85.4%、86.5%、87%、87.3%、85.8%等。顯然相比另外3個方案降低更多。
圖3 傳輸聚合簽名通信開銷對比
用戶注冊后才能進行任務(wù)發(fā)布/下載,未注冊調(diào)用智能合約會觸發(fā)permission denied事件提示注冊。用戶鏈上發(fā)布任務(wù)并標記為待解決,此時鏈上節(jié)點均可下載。合約收到100個該任務(wù)請求后將任務(wù)標為解決中,避免過多節(jié)點下載造成資源浪費。用戶可能收到不同結(jié)果,選取滿意結(jié)果后支付報酬并標記任務(wù)已解決。當聚合簽名個數(shù)為50時,平均每15 s就能將200個聚合簽名哈希值上鏈。實驗表明,聚合簽名從生成到最終上鏈平均時間約0.075 s。表5是主要函數(shù)gas消耗和調(diào)用該函數(shù)響應時間測試。
過高的gas消耗會造成網(wǎng)絡(luò)負擔,從表5可以看出,用戶注冊、發(fā)布/上傳任務(wù)結(jié)果、下載/接受任務(wù)結(jié)果所消耗的gas相差不大,以上智能合約gas消耗量小,各功能響應時間不超過5 ms,響應迅速。
該文引入?yún)^(qū)塊鏈并利用橢圓曲線構(gòu)建無證書聚合簽名方案,在降低了開銷的同時,實現(xiàn)了強匿名性等六大安全性。降低了現(xiàn)有計算和通信負擔,解決了巨大的證書管理開銷問題。并通過實驗證明了該方案的可行性,與其它方案相比,該方案的通信開銷降低了85.8%以上,更適合應用于VANET。另外,無限制的假名更換是不合理的,更換假名需要成本,未來的研究會圍繞選擇更合適的假名更換策略,進一步驗證隨機預言機模型和標準模型在應用中的差別,提升方案的實用性。