概述
SPE(Secure Processing Environment)技术通过硬件隔离将安全固件和关键信息与应用程序的其他部分分离,降低遭受攻击的风险。使能后,非安全世界代码无法访问安全世界的资源,即使拥有更高特权也无法突破。
Ameba 系列 SoC 采用 Arm TrustZone 安全架构实现 SPE。该架构通过以下硬件组件协同工作,在物理层面强制隔离安全与非安全两个执行环境:
IDAU(Implementation Defined Attribution Unit):硬件定义地址空间基本安全属性,根据地址 bit[28] 将相邻 512MB 地址空间划分为安全和非安全两部分
SAU(Security Attribution Unit):软件可配置的安全属性单元,提供 8 个 Entry 用于灵活定义地址空间的安全属性
MPC(Memory Protection Controller):为内存区域配置安全属性,在物理总线层面拦截非法访问
PPC(Peripheral Protection Controller):为外设配置安全属性,限定非安全代码无法访问安全外设
工作流程:
系统启动时,Bootloader 配置 SAU、MPC、PPC 等硬件组件,建立安全边界。运行时,硬件自动检查每次访问的安全属性:非安全主设备访问安全资源时会被硬件直接拦截,确保即使软件被攻破也无法突破安全边界。
方案特点:
硬件强制隔离:安全检查在硬件层面完成,无法通过软件绕过
低性能开销:安全检查由专用硬件并行处理,几乎不影响系统性能
灵活配置:可根据实际需求调整安全区域大小和外设安全属性
Ameba SoC 架构特点:
Ameba 系列 SoC 的 Cortex-M 内核包括 KM4 内核和 KM0 内核。KM0 内核运行在非安全状态;部分 KM4 内核具有 TrustZone Security 功能。GDMA、Crypto Engine、OTP 等多个 IP 也可配置安全保护,限定访问这些 IP 的代码必须具有相应的安全属性。
与 RDP 的配合使用:
TrustZone 安全世界运行的 image3 安全固件可以使用 RDP(Read Protection)技术加密,避免安全固件被克隆或读取。固件加密方法请参考 读保护 。
Cortex-M 与 Cortex-A 的安全调用机制:
Cortex-M:使用 NSC(Non-Secure Callable)函数实现非安全代码调用安全服务,详细介绍请参考 Cortex-M 安全服务
Cortex-A:使用 SMC(Secure Monitor Call)通过 ATF(ARM Trusted Firmware)实现安全状态切换,详细介绍请参考 Cortex-A 安全服务