唐 良 李逸瀚 石 春 秦琳琳 吳 剛
(中國(guó)科學(xué)技術(shù)大學(xué)信息科學(xué)技術(shù)學(xué)院自動(dòng)化系 安徽 合肥 230026)
電動(dòng)汽車(chē)信息安全網(wǎng)關(guān)的設(shè)計(jì)與實(shí)現(xiàn)
唐 良 李逸瀚 石 春 秦琳琳 吳 剛
(中國(guó)科學(xué)技術(shù)大學(xué)信息科學(xué)技術(shù)學(xué)院自動(dòng)化系 安徽 合肥 230026)
車(chē)聯(lián)網(wǎng)的應(yīng)用和發(fā)展是汽車(chē)技術(shù)發(fā)展的趨勢(shì)。車(chē)聯(lián)網(wǎng)在提高車(chē)輛性能以及提供高效便利服務(wù)的同時(shí)也給汽車(chē)帶來(lái)了信息安全隱患。針對(duì)車(chē)聯(lián)網(wǎng)對(duì)汽車(chē)的信息安全帶來(lái)的問(wèn)題,分析車(chē)聯(lián)網(wǎng)信息安全研究現(xiàn)狀,設(shè)計(jì)電動(dòng)汽車(chē)信息安全網(wǎng)關(guān)ISG(Information Security Gateway),實(shí)現(xiàn)了電動(dòng)汽車(chē)的控制器局域網(wǎng)CAN(Controller Area Network)與以太網(wǎng)的互連。在IP層上移植了IPSec(Internet Protocol Security)協(xié)議,對(duì)進(jìn)出CAN總線的數(shù)據(jù)信息進(jìn)行協(xié)議轉(zhuǎn)換、加/解密處理、完整性校驗(yàn),防止攻擊者竊聽(tīng)和篡改電動(dòng)汽車(chē)與外界的通信信息,也防止攻擊者通過(guò)入侵CAN總線來(lái)控制車(chē)輛的運(yùn)行。實(shí)驗(yàn)測(cè)試表明,電動(dòng)汽車(chē)信息安全網(wǎng)關(guān)從數(shù)據(jù)源認(rèn)證、數(shù)據(jù)完整性、數(shù)據(jù)機(jī)密性三個(gè)方面保障電動(dòng)汽車(chē)的信息安全。
車(chē)聯(lián)網(wǎng) 信息安全 IPSec 完整性校驗(yàn) 機(jī)密性
車(chē)聯(lián)網(wǎng)在政府的支持、汽車(chē)產(chǎn)商和科技公司的參與下發(fā)展迅猛,車(chē)聯(lián)網(wǎng)的發(fā)展帶來(lái)了許多新的汽車(chē)服務(wù)。電動(dòng)汽車(chē)在聯(lián)網(wǎng)的情況下,可以將車(chē)輛位置、車(chē)輛的基本數(shù)據(jù)以及運(yùn)行參數(shù)實(shí)時(shí)地發(fā)送到遠(yuǎn)程數(shù)據(jù)服務(wù)中心,有利于跟蹤電動(dòng)汽車(chē)零部件的故障狀態(tài),為汽車(chē)用戶提供及時(shí)的維修保養(yǎng)服務(wù);有利于分析電動(dòng)汽車(chē)零部件的故障原因以及下一代零部件產(chǎn)品的升級(jí)。隨著汽車(chē)智能化的不斷發(fā)展,車(chē)載軟件重要性的不斷提高,車(chē)載軟件故障率也不斷上升,高效的車(chē)載軟件維護(hù)方案越來(lái)越受到汽車(chē)用戶以及汽車(chē)產(chǎn)商的重視。由于車(chē)輛的分散性以及車(chē)載軟件嵌入式的特點(diǎn),車(chē)載軟件的后期維護(hù)升級(jí)問(wèn)題一直沒(méi)有得到很好的解決[1]。然而遠(yuǎn)程軟件維護(hù)更新可以很好地解決車(chē)載軟件維護(hù)升級(jí)的問(wèn)題。
車(chē)聯(lián)網(wǎng)在提高車(chē)輛性能以及提供便利服務(wù)的同時(shí)也給車(chē)輛帶來(lái)了信息安全隱患。攻擊者可以竊取甚至篡改車(chē)載終端與遠(yuǎn)程服務(wù)器之間的通信數(shù)據(jù),獲取車(chē)主的隱私信息、偷取汽車(chē)產(chǎn)商的商業(yè)數(shù)據(jù)、將惡意的軟件代碼灌入車(chē)載電控單元中。汽車(chē)聯(lián)網(wǎng)使得攻擊者可以通過(guò)無(wú)線網(wǎng)絡(luò)來(lái)攻擊汽車(chē),如K. Koscher等通過(guò)軟件代碼遠(yuǎn)程劫持汽車(chē),完成控制剎車(chē)、篡改儀表板讀數(shù)、開(kāi)關(guān)空調(diào)、控制門(mén)鎖等破壞性行為[2]。
車(chē)聯(lián)網(wǎng)帶來(lái)的信息安全問(wèn)題嚴(yán)重阻礙了車(chē)聯(lián)網(wǎng)的發(fā)展和應(yīng)用,研究車(chē)聯(lián)網(wǎng)環(huán)境下電動(dòng)汽車(chē)的信息安全問(wèn)題成為未來(lái)車(chē)聯(lián)網(wǎng)發(fā)展的關(guān)鍵。張文博等提出了借助可信第三方,采用匿名認(rèn)證過(guò)程,對(duì)通信雙方的身份進(jìn)行真實(shí)性的認(rèn)證,對(duì)通信平臺(tái)進(jìn)行有效性認(rèn)證,從而車(chē)聯(lián)網(wǎng)云僅為經(jīng)過(guò)認(rèn)證的車(chē)輛提供通信服務(wù)[3];D.Wampler等針對(duì)分析了CAN節(jié)點(diǎn)在CAN總線上收發(fā)數(shù)據(jù)的特點(diǎn),通過(guò)在CANopen之上建立安全協(xié)議棧,對(duì)部分重要CAN節(jié)點(diǎn)進(jìn)行身份認(rèn)證這種方式保護(hù)重要的CAN節(jié)點(diǎn)的通信[4];N.Ristanovic等通過(guò)構(gòu)建自適應(yīng)消息認(rèn)證機(jī)制,分析并證明了在車(chē)聯(lián)網(wǎng)環(huán)境下抵抗拒絕服務(wù)DoS攻擊的有效性[5]。
關(guān)于車(chē)聯(lián)網(wǎng)環(huán)境下信息安全問(wèn)題的研究很多,但是并沒(méi)有形成統(tǒng)一的安全通信標(biāo)準(zhǔn),也沒(méi)用成熟的信息安全產(chǎn)品,研發(fā)成熟車(chē)載信息安全產(chǎn)品對(duì)于在電動(dòng)汽車(chē)上應(yīng)用車(chē)聯(lián)網(wǎng)來(lái)說(shuō)刻不容緩。作為車(chē)載嵌入式產(chǎn)品,具有處理器性能偏低、存儲(chǔ)空間偏小、散熱供電能力不足的特點(diǎn),因此嵌入式產(chǎn)品的軟件代碼量應(yīng)盡量小,功耗盡量低[6]。μC/OS-II操作系統(tǒng)具有源碼開(kāi)發(fā)、內(nèi)核代碼小、可裁剪、移植簡(jiǎn)單、穩(wěn)定性高等特點(diǎn)[7],非常適合移植在嵌入式產(chǎn)品中。在此基礎(chǔ)上移植μC/TCP-IP協(xié)議,兼容性好,性能穩(wěn)定。IPSec協(xié)議是在網(wǎng)絡(luò)層實(shí)現(xiàn)信息安全的核心技術(shù)之一,它是一系列協(xié)議的一個(gè)集合,可以為IP層及上層協(xié)議提供完整性校驗(yàn)、數(shù)據(jù)內(nèi)容的機(jī)密性、數(shù)據(jù)源認(rèn)證以及抗重播攻擊等服務(wù)[8]。
本文研究設(shè)計(jì)了電動(dòng)汽車(chē)的信息安全網(wǎng)關(guān),首先對(duì)電動(dòng)汽車(chē)信息安全網(wǎng)關(guān)進(jìn)行總體架構(gòu)設(shè)計(jì),然后研究了μC/OS-II操作系統(tǒng)、μC/TCP-IP協(xié)議、IPSec協(xié)議的裁剪與移植,最后搭建實(shí)驗(yàn)環(huán)境對(duì)信息安全網(wǎng)關(guān)進(jìn)行功能測(cè)試,并分析測(cè)試結(jié)果。
1.1 電動(dòng)汽車(chē)信息安全架構(gòu)設(shè)計(jì)
電動(dòng)汽車(chē)的信息安全問(wèn)題主要產(chǎn)生于3個(gè)方面:一是攻擊者通過(guò)汽車(chē)的車(chē)載自動(dòng)診斷系統(tǒng)OBD(On-Board Diagnostics)物理上直接連入CAN總線,直接對(duì)CAN總線的信息進(jìn)行監(jiān)聽(tīng)和破壞;二是攻擊者通過(guò)無(wú)線局域網(wǎng)或者射頻技術(shù)連入車(chē)載信息系統(tǒng),然后通過(guò)車(chē)載信息系統(tǒng)竊聽(tīng)部分CAN信息或者破壞CAN總線;三是攻擊者通過(guò)移動(dòng)互聯(lián)網(wǎng)竊聽(tīng)、截?cái)?、篡改電?dòng)汽車(chē)與遠(yuǎn)程服務(wù)器交互的信息。本文設(shè)計(jì)實(shí)現(xiàn)的電動(dòng)汽車(chē)信息安全網(wǎng)關(guān)主要是針對(duì)后兩種情況設(shè)計(jì)的。圖1是電動(dòng)汽車(chē)的信息安全架構(gòu)。
電動(dòng)汽車(chē)的信息安全網(wǎng)關(guān)位于車(chē)內(nèi)CAN總線與車(chē)載信息系統(tǒng)之間。信息安全網(wǎng)關(guān)接收到電動(dòng)汽車(chē)CAN總線上發(fā)來(lái)的CAN幀后,取出CAN幀的數(shù)據(jù),將數(shù)據(jù)封裝為以太網(wǎng)幀,通過(guò)以太網(wǎng)發(fā)送給車(chē)載信息系統(tǒng),在數(shù)據(jù)從應(yīng)用層傳給MAC層的過(guò)程中,在IP層根據(jù)安全策略對(duì)數(shù)據(jù)進(jìn)行加密處理或者僅僅進(jìn)行完整性校驗(yàn)值計(jì)算。對(duì)從車(chē)載信息系統(tǒng)通過(guò)以太網(wǎng)發(fā)送給信息安全網(wǎng)關(guān)的數(shù)據(jù),信息安全網(wǎng)關(guān)在IP層根據(jù)安全策略對(duì)數(shù)據(jù)進(jìn)行解密或者完整性校驗(yàn),最后在應(yīng)用層得到數(shù)據(jù)后,將數(shù)據(jù)封裝為CAN幀,在CAN總線上將數(shù)據(jù)發(fā)給電動(dòng)汽車(chē)。通過(guò)在IP層的安全策略保障電動(dòng)汽車(chē)的信息安全。
1.2 硬件架構(gòu)設(shè)計(jì)
微控制器R5F562N8BDFP是瑞薩公司推出的144引腳的32位高性能MCU,擁有96 KB的RAM以及512 KB的ROM,內(nèi)部集成了包括以太網(wǎng)控制器、SPI控制器、CAN控制器等多種通信控制器,功能強(qiáng)大。圖2是電動(dòng)汽車(chē)信息安全網(wǎng)關(guān)的硬件結(jié)構(gòu)圖。
圖2 信息安全網(wǎng)關(guān)硬件結(jié)構(gòu)圖
電動(dòng)汽車(chē)信息安全網(wǎng)關(guān)R5F562N8BDFP微控制器為核心,外擴(kuò)了256 KB的SRAM,主要包括以太網(wǎng)模塊、CAN模塊、LCD模塊。其中以太網(wǎng)模塊和CAN模塊是實(shí)現(xiàn)信息安全網(wǎng)關(guān)功能的基礎(chǔ),主要包括μC/OS-II操作系統(tǒng)、μC/TCP-IP協(xié)議的移植以及建立CAN幀接收任務(wù)。
2.1 軟件總體設(shè)計(jì)
嵌入式產(chǎn)品上移植操作系統(tǒng)是很多嵌入式產(chǎn)品發(fā)展的趨勢(shì),在嵌入式產(chǎn)品上移植操作系統(tǒng)有利于對(duì)嵌入式產(chǎn)品的資源進(jìn)行更好的調(diào)度,有利于未來(lái)在已研發(fā)的嵌入式產(chǎn)品上實(shí)現(xiàn)新的功能。電動(dòng)汽車(chē)信息安全網(wǎng)關(guān)以μC/OS-II操作系統(tǒng)為基礎(chǔ),實(shí)現(xiàn)嵌入式以太網(wǎng)通信功能以及CAN通信功能,在IP層上實(shí)現(xiàn)安全策略。軟件總計(jì)架構(gòu)如圖3所示。
圖3 信息安全網(wǎng)關(guān)軟件架構(gòu)
如圖3所示,移植μC/OS-II操作系統(tǒng)主要針對(duì)R5F562N8BDFP微控制器實(shí)現(xiàn)操作系統(tǒng)提供的硬件接口,主要包括類型定義、中斷處理、任務(wù)切換、任務(wù)棧初始化、定時(shí)處理等5個(gè)部分。
類型定義主要是針對(duì)具體的編譯器定義數(shù)據(jù)類型;中斷處理是指實(shí)現(xiàn)中斷發(fā)生時(shí)保存上下文,進(jìn)行中斷函數(shù)處理,中斷處理完成之后進(jìn)行任務(wù)調(diào)度;任務(wù)切換主要是指任務(wù)級(jí)的任務(wù)調(diào)度功能,是通過(guò)一條軟中斷指令來(lái)實(shí)現(xiàn)任務(wù)切換;任務(wù)棧初始化時(shí)針對(duì)具體的MCU編寫(xiě)任務(wù)堆棧初始化函數(shù)OSTaskStkInit();定時(shí)處理主要是指設(shè)置時(shí)鐘節(jié)拍以及實(shí)現(xiàn)匯編函數(shù)OSTickISR。
實(shí)現(xiàn)嵌入式以太網(wǎng)通信的功能主要是移植μC/TCP-IP協(xié)議,包括網(wǎng)絡(luò)設(shè)備支持包的開(kāi)發(fā)、MAC驅(qū)動(dòng)程序的開(kāi)發(fā)、PHY驅(qū)動(dòng)程序的開(kāi)發(fā)。網(wǎng)絡(luò)設(shè)備支持包的開(kāi)發(fā)主要是對(duì)net_bsp.*和net_isr.*的開(kāi)發(fā),包括初始化與以太網(wǎng)模塊有關(guān)的引腳,用匯編語(yǔ)言編寫(xiě)以太網(wǎng)中斷函數(shù)NetNIC_ISR。以太網(wǎng)控制器通過(guò)串行管理接口SMI(Serial Management Interface)讀取和控制PHY控制器,從而獲得PHY的狀態(tài)以及控制PHY控制器[9]。
以太網(wǎng)幀的接收流程:以太網(wǎng)控制器辨認(rèn)出以太網(wǎng)幀的目的地址是廣播地址或者與自己的地址相同,產(chǎn)生接收中斷。在中斷處理函數(shù)中將釋放接收以太網(wǎng)幀信號(hào)量來(lái)喚醒μC/OS-II操作系統(tǒng)中的以太網(wǎng)幀接收任務(wù),接收任務(wù)根據(jù)以太網(wǎng)幀的大小申請(qǐng)合適大小的緩沖區(qū)從EDMAC接收緩沖區(qū)中取走以太網(wǎng)幀,然后將數(shù)據(jù)供上層處理。
2.2 CAN模塊軟件設(shè)計(jì)
CAN模塊軟件主要分為2部分,CAN驅(qū)動(dòng)模塊以及上層應(yīng)用模塊。
CAN驅(qū)動(dòng)模塊主要是初始化CAN模塊,包括引腳配置、CAN模塊使能、波特率設(shè)置、中斷設(shè)置、信箱設(shè)置等。
上層應(yīng)用是指CAN幀處理任務(wù)。CAN幀接收流程如圖4所示。
圖4 CAN幀接收流程
當(dāng)產(chǎn)生CAN幀接收中斷時(shí),進(jìn)入CAN幀中斷處理函數(shù)(1);CAN幀中斷處理函數(shù)調(diào)用ReadCanMessage()將CAN幀數(shù)據(jù)從郵箱中取出(2),然后將取出的CAN幀數(shù)據(jù)存入Buffer隊(duì)列中(3),之后在中斷處理函數(shù)中調(diào)用CANOS_PostRXSig()釋放CAN幀接收信號(hào)量(4);上層應(yīng)用調(diào)用CAN幀接收函數(shù),在CAN幀接收函數(shù)中,首先調(diào)用CANOS_PendRXSig()等待CAN幀接收信號(hào),如果CAN幀接收信號(hào)量有效,那么將CAN幀接收信號(hào)量減1(5),并從Buffer隊(duì)列中讀取CAN幀供上層應(yīng)用處理(6)。
2.3 安全策略模塊
安全策略模塊是通過(guò)在IP層上移植IPSec協(xié)議實(shí)現(xiàn)。主要思想將IPSec作為一個(gè)“鍥子”,插到IP層與數(shù)據(jù)鏈路層之間[10]。主要是通過(guò)ipsecdev_input()和ipsecdev_out()兩個(gè)函數(shù)函數(shù)來(lái)實(shí)現(xiàn)。
圖5是IPSec的體系結(jié)構(gòu)。主要包括:AH(證頭)、ESP(封裝安全載荷)、IKE(Internet密鑰交換)、ISKAMP/Oakley以及轉(zhuǎn)碼。IPSec包含2個(gè)數(shù)據(jù)庫(kù):一個(gè)是安全策略數(shù)據(jù)庫(kù)SPD(Security Policy Database);一個(gè)是安全關(guān)聯(lián)數(shù)據(jù)庫(kù)SAD(Security Association Database)。IPSec模塊對(duì)數(shù)據(jù)的處理分為ESP和AH兩種。
圖5 IPSec體系架構(gòu)
SPD主要負(fù)責(zé)對(duì)進(jìn)出IPSec模塊的流量進(jìn)行區(qū)分,指明為這些流量提供何種以及什么形式的服務(wù)[11],主要有APPLY(使用IPSec機(jī)制處理數(shù)據(jù))、BYPASS(直接將數(shù)據(jù)報(bào)傳給下層協(xié)議)、DISCARD(丟棄該流量數(shù)據(jù))。SAD主要為對(duì)需要保護(hù)的流量提供具體的安全保護(hù)策略,是ESP協(xié)議還是AH協(xié)議以及用何種加密算法等。AH主要是為IP數(shù)據(jù)包提供數(shù)據(jù)源驗(yàn)證,數(shù)據(jù)完整性驗(yàn)證以及有限的、可選的抗重放服務(wù)。ESP主要是為IP數(shù)據(jù)包提供無(wú)連接的數(shù)據(jù)完整性、數(shù)據(jù)源驗(yàn)證、數(shù)據(jù)機(jī)密性以及有限的數(shù)據(jù)流機(jī)密性保護(hù)。
1) 發(fā)送數(shù)據(jù)
對(duì)于任何從IP層向數(shù)據(jù)鏈路層發(fā)送的流量,都會(huì)調(diào)用ipsecdev_out()對(duì)數(shù)據(jù)包進(jìn)行處理,處理流程如圖6所示。
圖6 發(fā)送數(shù)據(jù)包處理流程
對(duì)于從IP層發(fā)往數(shù)據(jù)鏈路層的數(shù)據(jù)包,首先進(jìn)行SPD查找,如果是BYPASS策略,那么直接將數(shù)據(jù)發(fā)往數(shù)據(jù)鏈路層。如果是DISCARD策略,那么丟棄該數(shù)據(jù)包;如果是APPLY策略,那么進(jìn)行SAD查找,如果沒(méi)有找到對(duì)于的SAD,直接丟棄該數(shù)據(jù)包;如果是應(yīng)用ESP處理機(jī)制,那么根據(jù)SAD中的處理算法(3DES算法)、密鑰、模式(使用隧道模式,整個(gè)IP包作為載荷進(jìn)行加密)對(duì)數(shù)據(jù)包進(jìn)行加密;如果是應(yīng)用AH處理機(jī)制,那么根據(jù)SAD中的處理算法(HMAC-MD5-96)、密鑰、模式(隧道模式)計(jì)算數(shù)據(jù)包的消息認(rèn)證碼(Message Authentication Code,MAC),并添加AH頭部信息;最后將經(jīng)過(guò)ESP或者AH機(jī)制處理過(guò)的數(shù)據(jù)包發(fā)送給數(shù)據(jù)鏈路層。
ESP封裝數(shù)據(jù)包處理流程:
(1) 檢查IP頭部的TTL字段是否為0,如果為0,丟棄此數(shù)據(jù)包,并返回。
(2) 因?yàn)槭褂玫氖?DES[12]塊加密算法,要求每一個(gè)加密塊是64 bit,載荷數(shù)據(jù)長(zhǎng)度必須為8字節(jié)的整數(shù)倍,這一步需要檢查載荷數(shù)據(jù)長(zhǎng)度,對(duì)于長(zhǎng)度不足的數(shù)據(jù)需要在原有效載荷后面填充數(shù)據(jù),并將填充的數(shù)據(jù)長(zhǎng)度放在有效載荷后面,然后再添加下一個(gè)協(xié)議的協(xié)議號(hào)(由于使用隧道模式,下一個(gè)協(xié)議一定為IP協(xié)議,協(xié)議號(hào)為0x04)。
(3) 根據(jù)SA中設(shè)置的規(guī)則對(duì)載荷數(shù)據(jù)進(jìn)行加密處理,之后將IV(初始化向量)值放到加密數(shù)據(jù)前面。
(4) 添加ESP頭,包括SPI(Security Parameter Index,安全參數(shù)索引)和一個(gè)序列號(hào)。
(5) 根據(jù)SA查詢是否要計(jì)算ICV(Integrity Checking Value,完整性校驗(yàn)值),如果要計(jì)算,進(jìn)行完整性校驗(yàn)計(jì)算。
(6) 重構(gòu)IP頭,并返回重構(gòu)IP數(shù)據(jù)包的首地址以及長(zhǎng)度信息。
(7) 更新pbuf(用來(lái)存儲(chǔ)從應(yīng)用層到MAC層的數(shù)據(jù))數(shù)據(jù)結(jié)構(gòu)。
AH封裝數(shù)據(jù)包處理流程:
(1) 構(gòu)建AH頭,包括下一個(gè)協(xié)議的協(xié)議號(hào)、載荷長(zhǎng)度、SPI、序列號(hào)等參數(shù)。AH頭和原IP數(shù)據(jù)包之間空留了12個(gè)字節(jié),用來(lái)存放將要計(jì)算得到的ICV。
(2) 在AH頭部前構(gòu)建新的IP頭,主要是設(shè)置版本、數(shù)據(jù)長(zhǎng)度、ID號(hào)、源IP地址、目的IP地址、下一個(gè)協(xié)議等不變字段,其他在網(wǎng)絡(luò)傳輸過(guò)程中會(huì)發(fā)生變化的IP頭字段均初始化為0。
(3) 根據(jù)HMAC-MD5-96算法計(jì)算ICV值,并將其填入AH頭和原IP頭之間的驗(yàn)證數(shù)據(jù)區(qū)。
(4) 設(shè)置新IP頭初始化為0的字段的信息,返回新IP包的首地址以及長(zhǎng)度,更新pbuf數(shù)據(jù)結(jié)構(gòu)。
2) 接收數(shù)據(jù)
對(duì)任何從數(shù)據(jù)鏈路層發(fā)往IP層的數(shù)據(jù)包,都會(huì)調(diào)用ipsecdev_input()函數(shù)對(duì)數(shù)據(jù)包進(jìn)行處理。處理流程如圖7所示。
圖7 接收數(shù)據(jù)包處理流程圖
(1) 通過(guò)IP頭部的下一個(gè)協(xié)議號(hào)判斷此數(shù)據(jù)包是否是ESP數(shù)據(jù)包或者AH數(shù)據(jù)包。
(2) 如果不是,進(jìn)入SPD查找,查找結(jié)果為該流量是BYPASS策略,那么直接將數(shù)據(jù)包發(fā)往IP層;否則丟棄數(shù)據(jù)包。
(3) 如果是ESP數(shù)據(jù)包或者AH數(shù)據(jù)包,那么進(jìn)行SAD查找。如果沒(méi)有找到對(duì)應(yīng)的SA,那么丟棄此數(shù)據(jù)包。如果成功查找到SA,進(jìn)進(jìn)行模式,協(xié)議的檢查。
(4) 如果協(xié)議值為SA中確定的AH協(xié)議,那么對(duì)數(shù)據(jù)包進(jìn)行AH檢查;如果協(xié)議值為SA中確定的ESP協(xié)議,那么對(duì)數(shù)據(jù)包進(jìn)行ESP解封。否則丟棄此數(shù)據(jù)包。
(5) 數(shù)據(jù)包經(jīng)過(guò)AH或者ESP機(jī)制處理之后,需要處理之后的數(shù)據(jù)包進(jìn)行SPD檢查。
(6) 如果SPD的策略為APPLY且SPD中對(duì)的SA就是步驟(3)中的SA,那么修改pbuf數(shù)據(jù)結(jié)構(gòu)之后將IP包發(fā)往IP層。否則,丟棄此數(shù)據(jù)包。
3.1 測(cè)試環(huán)境搭建
測(cè)試所需硬件:2個(gè)嵌入式硬件平臺(tái)、路由器一臺(tái)、PC機(jī)一臺(tái)、USBCAN一個(gè)。硬件物理連接圖如圖8所示。
圖8 測(cè)試環(huán)境硬件連接圖
2個(gè)嵌入式硬件平臺(tái):一個(gè)是要測(cè)試的電動(dòng)汽車(chē)信息安全網(wǎng)關(guān)(圖8中的嵌入式平臺(tái)A),另一個(gè)模擬車(chē)載信息系統(tǒng)(圖8中的嵌入式平臺(tái)B)。
PC機(jī)用來(lái)模擬電動(dòng)汽車(chē),通過(guò)運(yùn)行在PC機(jī)上的Ecantools軟件給電動(dòng)汽車(chē)信息安全網(wǎng)關(guān)發(fā)送CAN幀,以此來(lái)模擬電動(dòng)汽車(chē)CAN總線往信息安全網(wǎng)關(guān)發(fā)送的CAN數(shù)據(jù)。
主要步驟:
(1) 如圖8連接各硬件設(shè)備,運(yùn)行2個(gè)嵌入式硬件平臺(tái),讓其獲得IP地址。
(2) 在PC機(jī)上運(yùn)行Ecantools軟件,向信息安全網(wǎng)關(guān)發(fā)送CAN幀。
(3) 在HEW開(kāi)發(fā)環(huán)境中斷點(diǎn)調(diào)試軟件代碼,觀察數(shù)據(jù)包進(jìn)入IPSEC模塊前后的變化。
(4) 數(shù)據(jù)包傳到車(chē)載信息系統(tǒng),經(jīng)過(guò)IPSEC模塊在LCD屏上顯示出來(lái)。
3.2 功能測(cè)試
以太網(wǎng)通信測(cè)試:
以太網(wǎng)通信功能是實(shí)現(xiàn)電動(dòng)汽車(chē)信息安全的前提功能之一。圖9和圖10為信息安全網(wǎng)關(guān)與PC機(jī)進(jìn)行以太網(wǎng)通信的測(cè)試結(jié)果。
圖9 PC機(jī)通過(guò)TCP/IP助手發(fā)送的數(shù)據(jù)
圖10 信息安全網(wǎng)關(guān)接收的數(shù)據(jù)
測(cè)試結(jié)果表明信息安全網(wǎng)關(guān)具備以太網(wǎng)通信功能。
CAN通信測(cè)試:
通過(guò)PC機(jī)上的Ecantools向信息安全網(wǎng)關(guān)發(fā)送CAN幀,然后信息安全網(wǎng)關(guān)將收到的CAN幀回送給PC機(jī)。測(cè)試結(jié)果如圖11所示,結(jié)果表明信息安全網(wǎng)關(guān)具備CAN通信的功能。
圖11 信息安全網(wǎng)關(guān)CAN通信測(cè)試圖
AH測(cè)試:
AH協(xié)議為IP數(shù)據(jù)包提供數(shù)據(jù)源認(rèn)證以及數(shù)據(jù)完整性驗(yàn)證。
PC機(jī)向信息安全網(wǎng)關(guān)發(fā)送CAN幀數(shù)據(jù)hello tangliang!。信息安全網(wǎng)關(guān)將CAN數(shù)據(jù)取出后,通過(guò)套接字將數(shù)據(jù)從應(yīng)用層發(fā)往MAC層。圖12和圖13為應(yīng)用AH協(xié)議處理前后的IP包。
圖12 原IP包
圖13 應(yīng)用AH協(xié)議處理之后的IP包
可以看出,AH協(xié)議處理對(duì)IP進(jìn)行了完整性校驗(yàn),ICV數(shù)據(jù)為0x0E、0xF8、0xB5、0x6F、0x58、0x05、0x34、0x58、0xA9、0x0E、0x94、0x04、0x8B。
數(shù)據(jù)在傳輸過(guò)程中如果被篡改,那么接收方進(jìn)行完整性校驗(yàn)的時(shí)候就會(huì)發(fā)現(xiàn)計(jì)算出的ICV與接收到的不一樣,從而丟棄該數(shù)據(jù)包。
ICV值得計(jì)算需要數(shù)據(jù)載荷加上雙方的密鑰(通信之前手動(dòng)協(xié)商的密鑰)。如果攻擊者想要假冒數(shù)據(jù)源,那么因?yàn)闆](méi)有密鑰就會(huì)被接收方識(shí)別。
通過(guò)測(cè)試分析可以看出,信息安全網(wǎng)關(guān)在與車(chē)載信息系統(tǒng)通信時(shí)進(jìn)行了數(shù)據(jù)源認(rèn)證以及數(shù)據(jù)完整性校驗(yàn)。
ESP測(cè)試:
ESP協(xié)議為IP包數(shù)據(jù)提供數(shù)據(jù)機(jī)密性性保護(hù)。
PC機(jī)向信息安全網(wǎng)關(guān)發(fā)送CAN幀數(shù)據(jù)CHTC TL!信息安全網(wǎng)關(guān)接收到CAN數(shù)據(jù)之后,將數(shù)據(jù)通過(guò)套接字傳送到MAC層,在IP層進(jìn)行ESP處理。圖14和圖15為經(jīng)ESP處理前后IP包的變化。
圖14 原IP包
圖15 ESP處理之后的IP包
可以看出ESP協(xié)議將明文的IP包變成密文,即使攻擊者截獲數(shù)據(jù)包,也無(wú)法獲知明文信息。只有到被信任的通信設(shè)備(即擁有密鑰的設(shè)備)才能解密出正確的數(shù)據(jù)。
經(jīng)過(guò)測(cè)試分析,電動(dòng)汽車(chē)信息安全網(wǎng)關(guān)在與車(chē)載信息系統(tǒng)通信時(shí)保障了數(shù)據(jù)的機(jī)密性。
本文針對(duì)車(chē)聯(lián)網(wǎng)環(huán)境下電動(dòng)汽車(chē)信息安全問(wèn)題設(shè)計(jì)并實(shí)現(xiàn)了電動(dòng)汽車(chē)信息安全網(wǎng)關(guān),介紹了硬件平臺(tái)架構(gòu),重點(diǎn)闡述了軟件的設(shè)計(jì)。以μC/OS-II操作系統(tǒng)為基礎(chǔ),移植μC/TCP-IP協(xié)議,編寫(xiě)網(wǎng)卡驅(qū)動(dòng)以及PHY驅(qū)動(dòng),通過(guò)套接字編程實(shí)現(xiàn)了嵌入式以太網(wǎng)通信;編寫(xiě)CAN驅(qū)動(dòng),建立CAN幀處理任務(wù),實(shí)現(xiàn)了CAN通信;在μC/TCP-IP源碼的IP層移植IPSec協(xié)議,進(jìn)行通信的數(shù)據(jù)源認(rèn)證,數(shù)據(jù)機(jī)密性處理以及數(shù)據(jù)完整性校驗(yàn)。在安全策略的設(shè)計(jì)方面,在通信速率要求高時(shí),可以只進(jìn)行數(shù)據(jù)完整性校驗(yàn);在通信數(shù)據(jù)安全性高時(shí),可以進(jìn)行數(shù)據(jù)機(jī)密性處理。在未來(lái),會(huì)有越來(lái)越多的智能設(shè)備與電動(dòng)汽車(chē)進(jìn)行無(wú)線通信,在電動(dòng)汽車(chē)信息安全網(wǎng)關(guān)上實(shí)現(xiàn)無(wú)線通信將是本文進(jìn)一步的研究方向。
[1] 李樹(shù)靜,陳思國(guó),劉衍珩,等.可信的車(chē)載軟件遠(yuǎn)程修復(fù)框架及實(shí)現(xiàn)[J].計(jì)算機(jī)工程與設(shè)計(jì),2011(3):1074-1078.
[2] Koscher K,Czeskis A,Roesner F,et al.Experimental security analysis of a modern automobile[C]//2010 IEEE Symposium on Security and Privacy. Piscataway,UAS:IEEE Computer Society,2010:447-462.
[3] 張文博,包振山,李健,等.基于可信計(jì)算的車(chē)聯(lián)網(wǎng)云安全通信模型[J].華中科技大學(xué)學(xué)報(bào)(自然科學(xué)版),2014(11):102-105.
[4] Wampler D,Fu Huirong,Zhu Ye.Security threats and countermeasures for intra-vehicle networks[C]//5th International Conference on Information Assurance and Security.Piscataway,USA:IEEE Computer Society,2009:153-157.
[5] Ristanovic N,Papadimitratos P,Theodorakopoulos G,et al.Adaptive message authentication for multi-hop networks[C]//2011 8th International Conference on Wireless On-Demand Network Systems and Services.Piscataway,USA:IEEE,2011:96-103.
[6] 郭志紅,石春,吳剛.嵌入式以太網(wǎng)通信系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].小型微型計(jì)算機(jī)系統(tǒng),2015(4):754-758.
[7] Jean J Labrosse.MicroC/OS-II,The Real-Time Kernel[M].2th ed.Weston,FL33326:Micriμm Press,2002-02.
[8] 張晗.基于無(wú)線通信下IPSec協(xié)議的研究與實(shí)現(xiàn)[D].西安電子科技大學(xué),2009.
[9] Peng Hui,Jiang Wu.The design of embedded Ethernet control system based on the μC/OS-II[J].Control Engineering,2011,18(4):548-551.
[10] Christian Scheurer,Niklaus Schild.Implementing IPsec on a 16-bit microcontroller[J].Eetimes Com,2003(11):21-22.
[11] Christian Scheurer,Niklaus Schild.A Lightweight IPsec Implementation[D].Biel School of Engineering and Information Technology,2003.
[12] Cao Xiaoli.Based on DES Encryption Algorithm[J].Computer Knowledge and Technology,2011.
DESIGN AND IMPLEMENTATION OF INFORMATION SECURITYGATEWAY FOR ELECTRIC VEHICLE
Tang Liang Li Yihan Shi Chun Qin Linlin Wu Gang
(CollegeofInformationScienceandTechnology,UniversityofScienceandTechnologyofChina,Hefei230026,Anhui,China)
The application and development of IOV(Internet of the vehicle) is the trend of the development of vehicle technology. While IOV has driven major advancement in vehicle performance and providing efficient and convenient services, it also brings potential information security risks to vehicles. In view of the problems that IOV brings, analysing the research status of its information security, we design the information security gateway(ISG) for electric vehicles. The ISG interconnects the controller area network(CAN) and the Ethernet, and migrates the IPSec protocol on IP layer. Aiming at the data in and out of CAN bus, it performs protocol conversion, data encrypt and decrypt, and data integrity check. It can prevent attackers from eavesdropping and tampering the communication information between electric vehicles and the outside world, as well as controlling the operation of these vehicles by infiltrating CAN bus. Experimental tests indicates that ISG ensures the information security of electric vehicles by providing data source authentication, data integrity and data confidentiality.
Internet of the vehicle Information security IPSec Integrity check Confidentiality
2015-12-16。國(guó)家新能源汽車(chē)產(chǎn)業(yè)技術(shù)創(chuàng)新工程支持項(xiàng)目。唐良,碩士生,主研領(lǐng)域:嵌入式車(chē)載以太網(wǎng)通信,車(chē)聯(lián)網(wǎng)信息安全。李逸瀚,碩士生。石春,高工。秦琳琳,副教授。吳剛,教授。
TP393
A
10.3969/j.issn.1000-386x.2017.03.050