可信执行环境(安全机制篇)
概要
物联网的快速发展在给人类带来无比便利的同时也带来了安全隐患,时刻影响人类的生活。物联网的碎片化特性对不同产品的应用需求提出了有不同的安全等级。根据物联网市场上对产品的安全等级主要分为三种等级:
SE
采用SE作为可信根的安全方案,安全等级高,但成本也高。
TEE
采用TEE作为可信根的安全方案, 安全等级中上,但成本相比SE方案降低很多。
安全MCU
采用安全MCU为可信根的安全方案,安全等级低,但成本更低。
我们提出了TEE in MCU方案,是将一个物理处理器虚拟出两个逻辑内核,两个逻辑内核有自己的专门的控制寄存器,分别运行在TEE和REE里,由于运行在TEE的逻辑处理器具有最高的执行权限,不能被运行在REE里的逻辑处理器访问,从而实现了执行环境的物理隔离。一旦REE程序需要访问可信执行里的资源,就必须通过调用可信应用服务实现。
可信执行环境安全方案集成高,安全性较高,对资源要求少,非常适合这种功能简单单一,资源受限的MCU领域的物联网设备。
专业术语
术语缩写 | 全称 | 解义 |
---|---|---|
TEE | Trusted Execution Environment | 可信执行环境 |
REE | Rich Execution Environment | 丰富执行环境 |
SE | Secure Element | 安全元素 |
AP | Application Processor | 应用处理器 |
TA | Trust Application | 可信应用 |
CA | Client Application | 客户端应用 |
WSC | World Switch Calling | 世界切换调用指令 |
RTE | Return To Exception | 世界切换返回指令 |
RoT | Root of Trust | 可信根 |
安全组件介绍
硬件安全组件
TEE安全方案采用软硬结合的方式,先在硬件层面将处理器、外设、存储区域划分成可信和非可信的物理属性,再通过软件层面对用户的敏感数据进行安全管理。

主要特点
硬件物理隔离,安全性高
总线数据加扰,一机一密
设备区域管理,灵活可控
硬件安全集成度高
1. 安全处理器

2. 存储加扰器

3. 安全访问控制器

4. 可信设备控制器

软件安全组件
1. BOOTROM
芯片ROM的启动程序在上电后或者唤醒时被执行,此时系统处于可信执行环境,BOOTROM提供了以下三种与安全相关的处理机制:
- 安全启动的起点,验签下一个子镜像的合法性
- 设备调试开关的管理
- 低功耗唤醒后的安全现场还原管理
2. BOOTLOADER
BOOTLOADER位于芯片BOOTROM的下一级镜像,此时系统处于可信执行环境,BOOTLOADER主要功能是支持FOTA升级,为TEE OS 和 REE OS镜像升级提供升级服务。主要提供了以下四种与安全相关的处理机制:
- 验证升级镜像包的完整性和真实性
- 实时记录整个升级过程,支持升级掉电保护
- 防御版本降级攻击
- 验签下一次子镜像的合法性
3. TEE OS

- TEE内核
- TEE上下文管理
- TEE服务框架接口
- 消息接收处理机制
- 算法密码库
4. Trusted Application
可信应用是TEE提供服务的核心部件,通过调用TEE INTERNEL API实现。TEE OS需要为每一个可信应用程序指定一个UUID,然后实现可信应用的五个调用接口,最后注册到可信节点链表里去。TEE OS接收到来自REE的消息命令后,根据消息的UUID找到对应的可信应用的入口,在服务框架接口里依次调用可信应用的五个接口来完成安全调用。
5. Client Application
客户端应用是调用TEE的可信应用的入口,通过调用TEE CLIENT API实现。 TEE CLIENT API会调用内核切换指令实现内核的切换和完成参数的传递。用户的业务程序通过调用客户端应用接口实现对TEE可信应用的调用。