前幾天的一篇文章《世界知名半導體ST、NXP、Microchip、TI、Renesas公司的MCU和MPU定位、性能及特點》提到了這些公司的MCU,其實每家公司都有對自家MCU做一定的保護措施。 學習STM32的朋友,多少都聽過STM32Trust,但有許多人卻不知道STM32Trust究竟是什么。 本文就帶你認識STM32Trust,以及最新在STM32H7上支持的一種SMI技術(shù)。一、總述STM32TrustSTM32Trust官方網(wǎng)址:
www.st.com/stm32trust
STM32Trust是一套STM32解決方案,提供完整的代碼保護和執(zhí)行保護工具套件,如下圖:

1.代碼保護STM32Trust.CodeProtection一套解決方案,以確保燒寫STM32時,客戶代碼的機密性和完整性。
某些STM32 單片機型號已嵌入硬件安全保護功能,還額外實現(xiàn)了篡改檢測、防火墻代碼隔離機制和Arm TrustZone技術(shù),來保護最敏感的代碼。 代碼保護方案支持的STM32列表:

幾個概念:①SBSFU:Secure Boot and Secure Firmware Update,安全啟動和安全固件更新。②CRYPTOLIB:cryptographic firmware library,加密固件庫。③SFI:Secure Firmware Installation,安全固件安裝解決方案。 2.執(zhí)行保護設備成為商業(yè)產(chǎn)品就易成為受攻擊的目標,需要對信息安全攻擊具有免疫力。因而需要采取信息安全防護措施,以確保固件IP受到保護,機密憑證和數(shù)據(jù)受應用程序保護,而不會被破壞。 執(zhí)行保護方案支持的STM32列表:

二、STM32Trust代碼保護在上面可以看得出來,官方針對STM32做了多種代碼保護方案,這里挑選幾個進行講述。 代碼保護包含:
X-CUBE-SBSFU解決方案
X-CUBE-CRYPTOLIB解決方案
SFI安全固件安裝解決方案
STM32CubeProgrammer
STM32HSM
1.X-CUBE-SBSFU解決方案SBSFU:Secure Boot and Secure Firmware Update,安全啟動和安全固件更新。 網(wǎng)址:
https://www.st.com/en/embedded-software/x-cube-sbsfu.html
X-CUBE-SBSFU安全啟動和安全固件更新解決方案允許使用新固件版本更新STM32微控制器內(nèi)置程序,增加新功能并糾正潛在問題。更新過程以安全的方式執(zhí)行,以防止未經(jīng)授權(quán)的更新和對機密設備上數(shù)據(jù)的訪問。
SBSFU主要體現(xiàn)安全啟動和安全固件更新: 安全啟動是不可變的代碼,通常在系統(tǒng)重置后執(zhí)行,該代碼檢查STM32靜態(tài)保護,激活STM32運行時保護,然后在每次執(zhí)行之前驗證用戶應用程序代碼的真實性和完整性,以確保無效或惡意代碼無法運行。 安全固件更新應用程序通過具有Ymodem協(xié)議的UART接口接收固件映像,檢查其真實性,并在安裝代碼之前檢查代碼的完整性。
SBSFU主要特征:
①安全啟動以在執(zhí)行之前檢查固件映像。
②具有防回滾和部分映像更新功能的安全固件更新,用于無線或本地固件映像更新。
③通過PKCS#11 API提供加密服務的安全密鑰管理服務。
④獨立的STM32系統(tǒng)解決方案示例,展示了STM32保護的最佳用法,可保護資產(chǎn)免遭未經(jīng)授權(quán)的外部或內(nèi)部訪問。
⑤結(jié)合STM32和STSAFE-A100系統(tǒng)解決方案示例,展示了用于安全身份驗證服務和安全數(shù)據(jù)存儲的硬件安全元素保護。
2.X-CUBE-CRYPTOLIB解決方案CRYPTOLIB:cryptographic firmware library,加密固件庫。 網(wǎng)址:
https://www.st.com/en/embedded-software/x-cube-cryptolib.html
STM32加密庫軟件包(X-CUBE-CRYPTOLIB)基于STM32Cube體系結(jié)構(gòu)軟件包,并包括一組基于固件實現(xiàn)的加密算法,可以在所有STM32微控制器中使用。

3.SFI安全固件安裝解決方案SFI:Secure Firmware Installation,安全固件安裝解決方案。 SFI安全固件安裝解決方案可用于STM32L4和STM32H7單片機,并且很快將擴展到其他STM32平臺, 為設備的首次編程提供保護。 該解決方案提供一套完整的工具集,包含用于加密OEM二進制文件的軟件(Trusted Package Creator),用于安全燒寫STM32的軟件(CUBE Programmer),以及用于將OEM機密憑證安全地交付給芯片燒錄廠家的STM32HSM。

4.STM32CubeProgrammer
? 這是一個大家熟知的對STM32編程的免費工具,包含STM32TrustedPackage Creator工具,通過該工具可以為支持SFI功能的STM32生成SFI和SMI加密映像。 ?SFI映像的格式是由ST定義的固件加密格式,它使用AES算法將Elf、Hex、Bin或Srec格式的固件轉(zhuǎn)換為SFI格式的加密和認證固件。
SFI映像由一個頭部區(qū)域和多個其他區(qū)域組成,這些區(qū)域通常為連續(xù)固件區(qū)域,最后一個區(qū)域為配置區(qū)域,其中包含SFI完成時需要設置的選項字節(jié)值。 我之前也寫過相關文章:關于STM32CubeProgrammer的內(nèi)容5.STM32HSMSTM32HSM-V1硬件安全模塊(HSM)用于確保STM32產(chǎn)品的編程安全,并避免在合同制造商的住所制造假冒產(chǎn)品。

SFI功能允許將客戶固件安全地加載到嵌入了安全引導程序的STM32產(chǎn)品中。 定義固件加密密鑰并對其固件進行加密后,原始設備制造商(OEM)將加密密鑰存儲到一個或多個STM32HSM-V1 HSM,并使用STM32CubeProgrammer和STM32 Trusted Package Creator設置授權(quán)的SFI操作數(shù)(計數(shù)器值)軟件工具。合同制造商必須利用STM32HSM-V1 HSM將加密的固件加載到STM32設備:每個HSM僅允許OEM定義數(shù)量的編程操作,然后不可撤銷地將其停用。 STM32HSM-V1主要特征:①正版固件標識(固件標識符) ②識別具有安全固件安裝(SFI)功能的STM32產(chǎn)品 ③管理與支持的STM32產(chǎn)品關聯(lián)的ST公鑰 ④使用客戶定義的固件加密密鑰生成許可證 ⑤安全計數(shù)器,可生成預定義數(shù)量的許可證 ⑥直接支持STM32CubeProgrammer軟件(STM32CubeProg),包括STM32 Trusted Package Creator工具。 6.FASTROM編程服務FASTROM:Factory Advanced Service Technique Read Only Memory。 什么意思?MCU出廠時就把程序給你寫進去。 MCU是預編程了客戶代碼和選項字節(jié)的Flash工藝MCU器件,F(xiàn)ASTROM MCU可提高大批量(10,000+)編程效率,相比ROM,具有交期更短、并允許對器件重新編程的優(yōu)勢。 三、STM32Trust執(zhí)行保護STM32Trust.ExecutionProtection是一組STM32功能,用于確保所有者代碼運行期的適當隔離、正確執(zhí)行和易用性,以保證所收集數(shù)據(jù)的機密性和真實性。STM32提供不同的架構(gòu)和隔離方案用于實現(xiàn)執(zhí)行保護。 執(zhí)行保護包含:
調(diào)試
安全啟動
MPU
雙核架構(gòu)
TrustZone
防火墻
執(zhí)行保護的內(nèi)容不難理解,下面引用官方的內(nèi)容。
1.調(diào)試
通過調(diào)試端口可從外部訪問所有設備資源。調(diào)試端口用于應用程序開發(fā),是攻擊者對設備進行攻擊時可能會最先利用的薄弱環(huán)節(jié)。為確保用戶代碼的機密性和真實性,應鎖定STM32調(diào)試功能。
2.安全啟動
如X-CUBE-SBSFU軟件包中所示,安全啟動在每次復位時執(zhí)行,檢查STM32平臺配置的完整性,并驗證每個嵌入式固件的簽名,以確保其真實性。
3.MPU
存儲器保護單元機制可保護進程,防止不同進程間的相互訪問,并允許這些進程獨立運行。MPU所帶來的軟件隔離效果可確保各個進程彼此之間的代碼和數(shù)據(jù)安全性。STM32提供受多種操作系統(tǒng)支持的MPU解決方案。
4.雙核架構(gòu)
雙核架構(gòu)允許兩個應用程序在同一MCU設備中同時運行,兩者通過內(nèi)核ID隔離。
5.TrustZone
TrustZone是一套完整的硬件機制,用來定義和隔離兩個主要的應用程序區(qū):一個是所謂的可信區(qū)(用于保護關鍵應用程序及其相關資源),另一個是不可信區(qū),運行主應用程序。
6.防火墻
防火墻是一種硬件保護外設,它控制著總線訪問,并過濾對代碼區(qū)(閃存)、非易失性數(shù)據(jù)區(qū)域(SRAM)以及易失性數(shù)據(jù)區(qū)域(閃存)這三個特殊區(qū)域的訪問。它允許用戶輕松地將關鍵代碼的執(zhí)行與主應用程序分開。
四、ST發(fā)布了首款兼容SMI的STM32
SMI:Secure Module Install,安全模塊安裝。
最近,ST發(fā)布了首款兼容SMI的STM32,那就是STM32H7。
地址:
https://blog.st.com/stm32h7-secure-module-install-smi/
安全固件安裝(SFI)現(xiàn)在是一種相對流行的技術(shù),它使系統(tǒng)制造商能夠?qū)⑵涔碳募用馨姹景l(fā)送給OEM。 由于僅在MCU內(nèi)部對代碼進行解密,因此開發(fā)人員可以降低IP盜用的風險。同樣,OEM可以提供重要的保證,而無需投資大型機器或技術(shù),因為它們唯一需要的是STM32CubeProgrammer和HSM智能卡,其中包含安全證書,可以將固件安全地安裝到MCU上。 關于SMISMI與其他常規(guī)模塊一樣,運行在MCU上的應用程序也調(diào)用該模塊,但是系統(tǒng)制造商無法訪問源代碼,從而大大降低了IP盜用的可能性。 SMI和SFI流程:

細心的讀者會注意到SMI流程與SFI相同,但是開發(fā)人員不加密整個固件,而是加密模塊。此外,SFI和SMI進程使用不同的HSM卡。一個智能卡不能存儲所有憑據(jù),但是出于明顯的安全原因,每個固件和模塊都必須使用其卡。
與SFI不同,SMI需要編譯器支持唯一擴展,免費的STM32CubeIDE已經(jīng)兼容,并且它的最新更新剛剛帶來了對STM32H7的支持,使其成為專業(yè)人士和發(fā)燒友的絕佳工具。同樣,Keil和iAR也兼容,并且我們正在與其他IDE制造商合作以確保提供盡可能廣泛的支持。
在10月8日,IAR官網(wǎng)有一份公告:IAR Systems簡化了IP保護并實現(xiàn)了主流微控制器設備的安全性。
地址:
https://www.iar.com/about-us/newsroom/press/?releaseId=3440256
-
ST
+關注
關注
32文章
1189瀏覽量
132576 -
STM32
+關注
關注
2310文章
11162瀏覽量
373545 -
STM32Trust
+關注
關注
0文章
6瀏覽量
2414
發(fā)布評論請先 登錄
2025意法半導體STM32全球線上峰會亮點回顧
STM32 Nucleo-64開發(fā)板技術(shù)解析與應用指南
STMicroelectronics NUCLEO-H533RE STM32 Nucleo-64開發(fā)板數(shù)據(jù)手冊
STM32WB09KE評估板技術(shù)解析與應用指南
STMicroelectronics NUCLEO-C071RB STM32 Nucleo-64開發(fā)板數(shù)據(jù)手冊
STM32 Nucleo-144開發(fā)板技術(shù)解析與應用指南
?STM32 Nucleo-64開發(fā)板技術(shù)解析與應用指南
STM32 Nucleo-64開發(fā)板技術(shù)解析:以NUCLEO-C092RC為例
麥克泰技術(shù)亮相2025 STM32研討會
使用USB轉(zhuǎn)TTL串口板和ST-LINK調(diào)試下載器給STM32單片機下載程序
請問ModusToolbox?是否支持與 Infineon WiFi BLE 配對的 ST MCU?
昂科燒錄器支持ST意法半導體的超低功耗微控制器STM32L4S5VIT
意法半導體推出STM32WBA6系列MCU新品
ST×米爾STM32MP25x高階實戰(zhàn)培訓會
什么是STM32Trust?ST最新發(fā)布一種支持STM32的SMI技術(shù)
評論