1 摘要
汽車安全離不開安防,例如,只有通過安防措施保護制動ECU(電子控制單元)固件的完整性和真實性,才能保證汽車的制動安全,防止惡意修改固件等威脅。
安全需要安防的另一個示例是板載網絡,板載網絡將關鍵數據從傳感器傳輸到制動ECU。只有通過安防措施防止板載網絡抵御修改數據、注入消息和拒絕服務等威脅,才能保證制動ECU及時收到正確的傳感器值。
人們希望在汽車中推出Android?或MeeGo?等開放的軟件平臺,從而出現了一個全新的安全和安防挑戰:為了允許通過按鈕與用戶進行交互并為導航應用從汽車提取當前車速、剩余油量、行駛里程、位置等信息,軟件平臺及其應用程序需要參與板載汽車通信。然而,需要保護汽車不出應用故障。虛擬化以及運行軟件平臺(包括沙箱內的應用程序)是在ECU內實現保護的安防措施之一。
在上述情況下,安防措施完善了安全性。然而,在一些情況下,安防需求與安全需求相互矛盾。例如,要保護固件的保密性,在組裝了ECU后便以不可逆地方式禁用微控制器的調試端口。如果由于ECU發生故障而導致返修,那么被禁用的調試端口會導致無法在微控制器內進行根本原因分析。特別是無法分析是否有軟件、配置或硬件缺陷。新興的功能安全標準ISO26262要求調查現場返修,以便檢測系統故障,然后啟動召回。只有借助智能安防生命周期和安全調試等方法,才能滿足安全需求并在現場返修時分析根本原因。
本文介紹了先進的微控制器的主要安全特性,以及如何應用這些特性確保汽車安全:具體而言,本文涵蓋了安全啟動、組件保護和虛擬化。此外,本文也概述了對保證安全和處理現場返修的解決方案。
2 簡介
在過去的幾年里,汽車微控制器(MCU)的安全特性變得越來越重要。這種趨勢受到傳統的安全使用案例的推動,例如防盜裝置或組件保護,可防止汽車被盜。然而,車對車通信等新的使用案例及更高的安全性要求也增加了安全需求。對于這些用例,汽車行業開始制定安全硬件擴展(SHE)功能規范等規范,或EVITA項目提出的安全架構。
半導體公司開始在新一代微控制器中實施這些規范。這項工作的第一批成果之一便是Qorriva MPC564xB/C系列,該系列實現了一個易于使用的安全模塊,以滿足SHE規范要求。
i.MX系列等汽車處理器植根于消費電子市場,現在已經打入汽車市場,以實現最先進的駕駛員信息娛樂系統。這些處理器提供硬件安全,支持復雜的數字版權管理系統。
3 Qorivva MPC564xC/B系列
QorivvaMPC564xC/B系列32位微控制器面向安全的、新一代高端汽車車身控制模塊(BCM)和網關應用。它提供高度集成,可以滿足OEM和一級客戶對增強功能集和增加內存空間的日益增長的需求。
從安全性角度來看,MPC564xC/B包含一個加密服務引擎(CSE)。CSE是一組加密硬件特性,允許在ECU之間安全、可信任地傳輸信息。
MPC564xC/B系列還具有雙Power Architecture?內核選項,提供近300DMIP的處理功能和低功耗待機/等待模式,幫助降低功耗,還具有廣泛的通信外設集,面向與BCM/網關模塊對接的廣泛的子系統。此外,這些可擴展器件都由使能生態系統支持,該生態系統包括軟件驅動程序、操作系統和配置代碼,以幫助您快速部署您的設計。圖1展示了Qorivva MPC564xC/B框圖。
圖1:Qorriva MPC564xC/B框圖
3.1 加密服務引擎(CSE)的安全特性
加密服務引擎(CSE)是集成在Qorriva MPC5464中的加密硬件模塊。CSE模塊實現安全硬件擴展(SHE)功能規范中描述的安全功能。圖2展示了CSE模塊的框圖。
圖2:CSE框圖
CSE的設計包括一個帶有一組內存映射寄存器的主機接口,這些寄存器被CPU用于發起加密命令。此外,還有一個系統總線接口允許CSE直接訪問系統內存。在這里,CSE模塊的行為與任意其他主機相似。通過主機接口,應用程序可以配置和控制CSE,例如使CSE進入低功耗模式,中斷完成的命令處理或暫停命令處理。狀態和錯誤寄存器將提供深入的系統信息。如需完整的CSE命令列表,請參考MPC564xC/B參考手冊[3]。兩個專用系統閃存塊被CSE用于加密密鑰存儲。其他主機無法從系統訪問這些模塊,因此這些模塊被稱為安全閃存。
CSE模塊的AES塊作為從機連接到CSE模塊的內部總線。它處理加密/解密,并提供基于密文的消息認證碼(CMAC)。CMAC功能用于實現安全啟動機制。
隨機數生成器包括一個偽隨機數生成器(PRNG)。PRNG的種子由真隨機數發生器(TRNG)生成。
CSE控制通過測試接口從外部訪問安全閃存,在生產過程中使用該功能,也用于現場返修驗證。當Qorriva MPC564xC/B半導體從飛思卡爾工廠出廠時,測試接口是打開的,當加密密鑰被編程到器件中后該接口將關閉。
質量工程師可以使用SHE規范中描述的CMD_DEBUG函數重新打開測試接口。CMD_DEBUG函數將刪除安全存儲器中的所有數據,然后才會授權訪問測試接口。CMD_DEBUG函數的一個輸入參數為MASTER_KEY,這是一個單獨的預編程128位值,對于各個器件都不同。只有MASTER_KEY的知識載體才能成功地啟動CMD_DEBUG函數。
在附著了調試器后,可以單獨禁用加密密鑰。禁用密鑰意味著CSE可用該密鑰拒絕任何加密功能。
3.2 CSE支持的一些用例
CSE有助于實現下列用例或系統:
?防盜裝置
?組件保護
?安全閃存編程
?數據集保護(例如行駛里程)
?防止芯片調節
目前還有許多用例,將來會出現更多。以下段落詳細描述了兩個重要的使用案例。
3.2.1 安全啟動和信任鏈
當MPC564xC/B重置后,CSE將在公共閃存中自動驗證陣列。該陣列的基地址和長度由開發人員指定。同一個地址條目被用作主內核的第一個指令地址。
CSE在該陣列外計算CMAC值,并將其與存儲在安全內存中的預先計算的值進行比較。根據比較結果,CSE將提供加密服務或不提供。由于系統閃存較大-MPC564xC/B提供高達3MB的閃存-因此安全啟動過程可能需要一些時間。由于這個原因,開發人員可以設置一個信任鏈。在這種情況下,閃存驗證步驟被分為幾個子步驟。第一個閃存塊由CSE驗證,如前所述;對以下閃存塊的驗證必須由主內核通過已經過驗證的程序代碼觸發。
3.2.2 組件保護
組件保護功能防止從汽車拆除單個ECU,并在其他汽車中重復使用。通常盜取汽車的目的是為了將單個ECU重新銷售到零件市場。
OEM現在可以用一個安全組件保護系統解決幾個問題。首先,汽車制造商可以減少被盜汽車的數量;其次,他們可以防止對信譽和配置產生負面影響;第三,他們可以保護自己的售后業務。
基于CSE的組件保護系統似乎能夠達到上述目的。最有價值的ECU將包含一個帶有CSE模塊的微控制器。可以通過設計分配一個或多個主ECU,也可以使用特定算法進行動態分配。主ECU將輪詢組件保護系統的所有其他ECU,并要求一個特定答案(例如加密的唯一ID)。在這種情況下,只有帶有正確的保密密鑰的ECU才能發回一個有效的響應。此外,主ECU可以使用特定汽車內組裝的所有ECU數據庫交叉校驗收到的ID。
在使用汽車時可定期進行組件檢查。如果主節點在汽車網絡中檢測到未經授權的ECU,它能夠作出反應。
評論
查看更多