1# OpenTrustee概述 2 3## 概述 4 5OpenTrustee提供了一个可信执行环境(TEE),运行在受硬件隔离的安全区域中,与常规操作系统如OpenHarmony同时运行但互相隔离,OpenTrustee比常规操作系统拥有更高的安全性,可以为设备上的机密数据提供保护。 6 7## **应用场景** 8 9在终端设备越来越智能化的今天,人们正在把越来越多的个人应用和数据放到设备上,安全性成为一个很重要的命题。可信执行环境(TEE)已逐渐成为终端设备必备的安全技术。OpenTrustee具备丰富的安全特性,可以支持开发者灵活部署安全应用,应用场景也非常广泛,例如:移动支付、生物认证、版权保护等,也可以为系统安全提供保护,如安全启动、系统完整性检测等。 10 11## **术语** 12 13| 缩略语 | 英文 | 中文 | 14| ------------ | ------------------------------------------------------------ | --- | 15| TEE | Trusted Execution Environment | 可信执行环境,也称作安全世界 | 16| REE | Rich Execution Environment | 富执行环境,也称作非安全世界 | 17| TA | Trusted Application | 可信应用 | 18| CA | Client Application | 客户端应用 | 19| SDK | Software Development Kit | 软件开发包 | 20| GP | GlobalPlatform | 国际标准组织 | 21| ATF | ARM Trusted Firmware | ARM可信固件 | 22 23## 系统架构 24 25OpenTrustee是一套完整的TEE解决方案,包含多个部件,系统架构如图所示: 26 27 28 29各部件基本功能介绍如下: 30 31#### TEE Client 32 33- 部署在REE侧用户态,为CA提供符合GP TEE标准的TEE Client API; 34- 内置TEE的代理服务:如日志代理服务,支持获取TEE侧日志并落盘到REE侧文件系统;如安全存储服务,支持获取TEE侧加密的数据并落盘到REE侧文件系统。 35 36#### Tzdriver 37 38- 部署在REE侧内核中的驱动,支持REE和TEE进行通信。 39 40#### OpenTrustee 操作系统框架 41 42- 为TA提供符合GP TEE标准的TEE Internal API; 43- 提供TA运行管理、驱动运行管理等框架基础服务; 44- 提供安全存储、加解密等安全能力。 45 46#### OpenTrustee 操作系统内核 47 48- ChCore微内核,提供IPC/进程管理/内存管理/调度/中断管理/REE和TEE切换等基础内核功能。 49 50#### OpenTrustee 开发套件 51 52- 提供了TA开发套件,包含TA API头文件、编译框架、签名脚本、demo样例等,支持高效开发TA。 53 54#### OpenTrustee Dispatcher 55 56- 在REE和TEE之间交互时完成两个世界上下文的切换。 57 58## 约束 59 60- 支持的系统类型:支持OpenHarmony定义的标准系统,暂不支持轻量系统和小型系统; 61- 对硬件的要求:目前只支持具备ARM TrustZone机制的CPU,安全内存至少需要28M; 62 63## 编码规范 64 65[OpenHarmony C语言编程规范](https://gitee.com/openharmony/docs/blob/master/zh-cn/contribute/OpenHarmony-c-coding-style-guide.md) 66 67[OpenHarmony C++语言编程规范](https://gitee.com/openharmony/docs/blob/master/zh-cn/contribute/OpenHarmony-cpp-coding-style-guide.md) 68 69[OpenHarmony C&C++ 安全编程指南](https://gitee.com/openharmony/docs/blob/master/zh-cn/contribute/OpenHarmony-c-cpp-secure-coding-guide.md) 70 71[OpenHarmony 安全设计规范](https://gitee.com/openharmony/docs/blob/master/zh-cn/contribute/OpenHarmony-security-design-guide.md) 72 73## license 74 75遵循Mulan PSL V2协议; 76 77## 版本号 78 79OpenTrustee版本号管理规则遵循[Semantic Versioning 2.0.0](https://semver.org/) 80 81OpenTrustee当前版本号记录在[VERSION](https://gitee.com/openharmony-sig/tee_tee_dev_kit/blob/master/VERSION)文件中 82 83OpenTrustee版本号变更记录在[CHANGELOG.md](https://gitee.com/openharmony-sig/tee_tee_dev_kit/blob/master/CHANGELOG.md)文件中 84