萬開明 洪雷

摘 要:OTA技術在滿足了智能網聯汽車軟件快速迭代,也在一定程度上降低車企的售后成本。OTA升級有多種方案策略,車企需要尋找平衡成本和車輛停機時間的策略。本文主要概述了車載OTA,OTA升級流程及安全策略。
關鍵詞:OTA;ECU升級;安全
1 OTA技術簡介
OTA(Over-the-Air Technology)空中下載技術,即通過移動網絡從遠程服務器無線下載新的軟件更新包對自身系統進行升級。其最早出應用在手機上。在汽車上的應用,即實現車輛系統的在線升級更新,通過車輛端的網聯模塊OTA管理器,實現整車模塊的數據傳輸、軟件下載、代碼更新等。汽車行業應用優勢已經確立:節省制造商的資金,可立即修復關鍵軟件漏洞,并允許在其期間隨時向車輛添加引人注目的新功能生命周期。
2 車載OTA架構
圖為車載OTA系統架構。車輛通過蜂窩網絡安全連接到OME服務器,服務器將更新的固件安全地發送到車輛的遠程信息處理單元,然后發送到OTA管理器。OTA管理器管理車輛所有ECU的更新。它控制分發ECU固件更新,告知何時執行更新。在需要同時更新多個ECU的情況下,這一點非常重要,例如,向車輛添加涉及多個ECU的新功能。更新完成后,OTA管理器向OEM發送確認。
外部閃存可以安裝在運行 OTA管理器的ECU 上,以便存儲固件更新,直到需要固件更新。外部閃存還可用于存儲車輛ECU 的固件備份,在ECU更新出現重大故障時可調用該備份。備份通過加密和身份驗證進行保護,防止被篡改。
OTA管理器存放有車輛所有 ECU序列號和當前固件版本信息表。OTA管理器在收到ECU固件升級時驗證固件信息,并確認是否已被授權用于此車。如果ECU沒有安全功能,則由OTA管理器負責解密和驗證升級文件。
3 ECU升級流程
ECU升級固件包有兩種格式:
● 完整固件升級:優點是不依賴以前的固件,因此即使以前的版本已損壞,也可以進行更新。缺點是文件傳輸時間長,所需接收存儲空間大。
● 差分文件升級:在OEM服務器端對比新老固件,并創建一個包含它們之間的差異列表的差分文件。根據更改量(通常為原始固件大小的10%),因此傳輸速度更快。這也意味著差異依賴于老的固件版本。
無論升級固件文件格式如何,都有兩種方法來執行更新:
● “A/B”方法:“主”閃存中包含當前固件,“次”閃存中存放新固件,這會使每個ECU閃存量翻倍。從用戶角度來看,此方法是理想的,因為ECU可以使用主存儲保持正常運行,而新固件可以在后臺寫入輔助存儲。更新完成后,ECU可以在合適的時間使用新固件(在輔助閃存塊中)。由于始終有固件工作,因此不會將ECU置于無法工作的危險狀態,因為它始終可以立即“回滾”到以前的工作固件,缺點是在MCU上需要刷新兩次。
● “原位”方法:設備上僅存在一個版本的固件,此固件將被擦除和重寫。當ECU處于正常運行狀態時無法更新,即車輛將在一段時間內無法運行。這一時間段將主要由重刷ECU所需時間決定。車輛中的主要 ECU,如發動機控制器,將具有幾兆閃存,如果需要重新刷寫完整固件,可能需要幾十秒才能完成。由于“原位”方法中只有一個版本的固件存在,因此在更新過程中出現錯誤或重置可能難以恢復,導致模塊甚至車輛無法工作。
4 OTA升級安全保障
遠程更新車輛固件為黑客開辟了新的攻擊媒介。黑客的兩個主要動機是使用 OTA 機制重新編程關鍵 ECU最終控制或竊取車輛。OEM可通過HMAC、CMAC或數字簽名等方法來保護固件的真實性和完整性,避免固件遭到篡改。
固件的真實性檢查,可以保證在更新過程中只使用受信任的固件;但是,黑客可能仍然能夠讀取固件二進制源碼來反向設計源代碼或竊取數據,這可能會導致 IP 盜竊或隱私問題??赏ㄟ^固件加密來防止這種情況。
通過完整性檢查,可防止"中間人"攻擊,保護接收固件鏡像的通道安全。同時,應防止協調ECU升級的OTA管理器應用程序被篡改。
總之,應采取以下反制措施:
● 保護固件的真實性和完整性,防止黑客運行修改后的代碼。
● 加密固件,防止黑客訪問代碼(IP)和數據。
● 在車輛和OEM服務器之間建立安全的端到端通信,以防止中間人攻擊。
● 確保OTA管理器應用程序的安全。
4.1 安全方案
通常車輛通過T-Box模塊與OEM服務器連接,可使用廣泛用于成熟應用于網銀業務的傳輸層安全協議來確保移動網絡通信安全。OTA管理器在收到安全升級文件請求后,對比存放ECU當前序列號和固件版本號列表,驗證升級文件對車輛是否有效。
此外,升級文件從OEM服務器到目標ECU都要受到保護。如果要更新的 ECU 支持固件解密和身份驗證,則可以將升級文件直接從OTA管理器發送到目標ECU。但并非所有車輛中的 ECU 都具有安全密鑰存儲和硬件加速安全功能。此時OTA管理器必須支持對升級文件進行身份驗證和解密,并將解密文件通過內部網絡發送到目標 ECU。缺少硬件安全功能的ECU無法保護總線傳輸的升級文件。然而,要對此進行黑客攻擊,需要實際訪問車輛,并知道需要訪問哪條總線。若仍無法承擔此風險,則需要升級帶有安全功能的ECU硬件后才能使用OTA升級。
4.2 OTA管理器布置節點
OTA 管理器的位置對整車OTA升級的安全性有很大影響。網關作為外部和內部網絡的防火墻,且與所有車載網絡連接。OTA管理器和網關類似,是管理從外部到內部ECU升級的橋梁軟件,因此將其布置運行在網關上,可以在不對現有網絡體系結構進行調整下執行其工作。
4.3 ECU微控制器功能
幾乎所有車輛 ECU 都能夠單獨使用軟件機制進行更新。但OEM及用戶對更新時長和安全性有非常高的要求。通過使用提供特定硬件功能的微控制器,可以更快、更安全、更減少車輛停機時間來處理更新:
讀寫功能:另一個閃存塊擦除或刷寫時可讀取訪問閃存塊。允許應用程序在更新過程中繼續執行。
重映射閃存:允許在閃存中存儲在不同物理位置的新固件鏡像和舊固件鏡像之間進行即時切換。
加密安全:可存儲用于升級解密和身份驗證的密鑰。
生命周期管理:可安全記錄當前固件版本,并防止非法回滾到老版本或安裝未授權軟件。
小代碼閃存塊:擁有更小的閃存塊可以提高更新速度和效率。就地差分更新通常只會修改少量位置。例如,如果這些位置位于 256K 閃存塊中,則由于必須備份整個模塊,然后擦除并重新編程,則與該位置位于 16K 閃存塊中相比,需要更多備份內存和更多時間才能完成。
可鎖定的閃存區域:在更新過程中為關鍵代碼(如引導加載程序)提供額外保護,以防止意外刪除。
重置檢測:能夠在更新過程中檢測意外重置。升級更新期間的重置會使閃存處于未定義狀態;在退出重置時引導程序需能嘗試啟動恢復。
多核:可以配置多核設置,允許一個內核執行更新,而另一個內核專用于運行現有應用程序,從而最大限度地減少性能影響。
系統完整性檢查:能在更新時檢測和防止系統異常。
5 總結
對車輛ECU執行OTA更新是一項基本功能。鑒于車輛中許多不同類型的網絡上的各種不同ECU,沒有一個更新過程適用于所有ECU。從駕駛員的角度來看,A/B方法具有巨大的優勢,因為更新可以在零車輛停機時間下執行,但是這可能是一種相對成本更高的方法,并且不太可能與現有的傳統 ECU 配合使用。原位更新方法可能更具成本效益,但代價是要求車輛停機。應評估每個 ECU,尋找平衡成本和車輛停機時間的策略。整個更新過程必須由中央網關管理跟蹤固件版本、分發更新、同步固件切換,以確保整個過程安全。
參考文獻:
[1]耿琦.基于OTA 技術的車輛遠程數據刷寫研究與應用[J].電子測試,2017(15).
[2] Subir Halder,Secure OTA Software Updates in Connected Vehicles:A Survey[J].Cryptography and Security,Apr 2019.
[3]Nilsson,Dennis Kengo and Ulf E. Larson. “Secure Firmware Updates over the Air in Intelligent Vehicles”[J]ICC Workshops-2008 IEEE International Conference on Communications Workshops,May 2008.