对于安全引导功能的实现和验证过程各家芯片公司的方案都不一样,这是由该芯片的启动流程以及启动所需镜像文件来决定的,但都会遵循链式验签启动的原则。
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是一个整个启动链路。
-
芯片
+关注
关注
462文章
53581浏览量
459527 -
ARM
+关注
关注
135文章
9501浏览量
388909 -
架构
+关注
关注
1文章
532浏览量
26508
发布评论请先 登录
armv7 generic timer使用笔记
基于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系列微处理器技术特点
ARMv7和ARMv7的体系结构参考手册免费下载
ARMv7-A工作模式介绍

ARMv7安全引导的过程
评论