這篇博客文章是三部分系列的第 2 部分,旨在讓讀者基本了解什么是安全啟動以及為什么需要它。
RH850 MCU 上有 2 種安全 IP,ICU-S 和 ICU-M。在這篇博客文章中,我們介紹了如何在這兩種類型的設(shè)備上實現(xiàn)安全啟動。
ICU-S 和 ICU-M 中的安全啟動可以基于 HIS(現(xiàn)為 AUTOSAR)安全硬件擴展(SHE)規(guī)范來實現(xiàn)。如果您想了解有關(guān) SHE 規(guī)范的更多信息,請參閱 AUTOSAR SHE(URL:安全硬件擴展規(guī)范 (autosar.org))。每個人都可以從 AUTSAR SHE 站點獲得 SHE 規(guī)范。
RH850上使用ICU-S的安全啟動實現(xiàn)方法
ICU-S 是相當(dāng)于 EVITA light 的智能密碼單元。
安全軟件適用于 ICU-S MCU 中的主處理器元件 (MainPE)。MainPE 可以通過 ICUS 的特殊功能寄存器接口使用 ICU-S 模塊中的硬件資源,例如加密加速器和安全密鑰存儲。
ICU-S 沒有專用的純安全 CPU。安全啟動從非安全 CPU (PE1) 運行。為防止篡改,初始安全啟動邏輯存儲在一次性程序 (OTP) 存儲器中。重置向量必須指向這個不可變的代碼以防止篡改。與 OTP 一起,ICUS 設(shè)備上的安全啟動使用安全啟動 MAC 密鑰和存儲在 ICUS 中受保護的安全啟動 MAC 插槽。在這個策略中,OTP 內(nèi)存和ICUS 創(chuàng)建了信任根。
方法總結(jié):
硬件信任根:
OTP閃存和ICUS中受保護的密鑰存儲
防篡改:
MAC 和 MAC 密鑰安全地存儲在受保護的 ICUS 內(nèi)存中
密碼算法
CMAC ( NIST SP 800-38B )
在 RH850 上使用 ICUS 的分段安全啟動示例:
MCU 復(fù)位后,CPU(PE1) 啟動并運行位于 OTP 內(nèi)存中的安全啟動程序。
安全引導(dǎo)程序驗證用戶程序 A。
安全啟動程序根據(jù)用戶程序 A 和啟動 MAC 密鑰計算 CMAC 值。
安全啟動程序驗證計算結(jié)果和“程序 A 的 CMAC 值” (注 1)。
如果步驟 2 中的驗證通過,PE1 運行用戶程序 A,并在 ICU-S 的幫助下驗證用戶程序 B。
與步驟 2 相同(程序 A -》 程序 B)。
如果步驟 3 中的驗證通過,則 PE1 執(zhí)行用戶程序(程序 B)。
注 1:“程序 A 的 CMAC 值”可以注冊在 ICU-S 管理的安全數(shù)據(jù)閃存上
RH850上使用ICU-M的安全啟動實現(xiàn)方法
ICU-M 是符合 EVITA 中等用例的瑞薩智能密碼單元。
具有 ICU-M 的 MCU 有一個單獨的 ICU-M 處理器,稱為智能密碼單元處理器 (ICUP)。安全軟件完全在 ICUP 上運行。ICUP 可以獨占訪問 ICU-M 中的硬件資源,例如加密加速器和安全閃存。此外,ICUP 可以訪問一些共享資源以與主處理器元件 (MainPE) 進行通信。
在 MainPE 上運行的應(yīng)用軟件不能直接訪問 ICU-M 中的資源,例如加密加速器和安全閃存。因此,MainPE 必須通過定義好的通信接口向 ICUP 請求安全服務(wù)。該接口由 ICUM 固件設(shè)計定義。具有 ICUM 的 MCU 支持通過共享內(nèi)存郵箱和處理器間中斷進行處理器間通信。
在具有 ICUM 的設(shè)備上,安全啟動從安全 ICUP 運行。初始安全啟動邏輯存儲在僅 ICU-M 可訪問的安全代碼存儲中。安全啟動實施使用存儲在受保護 ICUM 數(shù)據(jù)閃存中的安全啟動密鑰驗證應(yīng)用程序。安全啟動密鑰和 ICUM 構(gòu)成了硬件“信任根”。復(fù)位后, ICUP 首先啟動并執(zhí)行應(yīng)用軟件的安全啟動。驗證后, ICUP 將 MCU 中的其他處理器元件從復(fù)位狀態(tài)釋放并開始運行。如前所述,ICU-M 中的硬件資源,例如加密加速器和安全閃存,由 ICUP 獨占訪問。
方法總結(jié):
硬件信任根:
ICU-M硬件。和安全代碼閃存上的安全啟動程序。(攻擊者無法更改受 ICU-M 硬件保護的安全啟動程序)
防篡改:
引導(dǎo) MAC 存儲在受保護的數(shù)據(jù)閃存中,只有 ICUM 可以訪問。
密碼算法:
CMAC ( NIST SP 800-38B )
RSA 數(shù)字簽名算法
在 RH850 MCU 中使用 ICUM 的分階段安全啟動示例(對稱算法)
ICUP 配置為 MCU 復(fù)位后的引導(dǎo)處理器。
用戶程序 A 由 ICU-M 中的安全啟動程序驗證。
安全啟動程序根據(jù)用戶程序 A 和啟動 MAC 密鑰計算 CMAC 值。
安全啟動程序驗證計算結(jié)果和“程序 A 的 CAMC 值”。
如果步驟 2 中的驗證通過,CPU(PE1) 由 ICUM(安全軟件)啟動
PE1 運行用戶程序 A 并驗證用戶程序 B 使用安全軟件。
與步驟 2 相同(程序 A -》 程序 B)。
如果步驟 4 中的驗證通過,則用戶程序 B 由 PE1 操作。
在 RH850 MCU 中使用 ICUM 的分階段安全啟動示例(非對稱算法)
ICUP 配置為 MCU 復(fù)位后的引導(dǎo)處理器。
用戶程序 A 由 ICU-M 中的安全啟動程序驗證。
安全啟動程序計算來自用戶程序 A 的消息摘要(哈希)。
安全啟動程序根據(jù)程序 A 的簽名和公鑰計算消息摘要。
安全啟動程序驗證這兩個消息摘要。
如果步驟 2 中的驗證通過,CPU(PE1) 由 ICUM(安全軟件)啟動
PE1 運行用戶程序 A 并驗證用戶程序 B 使用安全軟件。
與步驟 2 相同(程序 A -》 程序 B)。
如果步驟 4 中的驗證通過,則用戶程序 B 由 PE1 操作。
結(jié)論
總之…
ICU-S和ICU-M可以做“信任根”和“信任鏈”。
ICU-S 和 ICU-M 中的安全啟動可以基于 AUTOSAR (SHE) HIS 實現(xiàn)。
ICU-M中的安全啟動可以基于簽名驗證來實現(xiàn)。
審核編輯:郭婷
-
處理器
+關(guān)注
關(guān)注
68文章
19313瀏覽量
230045 -
mcu
+關(guān)注
關(guān)注
146文章
17171瀏覽量
351461 -
存儲器
+關(guān)注
關(guān)注
38文章
7495瀏覽量
163921
發(fā)布評論請先 登錄
相關(guān)推薦
評論