繼《談?wù)勂囆酒踩?上篇》之后,本文針對(duì)芯片安全存儲(chǔ)、FOTA、安全診斷、安全運(yùn)行環(huán)境做了進(jìn)一步闡述。
1. 安全存儲(chǔ)
1.1 OTP存儲(chǔ)器
一次性可編程存儲(chǔ)器(On Chip One Time Programmable ROM, On-Chip OTP ROM)OTP存儲(chǔ)器,也稱為eFuse,是芯片中特殊存儲(chǔ)模塊;字段中的任何eFuse位都只能從0編程為1(融合),但是讀取操作沒(méi)有限制。OTP在安全中的應(yīng)用一般可以存放一些固定不變的值,比如:
· 每個(gè)設(shè)備唯一的根密鑰(Master Key)
· 設(shè)備唯一ID(Device Unique ID)或者M(jìn)AC 地址
· 一些安全配置或者秘密值(軟件的Hash值,啟動(dòng)模式等)
下面簡(jiǎn)單介紹一下OTP和Secure Boot的配合案例,在一些低端設(shè)備,限于成本和性能等原因,會(huì)采用對(duì)稱加密的方式來(lái)驗(yàn)證啟動(dòng)過(guò)程bootloader image合法性,那又是如何做到的呢?
芯片第一次 boot 時(shí),軟件 bootloader 根據(jù)以下步驟使能 Secure boot:
(1)硬件產(chǎn)生一個(gè) secure boot key,將這個(gè) key 保存在 efuse 中,利用這個(gè) key、一個(gè)隨機(jī)數(shù) IV 和 bootloader image 計(jì)算出 secure digest。
(2)securedigest 與隨機(jī)數(shù) IV 保存在 flash 的 0x0 地址,用于在后續(xù) boot 時(shí)驗(yàn)證 bootloader image 是否被篡改。
(3)bootloader通過(guò)燒寫(xiě) efuse 中的 ABS_DONE_0 永久使能 secure boot。
(4)芯片在后面的 boot 中,ROM bootloader 發(fā)現(xiàn) efuse 中的 ABS_DONE_0 被燒寫(xiě),于是從 flash 的地址 0x0 讀取第一次boot 時(shí)保存的 secure digest 和隨機(jī)數(shù) IV,硬件使用 efuse 中的 secure boot key 、隨機(jī)數(shù) IV 與當(dāng)前的 bootloader image 計(jì)算當(dāng)前的 secure digest,若與 flash 中的 secure digest 不同,則 boot 不會(huì)繼續(xù),否則就執(zhí)行軟件bootloader。
(5)軟件 bootloader 使用 bootloader image 中保存的公鑰對(duì) flash 中的 partition table 和 app images 簽字進(jìn)行驗(yàn)證,驗(yàn)證成功之后才會(huì) boot 到 app 代碼中。 第一次boot時(shí)secure boot與flashencryption的生效過(guò)程如下圖所示,圖中藍(lán)色框是 secure boot 的步驟,綠色框是 flash encryption 的步驟:
后續(xù) boot 時(shí)流程圖如下,圖中綠色框中的步驟會(huì)執(zhí)行解密,解密是由硬件自動(dòng)完成:
Source:https://www.cnblogs.com/aaronLinux/p/9198725.html
1.2 Flash空間保護(hù)機(jī)制
Flash空間保護(hù)主要是Flash某些區(qū)域設(shè)置只讀或者只寫(xiě),防止非法訪問(wèn)和篡改。Flash保護(hù)區(qū)域的數(shù)量和大小會(huì)根據(jù)Flash的類型和該Flash塊的大小而有所不同.主要的應(yīng)用場(chǎng)景有:
· 保護(hù)包含代碼的閃存的所有區(qū)域,以保護(hù)應(yīng)用程序本身不被覆蓋。用于存儲(chǔ)數(shù)據(jù)的閃存區(qū)域?qū)⒉皇鼙Wo(hù)。
· 保護(hù)向量表和駐留在閃存中的引導(dǎo)加載程序應(yīng)用程序,并使其余閃存不受保護(hù)。這將防止意外刪除引導(dǎo)加載程序,但閃存的其他部分仍未受保護(hù),以允許引導(dǎo)加載程序執(zhí)行固件更新。
下面以NXP Flash的空間保護(hù)機(jī)制為例做個(gè)簡(jiǎn)要說(shuō)明:
有個(gè)flash存儲(chǔ)空間保護(hù)寄存器,F(xiàn)PROT0–FPROT3,默認(rèn)值由應(yīng)用程序image根據(jù)在flash配置字段中編程的值來(lái)確定。FPOROTn- 四個(gè)寄存器保護(hù)Flash的32區(qū)域。 Source: https://www.nxp.com/docs/en/application-note/AN4507.pdf1.3. 內(nèi)存的保護(hù)機(jī)制: 目前操作系統(tǒng)也可以設(shè)置一些區(qū)域的不可讀或者寫(xiě)的機(jī)制,也有芯片級(jí)內(nèi)存保護(hù)機(jī)制,下面仍然以NXP芯片為例。
安全存儲(chǔ)區(qū)具備嚴(yán)格的訪問(wèn)控制機(jī)制,安全存儲(chǔ)區(qū)域具備Domain ID,權(quán)限級(jí)別(TZ or NS)和權(quán)限列表(Permissions),只有硬件訪問(wèn)時(shí)具備這些能力的訪問(wèn)才能訪問(wèn)成功,否則會(huì)失敗,這個(gè)是完全硬件級(jí)的訪問(wèn)控制,可以和Trust Zone和業(yè)務(wù)的訪問(wèn)控制權(quán)限等配合使用。 Source:i.MX 8Security Overview
2. FOTA(Firmware over the air)
能夠?qū)ζ噲?zhí)行現(xiàn)場(chǎng)軟件更新的優(yōu)勢(shì)已得到充分確立:它將為制造商節(jié)省資金,使關(guān)鍵錯(cuò)誤得以立即修復(fù)并在其生命周期內(nèi)隨時(shí)向汽車添加引人注目的新功能。理想情況下,對(duì)車輛操作至關(guān)重要的更新應(yīng)在后臺(tái)無(wú)縫且不可見(jiàn)地進(jìn)行。
上圖顯示了關(guān)鍵組件,這些組件將更新文件從OEM服務(wù)器獲取到車輛中的特定ECU。通過(guò)蜂窩網(wǎng)絡(luò)在單個(gè)車輛和服務(wù)器之間建立安全連接。這樣就可以將新的,更新的固件安全地發(fā)送到車輛的Telematics Unit,然后再發(fā)送到OTA Manager。OTA管理器管理車輛內(nèi)所有ECU的更新過(guò)程。它控制固件更新到ECU的分配,并告訴ECU何時(shí)執(zhí)行更新。
這在需要同時(shí)更新多個(gè)ECU的情況下非常重要。為涉及多個(gè)ECU的車輛添加新功能。更新過(guò)程完成后,OTA管理器將向OEM發(fā)送確認(rèn)。
可以在運(yùn)行OTA Manager的ECU上安裝外部NAND閃存,以存儲(chǔ)固件更新,直到需要它們?yōu)橹埂M獠块W存還可以用于存儲(chǔ)其他車輛ECU的固件備份副本,如果ECU更新出現(xiàn)重大故障,則可以調(diào)用該備份副本,從而使ECU沒(méi)有任何可用的固件。這些備份副本將通過(guò)加密和身份驗(yàn)證保護(hù)來(lái)保護(hù),以防止在存儲(chǔ)在外部存儲(chǔ)模塊中的同時(shí)對(duì)固件進(jìn)行任何篡改。
OTA管理器包含車輛內(nèi)每個(gè)ECU的表格,其中包括序列號(hào)和當(dāng)前固件版本等信息。這樣,OTA Manager可以驗(yàn)證到達(dá)的固件更新,并確保已授權(quán)將其用于該車輛。如果要更新的ECU不具有安全功能,則OTA管理器還將負(fù)責(zé)解密和驗(yàn)證傳入的更新。
2.1 ECU的更新過(guò)程
完整二進(jìn)制文件:新固件完整發(fā)送。這具有不依賴于先前固件的優(yōu)點(diǎn),從而即使先前版本已損壞也可以進(jìn)行更新。該方法的兩個(gè)缺點(diǎn)是傳輸二進(jìn)制文件所花費(fèi)的時(shí)間以及在接收方ECU中存儲(chǔ)二進(jìn)制文件所需的空間。許多傳統(tǒng)的ECU在CAN總線上的典型速度為500kbit/ s。
差異文件:在服務(wù)器上,OEM將新固件與以前的版本進(jìn)行比較,并創(chuàng)建一個(gè)“差異”文件,其中包含它們之間的差異列表。
根據(jù)更改的數(shù)量,此文件通常是:
“ A / B”方法(“A/B” approach):這會(huì)使每個(gè)ECU上的閃存數(shù)量增加一倍,以便它可以在“主”閃存中包含當(dāng)前固件,并在“第二”閃存中具有用于全新版本的空間。從最終用戶的角度來(lái)看,這種方法是理想的,因?yàn)镋CU可以使用主存儲(chǔ)器保持正常運(yùn)行,而新固件可以在后臺(tái)寫(xiě)入輔助存儲(chǔ)器。更新完成后,ECU在方便的時(shí)間使用新更新的固件(在輔助閃存塊中)(例如,在下次啟動(dòng)時(shí),也可以等待將開(kāi)關(guān)與要更新的其他ECU進(jìn)行同步) 。由于始終有可用的固件,因此沒(méi)有將ECU置于不可操作狀態(tài)的危險(xiǎn),因?yàn)槭冀K可以立即“回滾”到先前的可用固件。一個(gè)明顯的缺點(diǎn)是在MCU上實(shí)現(xiàn)兩倍于執(zhí)行閃存的成本。
“就地”方法(“In place” approach):在這種情況下,設(shè)備上僅存在固件的一個(gè)版本,并且作為更新的一部分擦除并編程了各個(gè)塊。當(dāng)ECU處于正常運(yùn)行狀態(tài)時(shí),更新無(wú)法運(yùn)行-這意味著車輛將在一段時(shí)間內(nèi)無(wú)法運(yùn)行。該時(shí)間段主要由重新編程ECU Flash所需的時(shí)間決定。車輛中的主要ECU(如發(fā)動(dòng)機(jī)控制器)將具有數(shù)MB的閃存,如果需要對(duì)完整的固件進(jìn)行重新編程,則可能需要數(shù)十秒的時(shí)間才能完成。對(duì)于OEM廠商來(lái)說(shuō),這是一個(gè)挑戰(zhàn)-客戶是否會(huì)接受這樣的事實(shí),即他們無(wú)法在長(zhǎng)達(dá)一分鐘的時(shí)間內(nèi)啟動(dòng)引擎。A / B方法的增加成本必須與“就地”方法給客戶帶來(lái)的不便之間進(jìn)行權(quán)衡。由于“就地”方法中僅存在固件的一個(gè)版本,因此更新過(guò)程中的錯(cuò)誤或重置可能很難從中恢復(fù),并且如果未仔細(xì)處理,則可能導(dǎo)致模塊(以及汽車)不再功能正常運(yùn)行,直到在車庫(kù)對(duì)其進(jìn)行更新之前,車輛無(wú)法使用。
3. 安全診斷(Secure Debug)
現(xiàn)代處理器配備了基于硬件的調(diào)試功能,以促進(jìn)片上調(diào)試過(guò)程。 -例如,硬件斷點(diǎn)和基于硬件的跟蹤。 -通常需要電纜連接(例如JTAG [1])才能使用這些功能。 如果診斷過(guò)程沒(méi)有合適的安全機(jī)制,很容易被黑客利用,如下圖所
安全JTAG模式通過(guò)使用基于挑戰(zhàn)/響應(yīng)的身份驗(yàn)證機(jī)制來(lái)限制JTAG訪問(wèn)。檢查對(duì)JTAG端口的任何訪問(wèn)。只有授權(quán)的調(diào)試設(shè)備(具有正確響應(yīng)的設(shè)備)才能訪問(wèn)JTAG端口。未經(jīng)授權(quán)的JTAG訪問(wèn)嘗試將被拒絕。此功能需要支持基于質(zhì)詢/響應(yīng)的身份驗(yàn)證機(jī)制的外部調(diào)試器工具(例如Lauterbach Trace32,Arm?RVDS / DS5調(diào)試器等)。通常在設(shè)備制造期間而不是在開(kāi)發(fā)板上啟用安全JTAG模式。目前很多芯片廠商都提供自己的安全診斷方案,下面僅以NXP為例:
1.用戶通過(guò)JTAG接口請(qǐng)求調(diào)試
2.SOC以芯片唯一ID響應(yīng)
3.服務(wù)器找到相應(yīng)的秘密(TZ或normal world)
4.用戶通過(guò)JTAG界面提交秘密
5.安全的JTAG模塊將密鑰與預(yù)先配置的密鑰進(jìn)行比較
6.如果匹配,則啟用調(diào)試(對(duì)于TZ或normal world)
注:
1. 這里的安全診斷是針對(duì)芯片的調(diào)測(cè),不要跟測(cè)試設(shè)備通過(guò)OBD口和車內(nèi)ECU進(jìn)行通訊爭(zhēng)端協(xié)議(UDS)進(jìn)行混淆了。
2. 從安全角度通常建議設(shè)備真正投入使用時(shí),應(yīng)關(guān)閉芯片的JTAG口或者其他類型的調(diào)測(cè)端口。
4. 安全運(yùn)行環(huán)境
安全運(yùn)行環(huán)境主要是指芯片向OS和APP提供安全的隔離的計(jì)算環(huán)境,以及配套的虛擬機(jī)管理程序或者SDK,通常包括芯片計(jì)算多分區(qū)(Multi Partitions)機(jī)制和可信計(jì)算環(huán)境(Trust zone)
1.ARM Trustzone + 虛擬化
(1)Arm V8.4架構(gòu)開(kāi)始引入了Secure EL2擴(kuò)展,在Secure 世界中增加了對(duì)虛擬化的支持。這使得可以在非安全狀態(tài)下進(jìn)行虛擬化的功能進(jìn)入安全狀態(tài)。虛擬化的一個(gè)關(guān)鍵特性是增加了虛擬機(jī)管理程序控制兩階段的地址翻譯過(guò)程。
(2)Secure EL1中安全分區(qū)具有隔離的地址空間,其他安全分區(qū)無(wú)法訪問(wèn)此空間,是一個(gè)沙箱環(huán)境。
(3)使用Secure EL2安全分區(qū)來(lái)實(shí)現(xiàn)安全世界的虛擬機(jī),安全分區(qū)管理器:EL3和Secure EL2中通用的固件負(fù)責(zé)管理這些安全分區(qū),這里的關(guān)鍵組件是安全分區(qū)管理器(SPM)
2. 系統(tǒng)資源隔離(以NXP的XRDC特性為例)
1) 什么是分區(qū):
· 資源集合(主/從外圍設(shè)備,內(nèi)存區(qū)域)
· 具有域ID和安全屬性
· 內(nèi)核,外圍設(shè)備和內(nèi)存可以屬于多個(gè)分區(qū)
2) 分區(qū)的工作原理:
· 系統(tǒng)控制器將外圍設(shè)備和內(nèi)存區(qū)域提交到特定域中(這是客戶定義的)
· 域之間的任何通信都必須使用消息傳遞協(xié)議
· 如果某個(gè)域外設(shè)試圖非法訪問(wèn)其他域,則會(huì)發(fā)生總線錯(cuò)誤
3) 分區(qū)的好處:
· 非法訪問(wèn)時(shí)報(bào)告立即的,有助于在投入實(shí)際應(yīng)用之前發(fā)現(xiàn)難以追查資源競(jìng)爭(zhēng)問(wèn)題(又名沙盒方法)
· 提供成品的安全性:保護(hù)系統(tǒng)關(guān)鍵的SoC外設(shè)免受不太信任的應(yīng)用程序的攻擊
注:限于篇幅,本文沒(méi)有講述Trustzone 技術(shù)本身,這方面的技術(shù)在網(wǎng)上有大量的論述,本文不再重復(fù)。
3. 多核虛擬化
目前很多車載ECU具有多核,每個(gè)核可以根據(jù)實(shí)際需要運(yùn)行不同ASIL等級(jí)的應(yīng)用程序,也可以把Security和Safety應(yīng)用嚴(yán)格隔離開(kāi),或者通過(guò)虛擬化技術(shù)運(yùn)行不同的操作系統(tǒng)等。因此多核虛擬化技術(shù)應(yīng)用也會(huì)越來(lái)越多。第一節(jié)講的ARM Trustzone最近的架構(gòu)已經(jīng)支持虛擬化技術(shù),下面是NXP虛擬化技術(shù)的一個(gè)例子.
4. 總結(jié)
最后我們做個(gè)總結(jié),給出一個(gè)芯片安全的參考的邏輯架構(gòu)圖,不同芯片根據(jù)應(yīng)用場(chǎng)景、成本等,支持的能力是不一樣的。
上一篇:談?wù)勂囆酒畔踩?上篇
下一篇:特斯拉公布最新碰撞安全技術(shù),可在0.01秒作出反應(yīng)
推薦閱讀
史海拾趣

- 座椅、天窗、電動(dòng)尾門(mén)應(yīng)用 國(guó)產(chǎn)車規(guī)級(jí)高壓霍爾效應(yīng)傳感器推薦
- 突發(fā)!又一車企車機(jī)“崩了”
- 寧德時(shí)代為陳立泉院士頒發(fā)“卓越貢獻(xiàn)獎(jiǎng)”
- 一文速覽吉利雷神 AI 電混 2.0 發(fā)布會(huì)重點(diǎn)
- 2025年1-4月ADAS供應(yīng)商裝機(jī)量排行榜:頭部集中與國(guó)產(chǎn)突圍并存
- 國(guó)內(nèi)飛行汽車無(wú)線通信測(cè)試成功,通信安全新突破
- SPAD席卷車載激光雷達(dá)市場(chǎng)
- 大聯(lián)大品佳集團(tuán)推出基于Microchip和ams OSRAM產(chǎn)品的10Base-T1S萬(wàn)級(jí)像素大燈方案
- 哈曼推出采用三星Neo QLED技術(shù)的全新顯示屏
- 座椅、天窗、電動(dòng)尾門(mén)應(yīng)用 國(guó)產(chǎn)車規(guī)級(jí)高壓霍爾效應(yīng)傳感器推薦
- 突發(fā)!又一車企車機(jī)“崩了”
- 寧德時(shí)代為陳立泉院士頒發(fā)“卓越貢獻(xiàn)獎(jiǎng)”
- 一文速覽吉利雷神 AI 電混 2.0 發(fā)布會(huì)重點(diǎn)
- 2025年1-4月ADAS供應(yīng)商裝機(jī)量排行榜:頭部集中與國(guó)產(chǎn)突圍并存
- 國(guó)內(nèi)飛行汽車無(wú)線通信測(cè)試成功,通信安全新突破
- SPAD席卷車載激光雷達(dá)市場(chǎng)
- 大聯(lián)大品佳集團(tuán)推出基于Microchip和ams OSRAM產(chǎn)品的10Base-T1S萬(wàn)級(jí)像素大燈方案
- 哈曼推出采用三星Neo QLED技術(shù)的全新顯示屏
- Syntiant推出超低功耗汽車AI創(chuàng)新技術(shù) 提升車輛安全性和用戶體驗(yàn)
- 下載有禮:數(shù)據(jù)中心養(yǎng)生秘籍《福祿克數(shù)據(jù)中心解決方案》等你帶回家!
- 一起哇:基于國(guó)產(chǎn)芯、便攜烙鐵系統(tǒng)IronOS(FreeRTOS)的智能烙鐵
- 下載MPS AI電源資料包,贏【Keep體脂秤、按摩眼罩、電腦支架】
- 泰科電子物聯(lián)網(wǎng)應(yīng)用資料下載中心 限時(shí)免費(fèi)開(kāi)放!
- 有獎(jiǎng)直播|TI DLP® 技術(shù)在AR HUD及車內(nèi)顯示應(yīng)用的展望
- 盛夏狂歡,與Microchip一起探索時(shí)鐘與時(shí)序之旅 輕松答問(wèn)題~贏獎(jiǎng)品
- 芯(E)幣兌換Nucleo擴(kuò)展板:讓你的Nucleo變身成pyboard
- MSP430最基本的IO配置
- LG化學(xué)供應(yīng)商科隆新能創(chuàng)業(yè)板IPO獲受理,擬募資6.13億元
- STM32定時(shí)器控制led燈亮滅
- 維峰電子創(chuàng)業(yè)板IPO獲受理 募資6億元建智能制造項(xiàng)目
- 嵌入式STM32學(xué)習(xí)筆記(3)——pwm波及呼吸燈
- 焊接機(jī)器人焊縫跟蹤器的組成及工作原理
- 普諾飛思公布發(fā)明者社區(qū),啟發(fā)基于事件視覺(jué)技術(shù)的創(chuàng)新
- 收官!您想要的演講回放都在這里
- 初露鋒芒!銀牛微電子榮登雷峰網(wǎng)「2021最佳AI數(shù)智化年度榜」
- 群創(chuàng)光電將推出1411ppi分辨率LCD技術(shù)VR顯示屏