Security Boot secure Boot的介绍

什么是secure boot

secure boot 是一种保证平台上软件完整性的过程或机制。secure boot会在硬件和软件之间建立一种信任关系。在启用secure boot之后,没有经过签名的固件和软件是无法运行在该设备上。通过这种方式可以保证操作系统免受恶意攻击。secure boot一般使用公钥/私钥来进行固件的验证和应用程序的签名。

为什么需要 secure boot

如果以上流程中的flash中的镜像被更换,最终系统会运行被修改后的固件程序,造成安全泄露。

secure boot的安全级别

EL3 secure Hypervisor 最高的管理权限,负责安全检测和secure world和normal world之间的切换

EL2 hypervisor 提供了对虚拟化的支持

EL1 是一个特权模式,主席那个一些指令和运行各类型的操作系统,在secure world就是secure OS 比如TEE

EL0 是无权模式,所有的APP的都会在这一层级

secure boot 启动流程

BL1 是信任链的根所在一般是固化在芯片内部的一段代码,叫做bootrom, 拥有最高的执行权限EL3,在CPU出厂的时候就被写死了。 芯片复位上电之后,bootrom的代码会从固件位置加载BL2,然后初始化sram, 在BL2的验签通过后会跳转到BL2.

BL2 和BL1一样拥有EL3的至高权限,不同的是BL2是在Flash中的一段可信的安全启动代码,它的可信是建立在BL1的验证通过上。主要是在BL2完成一些平台的初始化,比如说是DDR的初始化等。在初始化完成之后,会寻找BL31或BL33,对其进行执行,找到BL31就不会再调用BL33,这两必须存在一个。

BL31 是EL3的最后一个阶段,是听过SMC指令为Non-Secure持续提供设计安全的服务。在secure world和Non secure world之间进行切换,主要是找BL32,验签,然后运行BL32.

BL32 是所谓的secure os 在ARM的TEE(Trusted Execution Enviroment)实现, OP-TEE是基于ARM TrustZone硬件架构实现的软件secure OS。一般在这个阶段会运行OPTeeOS+ 安全App. 是可信任的OS运行在EL1并且在EL0启动可信任APP。 并且在Trust OS运行完成后通过SMC指令返回BL31,切换到BL31, BL31切换到Non secure world继续知悉BL33

BL33 就是Normal World了,运行的都是非安全固件,也就是常见的UEFI firmwre 或者 u-boot 也可能是自启动的linux kernel。

启动BL1 BL2 BL31 BL32就是一个完整的ATF信任链的建立过程(ARM Trusted Firmware),比如常见的PSCI (power state coordination interface) 功能是在BL31上实现的。

相关推荐
一起搞IT吧17 小时前
嵌入式ARM SOC开发中文专题分享一:ARM SOC外围资源介绍
arm开发·嵌入式硬件
研华嵌入式17 小时前
如何在高通跃龙QCS6490 Arm架构上使用Windows 11 IoT企业版?
arm开发·windows·嵌入式硬件
优雅鹅20 小时前
ARM、AArch64、amd64、x86_64、x86有什么区别?
arm开发·学习
sheepwjl1 天前
《嵌入式硬件(十二):基于IMX6ULL的时钟操作》
汇编·arm开发·单片机·嵌入式硬件·时钟·.s编译
我菜就多练2 天前
ARM-汇编的基础知识
汇编·arm开发
carysu2 天前
交换机协议栈FRR中使用
arm开发
Aczone282 天前
硬件(十)IMX6ULL 中断与时钟配置
arm开发·单片机·嵌入式硬件·fpga开发
m0_620355192 天前
sqlite3移植和使用(移植到arm上)
arm开发
XINVRY-FPGA2 天前
XCKU15P-2FFVA1760I AMD 赛灵思 Xilinx Kintex UltraScale+ FPGA
arm开发·嵌入式硬件·阿里云·fpga开发·云计算·硬件工程·fpga
大家的笔记本2 天前
jetson orin super nano(arm linux系统)上读取大恒图像工业相机(型号MER-050-560U3C)教程
linux·arm开发·相机