
引言
目錄預(yù)覽
1.概述
2.文檔和開(kāi)源軟件資源
3.STM32Cube 概述
4.Arm 可信固件?M (TF?M)簡(jiǎn)介
5.安全啟動(dòng)和安全固件更新服務(wù)
(PSA 不可變 RoT)
6.運(yùn)行時(shí)安全服務(wù)
7.保護(hù)措施和安全策略
8.軟件包說(shuō)明
9.硬件和軟件環(huán)境設(shè)置
10.安裝過(guò)程
11.逐步執(zhí)行
12.集成商角色描述
章節(jié)預(yù)覽
STM32Cube概述
STM32Cube 源自意法半導(dǎo)體,旨在通過(guò)減少開(kāi)發(fā)工作量、時(shí)間和成本,明顯提高設(shè)計(jì)人員的生產(chǎn)率。STM32Cube 涵蓋整個(gè) STM32 產(chǎn)品系列。
STM32Cube 包括:
? 一套用戶友好的軟件開(kāi)發(fā)工具,覆蓋從概念到實(shí)現(xiàn)的整個(gè)項(xiàng)目開(kāi)發(fā)過(guò)程,其中包括:
– STM32CubeMX 圖形軟件配置工具 STM32CubeMX,可通過(guò)圖形向?qū)ё詣?dòng)生成初始化 C 代碼。
– STM32CubeIDE 一種集外設(shè)配置、代碼生成、代碼編譯和調(diào)試功能于一體的開(kāi)發(fā)工具
– STM32CubeProgrammer
(STM32CubeProg),圖形版本和命令行版本中可用的編程工具。
– STM32CubeMonitor (STM32CubeMonitor、STM32CubeMonPwr、STM32CubeMonRF 和STM32CubeMonUCPD)功能強(qiáng)大的監(jiān)控工具,用于實(shí)時(shí)微調(diào) STM32 應(yīng)用程序的行為和性能 。
? STM32Cube MCU 和 MPU 軟件包,特定于每個(gè)微控制器和微處理器系列的綜合嵌入式軟件平臺(tái)(如用于STM32U5 系列的 STM32CubeU5),它包含:
– STM32Cube 硬件抽象層(HAL),確保在 STM32 各個(gè)產(chǎn)品之間實(shí)現(xiàn)最大限度的可移植性。
– STM32Cube 底層 API,通過(guò)硬件提供高度用戶控制,確保最佳性能和內(nèi)存開(kāi)銷
– 一組一致的中間件組件,如 ThreadX、FileX / LevelX、NetX Duo、USBX、USB-PD 觸控庫(kù)、網(wǎng)絡(luò)庫(kù)、mbed-crypto、TFM 和 OpenBL
– 嵌入式軟件實(shí)用工具以及全套外設(shè)和應(yīng)用實(shí)例 。
? STM32Cube 擴(kuò)展包,其中包含嵌入式軟件組件,這些組件用以下內(nèi)容補(bǔ)充 STM32Cube MCU 和 MPU 軟件包的功能:– 中間件擴(kuò)展和應(yīng)用層– 在特定的意法半導(dǎo)體開(kāi)發(fā)板上運(yùn)行的實(shí)現(xiàn)案例。
Arm 可信固件?M (TF?M)簡(jiǎn)介
TF?M (參見(jiàn)[TF-M])是 Arm Limited 驅(qū)動(dòng)的開(kāi)源軟件框架,提供 Arm Cortex?M33(TrustZone)處理器上PSA 標(biāo)準(zhǔn)的參考實(shí)現(xiàn):
? PSA 不可變 RoT(可信根):在每次復(fù)位后執(zhí)行不可變“安全啟動(dòng)和安全固件更新”應(yīng)用程序。該應(yīng)用程序基于 MCUboot 開(kāi)源軟件(參照[MCUboot])。
? PSA 可更新 RoT:“安全”應(yīng)用程序,實(shí)現(xiàn)一組隔離在安全/特權(quán)級(jí)環(huán)境中的安全服務(wù),非安全應(yīng)用程序可通過(guò)PSA API 在非安全應(yīng)用程序運(yùn)行時(shí)間調(diào)用這些服務(wù)(參見(jiàn)[mbed-crypto]):
– 固件更新服務(wù):TF?M 固件更新(FWU)服務(wù)實(shí)現(xiàn) PSA 固件更新 API,以便應(yīng)用程序安裝新固件。
– 內(nèi)部可信存儲(chǔ) 服務(wù):TF?M 內(nèi)部可信存儲(chǔ)(ITS)服務(wù)實(shí)現(xiàn) PSA 內(nèi)部可信存儲(chǔ) API,以便在微控制器內(nèi)置 Flash 存儲(chǔ)器區(qū)域中寫入數(shù)據(jù),該區(qū)域通過(guò)硬件安全保護(hù)機(jī)制與非安全或非特權(quán)級(jí)應(yīng)用程序隔離開(kāi)來(lái)。
– 密碼服務(wù):TF?M 密碼服務(wù)實(shí)現(xiàn) PSA 密碼 API,以便應(yīng)用程序使用密碼原語(yǔ),如對(duì)稱和非對(duì)稱密碼、哈希、消息認(rèn)證碼(MAC)、關(guān)聯(lián)數(shù)據(jù)的認(rèn)證加密(AEAD)、隨機(jī)化和密鑰派生。它附帶 PSA 密碼驅(qū)動(dòng)程序接口,便于使用專用硬件。它基于 Mbed 密碼開(kāi)源軟件(參照[mbed-crypto])。
– 初始認(rèn)證服務(wù):TF?M 初始認(rèn)證服務(wù)允許應(yīng)用程序在驗(yàn)證過(guò)程中向驗(yàn)證實(shí)體證明設(shè)備身份。初始認(rèn)證服務(wù)可以根據(jù)請(qǐng)求創(chuàng)建一個(gè)令牌,其中包含特定于設(shè)備的固定數(shù)據(jù)集。
? 應(yīng)用程序可更新 RoT:隔離在安全/非特權(quán)級(jí)環(huán)境中的安全服務(wù),非安全應(yīng)用程序可在非安全應(yīng)用程序運(yùn)行時(shí)間調(diào)用這些服務(wù)。
– 受保護(hù)存儲(chǔ) 服務(wù):TF?M 受保護(hù)存儲(chǔ)(PS)服務(wù)實(shí)現(xiàn) PSA 受保護(hù)存儲(chǔ) API,以便在可能不可信的存儲(chǔ)環(huán)境中進(jìn)行數(shù)據(jù)加密和寫入結(jié)果。作為參考,PS 服務(wù)采用基于 AES-GCM 的 AEAD 加密策略來(lái)保護(hù)數(shù)據(jù)的完整性和真實(shí)性。
– 第三方:實(shí)現(xiàn)額外的產(chǎn)品特定的安全服務(wù)的 RoT 應(yīng)用程序。

安全啟動(dòng)和安全固件更新服務(wù)
(PSA 不可變 RoT)
5.1 產(chǎn)品安全介紹
現(xiàn)場(chǎng)部署的設(shè)備在不受信任的環(huán)境中運(yùn)行,因此會(huì)受到威脅和攻擊。為了減輕受攻擊風(fēng)險(xiǎn),我們的目標(biāo)是只在設(shè)備上運(yùn)行可靠的固件。允許更新固件映像以便修復(fù)故障或引入新特性或應(yīng)對(duì)措施,這對(duì)連接的器件而言十分常見(jiàn)。但是,如果不以安全的方式執(zhí)行,則容易受到攻擊。其后果可能是破壞性的,如固件克隆、惡意軟件下載或設(shè)備損壞。
因此,必須設(shè)計(jì)安全解決方案來(lái)保護(hù)敏感數(shù)據(jù)(甚至可能是固件本身)和關(guān)鍵操作。典型的對(duì)策基于密碼技術(shù)(帶有相關(guān)密鑰)和內(nèi)存保護(hù)機(jī)制:
? 加密可確保固件傳輸期間的完整性(確保數(shù)據(jù)未被破壞)、身份驗(yàn)證(確保某個(gè)實(shí)體確實(shí)符合其聲明)以及機(jī)密性(確保只有經(jīng)過(guò)授權(quán)的用戶才能讀取敏感數(shù)據(jù))。
? 內(nèi)存保護(hù)機(jī)制可以防止外部攻擊(例如,通過(guò) JTAG 物理訪問(wèn)設(shè)備)以及來(lái)自其他嵌入式非安全進(jìn)程的內(nèi)部攻擊。以下章節(jié)介紹實(shí)現(xiàn)完整性和身份驗(yàn)證服務(wù)的解決方案,以解決 IoT 終端節(jié)點(diǎn)設(shè)備最常見(jiàn)的威脅。
5.2安全啟動(dòng)
安全啟動(dòng) (SB)確保所執(zhí)行的用戶固件映像的完整性和真實(shí)性:使用密碼檢查,防止運(yùn)行未經(jīng)授權(quán)或惡意修改的軟件。
安全啟動(dòng)過(guò)程實(shí)現(xiàn)了一個(gè)可信根:從該可信組件開(kāi)始(圖 2 中的步驟 1),在其他每個(gè)組件執(zhí)行(圖 2 中的步驟 3)前驗(yàn)證該組件(圖 2 中的步驟 2)。對(duì)完整性進(jìn)行驗(yàn)證,以確保即將執(zhí)行的映像未被破壞或惡意修改。可靠性檢查旨在驗(yàn)證固件映像是來(lái)自可信且已知的源,以防止未經(jīng)授權(quán)的實(shí)體安裝及執(zhí)行代碼。

5.3安全固件更新
安全固件更新 (SFU)實(shí)現(xiàn)了安全的現(xiàn)場(chǎng)固件更新,可以安全地將新固件映像下載到設(shè)備。
如圖 3 中所示,通常有兩個(gè)實(shí)體參與固件更新過(guò)程:
? 服務(wù)器
– 可以是 OEM 制造商服務(wù)器或 Web 服務(wù)。
– 存儲(chǔ)設(shè)備固件的新版本。
– 與設(shè)備通信,如果可用,則以加密形式發(fā)送該新映像版本。
? 器件
– 現(xiàn)場(chǎng)部署。
– 嵌入了運(yùn)行固件更新過(guò)程的代碼。
– 與服務(wù)器通信并接收新的固件映像。
– 驗(yàn)證、解密并安裝新固件映像,然后執(zhí)行它。

固件更新通過(guò)以下步驟進(jìn)行:
1. 如果需要更新固件,則創(chuàng)建一個(gè)新的加密固件映像并將其存儲(chǔ)在服務(wù)器中。
2. 新的加密固件映像通過(guò)不受信任的通道發(fā)送到現(xiàn)場(chǎng)部署的設(shè)備。
3. 下載、檢查并安裝新映像。固件更新在完整的固件映像上完成。
固件更新容易受到第 5.1 節(jié) 產(chǎn)品安全介紹中所示風(fēng)險(xiǎn)的影響:密碼技術(shù)用來(lái)確保機(jī)密性、完整性和身份驗(yàn)證。實(shí)現(xiàn)機(jī)密性以保護(hù)固件映像,這可能是制造商的關(guān)鍵資產(chǎn)。
通過(guò)不受信任的通道發(fā)送的固件映像被加密,因此只有具有密鑰訪問(wèn)權(quán)的設(shè)備才能解密固件包。驗(yàn)證完整性以確保接收的映像沒(méi)有損壞。
可靠性檢查旨在驗(yàn)證固件映像是來(lái)自可信且已知的源,以防止未經(jīng)授權(quán)的實(shí)體安裝及執(zhí)行代碼。
5.4加密操作
TFM_SBSFU_Boot 應(yīng)用程序示例附帶可配置的密碼方案(固件驗(yàn)證和固件加密解決方案):
? 用于映像真實(shí)性驗(yàn)證的 RSA-2048 非對(duì)稱加密,為確保映像機(jī)密性而進(jìn)行密鑰 RSA-OAEP 加密的 AES-CTR-128 對(duì)稱加密,以及用于映像完整性檢查的 SHA256 加密。
? 用于映像真實(shí)性驗(yàn)證的 RSA-3072 非對(duì)稱加密,為確保映像機(jī)密性而進(jìn)行密鑰 RSA-OAEP 加密的 AES-CTR-128 對(duì)稱加密,以及用于映像完整性檢查的 SHA256 加密。
? 用于映像真實(shí)性驗(yàn)證的 ECDSA-256 非對(duì)稱加密,為確保映像機(jī)密性而進(jìn)行密鑰 ECIES-P256 加密的AES-CTR-128 對(duì)稱加密,以及用于映像完整性檢查的 SHA256 加密。
請(qǐng)參考[MCUboot] 開(kāi)源網(wǎng)站了解關(guān)于密碼方案的更多信息。

長(zhǎng)按掃碼關(guān)注公眾號(hào)
更多資訊,盡在STM32
▽點(diǎn)擊“閱讀原文”,可下載原文檔
原文標(biāo)題:用戶手冊(cè)|STM32CubeU5 TFM 應(yīng)用程序入門
文章出處:【微信公眾號(hào):STM32單片機(jī)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
-
單片機(jī)
+關(guān)注
關(guān)注
6065文章
44946瀏覽量
648228 -
STM32
+關(guān)注
關(guān)注
2291文章
11019瀏覽量
363011
原文標(biāo)題:用戶手冊(cè)|STM32CubeU5 TFM 應(yīng)用程序入門
文章出處:【微信號(hào):STM32_STM8_MCU,微信公眾號(hào):STM32單片機(jī)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
你好,CS32L010的相關(guān)資料(數(shù)據(jù)手冊(cè)、用戶手冊(cè)、Pack包和例程等)能不能發(fā)給我
CS32L010的相關(guān)資料(數(shù)據(jù)手冊(cè)、用戶手冊(cè)、Pack包和例程等)
使用TPSM5601R5H-IBB-EVM用戶手冊(cè)

AWTK-WEB 快速入門(1) - C 語(yǔ)言應(yīng)用程序

ADS1256按照課本的推算公式,ENOB后面需要再減去1.79,為何ADS1256用戶手冊(cè)中沒(méi)有減去1.79呢?
求一份CS32L010的相關(guān)資料(數(shù)據(jù)手冊(cè)、用戶手冊(cè)、Pack包和例程等),謝謝
THVD4431EVM用戶手冊(cè)

評(píng)論