0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

用戶手冊|STM32CubeU5 TFM 應(yīng)用程序入門

STM32單片機 ? 來源:未知 ? 2023-02-17 22:35 ? 次閱讀

引言


本文檔描述如何入門STM32CubeU5 TFM(Arm Cortex-M 的可信固件)應(yīng)用程序,該應(yīng)用程序作為 STM32CubeU5 軟件包組成部分提供。





目錄預(yù)覽




1.概述

2.文檔和開源軟件資源

3.STM32Cube 概述

4.Arm 可信固件?M (TF?M)簡介

5.安全啟動和安全固件更新服務(wù)

(PSA 不可變 RoT)

6.運行時安全服務(wù)

7.保護措施和安全策略

8.軟件包說明

9.硬件和軟件環(huán)境設(shè)置

10.安裝過程

11.逐步執(zhí)行

12.集成商角色描述



章節(jié)預(yù)覽


STM32Cube概述

STM32Cube 源自意法半導(dǎo)體,旨在通過減少開發(fā)工作量、時間和成本,明顯提高設(shè)計人員的生產(chǎn)率。STM32Cube 涵蓋整個 STM32 產(chǎn)品系列。


STM32Cube 包括:

? 一套用戶友好的軟件開發(fā)工具,覆蓋從概念到實現(xiàn)的整個項目開發(fā)過程,其中包括:

– STM32CubeMX 圖形軟件配置工具 STM32CubeMX,可通過圖形向?qū)ё詣由沙跏蓟?C 代碼。

– STM32CubeIDE 一種集外設(shè)配置、代碼生成、代碼編譯和調(diào)試功能于一體的開發(fā)工具

– STM32CubeProgrammer

(STM32CubeProg),圖形版本和命令行版本中可用的編程工具。

– STM32CubeMonitor (STM32CubeMonitor、STM32CubeMonPwr、STM32CubeMonRF 和STM32CubeMonUCPD)功能強大的監(jiān)控工具,用于實時微調(diào) STM32 應(yīng)用程序的行為和性能 。


? STM32Cube MCU 和 MPU 軟件包,特定于每個微控制器微處理器系列的綜合嵌入式軟件平臺(如用于STM32U5 系列的 STM32CubeU5),它包含:

– STM32Cube 硬件抽象層(HAL),確保在 STM32 各個產(chǎn)品之間實現(xiàn)最大限度的可移植性。

– STM32Cube 底層 API,通過硬件提供高度用戶控制,確保最佳性能和內(nèi)存開銷

– 一組一致的中間件組件,如 ThreadX、FileX / LevelX、NetX Duo、USBX、USB-PD 觸控庫、網(wǎng)絡(luò)庫、mbed-crypto、TFM 和 OpenBL

嵌入式軟件實用工具以及全套外設(shè)和應(yīng)用實例 。


? STM32Cube 擴展包,其中包含嵌入式軟件組件,這些組件用以下內(nèi)容補充 STM32Cube MCU 和 MPU 軟件包的功能:– 中間件擴展和應(yīng)用層– 在特定的意法半導(dǎo)體開發(fā)板上運行的實現(xiàn)案例。


Arm 可信固件?M (TF?M)簡介

TF?M (參見[TF-M])是 Arm Limited 驅(qū)動的開源軟件框架,提供 Arm Cortex?M33(TrustZone)處理器上PSA 標(biāo)準的參考實現(xiàn):


? PSA 不可變 RoT(可信根):在每次復(fù)位后執(zhí)行不可變“安全啟動和安全固件更新”應(yīng)用程序。該應(yīng)用程序基于 MCUboot 開源軟件(參照[MCUboot])。


? PSA 可更新 RoT:“安全”應(yīng)用程序,實現(xiàn)一組隔離在安全/特權(quán)級環(huán)境中的安全服務(wù),非安全應(yīng)用程序可通過PSA API 在非安全應(yīng)用程序運行時間調(diào)用這些服務(wù)(參見[mbed-crypto]):

– 固件更新服務(wù):TF?M 固件更新(FWU)服務(wù)實現(xiàn) PSA 固件更新 API,以便應(yīng)用程序安裝新固件。

– 內(nèi)部可信存儲 服務(wù):TF?M 內(nèi)部可信存儲(ITS)服務(wù)實現(xiàn) PSA 內(nèi)部可信存儲 API,以便在微控制器內(nèi)置 Flash 存儲器區(qū)域中寫入數(shù)據(jù),該區(qū)域通過硬件安全保護機制與非安全或非特權(quán)級應(yīng)用程序隔離開來。

– 密碼服務(wù):TF?M 密碼服務(wù)實現(xiàn) PSA 密碼 API,以便應(yīng)用程序使用密碼原語,如對稱和非對稱密碼、哈希、消息認證碼(MAC)、關(guān)聯(lián)數(shù)據(jù)的認證加密(AEAD)、隨機化和密鑰派生。它附帶 PSA 密碼驅(qū)動程序接口,便于使用專用硬件。它基于 Mbed 密碼開源軟件(參照[mbed-crypto])。

– 初始認證服務(wù):TF?M 初始認證服務(wù)允許應(yīng)用程序在驗證過程中向驗證實體證明設(shè)備身份。初始認證服務(wù)可以根據(jù)請求創(chuàng)建一個令牌,其中包含特定于設(shè)備的固定數(shù)據(jù)集。


? 應(yīng)用程序可更新 RoT:隔離在安全/非特權(quán)級環(huán)境中的安全服務(wù),非安全應(yīng)用程序可在非安全應(yīng)用程序運行時間調(diào)用這些服務(wù)。

– 受保護存儲 服務(wù):TF?M 受保護存儲(PS)服務(wù)實現(xiàn) PSA 受保護存儲 API,以便在可能不可信的存儲環(huán)境中進行數(shù)據(jù)加密和寫入結(jié)果。作為參考,PS 服務(wù)采用基于 AES-GCM 的 AEAD 加密策略來保護數(shù)據(jù)的完整性和真實性。

– 第三方:實現(xiàn)額外的產(chǎn)品特定的安全服務(wù)的 RoT 應(yīng)用程序。



安全啟動和安全固件更新服務(wù)

(PSA 不可變 RoT)

5.1 產(chǎn)品安全介紹

現(xiàn)場部署的設(shè)備在不受信任的環(huán)境中運行,因此會受到威脅和攻擊。為了減輕受攻擊風(fēng)險,我們的目標(biāo)是只在設(shè)備上運行可靠的固件。允許更新固件映像以便修復(fù)故障或引入新特性或應(yīng)對措施,這對連接的器件而言十分常見。但是,如果不以安全的方式執(zhí)行,則容易受到攻擊。其后果可能是破壞性的,如固件克隆、惡意軟件下載或設(shè)備損壞。


因此,必須設(shè)計安全解決方案來保護敏感數(shù)據(jù)(甚至可能是固件本身)和關(guān)鍵操作。典型的對策基于密碼技術(shù)(帶有相關(guān)密鑰)和內(nèi)存保護機制:

? 加密可確保固件傳輸期間的完整性(確保數(shù)據(jù)未被破壞)、身份驗證(確保某個實體確實符合其聲明)以及機密性(確保只有經(jīng)過授權(quán)的用戶才能讀取敏感數(shù)據(jù))。

? 內(nèi)存保護機制可以防止外部攻擊(例如,通過 JTAG 物理訪問設(shè)備)以及來自其他嵌入式非安全進程的內(nèi)部攻擊。以下章節(jié)介紹實現(xiàn)完整性和身份驗證服務(wù)的解決方案,以解決 IoT 終端節(jié)點設(shè)備最常見的威脅。


5.2安全啟動

安全啟動 (SB)確保所執(zhí)行的用戶固件映像的完整性和真實性:使用密碼檢查,防止運行未經(jīng)授權(quán)或惡意修改的軟件。


安全啟動過程實現(xiàn)了一個可信根:從該可信組件開始(圖 2 中的步驟 1),在其他每個組件執(zhí)行(圖 2 中的步驟 3)前驗證該組件(圖 2 中的步驟 2)。對完整性進行驗證,以確保即將執(zhí)行的映像未被破壞或惡意修改??煽啃詸z查旨在驗證固件映像是來自可信且已知的源,以防止未經(jīng)授權(quán)的實體安裝及執(zhí)行代碼。


5.3安全固件更新

安全固件更新 (SFU)實現(xiàn)了安全的現(xiàn)場固件更新,可以安全地將新固件映像下載到設(shè)備。


如圖 3 中所示,通常有兩個實體參與固件更新過程:

? 服務(wù)器

– 可以是 OEM 制造商服務(wù)器或 Web 服務(wù)。

– 存儲設(shè)備固件的新版本。

– 與設(shè)備通信,如果可用,則以加密形式發(fā)送該新映像版本。


? 器件

– 現(xiàn)場部署。

– 嵌入了運行固件更新過程的代碼。

– 與服務(wù)器通信并接收新的固件映像。

– 驗證、解密并安裝新固件映像,然后執(zhí)行它。


固件更新通過以下步驟進行:

1. 如果需要更新固件,則創(chuàng)建一個新的加密固件映像并將其存儲在服務(wù)器中。

2. 新的加密固件映像通過不受信任的通道發(fā)送到現(xiàn)場部署的設(shè)備。

3. 下載、檢查并安裝新映像。固件更新在完整的固件映像上完成。


固件更新容易受到第 5.1 節(jié) 產(chǎn)品安全介紹中所示風(fēng)險的影響:密碼技術(shù)用來確保機密性、完整性和身份驗證。實現(xiàn)機密性以保護固件映像,這可能是制造商的關(guān)鍵資產(chǎn)。


通過不受信任的通道發(fā)送的固件映像被加密,因此只有具有密鑰訪問權(quán)的設(shè)備才能解密固件包。驗證完整性以確保接收的映像沒有損壞。


可靠性檢查旨在驗證固件映像是來自可信且已知的源,以防止未經(jīng)授權(quán)的實體安裝及執(zhí)行代碼。


5.4加密操作

TFM_SBSFU_Boot 應(yīng)用程序示例附帶可配置的密碼方案(固件驗證和固件加密解決方案):

? 用于映像真實性驗證的 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] 開源網(wǎng)站了解關(guān)于密碼方案的更多信息。



本文檔為大家詳細介紹了STM32CubeU5 TFM應(yīng)用程序的各個組成部分,以及如何安裝與使用,由于文章篇幅有限,僅展示部分內(nèi)容,完整文檔請點擊文末“閱讀原文”下載閱讀。



長按掃碼關(guān)注公眾號


更多資訊,盡在STM32



點擊“閱讀原文”,可下載原文檔


原文標(biāo)題:用戶手冊|STM32CubeU5 TFM 應(yīng)用程序入門

文章出處:【微信公眾號:STM32單片機】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 單片機
    +關(guān)注

    關(guān)注

    6023

    文章

    44376

    瀏覽量

    628499
  • STM32
    +關(guān)注

    關(guān)注

    2258

    文章

    10828

    瀏覽量

    352517

原文標(biāo)題:用戶手冊|STM32CubeU5 TFM 應(yīng)用程序入門

文章出處:【微信號:STM32_STM8_MCU,微信公眾號:STM32單片機】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    針對特定內(nèi)核使用PFlash,是否會影響多核應(yīng)用程序的性能?

    根據(jù)AURIX TC3xx 系列用戶手冊第一部分(infineon.com)表 71,從本地內(nèi)核 PFlash 獲取指令所需的 CPU 周期比其他內(nèi)核快。因此,根據(jù)我的理解,映射到內(nèi)核 0 的運行程序
    發(fā)表于 07-04 06:04

    CS1237 用戶手冊

    電子發(fā)燒友網(wǎng)站提供《CS1237 用戶手冊.pdf》資料免費下載
    發(fā)表于 04-21 09:07 ?11次下載

    你好,CS32L010的相關(guān)資料(數(shù)據(jù)手冊、用戶手冊、Pack包和例程等)能不能發(fā)給我下,郵箱:1937935593@qq.com,謝謝

    你好,CS32L010的相關(guān)資料(數(shù)據(jù)手冊、用戶手冊、Pack包和例程等)能不能發(fā)給我下,郵箱:1937935593@qq.com,謝謝
    發(fā)表于 03-23 16:24

    TC399和TC387應(yīng)用程序KIT_A2G_TC387_MOTORCTR TDA5235_915_5_BOARD是否支持Wi-fi和藍牙連接?

    Hlo 團隊、 AURIX? TC399 和 TC387 應(yīng)用程序KIT_A2G_TC387_MOTORCTR TDA5235_915_5_BOARD是否支持 Wi-fi 和藍牙連接,因為我已檢查
    發(fā)表于 03-04 06:54

    RA8系列用戶手冊

    電子發(fā)燒友網(wǎng)站提供《RA8系列用戶手冊.pdf》資料免費下載
    發(fā)表于 01-29 14:06 ?0次下載
    RA8系列<b class='flag-5'>用戶手冊</b>

    GM78用戶手冊

    GM78用戶手冊
    發(fā)表于 01-22 14:42 ?0次下載

    Mc32F7062用戶手冊

    電子發(fā)燒友網(wǎng)站提供《Mc32F7062用戶手冊.pdf》資料免費下載
    發(fā)表于 12-29 11:06 ?19次下載

    RL78/G13 Target board QB-R5F100LE-TB 用戶手冊

    RL78/G13 Target board QB-R5F100LE-TB 用戶手冊
    發(fā)表于 11-30 18:30 ?0次下載
    RL78/G13 Target board QB-R<b class='flag-5'>5</b>F100LE-TB <b class='flag-5'>用戶手冊</b>

    如何讓STM32WB在沒有LSE時運行BLE應(yīng)用程序

    如何讓STM32WB在沒有LSE時運行BLE應(yīng)用程序
    的頭像 發(fā)表于 10-24 16:41 ?402次閱讀
    如何讓<b class='flag-5'>STM32</b>WB在沒有LSE時運行BLE<b class='flag-5'>應(yīng)用程序</b>

    Ting-01(M)用戶手冊

    電子發(fā)燒友網(wǎng)站提供《Ting-01(M)用戶手冊.pdf》資料免費下載
    發(fā)表于 10-19 10:01 ?0次下載
    Ting-01(M)<b class='flag-5'>用戶手冊</b>

    STM32G4 應(yīng)用程序與 Option Bytes 同時燒錄問題

    STM32G4 應(yīng)用程序與 Option Bytes 同時燒錄問題
    的頭像 發(fā)表于 09-28 18:02 ?910次閱讀
    <b class='flag-5'>STM32</b>G4 <b class='flag-5'>應(yīng)用程序</b>與 Option Bytes 同時燒錄問題

    emWIN5的中文手冊

    功能 (應(yīng)用程序接口或 API)。在實際使用 emWin 前,應(yīng)閱讀或至少瀏覽一遍本手冊以便對軟件有所了 解。然后建議按以下步驟進行操作: ? 將 emWin 文件復(fù)制到計算機中。 ? 通讀 “入門指南
    發(fā)表于 09-28 07:45

    VIM用戶手冊手冊

    VIM用戶手冊手冊
    發(fā)表于 09-28 06:43

    UM0985用戶手冊

    Workbench的新手用戶提供了一些構(gòu)建和運行此文檔提供的示例程序。這應(yīng)該為他們提供技能 需要創(chuàng)建和構(gòu)建自己的應(yīng)用程序。 本文檔中引用的DISCOVER項目對應(yīng)于Flash中的演示STM3
    發(fā)表于 09-27 06:26

    STM32H7x3 MCU用戶手冊

    電子發(fā)燒友網(wǎng)站提供《STM32H7x3 MCU用戶手冊.pdf》資料免費下載
    發(fā)表于 09-26 09:29 ?3次下載
    <b class='flag-5'>STM32</b>H7x3 MCU<b class='flag-5'>用戶手冊</b>