唐 良 李逸瀚 石 春 秦琳琳 吳 剛
(中國科學技術大學信息科學技術學院自動化系 安徽 合肥 230026)
電動汽車信息安全網關的設計與實現
唐 良 李逸瀚 石 春 秦琳琳 吳 剛
(中國科學技術大學信息科學技術學院自動化系 安徽 合肥 230026)
車聯網的應用和發展是汽車技術發展的趨勢。車聯網在提高車輛性能以及提供高效便利服務的同時也給汽車帶來了信息安全隱患。針對車聯網對汽車的信息安全帶來的問題,分析車聯網信息安全研究現狀,設計電動汽車信息安全網關ISG(Information Security Gateway),實現了電動汽車的控制器局域網CAN(Controller Area Network)與以太網的互連。在IP層上移植了IPSec(Internet Protocol Security)協議,對進出CAN總線的數據信息進行協議轉換、加/解密處理、完整性校驗,防止攻擊者竊聽和篡改電動汽車與外界的通信信息,也防止攻擊者通過入侵CAN總線來控制車輛的運行。實驗測試表明,電動汽車信息安全網關從數據源認證、數據完整性、數據機密性三個方面保障電動汽車的信息安全。
車聯網 信息安全 IPSec 完整性校驗 機密性
車聯網在政府的支持、汽車產商和科技公司的參與下發展迅猛,車聯網的發展帶來了許多新的汽車服務。電動汽車在聯網的情況下,可以將車輛位置、車輛的基本數據以及運行參數實時地發送到遠程數據服務中心,有利于跟蹤電動汽車零部件的故障狀態,為汽車用戶提供及時的維修保養服務;有利于分析電動汽車零部件的故障原因以及下一代零部件產品的升級。隨著汽車智能化的不斷發展,車載軟件重要性的不斷提高,車載軟件故障率也不斷上升,高效的車載軟件維護方案越來越受到汽車用戶以及汽車產商的重視。由于車輛的分散性以及車載軟件嵌入式的特點,車載軟件的后期維護升級問題一直沒有得到很好的解決[1]。然而遠程軟件維護更新可以很好地解決車載軟件維護升級的問題。
車聯網在提高車輛性能以及提供便利服務的同時也給車輛帶來了信息安全隱患。攻擊者可以竊取甚至篡改車載終端與遠程服務器之間的通信數據,獲取車主的隱私信息、偷取汽車產商的商業數據、將惡意的軟件代碼灌入車載電控單元中。汽車聯網使得攻擊者可以通過無線網絡來攻擊汽車,如K. Koscher等通過軟件代碼遠程劫持汽車,完成控制剎車、篡改儀表板讀數、開關空調、控制門鎖等破壞性行為[2]。
車聯網帶來的信息安全問題嚴重阻礙了車聯網的發展和應用,研究車聯網環境下電動汽車的信息安全問題成為未來車聯網發展的關鍵。張文博等提出了借助可信第三方,采用匿名認證過程,對通信雙方的身份進行真實性的認證,對通信平臺進行有效性認證,從而車聯網云僅為經過認證的車輛提供通信服務[3];D.Wampler等針對分析了CAN節點在CAN總線上收發數據的特點,通過在CANopen之上建立安全協議棧,對部分重要CAN節點進行身份認證這種方式保護重要的CAN節點的通信[4];N.Ristanovic等通過構建自適應消息認證機制,分析并證明了在車聯網環境下抵抗拒絕服務DoS攻擊的有效性[5]。
關于車聯網環境下信息安全問題的研究很多,但是并沒有形成統一的安全通信標準,也沒用成熟的信息安全產品,研發成熟車載信息安全產品對于在電動汽車上應用車聯網來說刻不容緩。作為車載嵌入式產品,具有處理器性能偏低、存儲空間偏小、散熱供電能力不足的特點,因此嵌入式產品的軟件代碼量應盡量小,功耗盡量低[6]。μC/OS-II操作系統具有源碼開發、內核代碼小、可裁剪、移植簡單、穩定性高等特點[7],非常適合移植在嵌入式產品中。在此基礎上移植μC/TCP-IP協議,兼容性好,性能穩定。IPSec協議是在網絡層實現信息安全的核心技術之一,它是一系列協議的一個集合,可以為IP層及上層協議提供完整性校驗、數據內容的機密性、數據源認證以及抗重播攻擊等服務[8]。
本文研究設計了電動汽車的信息安全網關,首先對電動汽車信息安全網關進行總體架構設計,然后研究了μC/OS-II操作系統、μC/TCP-IP協議、IPSec協議的裁剪與移植,最后搭建實驗環境對信息安全網關進行功能測試,并分析測試結果。
1.1 電動汽車信息安全架構設計
電動汽車的信息安全問題主要產生于3個方面:一是攻擊者通過汽車的車載自動診斷系統OBD(On-Board Diagnostics)物理上直接連入CAN總線,直接對CAN總線的信息進行監聽和破壞;二是攻擊者通過無線局域網或者射頻技術連入車載信息系統,然后通過車載信息系統竊聽部分CAN信息或者破壞CAN總線;三是攻擊者通過移動互聯網竊聽、截斷、篡改電動汽車與遠程服務器交互的信息。本文設計實現的電動汽車信息安全網關主要是針對后兩種情況設計的。圖1是電動汽車的信息安全架構。
電動汽車的信息安全網關位于車內CAN總線與車載信息系統之間。信息安全網關接收到電動汽車CAN總線上發來的CAN幀后,取出CAN幀的數據,將數據封裝為以太網幀,通過以太網發送給車載信息系統,在數據從應用層傳給MAC層的過程中,在IP層根據安全策略對數據進行加密處理或者僅僅進行完整性校驗值計算。對從車載信息系統通過以太網發送給信息安全網關的數據,信息安全網關在IP層根據安全策略對數據進行解密或者完整性校驗,最后在應用層得到數據后,將數據封裝為CAN幀,在CAN總線上將數據發給電動汽車。通過在IP層的安全策略保障電動汽車的信息安全。
1.2 硬件架構設計
微控制器R5F562N8BDFP是瑞薩公司推出的144引腳的32位高性能MCU,擁有96 KB的RAM以及512 KB的ROM,內部集成了包括以太網控制器、SPI控制器、CAN控制器等多種通信控制器,功能強大。圖2是電動汽車信息安全網關的硬件結構圖。

圖2 信息安全網關硬件結構圖
電動汽車信息安全網關R5F562N8BDFP微控制器為核心,外擴了256 KB的SRAM,主要包括以太網模塊、CAN模塊、LCD模塊。其中以太網模塊和CAN模塊是實現信息安全網關功能的基礎,主要包括μC/OS-II操作系統、μC/TCP-IP協議的移植以及建立CAN幀接收任務。
2.1 軟件總體設計
嵌入式產品上移植操作系統是很多嵌入式產品發展的趨勢,在嵌入式產品上移植操作系統有利于對嵌入式產品的資源進行更好的調度,有利于未來在已研發的嵌入式產品上實現新的功能。電動汽車信息安全網關以μC/OS-II操作系統為基礎,實現嵌入式以太網通信功能以及CAN通信功能,在IP層上實現安全策略。軟件總計架構如圖3所示。

圖3 信息安全網關軟件架構
如圖3所示,移植μC/OS-II操作系統主要針對R5F562N8BDFP微控制器實現操作系統提供的硬件接口,主要包括類型定義、中斷處理、任務切換、任務棧初始化、定時處理等5個部分。
類型定義主要是針對具體的編譯器定義數據類型;中斷處理是指實現中斷發生時保存上下文,進行中斷函數處理,中斷處理完成之后進行任務調度;任務切換主要是指任務級的任務調度功能,是通過一條軟中斷指令來實現任務切換;任務棧初始化時針對具體的MCU編寫任務堆棧初始化函數OSTaskStkInit();定時處理主要是指設置時鐘節拍以及實現匯編函數OSTickISR。
實現嵌入式以太網通信的功能主要是移植μC/TCP-IP協議,包括網絡設備支持包的開發、MAC驅動程序的開發、PHY驅動程序的開發。網絡設備支持包的開發主要是對net_bsp.*和net_isr.*的開發,包括初始化與以太網模塊有關的引腳,用匯編語言編寫以太網中斷函數NetNIC_ISR。以太網控制器通過串行管理接口SMI(Serial Management Interface)讀取和控制PHY控制器,從而獲得PHY的狀態以及控制PHY控制器[9]。
以太網幀的接收流程:以太網控制器辨認出以太網幀的目的地址是廣播地址或者與自己的地址相同,產生接收中斷。在中斷處理函數中將釋放接收以太網幀信號量來喚醒μC/OS-II操作系統中的以太網幀接收任務,接收任務根據以太網幀的大小申請合適大小的緩沖區從EDMAC接收緩沖區中取走以太網幀,然后將數據供上層處理。
2.2 CAN模塊軟件設計
CAN模塊軟件主要分為2部分,CAN驅動模塊以及上層應用模塊。
CAN驅動模塊主要是初始化CAN模塊,包括引腳配置、CAN模塊使能、波特率設置、中斷設置、信箱設置等。
上層應用是指CAN幀處理任務。CAN幀接收流程如圖4所示。

圖4 CAN幀接收流程
當產生CAN幀接收中斷時,進入CAN幀中斷處理函數(1);CAN幀中斷處理函數調用ReadCanMessage()將CAN幀數據從郵箱中取出(2),然后將取出的CAN幀數據存入Buffer隊列中(3),之后在中斷處理函數中調用CANOS_PostRXSig()釋放CAN幀接收信號量(4);上層應用調用CAN幀接收函數,在CAN幀接收函數中,首先調用CANOS_PendRXSig()等待CAN幀接收信號,如果CAN幀接收信號量有效,那么將CAN幀接收信號量減1(5),并從Buffer隊列中讀取CAN幀供上層應用處理(6)。
2.3 安全策略模塊
安全策略模塊是通過在IP層上移植IPSec協議實現。主要思想將IPSec作為一個“鍥子”,插到IP層與數據鏈路層之間[10]。主要是通過ipsecdev_input()和ipsecdev_out()兩個函數函數來實現。
圖5是IPSec的體系結構。主要包括:AH(證頭)、ESP(封裝安全載荷)、IKE(Internet密鑰交換)、ISKAMP/Oakley以及轉碼。IPSec包含2個數據庫:一個是安全策略數據庫SPD(Security Policy Database);一個是安全關聯數據庫SAD(Security Association Database)。IPSec模塊對數據的處理分為ESP和AH兩種。

圖5 IPSec體系架構
SPD主要負責對進出IPSec模塊的流量進行區分,指明為這些流量提供何種以及什么形式的服務[11],主要有APPLY(使用IPSec機制處理數據)、BYPASS(直接將數據報傳給下層協議)、DISCARD(丟棄該流量數據)。SAD主要為對需要保護的流量提供具體的安全保護策略,是ESP協議還是AH協議以及用何種加密算法等。AH主要是為IP數據包提供數據源驗證,數據完整性驗證以及有限的、可選的抗重放服務。ESP主要是為IP數據包提供無連接的數據完整性、數據源驗證、數據機密性以及有限的數據流機密性保護。
1) 發送數據
對于任何從IP層向數據鏈路層發送的流量,都會調用ipsecdev_out()對數據包進行處理,處理流程如圖6所示。

圖6 發送數據包處理流程
對于從IP層發往數據鏈路層的數據包,首先進行SPD查找,如果是BYPASS策略,那么直接將數據發往數據鏈路層。如果是DISCARD策略,那么丟棄該數據包;如果是APPLY策略,那么進行SAD查找,如果沒有找到對于的SAD,直接丟棄該數據包;如果是應用ESP處理機制,那么根據SAD中的處理算法(3DES算法)、密鑰、模式(使用隧道模式,整個IP包作為載荷進行加密)對數據包進行加密;如果是應用AH處理機制,那么根據SAD中的處理算法(HMAC-MD5-96)、密鑰、模式(隧道模式)計算數據包的消息認證碼(Message Authentication Code,MAC),并添加AH頭部信息;最后將經過ESP或者AH機制處理過的數據包發送給數據鏈路層。
ESP封裝數據包處理流程:
(1) 檢查IP頭部的TTL字段是否為0,如果為0,丟棄此數據包,并返回。
(2) 因為使用的是3DES[12]塊加密算法,要求每一個加密塊是64 bit,載荷數據長度必須為8字節的整數倍,這一步需要檢查載荷數據長度,對于長度不足的數據需要在原有效載荷后面填充數據,并將填充的數據長度放在有效載荷后面,然后再添加下一個協議的協議號(由于使用隧道模式,下一個協議一定為IP協議,協議號為0x04)。
(3) 根據SA中設置的規則對載荷數據進行加密處理,之后將IV(初始化向量)值放到加密數據前面。
(4) 添加ESP頭,包括SPI(Security Parameter Index,安全參數索引)和一個序列號。
(5) 根據SA查詢是否要計算ICV(Integrity Checking Value,完整性校驗值),如果要計算,進行完整性校驗計算。
(6) 重構IP頭,并返回重構IP數據包的首地址以及長度信息。
(7) 更新pbuf(用來存儲從應用層到MAC層的數據)數據結構。
AH封裝數據包處理流程:
(1) 構建AH頭,包括下一個協議的協議號、載荷長度、SPI、序列號等參數。AH頭和原IP數據包之間空留了12個字節,用來存放將要計算得到的ICV。
(2) 在AH頭部前構建新的IP頭,主要是設置版本、數據長度、ID號、源IP地址、目的IP地址、下一個協議等不變字段,其他在網絡傳輸過程中會發生變化的IP頭字段均初始化為0。
(3) 根據HMAC-MD5-96算法計算ICV值,并將其填入AH頭和原IP頭之間的驗證數據區。
(4) 設置新IP頭初始化為0的字段的信息,返回新IP包的首地址以及長度,更新pbuf數據結構。
2) 接收數據
對任何從數據鏈路層發往IP層的數據包,都會調用ipsecdev_input()函數對數據包進行處理。處理流程如圖7所示。

圖7 接收數據包處理流程圖
(1) 通過IP頭部的下一個協議號判斷此數據包是否是ESP數據包或者AH數據包。
(2) 如果不是,進入SPD查找,查找結果為該流量是BYPASS策略,那么直接將數據包發往IP層;否則丟棄數據包。
(3) 如果是ESP數據包或者AH數據包,那么進行SAD查找。如果沒有找到對應的SA,那么丟棄此數據包。如果成功查找到SA,進進行模式,協議的檢查。
(4) 如果協議值為SA中確定的AH協議,那么對數據包進行AH檢查;如果協議值為SA中確定的ESP協議,那么對數據包進行ESP解封。否則丟棄此數據包。
(5) 數據包經過AH或者ESP機制處理之后,需要處理之后的數據包進行SPD檢查。
(6) 如果SPD的策略為APPLY且SPD中對的SA就是步驟(3)中的SA,那么修改pbuf數據結構之后將IP包發往IP層。否則,丟棄此數據包。
3.1 測試環境搭建
測試所需硬件:2個嵌入式硬件平臺、路由器一臺、PC機一臺、USBCAN一個。硬件物理連接圖如圖8所示。

圖8 測試環境硬件連接圖
2個嵌入式硬件平臺:一個是要測試的電動汽車信息安全網關(圖8中的嵌入式平臺A),另一個模擬車載信息系統(圖8中的嵌入式平臺B)。
PC機用來模擬電動汽車,通過運行在PC機上的Ecantools軟件給電動汽車信息安全網關發送CAN幀,以此來模擬電動汽車CAN總線往信息安全網關發送的CAN數據。
主要步驟:
(1) 如圖8連接各硬件設備,運行2個嵌入式硬件平臺,讓其獲得IP地址。
(2) 在PC機上運行Ecantools軟件,向信息安全網關發送CAN幀。
(3) 在HEW開發環境中斷點調試軟件代碼,觀察數據包進入IPSEC模塊前后的變化。
(4) 數據包傳到車載信息系統,經過IPSEC模塊在LCD屏上顯示出來。
3.2 功能測試
以太網通信測試:
以太網通信功能是實現電動汽車信息安全的前提功能之一。圖9和圖10為信息安全網關與PC機進行以太網通信的測試結果。

圖9 PC機通過TCP/IP助手發送的數據

圖10 信息安全網關接收的數據
測試結果表明信息安全網關具備以太網通信功能。
CAN通信測試:
通過PC機上的Ecantools向信息安全網關發送CAN幀,然后信息安全網關將收到的CAN幀回送給PC機。測試結果如圖11所示,結果表明信息安全網關具備CAN通信的功能。

圖11 信息安全網關CAN通信測試圖
AH測試:
AH協議為IP數據包提供數據源認證以及數據完整性驗證。
PC機向信息安全網關發送CAN幀數據hello tangliang!。信息安全網關將CAN數據取出后,通過套接字將數據從應用層發往MAC層。圖12和圖13為應用AH協議處理前后的IP包。

圖12 原IP包

圖13 應用AH協議處理之后的IP包
可以看出,AH協議處理對IP進行了完整性校驗,ICV數據為0x0E、0xF8、0xB5、0x6F、0x58、0x05、0x34、0x58、0xA9、0x0E、0x94、0x04、0x8B。
數據在傳輸過程中如果被篡改,那么接收方進行完整性校驗的時候就會發現計算出的ICV與接收到的不一樣,從而丟棄該數據包。
ICV值得計算需要數據載荷加上雙方的密鑰(通信之前手動協商的密鑰)。如果攻擊者想要假冒數據源,那么因為沒有密鑰就會被接收方識別。
通過測試分析可以看出,信息安全網關在與車載信息系統通信時進行了數據源認證以及數據完整性校驗。
ESP測試:
ESP協議為IP包數據提供數據機密性性保護。
PC機向信息安全網關發送CAN幀數據CHTC TL!信息安全網關接收到CAN數據之后,將數據通過套接字傳送到MAC層,在IP層進行ESP處理。圖14和圖15為經ESP處理前后IP包的變化。

圖14 原IP包

圖15 ESP處理之后的IP包
可以看出ESP協議將明文的IP包變成密文,即使攻擊者截獲數據包,也無法獲知明文信息。只有到被信任的通信設備(即擁有密鑰的設備)才能解密出正確的數據。
經過測試分析,電動汽車信息安全網關在與車載信息系統通信時保障了數據的機密性。
本文針對車聯網環境下電動汽車信息安全問題設計并實現了電動汽車信息安全網關,介紹了硬件平臺架構,重點闡述了軟件的設計。以μC/OS-II操作系統為基礎,移植μC/TCP-IP協議,編寫網卡驅動以及PHY驅動,通過套接字編程實現了嵌入式以太網通信;編寫CAN驅動,建立CAN幀處理任務,實現了CAN通信;在μC/TCP-IP源碼的IP層移植IPSec協議,進行通信的數據源認證,數據機密性處理以及數據完整性校驗。在安全策略的設計方面,在通信速率要求高時,可以只進行數據完整性校驗;在通信數據安全性高時,可以進行數據機密性處理。在未來,會有越來越多的智能設備與電動汽車進行無線通信,在電動汽車信息安全網關上實現無線通信將是本文進一步的研究方向。
[1] 李樹靜,陳思國,劉衍珩,等.可信的車載軟件遠程修復框架及實現[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].華中科技大學學報(自然科學版),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] 郭志紅,石春,吳剛.嵌入式以太網通信系統設計與實現[J].小型微型計算機系統,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] 張晗.基于無線通信下IPSec協議的研究與實現[D].西安電子科技大學,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。國家新能源汽車產業技術創新工程支持項目。唐良,碩士生,主研領域:嵌入式車載以太網通信,車聯網信息安全。李逸瀚,碩士生。石春,高工。秦琳琳,副教授。吳剛,教授。
TP393
A
10.3969/j.issn.1000-386x.2017.03.050