崔貴煥,柳 毅
(廣東工業(yè)大學(xué) 計(jì)算機(jī)學(xué)院,廣東 廣州 510006)
近年來(lái),物聯(lián)網(wǎng)(IoT)[1]的快速發(fā)展,萬(wàn)物互聯(lián)的概念經(jīng)常被提及,車載自組網(wǎng)[2](VANET)利用物聯(lián)網(wǎng)和現(xiàn)有科技進(jìn)行車與X(即車與車、基礎(chǔ)設(shè)施、服務(wù)平臺(tái)等)之間的網(wǎng)絡(luò)通信,由于VANET通信是開(kāi)放的,如果其中車輛共享信息不被保護(hù),就可能會(huì)導(dǎo)致數(shù)據(jù)遭受被篡改、重放、拒絕服務(wù)等攻擊,車主就可能面臨非法追蹤等安全問(wèn)題。為了克服這些問(wèn)題及最小化證書(shū)管理開(kāi)銷,無(wú)證書(shū)方案[3]被提出,后來(lái)為降低簽名驗(yàn)證開(kāi)銷,聚合簽名[4]概念被提出,并應(yīng)用于移動(dòng)支付、車聯(lián)網(wǎng)[5-6]、數(shù)據(jù)安全領(lǐng)域[7]。結(jié)合二者優(yōu)點(diǎn),研究人員相繼提出無(wú)證書(shū)聚合簽名(CLAS)方案[8~22],將不同車輛產(chǎn)生的n個(gè)簽名聚合成一個(gè),運(yùn)行聚合驗(yàn)證算法來(lái)驗(yàn)證,從而降低簽名大小和驗(yàn)證開(kāi)銷。Gong等[8]首次提出兩種CLAS方案,并定義了安全模型。Horng等[9]為車載傳感器網(wǎng)絡(luò)提出CLAS方案,后來(lái)被證明對(duì)惡意但被動(dòng)的KGC攻擊并不安全。Kumar等[10]為VANET設(shè)計(jì)CLS方案和CLAS方案,Zhong等[11]提出全聚合方案,但難以抵抗第二類敵手的簽名偽造攻擊。文獻(xiàn)[12-13]都是基于雙線性配對(duì)。Wang等[14]提出VANET標(biāo)準(zhǔn)模型中的CLAS方案,在文獻(xiàn)[15]基礎(chǔ)上用于車聯(lián)網(wǎng)。
為降低開(kāi)銷,Cui等[16]提出不使用雙線性配對(duì)的CLAS方案,給每輛車配備防篡改裝置,但以這種方式實(shí)現(xiàn)防篡改太主觀且安全性不能保障。Kamil等[17]對(duì)文獻(xiàn)[16]提出改進(jìn),但仍無(wú)法抵抗偽造攻擊,后來(lái)他們提出新的聚合方案[18]。Zhao等[19]證明了Kamil方案不足以抵御兩類敵手的攻擊并提出改進(jìn)方案,但其方案的構(gòu)建不正確。Han等[20]使用聚合服務(wù)器進(jìn)行聚合操作,但未提及聚合器的安全問(wèn)題。隨著區(qū)塊鏈的廣泛應(yīng)用,在文獻(xiàn)[21]中,Ali等提出基于區(qū)塊鏈用于V2I通信的無(wú)證書(shū)公鑰簽名方案。Ren等[22]提出用兩個(gè)雙線性配對(duì)操作驗(yàn)證簽名,但需昂貴計(jì)算成本。
該文提出基于區(qū)塊鏈的VANET無(wú)證書(shū)聚合簽名方案,將區(qū)塊鏈技術(shù)和聚合簽名應(yīng)用于VANET中,減少車輛間的通信時(shí)間和實(shí)現(xiàn)高效的消息交換。與其他基于區(qū)塊鏈的方案相比,該方案結(jié)合智能合約提升用戶參與度。主要工作如下:
(1)提出基于區(qū)塊鏈的無(wú)證書(shū)聚合簽名方案,節(jié)省證書(shū)開(kāi)銷,提高傳輸效率,保護(hù)車輛的隱私。
(2)使用假名策略注冊(cè)區(qū)塊鏈發(fā)布任務(wù),即使區(qū)塊鏈上交易與現(xiàn)實(shí)生活重合,也能降低隱私暴露的可能。既保護(hù)隱私,又能對(duì)路況進(jìn)行準(zhǔn)確廣播。
(3)添加智能合約實(shí)現(xiàn)訪問(wèn)控制和獎(jiǎng)懲,便于用戶獲得便捷信息與相應(yīng)獎(jiǎng)勵(lì),確保其參與積極性。
在隨機(jī)預(yù)言機(jī)模型下證明了該方案的安全性。利用鏈上——鏈下存儲(chǔ),實(shí)現(xiàn)六大安全性,與其它方案相比,該方案通信開(kāi)銷更低。

區(qū)塊鏈[23]技術(shù)由中本聰提出,其本質(zhì)是一個(gè)去中心化的分布式數(shù)據(jù)庫(kù),保存著包含所有交易且會(huì)不斷增加的區(qū)塊列表。它在參與節(jié)點(diǎn)之間維護(hù)一個(gè)數(shù)據(jù)塊的鏈?zhǔn)浇Y(jié)構(gòu),是個(gè)基于密碼學(xué)的持續(xù)增長(zhǎng)和不可變的數(shù)據(jù)記錄[24]。目前研究人員正嘗試將其應(yīng)用金融供應(yīng)鏈、位置隱私、匿名信譽(yù)系統(tǒng)等領(lǐng)域。
智能合約[25]作為區(qū)塊鏈網(wǎng)絡(luò)上的去中心化程序運(yùn)行,能夠解決集中化應(yīng)用程序中的數(shù)據(jù)消耗和延遲問(wèn)題。在預(yù)定義條件下自動(dòng)執(zhí)行,而無(wú)需干預(yù)中心化的第三方,程序不可變且會(huì)永久保留在區(qū)塊鏈網(wǎng)絡(luò)。自動(dòng)精準(zhǔn)執(zhí)行的特點(diǎn)提高了其信任度,適用于很多應(yīng)用程序,被廣泛應(yīng)用于區(qū)塊鏈。
如圖1所示,該方案包含以下實(shí)體:交通管理中心(Traffic Management Center,TMC)、密鑰生成中心(Key Generation Center,KGC)、區(qū)塊鏈(Blockchain)、路邊單元(Road Side Units,RSUs)和裝有通信車載單元的車輛(Vehicle)。其中TMC、KGC、RSU間通信通過(guò)諸如傳輸層安全協(xié)議的安全有線網(wǎng)絡(luò)進(jìn)行,車輛間、車輛與RSU通過(guò)DSRC協(xié)議通信[26]。

圖1 方案模型
(1)TMC:交通管理中心與KGC共同生成公共參數(shù)。參與生成假名,存儲(chǔ)車輛真假名索引表、RSU發(fā)送的數(shù)據(jù)。初始化后進(jìn)入離線狀態(tài),直到接收虛假消息報(bào)告,追蹤來(lái)源并處罰。
(2)KGC:與TMC共同生成系統(tǒng)參數(shù),當(dāng)車輛節(jié)點(diǎn)在KGC完成注冊(cè)后,KGC為其發(fā)放部分私鑰。
(3)Vehicle:與其它實(shí)體通信,頻繁廣播交通信息。與TMC共同生成假名并根據(jù)需要更換假名。
(4)RSU:管理相應(yīng)區(qū)域中的廣播消息。RSU驗(yàn)證并接收交通廣播,將驗(yàn)證成功后的數(shù)據(jù)發(fā)送到TMC,執(zhí)行簽名聚合操作。如發(fā)現(xiàn)虛假消息,上傳消息到區(qū)塊鏈防篡改同時(shí)上報(bào)給TMC。
(5)Blockchain:負(fù)責(zé)對(duì)交易和聚合簽名的驗(yàn)證和存儲(chǔ),利用智能合約實(shí)現(xiàn)訪問(wèn)控制和支付操作。
本節(jié)將詳細(xì)描述所提方案,方案的部分符號(hào)說(shuō)明如表1所示。

表1 方案的部分符號(hào)說(shuō)明





(7)簽名驗(yàn)證:RSU接收到車輛廣播的簽名消息{PSUi,VPKi,mi,TPi,σi}后執(zhí)行該算法,對(duì)同時(shí)接收到的簽名消息用公式SiP=Ui+h3i(Ri+h2iKpub+h1iXi)驗(yàn)證。其中h1i=H1(PSUi,Xi),h2i=H2(PSUi,Ri,Kpub,Ti)。如果驗(yàn)證通過(guò)則發(fā)送消息至TMC存儲(chǔ),并對(duì)同一時(shí)間接收到的消息進(jìn)行聚合。如果有消息驗(yàn)證失敗,則將消息發(fā)送至TMC進(jìn)行存儲(chǔ)的同時(shí)向TMC發(fā)送驗(yàn)證失敗報(bào)告,TMC通過(guò)區(qū)塊鏈和身份索引表追蹤。
(8)聚合簽名:RSU從不同車輛接收到簽名消息{PSUi,VPKi,mi,TPi,σi},驗(yàn)證后,將接收到的有效簽名σi=(Ui,Si)進(jìn)行聚合。計(jì)算式(1)(2),其中n為簽名個(gè)數(shù)。聚合簽名為σ=(U,S)。區(qū)塊鏈存儲(chǔ)聚合簽名和消息{Dj,(PSUi,VPKi,mi,TPi)i∈{1,2,…,n},σ}哈希值。
(1)

(2)
(9)聚合驗(yàn)證:區(qū)塊鏈上的礦工收到聚合結(jié)果進(jìn)行驗(yàn)證。輸入聚合簽名σ、params、VPKi=(Xi,Ri)。首先計(jì)算h1i、h2i、h3i,礦工驗(yàn)證等式(3),其中n為簽名個(gè)數(shù),若等式成立,將其打包上傳到區(qū)塊鏈。
(3)
(10)數(shù)據(jù)通信:車輛Vi使用假名加入VANET,向KGC請(qǐng)求部分私鑰,生成自己的公私鑰。車輛在行駛過(guò)程中廣播路況等信息,所發(fā)消息均經(jīng)過(guò)簽名,RSU執(zhí)行簽名驗(yàn)證并將獲得數(shù)據(jù)發(fā)送TMC,同時(shí)聚合已驗(yàn)證成功的簽名,將聚合簽名以及向TMC所發(fā)消息的哈希值存儲(chǔ)至區(qū)塊鏈上;若部分驗(yàn)證失敗,將驗(yàn)證成功的數(shù)據(jù)發(fā)送TMC,驗(yàn)證成功的簽名聚合后上鏈,同時(shí)向TMC報(bào)告驗(yàn)證失敗消息以便追蹤懲罰。車輛主要從RSU中獲得可驗(yàn)證聚合簽名的可信消息,也通過(guò)V2V交互獲得信息。礦工驗(yàn)證聚合簽名并發(fā)布到區(qū)塊鏈。另外,車輛使用假名加入?yún)^(qū)塊鏈,通過(guò)觸發(fā)智能合約發(fā)送查詢?nèi)蝿?wù)以及交易,不經(jīng)過(guò)廣播交互來(lái)查詢相關(guān)服務(wù)信息,其他礦工(可以是車輛節(jié)點(diǎn))解決任務(wù)可獲取獎(jiǎng)勵(lì)。如果接收任務(wù)結(jié)果驗(yàn)證為假,可向TMC舉報(bào)并上鏈存證,TMC追蹤發(fā)布假消息的節(jié)點(diǎn),然后向RSU發(fā)布命令撤銷該節(jié)點(diǎn)并將其獲得的該交易款退回。
1)發(fā)改、經(jīng)信、商務(wù)部門(mén)數(shù)據(jù)。主要為主體功能區(qū)規(guī)劃、產(chǎn)業(yè)集聚區(qū)規(guī)劃、產(chǎn)業(yè)基地、工業(yè)園區(qū)分布范圍、規(guī)模以及加油站數(shù)據(jù)等相關(guān)資料,用于采集主體功能區(qū)、開(kāi)發(fā)區(qū)、保稅區(qū)范圍及名稱、面積、類型、等級(jí)等屬性的賦值。
其中步驟(1)~(9)為無(wú)證書(shū)簽名及驗(yàn)證過(guò)程,步驟(10)描述了結(jié)合區(qū)塊鏈實(shí)現(xiàn)數(shù)據(jù)的安全傳輸。
所提方案的正確性可以證明如下:
(1)部分私鑰驗(yàn)證的正確性。
PSKPSUiP=(ri+ah2i)P=riP+ah2iP=
Ri+h2iaP=Ri+h2iKpub
(4)
(2)簽名驗(yàn)證的正確性。
SiP=[ui+h3i(PSKPSUi+h1ixi)]P=
uiP+h3i(PSKPSUi+h1ixi)P=
Ui+h3i(riP+sh2iP+h1ixiP)=
Ui+h3i(Ri+h2iKpub+h1iXi)
(5)
(3)聚合驗(yàn)證的正確性。
(6)
為了保護(hù)車輛隱私,該方案考慮了強(qiáng)匿名、不可鏈接性、消息完整性、不可否認(rèn)、可追蹤、防篡改,并抵御以下兩種對(duì)手的攻擊。對(duì)手A1:惡意用戶的公鑰替換攻擊,即A1可替換合法用戶的公鑰,但無(wú)法獲取KGC系統(tǒng)主密鑰。對(duì)手A2:惡意但被動(dòng)的KGC攻擊,即A2可以訪問(wèn)KGC主密鑰,但不能替換任何車輛的公鑰。
引理1:若對(duì)手A1可以在隨機(jī)預(yù)言機(jī)模型中以不可忽略的概率ε1在多項(xiàng)式時(shí)間內(nèi)偽造出有效簽名,那么在多項(xiàng)式時(shí)間內(nèi),存在挑戰(zhàn)者C1在不可忽略的概率ε'解決ECDLP,則認(rèn)為該方案在對(duì)手A1自適應(yīng)選擇消息和身份攻擊下具有不可偽造性。
證明:假設(shè)挑戰(zhàn)者算法C1能有效解決ECDLP困難性問(wèn)題,輸入(P,aP),目標(biāo)是在交互中計(jì)算a。
(1)初始化階段:C1執(zhí)行系統(tǒng)初始化算法,隨機(jī)選擇s作為主密鑰,計(jì)算公共參數(shù)params并發(fā)送給A1,秘密保存s。
(2)查詢階段:本階段A1提出一系列查詢,這些查詢由挑戰(zhàn)者自適應(yīng)回答。C1維護(hù)并初始化以下列表: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進(jìn)行該查詢時(shí),C1執(zhí)行:當(dāng)PSUi=PSU*,C1終止,當(dāng)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在部分私鑰和簽名查詢時(shí)未終止;E2:A1偽造的簽名有效;E3:在偽造身份中存在PSUi=PSU*。
在詢問(wèn)階段,如果PSUi=PSU*的時(shí)候C1會(huì)終止,假設(shè)pr[PSUi=PSU*]=θ,則C1不終止的概率是1-θ,則pr[E1]≥(1-θ)qpsk+qsig,由對(duì)手A1以不可忽略的概率ε1在多項(xiàng)式時(shí)間內(nèi)偽造出有效的簽名可知pr[E1|E2]≥ε,另外,同時(shí)滿足以上條件的PSUi,有1個(gè)PSUi=PSU*,其余k-1個(gè)PSUi≠PSU*,pr[E1|E2∧E3]≥θ(1-θ)k-1,滿足以上挑戰(zhàn)者在不可忽略的概率ε'=θ(1-θ)qpsk+qsig+k-1ε1解決了橢圓離散對(duì)數(shù)難題。這與公理矛盾。其中qpsk為部分私鑰查詢次數(shù),qsig為簽名查詢次數(shù)。
引理2:如果對(duì)手A2可以在隨機(jī)預(yù)言機(jī)模型中以不可忽略的概率ε2在多項(xiàng)式時(shí)間內(nèi)偽造出有效的簽名,那么在多項(xiàng)式時(shí)間內(nèi),則存在挑戰(zhàn)者C2在不可忽略的概率ε''解決ECDLP,則認(rèn)為該方案在對(duì)手A2自適應(yīng)攻擊下具有不可偽造性。
證明:證明過(guò)程同引理1,在此不再贅述。
(1)強(qiáng)匿名性和不可鏈接性。

(2)消息完整性和不可否認(rèn)。
從引理1和引理2的不可偽造性證明中也能看到在滿足身份認(rèn)證的同時(shí)充分保證了消息完整性。用戶簽名時(shí)會(huì)利用安全哈希函數(shù),而且RSU會(huì)將驗(yàn)證失敗的信息和聚合后的hash值上傳區(qū)塊鏈,TMC通過(guò)哈希運(yùn)算比較結(jié)果值進(jìn)行監(jiān)管,且一旦簽名被冒用驗(yàn)證等式不會(huì)成立,多方驗(yàn)證保證不可否認(rèn)。
(3)可追蹤和防篡改。
由于惡意參與者不可避免,匿名保護(hù)車輛隱私,所以TMC擁有追查車輛身份的權(quán)利。如出現(xiàn)相應(yīng)事件,RSU將消息上鏈并報(bào)告假名給TMC,TMC通過(guò)區(qū)塊鏈及索引表進(jìn)行追蹤。區(qū)塊鏈上的發(fā)布如要修改,需重新發(fā)布,所有消息都可供追溯,聚合后的簽名哈希值存入?yún)^(qū)塊鏈,監(jiān)管機(jī)構(gòu)可有效追溯消息來(lái)認(rèn)定車輛責(zé)任。
本節(jié)將從安全性、計(jì)算開(kāi)銷、通信開(kāi)銷等方面進(jìn)行分析。使用2臺(tái)PC:Intel(R) Core(TM) i5-4460 CPU @ 3.20 GHz和AMD R5 4600H @3.00 GHz and 16 GB of RAM,通過(guò)IntelliJ IDEA調(diào)用JPBC庫(kù)量化操作的時(shí)間消耗,在64位Ubuntu18.04下構(gòu)建以太坊私鏈模擬車輛加入?yún)^(qū)塊鏈后節(jié)點(diǎn)的交互通信以及交易過(guò)程,使用truffle框架實(shí)現(xiàn)界面交互,對(duì)智能合約主要函數(shù)的gas消耗和調(diào)用函數(shù)的響應(yīng)時(shí)間進(jìn)行測(cè)試。
首先在安全性能上從8個(gè)方面與文獻(xiàn)[14-17,21-22]進(jìn)行了對(duì)比,如表2所示。文中方案不基于雙線性配對(duì)運(yùn)算,并且在強(qiáng)匿名性、不可鏈接性、可追蹤性等方面表現(xiàn)優(yōu)于其他方案。

表2 安全性能對(duì)比
文中方案在計(jì)算開(kāi)銷和通信開(kāi)銷兩方面與文獻(xiàn)[14-15,21-22]進(jìn)行對(duì)比,如表3和表4所示。其中Tbp為雙線性配對(duì)運(yùn)算時(shí)間,Tbp-mul為雙線性配對(duì)乘法運(yùn)算時(shí)間,Tbp-add為雙線性配對(duì)加法運(yùn)算時(shí)間,TECC-mul為橢圓曲線乘法運(yùn)算時(shí)間,TECC-add為橢圓曲線加法運(yùn)算時(shí)間,Th為單向哈希時(shí)間,分別為:6.086 ms,1.018 ms,0.007 ms,0.758 ms,0.047 ms,0.000 1 ms。

表3 計(jì)算開(kāi)銷對(duì)比

表4 通信開(kāi)銷對(duì)比

圖2展示了聚合驗(yàn)證計(jì)算開(kāi)銷對(duì)比,文獻(xiàn)[14-15,21]使用雙線性配對(duì)運(yùn)算,驗(yàn)證效率低開(kāi)銷較高。文獻(xiàn)[22]雖然在計(jì)算開(kāi)銷上較低,但其利用RSU聚合和驗(yàn)證,加重RSU通信負(fù)擔(dān),文中方案由礦工聚合驗(yàn)證節(jié)省RSU開(kāi)銷,結(jié)合通信開(kāi)銷對(duì)比,文中方案基于無(wú)雙線性配對(duì)運(yùn)算,效率更高,優(yōu)勢(shì)更明顯。

圖2 聚合驗(yàn)證計(jì)算開(kāi)銷對(duì)比
由圖3傳輸聚合簽名通信開(kāi)銷在消息個(gè)數(shù)變化時(shí)的對(duì)比看出,文中方案通信開(kāi)銷最低,相比開(kāi)銷最接近的文獻(xiàn)[22]降低平均約85.8%,當(dāng)n=10~100變化時(shí)實(shí)驗(yàn)所得開(kāi)銷降低約80.5%、85.4%、86.5%、87%、87.3%、85.8%等。顯然相比另外3個(gè)方案降低更多。

圖3 傳輸聚合簽名通信開(kāi)銷對(duì)比
用戶注冊(cè)后才能進(jìn)行任務(wù)發(fā)布/下載,未注冊(cè)調(diào)用智能合約會(huì)觸發(fā)permission denied事件提示注冊(cè)。用戶鏈上發(fā)布任務(wù)并標(biāo)記為待解決,此時(shí)鏈上節(jié)點(diǎn)均可下載。合約收到100個(gè)該任務(wù)請(qǐng)求后將任務(wù)標(biāo)為解決中,避免過(guò)多節(jié)點(diǎn)下載造成資源浪費(fèi)。用戶可能收到不同結(jié)果,選取滿意結(jié)果后支付報(bào)酬并標(biāo)記任務(wù)已解決。當(dāng)聚合簽名個(gè)數(shù)為50時(shí),平均每15 s就能將200個(gè)聚合簽名哈希值上鏈。實(shí)驗(yàn)表明,聚合簽名從生成到最終上鏈平均時(shí)間約0.075 s。表5是主要函數(shù)gas消耗和調(diào)用該函數(shù)響應(yīng)時(shí)間測(cè)試。
過(guò)高的gas消耗會(huì)造成網(wǎng)絡(luò)負(fù)擔(dān),從表5可以看出,用戶注冊(cè)、發(fā)布/上傳任務(wù)結(jié)果、下載/接受任務(wù)結(jié)果所消耗的gas相差不大,以上智能合約gas消耗量小,各功能響應(yīng)時(shí)間不超過(guò)5 ms,響應(yīng)迅速。
該文引入?yún)^(qū)塊鏈并利用橢圓曲線構(gòu)建無(wú)證書(shū)聚合簽名方案,在降低了開(kāi)銷的同時(shí),實(shí)現(xiàn)了強(qiáng)匿名性等六大安全性。降低了現(xiàn)有計(jì)算和通信負(fù)擔(dān),解決了巨大的證書(shū)管理開(kāi)銷問(wèn)題。并通過(guò)實(shí)驗(yàn)證明了該方案的可行性,與其它方案相比,該方案的通信開(kāi)銷降低了85.8%以上,更適合應(yīng)用于VANET。另外,無(wú)限制的假名更換是不合理的,更換假名需要成本,未來(lái)的研究會(huì)圍繞選擇更合適的假名更換策略,進(jìn)一步驗(yàn)證隨機(jī)預(yù)言機(jī)模型和標(biāo)準(zhǔn)模型在應(yīng)用中的差別,提升方案的實(shí)用性。