经过龙蜥社区和海光的合作开发,龙蜥 8.4已经正式支持基于海光 CSV 技术的机密容器,实现了容器从镜像下载到运行整个生命周期的安全性,是社区首个机密容器完整解决方案。
CSV 是海光自主研发的安全虚拟化技术,采用国密算法实现,CSV 虚拟机在写内存数据时 CPU 硬件自动加密,读内存数据时硬件自动解密,每个 CSV 虚拟机使用不同的密钥。CSV虚拟机具有以下特点:
1)计算资源被隔离
海光 CPU 内部使用 ASID(Address Space ID)区分不同的 CSV 虚拟机和主机,每个 CSV 虚拟机使用独立的 Cache、TLB等 CPU 资源,实现 CSV 虚拟机、主机之间的资源隔离。每个 CSV 虚拟机在内存控制器中有对应的密钥,密钥相互独立,由海光安全处理器管理,一个加密虚拟机的加密内存数据不会被主机或其他 CSV 虚拟机解密。
2)启动过程可度量
CSV 虚拟机的启动过程由海光安全处理器管理,用户将虚拟机文件和对应的度量值提供给安全处理器,安全处理器计算文件的度量值并和用户提供的度量值进行比较,度量值相等才能继续启动,如果不相等则表明虚拟机文件已经被篡改,虚拟机启动失败。
3)虚拟机身份可认证
每颗海光 CPU 内置了一个唯一的芯片密钥,同时拥有一份由海光签名的芯片证书,用户通过检查芯片证书的签名来确认是不是合法的海光芯片,进一步检查虚拟机的认证报告可以确认是不是合法的 CSV 虚拟机。CSV 虚拟机的认证报告包含虚拟机的度量值、版本号、所有者等信息,认证报告被芯片密钥签名,用户检查报告签名确认报告的合法性,检查度量值等信息确认虚拟机的合法性,进而实现 CSV 虚拟机远程认证功能。
基于海光 CSV 的机密容器方案,结合了 Kata 容器、CSV 虚拟机、Inclavare Containers 的技术优势,通过 Kata 创建 CSV 虚拟机作为容器运行的可信环境,将 CSV 虚拟机的远程认证功能与 Inclavare Containers 的 RATS-TLS 功能相结合,在 TLS 证书中嵌入 CSV 虚拟机的认证报告,该认证报告包含 TLS 公钥信息和海光芯片密钥的签名。用户检查该认证报告可以确认当前容器的运行环境是可信的 CSV 虚拟机,并且该 TLS 公钥是合法的,后续可用于双方安全通信。CSV 机密容器方案架构如下图所示:
容器仓库中的镜像是加密的,使用 Verdictd 管理容器镜像的加密密钥,Verdictd 检查 CSV 虚拟机的远程认证报告通过后,将镜像密钥注入到 CSV 虚拟机,虚拟机中的 Kata agent 使用该密钥解密容器镜像并运行容器。整个过程中容器的数据处于被加密的状态,包括容器镜像中的数据和容器运行时的内存数据,实现了容器全生命周期的安全性。
详细的介绍资料和操作文档已经发布在龙蜥机密计算 SIG,小伙伴们赶紧去试一试吧!
龙蜥云原生机密计算 SIG 链接地址:https://openanolis.cn/sig/coco
—— 完 ——
加入龙蜥社群
加入微信群:添加社区助理-龙蜥社区小龙(微信:openanolis_assis),备注【龙蜥】与你同在;加入钉钉群:扫描下方钉钉群二维码。欢迎开发者/用户加入龙蜥社区(OpenAnolis)交流,共同推进龙蜥社区的发展,一起打造一个活跃的、健康的开源操作系统生态!
关于龙蜥社区
龙蜥社区(OpenAnolis)由企事业单位、高等院校、科研单位、非营利性组织、个人等在自愿、平等、开源、协作的基础上组成的非盈利性开源社区。龙蜥社区成立于 2020 年 9 月,旨在构建一个开源、中立、开放的Linux 上游发行版社区及创新平台。
龙蜥社区成立的短期目标是开发龙蜥操作系统(Anolis OS)作为 CentOS 停服后的应对方案,构建一个兼容国际 Linux 主流厂商的社区发行版。中长期目标是探索打造一个面向未来的操作系统,建立统一的开源操作系统生态,孵化创新开源项目,繁荣开源生态。
目前,龙蜥OS 8.4已发布,支持 X86_64 、Arm64、LoongArch 架构,完善适配 Intel、兆芯、鲲鹏、龙芯等芯片,并提供全栈国密支持。
欢迎下载:https://openanolis.cn/download
加入我们,一起打造面向未来的开源操作系统!https://openanolis.cn