前幾天的一篇文章《世界知名半導體ST、NXP、Microchip、TI、Renesas公司的MCU和MPU定位、性能及特點》提到了這些公司的MCU,其實每家公司都有對自家MCU做一定的保護措施。 學習STM32的朋友,多少都聽過STM32Trust,但有許多人卻不知道STM32Trust究竟是什么。 本文就帶你認識STM32Trust,以及最新在STM32H7上支持的一種SMI技術。一、總述STM32TrustSTM32Trust官方網址:
www.st.com/stm32trust
STM32Trust是一套STM32解決方案,提供完整的代碼保護和執行保護工具套件,如下圖:
1.代碼保護STM32Trust.CodeProtection一套解決方案,以確保燒寫STM32時,客戶代碼的機密性和完整性。
某些STM32 單片機型號已嵌入硬件安全保護功能,還額外實現了篡改檢測、防火墻代碼隔離機制和Arm TrustZone技術,來保護最敏感的代碼。 代碼保護方案支持的STM32列表:
幾個概念:①SBSFU:Secure Boot and Secure Firmware Update,安全啟動和安全固件更新。②CRYPTOLIB:cryptographic firmware library,加密固件庫。③SFI:Secure Firmware Installation,安全固件安裝解決方案。 2.執行保護設備成為商業產品就易成為受攻擊的目標,需要對信息安全攻擊具有免疫力。因而需要采取信息安全防護措施,以確保固件IP受到保護,機密憑證和數據受應用程序保護,而不會被破壞。 執行保護方案支持的STM32列表:
二、STM32Trust代碼保護在上面可以看得出來,官方針對STM32做了多種代碼保護方案,這里挑選幾個進行講述。 代碼保護包含:
X-CUBE-SBSFU解決方案
X-CUBE-CRYPTOLIB解決方案
SFI安全固件安裝解決方案
STM32CubeProgrammer
STM32HSM
1.X-CUBE-SBSFU解決方案SBSFU:Secure Boot and Secure Firmware Update,安全啟動和安全固件更新。 網址:
https://www.st.com/en/embedded-software/x-cube-sbsfu.html
X-CUBE-SBSFU安全啟動和安全固件更新解決方案允許使用新固件版本更新STM32微控制器內置程序,增加新功能并糾正潛在問題。更新過程以安全的方式執行,以防止未經授權的更新和對機密設備上數據的訪問。
SBSFU主要體現安全啟動和安全固件更新: 安全啟動是不可變的代碼,通常在系統重置后執行,該代碼檢查STM32靜態保護,激活STM32運行時保護,然后在每次執行之前驗證用戶應用程序代碼的真實性和完整性,以確保無效或惡意代碼無法運行。 安全固件更新應用程序通過具有Ymodem協議的UART接口接收固件映像,檢查其真實性,并在安裝代碼之前檢查代碼的完整性。
SBSFU主要特征:
①安全啟動以在執行之前檢查固件映像。
②具有防回滾和部分映像更新功能的安全固件更新,用于無線或本地固件映像更新。
③通過PKCS#11 API提供加密服務的安全密鑰管理服務。
④獨立的STM32系統解決方案示例,展示了STM32保護的最佳用法,可保護資產免遭未經授權的外部或內部訪問。
⑤結合STM32和STSAFE-A100系統解決方案示例,展示了用于安全身份驗證服務和安全數據存儲的硬件安全元素保護。
2.X-CUBE-CRYPTOLIB解決方案CRYPTOLIB:cryptographic firmware library,加密固件庫。 網址:
https://www.st.com/en/embedded-software/x-cube-cryptolib.html
STM32加密庫軟件包(X-CUBE-CRYPTOLIB)基于STM32Cube體系結構軟件包,并包括一組基于固件實現的加密算法,可以在所有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格式的固件轉換為SFI格式的加密和認證固件。
SFI映像由一個頭部區域和多個其他區域組成,這些區域通常為連續固件區域,最后一個區域為配置區域,其中包含SFI完成時需要設置的選項字節值。 我之前也寫過相關文章:關于STM32CubeProgrammer的內容5.STM32HSMSTM32HSM-V1硬件安全模塊(HSM)用于確保STM32產品的編程安全,并避免在合同制造商的住所制造假冒產品。
SFI功能允許將客戶固件安全地加載到嵌入了安全引導程序的STM32產品中。 定義固件加密密鑰并對其固件進行加密后,原始設備制造商(OEM)將加密密鑰存儲到一個或多個STM32HSM-V1 HSM,并使用STM32CubeProgrammer和STM32 Trusted Package Creator設置授權的SFI操作數(計數器值)軟件工具。合同制造商必須利用STM32HSM-V1 HSM將加密的固件加載到STM32設備:每個HSM僅允許OEM定義數量的編程操作,然后不可撤銷地將其停用。 STM32HSM-V1主要特征:①正版固件標識(固件標識符) ②識別具有安全固件安裝(SFI)功能的STM32產品 ③管理與支持的STM32產品關聯的ST公鑰 ④使用客戶定義的固件加密密鑰生成許可證 ⑤安全計數器,可生成預定義數量的許可證 ⑥直接支持STM32CubeProgrammer軟件(STM32CubeProg),包括STM32 Trusted Package Creator工具。 6.FASTROM編程服務FASTROM:Factory Advanced Service Technique Read Only Memory。 什么意思?MCU出廠時就把程序給你寫進去。 MCU是預編程了客戶代碼和選項字節的Flash工藝MCU器件,FASTROM MCU可提高大批量(10,000+)編程效率,相比ROM,具有交期更短、并允許對器件重新編程的優勢。 三、STM32Trust執行保護STM32Trust.ExecutionProtection是一組STM32功能,用于確保所有者代碼運行期的適當隔離、正確執行和易用性,以保證所收集數據的機密性和真實性。STM32提供不同的架構和隔離方案用于實現執行保護。 執行保護包含:
調試
安全啟動
MPU
雙核架構
TrustZone
防火墻
執行保護的內容不難理解,下面引用官方的內容。
1.調試
通過調試端口可從外部訪問所有設備資源。調試端口用于應用程序開發,是攻擊者對設備進行攻擊時可能會最先利用的薄弱環節。為確保用戶代碼的機密性和真實性,應鎖定STM32調試功能。
2.安全啟動
如X-CUBE-SBSFU軟件包中所示,安全啟動在每次復位時執行,檢查STM32平臺配置的完整性,并驗證每個嵌入式固件的簽名,以確保其真實性。
3.MPU
存儲器保護單元機制可保護進程,防止不同進程間的相互訪問,并允許這些進程獨立運行。MPU所帶來的軟件隔離效果可確保各個進程彼此之間的代碼和數據安全性。STM32提供受多種操作系統支持的MPU解決方案。
4.雙核架構
雙核架構允許兩個應用程序在同一MCU設備中同時運行,兩者通過內核ID隔離。
5.TrustZone
TrustZone是一套完整的硬件機制,用來定義和隔離兩個主要的應用程序區:一個是所謂的可信區(用于保護關鍵應用程序及其相關資源),另一個是不可信區,運行主應用程序。
6.防火墻
防火墻是一種硬件保護外設,它控制著總線訪問,并過濾對代碼區(閃存)、非易失性數據區域(SRAM)以及易失性數據區域(閃存)這三個特殊區域的訪問。它允許用戶輕松地將關鍵代碼的執行與主應用程序分開。
四、ST發布了首款兼容SMI的STM32
SMI:Secure Module Install,安全模塊安裝。
最近,ST發布了首款兼容SMI的STM32,那就是STM32H7。
地址:
https://blog.st.com/stm32h7-secure-module-install-smi/
安全固件安裝(SFI)現在是一種相對流行的技術,它使系統制造商能夠將其固件的加密版本發送給OEM。 由于僅在MCU內部對代碼進行解密,因此開發人員可以降低IP盜用的風險。同樣,OEM可以提供重要的保證,而無需投資大型機器或技術,因為它們唯一需要的是STM32CubeProgrammer和HSM智能卡,其中包含安全證書,可以將固件安全地安裝到MCU上。 關于SMISMI與其他常規模塊一樣,運行在MCU上的應用程序也調用該模塊,但是系統制造商無法訪問源代碼,從而大大降低了IP盜用的可能性。 SMI和SFI流程:
細心的讀者會注意到SMI流程與SFI相同,但是開發人員不加密整個固件,而是加密模塊。此外,SFI和SMI進程使用不同的HSM卡。一個智能卡不能存儲所有憑據,但是出于明顯的安全原因,每個固件和模塊都必須使用其卡。
與SFI不同,SMI需要編譯器支持唯一擴展,免費的STM32CubeIDE已經兼容,并且它的最新更新剛剛帶來了對STM32H7的支持,使其成為專業人士和發燒友的絕佳工具。同樣,Keil和iAR也兼容,并且我們正在與其他IDE制造商合作以確保提供盡可能廣泛的支持。
在10月8日,IAR官網有一份公告:IAR Systems簡化了IP保護并實現了主流微控制器設備的安全性。
地址:
https://www.iar.com/about-us/newsroom/press/?releaseId=3440256
-
ST
+關注
關注
32文章
1135瀏覽量
129042 -
STM32
+關注
關注
2270文章
10918瀏覽量
356855 -
STM32Trust
+關注
關注
0文章
6瀏覽量
2233
發布評論請先 登錄
相關推薦
評論