添加新功能并更正潛在問(wèn)題。更新過(guò)程以安全方式執(zhí)行,以防止未經(jīng)授權(quán)的更新以及訪問(wèn)設(shè)備上的機(jī)密數(shù)據(jù)。
安全啟動(dòng)(可信根服務(wù))是一種不可變代碼,總是在系統(tǒng)復(fù)位后執(zhí)行。它檢查STM32靜態(tài)保護(hù)、激活STM32運(yùn)行時(shí)保護(hù)措施,然后在每次執(zhí)行前驗(yàn)證應(yīng)用程序代碼的真實(shí)性和完整性,以確保無(wú)效或惡意代碼不能運(yùn)行。
安全固件更新應(yīng)用程序通過(guò)使用Ymodem協(xié)議的UART接口接收固件鏡像。它會(huì)在安裝代碼之前檢查其真實(shí)性和完整性。固件更新可更新整個(gè)固件鏡像,或者部分鏡像。示例代碼可靈活配置,可配置使用對(duì)你或非對(duì)稱加密方案,采用明文或密文方案。工程以兩種方案提供:
- 單插槽配置,以使固件鏡像尺寸最大化
- 雙插槽配置,以確保安全鏡像安裝,并啟用物聯(lián)網(wǎng)器件中常用的OTA固件更新功能。
對(duì)于具有多個(gè)固件(如協(xié)議棧、中間件和用戶應(yīng)用程序)的復(fù)雜系統(tǒng),固件鏡像配置最多可擴(kuò)展到三個(gè)固件鏡像。
安全密鑰管理服務(wù)通過(guò)PKCS #11 API(基于KEY ID的API)向用戶應(yīng)用程序提供加密服務(wù),這些API在受保護(hù)和隔離的環(huán)境中執(zhí)行。用戶應(yīng)用程序密鑰存儲(chǔ)在受保護(hù)和隔離的環(huán)境中,以便進(jìn)行安全更新:
真實(shí)性檢查、數(shù)據(jù)解密和數(shù)據(jù)完整性檢查。
STSAFE-A110是一種防篡改安全元件(通過(guò)硬件通用標(biāo)準(zhǔn)EAL5+認(rèn)證),用于托管X509證書和密鑰,并在安全啟動(dòng)和安全固件更新過(guò)程中執(zhí)行用于固件鏡像身份確認(rèn)的驗(yàn)證。
X-CUBE-SBSFU用戶手冊(cè)(UM2262)講解X-CUBE-SBSFU入門知識(shí)并詳細(xì)介紹SBSFU功能。該應(yīng)用筆記描述了如何調(diào)整X-CUBE-SBSFU并將其與用戶應(yīng)用程序集成;它回答了諸如以下問(wèn)題:
- 如何將X-CUBE-SBSFU移植到另一塊板?
- 如何根據(jù)用戶的需求微調(diào)X-CUBE-SBSFU配置?
- 如何生成新的固件加密密鑰?
- 如何調(diào)試X-CUBE-SBSFU?
- 如何調(diào)整SBSFU?
- 如何調(diào)整用戶的應(yīng)用程序?
移植X-CUBE-SBSFU到另一塊板上
X-CUBE-SBSFU補(bǔ)充了STM32Cube?軟件技術(shù),使不同STM32微控制器之間更易移植。
它附帶一組在給定的STM32板上實(shí)現(xiàn)的示例,可作為有用的起點(diǎn)將X-CUBE-SBSFU移植到另一塊STM32板。本文檔中將NUCLEO-L476RG和NUCLEO-L432KC板作為示例。
內(nèi)存映射定義
正如X-CUBE-SBSFU用戶手冊(cè)中所強(qiáng)調(diào),一個(gè)關(guān)鍵因素是器件閃存內(nèi)所有元素的布局:
- 安全引擎:受保護(hù)的環(huán)境,以管理所有關(guān)鍵數(shù)據(jù)和操作。
- SBSFU:安全啟動(dòng)和安全固件更新流程
- 活動(dòng)插槽:該插槽包含了活動(dòng)固件(帶固件的固件頭文件)
- 下載插槽:此插槽用于存儲(chǔ)下載的固件(帶加密固件的固件頭文件),以便在下次重啟時(shí)安裝
- 交換區(qū):用來(lái)在安裝過(guò)程中交換活動(dòng)插槽和下載插槽的內(nèi)容的Flash存儲(chǔ)區(qū)