第一章:Trusty概述与定位
Trusty是Google为Android设备开发的基于ARM TrustZone技术的可信执行环境(TEE)操作系统。它提供了一个隔离的安全执行环境,用于处理敏感操作如加密、数字版权管理(DRM)和安全认证等。
Trusty在Android安全架构中扮演着关键角色,特别是在处理敏感数据和操作方面:
Trusty通过硬件抽象层(HAL)与Android主系统交互。安全相关的HAL服务(如Keymaster)会将敏感操作委托给Trusty环境执行,确保这些操作在隔离的安全环境中完成。
Keymaster是Android的密钥管理服务,其关键操作通常在Trusty环境中执行:
Trusty建立了Android主系统与安全敏感操作之间的明确边界,确保即使主系统被攻破,关键安全操作仍能保持完整性。
Trusty与OP-TEE都是基于ARM TrustZone的TEE实现,但设计理念和目标有所不同:
| 特性 | Trusty | OP-TEE |
|---|---|---|
| 开发者 | Linaro/开源社区 | |
| 设计目标 | 专为Android优化 | 通用GP TEE标准实现 |
| 兼容性 | 主要支持Android设备 | 跨平台支持 |
| API标准 | Google自定义API | 遵循GlobalPlatform TEE标准 |
| 集成度 | 与Android深度集成 | 相对独立 |
| 开源程度 | 部分开源 | 完全开源 |
对于Android设备,Trusty提供了更好的集成度和性能优化;而对于需要遵循GP标准或跨平台的项目,OP-TEE可能是更好的选择。
Trusty支持多种主流移动处理器平台,各平台实现细节可能有所不同:
通过QSEE(高通安全执行环境)实现Trusty支持,集成在Snapdragon系列芯片中
通过Trustonic TEE基础实现Trusty支持,常见于中高端MTK芯片
在i.MX系列处理器上提供Trusty支持,适用于汽车和工业应用
部分麒麟芯片支持Trusty,实现细节不公开
虽然Trusty设计是通用的,但不同硬件平台可能需要特定的底层适配: