一文解读机密容器的崛起和发展


在 2022 云栖大会龙蜥峰会云原生专场上,来自阿里云操作系统技术专家冯世舫和 Intel 系统软件工程部高级研发经理朱江云分享了《机密容器的崛起和发展》技术演讲,以下为本次演讲内容:
机密容器是 CNCF 的 一个 Sandbox 项目,用于解决云原生场景下的数据安全问题,满足数据合规、数据隐私保护、算法和模型等创新 IP 保护,数据可用但是不可见等使用需求,以及解决云厂商的信任依赖问题。

机密容器具备以下几个特性:
安全性。机密容器基于硬件可信执行环境来保护容器中数据安全,云厂商以及具备高权限的第三方均无法直接窃取和篡改容器中的数据。
易用性。用户应用无需进行任何改造,即可从传统容器环境中迁移到机密容器环境中。
能够解决租户和云厂商之间的信任依赖问题。租户数据对于云厂商而言不再透明。
可自证性。用户可以通过远程证明等手段证实当前使用的容器环境是真实可信的。

机密容器的安全性很大程度上依赖于硬件的可信执行环境,基于硬件实现对于运行态数据机密性、完整性和安全性的保护。
近年来很多硬件厂商也推出了自己的 TEE 技术解决方案,比如英特尔® SGX 和 TDX 等,这意味着我们可以基于多种硬件平台构建机密容器技术。

龙蜥社区理事单位之一的阿里云是机密容器(Confidential Containers)项目的核心参与者,在参与开源项目开发的同时,也一直在推动机密容器的商用解决方案,目前已经完成了两种机密容器的解决方案构建:
一种为 POD 级机密容器,指将容器 POD 中的内容放到 TEE 中进行保护。
一种为进程级机密容器,指将运行有敏感业务的容器进程放到 TEE 中进行保护。
在使用 CPU TEE 保护运行态数据安全的同时,我们也结合镜像安全、存储安全,远程认证、网络安全等一系列安全技术,为用户提供从应用部署到执行的全链路的安全保证。

同时,我们将机密容器引入到龙蜥社区,基于龙蜥开源生态构建开源的、开箱即用的解决方案。目前我们已经完成了 ANCK、KVM、Rund 安全容器等组件对于机密容器的适配工作。构建开源解决方案,是希望能够借助开源社区与合作伙伴达成更便捷深入的合作,为机密容器寻找更多落地场景。

英特尔和阿里云都充分意识到,除了关注基础软件之外,为了促进机密容器的技术发展和普及,应用和生态也是非常关键的一环。机密计算的核心价值和能力在于能够对于高价值业务或敏感数据提供保护,BigDL PPML 就是这样一个典型应用。
BigDL 是英特尔开源的一款人工智能解决方案平台,能够方便数据科学家和数据工程师便捷地开发出一套端到端的分布式人工智能的应用。另外,BigDL 特别针对机密计算推出了 PPML (隐私保护机器学习),能够对分布式人工智能应用实现端到端的全链路保护。
PPML 架构如上图所示。最底层在 K8s 集群中提供的英特尔® TDX 和英特尔® SGX 可信执行环境。再通过一系列软硬件底层安全技术加持,使得用户能够在不暴露隐私数据的前提下,使用标准的人工智能和大数据处理软件比如 Apache Spark、 Apache Flink、TensorFlow、PyTorch 等熟悉的工具开发自己的应用。
在此之上,PPML 还提供了 Orca 和 DLlib 两个分布式流水线。Orca 是在 AI 框架 API 之上,增强了分布式大数据的处理能力,而 DLlib 则能够帮助程序员将分布式深度学习应用转化成 Spark 应用。另外,BigDL 还提供了可信大数据分析、可信机器学习、深度学习以及联邦学习应用。

如上图所示,BigDL PPML 基于可信的 Kubernetes 集群环境,通过机密容器技术能够构建出基于 TDX 的分布式可执行环境,从而确保业务、数据和模型在使用和计算过程中的安全性,包括不可见以及不可更改性。
从数据流角度,所有数据均以加密方式存储在数据湖和数据仓库中。BigDL PPML 加载这些机密数据,通过远程证明以及密钥管理系统获取数据密钥,置于可信执行环境中进行解密,再使用大数据和人工智能的计算框架, 对数据进行分布式预处理,模型训练以及模型推理等。最后,再把最终结果、数据或者模型,以安全或加密方式写回到分布式存储中。另外数据在节点之间, 容器之间的数据均以 TLS 方式进行传输,从而做到全链路的隐私保护和数据安全。

使用 TDX 机密容器运行 BigDL PPML workload 只需简单两步:
首先,构建 PPML 的镜像并对其进行加密,然后把加密后的镜像推送到镜像仓库之中。
其次,在 Kubernetes 中部署 PPML workload ,开发者只需在标准 YAML 文件中指定所需机密容器运行时以及配置好的高性能存储卷,然后使用标准 Kubernetes 命令拉起即可。
如果更深入一点看,Kubernetes 将 workload 调度到具有运行机密容器能力的目标主机:
首先,主机上的机密容器运行时启动 TDX TEE。
其次,在 TDX 可信执行环境里,执行远程证明并获取验证/解密容器镜像所需的密钥,镜像服务下载容器镜像,使用密钥验证及解密容器镜像;在数据方面,用户使用标准的 K8s CSI driver 比如 open-local 为容器挂载高性能本地 LVM 卷,机密容器会自动进行透明的加密存储来保护用户输入输出数据。
最后,启动 BigDL PPML workload 相关容器,一个 BigDL PPML Driver 和多个 Worker 以分布式的方式运行于 K8s 集群之上,这样可以基于 TDX 进行的可信的云原生大数据分析和人工智能应用了。

英特尔和阿里云一直保持着紧密合作,两家都是 CoCo 上游社区的发起人,共同定义、设计和实现了 CoCo 软件栈的诸多关键特性,比如 TEE 内镜像下载,镜像的验签和解密,可信临时存储和可度量运行时环境,所有这一切都确保了 CoCo 这个项目的强安全属性。
另外,我们在龙蜥社区也有紧密的合作,包括共同实现了基于 TDX 的机密容器端到端的解决方案,包括远程证明以及参考应用。又比如我们选择了龙蜥社区的 open-local driver ,第一个支持了可信存储,一个支持了 kata 的 directvolume 新特性等等。欢迎感兴趣的各位参与到云原生机密计算 SIG(Special Interest Group)中来,一起推动云原生场景下的机密计算技术的发展。
相关链接地址:
CNCC SIG 地址:https://openanolis.cn/sig/coco
评论