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