引言
目錄預覽
1.概述
2.文檔和開源軟件資源
3.STM32Cube 概述
4.Arm 可信固件?M (TF?M)簡介
5.安全啟動和安全固件更新服務
(PSA 不可變 RoT)
6.運行時安全服務
7.保護措施和安全策略
8.軟件包說明
9.硬件和軟件環境設置
10.安裝過程
11.逐步執行
12.集成商角色描述
章節預覽
STM32Cube概述
STM32Cube 源自意法半導體,旨在通過減少開發工作量、時間和成本,明顯提高設計人員的生產率。STM32Cube 涵蓋整個 STM32 產品系列。
STM32Cube 包括:
? 一套用戶友好的軟件開發工具,覆蓋從概念到實現的整個項目開發過程,其中包括:
– STM32CubeMX 圖形軟件配置工具 STM32CubeMX,可通過圖形向導自動生成初始化 C 代碼。
– STM32CubeIDE 一種集外設配置、代碼生成、代碼編譯和調試功能于一體的開發工具
– STM32CubeProgrammer
(STM32CubeProg),圖形版本和命令行版本中可用的編程工具。
– STM32CubeMonitor (STM32CubeMonitor、STM32CubeMonPwr、STM32CubeMonRF 和STM32CubeMonUCPD)功能強大的監控工具,用于實時微調 STM32 應用程序的行為和性能 。
? STM32Cube MCU 和 MPU 軟件包,特定于每個微控制器和微處理器系列的綜合嵌入式軟件平臺(如用于STM32U5 系列的 STM32CubeU5),它包含:
– STM32Cube 硬件抽象層(HAL),確保在 STM32 各個產品之間實現最大限度的可移植性。
– STM32Cube 底層 API,通過硬件提供高度用戶控制,確保最佳性能和內存開銷
– 一組一致的中間件組件,如 ThreadX、FileX / LevelX、NetX Duo、USBX、USB-PD 觸控庫、網絡庫、mbed-crypto、TFM 和 OpenBL
– 嵌入式軟件實用工具以及全套外設和應用實例 。
? STM32Cube 擴展包,其中包含嵌入式軟件組件,這些組件用以下內容補充 STM32Cube MCU 和 MPU 軟件包的功能:– 中間件擴展和應用層– 在特定的意法半導體開發板上運行的實現案例。
Arm 可信固件?M (TF?M)簡介
TF?M (參見[TF-M])是 Arm Limited 驅動的開源軟件框架,提供 Arm Cortex?M33(TrustZone)處理器上PSA 標準的參考實現:
? PSA 不可變 RoT(可信根):在每次復位后執行不可變“安全啟動和安全固件更新”應用程序。該應用程序基于 MCUboot 開源軟件(參照[MCUboot])。
? PSA 可更新 RoT:“安全”應用程序,實現一組隔離在安全/特權級環境中的安全服務,非安全應用程序可通過PSA API 在非安全應用程序運行時間調用這些服務(參見[mbed-crypto]):
– 固件更新服務:TF?M 固件更新(FWU)服務實現 PSA 固件更新 API,以便應用程序安裝新固件。
– 內部可信存儲 服務:TF?M 內部可信存儲(ITS)服務實現 PSA 內部可信存儲 API,以便在微控制器內置 Flash 存儲器區域中寫入數據,該區域通過硬件安全保護機制與非安全或非特權級應用程序隔離開來。
– 密碼服務:TF?M 密碼服務實現 PSA 密碼 API,以便應用程序使用密碼原語,如對稱和非對稱密碼、哈希、消息認證碼(MAC)、關聯數據的認證加密(AEAD)、隨機化和密鑰派生。它附帶 PSA 密碼驅動程序接口,便于使用專用硬件。它基于 Mbed 密碼開源軟件(參照[mbed-crypto])。
– 初始認證服務:TF?M 初始認證服務允許應用程序在驗證過程中向驗證實體證明設備身份。初始認證服務可以根據請求創建一個令牌,其中包含特定于設備的固定數據集。
? 應用程序可更新 RoT:隔離在安全/非特權級環境中的安全服務,非安全應用程序可在非安全應用程序運行時間調用這些服務。
– 受保護存儲 服務:TF?M 受保護存儲(PS)服務實現 PSA 受保護存儲 API,以便在可能不可信的存儲環境中進行數據加密和寫入結果。作為參考,PS 服務采用基于 AES-GCM 的 AEAD 加密策略來保護數據的完整性和真實性。
– 第三方:實現額外的產品特定的安全服務的 RoT 應用程序。
安全啟動和安全固件更新服務
(PSA 不可變 RoT)
5.1 產品安全介紹
現場部署的設備在不受信任的環境中運行,因此會受到威脅和攻擊。為了減輕受攻擊風險,我們的目標是只在設備上運行可靠的固件。允許更新固件映像以便修復故障或引入新特性或應對措施,這對連接的器件而言十分常見。但是,如果不以安全的方式執行,則容易受到攻擊。其后果可能是破壞性的,如固件克隆、惡意軟件下載或設備損壞。
因此,必須設計安全解決方案來保護敏感數據(甚至可能是固件本身)和關鍵操作。典型的對策基于密碼技術(帶有相關密鑰)和內存保護機制:
? 加密可確保固件傳輸期間的完整性(確保數據未被破壞)、身份驗證(確保某個實體確實符合其聲明)以及機密性(確保只有經過授權的用戶才能讀取敏感數據)。
? 內存保護機制可以防止外部攻擊(例如,通過 JTAG 物理訪問設備)以及來自其他嵌入式非安全進程的內部攻擊。以下章節介紹實現完整性和身份驗證服務的解決方案,以解決 IoT 終端節點設備最常見的威脅。
5.2安全啟動
安全啟動 (SB)確保所執行的用戶固件映像的完整性和真實性:使用密碼檢查,防止運行未經授權或惡意修改的軟件。
安全啟動過程實現了一個可信根:從該可信組件開始(圖 2 中的步驟 1),在其他每個組件執行(圖 2 中的步驟 3)前驗證該組件(圖 2 中的步驟 2)。對完整性進行驗證,以確保即將執行的映像未被破壞或惡意修改。可靠性檢查旨在驗證固件映像是來自可信且已知的源,以防止未經授權的實體安裝及執行代碼。
5.3安全固件更新
安全固件更新 (SFU)實現了安全的現場固件更新,可以安全地將新固件映像下載到設備。
如圖 3 中所示,通常有兩個實體參與固件更新過程:
? 服務器
– 可以是 OEM 制造商服務器或 Web 服務。
– 存儲設備固件的新版本。
– 與設備通信,如果可用,則以加密形式發送該新映像版本。
? 器件
– 現場部署。
– 嵌入了運行固件更新過程的代碼。
– 與服務器通信并接收新的固件映像。
– 驗證、解密并安裝新固件映像,然后執行它。
固件更新通過以下步驟進行:
1. 如果需要更新固件,則創建一個新的加密固件映像并將其存儲在服務器中。
2. 新的加密固件映像通過不受信任的通道發送到現場部署的設備。
3. 下載、檢查并安裝新映像。固件更新在完整的固件映像上完成。
固件更新容易受到第 5.1 節 產品安全介紹中所示風險的影響:密碼技術用來確保機密性、完整性和身份驗證。實現機密性以保護固件映像,這可能是制造商的關鍵資產。
通過不受信任的通道發送的固件映像被加密,因此只有具有密鑰訪問權的設備才能解密固件包。驗證完整性以確保接收的映像沒有損壞。
可靠性檢查旨在驗證固件映像是來自可信且已知的源,以防止未經授權的實體安裝及執行代碼。
5.4加密操作
TFM_SBSFU_Boot 應用程序示例附帶可配置的密碼方案(固件驗證和固件加密解決方案):
? 用于映像真實性驗證的 RSA-2048 非對稱加密,為確保映像機密性而進行密鑰 RSA-OAEP 加密的 AES-CTR-128 對稱加密,以及用于映像完整性檢查的 SHA256 加密。
? 用于映像真實性驗證的 RSA-3072 非對稱加密,為確保映像機密性而進行密鑰 RSA-OAEP 加密的 AES-CTR-128 對稱加密,以及用于映像完整性檢查的 SHA256 加密。
? 用于映像真實性驗證的 ECDSA-256 非對稱加密,為確保映像機密性而進行密鑰 ECIES-P256 加密的AES-CTR-128 對稱加密,以及用于映像完整性檢查的 SHA256 加密。
請參考[MCUboot] 開源網站了解關于密碼方案的更多信息。
長按掃碼關注公眾號
更多資訊,盡在STM32
▽點擊“閱讀原文”,可下載原文檔
原文標題:用戶手冊|STM32CubeU5 TFM 應用程序入門
文章出處:【微信公眾號:STM32單片機】歡迎添加關注!文章轉載請注明出處。
-
單片機
+關注
關注
6036文章
44557瀏覽量
635099 -
STM32
+關注
關注
2270文章
10900瀏覽量
355908
原文標題:用戶手冊|STM32CubeU5 TFM 應用程序入門
文章出處:【微信號:STM32_STM8_MCU,微信公眾號:STM32單片機】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論