机密计算联盟开源项目之机密计算认证框架

2024-04-24 15:56:46 浏览数 (1)

一. 概述

机密计算联盟-Confidential Computing Consortium,CCC[1]是linux基金会的一个项目社区,致力于定义和加速机密计算的采用。联盟主要成员包括arm、谷歌、华为、英特尔、微软等巨头企业。目前CCC拥有11个项目,本文主要对其中的“机密计算认证框架(Certifier Framework for Confidential Computing)”这一项目进行介绍,该项目由VMWare公司启动,旨在通过提供简单的客户端信任管理,简化和统一了对多供应商机密计算平台上有关可信认证的编程和操作支持。若想了解更多可访问该项目github仓库[2]。

二. 为什么需要机密计算认证

机密计算技术可有效保护运行在不安全环境中程序与数据的机密性、完整性和策略合规性,程序的拥有者可以将程序部署在远端不受信环境上,通过机密计算技术来保证自身程序与数据安全。一般来讲,机密计算要求平台具有以下能力:

1.隔离能力:将程序与其他软件隔离;

2.度量能力:为程序提供不可伪造的度量信息;

3.机密存储能力:在隔离的情况下,仅被度量的程序可以获取机密信息;

4.证明能力:平台可以对隔离程序的行为提供签名证明,证明该程序运行在隔离环境中。

其中证明能力是为机密计算提供安全性背书与证明的重要手段,程序拥有者可以通过机密计算平台所提供证据验证程序所在平台信息、程序完整性以及程序执行策略完整性等信息,来确保自己的程序运行符合预期,没有受到篡改,并运行在隔离环境中。

然而,机密计算的隔离性大多依赖与可信执行环境技术所提供的硬件隔离,如AMD的SEV与英特尔的SGX、TDX,ARM机密计算架构、RSIC-V Keystone等。各家厂商所提供的软硬件架构、开发方式、迁移方式、证明接口均各不相同。开发者需要针对不同硬件平台做大量针对性的开发工作,自定义配置不同的证明与信任策略。为了简化与统一上述过程,机密计算认证框架应运而生。

机密技术认证框架主要目标在于减少有关认证部分的程序构建难度,可以支持不同架构的机密技术平台,通过提供简单的API来取代原有的大量开发工作,提供机密计算原语的统一接口,包括度量、机密存储、验证等能力,如图1所示。

图1 机密计算认证框架架构

三. 机密计算认证框架介绍

机密计算认证框架由称为认证API(Certifier API)的客户端和称为认证服务(Certifier Service)的策略评估服务器组成。

●认证API:提供简单的客户端信任管理,包括证明评估、安全存储、平台初始化、机密共享、安全通道及其他多种服务;

●认证服务:支持可扩展的策略驱动型信任管理,包括证明评估、应用程序升级和其他机密计算信任服务。

其中认证API的核心为一个认证库(Certifier Library),该认证库将机密计算中远程证明能力以及对可信环境中身份、密钥、证书的管理能力进行封装,抽象为多个接口暴露给开发者,开发者在中开发可信应用时无需关注可信证明部分,用简单的接口完成对程序身份、密钥、策略等内容的证明信息生成与管理,其核心思想主要为三个概念:

1.安全域:可信环境中所有程序代码都有一个与之关联的公钥来标识其身份;

2.认证:对安全域中所有属性进行认证,生成安全证书;

3.信任与策略:程序运行策略通过API进行管理,而不是硬编码至应用程序中。

基于上述思想,可信环境中所有程序身份、策略、度量,公钥均可由可信环境签名背书,而各个程序或策略等可以使用与之身份对应的私钥所涉及的其他部分(如机密信息、运行策略等)进行签名背书,最终形成信任链,完成对可信环境中所有内容的度量验证。由于认证库对上述功能进行了封装,开发者可以根据接口在不同平台上统一部署,利用接口管理与连接安全信道进行通信,做到跨平台度量认证、身份验证、协同计算等。

而认证服务则可以视为一个中心化的安全域管理服务,其本身由策略驱动,可以动态扩展,其主要功能包括对指定程序升级而不影响其他程序、引入新组件而不影响旧组件、实施安全域范围的策略、促进域内共享与迁移等。简单来说,认证服务可以说是对所有使用了认证API的可信程序的统一密钥分发、可信证明验证、策略评估的证书机构,提供类似于CA的功能,如图2所示,注意如果是SEV或TDX这种加密虚拟化技术,则不存在SDK。

图2 认证库与认证服务的关系

四. 总结与展望

可以看出该项目主要目的是为机密计算提供跨平台的、开发者友好的统一认证服务架构,可以更容易的为不同平台的机密计算程序提供统一证明能力,证明范围更为丰富与完善,这种统一的架构有助于多个机密计算参与方在跨平台情况下完成更便捷的信任关系建立与协调计算。该项目在2023年10月5日的报告中指出,目前该项目以支持SGX、AMD-SEV-SNP、ARM CCA、RISC-V Keystone以及未来正式推出的TDX这些机密计算硬件平台。此外,该项目目前也在致力于对GPU机密计算环境的相关证明(目前只提到了针对英伟达的H100),但在程序开发方面,当前示例程序均为C 程序,项目宣传即将完成对python的支持,其他语言的支持情况暂不可知。总体来说,该项目凭借其对跨平台机密计算的支持与完善丰富的证明能力让人眼前一亮,期待该项目在未来能够更加丰富与完善,进一步降低机密计算平台的开发成本。

参考文献

[1]. https://confidentialcomputing.io/

[2]. https://github.com/ccc-certifier-framework/certifier-framework-for-confidential-computing

内容编辑:创新研究院 王拓 责任编辑:创新研究院 陈佛忠

0 人点赞