参考文献:
-
Sabt M, Achemlal M, Bouabdallah A. Trusted execution environment: what it is, and what it is not[C]//2015 IEEE Trustcom/BigDataSE/Ispa. IEEE, 2015, 1: 57-64.
-
“U.S. government protection profifile for separation kernels in environments requiring high robustness,” National Security Agency, Tech. Rep.,Jun. 2007, version 1.03. [Online]. Available: https://www.niap-ccevs.org/pp/pp_skpp_hr_v1.03.pdf
文章目录
- TEE
- Definition
- Building Blocks
TEE
Definition
可信执行环境(trusted execution environment, TEE)是一个运行在分离核(Separation Kernel)上的抗篡改的开放执行环境,它提供机密性、完整性、认证性(CIA),同时提供一个向第三方证明自己的可信度的远程认证。TEE 的内容可以被安全的更新,抵御所有的软件攻击,也抵御对于主存的硬件攻击。TEE 所提供的性质:Secure execution, openness and trust。
分离核的形式是硬件(hardware)、软件(software)、固件(frimware),用于模拟一个分布式系统,各个 partitions 之间的信息流被隔离控制。固件 Firmware,被写入外设 ROM 中的程序,直接控制硬件;驱动 Driver,运行在 OS 中,控制外设的代码片段。分离核主要提供四种安全性:
- 数据的空间分离,不同 partitions 之间的数据互相不可读取和修改
- 消毒(Sanitization),即:数据的时间分离,多个 partition 之间的共享数据也不会泄露信息
- 信息流控制,除非 explicitly permitted,不同 partition之间的通信不被允许
- 错误隔离,某个 partition 上的安全漏洞不会影响到其他的 aprtition
所谓的 “可信”,指的是某实体的行为符合预期。我们需要评估 TEE 的可信度。Static Trust:利用一些特定的安全性需求,在启动 TEE 之前做一次综合评价。Dynamic Trust:启动 TEE 之后,基于系统的运行状态持续地做出评价。一个可信实体 Root of Trust(RoT),它对系统安全性做出 trusted measurement,然后计算一个 trust function 给出评分,此评分可以通过信任机制发送给远程的第三方。RoT 必须是一个抗篡改的硬件模组。
TEE 执行流程:
- 进行 Static Trust,确保 TEE 满足基本安全性要求
- 每次 boot 时,由 Kernel 加载 TEE 代码,同时 RoT 确保此代码确实是由 TEE 发布平台提供的
- 在 TEE 执行过程中,Kernel 提供了 TEE 的完整性,而 RoT 根据完整性度量,实时地计算出 trust score 提供给第三方
- 在 TEE 中运行 code,由 TEE 为它提供 CIA 安全性
安全执行环境(secure execution environment, SEE)是一个执行环境,它提供 CIA,但不考虑信任问题,并且无法更新它内部的数据。SEE 可以视为 TEE 的前提。
Building Blocks
TEE 的构成包括:
- Secure Boot,对 TEE code 做哈希,与参考值作比较
- Secure Scheduling,TEE 中的任务不应影响 OS 中任务的效率,往往是抢占式调度
- Inter-Environment Communication,不同的 partition 之间可以有受控的通信,但这会带来更多的威胁
- Secure Storage,只有 authorized entities 可以访问数据,由回滚保护机制
- Trusted I/O Path,在 TEE 与用户交互时,要抵御屏幕捕捉、键盘记录等攻击