基本原理

ARM 硬件设计实现了硬件资源隔离,分为 REE 和 TEE:

  1. REE:Rich Execution Environment,常规环境
  2. TEE:Trusted Execution Environment;安全环境

这两个环境各自拥有自己的资源,包括内存和 Cache。在被严格隔离的资源之上,TEE 和 REE 侧分别拥有自己的操作系统,用来执行用户的可信应用。

系统架构

应用程序分为 CA 和 TA 两部分:

  1. CA:Client Application,可信应用客户端;在 REE 侧与 TA 配合使用的应用,负责与外部的通讯。
  2. TA:Trusted Application,可信应用,是指被部署在 TEE 内的应用程序,用于在 TEE 内处理机密的数据,需要与 CA 配合使用。

CA 与 TA 之间的通信依赖于 REE 侧的通信框架,包括用户态的 API 库、守护进程以及内核驱动;华为以 REE Patch 的方式提供,并在 openEuler 社区开源。

通信框架从程序开发者角度看,是将 TA 编译为 libcombine.so 动态库由 CA 调用。而对于 TA 的编译,由于在 TEE OS 中只内置了 LIBC 和 OPENSSL 库,如果使用其它库需要以静态链接的形式编译 TA。

参考资料

  1. 【文档】鲲鹏BoostKit机密计算
  2. 【源码】iTrustee SDK
Logo

鲲鹏昇腾开发者社区是面向全社会开放的“联接全球计算开发者,聚合华为+生态”的社区,内容涵盖鲲鹏、昇腾资源,帮助开发者快速获取所需的知识、经验、软件、工具、算力,支撑开发者易学、好用、成功,成为核心开发者。

更多推荐