STM32今年推出的新產(chǎn)品STM32H5除了兼具性能、功耗與集成度的優(yōu)勢(shì)外還進(jìn)一步提升了產(chǎn)品的安全特性,在信息安全保護(hù)方面帶來(lái)了很多新的特性以及創(chuàng)新的解決方案,例如:
安全啟動(dòng)BootROM ST-iROT
安全調(diào)試Debug Authentication
基于新的Product State機(jī)制的生命周期管理
HDP/HDPL Flash隱藏保護(hù)區(qū)及其多級(jí)保護(hù)級(jí)別
Secure Storage專用安全存儲(chǔ)OptionByteKey(obk)區(qū)
安全管理器Secure Manager以二進(jìn)制形式提供的安全解決方案
需要了解更詳細(xì)的STM32H5信息安全特性,歡迎瀏覽STM32MCU wiki頁(yè)面:Security with STM32H5?,Getting started with STM32H5 security?。 STM32H5無(wú)疑給工業(yè)物聯(lián)網(wǎng)產(chǎn)品設(shè)計(jì)帶來(lái)了新的優(yōu)秀選擇。在提供更先進(jìn)的硬件和解決方案的同時(shí),STM32Cube工具作為STM32生態(tài)系統(tǒng)的重要組成部分,當(dāng)然也考慮到如何讓開(kāi)發(fā)者能夠更便捷地使用這一系列的新安全功能的問(wèn)題。為此STM32CubeProgrammer及其內(nèi)嵌的STM32TrustedPackageCreator,STM32CubeMX等工具都進(jìn)行了升級(jí),全面支持STM32H5的新安全特性。下面就帶大家做簡(jiǎn)要了解。
STM32CubeProgrammer & STM32TrustedPackageCreator
STM32CubeProgrammer是一個(gè)集成了多項(xiàng)功能的STM32編程工具,提供Flash以及Memory讀寫,OptionByte選項(xiàng)字節(jié)讀取與配置,內(nèi)核和外設(shè)寄存器讀寫等多種功能。STM32TrustPackageCreator是內(nèi)嵌在STM32CubeProgrammer的另一個(gè)工具,主要包含針對(duì)STM32產(chǎn)品信息安全的多種功能。這兩個(gè)工具都提供了GUI界面,也支持CLI命令行方式,方便開(kāi)發(fā)者使用。 STM32CubeProgrammer v2.14.0增加了OBK文件provisioning,Debug Authentication等新功能,來(lái)配合STM32H5的新安全特性的使用。其內(nèi)嵌的STM32TrustedPackageCreator v2.14.0同樣也增加了H5的系列配置頁(yè)面,提供了針對(duì)STM32H5安全新特性的一系列功能,例如
Obkey的配置選項(xiàng)卡:可以用于生成多種obk文件,對(duì)應(yīng)不同的安全功能的配置,STM32CubeFW_H5的軟件包中會(huì)帶有對(duì)應(yīng)功能配置的xml文件模板,模板文件可以在Projects目錄下開(kāi)發(fā)板的ROT_Provisioning目錄中的相關(guān)子目錄下找到,用戶可以在模板xml文件的基礎(chǔ)上輕松完成相關(guān)配置。
Image Gen配置選項(xiàng)卡頁(yè)面:可以基于xml模板完成對(duì)代碼或者數(shù)據(jù)二進(jìn)制文件的簽名打包,生成對(duì)應(yīng)ST-iROT或者OEMiROT的支持安全啟動(dòng)的應(yīng)用程序二進(jìn)制文件,以及用于安全升級(jí)的應(yīng)用程序升級(jí)包文件。
DA CertiGen配置選項(xiàng)卡頁(yè)面:可以生成Debug Authentication安全調(diào)試所需要的數(shù)字證書,包括根證書、中間證書、葉子證書等。
SFI和HSM相關(guān)的幾個(gè)配置選項(xiàng)卡:提供針對(duì)SFI安全固件安裝的相關(guān)配置功能,例如對(duì)OEM固件進(jìn)行加密生成用于安全燒錄的SFI文件,將OEM的加密密鑰寫入HSM,生成OptionByte配置文件等。
下面舉幾個(gè)例子:
STM32H5安全調(diào)試
啟用安全調(diào)試功能涉及兩個(gè)階段,配置階段和使用階段。 配置階段包含Debug Authentication obk文件生成,obk文件燒寫和設(shè)置產(chǎn)品保護(hù)狀態(tài)等幾個(gè)步驟。其中STM32TrustedPackageCreator H5的Obkey頁(yè)面可以生成Debug Authentication安全調(diào)試的根密鑰及其公鑰哈希,或者設(shè)置用于安全回退的密碼,并生成最終的DA配置obk文件。
STM32CubeProgrammer工具新增加的OBKey Provisioning選項(xiàng)卡頁(yè)面可以將DA obk文件燒寫至STM32H5芯片上對(duì)應(yīng)的obk區(qū)域。產(chǎn)品保護(hù)狀態(tài)的設(shè)置則可以在OB Option Byte選項(xiàng)字節(jié)配置的頁(yè)面完成。
安全調(diào)試功能使用階段,如果在TrustZone開(kāi)啟的情況下需要重新打開(kāi)調(diào)試連接,那么首先需要通過(guò)STM32TrustedPackageCreator生成用于DA所需的數(shù)字證書。
然后,再通過(guò)STM32CubeProgrammer發(fā)起DA請(qǐng)求,開(kāi)啟安全調(diào)試模式,或者進(jìn)行產(chǎn)品狀態(tài)回退。
當(dāng)DA請(qǐng)求被STM32H5芯片的DA library驗(yàn)證通過(guò),則會(huì)執(zhí)行相關(guān)DA請(qǐng)求的操作。如果請(qǐng)求的操作是重新打開(kāi)某種調(diào)試連接,則該調(diào)式功能將被暫時(shí)恢復(fù),下電上電之前都可以進(jìn)行調(diào)試;如果請(qǐng)求的操作是回退,則Product State會(huì)恢復(fù)到Open或者TZ-Closed狀態(tài)。
如果希望了解如何一步一步配置和使用STM32H5的安全調(diào)試,可以參考wiki頁(yè)面How to start with DA on STM32H5? ,獲得更詳細(xì)的說(shuō)明信息。
STM32H5安全啟動(dòng)ST-iROT
啟用ST-iROT安全啟動(dòng)功能也有幾個(gè)主要步驟,首先是生成ST-iROT的配置,產(chǎn)生配置obk文件,包括用戶代碼簽名、加密使用的密鑰,代碼的起始地址偏移量和大小等等,這個(gè)步驟可以由STM32TrustedPackageCreator工具完成。生成的obk 文件同樣可以通過(guò)STM32CubeProgrammer的OBK Provisioning工具進(jìn)行燒寫,類似前面起到過(guò)的DA obk文件的燒寫。
其次是應(yīng)用程序固件的簽名打包,最終燒寫到用戶Flash的是帶有簽名和相關(guān)頭數(shù)據(jù)的可以通過(guò)ST-iROT進(jìn)行校驗(yàn)并啟動(dòng)的文件。用戶應(yīng)用程序的簽名打包,同樣可以由STM32TrustedPackageCreator在Image Gen配置選項(xiàng)卡頁(yè)面完成。
如果希望了解如何一步一步配置和使用STM32H5的ST-iROT功能,可以參考以下wiki頁(yè)面獲得更詳細(xì)的說(shuō)明信息:
How to start with ST-iROT on STM32H573
How to start with STiRoT OEMuRoT on STM32H573
STM32CubeMX
STM32CubeMX是一個(gè)用于對(duì)STM32MCU/MPU進(jìn)行配置的工具,其中包含了管腳分配,IP初始化配置,時(shí)鐘樹(shù)配置,工程配置,代碼生成以及應(yīng)用場(chǎng)景功耗預(yù)估等,既可以從零開(kāi)始配置芯片并一站式生成工程架構(gòu)以及初始化代碼,也可以基于現(xiàn)有的配置文件,在此基礎(chǔ)上進(jìn)行修改并更新工程代碼。 STM32CubeMX對(duì)于帶有V8-M TrustZone特性的STM32MCU已經(jīng)有很好的之支持,當(dāng)選擇任何一個(gè)CM33內(nèi)核帶TrustZone功能的STM32MCU或者其對(duì)應(yīng)的開(kāi)發(fā)板時(shí),STM32CubeMX會(huì)彈出對(duì)話框,詢問(wèn)是否要啟用TrustZone,如果選擇“with TrustZone activated”,則GUI界面中會(huì)出現(xiàn)與TrustZone相關(guān)的一系列配置選項(xiàng)。
在最新的STM32CubeMX v6.9.2版本中還增加了對(duì)STM32H5 BootPath啟動(dòng)路徑配置的完整支持,包含多種啟動(dòng)路徑的選擇,例如
Application only
OEM-iROT + Secure Application
ST-iROT + Secure Application
ST-iROT + S/NS Application
STiROT + OEM-uROT + S/NS Application等等。
為了讓開(kāi)發(fā)者可以更方便從STM32CubeMX中生成用于配合STM32H5 Secure Manager的應(yīng)用程序,這個(gè)版本中也包含了對(duì)SecureManager的支持。當(dāng)使用Secure Manager時(shí),工程師只需要生成一個(gè)TrustZone Non-Secure工程,用于開(kāi)發(fā)自己的應(yīng)用邏輯和功能,而安全啟動(dòng),安全升級(jí)以及TrustZone安全側(cè)的安全服務(wù)可以直接由Secure Manager的解決方案來(lái)提供支撐,無(wú)需另外開(kāi)發(fā),應(yīng)用程序只需要調(diào)用PSA API就可以直接使用Secure Manager內(nèi)嵌的安全存儲(chǔ)、加解密、Attestation等功能。為達(dá)到這個(gè)目的,開(kāi)發(fā)者只需要將Project設(shè)置為只包含Non-secure application的模式,并且從BootPath選項(xiàng)選擇ST-iROT + ST-uROT + Secure Manager,就可以輕松配置。
完成BootPath選擇之后,還可以在STM32CubeMX的”Pinout & Configuration”界面使能Secure Manager,并選擇需要使用的Secure Service,這樣STM32CubeMX就可以生成對(duì)應(yīng)的Non-Secure App工程,這個(gè)工程中除了包含外設(shè)的始化代碼以外,工程的linker會(huì)按照Secure Manager默認(rèn)的存儲(chǔ)空間布局進(jìn)行更新,工程也會(huì)包含PSA API相關(guān)的頭文件和Middleware部分的代碼,應(yīng)用工程可以調(diào)用Secure Manager提供的API,使用已經(jīng)開(kāi)發(fā)好的安全功能,同時(shí)工程的Build Action中也添加了postbuild腳本的執(zhí)行,可以在App工程編譯完成后自動(dòng)產(chǎn)生簽名加密打包的hex文件。
如果希望了解更多關(guān)于如何使用STM32CubeMX的BootPath配置以及使用Secure Manager請(qǐng)參考wiki鏈接How to start with STM32CubeMX and STM32H5 security?及其相關(guān)頁(yè)面。
另外如果讀者希望了解更多有關(guān)Secure Manager解決方案的信息,歡迎訪問(wèn)Secure Manager產(chǎn)品頁(yè)面下載軟件包,也 可以從wiki頁(yè)面Secure Manager for STM32H5,How to start with Secure Manager on STM32H5?等,獲取更多詳細(xì)的使用說(shuō)明。
來(lái)源: STM32
-
mcu
+關(guān)注
關(guān)注
146文章
17123瀏覽量
350980 -
寄存器
+關(guān)注
關(guān)注
31文章
5336瀏覽量
120230 -
物聯(lián)網(wǎng)
+關(guān)注
關(guān)注
2909文章
44557瀏覽量
372757 -
STM32
+關(guān)注
關(guān)注
2270文章
10895瀏覽量
355729 -
調(diào)試
+關(guān)注
關(guān)注
7文章
578瀏覽量
33923
原文標(biāo)題:STM32Cube工具全面支持STM32H5新安全特性
文章出處:【微信號(hào):mcugeek,微信公眾號(hào):MCU開(kāi)發(fā)加油站】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論