初识机密计算(Confidential Computing)
什么是机密计算?
Data in Transit,网络传输过程中的数据,传输状态;
Data at Rest,数据在磁盘和处于存储过程中的数据,存储状体;
Data in use,处于内存中,处于计算中的数据,其为使用状态。
对于数据的安全,专家和业界在过去几十年的努力使得传输过程中的数据安全得到了保障,比如数据链路层加密,各种各样的传输协议加密的使用,对于存储中的数据安全,很多数据库、文件系统或者磁盘也是可以直接加密的,但是不管数据是在传输状态中还是在存储的时候加密,数据在最终使用的时候,在 CPU 和内存里的数据都是明文。这些使用中的明文要不要保护,答案是肯定的,而且是迫切的,因为针对网络和存储设备的安全威胁,越来越多的安全技术被开发出来应对和保护,基于这种阻碍,攻击者已转向以使用中的数据为目标,机密计算就是针对这种威胁模型而来的,来对数据在使用状态中的保护。
随着云计算的大规模部署,机密计算旨在允许将云提供商从可信计算基础(TCB)中移除,以便只有硬件和受保护的应用程序本身在可信边界内。这使得云客户放心的,安全的把业务负载转移到公有云上去。而机密计算正在迅速发展,为企业和最终用户不断提供新的工具以保护敏感数据和代码免受执行期间发生威胁。
同时,机密计算解决方案提供商为机密计算开发了不同的方法,例如把应用程序的代码划分为受信任和不受信任的组件,再到几乎不做更改的情况下实现现有应用程序的迁移。这些不同的方法支持不同的应用场景,但最终目标都是希望帮助确保敏感数据、代码、工作负载的机密性和完整性。
机密计算依赖硬件
实现机密计算,硬件辅助是必要的。说到机密计算(Confidential Computing),不得不先说可信执行环境(Trust Execution Environment),简称 TEE。TEE 被定义为提供一定级别的数据完整性、数据机密性和代码完整性保证的环境,具有运算和储存功能。
其基本思想是:在硬件中为敏感数据单独分配一块隔离的内存,确保敏感数据的计算在这块内存中进行,并且除了经过授权的接口访问之外,硬件中的其他部分并不能够访问这块内存中的数据,以此来实现敏感数据的隐私计算。机密计算是通过在基于硬件的可信执行环境中执行计算来保护使用中的数据,对以下三个属性提供一定程度的保证:
数据机密性:未经授权的实体无法查看在 TEE 内使用中的数据。
数据完整性:未经授权的实体不能添加、删除或更改在 TEE 中使用的数据。
代码完整性:未经授权的实体不能添加、删除或更改 TEE 中执行的代码。
根据具体 TEE 的技术实现情况,它还可以提供代码机密性、经过身份验证的启动、可编程性、可认证性和可恢复性。在机密计算定义范畴中,未经授权的实体可能包括主机(Host)上的其他应用程序、主机操作系统(Host OS)和虚拟机监控程序 (VMM)、系统管理员、云服务提供商、基础设施所有者或对硬件具有物理访问权限的任何其他人。
基于硬件的 TEE 使用硬件支持技术,为该环境中的代码执行和数据保护能够提供更高的安全保障。构建基于硬件的 TEE,对其基本的硬件需求有三个方面:
其一,要实现基于硬件隔离的空间。隔离的目的有两个,一个是保证数据的机密性,另一个是保证数据的完整性。要保证数据不能被他人获取,同时也要保证数据不能被他人修改,而这两种目的都是靠硬件来实现的。
其二,隔离之后,还必须要有硬件可信根。比如在硬件出厂的时候烧录一些硬件的关键登记信息,唯一的设备密钥和相应证书,所有的安全启动和验证等过程都是从硬件可信根开始的。如果没有把信任根植入到受保护的硬件里面去,就达不到 TEE 的基本需求。
其三,验证(attestation ),在做完隔离和硬件可信根之后,对于系统部署在云上的,还需要把业务负载如代码,数据等上传到云上运行,如何确保代码和数据是运行在 TEE 里面,是需要一个基于密码学的证明方式的,必须通过获取相关的证据去验证代码和数据确实是运行在 TEE 里的,这就是 TEE 验证的需求。
基于硬件的TEE技术方案
基于硬件的虚拟机隔离技术要解决的是保护来自客户机 Guest 对云主机 host 的安全威胁,而机密计算要应对的是来自云主机和基础设施对客户机 Guest 以及运行在上面的容器业务的安全威胁。
机密计算的使用场景
机密计算技术正在迅速发展,为企业和最终用户提供新的工具,保护敏感数据和代码免受数据执行期间受到安全威胁,这些威胁以前很难得到保护,尤其伴随公有云、云边协同以及区块链的规模应用,机密计算的应用场景也越来越多,如下是几个比较常用用例:
1.密钥(Keys)、秘密(Secrets)、凭证(Credentials)和令牌(Tokens )的安全存储和处理
云计算关键信息资产的存储和处理需要一个符合安全标准的硬件安全模块如 Hardware Security Module (HSM),但是传统 HSM 硬件的专有性质增加了它们的成本,限制了它的可扩展性,并为在云计算和边缘计算环境中部署带来了成本和兼容性挑战。
不管是独立软件供应商(ISV),还是云计算提供商(CSP),机密计算都已经被用于数据中心、私有云、公共/混合云中,甚至在物联网用例的网络边缘存储和处理加密和机密信息使用标准化的计算基础设施。使得密钥管理应用程序在基于硬件的 TEE 中存储和处理加密密钥、机密和令牌,提供数据机密性、数据完整性和代码完整性更加灵活。
2.公有云 Public Cloud
在公有云场景中,信任必须放在云提供商的多个层面上:硬件,核心和外围设备的固件;主机操作系统、虚拟机管理器程序和云编排系统本身。虽然公有云提供商在竭尽全力保护该堆栈的所有层,但机密计算提供了额外的保护保证,并通过基于硬件的 TEE 保护正在使用的应用程序和数据,显著减少了最终用户必须信任的层数,对于未经授权的参与者来说,要获得对受保护的应用程序代码和数据的访问权限变得更加困难,即使他们拥有对硬件的物理访问权限、对主机操作系统或虚拟机监控程序的 root 访问权限,或对编排系统的特权访问权限。
机密计算旨在允许将云提供商从可信计算基础中移除,以便只有硬件和受保护的应用程序本身才在攻击边界内。这使得许多工作负载能够转移到公共云上,而以前由于安全问题或法规遵从性要求,这些工作负载无法转移到公共云上。
3.区块链 Blockchain
区块链是一个共享的、不变的分类账,记录参与者网络之间的数据、数字资产或货币交换。区块链提供了记录和验证交易的基础设施,而无需集中的第三方。区块链可以为供应链活动提供透明度,促进数字资产的交换,或支持合规流程,如实名认证 Know Your Customer(KYC)。
区块链的一个关键特征是,它确保应该有一段共同数据的参与者确信他们看到的是相同的东西,并且一旦进入区块链,数据是不变的。应由应用程序开发人员确保 PII 等敏感数据不存储在不可变的区块链上。机密计算可用于增强基于区块链的系统的实施。通过结合机密计算和区块链技术的能力,用户可以利用基于硬件的 TEE 提供认证和验证服务,优化可扩展性、隐私和安全性。区块链用户之间数据一致性的保证通常取决于各方独立验证所有当前数据有效性所依赖的历史数据。这需要了解这些历史数据集,这是一个潜在的可扩展性或隐私问题。用户可以在基于硬件的 TEE 中执行智能合约,而不是自己独立访问和验证历史数据和相关智能合约。一旦交易完成,TEE 将提供认证服务,以证明交易的可靠性,这意味着后续参与者无需再次为自己进行验证。基于 TEE 的认证服务还可以帮助解决协商一致协议带来的一些计算和通信效率低下的问题。
4.边缘云与物联网 Edge and IOT
在家庭路由器中进行 DDoS 检测的情况下进行本地搜索和过滤,这些都是机密计算环境非常适合的例子。在大多数情况下,TCP/IP 数据包元数据需要保密,因为可能会推断出敏感的用户行为。其他示例包括边缘机密机器学习处理,例如用于减少后端网络延迟和/或带宽的视频元数据生成;摄像头监控,供应商需要加载相关人员的模板,如果泄露可能会造成伤害;机密计算技术可用于帮助缓解依赖于对设备的物理访问的攻击。
文章来源:本文转载自InfoQ。 作者:英特尔,审校:万佳
往期推荐
欢迎投稿邮箱:pet@openmpc.com参与更多讨论,请添加小编微信加入交流群