梁亞麗,黃金山,范新欣,高家君
(1.一汽奔騰轎車有限公司電子電氣開發(fā)部,吉林 長春 130012;2.中國第一汽車集團(tuán)有限公司工程與生產(chǎn)物流部,吉林 長春 130012)
各類車輛控制軟件數(shù)據(jù)、狀態(tài)數(shù)據(jù)等大量重要信息存在于控制器內(nèi)容,只有保障其信息的安全有效才能實(shí)現(xiàn)車輛的有效運(yùn)轉(zhuǎn)。所以在設(shè)備通過診斷指令對其進(jìn)行操作時(shí),必須通過安全有效策略保障介入設(shè)備的合法性,才能確保控制器數(shù)據(jù)不會被非法篡改。
診斷儀等設(shè)備、整車控制器(Server)在設(shè)計(jì)之初,會集成OEM安全算法。由于它們集成的算法是一致的,如果采用同樣的Seed進(jìn)行計(jì)算將得到同樣的Key。診斷儀等設(shè)備對車輛內(nèi)某控制器進(jìn)行安全訪問時(shí),由以下4步完成,如圖1所示。
圖1 安全訪問過程
1)診斷儀等設(shè)備發(fā)起安全訪問請求。
2)控制器生成Seed并發(fā)送給診斷儀等設(shè)備。
3)診斷儀等設(shè)備控制器發(fā)來的Seed并按照預(yù)先集成的安全算法計(jì)算得到相應(yīng)的Key,并將其傳遞給控制器。
4)目標(biāo)控制器根據(jù)自身集成的算法和自身生成的Seed進(jìn)行計(jì)算得到相應(yīng)的Key,并將其和診斷儀等設(shè)備發(fā)的Key進(jìn)行比對,如一致,安全訪問通過。
ISO 14229中雖然規(guī)定了安全訪問的基本步驟、相關(guān)的NRC(否定相應(yīng)碼)等信息,但動態(tài)種子和靜態(tài)種子的選擇,NRC使用方式、計(jì)時(shí)或計(jì)數(shù)器的選擇及使用等方面OEM均可自主設(shè)計(jì)。
故在此介紹現(xiàn)有的安全進(jìn)入方案(圖2),其安全訪問過程同圖1所示,但種子采用動態(tài)種子形式且在安全訪問Key比對環(huán)節(jié)增加計(jì)數(shù)器,如比對不成功計(jì)數(shù)器+1,當(dāng)計(jì)數(shù)器達(dá)到3時(shí),控制器安全訪問通道關(guān)閉且在規(guī)定時(shí)間內(nèi)不再開啟(該時(shí)間一般設(shè)定為60s)。
圖2 安全訪問方案
根據(jù)以上安全訪問方案,可以分析得出其風(fēng)險(xiǎn)主要存在于下列場景。
場景1:在4S店曾經(jīng)工作過的售后人員已知一系列的Seed及其對應(yīng)的Key(表1),如果在診斷儀請求動態(tài)種子的過程中,診斷儀可以通過多次請求到需求種子(如種子A),并手動發(fā)送診斷指令將對應(yīng)的Key(A’)發(fā)送給控制器,則可通過非授權(quán)診斷儀進(jìn)入安全訪問。
場景2:動態(tài)隨機(jī)種子產(chǎn)生方式主要有通過軟件生成隨機(jī)種子和通過種子發(fā)生器硬件生成隨機(jī)種子兩種方式。如果采用軟件生成隨機(jī)種子,在控制器內(nèi)部設(shè)置相應(yīng)的隨機(jī)種子庫,每次從庫中隨機(jī)選擇種子。如該種子庫容量為N(一般設(shè)置為10000),則兩次種子相同的概率為1/N。假如表1中容量為m,允許請求次數(shù)為k,則出現(xiàn)表1中種子的概率為mk/N。如果采用隨機(jī)種子發(fā)生器,其隨機(jī)種子庫容量為232,則兩次種子相同的概率為1/232,也同樣假設(shè)表1中容量為m,允許請求次數(shù)為k,則出現(xiàn)表1中種子的概率為mk/232。表1中容量OEM是不可控制的,但允許請求次數(shù)k越小且隨機(jī)種子庫數(shù)量越大則出現(xiàn)表1中種子的概率就越小。因而要盡量選用隨機(jī)種子發(fā)生器生成隨機(jī)種子并盡量減少允許請求次數(shù)k。
表1 預(yù)期Seed與Key對應(yīng)表
為了應(yīng)對場景1和場景2中風(fēng)險(xiǎn),可以通過兩種方案解決。
方案1:在安全訪問全過程中均采用靜態(tài)種子。
方案2:在安全訪問全過程中采用動態(tài)種子,但在控制器向診斷儀等設(shè)備“回復(fù)動態(tài)種子”環(huán)節(jié)加入計(jì)數(shù)器。
從種子發(fā)送邏輯是否變化、計(jì)數(shù)器是否增加、NRC使用邏輯及規(guī)則是否變化、方案復(fù)雜度等方面對以上兩個(gè)方案進(jìn)行詳細(xì)分析,具體如圖3所示。
圖3 方案對比
方案1邏輯簡單,且計(jì)數(shù)器NRC使用邏輯均不發(fā)生變化,只需改為靜態(tài)種子。而方案2方案復(fù)雜且更改較大,故不建議使用。
如果一定要采用動態(tài)種子方式,為了最大化控制場景1及場景2中風(fēng)險(xiǎn),建議采用種子發(fā)生器硬件方式進(jìn)行隨機(jī)種子生成,并在控制器進(jìn)行隨機(jī)種子發(fā)送環(huán)節(jié)采用和Key比對環(huán)節(jié)同樣的策略。即如果診斷儀等設(shè)備持續(xù)請求動態(tài)種子,而不進(jìn)行Key計(jì)算及比對,則每請求一次種子其計(jì)數(shù)器+1,并給出帶有響應(yīng)NRC的否定響應(yīng)。直至計(jì)數(shù)器達(dá)到3則控制器安全訪問通道關(guān)閉且在規(guī)定時(shí)間內(nèi)不再開啟(該時(shí)間一般設(shè)定為60s)。方案2具體實(shí)現(xiàn)邏輯見圖4。
圖4 方案2實(shí)現(xiàn)邏輯
通過對控制器安全進(jìn)入方案的優(yōu)化分析,明確了其安全進(jìn)入策略及方法,且目前已應(yīng)用于車型實(shí)踐。安全訪問作為控制器進(jìn)入的重要通道,只有進(jìn)行有效控制才能有效降低其信息安全風(fēng)險(xiǎn),從而保障車輛安全穩(wěn)定的運(yùn)行。