机密计算与传统加密的区别如下:
1. 数据保护阶段的差异
- 传统加密:主要保护"静态数据"(存储加密,如AES加密磁盘)和"传输中数据"(传输加密,如TLS/SSL协议)
- 机密计算:专门保护"使用中数据"(Data in Use),即数据在CPU寄存器、缓存和内存中参与计算时的状态
2. 威胁模型的不同
- 传统加密假设运行环境是可信的,解密后的明文数据在内存中对操作系统和特权软件可见
- 机密计算假设运行环境是不可信的,包括操作系统、虚拟机监控器、云服务商管理员均无法访问TEE内部的明文数据
3. 密钥管理方式的区别
- 传统加密:解密密钥需要被加载到内存中,密钥本身可能成为攻击目标
- 机密计算:加密密钥由CPU硬件安全区域直接管理,即使在内存中的密钥材料也是以加密形式存在
4. 性能与易用性的权衡
- 传统加密:软件层加密方案成熟,性能开销相对可控,但无法防御运行时的内存攻击
- 机密计算:依赖专用硬件支持,早期SGX实现(第三代至强可扩展处理器之前)的EPC上限为256MB,存在换页性能开销;现代至强处理器(第三代及以后)支持更大的EPC,单插槽最高可达512GB,双插槽平台最高可达1TB,大幅降低了大内存工作负载的性能损耗;编程模型相较传统开发仍有一定复杂度