摘要:
研究背景:
当前,无论在边缘计算还是云计算中,应用程序迁移能够带来诸如负载均衡、提升容错性等好处,变得越来越有吸引力。例如,迁移可以使计算更接近数据源或使服务更接近最终用户,这可以显着减少边缘计算的延迟。但是,在由不同平台所有者控制的服务器之间迁移应用程序会引发安全问题,因为平台所有者控制着服务器上全部的硬件和软件,能够较为轻易地窃取应用程序的机密数据。为了提升类似的外包计算的安全性,研究界针对安全硬件展开了广泛的研究,近年来主要的CPU供应商陆续发布了提供硬件安全能力的可信执行环境(TEE,又名Enclave)技术,例如Intel SGX,AMD SEV和ARM TrustZone,以保护在不受信任的服务器上进行安全计算。
目的:
但是,这些硬件TEE提出了非统一的编程抽象,并且基于异构体系结构,这不仅要求程序员针对某一特定抽象进行安全应用程序的开发,而且还阻碍了安全应用程序在不同平台上的迁移。在本工作中,我们提出了UniTEE系统,它在上述三个主流的硬件TEE平台上提供了统一的Enclave编程抽象,并且支持Enclave在不同平台上进行迁移,从而能够有效帮助解决异构TEE硬件平台带来的挑战。
方法:
UniTEE系统设计主要包括两个方面。第一,它提供了统一的TEE抽象,从而对应用程序隐藏底层的硬件异构性。 UniTEE采用SGX应用程序的编程模型,因为它具有灵活性和广泛性。具体来说,应用程序可以将自身划分为安全敏感的部分,并构建一个或多个基于硬件安全的TEE(称为Enclave)以运行安全敏感的计算。无论底层硬件TEE是什么,UniTEE都提供统一的编程API,包括创建,证明,调用和销毁Enclave。由于AMD SEV和ARM TrustZone不提供像Intel SGX这样的Enclave,因此我们利用硬件与软件协同的设计在这些平台上构建类似SGX的安全区。 AMD SEV使用虚拟机(Secure VM)作为其TEE的粒度,并支持最多同时运行15个安全VM,这不适合UniTEE的编程模型。因此,我们在Secure VM的特权模式下部署受信任的微内核,然后让微内核在用户模式中构建彼此隔离的Enclave。通过将请求发送到受信任的微内核,应用程序可以在Secure VM中创建它的Enclave。 ARM TrustZone使CPU分别具有两种模式,分别称为普通环境和安全环境。 UniTEE同样通过在安全环境中部署受信任的微内核,作为Enclave管理者,来实现相同的Enclave抽象。因此,通过组合微小的软件层(受信任的微内核)和硬件TEE(SEV的Secure VM或TrustZone的安全世界),UniTEE提供了类似于SGX的Enclave抽象,从而使TEE编程模型在Intel SGX,AMD SEV和ARM Trustzone上形成统一。此外,为了简化编程,UniTEE为应用程序提供了一个Enclave管理库,用于控制其Ecnlave的生命周期,包括创建,证明,交互和删除。它还提供了一个C库(基于musl-libc)来简化Enclave的开发和部署。第二,统一的Enclave抽象使程序员能够开发安全的应用程序,而无需考虑底层TEE的差异。然而,这对于迁移Enclave应用程序还不够,因为异构TEE使用不同的ISA。因此,UniTEE进一步集成了异类ISA迁移技术,以隐藏Enclave ISA的异构性并在运行时支持Enclave迁移。Enclave代码将针对不同的ISA组合到不同的二进制文件中,但是每个符号(变量和函数)在不同的二进制文件中具有相同的偏移量。无论在哪种架构上,这些符号始终会在运行时加载到相同的虚拟地址,这极大地简化了(跨体系结构)迁移过程,因为指向它们的指针在迁移后仍然有效。为了迁移在源计算机上运行的Enclave,目标计算机将首先使用其二进制文件启动初始的Enclave,然后从源计算机接收并恢复Enclave检查点(Checkpoint,内存数据和执行上下文)。为了确保安全性,检查点生成不应依赖包括OS在内的不受信任的软件。因此,源计算机上的Enclave将自己生成一个一致的检查点。具体来说,UniTEE在每个Enclave中添加了一个控制线程,收到迁移请求后,该线程将等待所有Enclave线程进入静默状态,然后通过加密和转储Enclave状态作为检查点。加密密钥由源安全区域和目标安全区域协商,它将保护检查点在传输过程中的机密性和完整性。
结果:
UniTEE为程序员提供了一个SDK,他们可以开发安全应用程序而无需了解底层的TEE硬件或迁移机制。 我们在Intel(Skylake i7-7700)机,AMD(EPYC 7281)机和ARM(HiKey970)机上进行了原型实现和评估。 评估结果表明:1)我们的SDK能够支持很多真实应用程序,并且迁移机制不会造成性能损失; 2)异构Enclave迁移的延迟是可以接受的,并且主要由网络延迟决定。
结论:
本工作探索了在Intel SGX,AMD SEV和ARM TrustZone上的构建统一Enclave抽象以及在配备异构TEE的平台之间实现Enclave迁移。目前结果表明,这个方向是可行的且具备一定的继续研究价值。