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