ARM 全Trustzone解决方案,软件架构有ARM TBBR规范,在构建运行TEE环境时,ATF与TrustOS构成基本TEE执行环境。
本文主要介绍arm trust firmware组件。
定义与缩略语:
REE: Rich Execution Environment
TEE: Trusted Execution Environment
OP-TEE :Open Portable Trusted Execution Environment
TA:Trusted Application sml:Secure monitor layer tos:Trust os
ATF:Arm-trusted-firmware
ARMv8 TrustZone整体框架图:
AArch64 环境介绍:
- APP 运行在NS/S EL0
- Kernel 运行在 EL1
- Trusted OS 运行在Secure EL1
- ATF(SML)运行在EL3 EL2 hypervisor据ARM介绍在服务器上可能会用到。
ATF框架:
ATF 主要的三个方面的功能
Trust Boot
ATF满足安全启动的规范(TBBR),在初次启动时,平台上电后,cpu处于el3模式,从romcode到spl-sml-uboot-kernel,在进入kernel前,cpu处于安全模式,spl/sml/uboot都可以带上安全签名,保证软件与硬件都是安全的。后续suspend or reset 启动的时候,cpu处于el3及secure word, sml code 开始运行,而后切到kernel
normal word,注意reset与suspend回到kernel的地址是不一样的。
Power State Coordination Interface (PSCI)
ATF另外一个主要的功能,提供芯片相关的电压管理接口,将cpu相关的底层操作抽象出来给kernel调用,主要包括cpu idle/cpu boot/cpu off/system off/system rest以及预留的cpu migrate相关的接口。kernel通过smc来调用sml api。
Manage Interrupts
ARM可信固件实现了一个用于配置和管理的框架在任一安全状态下产生的中断。