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