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