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上实现的。

相关推荐
7yewh3 小时前
Linux驱动开发 IIC I2C驱动 编写APP访问EEPROM AT24C02
linux·arm开发·驱动开发·嵌入式硬件·嵌入式
憧憬一下15 小时前
PCI/PCIe设备INTx中断机制和MSI中断机制
arm开发·嵌入式硬件·嵌入式·linux驱动开发·pci/pcie
最后一个bug1 天前
STM32MP1linux根文件系统目录作用
linux·c语言·arm开发·单片机·嵌入式硬件
阿隆ALong1 天前
云手机:应用上线测试的创新助力
智能手机·矩阵·手机·arm
最后一个bug1 天前
rt-linux中使用mlockall与free的差异
linux·c语言·arm开发·单片机·嵌入式硬件·算法
李先静2 天前
用 gdbserver 调试 arm-linux 上的 AWTK 应用程序
linux·arm开发·awtk
MrJson-架构师2 天前
4.银河麒麟V10(ARM) 离线安装 MySQL
arm开发·mysql
阿隆ALong2 天前
云手机+YouTube:改变通信世界的划时代技术
智能手机·矩阵·云计算·arm
qq_459730032 天前
4-3 MCU中ARM存储器的作用
arm开发·单片机·嵌入式硬件
轩辰~2 天前
网络协议入门
linux·服务器·开发语言·网络·arm开发·c++·网络协议