机密计算有什么用?

安安 16

机密计算指使用基于硬件的可信执行环境对使用中的数据提供保护。 通过使用机密计算,我们现在能够针对在上一节中所描述的许多威胁提供保护。

什么是可信执行环境?

可信执行环境(TEE)通常被定义为能够提供一定程度的数据完整性、数据机密性和代码完整性保证的环境。基于硬件的TEE使用硬件支持的技术为代码的执行和环境中数据的保护提供了更好的安全性保证。

在机密计算的上下文中,未经授权的实体可以包括主机上的应用程序、主机操作系统和Hypervisor、系统管理员、服务提供商、基础设施所有者或对硬件具有物理访问权限的任何其他人。机密计算中的数据机密性指的是这些未经授权的实体无法查看在TEE中使用的数据;机密计算中的数据完整性指的是防止未经授权的实体篡改正在处理中的数据;机密计算中的代码完整性意味着TEE中的代码不能被未经授权的实体替换或修改。 总之,这些安全属性不仅保证了数据的机密性,而且还保证了所执行的计算是符合预期的,从而使人们可以相信计算的结果。上述这些保证在不使用基于硬件的TEE中往往是缺失的。

下面的表格将典型的基于硬件的TEE实现与可信平台模块(TPM)以及新兴的同态加密方案进行了比较:

基于硬件的TEE 同态加密 TPM
数据完整性 Y Y 只有密钥受到保护
数据机密性 Y Y 只有密钥受到保护
代码完整性 Y N Y
代码机密性 Y N Y
可编程性 Y 部分可编程 N
不可欺骗性/可恢复性 Y N Y
可证明性 Y N Y

在实践中,上述安全属性是否全部可用取决于供应商、模型和算法,但前三点能够特别突出地反映出各方案在安全性上的关键区别。例如,典型的TPM能够保护密钥,但其本身不能保证由这些密钥签名或加密的数据的有效性,并且TPM的逻辑是不可编程的;而TEE是可编程的,并且还能够保护其中的代码及数据。典型的同态加密算法可以保护任意数据,但其本身不能确保操作的正确性,也不能确保其代码本身没有被篡改;而TEE可以同时保护数据和代码。这些技术通常是互补的,甚至可以组合起来形成一个更为强大的安全解决方案。

根据TEE的具体情况,它还能提供:

  • 代码机密性:除了保护数据外,一些TEE还可以保护代码在使用过程中不会被未经授权的实体看到。例如,保护被认为是敏感知识产权的算法代码。
  • 经过认证的启动:一些TEE可能强制要求在启动进程之前必须执行必要的授权或认证检查,同时还可以拒绝启动未经授权或认证的进程。
  • 可变成性:一些TEE可以用任意代码编程,而有些TEE可能只支持有限的一组操作;有的TEE甚至可能包含或完全由生产时固化的代码组成。
  • 可恢复性:一些TEE可能提供从不合规或潜在受损的状态中恢复的机制。例如,如果确定固件或软件组件不再满足合规要求,并且启动认证机制也运行失败了,则可以更新该组件并重试/恢复启动。可恢复性通常要求TEE的某些组件必须永远保持可信,只有这样才能保证当更新其他组件时,该组件可以充当“信任根”。
  • 可证明性:通常TEE可以提供其起源和当前状态的证据或度量值,以便让另一方进行验证,并决定是否信任TEE中运行的代码。最重要的是,此类证据是由硬件签名,并且制造商能够提供证明,因此验证证据的一方就可以在一定程度上保证证据是可靠的,而不是由恶意软件或其他未经授权的实体生成的。

在当前基于硬件的TEE的安全威胁模型中,是不解决可用性问题(如DoS或DDoS攻击)的。软件和服务提供商可以为这类攻击提供相应的解决方案。

为什么硬件对机密计算来说是必要的?

整个计算栈中每一层的安全强度都必须至少与它下面一层的安全强度一样,因为计算栈的任何一层的安全性都可能被底层的漏洞所规避。这就需要在尽可能低的层次上提供更为彻底的安全解决方案,直至硬件层。利用最底层硬件所能提供的安全性,在保持最小信任依赖的情况下,可以将操作系统和设备驱动程序供应商、平台和设备供应商、服务提供商及管理员从需要信任的实体列表中删除,从而减少潜在的风险。

为了减少机密计算环境对专有软件的依赖,机密计算联盟将只实现了基于软件信任根的TEE排除在关注范围之外,而只将机密计算环境的关注重点放在了基于硬件的安全保障上。

本文内容来源于机密计算联盟发布的白皮书Confidential Computing: Hardware-Based Trusted Execution for Applications and Data v1.2

回复

我来回复
  • 暂无回复内容

已关闭回复。
联系我们

联系我们

18055100335

在线咨询:点击这里给我发消息

邮件:support@anyong.net

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
关注微信
分享本页
返回顶部