过去,安全措施主要都集中在保护静态数据或对数据进行加密传输上。实际上,在数据库中、在LAN/WAN上和通过5G网络传输时都会对数据进行加密,这也是所有此类系统的关键组成部分。几乎所有的计算系统(甚至是智能手机)都内置有数据加密功能,并通过处理器芯片中的专用计算引擎来强化数据加密功能。
但是,如果一个居心叵测的用户通过恶意应用程序或旁道入侵的方式访问设备硬件,那么以上加密功能都将变得苍白无力,而这却是一个相对被忽视的领域。在处理加密数据时,我们必须清楚这是一个真正的漏洞。如果此时可以访问机器内存,那么所有的数据都可以被轻松查看/复制。“机密计算”(CC)的初衷就是要消除这种风险隐患。
什么是机密计算?
Linux基金会在2019年成立了机密计算联盟。其目的是为机密计算进行定义并制定标准,以支持和推广开源CC工具和框架的开发。联盟成员包括阿里巴巴、AMD、Arm、Facebook、Fortanix、谷歌、华为、IBM(红帽)、英特尔、微软、甲骨文、瑞士电信、腾讯和VMware等厂商。尽管有的公司已经提供了可用的工具,但考虑到Linux基金会的背景,未来这些工具很可能会汇集到更为开放的CC源代码框架中。Linux基金会指出,联盟将专注于正在使用的数据领域,传输中的数据和静态数据的机密性不在联盟的考虑范围之内。联盟对机密计算的贡献包括:
SoftwareGuardExtensions(IntelSGX)SDK。旨在帮助应用程序开发人员保护选定的代码和数据,让它们不在硬件层被泄露或被篡改。
OpenEnclaveSDK。作为一个开放源代码框架,允许开发人员使用单独的enclaving抽象来构建受信任的执行环境(TEE)应用程序。当出现跨多个TEE架构运行的情况,开发人员也可以构建应用程序。
Enarx为一个为使用TEE保护应用程序提供硬件独立性的项目。
由于这是一项正在“进行中的”标准化工作,因此未来可能还会有更多的项目。但是所有这些最终都将嵌入到CC的开源框架中。
CC为什么会如此特殊?
与数据加密不同,CC使用基于硬件的功能为数据、计算功能或整个应用程序创建“受信任的执行环境”(TEE)。CC隔离了这个跳板区域,让其不被OS或VM访问,从而防止了任何潜在的交叉隐患,没有人可以获得未分配给该TEE的访问权限。TEE将阻止任何更改应用程序代码或篡改数据的尝试。这一点在多用户系统(虚拟化和公有云系统)中尤其重要。在这些系统中,数据的交叉污染是真正的风险。由于这个原因,一些潜在的公有云计算用户拒绝向云端迁移。如果用户对硬件进行物理访问,那么“边道”攻击的风险会变得很低,与非CC系统相关的潜在风险相比,这种风险更是微不足道。
为什么是现在?
受信任的执行环境是CC正常运行的关键。如今我们已经建立了TEE,包括基于Arm的芯片(信任区)和x86芯片(例如IntelSGX)。这种概念可以追溯到10多年前在许多PC上使用的TPM模块。TEE的早期版本与现代版本的不同之处在于它们内置在芯片的核心中,而不是作为外部附加组件。
数据安全技术的MVP——机密计算到底有多牛?
尽管我们有了可以启用TEE的系统,但是很少有企业尝试使用它们,许多应用程序提供商也不支持它们。原因是它们难以部署,并且用户需要在应用程序中启用特定的代码才能强制使用TEE环境。此外,TEE并非在所有处理器上都可以使用(一些IntelXeon芯片支持SGX,而有些则不支持),TEE也无法在所有芯片系列中兼容。这导致许多企业没有部署非常重要的安全措施。
有哪些变化?
随着数据逐渐迁离本地数据中心和多租户云计算的出现,保护客户数据处理流程的完整性,以及保护流程中的某些专利算法如今已变得更加迫切。云提供商可以轻松启动新的CC实例并供客户使用。这消除了企业运行自己支持CC的系统需求。这是双赢的局面,客户可以保护其数据资产,而云提供商则为客户提供了其必要的硬件资产。这不仅带来了新的可用性,越来越多的处理器也内置了CC概念。由于云提供商通常在可用性的初级阶段就获得了新的高端处理能力,因此用户社区的访问速度远快于用户自购设备。另外,应用程序提供商可以通过云端的硬件和工具包,将CC快速地设计到其产品中,从而使他们能够更好地从市场中收回开发投资。
企业应该怎么做?
CC的概念并不是什么新鲜事物,但是TEE和CC在云端的可用性使其对于需要保护数据免受应用程序漏洞攻击的企业更具吸引力。建议企业在未来6~12个月内探索CC技术的使用,并要求关键应用解决方案提供商遵守CC战略并在同步完成技术部署。
CC可以大幅提高企业安全性。虽然在安全性方面无法做到百分之百,但是CC的部署将安全性又向前推进了一大步,所以用户应尽可能地部署,特别是对于在云端上部署应用程序的企业。CC在未来1~2年内可能会成为计算的标准方法,尤其是在云端。