昨天文章《最近STM32CubeMX、IDE、Programmer都更新了些什么內容》講述了ST最近在這些工具上的動作。 今天講述的內容是STM32生態中,STM32Trust下面的一部分內容。 (本文參考應用筆記文檔:AN5054) 一、回顧STM32Trust什么是STM32Trust? STM32Trust是一套STM32解決方案,提供完整的代碼保護和執行保護工具套件,如下圖:
今天講述的就是代碼保護中,使用STM32TrustedPackageCreator生成SFI和SMI加密固件。 STM32Trust官方網址:
www.st.com/stm32trust
二、基礎介紹
SFI:Secure Firmware Installation,安全固件安裝解決方案。
SMI:Secure Module Install,安全模塊安裝。
OEM:Original Equipment Manufacturer,原始設備制造商(或原廠);
SFI格式是由ST公司創建的固件加密格式,它使用帶有128位密鑰的AES-GCM算法將固件(Elf、Hex、Bin或Srec格式)轉換為SFI格式的加密和認證固件。
SMI格式是ST公司創建的一種格式,旨在保護合作伙伴的軟件(軟件模塊和庫)。
三、安裝STM32Trust生成器
STM32TrustedPackageCreator安全包生成器工具屬于STM32CubeProgrammer編程工具中的一部分(附加的工具)。
所以,在安裝STM32CubeProgrammer工具時,集成有STM32TrustedPackageCreator這個工具,只是默認不安裝,需要手動勾選。
打開STM32TrustedPackageCreator工具,在主界面你就會看到一些我們之前說的SFI、SMI、HSM內容。
四、SFI固件生成過程
主要過程如下框圖,由原廠固件、隨機數、密鑰,經過STM32TrustedPackageCreator工具加密成SFI格式固件。
生成過程生產主要過程見下圖:
在執行AES-GCM加密一個區域之前,我們計算初始化向量(IV)為:
IV = nonce + Area Index
該工具將固件映像劃分為幾個加密的部分,這些部分對應于不同的內存區域。
這些附加到相應描述符(由工具生成的未加密的描述性頭部)的加密部分稱為區域。
這些領域分不同的類型:
F:固件區域(輸入固件中的常規段) M:模塊區域(用于SFI-SMI組合圖像生成,對應于來自SMI模塊的輸入) C:配置區域(用于選擇字節配置) P:表示“暫停”區域 R:回復區域
區域“P”和“R”并不代表真正的固件區域,而是在SFI映像被分割成幾個部分時創建的,這是在SFI映像的全局大小超過用戶在創建SFI映像期間預定義的允許RAM大小時的情況。
下面RAM大小和CT地址輸入用于SFI:
P和R區域與常規SFI區域:
此生成過程的最終輸出是單個文件,該文件是經過加密和驗證的SMI格式固件。SFI格式布局如下:
當SFI圖像在生成過程中被分割時,“P”和“R”區域出現在SFI圖像布局中,如圖下圖所示:
五、SMI固件生成過程
SMI同樣是一種加密固件,只是這里面加密的是針對模塊和庫。
SMI加密過程和SFI有點類似,如下圖:
生成過程生產主要過程見下圖:
AES-GCM加密使用以下輸入:
?128位AES加密密鑰
?輸入nonce作為初始化向量(IV)
?作為附加身份驗證數據的安全版本(AAD)
在創建SMI映像文件之前,對SMI映像有效性進行PCROP檢查:
?PCROP部分必須在Flash字(256位)上對齊,否則將顯示警告
?該區域的大小必須至少為2個Flash單詞(512位),否則將顯示警告
?該部分必須在Flash單詞邊界(256位單詞)上結束,否則將顯示警告
?如果緊隨PCROP部分之后的部分的起始地址與PCROP部分的最后一個Flash單詞重疊(在執行PCROP對齊約束之后),則生成失敗并出現錯誤消息。
如果一切正常,在指定的路徑下創建兩個輸出:
?SMI圖像
?Lib數據
SMI格式布局如下:
-
生成器
+關注
關注
7文章
320瀏覽量
21149 -
SMIC
+關注
關注
0文章
21瀏覽量
19988 -
STM32Trust
+關注
關注
0文章
6瀏覽量
2243
發布評論請先 登錄
相關推薦
開源隨機數生成器庫OpenRNG助力實現移植到Arm平臺時的最佳性能
![開源隨機數<b class='flag-5'>生成器</b>庫OpenRNG助力實現移植到Arm平臺時的最佳性能](https://file1.elecfans.com/web3/M00/07/82/wKgZO2emstiAAcxyAAAT-fClqro271.png)
超詳細!FMU生成器用戶手冊來啦~
![超詳細!FMU<b class='flag-5'>生成器</b>用戶手冊來啦~](https://file.elecfans.com/web2/M00/40/07/pYYBAGJrUk2AaMaTAAAQONQtdzo461.jpg)
Freepik攜手Magnific AI推出AI圖像生成器
CDCM6208V1F具有小數分頻器的2:8時鐘生成器/抖動消除器數據表
![CDCM6208V1F具有小數分頻器的2:8時鐘<b class='flag-5'>生成器</b>/抖動消除器數據表](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
具有小數分頻器的CDCM6208 2:8時鐘生成器/抖動消除器數據表
![具有小數分頻器的CDCM6208 2:8時鐘<b class='flag-5'>生成器</b>/抖動消除器數據表](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
TSMaster 測試報告生成器操作指南
![TSMaster 測試報告<b class='flag-5'>生成器</b>操作指南](https://file.elecfans.com/web2/M00/40/07/pYYBAGJrUk2AaMaTAAAQONQtdzo461.jpg)
生成對抗網絡(GANs)的原理與應用案例
Adobe發布Lightroom人工智能新功能:生成消除和鏡頭模糊預覽
微軟Edge瀏覽器將引入AI主題生成器,為用戶提供獨特的主頁設計
飛凌嵌入式ElfBoard ELF 1板卡-在線二維碼生成器
![](https://file1.elecfans.com/web2/M00/C6/E0/wKgZomYNCkmAGJf2AAKIIXI8xYA361.png)
深度學習生成對抗網絡(GAN)全解析
![深度學習<b class='flag-5'>生成</b>對抗網絡(GAN)全解析](https://file1.elecfans.com/web2/M00/C6/3B/wKgZomYGY4qACxMuAAATTUiS7WI899.png)
評論