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可信固件實現了一個用於配置和管理的框架在任一安全狀態下產生的中斷。