章嘉彥,李 飛,李如翔,李亞林,宋佳琦,周啟揚
(成都信息工程大學(xué)網(wǎng)絡(luò)空間安全學(xué)院,成都 610225)
近年來,隨著汽車行業(yè)的不斷發(fā)展,汽車與互聯(lián)網(wǎng)技術(shù)開始相結(jié)合,形成了車聯(lián)網(wǎng)。車聯(lián)網(wǎng)的構(gòu)建,除了互聯(lián)網(wǎng)技術(shù),還須借助于各種傳感器技術(shù)、無線通信技術(shù)和自動控制技術(shù)等。由于上述技術(shù)存在著不安全性,使車聯(lián)網(wǎng)中的車輛節(jié)點比傳統(tǒng)網(wǎng)絡(luò)中的網(wǎng)絡(luò)節(jié)點面臨著更多不安全的因素,例如,Douceur提出的Sybil攻擊[1],在這種攻擊中由于實體缺少身份認證,使一個實體可表現(xiàn)出多重身份而可能對系統(tǒng)進行惡意控制,進而造成嚴(yán)重的交通事故。Thing等[2]提出的In-Vehicle Spoofing攻擊,由于對相應(yīng)設(shè)備缺乏身份認證,使對手可能通過用非法的模塊組件來代替合法的車內(nèi)模塊組件以至于車輛在進行操作時通過注入惡意的信息從而達到對車輛整體的控制,導(dǎo)致重大事故的發(fā)生。2013年在拉斯維加斯的黑客大會上,著名的白帽黑客博士Miller和Valasek通過一定方式對一輛處于高速行駛狀態(tài)下的豐田普銳斯發(fā)起攻擊,使車輛在高速行駛時發(fā)生制動失靈或突然制動等異常行為[3]。2014年在黑帽子大會上Miller和Valasek公布了一份市場上針對20余款汽車車型的信息安全評估所提出的報告,同年國內(nèi)的奇虎360車聯(lián)安全評估小組也首次公布特斯拉汽車所對應(yīng)的汽車應(yīng)用程序所存在的響應(yīng)安全漏洞,黑客可通過該漏洞對汽車執(zhí)行遠程控制并對車輛進行解鎖、閃光和在車輛處于駕駛的狀態(tài)下開啟天窗等操作,同時360團隊還通過毫米波雷達和超聲波雷達來實現(xiàn)對自動駕駛汽車的欺騙操作[4-8],同樣被世界公認為汽車安全元年的2015年也先后發(fā)生多起汽車被攻擊的事件,如雪佛蘭系列車型的車載診斷系統(tǒng)(OBD)漏洞使黑客能通過手機短信獲得對應(yīng)車型的最高權(quán)限以此來對汽車控制指令進行修改。Samy Kamkar也利用安吉星對4家車企的所對應(yīng)的車聯(lián)網(wǎng)APP進行控制,從而獲得對應(yīng)車輛網(wǎng)上所有用戶的具體信息[3]。另外由于車聯(lián)網(wǎng)是無中心節(jié)點網(wǎng)絡(luò)且沒有對應(yīng)的體系架構(gòu),加上車輛自身的計算資源有限[9],也使成熟的傳統(tǒng)網(wǎng)絡(luò)防御方案不能應(yīng)用在車聯(lián)網(wǎng)當(dāng)中[10]。
針對上面車聯(lián)網(wǎng)所面臨的威脅和其自身架構(gòu)特殊問題,許多學(xué)者和研究人員提出了許多對應(yīng)的安全解決方案,其中身份認證作為外來用戶進行車聯(lián)網(wǎng)的第一道“防火墻”,是整個車聯(lián)網(wǎng)系統(tǒng)通過利用特定的加密體系對于操作實體進行身份有效性和合法性認證;從而確定其是否有權(quán)限訪問對應(yīng)的相關(guān)資源,最終能很好地實現(xiàn)對系統(tǒng)資源的訪問控制和對應(yīng)的權(quán)限管理,防止黑客冒充合法用戶對整個網(wǎng)絡(luò)系統(tǒng)發(fā)起攻擊[11]。因此,身份認證方案對應(yīng)加密體系的選擇對于整個車聯(lián)網(wǎng)系統(tǒng)的安全性扮演著至關(guān)重要的角色。目前普遍利用公鑰基礎(chǔ)設(shè)施(public key infrastructure,PKI)技術(shù)[12]來實現(xiàn)實體完整性和合法性的驗證,借助于公鑰基礎(chǔ)設(shè)施技術(shù),車聯(lián)網(wǎng)中的車輛可方便地與通信運營服務(wù)商(telemetics service provider,TSP)和其他車聯(lián)網(wǎng)的通信單元進行可信交互,防止雙方身份假冒和通信信息篡改[13-16]。
RSA是目前使用最廣泛的一種公鑰加密算法,其常用密鑰長度在1 024-4 096 bit之間,其計算對所需軟硬件的能力提出了更高的要求;與RSA相似,另一種公鑰加密算法,即數(shù)字簽名算法(digital signature algorithm,DSA)密鑰長度在512-2 048 bit之間,被視為是安全、可以接受的;橢圓曲線加密算法(elliptic curve cryptography,ECC),其密鑰長度在106-210 bit之間。由于汽車自身計算能力和存儲能力有限,使RSA和DSA算法在汽車身份認證領(lǐng)域中的應(yīng)用變得不現(xiàn)實。現(xiàn)有研究中常見公鑰加密體系對比如表1所示[17]。

表1 ECC、DSA和RSA安全等級的比較
近年來隨著國內(nèi)于2004年研制成功基于ECC的SM2國標(biāo)加密算法,并于2012年3月將其規(guī)定為我國商用密碼標(biāo)準(zhǔn);與RSA相比,基于ECC的公鑰加密體系密鑰長度短、存儲空間需求小、傳輸帶寬低和所需邏輯門電路數(shù)量少[18],開始逐漸獲得國人的關(guān)注和廣泛的應(yīng)用,其性能對比如表2所示。

表2 ECC、RSA加密體系的比較
由于汽車本身的計算資源較少,無法應(yīng)付大計算量的計算,故本文中提出了一種基于ECC的公鑰加密體系,并將其應(yīng)用到智能網(wǎng)聯(lián)車升級系統(tǒng)中,以期在升級過程中能很好地抵御攻擊,并有效保證數(shù)據(jù)包的完整性和發(fā)送方的合法認證。
車聯(lián)網(wǎng),其通信場景主要由車—車、車—路、車—人和車—云4部分組成,其具體通信場景如圖1所示。

圖1 車聯(lián)網(wǎng)通信場景示意圖
車聯(lián)網(wǎng)中的汽車節(jié)點由于自身具有一定的計算與存儲能力,所以車聯(lián)網(wǎng)又可被稱為車載自組織網(wǎng)絡(luò)(vehicular ad-hoc network,VANET),車聯(lián)網(wǎng)通信場景中的節(jié)點由于具有高速移動性和瞬時性,所以車聯(lián)網(wǎng)的網(wǎng)絡(luò)拓撲動態(tài)性較強。車聯(lián)網(wǎng)的身份認證體系常由以下部分組成。
(1)認證機構(gòu)(certificated authority,CA)
為確保車聯(lián)網(wǎng)組織架構(gòu)的正常運行,通常須引入第三方可信認證機構(gòu)CA,該認證機構(gòu)通過存儲對應(yīng)區(qū)域內(nèi)所有用戶的身份信息,并對其所屬區(qū)域的路側(cè)單元(road-side units,RSU)進行管理;能很好地實現(xiàn)對汽車與RSU交互真實性和完整性的保證。通常CA所須完成的是對區(qū)域內(nèi)RSU的管理和車輛節(jié)點加入時對其進行分發(fā)/撤銷證書的管理;CA通常保存有區(qū)域內(nèi)所有經(jīng)過認證車輛節(jié)點的具體信息,負責(zé)維護整個網(wǎng)絡(luò)拓撲范圍內(nèi)的通信安全。
(2)路側(cè)基礎(chǔ)單元
該設(shè)備通過無線通信的方式與車輛節(jié)點或CA進行信息的交互;在汽車到CA處進行注冊時,CA會將對應(yīng)的公共參數(shù)和其自身的數(shù)字證書(如ID信息、公私鑰對、身份信息和屬性信息等)加載到RSU的存儲模塊中;RSU在接收到路面行駛車輛所發(fā)送來的認證或服務(wù)信息時,通過內(nèi)部存儲模塊所存儲的公私鑰對和其計算模塊來實現(xiàn)對汽車的身份信息進行對應(yīng)的計算認證[19-20]。在通過合法性驗證后,RSU則會向?qū)?yīng)的汽車節(jié)點提供相應(yīng)的服務(wù)。每個RSU都歸屬于區(qū)域內(nèi)的CA進行管理。設(shè)定RSU,大大降低了CA的通信負載量。
(3)車載單元(on-board units,OBU)
每輛汽車上都裝有一個OBU,用來存儲其對應(yīng)的數(shù)字證書(如ID信息、公私鑰對、身份信息和屬性信息等),然后汽車在行駛時利用OBU中存儲每輛車的數(shù)字證書和對應(yīng)的通信協(xié)議來實現(xiàn)與RSU的數(shù)據(jù)交換。目前基于車聯(lián)網(wǎng)的通信協(xié)議通常是采用802.11p的專用短距離通信技術(shù)(dedicated short range communications,DSRC)和車間通信長期演進(long term evolution-vehicle,LTE-V)來實現(xiàn)。
本文中所使用的公式參數(shù)和車輛相關(guān)詳細參數(shù)定義如表3所示。

表3 方案中所用符號
CA負責(zé)生成系統(tǒng)參數(shù),選定一個大素數(shù)p,F(xiàn)p為階為p的一個有限域;CA在有限域上定義一個橢圓曲線 c,其中曲線方程為 y2=x2+ax+b(mod p),選擇參數(shù) a,b,x,y∈Fp,且 a與 b要滿足 4a3+27b2≠0(mod p);E為域Fp的所有有理點所構(gòu)成的加法群,n為該加法群的階數(shù);G為橢圓曲線的基點,并選擇兩個安全的 Hash函數(shù) H1{0,1}→Z*;H2{0,1}→Z*。CA會隨機選取r∈[1,p-1]作為自己的私鑰,并計算Ppub=r·G作為自己的公鑰;最后,CA會公布自己的參數(shù){E,n,Ppub,G,H1,H2},并將該參數(shù)分發(fā)至對應(yīng)的路邊單元RSU中。
CA通過安全的通信協(xié)議為其管理區(qū)域的每個RSU分配對應(yīng)的公私鑰對:Sr=r·H1(IDr)和 Pr=r·G·H1(IDr),并以廣播的形式對外公布其參數(shù)。
由于汽車在與RSU或其他汽車進行通信之前,須使用相應(yīng)的公鑰數(shù)字證書認證后才能完成相應(yīng)的通信過程,而公鑰數(shù)字證書是由CA頒發(fā)的,所以下面分別對汽車的參數(shù)初始化過程及其與CA之間的交互認證過程進行描述,如圖2所示。

圖2 汽車初始化認證
(1)汽車→CA
Engv||Pv-pub||IDEng||TS1:車輛在行駛之前需要到CA處進行注冊;通過下載到對應(yīng)CA的參數(shù)。在對應(yīng)有限域Fp上隨機的選取一個素數(shù)s∈[1,p-1]作為自己的私鑰,并在有限域上Fp選擇對應(yīng)的一個基點G′,通過計算Pv-pub=s·G′來生成汽車對應(yīng)的公鑰,并計算IDEng=Es[H1(Engv)]。此時,汽車將自己的發(fā)動機號Engv、自己的公鑰Pv-pub、臨時汽車身份標(biāo)識IDEng和一個時間戳TS1通過安全的信道發(fā)送給CA。
(2)CA→汽車
EPv[RIDv||Certv||Ksession||TS2]:CA首先驗證Tsec-TS1<ΔT,其中 Tsec為消息接收到的時間,ΔT為對應(yīng)車聯(lián)網(wǎng)中最大的傳輸時延。若驗證通過,CA利用H1對汽車的發(fā)動機號進行計算,若比較H1(Engv)與IDEng相等,則根據(jù)對汽車的發(fā)動機號進行計算 RIDv=H2(Pv-pub‖Engv),生成汽車的真實身份RIDv。CA生成對應(yīng)的臨時簽名密鑰z并用相應(yīng)的參數(shù)進行簽名運算Signv來生成對應(yīng)汽車的數(shù)字證書,同時生成一個會話密鑰Ksession,然后用自己的私鑰r對證書進行加密,連同時間戳TS2發(fā)送給對應(yīng)的汽車。
(3)汽車接收到CA消息并對消息進行驗證
汽車在接收到來自CA的消息后,會使用自己的私鑰對消息解密,并對消息中包含的時間戳TS2進行驗證計算。通過驗證后,汽車用CA的公鑰對簽名信息解密,獲得會話密鑰Ksession;并對簽名消息進行有效性驗證;驗證通過后存儲相應(yīng)的證書、會話密鑰Ksession和車輛的真實身份RIDv。
汽車在進行對應(yīng)RSU所屬區(qū)域時,若需獲得對應(yīng)區(qū)域的服務(wù)時,須與區(qū)域內(nèi)的RSU進行通信來進行消息的交互。在通信之前先需要與RSU進行如下的身份認證過程,如圖3所示。

圖3 汽車與RSU之間的認證過程
(1)汽車→RSU
RIDv||Pv-pub||Certv||TS1:汽車進行對應(yīng) RSU所管轄的區(qū)域內(nèi),先將由CA所頒發(fā)的RIDv、自己的公鑰Pv-pub、相應(yīng)的證書Certv和時間戳TS1發(fā)送給對應(yīng)的RSU。
(2)RSU→CA
RIDv||Certv||Pv-pub||Pr||TS2:對應(yīng)的 RSU在接收到對應(yīng)汽車A所發(fā)送過來的認證消息后,首先驗證時間戳TS1是否滿足可接受時延以抵抗重放攻擊,驗證通過后,RSU會將汽車的RIDv、CA簽發(fā)的證書Certv、汽車公鑰Pv-pub、時間戳TS2和自己的公鑰Pr發(fā)送給CA。
(3)CA→RSU
EPr[Pv-pub||Pr||Ksession||Certv||RIDv||TS3||EPv-pub(Pr||Ksession||Certv)]:CA接收到由 RSU所發(fā)送過來的數(shù)據(jù)包后,首先驗證時間戳TS2是否滿足可接受時延以抵抗重放攻擊,驗證通過后,CA會對汽車的身份RIDv和證書Certv的有效性進行驗證,驗證通過后,CA會產(chǎn)生一個會話密鑰Ksession,生成對應(yīng)的數(shù)據(jù)包:EPr[Pv-pub||Pr||Ksession||Certv||RIDv||TS3||EPv-pub(Pr||Psession||Certv)]發(fā)送給 RSU。
(4)RSU→汽車
EPv-pub(Pr||TS4||Ksession||Certv):RSU在接收到CA發(fā)來的消息后,用自己的私鑰解密數(shù)據(jù)包,首先驗證時間戳TS3是否滿足可接受時延以抵抗重放攻擊,通過驗證后完成了RSU對于汽車的認證,并將對應(yīng)的 Kv-pub、Ksession、RIDv和 Certv進行保存,并將EPv-pub(Pr||TS4||Ksession||Certv)轉(zhuǎn)發(fā)給汽車。
(5)汽車接收到RSU消息并對消息進行驗證
汽車接收到RSU發(fā)來的數(shù)據(jù)包后,首先驗證時間戳TS4是否滿足可接受時延以抵抗重放攻擊,驗證通過后用自己的私鑰對數(shù)據(jù)包進行解密,獲取到RSU的公鑰 Pr和對應(yīng)的會話密鑰 Ksession,完成對RSU的認證。
汽車之間的通信認證過程如圖4所示。

圖4 汽車之間的通信認證過程
(1)汽車A→汽車B
PA||TS1||Certv:汽車 A與 B之間進行通信時,首先需要到CA處下載對應(yīng)的系統(tǒng)參數(shù),通過選定一隨機數(shù)sA做為自己的私鑰,并計算PA=sA·G作為自己的公鑰,而消息發(fā)送方的汽車A通過將自己的公鑰PA、時間戳TS1和由CA所頒發(fā)的證書Certv發(fā)送給消息接收方的汽車B。
(2)汽車B→汽車A
PB||TS2||Certv:汽車 B同時也通過利用 CA獲得對應(yīng)的系統(tǒng)參數(shù),在接收到來自汽車A所發(fā)來的信息時,首先驗證是否滿足Tsec-TS1<ΔT,驗證通過后汽車B通過使用CA的公鑰Ppub對證書的有效性進行驗證。在通過驗證后,汽車B將汽車A的公鑰PA進行保存,同時按照步驟(1)生成自己的私鑰sB和對應(yīng)公鑰PB,然后將自己的公鑰PB、時間戳TS2和由CA所頒發(fā)的證書Certv發(fā)送給汽車A。
(3)汽車A→汽車B
Es-A[EPs(M)||K]||TS3:汽車 A接收到來自汽車B所發(fā)送的信息后,同樣首先驗證是否滿足Tsec-TS2<ΔT,驗證通過后使用CA的公鑰Ppub對證書的有效性進行驗證,通過驗證后汽車A會將汽車B的公鑰PB進行保存。在汽車A需要發(fā)送消息M給對應(yīng)的車輛時,利用協(xié)商好的摘要函數(shù)和會話密鑰生成算法分別計算消息M的摘要值和生成對應(yīng)的會話密鑰Ksession;本文中采用的是MD5算法計算其摘要值m:m=Hash(M),并用會話密鑰對消息M進行加密,然后用自己的私鑰對會話密鑰和摘要值進行加密;最后將加密后的數(shù)據(jù)包和時間戳TS3發(fā)送給汽車B。
(4)汽車B→汽車A
Es-B[E||TS4]:汽車 B接收到來自汽車 A發(fā)送的消息后,先驗證是否滿足Tsec-TS3<ΔT,通過驗證后,利用約定好的會話密鑰生成算法生成對應(yīng)的會話密鑰Ksession,利用汽車A的公鑰PA和會話密鑰Ksession對消息進行解密,獲取消息實體M和摘要值m,汽車B同樣利用MD5算法對消息進行計算,將結(jié)果與摘要值m進行計算,若相等,則接受消息M并回復(fù)汽車A以一個答復(fù)E和時間戳TS4,其中E=Es-B[Ack]。
(5)汽車A接收到汽車B的消息并對消息進行驗證
汽車A接收到汽車B發(fā)送的消息后,用汽車B的公鑰PB解密消息,先驗證是否滿足Tsec-TS4<ΔT,通過驗證后獲得確認答復(fù)。完成消息的傳輸過程。
綜上所述,基于ECC的公鑰加密體系利用完全指數(shù)級的運算實現(xiàn)了在密鑰長度較短的情況下達到與當(dāng)前所流行的RSA公鑰加密體系同樣的安全等級。為驗證實驗是否達到預(yù)期,在某汽車的車載遠程信息處理器(telematics box,T-Box)中進行了相應(yīng)的加密時間評估實驗。
由實驗結(jié)果可知,在RSA加密體系下要實現(xiàn)與ECC相同的安全等級,由于密鑰長度過大,需要花費6 s的加密時間;而用ECC來實現(xiàn)對應(yīng)同樣安全等級由于所需的密鑰長度較短,所以其加密時間僅為1.1 s;可知用ECC來實現(xiàn)加密認證時間比RSA公鑰加密體系更容易被用戶所接受。此外,通過利用信息摘要技術(shù),能有效保證數(shù)據(jù)的完整性和有效性,并抵御篡改攻擊和偽造攻擊等;同時,為每條信息加上時間戳,能有效抵抗重返攻擊等常見攻擊。總之,將基于ECC的公鑰加密體系應(yīng)用于車聯(lián)網(wǎng)中,能實現(xiàn)以較高的效率和速率完成身份認證過程,并能很好地應(yīng)對車聯(lián)網(wǎng)中常見的攻擊。
隨著車聯(lián)網(wǎng)的普及,它在給人們帶來方便和舒適的同時,也給人們帶來了極大的安全隱患。因此車聯(lián)網(wǎng)用戶的合法性越來越受到汽車使用者的關(guān)注,基于本文所提出的基于ECC的車聯(lián)網(wǎng)身份認證技術(shù),能以較高的安全性保證汽車通信雙方的合法性,同時也能在一定程度上解決車聯(lián)網(wǎng)中常見的假冒攻擊和重放攻擊等其他攻擊。既保證了通信雙方的合法性,又保障了汽車使用者的生命安全。