据悉,CSV 是中科海光自主研发的安全虚拟化技术,采用国密算法实现,CSV 虚拟机在写内存数据时 CPU 硬件自动加密,读内存数据时硬件自动解密,每个 CSV 虚拟机使用不同的密钥。
经过龙蜥社区和海光合作开发,龙蜥 8.4已经正式支持基于海光 CSV 技术的机密容器,实现了容器从镜像下载到运行整个生命周期的安全性,是社区首个机密容器完整解决方案。
CSV 虚拟机的特点
据了解,CSV 虚拟机具备以下三大特点:
1.计算资源被隔离。
海光 CPU 内部使用 ASID(Address Space ID)区分不同的 CSV 虚拟机和主机,每个 CSV 虚拟机使用独立的 Cache、TLB 等 CPU 资源,实现 CSV 虚拟机、主机之间的资源隔离。每个 CSV 虚拟机在内存控制器中有对应的密钥,密钥相互独立,由海光安全处理器管理,一个加密虚拟机的加密内存数据不会被主机或其他 CSV 虚拟机解密。
2.启动过程可度量。
CSV 虚拟机的启动过程由海光安全处理器管理,用户将虚拟机文件和对应的度量值提供给安全处理器,安全处理器计算文件的度量值并和用户提供的度量值进行比较,度量值相等才能继续启动,如果不相等则表明虚拟机文件已经被篡改,虚拟机启动失败。
3.虚拟机身份可认证。
每颗海光 CPU 内置了一个唯一的芯片密钥,同时拥有一份由海光签名的芯片证书,用户通过检查芯片证书的签名来确认是不是合法的海光芯片,进一步检查虚拟机的认证报告可以确认是不是合法的 CSV 虚拟机。
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 使用该密钥解密容器镜像并运行容器。整个过程中容器的数据处于被加密的状态,包括容器镜像中的数据和容器运行时的内存数据,实现了容器全生命周期的安全性。
目前,CSV 机密容器解决方案操作文档已经发布在龙蜥机密计算 SIG 中。