标签:TF-A

固件安全之 TF-A 和 SecureBoot

这里详细介绍基于 ARMv8-A AArch64 固件安全相关,包含 TF-A(Trust Firmware A)。以及基于TF-A OEM厂商对 U-Boot 和 Kernel 实现的安全启动流程 SecureBoot。

对于 TF-A,ARMv8-A AArch64 架构需要满足如下设计需求。

  • 区分不同的异常等级(Exception Level);

对于不同的安全等级区分了可信的世界(Trust World)和非可信世界(Non-Trusted World)。我们的应用程序,内核都工作它认为不可信世界,所以没有办法直接访问一些资源。

  • 不同安全等级下访问不同的硬件资源。

例如一些 OTP/eFUSE区域,在 EL0-EL2 异常等级应用程序是没有办法直接访问的。如果需要访问这些资源,通过 SMC 共享内存通过工作更高等级例如 EL3 的程序实现间接访问。

有了如上认识,接下来我们梳理 TF-A 约定的在不同 EL下的引导程序。

通常地,对于ARM AArch64 如下开机执行如下引导顺序。

BL1 作为 ROM Bootloader 工作在最高安全等级 EL3,它拥有独立的 Trusted...