1 摘要
汽車安全離不開安防,例如,只有通過安防措施保護(hù)制動(dòng)ECU(電子控制單元)固件的完整性和真實(shí)性,才能保證汽車的制動(dòng)安全,防止惡意修改固件等威脅。
安全需要安防的另一個(gè)示例是板載網(wǎng)絡(luò),板載網(wǎng)絡(luò)將關(guān)鍵數(shù)據(jù)從傳感器傳輸?shù)街苿?dòng)ECU。只有通過安防措施防止板載網(wǎng)絡(luò)抵御修改數(shù)據(jù)、注入消息和拒絕服務(wù)等威脅,才能保證制動(dòng)ECU及時(shí)收到正確的傳感器值。
人們希望在汽車中推出Android?或MeeGo?等開放的軟件平臺(tái),從而出現(xiàn)了一個(gè)全新的安全和安防挑戰(zhàn):為了允許通過按鈕與用戶進(jìn)行交互并為導(dǎo)航應(yīng)用從汽車提取當(dāng)前車速、剩余油量、行駛里程、位置等信息,軟件平臺(tái)及其應(yīng)用程序需要參與板載汽車通信。然而,需要保護(hù)汽車不出應(yīng)用故障。虛擬化以及運(yùn)行軟件平臺(tái)(包括沙箱內(nèi)的應(yīng)用程序)是在ECU內(nèi)實(shí)現(xiàn)保護(hù)的安防措施之一。
在上述情況下,安防措施完善了安全性。然而,在一些情況下,安防需求與安全需求相互矛盾。例如,要保護(hù)固件的保密性,在組裝了ECU后便以不可逆地方式禁用微控制器的調(diào)試端口。如果由于ECU發(fā)生故障而導(dǎo)致返修,那么被禁用的調(diào)試端口會(huì)導(dǎo)致無法在微控制器內(nèi)進(jìn)行根本原因分析。特別是無法分析是否有軟件、配置或硬件缺陷。新興的功能安全標(biāo)準(zhǔn)ISO26262要求調(diào)查現(xiàn)場返修,以便檢測系統(tǒng)故障,然后啟動(dòng)召回。只有借助智能安防生命周期和安全調(diào)試等方法,才能滿足安全需求并在現(xiàn)場返修時(shí)分析根本原因。
本文介紹了先進(jìn)的微控制器的主要安全特性,以及如何應(yīng)用這些特性確保汽車安全:具體而言,本文涵蓋了安全啟動(dòng)、組件保護(hù)和虛擬化。此外,本文也概述了對(duì)保證安全和處理現(xiàn)場返修的解決方案。
2 簡介
在過去的幾年里,汽車微控制器(MCU)的安全特性變得越來越重要。這種趨勢受到傳統(tǒng)的安全使用案例的推動(dòng),例如防盜裝置或組件保護(hù),可防止汽車被盜。然而,車對(duì)車通信等新的使用案例及更高的安全性要求也增加了安全需求。對(duì)于這些用例,汽車行業(yè)開始制定安全硬件擴(kuò)展(SHE)功能規(guī)范等規(guī)范,或EVITA項(xiàng)目提出的安全架構(gòu)。
半導(dǎo)體公司開始在新一代微控制器中實(shí)施這些規(guī)范。這項(xiàng)工作的第一批成果之一便是Qorriva MPC564xB/C系列,該系列實(shí)現(xiàn)了一個(gè)易于使用的安全模塊,以滿足SHE規(guī)范要求。
i.MX系列等汽車處理器植根于消費(fèi)電子市場,現(xiàn)在已經(jīng)打入汽車市場,以實(shí)現(xiàn)最先進(jìn)的駕駛員信息娛樂系統(tǒng)。這些處理器提供硬件安全,支持復(fù)雜的數(shù)字版權(quán)管理系統(tǒng)。
3 Qorivva MPC564xC/B系列
QorivvaMPC564xC/B系列32位微控制器面向安全的、新一代高端汽車車身控制模塊(BCM)和網(wǎng)關(guān)應(yīng)用。它提供高度集成,可以滿足OEM和一級(jí)客戶對(duì)增強(qiáng)功能集和增加內(nèi)存空間的日益增長的需求。
從安全性角度來看,MPC564xC/B包含一個(gè)加密服務(wù)引擎(CSE)。CSE是一組加密硬件特性,允許在ECU之間安全、可信任地傳輸信息。
MPC564xC/B系列還具有雙Power Architecture?內(nèi)核選項(xiàng),提供近300DMIP的處理功能和低功耗待機(jī)/等待模式,幫助降低功耗,還具有廣泛的通信外設(shè)集,面向與BCM/網(wǎng)關(guān)模塊對(duì)接的廣泛的子系統(tǒng)。此外,這些可擴(kuò)展器件都由使能生態(tài)系統(tǒng)支持,該生態(tài)系統(tǒng)包括軟件驅(qū)動(dòng)程序、操作系統(tǒng)和配置代碼,以幫助您快速部署您的設(shè)計(jì)。圖1展示了Qorivva MPC564xC/B框圖。
圖1:Qorriva MPC564xC/B框圖
3.1 加密服務(wù)引擎(CSE)的安全特性
加密服務(wù)引擎(CSE)是集成在Qorriva MPC5464中的加密硬件模塊。CSE模塊實(shí)現(xiàn)安全硬件擴(kuò)展(SHE)功能規(guī)范中描述的安全功能。圖2展示了CSE模塊的框圖。
圖2:CSE框圖
CSE的設(shè)計(jì)包括一個(gè)帶有一組內(nèi)存映射寄存器的主機(jī)接口,這些寄存器被CPU用于發(fā)起加密命令。此外,還有一個(gè)系統(tǒng)總線接口允許CSE直接訪問系統(tǒng)內(nèi)存。在這里,CSE模塊的行為與任意其他主機(jī)相似。通過主機(jī)接口,應(yīng)用程序可以配置和控制CSE,例如使CSE進(jìn)入低功耗模式,中斷完成的命令處理或暫停命令處理。狀態(tài)和錯(cuò)誤寄存器將提供深入的系統(tǒng)信息。如需完整的CSE命令列表,請(qǐng)參考MPC564xC/B參考手冊(cè)[3]。兩個(gè)專用系統(tǒng)閃存塊被CSE用于加密密鑰存儲(chǔ)。其他主機(jī)無法從系統(tǒng)訪問這些模塊,因此這些模塊被稱為安全閃存。
CSE模塊的AES塊作為從機(jī)連接到CSE模塊的內(nèi)部總線。它處理加密/解密,并提供基于密文的消息認(rèn)證碼(CMAC)。CMAC功能用于實(shí)現(xiàn)安全啟動(dòng)機(jī)制。
隨機(jī)數(shù)生成器包括一個(gè)偽隨機(jī)數(shù)生成器(PRNG)。PRNG的種子由真隨機(jī)數(shù)發(fā)生器(TRNG)生成。
CSE控制通過測試接口從外部訪問安全閃存,在生產(chǎn)過程中使用該功能,也用于現(xiàn)場返修驗(yàn)證。當(dāng)Qorriva MPC564xC/B半導(dǎo)體從飛思卡爾工廠出廠時(shí),測試接口是打開的,當(dāng)加密密鑰被編程到器件中后該接口將關(guān)閉。
質(zhì)量工程師可以使用SHE規(guī)范中描述的CMD_DEBUG函數(shù)重新打開測試接口。CMD_DEBUG函數(shù)將刪除安全存儲(chǔ)器中的所有數(shù)據(jù),然后才會(huì)授權(quán)訪問測試接口。CMD_DEBUG函數(shù)的一個(gè)輸入參數(shù)為MASTER_KEY,這是一個(gè)單獨(dú)的預(yù)編程128位值,對(duì)于各個(gè)器件都不同。只有MASTER_KEY的知識(shí)載體才能成功地啟動(dòng)CMD_DEBUG函數(shù)。
在附著了調(diào)試器后,可以單獨(dú)禁用加密密鑰。禁用密鑰意味著CSE可用該密鑰拒絕任何加密功能。
3.2 CSE支持的一些用例
CSE有助于實(shí)現(xiàn)下列用例或系統(tǒng):
?防盜裝置
?組件保護(hù)
?安全閃存編程
?數(shù)據(jù)集保護(hù)(例如行駛里程)
?防止芯片調(diào)節(jié)
目前還有許多用例,將來會(huì)出現(xiàn)更多。以下段落詳細(xì)描述了兩個(gè)重要的使用案例。
3.2.1 安全啟動(dòng)和信任鏈
當(dāng)MPC564xC/B重置后,CSE將在公共閃存中自動(dòng)驗(yàn)證陣列。該陣列的基地址和長度由開發(fā)人員指定。同一個(gè)地址條目被用作主內(nèi)核的第一個(gè)指令地址。
CSE在該陣列外計(jì)算CMAC值,并將其與存儲(chǔ)在安全內(nèi)存中的預(yù)先計(jì)算的值進(jìn)行比較。根據(jù)比較結(jié)果,CSE將提供加密服務(wù)或不提供。由于系統(tǒng)閃存較大-MPC564xC/B提供高達(dá)3MB的閃存-因此安全啟動(dòng)過程可能需要一些時(shí)間。由于這個(gè)原因,開發(fā)人員可以設(shè)置一個(gè)信任鏈。在這種情況下,閃存驗(yàn)證步驟被分為幾個(gè)子步驟。第一個(gè)閃存塊由CSE驗(yàn)證,如前所述;對(duì)以下閃存塊的驗(yàn)證必須由主內(nèi)核通過已經(jīng)過驗(yàn)證的程序代碼觸發(fā)。
3.2.2 組件保護(hù)
組件保護(hù)功能防止從汽車拆除單個(gè)ECU,并在其他汽車中重復(fù)使用。通常盜取汽車的目的是為了將單個(gè)ECU重新銷售到零件市場。
OEM現(xiàn)在可以用一個(gè)安全組件保護(hù)系統(tǒng)解決幾個(gè)問題。首先,汽車制造商可以減少被盜汽車的數(shù)量;其次,他們可以防止對(duì)信譽(yù)和配置產(chǎn)生負(fù)面影響;第三,他們可以保護(hù)自己的售后業(yè)務(wù)。
基于CSE的組件保護(hù)系統(tǒng)似乎能夠達(dá)到上述目的。最有價(jià)值的ECU將包含一個(gè)帶有CSE模塊的微控制器??梢酝ㄟ^設(shè)計(jì)分配一個(gè)或多個(gè)主ECU,也可以使用特定算法進(jìn)行動(dòng)態(tài)分配。主ECU將輪詢組件保護(hù)系統(tǒng)的所有其他ECU,并要求一個(gè)特定答案(例如加密的唯一ID)。在這種情況下,只有帶有正確的保密密鑰的ECU才能發(fā)回一個(gè)有效的響應(yīng)。此外,主ECU可以使用特定汽車內(nèi)組裝的所有ECU數(shù)據(jù)庫交叉校驗(yàn)收到的ID。
在使用汽車時(shí)可定期進(jìn)行組件檢查。如果主節(jié)點(diǎn)在汽車網(wǎng)絡(luò)中檢測到未經(jīng)授權(quán)的ECU,它能夠作出反應(yīng)。
4 i.MX51/53系列
飛思卡爾基于汽車ARM?的i.MX51/53處理器提供先進(jìn)的性能,可以驅(qū)動(dòng)最新的汽車系統(tǒng)。這些處理器適用于需要高級(jí)用戶界面、先進(jìn)的視頻處理功能、2D和3D圖像、多個(gè)連接選項(xiàng)以及高級(jí)系統(tǒng)集成的應(yīng)用。基于在消費(fèi)電子市場獲得成功的i.MX515和i.MX535,i.MX51/53系列汽車處理器將帶來消費(fèi)電子用戶體驗(yàn),并將器件連接到未來的汽車。圖3展示了i.MX515框圖示例。
圖3:i.MX515框圖
4.1 i.MX汽車器件的主要安全特性
安全是對(duì)使用i.MX51/53創(chuàng)建的平臺(tái)的通用要求,盡管對(duì)平臺(tái)和市場的具體需求差別很大。便攜式消費(fèi)電子設(shè)備上需要保護(hù)的資產(chǎn)的類型和成本與汽車或工業(yè)平臺(tái)上需要保護(hù)的資產(chǎn)類型和成本差別很大,這同樣適用于威脅這些資產(chǎn)的攻擊的種類和資源水平。平臺(tái)設(shè)計(jì)人員必須選擇合適的應(yīng)對(duì)措施,以滿足相關(guān)的平臺(tái)安全需求。
對(duì)于需要滿足各個(gè)市場要求的平臺(tái)設(shè)計(jì)人員來說,i.MX51/53融合了廣泛的安全特性,這些安全特性可以單獨(dú)使用,也可以協(xié)同使用來支撐平臺(tái)安全架構(gòu)。i.MX51/53的大多數(shù)安全特性提供針對(duì)特定類型攻擊的防御功能,可根據(jù)所需的保護(hù)程度配置不同的防御級(jí)別。這些特性的目的是協(xié)同工作,也可以與適當(dāng)?shù)能浖蓙韯?chuàng)建防御層。除了保護(hù)功能外,i.MX51/53還包含一個(gè)通用加速器,以提高選定行業(yè)標(biāo)準(zhǔn)加密算法的性能。
i.MX51/53的安全組件包括:
?Cortex?-A8平臺(tái)的TrustZone?架構(gòu),帶有TrustZone?中斷控制器和看門狗
?系統(tǒng)啟動(dòng)的高保證啟動(dòng)(HAB)特性
?安全控制器(SCC),有16KB的片上安全RAM
?對(duì)稱/不對(duì)稱散列和隨機(jī)加速器(SAHARA)
?運(yùn)行時(shí)完整性校驗(yàn)(RTIC)
?安全實(shí)時(shí)時(shí)鐘(SRTC)
?IC識(shí)別模塊(IIM),帶有片上電熔絲
?中央安全單元(CSU)
?系統(tǒng)JTAG控制器(SJC)
?多主機(jī)多內(nèi)存接口(M4IF)的水印機(jī)制
?智能內(nèi)存直接訪問(SDMA)控制器的鎖定模式
4.2 虛擬化
現(xiàn)代化信息娛樂系統(tǒng)需要滿足反方向要求。一方面,它們需要支持消費(fèi)電子領(lǐng)域的復(fù)雜的多媒體算法、輸入設(shè)備(例如觸摸控制型輸入設(shè)備)和用戶設(shè)備(如不同的存儲(chǔ)介質(zhì)、文件系統(tǒng))。另一方面,它們必須能夠?qū)崟r(shí)處理來自汽車網(wǎng)絡(luò)的消息,并防止在消費(fèi)電子產(chǎn)品中好用的應(yīng)用(如應(yīng)用商店)在汽車中運(yùn)用時(shí)不會(huì)出現(xiàn)故障。
i.MX中的硬件虛擬化特性能夠解決該問題。設(shè)計(jì)人員可以建立一個(gè)在Linux或Android?等強(qiáng)大的操作系統(tǒng)虛擬實(shí)例中運(yùn)行的信息娛樂系統(tǒng)。另一個(gè)實(shí)例可以執(zhí)行AUTOSAR?,它能夠滿足汽車領(lǐng)域的硬實(shí)時(shí)要求。
為了保護(hù)這兩個(gè)實(shí)例并為其中一個(gè)實(shí)例(如CAN控制器)分配特定的外設(shè)模塊,TrustZone架構(gòu)能夠有所幫助。
TrustZone在非安全模式和安全模式中復(fù)制內(nèi)核。根據(jù)內(nèi)核模式,外設(shè)模塊能夠提供不同的視圖、行為或功能集。
5 安防和安全
在一些情況下,安防要求和安全要求相互矛盾。安防通常需要限制訪問微控制器的功能和數(shù)據(jù),而在現(xiàn)場返修情況下的功能安全(即發(fā)生故障的ECU被從現(xiàn)場退回給制造商)則要求完全訪問微控制器或ECU的處理器,以便分析現(xiàn)場返修的根本原因。即將發(fā)布的功能安全標(biāo)準(zhǔn)ISO26262要求分析現(xiàn)場返修,以便檢測ECU的系統(tǒng)故障,然后啟動(dòng)召回。
在安全生命周期中,安防和安全要求都能夠滿足。在該生命周期中,ECU通過車間、生產(chǎn)、現(xiàn)場和返修幾個(gè)狀態(tài)。通過對(duì)微控制器/處理器進(jìn)行授權(quán)(如提供一個(gè)保密密鑰)改變狀態(tài)。每個(gè)狀態(tài)可用的功能和數(shù)據(jù)都是有限的,例如微控制器/處理器的調(diào)試端口在生產(chǎn)狀態(tài)被啟用,在現(xiàn)場狀態(tài)則被禁用。
如第3.1節(jié)所述,如果調(diào)試器被附著到微控制器,那么Qorriva MPC564xC/B系列的CSE模塊會(huì)禁用加密密鑰。禁用哪個(gè)加密密鑰取決于每個(gè)密鑰的DU(調(diào)試器用途)標(biāo)識(shí)。如果設(shè)置了一個(gè)密鑰的DU標(biāo)識(shí),那么在附著了調(diào)試器后該密鑰會(huì)被禁用,因此,只要附著了該調(diào)試器,則無法使用該密鑰加密或解密數(shù)據(jù)或驗(yàn)證閃存(參見第3.2.1節(jié)“安全啟動(dòng)和信任鏈”)。更改DU標(biāo)識(shí)需要用一個(gè)保密密鑰對(duì)微控制器進(jìn)行授權(quán)。在安全生命周期中,當(dāng)微控制器進(jìn)入現(xiàn)場狀態(tài)后OEM便會(huì)設(shè)置DU標(biāo)識(shí)。如果發(fā)生了現(xiàn)場返修,OEM可以重新設(shè)置DU標(biāo)識(shí),啟用微控制器調(diào)試,以便分析現(xiàn)場返修的根本原因。
對(duì)于調(diào)試,i.MX處理器提供以下安全級(jí)別:
?最高級(jí)別的安全性:完全禁用調(diào)試端口。
?較高級(jí)別的安全性:在調(diào)試器和i.MX處理器之間成功地進(jìn)行了基于密碼的挑戰(zhàn)-響應(yīng)認(rèn)證后,調(diào)試端口被啟用。
?無安全性:完全啟用調(diào)試端口。
使用i.MX處理器中的一次性可編程熔絲配置安全級(jí)別:熔絲燃燒是一個(gè)不可逆的過程,也就是說,一旦熔絲燃燒了便不可能使熔絲返回到其原始狀態(tài)。安全級(jí)別熔絲的燃燒只能提高安全級(jí)別,也就是說,只能從“無安全性”、“較高級(jí)別的安全性”轉(zhuǎn)換為“最高級(jí)別的安全性”,而無法按相反的順序進(jìn)行。
在安全生命周期中,當(dāng)i.MX處理器進(jìn)入現(xiàn)場狀態(tài)后OEM便會(huì)燃燒安全級(jí)別熔絲,達(dá)到“較高級(jí)別的安全性”。如果發(fā)生現(xiàn)場返修,在成功地進(jìn)行了挑戰(zhàn)-響應(yīng)認(rèn)證后,OEM可以啟用調(diào)試端口。
6 總結(jié)與展望
安防與安全是汽車電子系統(tǒng)的兩個(gè)推動(dòng)力。本文介紹了現(xiàn)代汽車微控制器和處理器的各種安全特性,這些特性保障汽車及車內(nèi)人員的安全。
飛思卡爾Qorivva MPC564xC/B系列是第一批融合了加密模塊的面向汽車市場的微控制器。然而,通過車對(duì)車通信主動(dòng)安全或通過應(yīng)用商店實(shí)現(xiàn)汽車個(gè)性化等趨勢將進(jìn)一步增加汽車領(lǐng)域的安全需求。
作者:飛思卡爾半導(dǎo)體 Juergen Frank
本文轉(zhuǎn)摘自電子發(fā)燒友網(wǎng)《汽車電子特刊》5月刊
?
評(píng)論
查看更多