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