洪雷 萬開明

摘 要:CAN(Controller Area Network)總線技術的發展令人驚嘆,基于CAN的車載總線實現ECU(Electronic Control Unit)分布式實時數據通訊,自由通信,總線仲裁。本文提出了在CAN協議基礎上增加ECU間(Key)密鑰分配與信息認證,簡稱MAC(Message Authentication Code,信息認證碼)。本文會由淺入深闡述當前CAN總線協議基礎上的MAC的工作原理與實現方式。
關鍵詞:CAN總線;信息認證;MAC(Message Authentication Code)
1 CAN總線簡介
CAN(Controller Area Network)網絡由德國Bosch博世公司1991發明,旨在提供一種多ECU(Electronic Control Unit)高性能,穩定性高,成本低,擴展性強,并兼顧總線仲裁的車載總線協議。
2 MAC 信息認證碼簡介
MAC(信息認證碼)通過車載CAN總線中ECU間網絡報文的認證,確認信息來源。報文的發送方計算并生成認證碼MAC(Message Authentication Code)并包含在報文Data Field中,MAC的數值需要證實數據的完整性和真實性。接收方需要在接受與處理信息之前確認MAC的合法性。設計意圖主要有以下幾點:
2.1 CAN協議兼容性
MAC數據信息需要支持并符合已有CAN總線協議,無需對已有CAN總線協議進行修改。
2.2 ECU硬件兼容性
MAC的布置無需對ECU模塊硬件進行升級或更換,僅更新ECU的軟件即可實現MAC認證功能。
2.3 實時性
MAC認證不應消耗過多ECU運算資源,避免因MAC的認證影響車輛正常使用與運行。
2.4 低成本
MAC認證的實施成本低,ECU硬件調整,ECU軟件調整費用可控;
2.5 密鑰控制成本
密鑰的生成,存儲,寫入,獲取,重寫,都需要連接OEM后臺服務器,增加或減少ECU不改變已有MAC認證策略;
認證場占用部分CAN協議中的 Data Field(數據場)的優點:
a.CAN協議集成度高,模塊的CAN協議層經歷漫長開發,調整,優化;避免模塊重新開發與調試的高昂費用;
b.CAN協議中除Data Field部分,都定義明確;對ECU軟件與CAN協議進行最小升級實現MAC功能;
c.為向下兼容提供可能。
3 密鑰簡介
MAC的生成與安全訪問(Security Access)計算方式類似。發送方與接收方需要共享密鑰,稱為Symmetric Encryption(成對密鑰)。發送方與接收方生成MAC,認證MAC都需相同的密鑰。在開始通訊前報文的發送方接收方需共享密鑰的寫入。需要特別指出的是成對密鑰無法支持方向性確認。具備確認MAC的真實性的同時也就具有生成MAC的能力。
成對密鑰依需設置多組,整車中網絡報文的發送方,接收方都有明確規定,一組成對密鑰只限于發送方與接受方,無關模塊不寫入成對密鑰。以確保只有已設置權限的獲取成對密鑰的實體才能生成和認證MAC。
成對密鑰存儲在ECU的NVM(Non-Volatile-Memory)中,成對密鑰不能通過診斷命令直接讀取,需要通過模塊指定API調用。
4 防重放計數器(Anti-Replay Counter)
與控制器的Security Access類似,MAC也會遇到非法外置設備的重放入侵,窮舉測試直到找到正確的成對密鑰,防重放場應運而生。非法設備可以通過將監聽到的總線報文重放的方式來實現認證與攻擊。為了解決重放攻擊問題,加入了Anti-Replay Counter意在解決總線報文重放攻擊。
報文的接收方需要能夠判斷出報文是否為重放攻擊,報文本身必須包含信息確保此報文僅被發送了一次,否則蓄意攻擊方可以在不理解總線內容的情況下進行監聽,并在隨后實現重放攻擊,達成與監聽時合法發送方相同的效果。
在認證碼防御的方案中, 常見的防御方案有兩種:
(1)隨機數:發送方與接收方會將隨機數寫入NVM(Non-Volatile-Memory)中,報文中出現NVM中記錄過的隨機數則說明是重放侵入。優點是邏輯簡單,實現方便,缺點是需要記錄的隨機數對NVM的占用較高。
(2)流水號:在發送方與接收方之間增加一個逐步遞增或遞減的標識符,標識符也需要通過加密的方式融合到認證碼場中。發送方的標識符如果不連續則說明是重放侵入。優點:相比于隨機數,流水號方式對NVM的占用較小。
MAC發送方與接受方的關系如上圖:
5 結束語
汽車CAN總線技術是當代汽車行業發展的主流趨勢,伴隨著車輛電器系統的迅速發展,各大主機廠都在考慮在其已有CAN架構電子架構中,實現了MAC總線信息認證功能,實現確認信息來源增強車載CAN總線的安全性的目的。本文介紹的成對密鑰,防重放計數器都是MAC功能實現的核心。
參考文獻:
[1]Bosch.Road Vehicles-Controller area network(CAN)[S].ISO 1898-2,2003.
[2]ISO.Road Vehicles-Unified diagnostic services(UDS)[S].ISO 14229-1,2013.