蚂蚁在上海外滩大会可信原生技术论坛上宣布开源 KubeTEE。
KubeTEE 是一个云原生大规模集群化机密计算框架,旨在解决在云原生环境中 TEE 可信执行环境技术特有的从开发、部署到运维整体流程中的相关问题。这是业界首个开源的 TEE 大规模集群整体解决方案。
2018年,蚂蚁集团开始全面转型云原生架构。2020 年,该集团又提出了“可信原生(Trust-Native)”的理念,将可信任性渗透到云原生架构的各层之中,打造全栈可信赖的云计算基础设施。
而作为保护应用的运行安全的技术,机密计算理念以及可信执行环境TEE (Trusted Execution Environment) 也被蚂蚁引入并积极实践,形成了 SOFAEnclave 机密计算技术栈。
SOFAEnclave 包括三大组件:
- Occlum LibOS:解决业务开发过程中的问题,如传统TEE应用开发需要切分重构,依赖SDK特定编程语言等问题;
- HyperEnclave:解决TEE部署环境问题,如硬件TEE不普及、软硬件TEE使用一致性等问题;
- KubeTEE:解决TEE集群问题,包括云原生环境特有的从开发、部署到运维整体流程中的相关问题。
此前,Occlum LibOS 已经开源,并捐献给了 CCC(Confidential Computing Consortium)机密计算联盟。CCC 机密计算联盟隶属于 Linux 基金会,由业界多家科技巨头发起,致力于保护计算数据安全。Occlum 捐献给 CCC,则将成为 CCC 社区首个中国发起的开源项目。
KubeTEE 则是云原生场景下如何使用 TEE 技术的一套整体解决方案,包括多个框架、工具和微服务的集合。其结合了 Kubernetes 和 TEE 两个重要技术方向,解决可信应用从单点到容器化集群实施过程中的相关问题。
KubeTEE 的目标之一是提供 Serverless 形态的机密计算服务,比如 Trusted FaaS,让业务方只需要实现业务核心逻辑,就可以简单地将之提交到 TEE 环境中运行,而不用重复整套的业务服务开发、部署和运维的流程。
KubeTEE架构图:
目前,KubeTEE 已经开源的组件包括:
- sgx-device-plugin:sgx容器插件,让容器支持sgx特性,由蚂蚁与阿里云团队共同开发;
- trusted-function-framework:TFF可信应用开发框架,简化可信函数实现过程,屏蔽SGX相关细节;
- enclave-configuration-service:AECS,基于远程认证的enclave配置服务;
- protobuf-sgx:经修改以支持Enclave内部使用的protobuf协议。
利用 KubeTEE 的组件开发一个集群化的可信应用
目前服务器端 TEE 技术最成熟的代表是 Intel SGX 技术,KubeTEE 相关工作也都基于 SGX 实现。
KubeTEE 的目标是通过云原生的手段简化整个可信应用的开发流程,帮助业务方更简单、更顺畅地实现基于 TEE 的可信应用和服务,具体包括可信应用开发支持、基础设施支持和微服务辅助支持等方面。
总体来说,KubeTEE 支持如下整个可信应用的开发流程: 基于开发框架的应用开发 -> 应用自动化签名服务 -> 基于基础镜像和模板工具的容器打包和上传。
为了满足不同应用场景的开发需求,在 Occlum LibOS 基础上,KubeTEE 开源了 TFF 可信应用开发框架。TFF 框架主要适用于需要严格控制 Enclave 内部代码性能和安全的轻量应用场景,所以舍弃了对复杂应用的兼容(这部分 Occlum LibOS 可以更好的支持),理念是让 TEE 原生 SDK 支持的分割式编程模型更加稳定和易用。
在基础设施方面,KubeTEE 基于 Kubernetes,利用云原生的方式管理和使用 SGX 物理机器,统一 SGX 主机环境,并抽象成容器逻辑资源池,提供统一的可信应用部署服务,让 TEE 硬件基础设施成为一种可以按需使用的集群化资源。
KubeTEE 开源的 sgx-device-plugin 让业务容器启动时候自动获取 TEE 特性支持,同时方便集群管理和分配 TEE 资源。 从工程实践角度,集群中可以隔离 CI、测试、预发和生产环境,满足业务不同阶段对 TEE 基础设施的需求。
此外,KubeTEE 还提供了一些辅助微服务来帮助业务方节省重复开发的人力和时间成本。
其中,KubeTEE 开源的 AECS(Attestation based Enclave Configuration Service)方案就是为了解决可信应用多个实例间安全共享密钥从而实现无状态服务的问题。
AECS 主要提供秘钥生成、导入、存储、管理和分发,远程证明报告代理获取等基础功能,将来可能扩展更多通用配置管理功能,比如证书生成和分发。同时,AECS 支持多种 secret 格式和自定义的 secret 访问 policy,支持多业务之间秘钥隔离管理。
蚂蚁方面表示,目前,KubeTEE 已经可以较大程度帮助业务方降低 TEE 开发复杂度,但是依然任重道远。KubeTEE 下一阶段将更多关注云原生场景和机密计算的结合,持续贡献更多组件以及通用服务,让 TEE 的使用更高效、更简单、更云原生化。
他们希望,KubeTEE 能和业界携手,共建更完整的云端安全计算生态。
仓库: https://github.com/SOFAEnclave/KubeTEE
码云仓库地址:https://gitee.com/mirrors/kubetee