前幾天的一篇文章《世界知名半導(dǎo)體ST、NXP、Microchip、TI、Renesas公司的MCU和MPU定位、性能及特點(diǎn)》提到了這些公司的MCU,其實(shí)每家公司都有對自家MCU做一定的保護(hù)措施。 學(xué)習(xí)STM32的朋友,多少都聽過STM32Trust,但有許多人卻不知道STM32Trust究竟是什么。 本文就帶你認(rèn)識STM32Trust,以及最新在STM32H7上支持的一種SMI技術(shù)。一、總述STM32TrustSTM32Trust官方網(wǎng)址:
www.st.com/stm32trust
STM32Trust是一套STM32解決方案,提供完整的代碼保護(hù)和執(zhí)行保護(hù)工具套件,如下圖:
1.代碼保護(hù)STM32Trust.CodeProtection一套解決方案,以確保燒寫STM32時,客戶代碼的機(jī)密性和完整性。
某些STM32 單片機(jī)型號已嵌入硬件安全保護(hù)功能,還額外實(shí)現(xiàn)了篡改檢測、防火墻代碼隔離機(jī)制和Arm TrustZone技術(shù),來保護(hù)最敏感的代碼。 代碼保護(hù)方案支持的STM32列表:
幾個概念:①SBSFU:Secure Boot and Secure Firmware Update,安全啟動和安全固件更新。②CRYPTOLIB:cryptographic firmware library,加密固件庫。③SFI:Secure Firmware Installation,安全固件安裝解決方案。 2.執(zhí)行保護(hù)設(shè)備成為商業(yè)產(chǎn)品就易成為受攻擊的目標(biāo),需要對信息安全攻擊具有免疫力。因而需要采取信息安全防護(hù)措施,以確保固件IP受到保護(hù),機(jī)密憑證和數(shù)據(jù)受應(yīng)用程序保護(hù),而不會被破壞。 執(zhí)行保護(hù)方案支持的STM32列表:
二、STM32Trust代碼保護(hù)在上面可以看得出來,官方針對STM32做了多種代碼保護(hù)方案,這里挑選幾個進(jìn)行講述。 代碼保護(hù)包含:
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)的更新和對機(jī)密設(shè)備上數(shù)據(jù)的訪問。
SBSFU主要體現(xiàn)安全啟動和安全固件更新: 安全啟動是不可變的代碼,通常在系統(tǒng)重置后執(zhí)行,該代碼檢查STM32靜態(tài)保護(hù),激活STM32運(yùn)行時保護(hù),然后在每次執(zhí)行之前驗(yàn)證用戶應(yīng)用程序代碼的真實(shí)性和完整性,以確保無效或惡意代碼無法運(yùn)行。 安全固件更新應(yīng)用程序通過具有Ymodem協(xié)議的UART接口接收固件映像,檢查其真實(shí)性,并在安裝代碼之前檢查代碼的完整性。
SBSFU主要特征:
①安全啟動以在執(zhí)行之前檢查固件映像。
②具有防回滾和部分映像更新功能的安全固件更新,用于無線或本地固件映像更新。
③通過PKCS#11 API提供加密服務(wù)的安全密鑰管理服務(wù)。
④獨(dú)立的STM32系統(tǒng)解決方案示例,展示了STM32保護(hù)的最佳用法,可保護(hù)資產(chǎn)免遭未經(jīng)授權(quán)的外部或內(nèi)部訪問。
⑤結(jié)合STM32和STSAFE-A100系統(tǒng)解決方案示例,展示了用于安全身份驗(yàn)證服務(wù)和安全數(shù)據(jù)存儲的硬件安全元素保護(hù)。
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)軟件包,并包括一組基于固件實(shí)現(xiàn)的加密算法,可以在所有STM32微控制器中使用。
3.SFI安全固件安裝解決方案SFI:Secure Firmware Installation,安全固件安裝解決方案。 SFI安全固件安裝解決方案可用于STM32L4和STM32H7單片機(jī),并且很快將擴(kuò)展到其他STM32平臺, 為設(shè)備的首次編程提供保護(hù)。 該解決方案提供一套完整的工具集,包含用于加密OEM二進(jìn)制文件的軟件(Trusted Package Creator),用于安全燒寫STM32的軟件(CUBE Programmer),以及用于將OEM機(jī)密憑證安全地交付給芯片燒錄廠家的STM32HSM。
4.STM32CubeProgrammer ? 這是一個大家熟知的對STM32編程的免費(fèi)工具,包含STM32TrustedPackage Creator工具,通過該工具可以為支持SFI功能的STM32生成SFI和SMI加密映像。 ?SFI映像的格式是由ST定義的固件加密格式,它使用AES算法將Elf、Hex、Bin或Srec格式的固件轉(zhuǎn)換為SFI格式的加密和認(rèn)證固件。
SFI映像由一個頭部區(qū)域和多個其他區(qū)域組成,這些區(qū)域通常為連續(xù)固件區(qū)域,最后一個區(qū)域?yàn)榕渲脜^(qū)域,其中包含SFI完成時需要設(shè)置的選項(xiàng)字節(jié)值。 我之前也寫過相關(guān)文章:關(guān)于STM32CubeProgrammer的內(nèi)容5.STM32HSMSTM32HSM-V1硬件安全模塊(HSM)用于確保STM32產(chǎn)品的編程安全,并避免在合同制造商的住所制造假冒產(chǎn)品。
SFI功能允許將客戶固件安全地加載到嵌入了安全引導(dǎo)程序的STM32產(chǎn)品中。 定義固件加密密鑰并對其固件進(jìn)行加密后,原始設(shè)備制造商(OEM)將加密密鑰存儲到一個或多個STM32HSM-V1 HSM,并使用STM32CubeProgrammer和STM32 Trusted Package Creator設(shè)置授權(quán)的SFI操作數(shù)(計(jì)數(shù)器值)軟件工具。合同制造商必須利用STM32HSM-V1 HSM將加密的固件加載到STM32設(shè)備:每個HSM僅允許OEM定義數(shù)量的編程操作,然后不可撤銷地將其停用。 STM32HSM-V1主要特征:①正版固件標(biāo)識(固件標(biāo)識符) ②識別具有安全固件安裝(SFI)功能的STM32產(chǎn)品 ③管理與支持的STM32產(chǎn)品關(guān)聯(lián)的ST公鑰 ④使用客戶定義的固件加密密鑰生成許可證 ⑤安全計(jì)數(shù)器,可生成預(yù)定義數(shù)量的許可證 ⑥直接支持STM32CubeProgrammer軟件(STM32CubeProg),包括STM32 Trusted Package Creator工具。 6.FASTROM編程服務(wù)FASTROM:Factory Advanced Service Technique Read Only Memory。 什么意思?MCU出廠時就把程序給你寫進(jìn)去。 MCU是預(yù)編程了客戶代碼和選項(xiàng)字節(jié)的Flash工藝MCU器件,F(xiàn)ASTROM MCU可提高大批量(10,000+)編程效率,相比ROM,具有交期更短、并允許對器件重新編程的優(yōu)勢。 三、STM32Trust執(zhí)行保護(hù)STM32Trust.ExecutionProtection是一組STM32功能,用于確保所有者代碼運(yùn)行期的適當(dāng)隔離、正確執(zhí)行和易用性,以保證所收集數(shù)據(jù)的機(jī)密性和真實(shí)性。STM32提供不同的架構(gòu)和隔離方案用于實(shí)現(xiàn)執(zhí)行保護(hù)。 執(zhí)行保護(hù)包含:
調(diào)試
安全啟動
MPU
雙核架構(gòu)
TrustZone
防火墻
執(zhí)行保護(hù)的內(nèi)容不難理解,下面引用官方的內(nèi)容。
1.調(diào)試
通過調(diào)試端口可從外部訪問所有設(shè)備資源。調(diào)試端口用于應(yīng)用程序開發(fā),是攻擊者對設(shè)備進(jìn)行攻擊時可能會最先利用的薄弱環(huán)節(jié)。為確保用戶代碼的機(jī)密性和真實(shí)性,應(yīng)鎖定STM32調(diào)試功能。
2.安全啟動
如X-CUBE-SBSFU軟件包中所示,安全啟動在每次復(fù)位時執(zhí)行,檢查STM32平臺配置的完整性,并驗(yàn)證每個嵌入式固件的簽名,以確保其真實(shí)性。
3.MPU
存儲器保護(hù)單元機(jī)制可保護(hù)進(jìn)程,防止不同進(jìn)程間的相互訪問,并允許這些進(jìn)程獨(dú)立運(yùn)行。MPU所帶來的軟件隔離效果可確保各個進(jìn)程彼此之間的代碼和數(shù)據(jù)安全性。STM32提供受多種操作系統(tǒng)支持的MPU解決方案。
4.雙核架構(gòu)
雙核架構(gòu)允許兩個應(yīng)用程序在同一MCU設(shè)備中同時運(yùn)行,兩者通過內(nèi)核ID隔離。
5.TrustZone
TrustZone是一套完整的硬件機(jī)制,用來定義和隔離兩個主要的應(yīng)用程序區(qū):一個是所謂的可信區(qū)(用于保護(hù)關(guān)鍵應(yīng)用程序及其相關(guān)資源),另一個是不可信區(qū),運(yùn)行主應(yīng)用程序。
6.防火墻
防火墻是一種硬件保護(hù)外設(shè),它控制著總線訪問,并過濾對代碼區(qū)(閃存)、非易失性數(shù)據(jù)區(qū)域(SRAM)以及易失性數(shù)據(jù)區(qū)域(閃存)這三個特殊區(qū)域的訪問。它允許用戶輕松地將關(guān)鍵代碼的執(zhí)行與主應(yīng)用程序分開。
四、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)部對代碼進(jìn)行解密,因此開發(fā)人員可以降低IP盜用的風(fēng)險。同樣,OEM可以提供重要的保證,而無需投資大型機(jī)器或技術(shù),因?yàn)樗鼈兾ㄒ恍枰氖荢TM32CubeProgrammer和HSM智能卡,其中包含安全證書,可以將固件安全地安裝到MCU上。 關(guān)于SMISMI與其他常規(guī)模塊一樣,運(yùn)行在MCU上的應(yīng)用程序也調(diào)用該模塊,但是系統(tǒng)制造商無法訪問源代碼,從而大大降低了IP盜用的可能性。 SMI和SFI流程:
細(xì)心的讀者會注意到SMI流程與SFI相同,但是開發(fā)人員不加密整個固件,而是加密模塊。此外,SFI和SMI進(jìn)程使用不同的HSM卡。一個智能卡不能存儲所有憑據(jù),但是出于明顯的安全原因,每個固件和模塊都必須使用其卡。
與SFI不同,SMI需要編譯器支持唯一擴(kuò)展,免費(fèi)的STM32CubeIDE已經(jīng)兼容,并且它的最新更新剛剛帶來了對STM32H7的支持,使其成為專業(yè)人士和發(fā)燒友的絕佳工具。同樣,Keil和iAR也兼容,并且我們正在與其他IDE制造商合作以確保提供盡可能廣泛的支持。
在10月8日,IAR官網(wǎng)有一份公告:IAR Systems簡化了IP保護(hù)并實(shí)現(xiàn)了主流微控制器設(shè)備的安全性。
地址:
https://www.iar.com/about-us/newsroom/press/?releaseId=3440256
-
ST
+關(guān)注
關(guān)注
32文章
1138瀏覽量
129180 -
STM32
+關(guān)注
關(guān)注
2272文章
10924瀏覽量
357608 -
STM32Trust
+關(guān)注
關(guān)注
0文章
6瀏覽量
2241
發(fā)布評論請先 登錄
相關(guān)推薦
ST×米爾STM32MP25x線下培訓(xùn)會倒計(jì)時12天
![<b class='flag-5'>ST</b>×米爾<b class='flag-5'>STM32</b>MP25x線下培訓(xùn)會倒計(jì)時12天](https://file.elecfans.com/web2/M00/08/64/pYYBAGDwFEGADIPWAAFlJOlmLxg664.jpg)
昂科燒錄器支持ST意法半導(dǎo)體的32位微控制器STM32H723VGT
![昂科燒錄器<b class='flag-5'>支持</b><b class='flag-5'>ST</b>意法半導(dǎo)體的32位微控制器<b class='flag-5'>STM32</b>H723VGT](https://file1.elecfans.com/web3/M00/03/95/wKgZO2dqMEqACygsAABeLAup6zY621.png)
SEGGER工具全面支持STM32N6微控制器開發(fā)
ST×米爾STM32MP25x線下培訓(xùn)會
![<b class='flag-5'>ST</b>×米爾<b class='flag-5'>STM32</b>MP25x線下培訓(xùn)會](https://file.elecfans.com/web2/M00/08/64/pYYBAGDwFEGADIPWAAFlJOlmLxg664.jpg)
STM32嵌入式顯示器:首款采用STM32H7的高清屏幕,讓各種規(guī)模的項(xiàng)目都能顯示漂亮的GUI
![<b class='flag-5'>STM32</b>嵌入式顯示器:首款采用<b class='flag-5'>STM32</b>H7的高清屏幕,讓各種規(guī)模的項(xiàng)目都能顯示漂亮的GUI](http://m.xsypw.cn/images/chaijie_default.png)
正點(diǎn)原子的stm32開發(fā)板能用stlink嗎
英飛凌OPTIGA Trust M MTR擴(kuò)展板用于評估OPTIGA Trust M安全解決方案
![英飛凌OPTIGA <b class='flag-5'>Trust</b> M MTR擴(kuò)展板用于評估OPTIGA <b class='flag-5'>Trust</b> M安全解決方案](https://file1.elecfans.com/web1/M00/F3/22/wKgaoWcQshmAe8iGAAAS2vyx-LA344.jpg)
stm32程序燒錄的幾種方法?
stm32用串口燒錄怎么設(shè)置
一種供電總線技術(shù)POWERBUS二總線
51、STM32單片機(jī)的編程方式一樣嗎?
![51、<b class='flag-5'>STM32</b>單片機(jī)的編程方式<b class='flag-5'>一</b>樣嗎?](https://file.elecfans.com/web2/M00/9B/3D/poYBAGQjnauAVXOgAABFcEbXdEE684.png)
使用STM32Trust構(gòu)建安全的商業(yè)產(chǎn)品
求一種基于STM32G4芯片TIM+SPI+DMA應(yīng)用設(shè)計(jì)方案
![求<b class='flag-5'>一種</b>基于<b class='flag-5'>STM32</b>G4芯片TIM+SPI+DMA應(yīng)用設(shè)計(jì)方案](https://file1.elecfans.com/web2/M00/C4/AB/wKgZomX2XNKANz1IAAAtT97kpGs520.png)
STM32開發(fā)者社區(qū):從這里開啟你的STM32之旅!小白和PRO都友好
![<b class='flag-5'>STM32</b>開發(fā)者社區(qū):從這里開啟你的<b class='flag-5'>STM32</b>之旅!小白和PRO都友好](https://file1.elecfans.com//web2/M00/C2/4D/wKgaomXdk4KAMFuKAAF9eTgY4rI201.jpg)
評論