安全啟動-Secure Boot
除了NSPE和SPE兩個環(huán)境的溝通流程之外,secure boot也是Trusted Firmware很重要的設計環(huán)節(jié)。
Secure boot最主要的目的就是防止系統(tǒng)使用到惡意的固件程序或操作系統(tǒng),在開機流程中,boot
code會先透過密碼學(cryptography)算法驗證是否為可信任的的程序,如果驗證成功即會開始執(zhí)行,否則中止流程。
在Trusted Firmware-M的secure boot流程如下:
secure boot流程
Boot loader stage 1(BL1)
此階段主要是必要的硬件初始化或是設定,因此BL1 boot code必須要是可信任且不可被竄改。在執(zhí)行完初始化后,就會跳到BL2的entry point繼續(xù)執(zhí)行BL2。
The bootloader code must be stored and executed from ROM or such part of
flash memory which supports write protection.
Boot loader stage 2(BL2)
BL2負責其他需要的初始化操作,例如啟動MCUboot前所需的設定或檢查,接著就會把執(zhí)行移交給MCUboot。
MCUboot
MCUboot是針對32-bit microcontroller所設計的secure bootloader,其中包含完整的程序驗證流程,因此也是Trusted Firmware-M secure boot流程的核心。
而MCUboot本身是獨立的open source project,因此也能應用在其他項目上。
TF-M
TF-M會依據(jù)memory layout放置在指定的內(nèi)存位置,而MCUboot會先去該位置取得TF-M binary
code,并且進行相關驗證確認,如果TF-M已被加密,也會在這階段進行解密。在確認完TF-M是正確且可信任后,就會加載TF-M。
要注意的是,Trusted Firmware-M手冊中有提到,驗證和解密所需key建議放在OTP memory中,以確保不可修改。
ROTPK(root of trust public key)can be stored in a one-time-programmable(OTP)memory.
此外,由于需要在加載TF-M前就對TF-M binary進行驗證,因此上一個段落提到的crypto流程不適用在這里,我們需要額外的crypto API來處理驗證與加解密。
一般這個時候使用的驅(qū)動和接口會封裝在BL2。
最后階段就是加載RTOS以及應用程序。這階段的流程和上一個階段相似,同樣要先驗證確認且解密,確認無誤后再加載并執(zhí)行。
-
處理器
+關注
關注
68文章
19384瀏覽量
230501 -
ARM
+關注
關注
134文章
9137瀏覽量
368261 -
操作系統(tǒng)
+關注
關注
37文章
6862瀏覽量
123506 -
系統(tǒng)
+關注
關注
1文章
1018瀏覽量
21384
發(fā)布評論請先 登錄
相關推薦
評論