對于安全引導功能的實現和驗證過程各家芯片公司的方案都不一樣,這是由該芯片的啟動流程以及啟動所需鏡像文件來決定的,但都會遵循鏈式驗簽啟動的原則。
ARMv7架構并沒有使用ATF,系統的啟動流程與以前一樣使用BootLoader來引導Linux內核和TEE
OS。安全引導的啟動流程如圖下所示。
安全引導的啟動流程
系統啟動過程使用鏈式驗簽的方式進行引導,其中任何一環驗簽失敗都會導致系統啟動失敗,為防止通過替換ramdisk來修改根文件系統中的內容,一般將ramdisk與Linux內核打包在同一個鏡像文件中,而且該鏡像文件需要待驗簽通過后才可被使用。
簽名信息一般是對鏡像文件的內容進行哈希計算獲取摘要后再對該摘要使用RSA私鑰進行電子簽名來獲得,驗證時同樣會計算需要被引導的鏡像文件的摘要,然后使用該摘要、簽名信息以及RSA公鑰進行RSA算法的驗證。這個就是對稱的過程,加密簽名,驗簽解密。
ARMv8安全引導的過程
ARMv8架構之后ARM提供了ATF,BootLoader、TEE鏡像文件、Linux內核鏡像文件、recovery鏡像文件都是由ATF來進行引導和加載而不是由ChipRom來完成的。
ChipRom只會去驗證ATF中bl1的合法性,后續引導過程同樣也是按照鏈式驗簽的方式進行,符合TBBR規范。讀者可使用git命令從gitHub上獲取ATF的所有源代在ARMv8架構中整個安全引導的流程如圖下所示。
ARMv8的Secure Boot流程
ARMv8架構中引入了ATF,同時在ATF中提供了安全引導的功能,BootLoader鏡像、Linux內核、recovery鏡像和TEE OS鏡像文件的簽名方式都由ATF決定。當然開發者也可以對ATF進行定制化,修改ATF中的驗簽過程,但是修改后的驗簽方案需要符合TBBR規范。
此時ATF不要和BL31搞混了哦。ATF是一個整個啟動鏈路。
-
芯片
+關注
關注
456文章
51283瀏覽量
427808 -
ARM
+關注
關注
134文章
9180瀏覽量
369463 -
架構
+關注
關注
1文章
520瀏覽量
25564
發布評論請先 登錄
相關推薦
armv7 generic timer使用筆記
![<b class='flag-5'>armv7</b> generic timer使用筆記](https://file1.elecfans.com/web2/M00/A8/19/wKgZomUT1PKABvxHAAECQKPH-Vg186.jpg)
基于ARMv7架構的Cortex系列
ARMv8架構資料分享
ARMv7系列芯片算法的NEON優化耗時異常的原因是什么
Cortex-A53使用AArch32 Kernel,可以直接使用ARMv7的所支持的CPU嗎?
請問怎么理解ARMv7的Secure和Non-secure狀態
如何在arm32 arch和armv7中打印堆棧框架的框架指針地址呢
Armv7和Armv8系統中跟蹤的高級視圖詳解
ARM體系結構參考手冊ARMv7-A和ARMv7-R版本
在基于ARMv7的平臺1.0版上使用CSAT進行低級調試
如何將軟件應用程序從ARMv5遷移到ARMv7-A/R
ARMv7的Cortex系列微處理器技術特點
![<b class='flag-5'>ARMv7</b>的Cortex系列微處理器技術特點](https://file1.elecfans.com//web2/M00/A5/52/wKgZomUMN-OAEluIAADSHaQx5pE576.jpg)
ARMv7和ARMv7的體系結構參考手冊免費下載
![<b class='flag-5'>ARMv7</b>和<b class='flag-5'>ARMv7</b>的體系結構參考手冊免費下載](https://file.elecfans.com/web1/M00/C9/1F/pIYBAF9xaG6ADuWsAACK7mI_s74894.png)
ARMv7-A工作模式介紹
![<b class='flag-5'>ARMv7</b>-A工作模式介紹](https://file1.elecfans.com/web2/M00/A2/7E/wKgZomT-z7KAfdxVAAFLlstwioM241.jpg)
評論