1. 可信执行环境的创建
- 应用程序向CPU发出创建TEE的请求,CPU通过硬件机制分配一块受保护的内存区域
- 该内存区域中的数据始终以加密形式存储,仅在CPU内部解密执行
- 即使操作系统内核、虚拟机监控器(Hypervisor)或云服务商管理员也无法访问该区域内容
2. 代码与数据加载
- 需要保护的敏感代码和数据被加载到TEE内部
- 加载过程中,CPU硬件使用仅CPU可知的密钥对数据进行加密保护
- 以Intel SGX为例,数据被加载到Enclave Page Cache(EPC)中,外部无法直接读取
3. 远程证明(Remote Attestation)
- TEE生成一份由CPU硬件直接签名的"证明报告",包含当前运行代码的哈希值和安全状态信息
- 远程验证方(如数据提供方)将该报告发送给硬件厂商的认证服务进行验证
- 只有通过验证,确认对方是 genuine 的TEE环境且运行正确代码后,才会建立安全通信并发送敏感数据
4. 安全计算执行
- 数据在TEE内部以明文形式参与计算,但整个处理过程对外部不可见
- CPU在将数据送入寄存器或缓存时自动解密,运算完成后立即重新加密
- 计算结果输出时,可选择在TEE内部重新加密后再传出,确保输出结果的安全性
5. 内存加密引擎的作用
- Intel SGX通过Memory Encryption Engine(MEE)实现内存加密,确保数据在CPU与内存之间传输时被加密保护
- AMD SEV为每个虚拟机分配独立的加密密钥,由CPU安全处理器管理密钥生命周期
- ARM TrustZone通过总线防火墙和内存分区,实现安全世界(Secure World)与普通世界(Normal World)的隔离