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