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