众所周知,数据安全的三大支柱分别是:保护静态数据、传输中数据和使用中数据。其中,静态加密和传输中的数据加密,大家都很熟悉。
但是随着企业业务上云,面临的最大挑战之一,就是如何保护使用中的数据,即在保持敏感数据的同时,还能保持数据的私有状态。
之所以保护使用中的数据特别困难,原因在于应用程序需要明文数据(未经加密或其他方式保护的数据)才能进行计算,这意味着恶意软件可以转存内存中的内容以窃取信息。如果数据在内存中被泄露,服务器硬盘上的数据加密就变得不再重要。
正因如此,机密计算(Confidential Computing)的概念诞生了。2019年,机密计算首次被Gartner列入《2019年云安全技术成熟度曲线报告》。2020年,机密计算仍是Gartner云安全成熟度曲线上的33中技术之一。
机密计算的应用场景
机密计算的原理在于,使用基于硬件的技术将数据、特定功能或整个应用程序与操作系统、虚拟机管理程序或虚拟机管理器以及其他特权进程隔离开来。数据存储在可信执行环境(TEE)中,即使借助调试器,也无法从外部查看数据或对数据执行的操作。TEE确保只有授权的代码才能访问数据。如果代码被更改或被篡改,TEE将拒绝操作。
机密计算旨在保护敏感的代码和数据,可以解决区块链、秘钥管理、金融、AI、多方计算、数据租赁、边缘计算等诸多应用场景中“信任”难题,例如:
- 多个不互信组织之间的数据融合与联合分析
- 区块链上的智能合约的机密性保护
- 公有云平台对攻击的防御、高敏感信息的安全保护
- 保护AI模型等核心机密数据和知识产权
- 保护云边端三位一体相互通信的安全以及隐秘性
- 在Enclave中保护支付、交易的安全性
此外,机密计算还可以带来与安全无关的好处,如:图像处理应用程序可以将文件存储在TEE中,而不是将视频流发送到云端,因而节省带宽并缩短延迟。该应用程序甚至可以在处理器层面划分这类任务,主CPU负责大部分处理,但依靠网卡上的TEE处理敏感计算。
虽然从理论上来讲机密计算大有用处,但它并非立即可用。Gartner预计需要等5年至10年,它才会普遍使用。
科技巨头入局机密计算
作为一种前瞻性的安全技术,目前全球的科技巨头都已纷纷入局,大力探索和推广机密计算技术。
微软Azure
2017年,微软宣布推出名为“机密计算”的Azure云平台的新功能。该功能允许在Azure上运行的应用程序时,在静态、传输中和内存计算时都能保持数据加密。
在实现方式上,微软的机密计算有两种模式:一种是基于虚拟机,另一种则使用英特尔推出的Skylake-SP Xeon处理器中的SGX(“软件防护扩展”)功能。
虚拟机模式,使用Windows 10和Windows Server 2016中引入的Hyper-V的虚拟安全模式(VSM)功能。
使用VSM,应用程序的大部分部分将在常规操作系统的普通虚拟机中运行。受保护的TEE部件将在单独的虚拟机中运行,该虚拟机仅包含基本存根操作系统(足以与常规VM通信)以及只需要处理敏感数据的应用程序代码的那些部分。
即使应用程序受到攻击并且攻击者可以访问主虚拟机,VSM TEE中的数据将无法访问,因为Hyper-V使虚拟机彼此分开。攻击者必须妥协Hyper-V本身才能突破这种隔离。
SGX模式,使用处理器功能在常规流程中切出TEE,而不需要虚拟机。处理器本身将对来自存储器的数据进行加密和解密,使得数据仅在处理器本身内被解密。
有了这种模式,Hyper-V的安全性并不重要。应用程序唯一需要信任的,是处理器及其实施的SGX。有了SGX,没人可以看到TEE中的数据。
阿里云
在国内,阿里云是亚太区第一个推出基于SGX((Software Guard Extensions )加密计算的云服务商。2017年,阿里云与英特尔联合发布了基于芯片级的SGX加密计算技术,保障云上客户数据安全。
基于Intel SGX加密计算技术,阿里云为云上客户提供了系统运行时的可信能力。云上开发者可以利用SGX技术提供的可信执行环境,将内存中的关键代码和数据保护起来。
即使具备更高特权的系统组件包括BIOS、虚拟化底层、操作系统内核,以及高特权进程也都无法获得关键代码和数据,让客户可以摆脱对云平台的依赖,通过拥有云上的可信执行环境,防止数据被窃取或被篡改。
2018年,基于SGX技术,阿里云又推出了基于SGX技术的区块链服务平台;2019年的云栖大会,阿里云智能也与阿里云数据库团队联合发布了全加密数据库产品。
谷歌云
在今年的Google Cloud Next '20大会上,谷歌云(Google Cloud)也推出了一款基于机密计算的安全产品——“可保密虚拟机”(Confidential VMs)。这种新型的虚拟机可以利用谷歌的加密计算,实现对静止状态和内存内数据的保密。
根据谷歌云的介绍,机密虚拟机建立在第二代AMD芯片EPYC处理器上,通过较低的计算能力为客户加密数据以完成机密计算,客户能够以加密的方式在谷歌云上运行其工作负载。
谷歌云方面表示,机密虚拟机的安全级别非常高,可以解锁新的计算方案。这些机密虚拟机与真正用在加密和基于N2D高性能虚拟机相同,都是基于AMD EPYC安全加密虚拟化(SEV),该技术可以在保持其性能的同时,对虚拟机内存进行加密,利用AMD安全处理器生成密钥,从而锁定虚拟机内存,不仅限制了公司数据的访问,还限制了主机上运行虚拟机的访问。
此外,机密虚拟机将与谷歌的安全强化型虚拟机结合,为客户提供额外的机密影像。这为客户将工作负载转移到谷歌云上提供了更多的动力支撑。
机密计算联盟CCC
2019年8月,在Linux基金会下启动成立了机密计算联盟(CCC),旨在为机密计算定义标准,并支持开源工具的开发和采用。成员包括阿里巴巴、AMD、Arm、Facebook、Fortanix、谷歌、华为、IBM、英特尔、微软、Oracle、瑞士电信、腾讯和VMware等巨头。
目前,机密计算联盟支持少数几个开源项目,包括英特尔GX SDK for Linux、微软的Open Enclave SDK和Red Hat的Enarx。
但并非项目得到该联盟的认可,才可以被认为是机密计算,比如:谷歌的Asylo与Enarx很相似,微软Azure的机密计算服务同时支持英特尔SGX和微软的虚拟安全模式,都可以被纳入机密计算的范畴。
尽管机密计算的出现可能促使更多的企业使用云计算、区块链等服务,但值得注意的是,机密计算在应用方面仍然处于起步阶段,例如:机密计算底层依赖的TEE技术,带来了额外的功能限制和兼容问题,这使得机密计算的开发者面临应用开发难等障碍。
机密计算技术在实际应用场景中将如何落地,是否真的能有效保护数据安全,还有待进一步观察。