本應(yīng)用筆記描述如何在基于 Arm? Cortex??M33 處理器的 Arm? TrustZone? STM32 微控制器上獲得安全啟動(dòng)和安全固件更新流程解決方案。該應(yīng)用筆記還提供此解決方案與 X-CUBE-SBSFU 解決方案的頂層比較結(jié)果,后者適用于基于 Arm? Cortex??M0、Cortex??M3、Cortex??M4、或 Cortex??M7 處理器的非 TrustZone?STM32 微控制器。它還為安全啟動(dòng)和安全固件更新流程解決方案提供頂層集成指南。
對(duì)于 Arm? TrustZone? STM32 微控制器,安全啟動(dòng)和安全固件更新流程解決方案在相應(yīng)的 STM32Cube MCU 包中提供。與 XCUBE-SBSFU STM32Cube 擴(kuò)展包中提出的解決方案不同,該解決方案基于開源 TF?M(可信固件面向 Arm? Cortex??M)參考實(shí)現(xiàn)。
本應(yīng)用筆記適用于所有 TrustZone? STM32 微控制器(參考表 1)。然而,本文檔中將 STM32L5 系列作為示例。
STM32Cube MCU 包中可用的基于 TF?M 的應(yīng)用可能會(huì)不同,具體取決于 TrustZone?STM32 微控制器。參照公認(rèn)的 Arm?TrustZone? STM32 微控制器(參見第 2 節(jié) 參考)的 TFM 應(yīng)用(TF?M 的完整實(shí)現(xiàn))的用戶手冊(cè),獲取對(duì)解決方案的精確描述。
在本應(yīng)用筆記中,術(shù)語 X-CUBE-SBSFU 指的是 X-CUBE-SBSFU STM32Cube 擴(kuò)展包中可用的安全啟動(dòng)和安全固件更新流程解決方案,而術(shù)語 SBSFU 指的是 Arm?TrustZone?STM32 微控制器 STM32Cube MCU 軟件包中可用的安全啟動(dòng)和安全固件更新流程解決方案(STM32CubeL5 用作示例)。
Arm? 可信固件?M (TF?M)簡(jiǎn)介
TF?M (參照[TF?M])是 Arm Limited 驅(qū)動(dòng)的開源軟件框架,在 Arm? Cortex?-M33 (TrustZone?)處理器上提供了PSA 標(biāo)準(zhǔn)的參考實(shí)現(xiàn):
- PSA 不可變 RoT(信任根):在任何復(fù)位后執(zhí)行的不可變“安全啟動(dòng)和安全固件更新流程”應(yīng)用程序。該應(yīng)用程序基于 MCUboot 開源軟件(參照[MCUboot])。
- PSA 可更新 RoT:“安全”應(yīng)用程序?qū)崿F(xiàn)了一組隔離在安全/特權(quán)環(huán)境中的安全服務(wù),非安全應(yīng)用程序可以通過PSA API 在非安全應(yīng)用程序運(yùn)行時(shí)期中調(diào)用這些服務(wù)(參照[PSA_API]):
–安全存儲(chǔ)服務(wù):TF?M 安全存儲(chǔ)(SST)服務(wù)實(shí)現(xiàn) PSA 保護(hù)的存儲(chǔ) API,允許數(shù)據(jù)加密并將結(jié)果寫入可能不可信的存儲(chǔ)中。SST 服務(wù)采用基于 AEAD 加密策略的 AES-GCM 作為參考,保護(hù)數(shù)據(jù)的完整性和真實(shí)性。
–內(nèi)部可信存儲(chǔ)服務(wù):TF?M 內(nèi)部可信存儲(chǔ)(ITS)服務(wù)實(shí)現(xiàn) PSA 內(nèi)部可信存儲(chǔ),API 允許在微控制器內(nèi)置的閃存區(qū)域中寫入數(shù)據(jù),該區(qū)域?qū)⑼ㄟ^硬件安全保護(hù)機(jī)制與非安全或非特權(quán)應(yīng)用程序隔離。
–加密服務(wù):TF?M 加密服務(wù)實(shí)現(xiàn)了 PSA 加密 API,允許應(yīng)用程序使用密碼學(xué)原語,如對(duì)稱和非對(duì)稱密碼、哈希、信息驗(yàn)證碼(MAC)和帶關(guān)聯(lián)數(shù)據(jù)的認(rèn)證加密(AEAD)。它基于 mbed-crypto 開源軟件(參照[mbed-crypto])。
–初始認(rèn)證服務(wù):TF?M 初始認(rèn)證服務(wù)允許應(yīng)用程序在驗(yàn)證過程中向驗(yàn)證實(shí)體證明設(shè)備身份。初始認(rèn)證服務(wù)可以根據(jù)請(qǐng)求創(chuàng)建一個(gè)令牌,其中包含特定于設(shè)備的固定數(shù)據(jù)集。
- 應(yīng)用程序可更新 RoT:隔離在安全/非特權(quán)環(huán)境中的第三方安全服務(wù),可以由非安全應(yīng)用程序在非安全應(yīng)用程序運(yùn)行時(shí)期中調(diào)用。