龔成,牛憲華,熊玲,王楊鵬
(西華大學計算機與軟件工程學院,四川 成都 610039)
車載自組網(vehicular ad hoc networks,VANETs)作為移動自組網(mobile ad hoc network,MANET)的子集,是通過路邊單元(roadside unit,RSU) 與車輛間的無線通信實現的。每輛車上的車載單元(on-board unit,OBU)負責廣播實時交通信息給周圍的車輛和RSU[1]。通常而言,這些通信被劃分為車輛與車輛的通信(vehicle-to-vehicle,V2V)和車輛與路邊單元的通信(vehicle-to-roadside unit,V2R),它們都遵守專用短程通信協議(dedicated short range communication,DSRC)[2]。而且,這些通信都依賴于云計算服務(cloud computing services,CCS)所提供的計算和存儲資源[3]。在實際應用中,VANETs較多采用低延遲的車輛霧服務(vehicular fog services,VFS)[4]。
在開放的網絡環境中,敵手可能會截獲傳輸中的消息,因此對消息合法性的驗證是不可或缺的[5]。一旦車輛的真實身份被敵手揭露[6],敵手就能追蹤車主的住址、行蹤等,進而造成人身和財產的損失。車輛的隱私信息,例如認證過程中的車輛真實身份,不能被任一敵手所揭露[7]。此外,可能存在惡意的參與者為了自身的利益而廣播虛假的交通信息。針對這種情況,系統中應該有一個可信的第三方機構能夠追蹤惡意參與者[8]。
近年來,許多認證方案被提出[9]。這些方案普遍采用的技術包含對稱加密、公鑰基礎設施、基于身份的簽名、無證書簽名、群簽名等[10],它們均保證了車載自組網環境中的安全和隱私,并且它們的共同趨勢是取代單一認證中心,實現去中心化。這些方案往往采用多個獨立的服務節點組成認證服務集群。但在認證服務集群中,不僅需要保證各個服務節點之間的信息同步[11-15],還需要考慮集群的健壯性。認證服務節點作為半可信的實體,在遭受攻擊后,如何在集群內部快速移除癱瘓的節點,以及如何快速添加備用節點是保證集群穩定性和健壯性的關鍵。因此,設計一個既能滿足安全性和隱私性,又能保證認證服務集群健壯性的認證方案是具有現實意義的。
本文的主要貢獻如下。
1)實現了不可鏈接性,用于保護車輛的隱私。敵手無法關聯同一輛車的不同假名。
2)實現了認證服務節點之間的認證信息同步。車輛在進入另一個服務節點的管理區域時,可以實現跨域認證。
3)實現了認證服務集群中各服務節點的快速添加和刪除,保障了認證服務集群的健壯性、可維護性。
近幾年來,許多研究者開始關注車聯網環境下的安全和隱私問題。這些方案分為:基于公鑰基礎設施(public key infrastructure,PKI)的、基于身份加密(ID-based cryptography,IDC)的和基于認證密鑰協商(authenticated key agreement,AKA)的。在基于PKI 的方案中,Raya等[16]系統地考慮了VANET中的安全問題,提出了一種基于PKI 的安全協議,但該方案僅考慮了V2V,沒有考慮V2R。隨著RSU的完善,Wang等[17]提出了一種基于PKI 證書和身份簽名的混合條件隱私保護認證協議,該方案充分地考慮了V2V和V2R。
在基于PKI 的認證方案中,證書分發、管理和撤銷所需的計算開銷較大。為了解決計算開銷問題,基于身份加密的認證方案被提出。Vijayakumar等[18]提出了基于身份劃分的二重認證和密鑰管理機制,但該方案的密鑰管理開銷仍然較大。Ying等[19]介紹了一種基于智能卡協議的輕量級匿名身份驗證方案,但該方案沒有考慮跨域認證的問題,即車輛出現通信對象的切換時,不同域的服務提供者需能認證車輛先前的假名。為了實現跨域認證,Liu等[20]利用基于身份加密和基于短生存期的證書構造了一個分布式條件隱私保護認證方案。類似地,Deng等[21]采用假名技術來保護隱私,并通過組密鑰加密來改變假名。
除了PKI 認證方案和IDC 認證方案的密鑰分發,另一種確保通信安全的方法是使用密鑰協商獲得安全的通信信道。Can等[22]指出,可以將滿足會話密鑰安全的密鑰交換協議和認證算法結合起來,獲得安全的通信信道,保證通信安全。Huang等[23]提出了一種AKA 協議,一個基于橢圓曲線密碼(elliptic curve cryptography,ECC)的簽名算法被用來避免雙線性對的高計算開銷。Mejri等[24]考慮了VANETs 中的組密鑰生成問題,在傳統的Diffie-Hellman 密鑰交換算法的基礎上構建組密鑰。
在滿足安全和隱私的基礎上,學術界開始研究認證方案的去中心化。文獻[25]提出了一種動態的、跨域認證的非對稱組密鑰協議,該協議避免了密鑰托管的風險和證書管理的復雜性,但該方案使用雙線性映射,計算開銷大。此外,去中心化也對基于IDC 的認證方案提出了新挑戰。為此,He等[26]設計了一個基于分層身份密碼的匿名認證方案框架。Xiong等[27]利用自認證公鑰密碼和中國剩余定理(chinese remainder theorem,CRT)為移動云計算(mobile cloud computing,MCC)環境構建了一個完整的認證和分層訪問控制方案。隨著區塊鏈技術的廣泛應用,越來越多的去中心化方案開始使用區塊鏈來實現認證集群間的信息同步。Wang等[28]采用聯盟區塊鏈技術,構建了一個分散的網絡作為認證集群。Yao等[29]提出了一種基于區塊鏈的跨區域認證方案。但上述基于區塊鏈的認證方案都缺乏對不可鏈接性的保護,且沒有考慮認證集群的健壯性。
本文方案的安全性主要依賴于橢圓曲線密碼學中的2 個困難問題[10]。
定義1橢圓曲線Diffie-Hellman 難題(elliptic curve diffie-hellman problem,ECDHP)。設G是由橢圓曲線上的點組成的循環加群,它的階是素數q,P是G的生成元。給定xP,yP∈G(x,y∈),計算xyP是困難的。
定義2橢圓曲線離散對數難題(elliptic curve discrete logarithm problem,ECDLP)。設G是由橢圓曲線上的點組成的循環加群,它的階是素數q,P是G的生成元。給定xP∈G(x∈),計算x是困難的。
本文的參與者有4 種,系統模型如圖1所示。

圖1 系統模型
1) 權威部門(trusted authority,TA)。TA 是整個系統中唯一的可信第三方,負責車輛和服務節點的注冊。同時,它還會參與群密鑰協商。
2) 防篡改裝置(tamper-proof device,TPD)。TPD 是車輛上的安全設備。在TA 注冊后,TPD 負責秘密地存儲車輛的假名和相應的密鑰對。
3) 服務管理節點(service manager,SM)。SM是認證集群中的一個服務節點。在認證集群建成之前,它需要在TA 注冊。SM 提供多種服務,例如:驗證車輛的認證請求;生成區域假名和相應密鑰對;負責參與群密鑰協商,生成會話密鑰,維護集群內的公共賬本等。
4) 路邊單元(roadside unit,RSU)。RSU 作為SM 的下屬,比SM 分布更加廣泛。此外,RSU 還負責認證消息的轉發。
本文可能出現的符號,如表1所示。
本文預期實現的安全目標如下。
1) 完整性。敵手不能篡改傳輸中的信息。
2) 匿名性。在認證過程中,敵手無法追蹤車輛的真實身份。
3) 不可鏈接性。每個交通消息所使用的區域假名都是唯一的。即敵手無法分辨來自同一輛車的不同消息。

表1 符號說明
4) 可追蹤性。TA 可以追溯惡意車輛的真實身份。
5) 健壯性。集群內增刪認證節點后,能夠快速恢復集群內的信息同步。
根據文獻[30]提出的基于樹的群密鑰協商協議,本文實現了服務集群間的添加和刪除操作。樹的結構如圖2所示,通用會話密鑰的計算方法如下。

圖2 樹的結構
1) 二叉樹 BTn滿足2 個特征。第一,B Tn的深度為n,和已有SM 數量一致。第二,BTn是滿二叉樹,且B Tn的根結點的右孩子為B Tn-1。
2) BTn的每個節點通過數字i(0 ≤i≤2n)標記,標記為奇數的節點是葉節點,標記為偶數的節點(2n除外)是分支節點。每個節點都有自己的樹私鑰 T SKi和樹公鑰T PKi,T PKi=TSKi·P。其中,標記為2n的葉結點的樹私鑰為TA 的私鑰 sk,(s k∈),標記為奇數的葉結點的樹私鑰為 SMj的私鑰(j=n-(i-1)/2)。分支節點的私鑰 TSKi由等式(1)計算所得,其中h:{0,1}*→。

3) 根節點的私鑰T SK0是集群間的會話密鑰。
當集群出現無法繼續提供服務的節點時,需要新增備用節點。值得注意的是,新增的SM 設備也需要提前在TA 進行注冊。
為了描述群密鑰協商協議中添加SM 的情況,假設已經加入群密鑰協商進程的SM,按加入的時間順序排序為{SM1,SM2,···,SMn-1}。新增的SM為 S Mn。
1)當需要新增 SMn到集群中時,SMn向TA 發起加入請求Join},Join 代表該消息是加入請求。
3)在接收到 {TPK1,TPK2,n,T3,σ}后,SMi(0 ≤1 ≤n)首 先檢查T3的有效性,然后根據ECDSA 對σ和h(TPK1,TPK2,n,T3)進行驗證。若驗證通過,SMi計算 TSK0,并將{TSK0,T3}更新到自己的會話密鑰列表。
為了具體地描述群密鑰協商的添加操作,以添加SM1,SM2,SM3為例,如圖3所示,具體過程如下。

當服務節點出現故障無法繼續提供服務時,需要移除故障的節點。



圖4 刪除SM

認證的一般流程,如圖5所示。在組網之前,車輛和服務節點需提前注冊,即車輛和服務器注冊。在車輛加入自組網時,車輛從附近的節點獲取區域假名,同時,服務節點間共享該區域假名,即認證及成員秘密生成階段。加入組網后,車輛使用獲取的區域假名簽名交通消息,實現消息認證[31-33]。

圖5 認證流程
在初始階段,TA 首先選擇一個由橢圓曲線上的點組成的加群G,G的階為q,其生成元為P。然后,TA生成系統私鑰 sk∈,并計算系統公鑰PK=sk·P。接著,TA 選擇哈希函數h:{0,1}*→。最后,TA 保留 sk,并發布系統參數{G,P,PK,h}給所有的車輛和SM。
車輛在加入VANETs 之前需要先在TA 進行注冊,在注冊后,Vi的TPD 就獲得了假名和對應的私鑰。車輛注冊的過程如下所述。



當一個車輛Vi想要發送交通相關的消息時,會先檢查是否還有未使用的區域假名。如果沒有可用的區域假名,Vi的TPD 需要向它所屬的SM 請求新的區域假名。這個階段被稱為認證及成員秘密生成階段,細節如下。



消息驗證應該是輕量級的,且滿足條件隱私保護的。假設車輛Vi進入另一個地區,并且 TPDi的區域假名沒有用完,消息驗證的過程如下。

本章將對方案各階段的安全性進行分析。其中,認證及成員秘密生成階段的安全性將進行形式化分析,其余階段的安全性將結合2.3 節提出的安全需求進行非形式化分析。
根據文獻[30],該形式化分析被設計為一個包含敵手α和圖靈機 β的游戲。
α能夠做出如下的問詢。

5.1.1 安全的車輛認證
在方案中,如果h是理想的哈希函數,且是被認可的,就不可能存在概率多項式時間攻擊者能夠偽造一個合法車輛的認證請求消息。
證明假設在一個不可忽視的可能性 ε下,敵手 α能夠偽造一個合法車輛的認證請求消息,那么β理應解決ECDLP 難題。給定一個ECDLP 實例(TVPi=r·P),β 的任務就是計算r。此外,β會發布系統參數 {G,P,PK,h},并隨機地選擇一個真實的車輛身份R IDVC作為自己的挑戰身份。α的詢問如下。

5.1.2 安全的SM 認證
在方案中,如果h是安全的哈希函數,且是被認可的,就不可能存在概率多項式時間攻擊者α能夠偽造一個合法的SM 響應消息。
證明在一個不可忽視的可能性 ε下,假設敵手 α能夠偽造一個合法SM 響應消息,那么 β在不可忽視的可能性下,理應能夠解決ECDHP 難題。給定一個ECDHP實例(P,=rSM·P,X=x·P),β的任務就是計算rSM·x·P。此外,β會發布系統參數 {G,P,PK,h}和。假設RIDSC是挑戰身份,并且省略5.1.1 節中重復的詢問,β的詢問如下。
1)車輛身份詢問。β根據方案進行操作并返回{X,PIDVi,,TVPi,Lt,V1,T1}。
基于上述詢問,如果 α能偽造消息 {CT,V2,T2},車輛將認為 α是合法的SM。但是,偽造{CT,V2,T2}存在2 個難點。
第一,α在 沒有rSM的情況下無法推測出V2。即推測成功的概率等于哈希碰撞的概率,概率為1/2p/2,p是哈希數輸出的比特長度。顯然,這是可以忽略不計的。
第二,α即使獲得了rSM,根據ECDHP 難題,計算rSM·X也是不可能的。
因此,不可能存在概率多項式時間攻擊者能夠偽造一個合法的SM 響應消息。
5.2.1 完整性
車輛注冊階段和服務節點注冊階段都由私有信道保證通信過程中的消息完整性。信息同步階段因為使用會話密鑰進行了加密,所以完整性也可以得到保障。最后,消息驗證階段的完整性由橢圓曲線數字簽名算法(ECDSA)保證。
5.2.2 匿名性
因為集群處于封閉環境的緣故,所以本方案的匿名性主要體現在對車輛身份的保護上。即車輛和服務節點交互時的身份保護,以及車輛和其他車輛交流時的保護。在車輛和服務節點的交互中,它使用的是假名,無需提交真實的身份;在車輛和其他車輛交流時,它使用的是區域假名而區域假名的分發過程對敵手是不可見的,所以敵手無法從區域假名逆推出車輛的假名,更無法獲取車輛的真實身份。
5.2.3 不可鏈接性
因為每個區域假名只會被使用一次,所以對敵手而言,每條消息都是唯一的,即同一輛車的若干條消息之間是沒有聯系的,敵手無法逆推消息的來源。
5.2.4 可追溯性
當系統需要追溯惡意車輛的真實身份時,服務節點會從惡意消息中獲取區域假名 L PIDi,l,并根據獲取對應的假名信息,然后將惡意車輛的假名信息發送給TA,由TA 查閱車輛注冊列表,找出真實身份。
5.2.5 健壯性
本方案的健壯性體現在認證集群中。當某個認證節點遭受攻擊,無法正常提供服務時,集群內部需要快速刪除癱瘓的服務節點,添加備用的服務節點,協商出新的會話密鑰用于恢復各節點間的信息同步。本文方案的群密鑰協商協議采用樹狀結構,協商密鑰的速度快。添加操作只需要各節點在原會話密鑰的基礎上同步地計算一次;刪除操作則根據被刪除節點在樹中所處深度的不同而有所不同,假設刪除 BTn的節點的深度為m(1 <m≤n+1),則深度大于m的各節點需要m-2次計算,而深度小于m的節點需要的次數為x-1(x為該節點的深度,即1<x<m)。
本章從計算開銷、通信開銷和安全性3 個方面,將本文方案與文獻[20][29][30]方案進行比較。計算開銷主要取決于橢圓曲線點乘運算次數和Hash 函數映射運算的執行次數。對于通信開銷,根據車輛的請求消息的長度來評估[33]。在安全性方面,主要檢查方案是否滿足完整性、匿名性、不可鏈接性,以及方案是否實現集群模式等。在計算開銷方面,測試的實驗環境配置如表2所示,測得的各基礎操作的計算開銷如表3所示。

表2 實驗環境

表3 基礎操作時間開銷
從表4可知,文獻[29]基于屬性加密,所以它的Tmul調用次數與SM 的數量k相關,這導致該方案在SM 數量較多時的計算效率較低。文獻[29]還使用了區塊鏈,它借助實用拜占庭容錯算法來實現集群間的信息同步,故每輪的決策需要等待 2/3k的節點進行響應。本文方案直接使用會話密鑰發布消息,無需等待。

表4 時間開銷對比
表5為通信開銷比較。文獻[29]的請求信息由(V1,V2,···,Vk,T,C)組 成,其中V是公鑰的子秘密,長度為128 bits,T是時間戳,長度為13 bits,C為真實身份和隨機數的簽名,長度為64 bits,故總長度為(128k+77) bits。文獻[30]的請求信息為(IDj,Tj,γj,PIDi,Ti,αi,Ki,Ri),其中 γj為車輛身份信息的Hash 簽名(SHA-256),αi是SM 對車輛身份的簽名(SHA-256),Ki為公鑰長度為128 bits,Rj為隨機數,長度為128 bits,IDj和P IDi都是13 bits,故總長度為794 bits。文獻[20]的請求信息為{X,CT1,V1,T1},其中X為隨機數,長度為128 bits,T1為時間戳,長度為13 bits,CT1為簽名,長度128 bits,V1為校驗碼,長度128 bits,總長度為397 bits。本文的請求消息為{,TVPi,k,Lt,V1,T1},其中X為隨機數,長度為128 bits,T1為時間戳,長度為13 bits,TVPi,k為公鑰,長度128 bits,V1為校驗碼,長度128 bits,總長度為397 bits。

表5 通信開銷比較
在安全性方面:文獻[20]和[30]沒有實現集群模式;文獻[29]雖然實現了集群,但是沒有考慮不可聯接性的問題;本文滿足所有安全需求和場景假設。其比較內容如表6所示。

表6 安全性比較
綜上所述,與文獻[20][29][30]相比,本文方案在計算開銷和通信開銷都更加優秀。在與文獻[30]的性能持平的情況下,本方案的應用場景更加豐富,安全性也更強。
本文提出了一種車載自組網中基于密鑰協商的條件隱私保護認證方案。其優勢為:1)通過引入匿名認證技術使車輛發送的消息滿足不可鏈接性,即敵手無法關聯來自同一輛車的不同區域假名;2)通過認證服務集群實現認證的去中心化,并借助群密鑰協商協議來保障集群的健壯性。
在未來的工作中,筆者計劃引入聚合技術來進一步降低SM 的計算開銷。此外,設計另一種更高效的車聯網認證方案也是努力的方向。