TEE开源框架总结

参考文献

  • 隐私计算之TEE技术和应用实践分析(2021.6)

对比分析

开源项目
公司
支持芯片
特点
支持的库
开发语言
Teaclave/MesaTEE 百度 SGX、TrustZone Apache孵化项目之一。Teaclave设计思路是构建一个类FaaS(Function as a Service)的计算平台服务。平台在提供TEE机密计算、远程验证、安全存储等功能基础上,再通过一套任务管理框架实现了多任务的管理和并发操作。同时按照FaaS的设计逻辑实现计算函数的可插拔 Marshal、Math、Binascii、Itertools、Micronumpy Rust、Python
Graphene / Gramine OS OSCAR Lab SGX Linux SGX LibOS项目。Gramine(以前叫Graphene)是一个轻量级的库式操作系统,旨在以最小的主机要求运行单个应用程序。Gramine可以在一个孤立的环境中运行应用程序,其好处可以与在虚拟机中运行一个完整的操作系统相媲美–包括客体定制,易于移植到不同的操作系统,以及进程迁移。。 Tensorflow、Pytorch、OpenVINO、Memchached、Redis、Nginx、Apache HTTP Server c、python
Occlum 蚂蚁金服 SGX 降低遗留应用迁移到SGX中的编码成本。对应用代码不做更改或者只做少量调整,就可以迁移到SGX中运行,获得机密性和完整性保护。与其他LibOS项目相比,具有Enclave内多进程管理、全类型的文件系统支持、内存安全、容器化设计功能。 rust、c/c++
OpenEnclave Microsoft SGX、TrustZone(预览阶段) Open Enclave是一套C/C++的SDK。Open Enclave SDK主要封装了Enclave生命周期管理、Enclave度量、Enclave内外互调用、系统调用、数据封装、远程验证以及一些密码学库。 MUSL、Openssl、Mbedtls、LLVM LibC++
Asylo Google SGX 提供了C/C++的SDK,但不同的是Asylo更进一步定义了基于SGX的应用实现规范,也就是所谓的编程框架。基于Asylo实现的应用也是分为非可信区和可信区,但互相的通信被约束为C/S模式。非可信部分实现客户端和Enclave管理器,可信部分实现计算服务端。Asylo是一套把SGX做成服务化的编程框架 - C/C++
KubeTEE SGX KubeTEE是一个TEE开发、部署、维护中间件框架和服务的集合。特别是,它是针对云原生工作流程的。顾名思义,KubeTEE是基于docker容器、Kubernetes编排和其他云原生技术。它的目标是帮助开发者实现基于TEE的应用,并更容易和顺利地部署TEE服务。
OP-TEE Linaro TrustZone Trusted OS的一个开源实现。 OP-TEE包括安全世界操作系统(OPTEE_OS),普通世界客户端(OPTEE_Client),测试套件(OPTEE_Test / XTest)和Linux驱动程序。操作系统和客户端符合Global Platform规范。项目由Linaro维护,已经适配支持28多个平台/处理器。开发用户负责开发在Linux上运行的客户端应用程序(CA)和在OP-TEE上运行的可信应用程序(TA)。CA使用TEE客户端API与TA对话并从中获取安全服务。CA和TA使用共享内存在彼此之间传递数据 - -
OPEN-TEE Secure Systems group TustZone (≥Ubuntu14.04) Open-TEE开源项目的目标是实现一个符合最近全球平台TEE规范的 “虚拟TEE”。 - c/c++
Trusty OS Android社区开源项目 SGX、TrustZone Trusty 是一种安全的操作系统 (OS),可为 Android 提供可信执行环境 (TEE)。Trusty OS 与 Android OS 在同一处理器上运行,但 Trusty 通过硬件和软件与系统的其余组件隔离开来。Trusty 与 Android 彼此并行运行。Trusty 可以访问设备主处理器和内存的全部功能,但完全隔离。隔离可以保护 Trusty 免受用户安装的恶意应用以及可能在 Android 中发现的潜在漏洞的侵害。 Trusty 与 ARM 和 Intel 处理器兼容。在 ARM 系统中,Trusty 使用 ARM 的 Trustzone™ 虚拟化主处理器,并创建安全的可信执行环境。使用 Intel 虚拟化技术的 Intel x86 平台也提供类似的支持。 Little Kernel、Linux 内核驱动程序、Android 用户空间库 -
SierraTEE OS Sierraware TrustZone、MIPS 提供了一个最小的安全内核,可以与功能更全面的高级操作系统(如Linux、Android、BSD)在同一内核上并行运行。它还为丰富的操作系统(“正常世界”)提供了驱动程序,以便与安全内核(“安全世界”)通信。 -

很多企业自用闭源的Trusted OS,比如苹果的Secure Enclave、高通的QTEE、三星的Knox、Teegris、Trustonic的Kinibi OS、华为的TrustedCore等。

LibOS for SGX

  • 为什么需要LibOS见 这儿

英特尔SGX通过应用隔离技术帮助保护选定的代码和数据不被修改。应用程序可以从英特尔SGX的保密性和完整性保证中受益,但开发人员需要非常熟练地对英特尔SGX环境进行有效分区和代码修改。同时,SGX SDK提供了有限的系统调用接口,因此,在Enclave中的应用程序会因为没有暴露的接口而无法运行。

为了很好地支持在英特尔SGX Enclave中运行的应用程序,开发者可以免于编写任何额外的enclave感知代码。LibOS的主要功能如下:

  • 提供一个智能点来划分不信任/信任的系统
  • 不扩大不信任的接口
  • 将整个应用程序移植到Enclave

LibOS for SGX的通用框架是:
TEE开源框架总结_第1张图片

目前,支持Intel SGX的开源LibOS有Gramine、Occlum、SCONE和Fortanix等。其中常用的是Gramine和Occlum。

所以 LibOS 也属于 Trusted OS。Trusted OS 是为了开发方便,提供API让应用程序安全访问隔离空间,进行机密计算。

你可能感兴趣的:(TEE)