【机密计算组织】机密计算联盟

news2024/12/23 13:38:16

一、简介

1.1 机密计算联盟与成员

2019年8月22日,Linux基金会宣布多家巨头企业组建“机密计算联盟”(Confidential Computing Consortium),该基金将负责对联盟活动进行监督。机密计算联盟专门针对云服务及硬件生态,致力于保护计算数据安全。联盟创始成员包括阿里巴巴、Arm、百度、谷歌云、IBM、英特尔、微软、红帽、瑞士通和腾讯,不包括全球最大的云服务器运营商亚马逊。

截至到 2023年 7 月,机密计算联盟成员状况如下:

高级会员单位:

 普通会员单位:

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

机密计算还是比较年轻的技术领域,机密计算联盟 CCC 也刚成立 4 年 

1.2 目标

机密计算联盟致力于解决人们对于数据隐私的担忧问题,寻求基于硬件和软件的技术解决方案,用以在处理计算机内存时隔离用户数据。通过机密计算方案,敏感数据能免于被暴露给其他应用程序、操作系统或者服务器租用者。

1.3 官方自定义

对于机密计算联盟,其官方网站描述如下:

机密计算联盟是一个社区,专注于一些保护使用中数据的项目,通过开放合作,加速机密计算技术的落地应用。

机密计算联盟 (CCC) 将硬件供应商、云提供商和软件开发人员聚集在一起,以加速可信执行环境 (TEE) 相关技术和标准的落地使用。

CCC 是 Linux 基金会的一个项目社区,致力于定义和加速机密计算的使用。从中我们能看到开放的管理和合作,这更有助于让我们的付出得到回报。这项付出包括来自众多成员组织的投入以及来自几个开源项目的贡献。

机密计算通过在基于硬件、经过验证的可信执行环境中执行计算来保护使用中的数据。这些安全隔离的环境可防止在使用中未经授权访问或修改应用程序和数据,从而为管理敏感和受监管数据的组织提供安全保证。

如今,数据通常在存储和通过网络传输时进行静态加密,但在内存中使用时则不加密。此外,在使用数据和代码时,保护数据和代码的能力在传统计算基础设施中受到限制。处理敏感数据(如个人身份信息 (PII)、财务数据或运行状况信息)的组织需要缓解针对应用程序或系统内存中数据的机密性和完整性的威胁。

二、与 TCG 的关系

The TCG publishes standard specifications for the TPM hardware, the various profiles for TPM use-cases (e.g., PC client, mobile, IoT), their attestation evidences, and specifications covering other forms of hardware-based roots of trust (e.g., DICE hardware latches). These specifications complement the effort in the CCC that make use of TEEs that may be reliant on other hardware-based roots of trust for booting the system into a safe state where the TEE can function correctly.

TCG 发布 TPM 硬件的标准规范、TPM 用例(例如 PC 客户端、移动、IoT)的各种配置文件、其证明证据以及涵盖其他形式的基于硬件的信任根(例如 DICE 硬件)的规范。这些规范和 CCC 工作互补,CCC 使用的 TEE 会依赖其他信任根来将系统引导到TEE 可以正常运行的安全状态。

TCG 发布通用标准规范,但不生成规范的实现。CCC 是开源项目的大本营,这里相关的开源项目能够对使用 TPM 进行机密计算的组织形成优势互补。

三、与 TPM 的关系

Trusted Platform Modules (TPMs) provide basic functionality such as encryption, signing, and measuring, but are not general purpose computing environments.

TPMs can provide data integrity only for data which is recorded inside them, but not for the data that is passed to a TPM for purposes of encryption, signing, or measuring.   Ensuring such integrity requires the component passing such data to the TPM to also have integrity protection, such as being implemented in ROM or a TEE.

受信任的平台模块 (TPM) 提供加密、签名和度量等基本功能,但不是通用计算环境。

TPM 只能为其中记录的数据提供数据完整性,但不能为传递给 TPM 加密、签名或度量的数据提供数据完整性。

确保此类完整性要求,就要求传递此类数据给 TPM 的组件具有完整性保护,例如在 ROM 或 TEE 中实现。

四、与 TEE 的关系

A TEE is a Trusted Execution Environment and is key to confidential computing

TEE 是可信执行环境,是机密计算的关键。

五、CC 当前开源项目

一个专注于开源许可项目的社区,保护使用中的数据,并通过开放式协作加速机密计算的采用,欢迎每个成员、欢迎每个符合我们标准的项目,我们是一个透明、协作的社区。

5.1 Enarx

Enarx 为可信执行环境(TEE)提供了一个平台抽象,支持创建和运行“私有,可替代,无服务器”的应用程序。

5.2 Gramine

Gramine 的一个主要用例就是为英特尔软件防护扩展 (SGX)应用程序开发提供开箱即用。Gramine解决了这个问题,并增加了安全优势,Gramine可以作为其他平台上的兼容层。

5.3 Keystone

Keystone 是一个开源项目,用于基于 RISC-V 架构构建具有安全硬件飞地 Enclave 的可信执行环境 (TEE),目标是建立一个安全可靠的开源安全硬件飞地,工业界和学术界的每个人都可以访问。

5.4 Occlum

Occlum 使在飞地 Enclave 内运行应用程序变得容易。它允许人们只需几个简单的命令即可在飞地内运行未经修改的程序。Occlum是开源的,可以免费使用。

5.5 Open Enclave SDK

Open Enclave SDK 是一个开源框架,允许开发人员使用单个安全区抽象构建可信执行环境 (TEE) 应用程序。

5.6 Veracruz

Veracruz 是一个探索隐私保护分布式系统设计的研究项目。Veracruz 使用强大的隔离技术和远程证明协议来建立一个“中立基础”,在该基础中,一组不信任的委托人之间进行协作的多方计算。

5.6 Veraison

Veraison 项目构建可用于构建证明验证服务的软件组件。

六、机密计算联盟白皮书

6.1 《机密计算通用术语》

Common-Terminology-for-Confidential-Computing.pdf (confidentialcomputing.io)

6.2 《机密计算:数据安全前沿》

Everest Group - Confidential Computing – The Next Frontier in Data Security

6.3 《机密计算技术分析 v1.3》

https://confidentialcomputing.io/wp-content/uploads/sites/10/2023/03/CCC-A-Technical-Analysis-of-Confidential-Computing-v1.3_unlocked.pdf

6.4 《机密计算:基于硬件可信执行的应用和数据》 

CCC_outreach_whitepaper_updated_November_2022.pdf (confidentialcomputing.io)

七、机密计算联盟博客

7.1 机密计算:日志记录和调试(2023.6.14)

调试应用程序是开发过程的重要组成部分,我们使用的机制之一是日志记录:提供有关应用程序内部(和周围)发生的事情的额外详细信息,以帮助我们了解问题,管理错误并(当我们幸运时!)监视正常运行。因此,日志记录不仅对异常有用,而且对正常(“名义”)操作也很有用。日志条目和其他错误消息可能非常有用,但它们也可以向其他方提供信息 - 有时是您希望他们没有的信息。当您考虑机密计算时尤其如此:在您真正希望保护应用程序及其数据的机密性和完整性的环境中运行应用程序或工作负载。本文探讨了我们在设计机密计算框架、在其中运行的应用程序及其操作时需要考虑的一些问题。它部分是从Enarx项目的角度编写的,但这主要是为了提供一些具体的例子:这些例子在可能的情况下被概括了。请注意,这是一篇相当长的文章,因为它详细讨论了一些复杂的问题,并试图检查尽可能多的替代方案。

首先,让我们提醒自己关于机密计算的一个基本假设,即您不信任主机。在此上下文中,主机是在 TEE 实例中运行工作负载的计算机 - 机密计算工作负载(或简称工作负载)。当我们说我们不信任它时,我们的意思是:我们不想向主机泄露任何可能允许它(主机)推断有关正在运行的工作负载的信息的信息,无论是程序本身(和任何关联的算法)还是数据。

现在,这是一个相当高的要求,特别是考虑到目前最先进的技术不允许对工作负载的资源利用率进行强有力的保护。工作负载无法阻止主机系统使其缺乏 CPU 资源,减慢速度,甚至完全停止运行。这为主机提供了许多人为施加的定时攻击的机会,而这些攻击很难保护。事实上,围绕 I/O 还有其他类型的资源匮乏和监控,这也与我们的对话密切相关。

除此之外,主机系统还可以尝试通过监视其资源利用率来推断有关工作负载的信息,而无需任何主动干预。举个例子,假设主机注意到工作负载创建了一个到外部地址的网络套接字。它(主机)开始监视通过此套接字发送的数据,并注意到这些数据全部使用 TLS 加密。主机可能无法读取数据,但它可能能够推断出套接字打开后的特定短时间活动突发对应于加密密钥的生成。这些信息本身可能足以让主机进行被动或主动攻击,以削弱此密钥的强度。

这些都不是好消息,但让我们将我们的思维扩展到工作负载的正常操作之外,并考虑一般的调试和更具体的错误处理。为清楚起见,我们将假定一个租户在单独的计算机上具有客户端进程(被视为受信任,与主机不同),并且主机上的 TEE 实例有四个层,包括关联的工作负载。这可能不适用于所有应用或设计,但是一种有用的概括,涵盖了可能出现的大多数问题。此体系结构为云工作负载部署建模。

这些层可以这样定义:

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

此处显示了相对生命周期的示例。

应用程序层通常通过数据平面与 TEE 外部的其他应用程序组件进行通信,包括租户控制下的组件,其中一些组件可能位于客户端计算机上。从应用程序的角度来看,其中一些将被视为受信任的,并且这些至少通常需要加密的通信通道,以便主机无法窥探数据(其他可能也需要加密)。这些通道的确切设置方式因实现而异,但应用程序级错误和日志记录应使用这些通信通道,因为它们与应用程序的操作相关。这是最简单的情况,只要外部组件的通道可用即可。无论出于何种原因,如果它们不再可用,应用程序都可以选择存储日志记录信息以供以后传输(如果可能)或将可能的错误状态传达给运行时层。应用程序还可以选择将其他运行时错误或它认为与运行时相关或可能相关的应用程序错误传达给运行时层。

运行时层可能可以访问应用程序层没有的外部各方的通信通道 - 事实上,如果它正在管理运行时层的加载和执行,这可以被视为控制平面。由于运行时层负责应用程序的执行,因此需要保护它免受主机的影响,并且它完全驻留在 TEE 实例中。它还可以访问与应用程序层相关的信息(可能包括应用程序直接传递给它的日志记录和错误信息),这些信息也应受到主机的保护(在机密性和完整性方面),因此它与外部各方的任何通信都必须加密。可能会有一种诱惑,认为运行时层应该向主机报告错误,但这很危险。很难控制将传递哪些信息:不仅是主要信息,还有推断信息。当然,运行时层和主机之间确实需要通信才能允许执行 - 无论是系统调用还是其他机制 - 但在此处描述的模型中,这是由TEE执行层处理的。

 更多参考 机密计算:日志记录和调试 – 机密计算联盟 (confidentialcomputing.io)

八、机密计算趋势

2022 年 IEEE 技术预测中,机密计算是数据安全领域唯一入选的技术:

  • 以数据为中心的人工智能
  • 远程医疗
  • 健康、安全和可穿戴生物医学技术
  • 关键基础设施的网络安全
  • HPC/AI/HPDA 的融合
  • 边缘 AI 提供联邦学习
  • 医疗保健领域的 3D 打印
  • 智能自主系统的可靠性、安全性和弹性
  • 制造业中的数字孪生
  • 值得信赖的人工智能
  • 虚假信息检测和纠正
  • 太空旅行的商品化
  • 低代码/无代码编程
  • 不可替代代币
  • 元宇宙
  • 机密计算

网页链接:

2022 Technology Predictions – IEEE Future Directions

皮格马利翁效应心理学指出,赞美、赞同能够产生奇迹,越具体,效果越好~
“收藏夹吃灰”是学“器”练“术”非常聪明的方法,帮助我们避免日常低效的勤奋~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/761377.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot中注入ServletFilterListener

1.基本介绍 文档:SpringBoot中注入Servlet&Filter&Listener 考虑到实际开发业务非常复杂和兼容问题,SpringBoot支持将Servlet、Filter、Listener注入spring容器中,成为Spring Bean也就是说,SpringBoot开放了和原生WEB组件…

关于初识MySQL数据库以及MySQL的基本使用

文章目录 什么是数据库什么是MySQL为什么要有数据库 MySQL基本使用连接mysql查看当前服务器对应的数据库创建数据库进入某个数据库建立一张表向表中插入数据查询表中的数据 服务器,数据库,表之间的关系数据逻辑存储MySQL架构SQL语句分类存储引擎 什么是数…

vue-cesium的基本使用【一】

最近的项目中用到了cesium,也了解了一点关于cesium的知识,打点、 标绘、等等基础的功能点,但是在开发过程中使用原生的cesium编写对于初学者还是有点难度,为此,找到关于对cesium进行二次封装的开源项目vue-cesium,本次文章主要记录…

Git原理与基本操作(含安装教程)

Git Git初识Git安装Linux-centosLinux-ubuntu Git基本操作git int配置Git 认识⼯作区、暂存区、版本库添加⽂件--场景⼀git add、git commitgit log 查看.git⽂件git cat-file 添加⽂件--场景⼆修改⽂件git statusgit diff [file]、git diff HEAD -- [file] 版本回退git resetg…

聊一下2023前端状况

2023已过大半,也是疫情后开放的第一年,想必大家都能感受到 各行各业一定程度上都在萎缩,线下一些工厂招聘,喊着90年以前的,可以回家了的 今年出现频率最高的一词就是裁员,失业,大学生慢就业 互联…

【从零开始学习Linux】背景知识与获取环境

哈喽,哈喽,大家好~ 我是你们的老朋友:保护小周ღ 本期给大家带来的是 Linux 操作系统的简介,以及如何获取一个Linux 的环境,作为Linux 章节起始篇,如果不妥之处,欢迎批评指正~ 本期收录于博主…

谷粒商城第二篇服务功能-商品服务-三级分类

商品服务三级分类工程初始化及查询搭建 在数据库中插入数据 1.controller类 RestController RequestMapping("product/category") public class CategoryController {Autowiredprivate CategoryService categoryService;/*** 查出所有分类以及子分类,…

前端Vue自定义可自由滚动新闻栏tabs选项卡标签栏标题栏组件

随着技术的发展,开发的复杂度也越来越高,传统开发方式将一个系统做成了整块应用,经常出现的情况就是一个小小的改动或者一个小功能的增加可能会引起整体逻辑的修改,造成牵一发而动全身。 通过组件化开发,可以有效实现…

vue3.0之组合API有哪些(详解)

vue3.0之组合API有哪些 一、setup函数二、生命周期三、reactive函数四、toRef函数五、toRefs函数六、ref函数七、知识运用案例八、computed函数九、watch函数十、ref属性十一、父子通讯1.父传子2.子传父 十二、依赖注入十三、补充 v-model语法糖(简写)十四、补充 mixins语法 一…

【档案专题】三、电子档案管理系统

导读:主要针对电子档案管理系统相关内容介绍。对从事电子档案管理信息化的职业而言,不断夯实电子档案管理相关理论基础是十分重要。只有通过不断梳理相关知识体系和在实际工作当中应用实践,才能走出一条专业化加职业化的道路,从而…

el-cascader级联选择器那些事

el-cascader级联选择器那些事 1、获取选中的节点及其所有上级 vue3element-plusts 1、获取选中的节点及其所有上级 使用cascader组件提供的getCheckedNodes() <el-cascader :options"options" :show-all-levels"false" change"changeCascader&q…

cocosCreator笔记 之Spine了解

版本&#xff1a; 3.4.0 参考&#xff1a; Spine 骨骼动画资源 Spine Skeleton组件 cocosLua 之 骨骼动画 简介 使用spine动画&#xff0c;cocosCreator目前支持的版本&#xff1a; creator版本spine版本V3.0 及以上v3.8&#xff08;原生平台不支持特定版本 v3.8.75&…

北京银行发放门头沟区首笔知识产权质押贷款

6月&#xff0c;位于北京中关村门头沟科技园、专注于研制工业母机的民营企业——北京精雕科技集团有限公司&#xff08;以下简称“精雕科技集团”&#xff09;&#xff0c;因生产经营急需资金&#xff0c;但是由于缺乏抵押物而陷入了融资困境。“精雕科技集团与北京银行合作已长…

java习题3

292. Nim 游戏 难度简单 你和你的朋友&#xff0c;两个人一起玩 Nim 游戏&#xff1a; 桌子上有一堆石头。你们轮流进行自己的回合&#xff0c; 你作为先手 。每一回合&#xff0c;轮到的人拿掉 1 - 3 块石头。拿掉最后一块石头的人就是获胜者。 假设你们每一步都是最优解。…

Slf4j日志集成

Slf4j日志集成 下面就是集成步骤&#xff0c;按着做就可以了 1、logback-spring.xml 哪个服务需要记录日志就将在哪个服务的resource下新建logback-spring.xml文件&#xff0c;里面的内容如下&#xff1a; <!-- 级别从高到低 OFF 、 FATAL 、 ERROR 、 WARN 、 INFO 、 …

微软宣布Win10准备热烈的迎接Docker

在DockerCon 2017大会上&#xff0c;Docker团队今天宣布了LinuxKit&#xff0c;这是一个安全、干净和便携式的Linux子系统container容器环境。LinuxKit允许工具构建自定义的Linux子系统&#xff0c;可以仅包含完全运行时平台的组件需要。所有的系统服务都是可替换的容器&#x…

Leetcode-每日一题【25.k个一组翻转链表】

题目 给你链表的头节点 head &#xff0c;每 k 个节点一组进行翻转&#xff0c;请你返回修改后的链表。 k 是一个正整数&#xff0c;它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍&#xff0c;那么请将最后剩余的节点保持原有顺序。 你不能只是单纯的改变节点内…

xml2json xml转换成json PHP phpstorm

phpstorm 的插件 xml2json快速实现 xml转换成json 1&#xff0c;先安装好Phpstorm 2 二、好用的插件 进入设置页面&#xff0c;快捷键CtrlAlts&#xff0c;或者Files->settings 作者是meizu &#xff0c;应该是魅族公司&#xff0c;贡献的插件

【C语言进阶技巧】探秘字符与字符串函数的奇妙世界

【C语言进阶技巧】探秘字符与字符串函数的奇妙世界 1. strlen函数1.1 strlen函数的使用介绍1.2 strlen函数的模拟实现1.2.1 计数法&#xff08;使用临时变量&#xff09;1.2.1 递归法&#xff08;不使用临时变量&#xff09;1.2.3 指针减指针的方法 2. strcpy函数2.1 strcpy函数…

rust

文章目录 rustCargoCreating a rust project How to Debug Rust Programs using VSCodebasic debuggingHow to pass arguments in Rust debugging with VS Code. References rust Cargo Cargo is a package management tool used for downloading, compiling, updating, and …