石琴 潘廷亮 程騰 王川宿 張星
(1.合肥工業(yè)大學,自動駕駛汽車安全技術安徽省重點實驗室 安徽省智慧交通車路協同工程研究中心,合肥 230009;2.奇瑞汽車股份有限公司,蕪湖 241006)
主題詞:量子加密通信 身份認證 車聯網 計算開銷 通信開銷
在車聯網各實體中,車-云間的通信是車聯網技術的基礎。車-云通信過程中,存在大量的車輛隱私和位置信息,以及云服務器的控制信令[1]。因此,車-云通信安全對于整個車聯網交通安全具有重大影響。身份認證是車聯網通信中最重要的步驟之一,可使合法車輛與車聯網云平臺進行信息交互,并將非法用戶和各種類型的攻擊拒之門外[2]。
在車-云通信過程中,密鑰對于信息加密也有十分重要的影響。密鑰的生成往往基于隨機數和口令,隨機數的隨機性會影響生成密鑰的安全性[3]。在具有強大算力的計算機面前,通過種子信息、預設函數和常數常量等元素生成的偽隨機數將會變得極其不安全[4]。而真隨機數往往通過一些不可預測的物理現象產生,例如量子隨機數發(fā)生器通過光子的物理現象產生隨機數[5]。通過使用真隨機數來生成量子密鑰將會具有更高的安全性。目前,較為常用的量子密鑰分發(fā)協議由Bennett 和Brassard[6]于1984年提出,即BB84協議。
目前的身份認證機制主要分為基于公鑰基礎設施(Public Key Infrastructure,PKI)的認證方案、基于群簽名的認證方案和基于身份的認證方案[7]。基于PKI的認證方案具有存儲、通信和計算開銷過大的缺陷。基于群簽名的認證方案普遍具有如下問題:車輛離開一個群或加入一個新群,需要在可信實體(Trusted Authority,TA)的幫助下更新群密鑰[8],這不僅給TA 帶來了額外的負擔,群密鑰的頻繁切換也帶來極大的計算和通信開銷[9];群成員隱私信息的保護不易實現,難以保證匿名性和可追溯性?;谏矸莸恼J證方案相較于基于PKI 的認證方案,在很大程度上減少了計算、通信和存儲的開銷,但密鑰生成算法或者密鑰存儲設備的攻破會直接危害系統安全[10]。
本文針對部分車聯網設備通信和計算能力有限的問題,在車云網量子通信架構的基礎上,設計一種輕量化身份認證方案,主要通過量子隨機數、邏輯運算和單向哈希函數[11-13]等進行運算,并與其他4種相關方案[14-17]進行對比驗證。
車云網量子加密通信架構系統既支持廣域網下車輛與車聯網云平臺之間通過線下儲存的充注密鑰進行會話密鑰的無線分發(fā),也支持局域網下車聯網云平臺與車載信息服務提供商(Telematics Service Provider,TSP)之間使用BB84協議實現量子密鑰的有線協商。因此,該系統實現了混合網絡下基于量子物理安全的加密通信。
車云網量子加密通信架構系統主要由車聯網云平臺、車輛、密鑰充注系統(Key Filling System,KFS)和TSP組成,其架構如圖1所示:
圖1 車云網量子加密通信架構
a.量子云服務器(Quantum Cloud Server,QCS)車聯網云平臺。車聯網云平臺記錄著每一輛車的ID、密碼和充注密鑰,以此驗證車輛身份的合法性,也為車輛提供各種車聯網服務。同時,QCS內還集成了一套量子密鑰分發(fā)系統,可生成充注密鑰和量子會話密鑰,使其能夠與車輛之間進行安全加密通信。QCS 與TSP 之間也具有量子密鑰分發(fā)系統,保證QCS能夠將車輛數據安全地傳輸給TSP。
b.車輛。每一輛車都配備一個具有無線通信能力的設備,該設備可以是車載通信終端(Telematics-BOX,T-BOX)或車載診斷系統(On-Board Diagnosis,OBU)。同時,車輛的安全介質內存放著KFS生成并線下充注的密鑰。在車輛與QCS完成認證并申請到會話密鑰后,車輛能夠使用密鑰進行加密通信。
c.密鑰充注系統。KFS 的主要作用是將QCS 產生的足量的量子隨機數以線下充注的方式儲存到車輛的安全介質內。該隨機數文件可以視為充注密鑰。同時,充注密鑰在QCS中也存有備份,并且與車輛ID綁定,充注密鑰將會用于后續(xù)的車-QCS會話密鑰的申請。
d.車載信息服務提供商:TSP主要負責從QCS獲取車輛的相關數據和請求后,提供相應的車聯網服務。TSP與QCS之間通過光纖連接,并且集成了一套量子密鑰分發(fā)系統。量子密鑰分發(fā)系統能夠保證兩者之間的密鑰分發(fā)和加密通信絕對安全。
車輛與車聯網云平臺之間有2輪認證,認證過程如圖2所示。車輛上電后,將與QCS建立連接,并發(fā)送第1輪登錄認證消息。QCS在收到車輛第1條認證消息后,對車輛身份進行認證,認證通過后向車輛回復一條認證消息。車輛收到QCS 回復的認證消息后,對QCS 身份進行認證,認證通過后發(fā)送第2輪認證消息。QCS收到第2輪認證消息,驗證通過后向車輛回復成功消息。至此,車輛與QCS之間的認證流程完成。
圖2 車輛與云平臺的身份認證流程
車輛與QCS 身份認證的過程分為2 個階段,即注冊階段和認證階段。表1 所示為認證過程中的相關參數。
表1 登錄認證協議參數
車輛通過線下的安全渠道向QCS 注冊登記,并向KFS獲取充注密鑰:
a.車輛Vi選擇其唯一真實身份信息RIDi和密碼PWi,并將信息上傳QCS。
b.QCS收到注冊信息后,計算H1(RIDi),并將計算結果與數據庫現有身份信息進行對比。如果已經存在,則拒絕注冊請求;反之,QCS 將計算結果與RIDi綁定并記錄在數據庫內。同時,QCS將注冊成功信息和3個安全哈希函數H1、H2、H3發(fā)送給車輛。
c.車輛收到信息后,記錄下3個安全哈希函數并向KFS上報身份信息H1(RIDi),請求充注密鑰。
d.KFS在收到充注請求后,請求QCS檢查車輛合法性。完成檢查后,將充注密鑰傳輸到車輛的安全介質內。同時,KFS將車輛身份信息和充注密鑰發(fā)送給QCS進行綁定和記錄。
e.車輛收到充注密鑰后,將充注密鑰存儲在其安全介質內以完成注冊過程。
認證階段詳細過程如圖3所示:
a.車輛Vi啟動,登錄云服務平臺,生成第1 輪登錄認證消息。生成量子隨機數α、隨機序列號Seqi和時間戳ti。計算匿名身份信息IDi=H1(RIDi)⊕H2(ti),按照α1=α⊕H3(RIDi⊕H2(ti))計算隨機數,并且組裝生成認證消息頭部,即H={MT||L||ti||Seqi},計算MAC=H2(H||Ri||IDi||α1),最后生成消息Mi={H||IDi||α1||Ri||MAC},將消息發(fā)送給云服務器。
b.云服務器接收到消息Mi后,計算時間差t*-ti<Δt,檢查消息的有效性,如果不滿足條件則丟棄,如果滿足時間戳有效性,則計算該消息MAC*=H2(H||Ri||IDi||α1},并檢查式(1)是否成立:
如果不成立則丟棄該消息,否則查看消息類型MT,驗證為登錄認證消息。檢查認證輪次Ri,驗證為第1輪認證。取出IDi,并根據時間戳ti計算得出H1(RIDi),將數據庫內的身份消息進行對比分析,查詢得出車輛的RIDi,如果未能成功查詢,則丟棄該消息,如果查詢成功,則通過車輛的RIDi在數據庫中找到對應的PWi,并計算α=α1⊕H3(RIDi⊕H2(ti)),以及Rm=H2{α||PWi}。記錄對方的Seqj,同時生成量子隨機數β、隨機序列號Seqj和時間戳ti,計算β1=β⊕H3(RIDi⊕H2(ti)),組裝生成認證消息頭部,即H={MT||L||ti||Seqj},然后計算消息完整性驗證碼MAC=H2(H||Ri||β1||Rm||E||Em),最后生成消息Mi={H||β1||Ri||E||Em||Rm||MAC},將消息發(fā)送給車輛Vi。
c.車輛Vi接收到消息Mi后,計算時間差t*-ti<Δt,檢查消息的有效性,如果不滿足條件則丟棄,如果滿足時間戳有效性,則計算該消息MAC*=H2(H||Ri||β1||Rm||E||Em),并檢查式(2)是否成立:
如果不成立則丟棄該消息,否則查看消息類型MT,驗證為登錄認證消息。檢查認證輪次Ri,驗證為第1輪認證。車輛Vi將自己之前發(fā)送的量子隨機數α與自己的密碼PWi進行計算=H2{α||PWi},并檢查式(3)是否成立:
如果不成立則丟棄該消息,否則檢查消息內錯誤碼E的值,如果表明登錄認證消息失敗,則根據錯誤信息Em修改認證信息,并重新執(zhí)行步驟a。如果消息內錯誤碼E的值表明登錄認證消息成功,則計算量子隨機數β=β1⊕H3(RIDi⊕H2(ti)),將云服務器的量子隨機數β與自己的密碼PWi進行計算,得到Rm=H2{β||PWi}。序列號Seqi在之前的基礎上增加1,同時生成時間戳ti。組裝生成認證消息頭部,即H={MT||L||ti||Seqj},然后計算消息完整性驗證碼MAC=H2(H||Ri||IDi||Rm),最后生成消息Mi={H||IDi||Rm||Ri||MAC}并發(fā)送給云服務器。
d.云服務器接收到消息Mi后,計算時間差t*-ti<Δt,檢查消息的有效性,如果不滿足條件則丟棄,如果滿足時間戳有效性,則計算消息MAC*=H2(H||Ri||IDi||Rm),并檢查式(4)是否成立:
如果不成立則丟棄該消息,否則查看消息類型MT,驗證為登錄認證消息。檢查認證輪次Ri,驗證為第2輪認證。計算Rm=H2{β||PWi},并檢查式(5)是否成立:
如果不成立則丟棄該消息,否則對比Seqi與之前記錄的數值是否滿足Seqi=Seqi*+1,不滿足則發(fā)送對應錯誤碼給車輛Vi,如果符合條件,則回復認證成功消息。組裝生成認證消息頭部H={MT||L||ti||Seqj},然后計算消息完整性驗證碼MAC=H2(H||Ri||E||Em),最后生成消息Mi={H||Ri||E||Em||MAC},將消息發(fā)送給車輛Vi。
e.車輛Vi接收到消息Mi后,計算時間差t*-ti<Δt,檢查消息的有效性,如果不滿足條件則丟棄,如果滿足時間戳有效性,則計算該消息MAC*=H2(H||Ri||E||Em),驗證式(6)是否成立:
如果不成立則丟棄該消息,否則查看消息類型MT,驗證為登錄認證消息。檢查認證輪次Ri,驗證為第2輪認證。檢查消息內錯誤碼E的值,如果表明登錄認證消息失敗,則根據錯誤信息Em修改認證信息,并重新執(zhí)行步驟a。如果消息內錯誤碼E的值表明登錄認證消息成功,則認證結束,車輛進入通信流程下一階段。
本文所提出的輕量化身份認證方案使用量子隨機數提高了通信過程的安全性,因為量子加密通信具有無條件的安全性,這是由量子物理學的不可克隆原理和不確定性原理所決定的[18]。一方面,基于量子隨機數所產生的量子密鑰更加難以破解,具有更高的安全性,另一方面,量子密鑰分發(fā)過程已被證明是絕對安全的,且任何第三方竊聽行為都將會被及時發(fā)現[19]。本文對身份認證過程進行安全性分析,保證其符合安全性需求并能應對各種安全攻擊手段:
a.匿名性。因為在認證過程中車輛使用的IDi并不是真實身份信息,所以在進行身份認證的過程中,攻擊者不能依靠攔截認證消息獲得用戶的真實信息。因此,本文方案具有匿名性。
b.可追溯性。車輛的真實身份信息RIDi可以由QCS 分析計算IDi來獲得。當網絡內出現異常節(jié)點時,QCS 能夠通過分析IDi來追蹤到真實身份信息。因此,本文方案具備可追溯性。
c.不可鏈接性。車輛生成的用于身份認證的匿名身份IDi和認證消息Mi都使用了量子隨機數和時間戳,因此,每一次認證使用的IDi都不相同,攻擊者無法通過長期追蹤來鎖定某個特定的車輛用戶。
d.抵抗偽造攻擊。本文方案在建立通信前需要進行身份認證。合法節(jié)點的身份信息記錄在QCS內,而且每次認證過程使用不同的量子隨機數,攻擊者難以偽裝成車輛或者QCS。因此,該方案能夠抵抗偽造攻擊。
e.抵抗重放攻擊。假定攻擊者具有截獲車輛和QCS 的身份認證消息Mi的能力,在一段時間后,攻擊者將截獲信息原封不動地發(fā)送給車輛或者QCS,并以此冒充合法身份。但是,Mi中存在著時間戳ti、量子隨機數和序列號Seqi或Seqj,都將造成攻擊者發(fā)送的認證消息無效,從而使得攻擊者無法完成身份認證。因此,本文方案對于重放攻擊具有很強的抵抗能力。
f.抵抗篡改攻擊。假設攻擊者在截獲車輛和QCS之間的身份認證消息Mi后,篡改部分內容來通過身份認證。本文方案中,車輛與QCS的通信消息中都存在著完整性摘要MAC。當消息被篡改后,消息接受方在對消息進行完整性校驗時將發(fā)現消息已經篡改,從而丟棄該條消息。
g.抵抗中間人攻擊。假設攻擊者通過截獲車輛和QCS間的通信消息,介入兩者間的通信,達到欺騙對方、竊聽和篡改信息的目的[20]。本文方案中,車輛和QCS之間會進行雙向認證。同時,認證所需信息都進行加密并具有完整性摘要MAC,中間人既不能獲取有效信息,也不能篡改消息內容。因此,本文方案具有抵抗中間人攻擊的能力。
將所提出的輕量化認證方案與現有的其他相關方案[10-13]在認證過程的計算開銷進行對比和分析。
試驗中,使用一臺筆記本電腦作為QCS或云服務提供商(Cloud Service Provider,CSP)來統計計算開銷。該主機具有AMD Ryzen 7 5800H with Radeon Graphics 處理器、16 GB 內存和Ubuntu 16.04 操作系統。對于每種計算開銷的統計,以10 000次計算為一組,計算10組取平均值。試驗主機如圖4 所示,試驗中,使用試驗車的T-BOX開發(fā)板統計車輛計算開銷,開發(fā)板為移遠AG35 QuecOpen硬件模組,具有ARM Cortex A7內核的基帶處理器平臺,T-BOX開發(fā)板如圖5所示。對于每種計算開銷的統計,同樣以10 000次計算為一組,計算10組取平均值。異或運算執(zhí)行時間遠小于其他運算,對試驗結果影響較小,因此在統計計算開銷時忽略異或操作執(zhí)行時間。設Th1、Th2、Th3、Tbp、Tbp.m、Tmtp、TW.m、TM.m和Te/d分別為以MD5算法執(zhí)行單向哈希函數運算、以SHA256算法執(zhí)行單向哈希函數運算、以SM3 算法執(zhí)行單向哈希函數運算、執(zhí)行雙線性對運算、執(zhí)行雙線性對乘法運算、執(zhí)行Map-To-Point 哈希運算、執(zhí)行橢圓曲線群上的點乘運算、執(zhí)行蒙哥馬利曲線群上的點乘運算和執(zhí)行對稱加解密運算的消耗時間,各方案的加密操作執(zhí)行時間如表2所示。
表2 各方案的加密操作執(zhí)行時間 ms
圖4 實車試驗
圖5 T-BOX開發(fā)板
將本文所提出的輕量化身份認證方案與現有的其他相關方案在認證過程的計算開銷進行對比,結果如表3所示。
表3 各方案的計算開銷 ms
由表3 可以看出,與其他方案相比,本文設計的輕量化方案在認證階段所需的總時間大幅縮短。
將所提出的輕量化認證方案與其他現有的相關方案在認證過程的通信開銷進行對比和分析。
本文提出的認證方案主要有4 條消息:M1={H||IDi||α1||Ri||MAC}、M2={H||β1||Ri||E||Em||Rm||MAC}、M3={H||IDi||Rm||Ri||MAC}、M4={H||Ri||E||Em||MAC}。假設哈希函數的輸出大小為32 B、時間戳為4 B,4 條消息中IDi、MAC、α1、β1、Rm均屬于哈希函數。H中MT、L、ti、Seqi(Seqj)的大小分別是3 B、4 B、4 B 和3 B,Ri和E的大小均為1 B,Em的大小為2 B。因此消息M1~M4的通信開銷分別為142 B、114 B、111 B 和50 B。最終,本文方案的通信開銷為417 B。
本文所提出的輕量化認證方案與其他現有的相關方案在認證過程的通信開銷對比結果如表4 所示。由表4可知,本文方案的通信開銷低于其他4種方案。
表4 各方案的通信開銷 B
本文在車云網量子通信架構的基礎上,設計了一種輕量化身份認證方案。通過對認證流程的詳細分析,論證了該方案符合安全性需求且能應對各種安全攻擊手段。試驗結果表明,該方案相較于其他相關方案,有更低的計算開銷和通信開銷,故對于大多數低計算量和低通信量的車聯網設備具有更高的適用性。