對于安全引導(dǎo)功能的實(shí)現(xiàn)和驗(yàn)證過程各家芯片公司的方案都不一樣,這是由該芯片的啟動(dòng)流程以及啟動(dòng)所需鏡像文件來決定的,但都會(huì)遵循鏈?zhǔn)津?yàn)簽啟動(dòng)的原則。
ARMv7架構(gòu)并沒有使用ATF,系統(tǒng)的啟動(dòng)流程與以前一樣使用BootLoader來引導(dǎo)Linux內(nèi)核和TEE
OS。安全引導(dǎo)的啟動(dòng)流程如圖下所示。
安全引導(dǎo)的啟動(dòng)流程
系統(tǒng)啟動(dòng)過程使用鏈?zhǔn)津?yàn)簽的方式進(jìn)行引導(dǎo),其中任何一環(huán)驗(yàn)簽失敗都會(huì)導(dǎo)致系統(tǒng)啟動(dòng)失敗,為防止通過替換ramdisk來修改根文件系統(tǒng)中的內(nèi)容,一般將ramdisk與Linux內(nèi)核打包在同一個(gè)鏡像文件中,而且該鏡像文件需要待驗(yàn)簽通過后才可被使用。
簽名信息一般是對鏡像文件的內(nèi)容進(jìn)行哈希計(jì)算獲取摘要后再對該摘要使用RSA私鑰進(jìn)行電子簽名來獲得,驗(yàn)證時(shí)同樣會(huì)計(jì)算需要被引導(dǎo)的鏡像文件的摘要,然后使用該摘要、簽名信息以及RSA公鑰進(jìn)行RSA算法的驗(yàn)證。這個(gè)就是對稱的過程,加密簽名,驗(yàn)簽解密。
ARMv8安全引導(dǎo)的過程
ARMv8架構(gòu)之后ARM提供了ATF,BootLoader、TEE鏡像文件、Linux內(nèi)核鏡像文件、recovery鏡像文件都是由ATF來進(jìn)行引導(dǎo)和加載而不是由ChipRom來完成的。
ChipRom只會(huì)去驗(yàn)證ATF中bl1的合法性,后續(xù)引導(dǎo)過程同樣也是按照鏈?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)然開發(fā)者也可以對ATF進(jìn)行定制化,修改ATF中的驗(yàn)簽過程,但是修改后的驗(yàn)簽方案需要符合TBBR規(guī)范。
此時(shí)ATF不要和BL31搞混了哦。ATF是一個(gè)整個(gè)啟動(dòng)鏈路。
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報(bào)投訴
相關(guān)推薦
armv7-A架構(gòu)中每個(gè)CPU核心都包含自己的私有定時(shí)器,所有cpu的定時(shí)器共享一個(gè)System counter, System counter負(fù)責(zé)產(chǎn)生計(jì)數(shù),傳遞到每個(gè)核心的私有定時(shí)器
發(fā)表于 09-27 15:10
?2603次閱讀
arm7 armv7 cortexm3它們是什么關(guān)系請問?
發(fā)表于 11-15 21:21
基于ARMv7架構(gòu)的Cortex系列由ARM公司在2006年推出,Cortex系列的推出滿足人們對性能日漸復(fù)雜的設(shè)計(jì)要求,根據(jù)不同需求,Cortex系列共三個(gè)不同的子系列...
發(fā)表于 08-09 06:37
隨著開發(fā)工作逐漸遷移到 ARMv8 的 64 位平臺,因此有必要盡快熟悉 ARMv8 架構(gòu)。ARMv8 與先前較為熟悉的 ARMv7 架構(gòu)有較大變化,其中非常重要的一點(diǎn)是支持了 A
發(fā)表于 03-21 14:50
目前正在做ARMv7 系列芯片算法的NEON優(yōu)化,發(fā)現(xiàn)一個(gè)耗時(shí)異常的地方,現(xiàn)象描述如下:首先主循環(huán)里會(huì)處理三類數(shù)據(jù),三類數(shù)據(jù)分開存放在DDR上,每次循環(huán)分別處理三類數(shù)據(jù)的8個(gè)uchar數(shù)據(jù),存儲數(shù)據(jù)
發(fā)表于 08-16 15:22
CA53 run 32bit linux kernel, 發(fā)現(xiàn)arch/arm/kernel/perf_event_v7.c 只支持ARMv7 的 ca17, ca15, ca12, ca9
發(fā)表于 08-29 14:11
我在看ARMv7異常部分,看到Vector tables發(fā)現(xiàn)和以前不一樣了,有Secure和Non-secure狀態(tài)(還有Hyp和Monitor),請問怎么理解這兩種狀態(tài)?讀那個(gè)寄存器可以知道當(dāng)前ARM處于哪種狀態(tài)?
發(fā)表于 09-01 15:46
我正在嘗試在arm32 arch和armv7中打印堆棧框架的框架指針的地址。為了找到先前的堆棧幀地址,我正在arch_prev_frame()中執(zhí)行(frame-12),并在
發(fā)表于 09-05 16:01
本指南主要介紹Armv7系統(tǒng)和Armv8系統(tǒng)中跟蹤的高級視圖,最高可達(dá)Armv8.4版本。
該指南涵蓋:
?跟蹤是什么以及如何使用
?跟蹤體系結(jié)構(gòu)是如何定義的,以及它如何映射到不同的跟蹤組件實(shí)現(xiàn)
?在Arm系統(tǒng)中可以看到哪些跟蹤
發(fā)表于 08-02 06:11
本手冊介紹ARM?架構(gòu)v7、ARMv7的A和R配置文件。
其中包括以下內(nèi)容的描述:
·處理器指令集:
-原始ARM?指令集-高代碼密度Thumb?指令集-ThumbEE指令集,包括對實(shí)時(shí)(JIT)或
發(fā)表于 08-12 07:46
此教程提供了使用 CoreSight Access 工具在基于 Armv7 的平臺上執(zhí)行某些基本調(diào)試操作的信息。 此教程側(cè)重于使用與 DS-5 一起運(yùn)輸?shù)暮诵腟ight Access 工具在
發(fā)表于 08-28 06:50
本文檔旨在幫助您將軟件應(yīng)用程序從ARMv5遷移到ARMv7。
它描述了ARMv5和ARMv7之間的區(qū)別,并解釋了將現(xiàn)有軟件應(yīng)用程序從ARMv
發(fā)表于 08-29 06:51
ARMv7的Cortex系列微處理器
隨著嵌入式技術(shù)應(yīng)用領(lǐng)域的不斷擴(kuò)展,對嵌入式系統(tǒng)的要求越來越高,而作為嵌入式系統(tǒng)核心的微處理器也面臨日益嚴(yán)竣的挑
發(fā)表于 10-17 09:17
?3426次閱讀
ARM? Architecture Reference Manual ARMv7-A and ARMv7-R edition
發(fā)表于 09-28 08:00
?27次下載
意思就是 64 位和 32 位,其中 AArch32 和 ARMv7基本一樣(會(huì)多一些其他操作指令)。 安全不能僅僅依靠軟件來實(shí)現(xiàn),也是需要硬件支持的,比如 ARM處理器就有不同的運(yùn)行等級,運(yùn)行在低等
發(fā)表于 09-11 16:31
?982次閱讀
評論