【机密计算组织】机密计算联盟
机密计算联盟成立于2019年8月22日,由多家企业共同发起,旨在推动机密计算技术的发展。联盟的目标是保护计算数据的安全性,通过硬件和软件技术实现隔离和保护使用中的数据。联盟成员包括阿里巴巴、Arm、百度、谷歌云、IBM、英特尔、微软、红帽、瑞士通和腾讯等。机密计算联盟通过官方文档定义了术语、技术标准和前沿,致力于加速可信执行环境(TEE)等技术的落地应用。联盟还与 Trusted Platform Modules (TPM)、TEE 以及 TCG 的关系进行了探讨,并介绍了多个开源项目,如Enarx、Gramine、Keystone、Occlum、Open Enclave SDK、Veracruz 和 Veraison,展示了机密计算在不同领域的应用和发展潜力。此外,联盟白皮书涵盖了机密计算的技术分析、日志记录和调试方法,以及未来趋势,如人工智能、医疗保健和工业4.0等领域。
一、简介
1.1 机密计算联盟与成员
在2019年8月22日,Linux基金会宣布成立机密计算联盟(Confidential Computing Consortium)。该基金负责监督联盟的各项活动。联盟专注于云服务及硬件生态系统的安全保护,致力于确保计算数据的安全。联盟的创始成员包括阿里巴巴、Arm、百度、谷歌云、IBM、英特尔、微软、红帽、瑞士通和腾讯,而亚马逊则不在其中。
截至到 2023年 7 月,机密计算联盟成员状况如下:
高级会员单位:

普通会员单位:



准会员/联系会员/非正式会员:

机密计算还是比较年轻的技术领域,机密计算联盟 CCC 也刚成立 4 年
1.2 目标
机密计算联盟致力于解决数据隐私方面的担忧,探索硬件与软件结合的技术方案,以在处理计算机内存时实现用户数据的隔离。通过机密计算方案,敏感数据得以避免被其他应用程序、操作系统或服务器租用者暴露。
1.3 官方自定义
对于机密计算联盟,其官方网站描述如下:
由众多专业人士组成的机密计算联盟是一个致力于保护在使用过程中的数据安全的社区组织,通过开放合作模式,加速机密计算技术在实际应用中的推广和普及。
机密计算联盟(CCC)致力于将硬件供应商、云提供商和软件开发人员组织起来,以促进可信执行环境(TEE)相关技术和标准的快速落地和应用。
CCC 是 Linux 基金会的一个重要项目社区,致力于推动机密计算技术的开发和应用。通过观察该社区的开放合作模式,我们可以更深入地理解机密计算的实际应用前景,这种模式有助于提升我们的项目价值。这一项重要的付出,不仅来源于众多成员组织的资源投入,还得到了多个开源项目的支持与协作。
机密计算通过在经过验证的可信执行环境中执行计算来保护数据。这些安全隔离的环境可确保在使用中数据的安全性不受未经授权访问或修改的影响,从而为管理敏感和受监管数据的组织提供安全保证。
在存储和网络传输过程中,数据通常会采用静态加密技术,然而在内存环境中,数据则不进行加密处理。此外,在处理数据和代码时,传统计算基础设施对数据和代码的保护能力相对较低。对于需要处理的敏感数据(包括个人身份信息、财务数据以及运行状态信息等),相关组织需要采取措施以应对针对应用程序或系统内存中数据的机密性和完整性威胁。
二、与 TCG 的关系
The Trusted Computing Group (TCG) establishes comprehensive standards for TPM hardware, categorizing various use-case profiles such as PC clients, mobile devices, and IoT applications, along with their attestation evidence instances, and includes specifications for other hardware-based trust anchors like DICE hardware latches. These specifications complement the TCG's efforts in the Common Criteria (CCC) program, which leverages Trusted Execution Environments (TEEs) that may depend on additional hardware-based trust anchors for booting the system into a secure state where the TEE can operate effectively.
TCG 发布了 TPM 硬件的标准规范,涵盖了 TPM 用例,如 PC 客户端、移动设备和 IoT 设备,各自拥有的配置文件,相应的证明证据,以及涵盖其他基于硬件的信任根,如 DICE 硬件的规范。这些规范与 CCC 工作相辅相成,其中,TEE 依赖于其他信任根来将系统引导至TEE 可以正常运行的安全状态。
TCG 制定通用技术规范,但不负责具体实现。CCC 作为开源项目的中心,整合了 TPM 技术,为机密计算提供了协同优势。
三、与 TPM 的关系
Trusted Platform Modules (TPMs) offer basic functionality such as encryption, signing, and measurement, but they are not general-purpose computing platforms.
The data integrity provided by TPMs is limited to information stored within them, excluding data used for encryption, signing, or measurement purposes.
To ensure data integrity in scenarios involving encryption, signing, or measurement, the component providing such data must implement additional protection mechanisms, such as those found in Read-Only Memory (ROM) or Trusted Execution Environments (TEEs).
[Trusted Platform Module (TPM)](https://trustedcomputinggroup.org/resource/trusted-platform-module-tpm-summary/)提供加密、数字签名以及度量功能,然而,它不具备通用计算能力。
仅限于对其中记录的数据而言,TPM能够提供数据完整性。然而,对于那些被传递给TPM的加密、签名或度量的数据,TPM无法提供数据完整性。
为了满足此类完整性要求,就需要确保将此类数据传递给 TPM 的组件时,其完整性得到保护,例如,可以在 ROM 或 TEE 环境中实现。
四、与 TEE 的关系
A TEE, or Trusted Execution Environment, is a critical component in the realm of confidential computing. It serves as a secure platform for executing computations while ensuring data confidentiality.
TEE 是可信执行环境,是机密计算的关键。
五、CC 当前开源项目
该社区致力于维护数据安全,通过开放协作的方式促进机密计算的普及,热忱欢迎每一位成员,以及符合标准的项目,我们是一个开放透明、协作开放的社区。
5.1 Enarx
Enarx 开发了一个平台抽象,旨在支持构建和运行“私有化、可替代且无需服务器”的应用程序。
5.2 Gramine
Gramine 的主要应用领域之一是为英特尔软件防护扩展(SGX)应用程序提供预装解决方案。通过这一设计,Gramine 不仅解决了相关问题,还显著提升了安全性。此外,Gramine 还可以作为其他平台的兼容层使用。
5.3 Keystone
Keystone 是一个开源开源项目,旨在基于 RISC-V 架构构建安全硬件飞地 Enclave 的可信执行环境 (TEE)。其目标是构建一个安全可靠的开源安全硬件飞地,工业界和学术界的任何人都可以访问。
5.4 Occlum
Occlum支持在Enclave这个飞地内运行应用程序变得容易。它允许人们只需几个简单的指令即可在Enclave这个飞地内运行未经修改的程序。Occlum是一个开源项目,用户可以免费使用。
5.5 Open Enclave SDK
Open Enclave SDK 是一个开源工具库,支持开发者通过单一安全区抽象实现可信执行环境(TEE)的应用程序构建。
5.6 Veracruz
Veracruz致力于探索隐私保护分布式系统设计的领域,并作为研究项目进行。该研究项目基于隔离技术和远程证明协议,旨在为一组互不信任的委托人之间的多方协作计算提供一个中立的基础。
5.6 Veraison
Veraison 项目构建可用于构建证明验证服务的软件组件。
六、机密计算联盟白皮书
6.1 《机密计算通用术语》
Standard-Vocabulary-for-Confidentiality-related-Computing.pdf (confidentialcomputing.io)
6.2 《机密计算:深入探讨数据安全的前沿》
Everest Group’s confidential computing solutions represent the cutting-edge advancements in data security. These innovative approaches are designed to safeguard sensitive information and ensure robust protection in an increasingly digital world. By leveraging the latest technological innovations, Everest Group’s confidential computing solutions are setting new standards in the field of data security.
6.3 《机密计算技术分析 v1.3》
该技术分析首次在2023年3月发布,旨在为Confidential Computing领域的研究者提供深入的分析框架。研究者可以通过该框架对Confidential Computing技术进行系统性评估,从而更好地理解其潜在应用和局限性。该框架的开发基于当前最前沿的算法和计算模型,通过结合多学科理论,为Confidential Computing技术的未来发展提供了重要的理论支持和实践指导。该研究的成果已获得同行评审的认可,并将在下一版本中进一步完善。
6.4 《机密计算:基于硬件可信执行的应用和数据》
该机构发布了名为《Confidential Computing Outreach White Paper》的更新版白皮书,下载链接为https://confidentialcomputing.io/wp-content/uploads/sites/10/2023/03/CCC_outreach_whitepaper_updated_November_2022.pdf,标题为《Confidential Computing Outreach White Paper》(confidentialcomputing.io)
该机构发布了名为《Confidential Computing Outreach White Paper》的更新版白皮书,下载链接为https://confidentialcomputing.io/wp-content/uploads/sites/10/2023/03/CCC_outreach_whitepaper_updated_November_2022.pdf,标题为《Confidential Computing Outreach White Paper》(confidentialcomputing.io)
七、机密计算联盟博客
7.1 机密计算:日志记录和调试(2023.6.14)
开发过程中的一个重要组成部分是调试应用程序,我们采用的一种机制是日志记录:不仅包含应用程序内部(及周边环境)发生事件的详细信息,还能够帮助我们掌握问题所在、管理错误并(在幸运的情况下)观察应用程序的正常运行。由此可见,日志记录不仅在异常处理中发挥作用,而且在正常操作(可被称作“名义”操作)中也具有重要意义。日志条目和错误信息虽然可能非常有价值,但它们也有可能向其他系统提供信息——有时这些信息可能是我们不希望它们了解的。在机密计算环境中,这一现象尤为明显:在保护应用程序及其数据的机密性和完整性时运行程序或工作负载。本文深入探讨了我们在设计机密计算框架、在其中运行的应用程序及其操作时需要考虑的关键问题。文章部分是从Enarx项目的角度撰写的,但主要目的是提供一些具体的示例:这些示例在可能的情况下进行了概括。请注意,本文篇幅较长,主要是因为详细讨论了复杂问题并试图尽可能多地探索替代方案。
基于以下假设,我们不信任该主机。在此上下文中,主机指的是在TEE实例中运行工作负载的计算机,该工作负载被称为机密计算工作负载,简称工作负载。当我们说我们不信任它时,意思是:我们不想让主机通过我们提供的任何信息(包括程序和相关算法)推测正在运行的工作负载,无论是程序本身还是数据。
目前,这一要求具有相当高的强度。特别地,基于目前最先进技术的限制,工作负载的资源利用率无法得到强有力的保护。工作负载无法阻止主机系统使其CPU资源枯竭、运行速度减缓甚至完全停止。这为主机系统提供了许多人为施加的定时攻击机会,而这些攻击难以得到有效的防护。实际上,围绕I/O操作的资源匮乏和监控问题同样与我们的对话内容紧密相关。
除了主动监控资源使用情况外,计算机系统还可以通过观察其网络套接字活动来间接了解工作负载特征,无需采取任何主动措施。例如,当计算机检测到一个工作负载创建了一个外部网络套接字时,它会开始监控通过该套接字传输的数据。观察到这些数据全部采用TLS加密后,计算机可能无法直接读取数据,但可以推断出该套接字在短暂时间内开启的活动与密钥生成过程相关。这些信息足以使计算机进行被动或主动攻击,从而降低密钥强度。
这些信息并不令人鼓舞,但为了深入分析,我们扩展思维到工作负载的正常操作之外,包括一般的调试和更具体的错误处理。为了便于理解,我们假设一个租户独自运行一个客户端进程(被视为受信任,与主机环境不同),并且主机上的 TEE 实例分为四个层次,包括与工作负载相关联的部分。这种结构可能不适用于所有场景,但提供了一种有用的框架,能够涵盖大多数潜在问题。该体系结构为云工作负载的部署建模提供了参考。

这些层可以这样定义:
- 应用程序层 – 应用程序本身,它可能会也可能不知道它在 TEE 实例中运行。对于许多用例,从主机的租户/客户端的角度来看,这就是上面定义的工作负载。
- 运行时层 – 运行应用程序的上下文。TEE 类型和实现之间的考虑方式可能会有很大差异,在某些情况下(例如,工作负载是完整的 VM 映像,包括应用程序和操作系统),此层和应用程序层之间可能几乎没有区别(工作负载包括两者)。然而,在许多情况下,运行时层将负责加载应用程序层 - 工作负载。
- TEE 加载层 – 负责至少将运行时层以及可能的其他一些组件加载到 TEE 实例中的层。其中的某些部分可能存在于 TEE 实例之外,但其他部分(例如 VM 的 UEFI 加载程序)可能存在于其中。出于这个原因,我们可以选择在此层中将“TEE 内部”与“TEE 外部”组件分开。对于许多实现,一旦运行时启动,此层可能会消失(停止运行并从内存中删除)。
- TEE 执行层 – 负责在其上实际执行运行时并与主机通信的层。与 TEE 加载层一样,这可能存在于两个部分 – 一个在 TEE 实例内,另一个在 TEE 实例外部(再次,“TEE 内部”和“TEE 外部”。
此处显示了相对生命周期的示例。

在应用程序层,通过数据平面与TEE外部的其他应用程序组件进行通信,这些组件可能包括租户控制下的组件,其中一些组件可能安装在客户端设备上。从应用程序的角度来看,这些组件中的一些将被视为受信任的,并且这些通信通道至少通常需要加密,以防止主机访问数据(其他可能也需要加密)。这些通道的详细配置方式因实现而异,但应用程序级别的错误和日志记录应通过这些通信通道进行,因为它们与应用程序的操作直接相关。这是最简单的情况,只要外部组件的通道可用即可。无论出于何种原因,如果这些通道不再可用,应用程序可以选择存储日志记录信息以供以后传输(如果可能)或将可能的错误状态传递给运行时层。此外,应用程序还可以选择将其他运行时错误或认为与运行时相关或可能相关的应用程序错误传递给运行时层。
运行时层可能可以访问应用程序层未直接暴露的外部通信通道。实际上,如果它负责管理运行时层的加载和执行,这可以被视为 控制平面 的角色。由于运行时层负责应用程序的执行,因此需要确保其不受主机影响,并完全嵌入到 TEE 实例中。它还可以访问与应用程序层相关的信息(可能包括应用程序直接传递给它的日志记录和错误信息),这些信息也需受主机保护(机密性和完整性方面),因此,运行时层与外部各方的任何通信都必须加密。运行时层向主机报告错误可能存在诱惑,但这种做法非常危险。运行时层与主机之间的通信对于执行至关重要,无论是通过系统调用还是其他机制。在当前模型中,这些通信由 TEE执行层 处理。
参考内容:机密计算领域的日志记录与调试实践,可访问于https://confidentialcomputing.io/2023/06/14/confidential-computing-logging-and-debugging/,机密计算联盟(confidentialcomputing.io)
八、机密计算趋势
2022 年 IEEE 技术预测中,机密计算是数据安全领域唯一入选的技术:
- 数据驱动型人工智能
- 远程医疗技术
- 健康、安全与可穿戴生物医学技术
- 关键基础设施网络安全
- HPC与AI联合应用
- 边缘AI驱动联邦学习
- 医疗保健领域的三维打印技术
- 智能自主系统的可靠、安全与弹性
- 数字孪生技术在制造业中的应用
- 可信赖的人工智能技术
- 假设信息的检测与纠正
- 商品化太空旅行技术
- 低代码/无代码编程平台
- 无法替代的代币
- 元宇宙空间
- 机密计算技术
网页链接:
2022年技术展望 – IEEE未来方向
皮格马利翁效应心理学指出,赞美、赞同能够产生奇迹,越具体,效果越好~
“收藏夹吃灰”是学“器”练“术”非常聪明的方法,帮助我们避免日常低效的勤奋~
