汽車高級駕駛輔助系統(ADAS)涉及ABS防抱死制動、安全氣囊、剎車控制、轉向控制、引擎控制、巡航控制、啟停、自動泊車、集成導航(GPS與Gallileo)等等,隨著這一系統的被引入,汽車電子生態系統正在變得更加互連且更為復雜。但與此同時,汽車電子器件也取代了很多的瑣碎功能,如車燈控制、空調、電動車窗、引擎啟動、車門開啟、可調及加熱座椅等等。一般來說,車內的每個功能都由一個網絡微控制器(MCU)來管理,這些MCU使用相同的通信總線來交換數據與信息,包括面向動力傳動、底盤與車身電子功能的CAN、FlexRay或LIN總線,以及用于娛樂信息系統的MOST光纖網絡和以太網。
從純粹的機械環境發展到復雜的電子環境,盡管從舒適性以及駕駛員和乘客的主動與被動安防方面來看,確實增加了許多附加價值,但同時,由于這些引擎控制單元(ECU)彼此互連,也引發了隱私與數據可靠性方面的重大安全問題。例如,幾十年前,CAN總線的設計初衷并沒有要求其具有高度的安全性,實際上,車內通信總線內部的任何CAN信息都會發送給系統的其它組成部分,而且不支持任何授權、鑒別和加密協議。現代汽車使用CAN總線交換數據,用來開啟車門和啟動引擎,這些信息在車內的ECU與電子鑰匙內部的ECU之間交換。如果該系統遭到損害,竊賊就能輕易地偷走汽車,而且“黑客”也可以訪問車內GPS來查看汽車常去的地方,從中探知司機在哪里,什么時候汽車無人看管。
此外,用于實現電郵、SMS、視頻流、視頻電話等互聯網移動功能的藍牙、GPRS或UMTS,也擴大了“黑客”的攻擊面,他們可以通過遠程訪問,侵入任何通信和駕駛系統,或者插入惡意軟件來竊取各種數據,如汽車的實時位置、經常使用的路線和完整的對話等。
車載硬件安全架構
顧名思義,“開放系統”是暴露的,它面臨通過多種方式實施各類攻擊的可能性正在持續增加。汽車車身內部與外部通信網絡的不斷發展,正在迅速挑戰汽車電子本身的安全防護能力。
迄今為止,由于最普遍使用的傳輸總線CAN的內部弱點,人們一直從軟件應用的角度來研究“攻擊面”。但現在,行業內開始把注意力轉向硬件架構,以及應該如何“密封”ECU使其難以滲透并避免受到非法操縱,例如未經授權的安裝、惡意軟件上載、“木馬”軟件以及虛假升級等,或者至少能夠限制非法訪問并留下確鑿的篡改證據。
正因為如此,通過硅器件廠商與一家知名汽車OEM廠商的合作,開發出了面向汽車功能的新一代MCU。這類四核微控制器利用專門的安全內核,即HSM(硬件安全模塊),提供安全與防護功能,HSM內部包含系統安全配置、安全啟動、外部訪問保護、閃存保護、加密功能和壽命結束保護等。
圖1 嵌入ECU內部的HSM硬件安全模塊
如圖2所示,HSM模塊嵌入在ECU內部,絕對獨立于其它與內存和外設訪問相關的內核,數據和代碼都有專用的閃存扇區,而且嚴格限于預留訪問。
圖2 五種不同階段的安全功能配置
配置系統安全性
系統安全性配置是在硬件層面保護敏感數據的第一步,在加電之前的重置階段完全控制整個初始配置,防止非法侵入和擅自篡改。
利用設備配置格式(DCF),硅器件廠商和軟件開發商都可以保留所有初始配置,從而可以在啟動階段檢查與擊穿試驗和用戶擊穿試驗內部DCF相關的特殊內存地址、ECC(糾錯碼)錯誤以及奇偶校驗誤差。
在重置階段,利用各種漸進步驟,可以檢查一些安全防護功能。利用這種方式,通過幾個參數進行交叉檢查控制,就可以阻止以多種手段修改特殊內存地址的企圖,或者強行改變啟動以加載新的惡意固件的企圖。
硬件架構規則基于預先定義的設備功能狀態。安全設計人員提供出幾種安全級別,以便軟件開發者在最終實現其應用時擁有較高的自由度。實際上,一些層級較低的軟件應用經常可以交給第三方開發,然后設計和實施遞增的、不可逆的保護,滿足不同開發者提出的要求。此外,多數安全機制在激活時要考慮設備的壽命周期(DLC)情況。硅器件廠商與軟件開發者可以建立五種可能的遞增與不可逆配置,以便實現針對侵入與操縱攻擊的反制措施。
對于每一個階段來說,安全等級都會得到提升,而且不能撤銷。從第二級開始,在客戶交付階段,這個非常有限的安全機制為軟件開發階段提供了最大的自由度,而在現場設備階段則開啟完整的各種安全防護功能。
通常,在JDP生產階段至客戶交付階段的過渡階段,設備從原始生產商手中轉移到第一個軟件開發者手中,后者把MCU整合到更加復雜的系統之中。從客戶交付階段到OEM生產階段,第三方為了保護自己的知識產權,一般會為設備開發最后的軟件應用程序。最終,到達現場設備階段,需要在嵌入汽車的最終應用里面采取一系列控制與不可撤銷的保護措施,來滿足OEM廠商以及系統開發者和汽車制造商的要求。“故障分析”是最后的設備生產階段,用于測試的是被退回到工廠的設備系統,因此在這一過程中,一些相關安全保護功能將被停用,避免MCU因壽命周期保護而被認定為失效。詳情請關注公眾號【車端】
啟動安全機制
在啟動階段,MCU四個內核中只有兩個通過重置被喚醒。這兩個是IOP(輸入輸出處理器)和HSM內核。通過一個DCF記錄,IOP與HSM CPU之間的一個信號交換過程被激活。IOP執行BAF啟動輔助閃存,而HSM CPU執行客戶定義的代碼。IOP內核執行系統設置,如果敏感數據遭到修改或者發現有侵入企圖,HSM內核就會進行各種檢驗,例如閃存完整性檢驗。
安全啟動能夠一直保持并處于受控狀態,同時進入特殊的預定邊界和微啟動階段,與此同時,能夠檢測篡改攻擊或ROM中的固件操縱。在這種情況下,它可以禁用所有的加密功能,使所有密鑰不可用。
POR(加電重置)過程中的IOP內核,如果處于設備的客戶交付階段,則對其編程以便執行BAF輔助閃存。這個BAF是寫入某些內存地址中的嵌入代碼,利用兩種機制加以保護:OTP(一次性可編程)和OPP(程序外保護)。通過這種方式,啟動永遠在受控狀態下執行,也可以利用一個串行引導裝入過程,或者在直接跳轉到應用代碼起點的情況下,把訪問權授予RAM。各種軟件開發者都參與到最后的應用發布中,僅在客戶交付和OEM生產階段啟用BAF,允許上載固件,而在現場設備階段則完全禁用。通過這種方式,應用代碼在執行過程中遭到限制,不可能利用硬件系統資源進行未經授權的固件升級。在現場設備階段,只有OEM廠商開發的應用才能執行固件升級。
防范外部訪問
汽車選用電子器件是因為其可以通過多種通信總線實現先進的互連功能,因此對于安全設計者來說,保護和外部界面的訪問是最大的挑戰。為了能對器件訪問具有較強的選擇性,業內開發出一種多層JTAG安全架構。
JTAG安全架構采用了所謂的“PASS”模塊,除了保護器件閃存訪問的基本任務以外,它利用一種口令機制來限制JTAG端口訪問。因此,JTAG端口得到了嚴格控制,采用一種挑戰/響應協議,封鎖任何自由訪問。
與PASS模塊相配合的還有“審查模塊”,在設備遭到審查或JTAG口令無法識別的時候,啟用閃存讀出保護和調試界面訪問。換句話說,從OEM生產階段及后續階段,審查模塊可以讓設備被審查或不被審查,在授權調試器訪問的時候,修改閃存可以被JTAG界面讀取。
此外,設備訪問也依賴來自現場設備階段的“生產禁用”DCF設備配置格式,具有高于所有訪問控制的優先級,可以禁用調試端口界面。在設置DCF之后,MCU的運行將不受任何限制,但調試端口界面將被禁用。軟件開發者可以決定重新啟用這個端口,但設備不再能夠使用。實際上,這種機制是在CAN和FlexRay總線波特率中添加了一個時鐘偏差,使得這些通信總線無法工作。
另一方面,還需增加兩個安全級別,以限制利用調試端口界面對MCU的內存訪問。HSM使用兩個寄存器(HSMDUR和MDUR)來控制外部工具對主內核與HSM內核的訪問。這樣一來,在發生非法訪問的情況下,同一個TAP控制器就可以受到嚴格限制。換句話說,即使攻擊者能夠在調試端口進行未經授權的訪問,但仍然無法訪問HSM及其代碼。
最弱環節:MCU閃存
對于任何外部攻擊來說,最薄弱的環節也許就是MCU閃存,這里存放著固件以及所有的安全配置,如口令和密鑰。
因此很自然,在MCU內部采取了多種機制和模塊加以保護,與MPU(內存保護單元)一道,另外兩個模塊完全用于保護設備閃存內容:即PASS和TDM模塊。此外還有上面提到的HSM、審查模塊和密封模塊能夠有效地限制閃存訪問。
如圖3所示,PASS與TDM模塊組合可以禁用所有的閃存擦除與程序操作,而一個專用DCF(OTP_EN)可以啟用原始設備的編程。
圖3 MCU閃存封鎖保護系統
盡管MPU在不同訪問層級(讀/寫或用戶/審查模式等等)保護和管理內存,但無法抵抗可以修改內存內容的侵入攻擊和外部操縱。進入PASS模塊,該模塊不僅可以利用256位口令機制控制任何閃存操作(閃存讀取、閃存編程、閃存擦除),而且也能檢查外部調試訪問端口。這些口令是受到保護的,而且與OEM生產和后續階段相隔離。一旦那些256位口令寫入用戶閃存測試DCF,就不能再被訪問,只能通過PASS模塊輸入寄存器來修改受到保護的存儲區。
TDM篡改檢測模塊可提供一個非常有效的針對數據操縱企圖的反制措施,因為它創建出一種電子日志,當某些受保護的內存區被擦除的時候,操作者不得不在日志上留下數字記錄。也就是受到TDM保護的所有內存區塊只能通過對特殊的閃存區編程來擦除,從而確保不可撤銷的機制留下修改和固件升級企圖的證據。
設備中采取的其它閃存保護機制還有OTP和OPP,它們只在原始設備和密封階段才允許內存擦除請求。這完全保護了內存區,禁止在故障分析階段訪問某些內存區。此外,就HSM模塊而言,還有其它兩種保護機制限制對這個安全內核中專用閃存區的訪問:HSM執行機制和替代接口機制。第一種機制只允許HSM訪問HSM閃存專用部分,而第二種機制允許通過專用界面訪問HSM閃存寄存器,只供HSM內核使用。
HSM模塊的每個存儲區可以指定為“HSM專用”。這樣,該存儲區就可以利用替代接口機制來訪問。替代接口機制是一組閃存寄存器,復制主接口寄存器功能用于擦除與編程操作。這樣,一旦HSM存儲區通過DCF被映射到替代接口,對于主接口來說,任何訪問、編程或擦除該存儲區的企圖都不可能得逞。
加密功能
加密系統是用于保持汽車網絡內部通信總線數據傳輸完整性、可靠性與保密性的最有效方法之一。利用加密功能,可能是阻止利用通用CAN破 解機制發動攻擊的最佳手段。這意味著任何單個設備都應該具有自己的加密模塊或者應該把這些功能委托給一個獨特的綜合單元,該單元可以加密和解密汽車內部傳感器與激勵器之間交換的任何信息。
HSM模塊可以提供多種加密功能,因為它采用一個密碼通道控制器來管理一個TRNG(真隨機碼生成器)和一個MPAES(微處理器先進加密標準)。
當設備進入故障分析階段時,就必須解除某些保護機制,以便對可能的問題進行分析。乍看起來,這種配置似乎會給打破安全保護創造條件,并允許修改嵌入固件,把設備設置到現場設備階段,以便與原始系統相連。但是,可以利用幾種反制性保護措施來應對這種情況。這些措施包含在“壽命終止保護”機制之中,可以在CAN和FlexRay總線傳輸完全中斷的情況下恢復上述情形,如E-fuse保護機制,而且可以選擇無限地循環運行BAF啟動輔助閃存。
E-fuse機制可在特定閃存測試模式啟用時在設備內部留下永久的證據。由于這種操作是不可逆轉的,因此通過這種方式,就很容易檢測設備的狀態,并永遠保持在故障分析模式下,使其不可能回到DCF現場狀態。
HSM硬件安全模塊代表對于安全需求、反侵入控制和數據加密的最全面答案。車內信息娛樂設備數量不斷增加,如控制公路交通事件以及提供撞車及天氣預報信息的設備等,使得這些安全功能變得非常關鍵。
HSM模塊是嵌入在ASIC中的一個SoC系統芯片,它由一個100MHz內核、帶有MPU的一個數據交叉開關以及一個中斷控制器構成。該100MHz內核具有專用本地RAM和預留的代碼與數據閃存。HSM模塊擁有一個HSM/HOST接口用來與MCU內部的其它內核交換數據和指令,交換以安全和自動的方式進行。此外還具有一個C3模塊(加密通道控制器)。HSM用于控制MCU功能,但也控制所有的加密功能,因為它包含一個內部模塊C3,C3集成了一個真隨機數生成器和一個MPAES模塊。除了安全啟動和調試界面訪問控制之外,它最重要的功能是密鑰生成隨機數,并執行所有的加密與解決功能。
如前所述,CAN總線當初設計并沒有追求太高的安全性,因為它不能保證傳輸保密性,而且是以廣播模式發送信息。它不能保證傳輸數據的可靠性與完整性,加密信息則可以滿足車內傳輸總線的要求。采用非對稱與對稱密鑰算法,可實現傳輸數據的保密性、完整性和可靠性,而HASH功能如數字簽名或者MAC(信息驗證碼)可提供數字簽名來鑒別數據發送人,或者提供一個CMAC(密碼信息鑒別碼)來發出安全啟動。所有的加密與解決功能,以硬件方式實現,并給予CAN通信總線所需的帶寬,不至于讓主CPU過載。
AUTOSARECU中使用HSM
HSM是一個比較重要的東西,是為了實現Security功能使用的,他有自己的內容及相關的一些外設,針對Security功能比較強大,可以生成隨機數,可以進行安全校驗等。
為了支持在AUTOSAR ECU中使用HSM,我們需要一個可以與AUTOSAR軟件無縫集成并且提供標準接口的固件。
Vector基于自己在AUTOSAR 基礎軟件和網絡信息安全方面的經驗,開發了用以支持HSM的固件vHSM。vHSM用于控制HSM,其模塊接口與AUTOSAR 4.3的crypto driver 接口一致。vHSM是Vector AUTOSAR解決方案的一部分,可以支持目前大部分具有HSM的MCU。
vHSM功能與特點
獨立運行加密功能,例如驅動硬件加速器進行對稱加密、非對稱加密(如AES、ECDSA、TRNG等)
獨立存儲加密算法使用的密鑰、證書等
支持Secure Boot,與FBL交互建立一套可信任的啟動鏈
提供安全事件內存
源代碼便于支持客戶在開發階段進行調試
責任編輯:彭菁
-
數據
+關注
關注
8文章
6888瀏覽量
88825 -
信息系統
+關注
關注
0文章
202瀏覽量
20419 -
駕駛輔助系統
+關注
關注
0文章
104瀏覽量
16633
原文標題:信息安全的底層機制
文章出處:【微信號:談思實驗室,微信公眾號:談思實驗室】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論