机密计算 (Confidential Computing) 和可信执行环境 (Trusted Execution Environment)

数据在其生命周期中往往以三种状态存在——静态(at Rest)、传输中 (in Transit)、使用中(in Use)。我们使用加密来保证数据在前两种状态下的保密性和完整性。目前,数据在内存中使用时是未被加密的,即在使用中保护数据和代码的能力很有限。

机密计算,即通过在可信执行环境中进行计算来保护使用中的数据。

为什么需要机密计算 (Confidential Computing)

1. 静态和传输中的数据受到加密的保护,针对这两种状态的攻击比较有限,近年来针对使用中数据的攻击收到关注;

2. 越来越多的数据转到了云端,网络和物理层面的防护能力被大大的削弱了,针对云的攻击更多在于Hypervisor虚拟机逃逸、Docker容器逃逸、固件BUG或者内部威胁(比如雇员),原先的防护手段在处理敏感数据时就不再够用了;

3. 对数据处理者(PIPL受托处理者)的监管要求也越来越严,虽然数据控制者(PIPL处理者)仍对数据泄露负最终责任,但是数据处理者也需要承担责任;

4. 随着边缘计算、IoT和移动设备的兴起,越来越多的数据需要在本就不安全的远程处理,而且往往监管又要求存储在这些设备上的个人数据应当收到保护,并且其共享和处理过程也应当可以被观察和符合监管的要求。

可信执行环境(Trusted Execution Environment)

在机密计算中,未经授权的实体包含父实例的其他应用程序、OS、Hypervisor或者管理员、服务提供商、基础设施所有者或者任何其他对硬件有物理访问权的人。

可信执行环境,是一种为数据完整性、数据保密性、代码完整性提供一定程度保证的环境。可信执行环境往往是安全且隔离的,可以防止应用程序和数据在使用过程中收到未经授权的访问或修改。

数据的完整性是指数据在处理时防止未经授权的实体处理数据,或者由TEE之外的任何实体处理;数据的保密性是指数据在TEE中处理时,未经授权的实体不能查看数据;而代码的完整性是指TEE中的代码不能被未经授权的实体替换或者修改。这三个属性叠加在一起,不仅保证了数据的保密完整,而且也保证了进行的计算是正确的计算,所以我们也信任计算的结果。

除了以上保证以外,TEE通常也提供代码的保密性、认证启动、可编程、可恢复性、证明(包含远程证明,即通过第三方验证确保预定的二进制文件被执行)。

TEE的分类和演进

狭义上来说,可信执行环境是硬件辅助隔离执行环境的一种,其信任根(Root of Trust)需要防篡改的硬件,这与机密计算联盟对TEE的要求一致,即将基于软件信任根的TEE排除在外,专注于基于硬件的机密计算环境的安全保证。

从实现上来看,TEE可以分为基于Process (Intel SGX)、基于Device (ARM TrustZone和RISC-V Keystone)和基于VM (AMD SEV / Intel TDX / ARM CCA / AWS Nitro Enclaves)。

Intel SGX始于2015年,然而由于其过度复杂的安全计算抽象(在用户态划出Enclave),导致了硬件(微代码实现)和软件的复杂度(例如借助Occlum等LibOS)和极高的性能开销。2002年就被提出的ARM TrustZone则一开始就提供了独立完整的物理机抽象,Apple Secure Enclave也继承了这个思路。

针对于SGX和物理机抽象的漏洞频频被发现和利用,自2016年AMD SEV开始,主流TEE都不约而同地走向了VM实现,这就包含了2019年AWS Nitro Enclaves,2020年AMD SEV-SNP / Intel TDX和2021年ARM CCA。

回到云上,Azure的Confidential VMs with Application Enclaves和阿里云的安全增强型实例,一开始都选择了SGX的实现,但是我们也看到最近Azure的confidential VM (preview)和GCP的Confidential VM (GA)已经选择了SEV-SNP方向。而在阿里云上,基于第三代神龙架构的阿里云虚拟化Enclave在架构上则更类似于AWS Nitro Enclaves,都有无持久化存储、无交互和外部网络,仅依靠与vsock等特点,也可以与阿里云的KMS服务结合进行远程证明。

我们会在下一篇文章中,详细阐述AWS Nitro Enclaves。

机密计算的使用场景

1. 凭据的存储和处理

2. 公有云 – 机密计算使得更多的工作负载(对安全和合规由强要求)迁移到云上成为可能

3. 多方计算

4. 区块链

5. 移动和个人计算设备 – TEE可以证明个人信息没有离开这些设备

6. 边缘和IoT

7. 支付处理方面已经非常普遍-  芯片智能卡、隔离的数字键盘