Skip to main content

atf

名詞

  • OP-TEE(Open Portable Trusted Execution Environment): 一個開源的 TEE(Trusted Execution Environment)實作,由 Linaro 維護,通常跑在 Secure World
  • Exception Level: ARMv8 之後的 CPU 權限分層機制,用於區分 OS、hypervisor、固件等不同層級的權限。
  • Boot Loader stage:
階段常見名稱任務層級
BL1ROM Code / BootROM硬體初始化、載入下一階EL3
BL2Trusted Boot Loader設定安全屬性、載入 U-Boot/TF-AEL3
BL3-1ARM Trusted Firmware (ATF)實作 Secure Monitor(TrustZone 切換)EL3
BL3-2OP-TEE OSSecure World 的 OSSecure EL1
BL3-3U-Boot / Linux KernelNormal World 的 OSNon-secure EL1
ROM → 2. ATF (EL3) → 3. OP-TEE (Secure EL1) → 4. U-Boot (Non-secure EL1) → 5. Linux
  • TrustZone: TrustZone 是 ARM 的硬體級安全隔離機制,將整個系統切成兩個「世界」:
    • Normal World
    • Secure World
  • Root of Trust: 系統啟動過程中,最早被「信任」的元件(通常是 SoC 內建的 BootROM)。
[Normal World]
├── Linux / Android
├── TEE Client API (libteec)
└── OP-TEE Driver
[Secure World]
├── OP-TEE OS (kernel)
└── Trusted Applications (.ta)
+----------------------------------------------------------+
| ARM SoC 啟動流程 |
| |
| ┌──────────────────────────┐ |
| │ Root of Trust (BootROM) │ ← 驗證下一階 |
| └─────────────┬────────────┘ |
| ↓ |
| [BL1/BL2: ARM Trusted Firmware (ATF)] |
| ↓ |
| ┌────────────┴────────────┐ |
| │ Secure World │ │ Normal World |
| │ (OP-TEE OS, TA) │ │ (U-Boot, Linux) |
| └────────────┬────────────┘ |
| ↓ SMC 切換 |
| Secure Monitor (EL3) |
+----------------------------------------------------------+

Exception Level權限層說明
EL0使用者層一般應用程式(App)
EL1作業系統層OS kernel(Linux、Android kernel)
EL2虛擬化層Hypervisor(KVM、Xen)
EL3安全監控層Secure Monitor(TrustZone 切換控制器)
階段常見名稱任務層級
BL1ROM Code / BootROM硬體初始化、載入下一階EL3
BL2Trusted Boot Loader設定安全屬性、載入 U-Boot/TF-AEL3
BL3-1ARM Trusted Firmware (ATF)實作 Secure Monitor(TrustZone 切換)EL3
BL3-2OP-TEE OSSecure World 的 OSSecure EL1
BL3-3U-Boot / Linux KernelNormal World 的 OSNon-secure EL1
順序範例:
  1. ROM → 2. ATF (EL3) → 3. OP-TEE (Secure EL1) → 4. U-Boot (Non-secure EL1) → 5. Linux

Secure World vs Normal World:

  • Secure World 也有自己的 EL0–EL3 對應層(例如 Secure EL1、Secure EL3)。
  • Secure Monitor 通常執行在 EL3,負責世界切換(SMC handler)。 ![[Pasted image 20251104215201.png]]

https://github.com/ARM-software/arm-trusted-firmware ARM TrustZone = Secure World 保護 SoC 裡的信任根

項目ARM TrustZone機密運算(Confidential Computing)
定義一種硬體級安全隔離技術,將系統分為「安全世界(Secure World)」與「普通世界(Normal World)」一種資料保護理念,讓資料在「使用中(in use)」的狀態仍可被保密處理
層級CPU 架構級別(ARMv8-A, ARMv9)系統與雲端平台層級
實作方式透過硬體隔離 + TrustZone Address Space Controller (TZASC) + Secure Monitor Call (SMC)透過 TEE(Trusted Execution Environment)或 SEV、TDX、TrustZone 等技術實現
範例ARM TrustZone, OP-TEEIntel SGX, AMD SEV, ARM CCA, Azure Confidential VM
ARM 的方案是:
  • 在 SoC 層建立 Secure World(TEE)
  • 使用 TrustZone 來保護敏感運算,例如金鑰管理、支付、DRM;
  • 配合 OP-TEE (Open Portable Trusted Execution Environment) 提供應用框架。 因此:

TrustZone = 一種硬體層的 TEE 實作
Confidential Computing = 更廣的概念,包含多種 TEE 技術(TrustZone、Intel SGX、AMD SEV、ARM CCA)。

架構安全隔離模型世界數量特點
ARMv7-ATrustZone Classic2 個世界(Secure / Normal)簡單的安全切換
ARMv8-ATrustZone for AArch642 個世界 + SMC + EL3支援 64-bit EL 等級(EL0~EL3)
ARMv9-ATrustZone + CCA (Realms)3 個世界(Secure / Normal / Realm)真正支援雲端機密運算(類似 Intel TDX / AMD SEV)