大量的嵌入式設(shè)備使用 ARM 為核心的芯片,為了保證安全 ARM 推出了 Arm Trusted Firmware 的可信固件,簡稱 TF-A。它是一個開源的軟件,最早是用在 Armv8-A。它的作用是隔離硬件,為硬件提供一個安全環(huán)境并且提供安全服務(wù)。
智能手機里面保存了我們的指紋、Face ID(3D 人臉信息)、虹膜、銀行卡密碼等重要信息。因此智能設(shè)備的安全問題就成了半導(dǎo)體行業(yè)的重要問題,ARM 為此提供了 TrustZone 解決方案,TrustZone 將 CPU 的工作狀態(tài)分為了 Secure World 和 Normal World,涉及到安全相關(guān)的內(nèi)容運行在安全世界,比如指紋、密碼等,其他的操作都在非安全世界運行,比如應(yīng)用程序。TrustZone 是一種硬件解決方案。
我們并不會直接去官方網(wǎng)站下載 TF-A 的源碼,這樣的開發(fā)難度太大,半導(dǎo)體廠商都會從 TF-A 官網(wǎng)下載源碼,然后修改適配自己的芯片,把自家的芯片加進去。我們在實際項目開發(fā)中直接使用半導(dǎo)體原廠給提供的 TF-A 即可。
TF-A 是有自己的 Makefile 文件的,而且真正編譯的時候也是要用 TF-A 自己的 Makefile。
TF-A 主要保護的就是設(shè)備啟動過程,通過各種鑒權(quán),保證設(shè)備啟動的過程中每個階段的固件都是安全的,防止被不法分子替換某些啟動固件導(dǎo)致安全信息泄露。
對于傳統(tǒng)的 ARM 處理器而言 , Linux 系統(tǒng)的啟動流程是:內(nèi)部 BootROM -》 Uboot -》 kernel -》 rootfs,整個啟動過程是一個鏈式結(jié)構(gòu),啟動過程其實是沒有安全校驗的。加入 TF-A 固件以后,TF-A 就可以對 uboot、kernel 進行校驗,如果還要使用 TEE OS(Trusted Execution Environment,TEE),那么 TF-A 還要完成對 TEE OS 的校驗。
Linux 啟動是一個鏈式結(jié)構(gòu),因此安全啟動的鑒權(quán)(校驗)過程也是鏈式結(jié)構(gòu)的。在系統(tǒng)啟動的過程中,會先對下一個要加載運行的鏡像進行鑒權(quán),只有鑒權(quán)成功此鏡像才能運行,并進入到下一階段,只要其中有一環(huán)鑒權(quán)失敗,那么整個系統(tǒng)就會啟動失敗。
bl1、bl2 和 bl31 都屬于 TF-A 固件,而 bl32 和 bl33 是 TF-A 要啟動的其他第三方固件,比如 TEE OS 和 uboot。
bl1、bl2、bl31、bl32 和 bl33 是 TF-A 的不同啟動階段,TF-A 的啟動過程是鏈式的,不同的階段完整的功能不同, bl1、bl2、bl31、bl32 和 bl33 全名如下:
bl1:Boot loader stage 1(BL1)
bl2:Boot loader stage 2(BL2)
bl31:Boot loader stage 3-1(BL31)
bl32:Boot loader stage 3-2(BL32)
bl33:Boot loader stage 3-3(BL33)
-
芯片
+關(guān)注
關(guān)注
459文章
51961瀏覽量
434022 -
ARM
+關(guān)注
關(guān)注
134文章
9278瀏覽量
373797 -
嵌入式
+關(guān)注
關(guān)注
5126文章
19446瀏覽量
313381 -
Linux
+關(guān)注
關(guān)注
87文章
11427瀏覽量
212408
發(fā)布評論請先 登錄
如何使用Yocto更新已更改的TF-A設(shè)備樹來產(chǎn)生新的鏡像文件?
關(guān)于TF-A(ATF)固件的基本知識詳解
TF-A與U-boot的打印輸出顯示了不同的信息是為什么呢
為157F-DK2設(shè)置TF-A sp_min總是報錯的原因?
怎樣去更改默認的tf-a和u-boot串口linux控制臺呢
如何去調(diào)試U-Boot和TF-A中的USB以及OTG控制器呢
怎樣配置TF-A模塊來管理時間戳篡改呢
請問如何使用TF-A中的I2C1來控制STPMIC1?
構(gòu)建內(nèi)核/u-boot/tf-a時忽略自定義CubeMX DTS文件的路徑如何解決?
什么會導(dǎo)致fsbl tf-a引導(dǎo)加載程序在閃爍后崩潰?
如何使用STM32CubeProgrammer在沒有USB的情況下將TF-A、u-boot、根文件系統(tǒng)刷入SD卡?
如何從TF-A或uboot加載/啟動Cortex-M4?
TF-A的不同啟動階段有哪些

TF-A啟動流程詳解

TF-A移植是什么意思

評論