對(duì)于安全引導(dǎo)功能的實(shí)現(xiàn)和驗(yàn)證過(guò)程各家芯片公司的方案都不一樣,這是由該芯片的啟動(dòng)流程以及啟動(dòng)所需鏡像文件來(lái)決定的,但都會(huì)遵循鏈?zhǔn)津?yàn)簽啟動(dòng)的原則。
ARMv7架構(gòu)并沒(méi)有使用ATF,系統(tǒng)的啟動(dòng)流程與以前一樣使用BootLoader來(lái)引導(dǎo)Linux內(nèi)核和TEE
OS。安全引導(dǎo)的啟動(dòng)流程如圖下所示。
安全引導(dǎo)的啟動(dòng)流程
系統(tǒng)啟動(dòng)過(guò)程使用鏈?zhǔn)津?yàn)簽的方式進(jìn)行引導(dǎo),其中任何一環(huán)驗(yàn)簽失敗都會(huì)導(dǎo)致系統(tǒng)啟動(dòng)失敗,為防止通過(guò)替換ramdisk來(lái)修改根文件系統(tǒng)中的內(nèi)容,一般將ramdisk與Linux內(nèi)核打包在同一個(gè)鏡像文件中,而且該鏡像文件需要待驗(yàn)簽通過(guò)后才可被使用。
簽名信息一般是對(duì)鏡像文件的內(nèi)容進(jìn)行哈希計(jì)算獲取摘要后再對(duì)該摘要使用RSA私鑰進(jìn)行電子簽名來(lái)獲得,驗(yàn)證時(shí)同樣會(huì)計(jì)算需要被引導(dǎo)的鏡像文件的摘要,然后使用該摘要、簽名信息以及RSA公鑰進(jìn)行RSA算法的驗(yàn)證。這個(gè)就是對(duì)稱的過(guò)程,加密簽名,驗(yàn)簽解密。
ARMv8安全引導(dǎo)的過(guò)程
ARMv8架構(gòu)之后ARM提供了ATF,BootLoader、TEE鏡像文件、Linux內(nèi)核鏡像文件、recovery鏡像文件都是由ATF來(lái)進(jìn)行引導(dǎo)和加載而不是由ChipRom來(lái)完成的。
ChipRom只會(huì)去驗(yàn)證ATF中bl1的合法性,后續(xù)引導(dǎo)過(guò)程同樣也是按照鏈?zhǔn)津?yàn)簽的方式進(jìn)行,符合TBBR規(guī)范。讀者可使用git命令從gitHub上獲取ATF的所有源代在ARMv8架構(gòu)中整個(gè)安全引導(dǎo)的流程如圖下所示。
ARMv8的Secure Boot流程
ARMv8架構(gòu)中引入了ATF,同時(shí)在ATF中提供了安全引導(dǎo)的功能,BootLoader鏡像、Linux內(nèi)核、recovery鏡像和TEE OS鏡像文件的簽名方式都由ATF決定。當(dāng)然開(kāi)發(fā)者也可以對(duì)ATF進(jìn)行定制化,修改ATF中的驗(yàn)簽過(guò)程,但是修改后的驗(yàn)簽方案需要符合TBBR規(guī)范。
此時(shí)ATF不要和BL31搞混了哦。ATF是一個(gè)整個(gè)啟動(dòng)鏈路。
-
芯片
+關(guān)注
關(guān)注
462文章
53189瀏覽量
453787 -
ARM
+關(guān)注
關(guān)注
135文章
9452瀏覽量
385765 -
架構(gòu)
+關(guān)注
關(guān)注
1文章
531瀏覽量
26381
發(fā)布評(píng)論請(qǐng)先 登錄
armv7 generic timer使用筆記

arm7 armv7 cortexm3它們是什么關(guān)系請(qǐng)問(wèn)?
基于ARMv7架構(gòu)的Cortex系列
ARMv8架構(gòu)資料分享
ARMv7系列芯片算法的NEON優(yōu)化耗時(shí)異常的原因是什么
Cortex-A53使用AArch32 Kernel,可以直接使用ARMv7的所支持的CPU嗎?
請(qǐng)問(wèn)怎么理解ARMv7的Secure和Non-secure狀態(tài)
如何在arm32 arch和armv7中打印堆??蚣艿目蚣苤羔樀刂纺?/a>
Armv7和Armv8系統(tǒng)中跟蹤的高級(jí)視圖詳解
ARM體系結(jié)構(gòu)參考手冊(cè)ARMv7-A和ARMv7-R版本
在基于ARMv7的平臺(tái)1.0版上使用CSAT進(jìn)行低級(jí)調(diào)試
如何將軟件應(yīng)用程序從ARMv5遷移到ARMv7-A/R
ARMv7的Cortex系列微處理器技術(shù)特點(diǎn)

ARMv7和ARMv7的體系結(jié)構(gòu)參考手冊(cè)免費(fèi)下載

ARMv7-A工作模式介紹

評(píng)論