梁亞麗,黃金山,范新欣,高家君
(1.一汽奔騰轎車有限公司電子電氣開發部,吉林 長春 130012;2.中國第一汽車集團有限公司工程與生產物流部,吉林 長春 130012)
各類車輛控制軟件數據、狀態數據等大量重要信息存在于控制器內容,只有保障其信息的安全有效才能實現車輛的有效運轉。所以在設備通過診斷指令對其進行操作時,必須通過安全有效策略保障介入設備的合法性,才能確保控制器數據不會被非法篡改。
診斷儀等設備、整車控制器(Server)在設計之初,會集成OEM安全算法。由于它們集成的算法是一致的,如果采用同樣的Seed進行計算將得到同樣的Key。診斷儀等設備對車輛內某控制器進行安全訪問時,由以下4步完成,如圖1所示。

圖1 安全訪問過程
1)診斷儀等設備發起安全訪問請求。
2)控制器生成Seed并發送給診斷儀等設備。
3)診斷儀等設備控制器發來的Seed并按照預先集成的安全算法計算得到相應的Key,并將其傳遞給控制器。
4)目標控制器根據自身集成的算法和自身生成的Seed進行計算得到相應的Key,并將其和診斷儀等設備發的Key進行比對,如一致,安全訪問通過。
ISO 14229中雖然規定了安全訪問的基本步驟、相關的NRC(否定相應碼)等信息,但動態種子和靜態種子的選擇,NRC使用方式、計時或計數器的選擇及使用等方面OEM均可自主設計。
故在此介紹現有的安全進入方案(圖2),其安全訪問過程同圖1所示,但種子采用動態種子形式且在安全訪問Key比對環節增加計數器,如比對不成功計數器+1,當計數器達到3時,控制器安全訪問通道關閉且在規定時間內不再開啟(該時間一般設定為60s)。

圖2 安全訪問方案
根據以上安全訪問方案,可以分析得出其風險主要存在于下列場景。
場景1:在4S店曾經工作過的售后人員已知一系列的Seed及其對應的Key(表1),如果在診斷儀請求動態種子的過程中,診斷儀可以通過多次請求到需求種子(如種子A),并手動發送診斷指令將對應的Key(A’)發送給控制器,則可通過非授權診斷儀進入安全訪問。
場景2:動態隨機種子產生方式主要有通過軟件生成隨機種子和通過種子發生器硬件生成隨機種子兩種方式。如果采用軟件生成隨機種子,在控制器內部設置相應的隨機種子庫,每次從庫中隨機選擇種子。如該種子庫容量為N(一般設置為10000),則兩次種子相同的概率為1/N。假如表1中容量為m,允許請求次數為k,則出現表1中種子的概率為mk/N。如果采用隨機種子發生器,其隨機種子庫容量為232,則兩次種子相同的概率為1/232,也同樣假設表1中容量為m,允許請求次數為k,則出現表1中種子的概率為mk/232。表1中容量OEM是不可控制的,但允許請求次數k越小且隨機種子庫數量越大則出現表1中種子的概率就越小。因而要盡量選用隨機種子發生器生成隨機種子并盡量減少允許請求次數k。

表1 預期Seed與Key對應表
為了應對場景1和場景2中風險,可以通過兩種方案解決。
方案1:在安全訪問全過程中均采用靜態種子。
方案2:在安全訪問全過程中采用動態種子,但在控制器向診斷儀等設備“回復動態種子”環節加入計數器。
從種子發送邏輯是否變化、計數器是否增加、NRC使用邏輯及規則是否變化、方案復雜度等方面對以上兩個方案進行詳細分析,具體如圖3所示。

圖3 方案對比
方案1邏輯簡單,且計數器NRC使用邏輯均不發生變化,只需改為靜態種子。而方案2方案復雜且更改較大,故不建議使用。
如果一定要采用動態種子方式,為了最大化控制場景1及場景2中風險,建議采用種子發生器硬件方式進行隨機種子生成,并在控制器進行隨機種子發送環節采用和Key比對環節同樣的策略。即如果診斷儀等設備持續請求動態種子,而不進行Key計算及比對,則每請求一次種子其計數器+1,并給出帶有響應NRC的否定響應。直至計數器達到3則控制器安全訪問通道關閉且在規定時間內不再開啟(該時間一般設定為60s)。方案2具體實現邏輯見圖4。

圖4 方案2實現邏輯
通過對控制器安全進入方案的優化分析,明確了其安全進入策略及方法,且目前已應用于車型實踐。安全訪問作為控制器進入的重要通道,只有進行有效控制才能有效降低其信息安全風險,從而保障車輛安全穩定的運行。