電子系統(tǒng)在我們的生活中發(fā)揮著至關(guān)重要的作用。無論是通過智能手機進(jìn)行通信,還是駕駛配備高級駕駛員輔助系統(tǒng) (ADAS) 的汽車,我們都依靠電子設(shè)備來簡化甚至執(zhí)行我們的日常任務(wù)。這些系統(tǒng)很容易被黑客入侵,而且它們相互連接的事實放大了威脅。隨著可信情報承擔(dān)關(guān)鍵活動(例如,個人醫(yī)療監(jiān)控),網(wǎng)絡(luò)攻擊和破壞的后果會增長到包括人身傷害甚至死亡。在這個新的現(xiàn)實中,構(gòu)建能夠抵御此類攻擊的電子系統(tǒng)勢在必行。
安全啟動是構(gòu)建安全電子系統(tǒng)的基礎(chǔ)。隨著微控制器的工藝尺寸不斷縮小,板載嵌入式閃存正逐漸被外部 NOR 閃存所取代。這種架構(gòu)演變通過暴露的總線接口、克隆可能性等創(chuàng)造了更大的攻擊面。解決這一日益嚴(yán)重的漏洞的一種方法是使用安全 NOR 閃存進(jìn)行設(shè)計以保護存儲并幫助 MCU 在啟動時建立安全的信任鏈。
安全啟動——安全系統(tǒng)的基礎(chǔ)
通電時,每個電子系統(tǒng)都會啟動。對于嵌入式系統(tǒng),這通常通過運行存儲在非易失性存儲器中的引導(dǎo)代碼來實現(xiàn)。要啟用安全啟動,系統(tǒng)需要建立信任根,從原始硬件存儲啟動,并使用原始受信任啟動代碼啟動(參見圖 1)。
建立信任根
當(dāng) MCU 開始啟動時,它必須從受信任的位置運行。這通常通過小型內(nèi)部 ROM 或受信任的嵌入式閃存來實現(xiàn)。此代碼必須是不可變的,以便系統(tǒng)可以從本質(zhì)上信任它。它作為信任根層次結(jié)構(gòu)的基礎(chǔ)。從這里系統(tǒng)可以通過驗證硬件和驗證存儲內(nèi)容將信任擴展到外部存儲。
非對稱密鑰算法。
為了建立信任根,ROM 代碼通常依賴于預(yù)先存儲的密鑰。如果使用非對稱密鑰算法,該密鑰通常是公鑰。MCU 使用此公鑰來驗證第二階段引導(dǎo)加載程序的簽名,該引導(dǎo)加載程序駐留在外部閃存設(shè)備上。與實際引導(dǎo)加載程序一起存儲的簽名是引導(dǎo)加載程序的摘要值,并使用與公鑰加密配對的私鑰進(jìn)行簽名。如果 MCU 使用公鑰成功驗證了引導(dǎo)加載程序簽名并從當(dāng)前引導(dǎo)加載程序計算出相同的摘要值,則可以確定引導(dǎo)加載程序代碼沒有被更改。這樣,信任根就建立起來了。現(xiàn)在可以安全地執(zhí)行這個經(jīng)過驗證的第二階段引導(dǎo)加載程序。
對稱密鑰算法
通常,對稱密鑰算法的執(zhí)行速度比對稱算法慢。出于這個原因,在啟動時間很關(guān)鍵的應(yīng)用程序中,用戶經(jīng)常選擇對稱密鑰算法。使用對稱密鑰,主機 MCU 和外部閃存共享相同的密鑰??梢栽诂F(xiàn)場部署之前(即在制造期間)在安全環(huán)境中提前建立此共享秘密。隨后,共享密鑰可用于通過在軟件上使用基于密鑰的哈希來快速驗證第二階段引導(dǎo)加載程序。

圖 1:建立信任根
從原始硬件存儲啟動
如果整個啟動代碼都存儲在 MCU 內(nèi)的嵌入式閃存中,那么從原始硬件存儲啟動可能不是主要問題。這是因為在不損壞 MCU 主機的情況下更換嵌入式閃存可能是不可能的。然而,隨著行業(yè)向 22-nm MCU 發(fā)展,在 MCU 中嵌入閃存變得越來越困難。超過 28nm 的技術(shù)可能會被迫將引導(dǎo)代碼存儲在外部閃存中。因此,為了安全啟動,主機必須考慮是否更換了外部閃存。
為了防止黑客使用原始內(nèi)存內(nèi)容克隆硬件,主機MCU可以在制造過程中與引導(dǎo)存儲設(shè)備執(zhí)行配對過程。之后,只有這個配對的存儲設(shè)備才能提供啟動代碼進(jìn)行啟動。因此,必須在設(shè)備上使用安全的硬件標(biāo)識符來提供這種配對能力。標(biāo)識符可以是非常強的設(shè)備 ID,不能被篡改或克隆。因此,配對后的認(rèn)證過程可以基于這樣的標(biāo)識符。
使用原始的、受信任的引導(dǎo)代碼進(jìn)行引導(dǎo)
在識別出原始硬件存儲之后,下一步是驗證啟動代碼,以確保它沒有被篡改或修改。有多種方法可以做到這一點,每種方法都需要不同的處理能力并提供相應(yīng)的安全級別。
簡單保護
與大多數(shù)傳統(tǒng)的 NOR 閃存一樣,用戶可以在引導(dǎo)代碼所在的內(nèi)存范圍內(nèi)啟用基于塊或扇區(qū)的保護。這種保護也可以防止意外寫入并從受保護區(qū)域中擦除。簡單保護中沒有安全元素,因此這種保護對于更改代碼的故意攻擊很弱。黑客可以輕松發(fā)出命令來取消對該區(qū)域的保護并修改啟動代碼。即使保護方案包括密碼,由于密碼本質(zhì)上是靜態(tài)的,它也可能被復(fù)雜的攻擊破解。
校驗和驗證
如果已從原始引導(dǎo)代碼計算出校驗和,則可以在后續(xù)引導(dǎo)中使用它來驗證代碼未被修改。這個過程必須由宿主完成;因此,它要求主機從引導(dǎo)設(shè)備讀取整個引導(dǎo)代碼并計算校驗和,然后才能開始運行它。請注意,主機不能依賴存儲設(shè)備來提供校驗和值,因為這可能會在攻擊期間被修改。
使用加密存儲引導(dǎo)代碼
加密的引導(dǎo)代碼可以使用密鑰存儲在 NOR 閃存中。MCU 內(nèi)部可能有硬件在啟動時透明地解密數(shù)據(jù)。由于引導(dǎo)代碼純文本不會暴露在總線上,因此無法竊聽。只要用于加密的密鑰不被泄露,這種方法就是安全的。但是,如果加密密鑰被泄露,則必須重新刷新外部閃存上的引導(dǎo)代碼內(nèi)容。這個過程可能很乏味,甚至不可能在已經(jīng)在現(xiàn)場的設(shè)備上實施。
閃存設(shè)備輔助驗證
如果設(shè)備提供此類功能,則可以將驗證任務(wù)卸載到 NOR 閃存,而不是 MCU 將整個引導(dǎo)加載程序讀取到 RAM 以進(jìn)行驗證。在對引導(dǎo)時間敏感的系統(tǒng)中,卸載驗證任務(wù)可以幫助 MCU 更快地開始執(zhí)行引導(dǎo)加載程序。看門狗定時器可用于在驗證失敗的情況下重置系統(tǒng)。使用這種方法,MCU 可以在閃存設(shè)備驗證代碼時開始處理一些緊急任務(wù)。當(dāng)然,在驗證完成之前,只能運行非安全功能。這意味著主機必須實現(xiàn)一個安全的中斷處理程序,該處理程序可以通過中斷事件從 NOR 閃存獲取驗證結(jié)果。
安全 NOR 閃存
傳統(tǒng)的 NOR 閃存能夠提供簡單的數(shù)據(jù)保護,無論是否有密碼。這使得使用傳統(tǒng) NOR 閃存實現(xiàn)安全啟動功能變得困難。賽普拉斯等公司提供的下一代安全 NOR 閃存集成了安全功能,可實現(xiàn)更高級別的安全啟動。
設(shè)備識別復(fù)合引擎 (DICE)
由可信計算組 (TCG) 指定的 DICE 提供了一種方法,用于根據(jù)每個設(shè)備的唯一設(shè)備機密來獲取強大且安全的設(shè)備 ID。使用存儲引導(dǎo)代碼的設(shè)備上的 DICE,系統(tǒng)可以在引導(dǎo)時建立信任根基礎(chǔ)。
DICE 建立在唯一設(shè)備密鑰 (UDS) 之上。UDS 是每個設(shè)備上的真正隨機數(shù),沒有任何關(guān)聯(lián)。UDS 在客戶的設(shè)施中生成并存儲在設(shè)備上的一個秘密位置,一旦寫入,就無法讀取 UDS。由證書提供的設(shè)備標(biāo)識源自 UDS。因此,一旦 MCU 與特定的閃存設(shè)備配對,就不可能克隆包含相同 UDS 的設(shè)備。
安全存儲區(qū)域
可以將安全 NOR 閃存配置為在設(shè)備內(nèi)具有多個獨立的安全區(qū)域。具有不同訪問級別的區(qū)域可用于存儲可能需要不同安全級別的固件或軟件。個別區(qū)域也可以配置為一般數(shù)據(jù)的非安全存儲。隨著安全級別的提高,設(shè)備的讀取吞吐量會因加密措施而降低。通過提供各種訪問級別,用戶可以決定系統(tǒng)每個部分的性能和安全性之間的權(quán)衡。
如果固件引導(dǎo)加載程序存儲在配置為需要身份驗證的區(qū)域中,則用戶可以確定固件未被任何未經(jīng)授權(quán)的方修改。如果固件包含用戶不想暴露在 SPI 總線上的敏感數(shù)據(jù),則可以將其存儲在需要加密的區(qū)域中,這樣只有加密的數(shù)據(jù)才會傳輸?shù)娇偩€上。
快速安全啟動
某些應(yīng)用程序(例如汽車系統(tǒng))需要及時安全地啟動。在現(xiàn)代復(fù)雜系統(tǒng)中,引導(dǎo)代碼或應(yīng)用軟件可能非常龐大,以至于 MCU 需要大量時間來讀取和驗證整個軟件。在這種情況下,安全 NOR 閃存可以在啟動期間卸載 MCU,以驗證存儲在設(shè)備上的軟件。這是通過提前在 MCU 和設(shè)備之間存儲共享秘密信息來實現(xiàn)的。在啟動過程中,可以快速驗證此共享密鑰,以確保設(shè)備和存儲軟件的原創(chuàng)性。該設(shè)備還可以在 MCU 開始處理一些基本任務(wù)時驗證軟件應(yīng)用程序代碼。因此,可以縮短整個啟動時間,以滿足汽車應(yīng)用的嚴(yán)格要求。
汽車、工業(yè)和通信領(lǐng)域的現(xiàn)代電子系統(tǒng)需要高度安全的閃存存儲。設(shè)計人員面臨著構(gòu)建能夠抵御網(wǎng)絡(luò)攻擊的安全系統(tǒng)的挑戰(zhàn)。賽普拉斯串行和并行NOR 閃存等安全存儲器實現(xiàn)了安全功能,使外部存儲能夠支持快速安全的啟動。
審核編輯:郭婷
-
mcu
+關(guān)注
關(guān)注
147文章
19015瀏覽量
400551 -
存儲器
+關(guān)注
關(guān)注
39文章
7744瀏覽量
171967
發(fā)布評論請先 登錄
穩(wěn)定電壓對于SPI NOR閃存意味著什么
NOR Flash和NAND flash有什么區(qū)別
如何制作 rt117x 閃存驅(qū)動程序?
NOR Flash GT25D20E-U串行NOR閃存
SPI NOR Flash和SPI NAND Flash存儲芯片的區(qū)別
國產(chǎn)SPI NOR Flash接口閃存介紹
Infineon SEMPER NOR Flash與HYPERRAM? 2.0 Gen2 Flash+RAM MCP產(chǎn)品解析
高性能SPI NOR FLASH芯片ZB25VQ系列推薦
戴爾科技全閃存存儲PowerStore有何獨特之處
什么是Flash閃存以及STM32使用NAND Flash
劃片機在存儲芯片制造中的應(yīng)用
昂科燒錄器支持Macronix旺宏電子的串行NOR閃存存儲器MX25U51245G
將引導(dǎo)代碼存儲在安全的NOR閃存中
評論