蚂蚁集团可信执行环境开源操作系统 Occlum v1.0 发布
12 月 12 日消息,蚂蚁集团主导开源的可信执行环境(TEE)开源操作系统 Occlum v1.0 版正式发布。该版本与此前版本相比具有更高的稳定性和完备性,在线程调度、网络和存储 IO 方面最高有 5 倍的大幅度性能提升。v1.0 版还首次上线蚂蚁集团与英特尔联合研发的 Spark 大数据分析方案,可帮助 Spark 用户无缝地迁移至 TEE 机密计算环境中。
Occlum 是用于多种 TEE 的内存安全多任务用户态的开源操作系统,可以让应用负载很方便地部署在 TEE 中,来保证用户隐私数据在整个计算过程中的机密性和完整性。当前 Occlum 可以支持的 TEE 包括 Intel SGX 和蚂蚁集团自主研发的国产 TEE-HyperEnclave。
Occlum 是实现在 Intel SGX 上的单个 Enclave 内安全高效的多任务用户态操作系统。因为 Occlum 采用的是在单个 Enclave 内实现 LibOS 的方案,使得 Occlum 在资源占用和运行效率上优于其他 LibOS 的实现方案。
2021 年蚂蚁集团决定将 Occlum 捐献给 Linux 基金会机密计算联盟 CCC,Occlum 发展到今天已经历时 4 年的研发和打磨,在开源社区上发布了 40 多个版本,并获得了 1000 多的 Github Star。
下面是 Occlum v1.0 技术亮点详解
1)支持 150 多个兼容 Linux 的系统调用
为了让 Linux 原生应用无需修改和编译,无缝地迁移到 Enclave 中,在 Occlum v1.0 中已实现 150 多个兼容 Linux 的系统调用。支持了大多数主流编程语言,包括: C / C++ 、Java、 Python 、Golang 、Rust 、shell 脚本等等。同时 Occlum 开源仓库中提供了许多 Linux 应用,例如:SQLite TensorFlow、OpenVino、PyTorch、Redis、MySQL、Spark、Flink 等是如何运行在 Occlum 上的 Demo 演示,以及在 K8S 上部署可扩展的基于 Occlum 的安全推理实例的参考实现方案。
2)易用、高效、实用、安全
首先,在易用性上,Occlum 的使用方式是类似容器的使用体验。用户通过几个简单命令就可以把应用程序部署到 TEE 中。
第二个特点 —— 高效。Occlum 是高性能的多任务系统,支持多进程,它采用了单地址空间架构,因此多个进程共享同一个 Enclave,因此 Occlum 在 TEE 里就可以很快地完成进程启动和进程间通信。
第三个特点 —— 实用。Occlum 支持多种文件系统,比如:加密文件系统、内存文件系统等等,从功能上可以满足应用的各种文件 I / O 需求,并且可以透明的加密应用在运行中需要存储在磁盘上的数据。
第四个特点 —— 内存安全。Occlum 是业内第一个用内存安全语言 Rust 编写的 LibOS ,Rust 语言是追求内存安全,且不带来额外性能损耗的编程语言。Occlum 采用 Rust 语言编写可以杜绝低级的内存安全错误 ,从而提高 Occlum 整体内核代码的安全性,在托管安全关键的应用程序时更值得信赖 。
3)引入 4 大核心技术,让运行用户的应用负载更加高效
首先,Occlum v1.0 提出了以异步为中心的设计思路,重新设计了整个 Occlum 代码架构,使用了 Rust 语言的异步特性,基于 Rust 轻量级协程和异步运行时在 Enclave 里实现了高效的线程调度机制,尤其是对于机器学习和分布式编排等大型应用来说可大幅提高计算性能。
其次,Occlum v1.0 中创新性地引入了 Linux 新一代异步 I / O 操作接口 io_uring,并且支持了大部分 IO 操作(包括网络 IO / 磁盘 IO),利用这一新特性,再搭配 Rust 异步运行时,Occlum 具有了接近 Linux 原生的网络 IO 性能。
第三 ,Occlum v1.0 吸收了蚂蚁集团自主研发的新一代基于日志结构的可信虚拟块设备,可以使现有主流文件系统具有对磁盘 I / O 的安全保护能力,安全性高于 Linux 内核中现有各种文件 I / O 或磁盘 I / O 保护方案,同时也高于同类 TEE 的保护方案 比如:SGX-PFS。由于可信虚拟块设备采用了全新的追加写式的日志结构设计,IO 性能也会有较大提升。
第四,Occlum v1.0 采用了基于按需分配的动态内存管理设计,不仅提高了 Enclave 物理内存的利用率,并且可以大大缩短应用加载到 TEE 中的时间。
对比 Occlum v1.0 和上一个社区版本 0.29 性能测试数据。可以看到 Occlum v1.0 的线程调度性能是上一版本的 5 倍,当应用线程数量越多时,v1.0 的调度性能的优势会越加明显。在网络传输速度和文件 IO 吞吐量上,与上一个版本相比也有 2 倍和 3 倍的性能提升,尤其是网络 IO 上,在同等的环境下可以接近 Linux 原生的网络传输速度。
4)首次上线蚂蚁集团与英特尔联合研发的 Spark 大数据分析方案
蚂蚁集团和 Intel BigDL 团队合作,将 Apache Spark 分布式大数据处理应用运行在 Occlum 中,基于这个能力,蚂蚁集团和 Intel 团队联合发布了《基于 Occlum 和 BigDL 构建端到端的安全分布式 Spark 大数据分析方案》,这项方案也上线到了 Occlum v1.0 版本中。
与现在业界已有的 Spark on SGX 的方案对比,本次方案除了支持多种部署模式外,在 Spark 能力支持上也弥补了上述已有方案的不足。
通过在 Occlum 提供安全运行环境上,基于 BigDL 构建了分布式的隐私保护机器学习平台 (PPML),能够保护端到端的(包括数据输入、数据分析、机器学习、深度学习等各个阶段)的分布式人工智能应用。与传统的隐私计算框架不同,该方案提供了一个可以运行标准大数据应用的环境,希望帮助现有的大数据 / 分布式应用无缝地迁移到端到端安全的环境中,并且强化每个环节的安全性。
通过 Spark in Occlum 能力,可以让现有的 Spark 应用,直接运行到 TEE 环境中,而不用做任何代码修改,并且可以根据数据规模进行横向拓展,从而轻松支持 TB 级别的数据规模;另一方面,负责完整性的远程证明功能,也被无感的添加到了整个流程中,应用开发者不需要显式的增加远程证明代码,即可通过 Occlum 和 BigDL 提供的远程证明功能实现实例的远程证明和校验。该方案已经在微软 Azure 机密计算博客频道上线,并且该方案也是开源的。
IT之家了解到,随着当前 TEE 硬件架构的发展,为了满足更多在不同运算场景下的安全需求,Occlum 将会支持 GPU TEE,将 CPU 提供的 TEE 安全能力拓展到 GPU 上,确保数据可以安全地转移到更强大的计算硬件设备上。
Occlum 也在为明年 Intel 即将带来的新一代 TEE TDX 做准备,Occlum 计划从用户态操作系统向内核态操作系统演进。
来源:IT之家