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