張政
上汽通用汽車(chē)有限公司 上海市 201206
隨著智能網(wǎng)聯(lián)汽車(chē)的逐步發(fā)展,智能網(wǎng)聯(lián)汽車(chē)已經(jīng)逐漸進(jìn)入人們視野。從網(wǎng)聯(lián)汽車(chē)對(duì)外接口來(lái)看,攻擊接口可以分為三類(lèi):①物理訪(fǎng)問(wèn)接口,如診斷口OBD-II、車(chē)內(nèi)USB接口、電動(dòng)汽車(chē)的充電端口等;②短距離無(wú)線(xiàn)訪(fǎng)問(wèn)接口,如藍(lán)牙、WiFi、無(wú)鑰匙進(jìn)入系統(tǒng)、胎壓系統(tǒng)、車(chē)載雷達(dá)等;③長(zhǎng)距離無(wú)線(xiàn)訪(fǎng)問(wèn)接口,如無(wú)線(xiàn)電廣播、GPS、OnStar、移動(dòng)3G/4G網(wǎng)絡(luò)等。攻擊者可以通過(guò)以上接口對(duì)車(chē)輛進(jìn)行攻擊,嚴(yán)重威脅駕駛者的人身和財(cái)產(chǎn)安全,車(chē)輛網(wǎng)絡(luò)信息安全問(wèn)題日益突出。
CAN (Controller Area Network) 總線(xiàn)是目前各主機(jī)廠(chǎng)使用最廣泛的車(chē)載總線(xiàn)網(wǎng)絡(luò)技術(shù),由于汽車(chē)網(wǎng)絡(luò)信息安全問(wèn)題的凸顯,因此,解決車(chē)載CAN總線(xiàn)網(wǎng)絡(luò)的信息安全問(wèn)題尤其至關(guān)重要。
車(chē)載CAN總線(xiàn)網(wǎng)絡(luò)技術(shù)上每一條 CAN報(bào)文都有自己的CAN ID標(biāo)識(shí)符,CAN ID的主要功能是報(bào)文識(shí)別和優(yōu)先級(jí)確定。CAN總線(xiàn)主要特性如下:
①多主節(jié)點(diǎn)控制。總線(xiàn)上所有的節(jié)點(diǎn)都可以作為主節(jié)點(diǎn)來(lái)發(fā)送報(bào)文,各節(jié)點(diǎn)平等,任何時(shí)刻都可以主動(dòng)發(fā)送。
②基于優(yōu)先級(jí)的總線(xiàn)仲裁制。多個(gè)單元同時(shí)開(kāi)始發(fā)送時(shí),優(yōu)先級(jí)較高的ID獲得發(fā)送權(quán),采取逐位仲裁比較的方式,判斷哪一個(gè)消息報(bào)文優(yōu)先發(fā)送。
③廣播式發(fā)送報(bào)文。報(bào)文可以被所有節(jié)點(diǎn)同時(shí)接收,各節(jié)點(diǎn)依據(jù)具體情況有選擇地接收或者響應(yīng)報(bào)文信息,從而控制汽車(chē)執(zhí)行相關(guān)操作。
④節(jié)點(diǎn)單元總數(shù)沒(méi)有限制。在CAN網(wǎng)絡(luò)中,接入總線(xiàn)的節(jié)點(diǎn)數(shù)理論上沒(méi)有限制,可同時(shí)接入較多節(jié)點(diǎn),但是隨著節(jié)點(diǎn)數(shù)的增加,總線(xiàn)的通信速率會(huì)降低。
基于以上CAN總線(xiàn)的性能特點(diǎn),結(jié)合目前車(chē)載CAN總線(xiàn)網(wǎng)絡(luò)安全威脅研究,主要可歸納為以下幾點(diǎn):
①缺乏總線(xiàn)保護(hù)。CAN總線(xiàn)是廣播特性的,網(wǎng)絡(luò)上的惡意節(jié)點(diǎn)可以窺探所有發(fā)送在網(wǎng)絡(luò)上的信息或數(shù)據(jù)包,并且沒(méi)有任何消息認(rèn)證碼 (MAC,Message Authentication Code)保護(hù)。
②易受拒絕服務(wù)攻擊。在基于優(yōu)先級(jí)的仲裁模式下,拒絕服務(wù)攻擊(Dos, Denial of service attack)是由于總線(xiàn)仲裁機(jī)制導(dǎo)致的,攻擊者可使用最高優(yōu)先級(jí)發(fā)送數(shù)據(jù),從而導(dǎo)致其他ECU無(wú)法使用CAN總線(xiàn)。
③消息泄露。可通過(guò)車(chē)載診斷口(如OBD-II)獲取車(chē)輛的CAN總線(xiàn)信息,從而導(dǎo)致消息泄露。
針對(duì)上述車(chē)載CAN總線(xiàn)安全威脅,攻擊者可以通過(guò)丟棄、欺騙、重放、修改、洪泛等攻擊方式對(duì)車(chē)輛進(jìn)行攻擊,從而影響車(chē)輛使用安全。
面對(duì)日益嚴(yán)峻的車(chē)輛網(wǎng)絡(luò)安全問(wèn)題,各主機(jī)廠(chǎng)的網(wǎng)絡(luò)安全策略也在逐漸升級(jí),目前為止,網(wǎng)絡(luò)安全策略主要經(jīng)歷了三個(gè)階段。
在對(duì)各ECU進(jìn)行診斷時(shí),需要先通過(guò)安全訪(fǎng)問(wèn)驗(yàn)證(Service ID為0x27),使用的是2個(gè)字節(jié)的Seed & Key。當(dāng)進(jìn)行安全訪(fǎng)問(wèn)時(shí),設(shè)備對(duì)ECU發(fā)送Seed請(qǐng)求,ECU會(huì)將Seed反饋回給設(shè)備并根據(jù)ECU內(nèi)部既有算法生成Key,而收到Seed的設(shè)備也會(huì)根據(jù)匹配的算法生成一個(gè)Key,并將Key值發(fā)送給ECU,ECU會(huì)比對(duì)兩個(gè)Key值,若兩個(gè)Key相同,則安全訪(fǎng)問(wèn)驗(yàn)證通過(guò),反之則不通過(guò)。只有通過(guò)安全訪(fǎng)問(wèn)驗(yàn)證后才能進(jìn)行修改車(chē)輛信息和控制電器功能的操作。
該方法的驗(yàn)證是基于本地算法的靜態(tài)驗(yàn)證,ECU的Seed & Key值都是2個(gè)字節(jié)的,而且每個(gè)ECU的Seed & Key值都是固定值,字節(jié)數(shù)太短,算法簡(jiǎn)單,屬于較基礎(chǔ)的安全驗(yàn)證。
初級(jí)網(wǎng)絡(luò)安全相比于之前的安全訪(fǎng)問(wèn)有很大的提升,從模塊設(shè)計(jì)初始時(shí)就開(kāi)始強(qiáng)化,主要體現(xiàn)以下方面:ECU支持安全解鎖(SU)、安全刷新(SP)、安全診斷(SD),整車(chē)架構(gòu)上增加了中央網(wǎng)關(guān)模塊(CGM)。
安全解鎖(SU, Security Unlock):類(lèi)似于之前的安全訪(fǎng)問(wèn),但是各ECU的Seed& Key值是5字節(jié)的。設(shè)備根據(jù)ECU反饋的Seed值按照一定的算法計(jì)算出Key值,并與ECU內(nèi)部生成的Key值對(duì)比,若兩個(gè)Key值相同,則表明安全解鎖成功。該方法也是基于本地算法的靜態(tài)解鎖,字節(jié)數(shù)較長(zhǎng),解鎖較困難。
安全刷新(SP, Security Program):使用數(shù)字簽名驗(yàn)證來(lái)確認(rèn)刷新環(huán)節(jié)的真實(shí)性與完整性,每個(gè)標(biāo)定都需提前進(jìn)行數(shù)字簽名,若沒(méi)有數(shù)字簽名或簽名驗(yàn)證不通過(guò)則無(wú)法刷新成功。
安全診斷(SD,Security Diagnostic):對(duì)診斷服務(wù)進(jìn)行安全合理的升級(jí),發(fā)送某些診斷命令時(shí)需要在特定環(huán)境下才能進(jìn)行。如0x28診斷服務(wù),車(chē)輛行駛中是無(wú)法禁止ECU發(fā)送應(yīng)用報(bào)文的,否則會(huì)影響車(chē)輛安全行駛。
架構(gòu)上增加中央網(wǎng)關(guān)模塊(CGM,Central Gateway Module):CGM主要用于對(duì)數(shù)據(jù)的打包,管理,篩選等,為娛樂(lè)信息系統(tǒng)與安全的關(guān)鍵組件之間提供了物理的防火墻,可以降低從娛樂(lè)信息系統(tǒng)入侵的可能性。
增強(qiáng)型網(wǎng)絡(luò)安全的主要目的是防止未經(jīng)授權(quán)解鎖ECU進(jìn)行重新刷新或安全診斷;防止車(chē)輛通信總線(xiàn)上有未經(jīng)授權(quán)的消息;防止安全敏感信息在車(chē)載通信總線(xiàn)不真實(shí)的溝通。增強(qiáng)型網(wǎng)絡(luò)安全相比于初級(jí)網(wǎng)絡(luò)安全,對(duì)安全解鎖方式、中央網(wǎng)關(guān)模塊策略做了升級(jí),同時(shí)還增加了消息認(rèn)證碼(MAC)機(jī)制。
安全解鎖升級(jí):從之前5字節(jié)的Seed &Key靜態(tài)解鎖方式升級(jí)到32字節(jié)的動(dòng)態(tài)解鎖方式,以前每個(gè)ECU的Seed & Key值都是靜態(tài)的固定值,升級(jí)后每次解鎖ECU的Seed &Key值都是動(dòng)態(tài)變化的不同值。5字節(jié)的解鎖算法是集成在刷新工具里的,而32字節(jié)的解鎖算法是存放在獨(dú)立的服務(wù)器里,每次解鎖都需要訪(fǎng)問(wèn)服務(wù)器獲取Key值,而且服務(wù)器設(shè)置了多重權(quán)限,僅對(duì)少部分授權(quán)人員開(kāi)放,從安全解鎖方面極大地提升了車(chē)載總線(xiàn)的網(wǎng)絡(luò)安全。
中央網(wǎng)關(guān)模塊策略升級(jí):之前的網(wǎng)關(guān)僅隔離了部分總線(xiàn)(如娛樂(lè)系統(tǒng)),而且從實(shí)車(chē)診斷口是可以讀到總線(xiàn)的應(yīng)用報(bào)文信息的。升級(jí)后,車(chē)輛所有總線(xiàn)都被網(wǎng)關(guān)隔離保護(hù),實(shí)車(chē)診斷口無(wú)法讀到任何總線(xiàn)的應(yīng)用報(bào)文,僅能夠?qū)?chē)輛進(jìn)行診斷,有效地防止消息泄露。
增加了消息認(rèn)證碼(MAC)機(jī)制:消息認(rèn)證碼是在ECU刷新時(shí)注入的,消息認(rèn)證碼在每條總線(xiàn)應(yīng)用報(bào)文的開(kāi)頭,各ECU之間只有消息認(rèn)證碼正確的總線(xiàn)應(yīng)用報(bào)文才能夠被識(shí)別,否則報(bào)文將是無(wú)效地存在。例如,儀表顯示檔位信號(hào)時(shí)需要獲取變速箱控制單元的檔位信號(hào),如果檔位信號(hào)正常但消息認(rèn)證碼不正確,儀表控制單元?jiǎng)t不會(huì)接受該信號(hào),從而無(wú)法顯示檔位。此外,在MAC和報(bào)文真實(shí)內(nèi)容之間還加了防重放計(jì)數(shù)器以防止車(chē)輛受到重放的攻擊。MAC機(jī)制能夠有效地確保總線(xiàn)報(bào)文的身份真實(shí)性、消息正確性以及數(shù)據(jù)新鮮性。
本文描述了當(dāng)前道路車(chē)輛所面臨的網(wǎng)絡(luò)安全問(wèn)題,并分析了通過(guò)實(shí)現(xiàn)車(chē)輛安全解鎖、安全刷新、安全診斷、網(wǎng)關(guān)隔離保護(hù)、增加MAC機(jī)制等方法加強(qiáng)車(chē)輛CAN總線(xiàn)的網(wǎng)絡(luò)信息安全。當(dāng)前,車(chē)聯(lián)網(wǎng)的網(wǎng)絡(luò)信息安全問(wèn)題已經(jīng)受到廣泛關(guān)注,并已成為智能網(wǎng)聯(lián)技術(shù)的關(guān)鍵點(diǎn)。只有車(chē)聯(lián)網(wǎng)的安全性和可靠性得到全面地提升,才能夠使得車(chē)聯(lián)網(wǎng)技術(shù)實(shí)現(xiàn)大規(guī)模的應(yīng)用。汽車(chē)行業(yè)應(yīng)該主動(dòng)地去與互聯(lián)網(wǎng)公司、網(wǎng)絡(luò)安全公司進(jìn)行深度地合作,使得車(chē)聯(lián)網(wǎng)汽車(chē)能夠更安全、更智能的發(fā)展。