TEE 背景
计算机世界的安全,是保护计算机系统和网络免受攻击者的攻击,这些攻击可能导致未经授权的信息泄露、窃取或损坏硬件、软件或数据,以及它们所提供的服务的中断或误导。更多参考 Computer_security
1 安全是什么
谈安全,我联想到各种概念(网络安全/信息安全/功能安全),我认为都可以归类到安全领域,只是看待的角度不同。然后阅读《现代操作系统:原理与实现》中对操作系统安全的介绍,从数据、应用、系统三个角度来分析安全
- 数据安全,计算机存储部分用户隐私或者机密数据,这些数据只能被特定的应用所访问。如何设计应用访问数据的权限和数据不被随便访问,需要一种机制来满足这种实现。
- 应用安全,系统中可能存在一些恶意应用,企图利用操作系统的正常功能(或者时系统的漏洞),窃取用户的数据。因此操作系统需要保护好自己,也需要防御恶意应用的攻击。
- 系统安全,操作系统体量庞大,不可避免存在各种 BUG ,在系统运行的过程中,存在被攻击者控制的可能。因此操作系统需要在被控制的情况下,依然能为用户数据提供一定程度的保护。
2 安全机制
引入 TCB(Trusted_computing_base) 概念,是安全保护机制(硬件/固件/软件)的集合,某种意义上来说 TCB 出现错误和漏洞会危害整个系统。例如,基于 TCB 的应用只能访问到合法的资源,受限于系统的安全策略,它不能对权限之外的资源进行非法操作。更多参考 Trusted_computing_base
图参考源《现代操作系统:原理与实现》
- 假设操作系统是安全的,系统保证数据等资源只能被有权限的应用访问。具体机制包括两个方面: 控制机制来限制应用对文件的访问; 虚拟内存机制保证数据在内存中是隔离的。
- 假设操作系统存在漏洞,恶意应用绕过系统的安全机制来攻击系统或应用,具体机制有: 沙盒机制来运行不信任的应用,提供有限的功能和资源。
- 假设操作系统完全沦陷,恶意应用控制了整个操作系统来进而控制应用,需要更底层的安全机制: 例如虚拟化 Hypervisor 提供隔离环境; 例如硬件安全扩展 TEE 保护安全数据。
3 TEE 是什么
可信执行环境(TEE)是系统底层软件和硬件技术实现的一个安全环境。硬件上,例如 ARMv7 架构就引入了 Trustzone 架构,ARM公司实现安全扩展; 软件上,例如开源了的 OPTEE,由社区维护。
可信执行环境(TEE)目前在手机,车载,服务器领域有大量应用。
4 TEE 手机历史
- 2013年: Apple 公司推出第一款带指纹的手机 iphone
- 2014年: 国内公司开始陆陆续续的搞指纹,然后开始有些厂家做 TEE
- 2015年: Google 还没有强制,这时候很多厂商在用指纹了
- 2016年: Google 推出安全标准,加入 CTS 认证
- 2017年-2018年: 安全是一个热度很大的话题
- 2020年: Google 要求的的事情都硬件做的差不多了,此时 TEE 的方案都比较全了
- 2020年-2021年: 安全技术开始向汽车领域上切入
5 TEE 技术趋势
- 安全技术标准:
- GP: GlobalPlatform 定义了 GP Client API 和 GP internal Core API,约束了 CA/TA 程序的开发接口和使用
- SMCCC: 定义了 smc_abi ,约束 TEE 厂商和 SOC 厂商的接口和使用,约定了关于调用过程中 command id 划分
- PSCI: 电源状态一致性接口,定义了 psci drvier,约定了关于从核启动/下电功能的执行
- SDEI: ,定义了 SDEI API,用于注册不可屏蔽中断,它与 Kernel 和 ATF 相关,与 TEE 无关
- SCMI: PSCI 底层用 SCMI 接口与运行在 Cortex-M 核的上固件交互
- FF-A: 关于运行时如何切换,如何启动相关标准
- ARM 架构演进:
- Trustzone: ARM v7 的软件架构引入 Trustzone 的概念
- Hypervisor: ARM v8.1 的引入虚拟化扩展,此时系统分四种异常等级
- S-EL2: ARM v8.4 引入 S-EL2 的支持,之后又引入 FF-A 的概念
- CCA(RME): ARM v9 引入的软件架构,此时分四个安全等级 root/realm/secure/non-secure
- 行业解决方案
- 指纹识别
- 支付场景
- 数字版权管理(DRM)
- 安全图形接口(TUI)
6 References
- 《现代操作系统: 原理与实现》
- 代码改变世界 arm