之前初探谈到机密计算的定义以及目的,本次再探将会研究机密计算目前的现状以及待解决的问题。
从经典架构的角度分析,比如Intel的SGX,将用户态的Enclave作为机密计算的载体,用户只需要信任Intel,但是这个架构应用需要进行拆分,无法进行平滑的迁移,这也是SGX在服务器上没有大规模使用的一个原因;再比如ARM的TrustZone,将用户态的TA和内核态的TEEOS作为机密计算的载体,虽然将机密性扩展到内核态,但是TEEOS大部分由厂商实现,也无法运行通用的os,用户需要信任ARM、OEM厂商、云平台服务商,且运行在用户态的TA也不能平滑的迁移。因此传统的SGX/TrustZone仅仅提供了用户层级的机密计算环境,应用生态迁移困难,从而引发了机密计算的架构变革。
变革后的架构趋于归一,新增realm域、TD域,利用硬件虚拟化技术将user-level enclave提升到了OS-level enclave,用户只需要信任固件和芯片厂商,且虚拟化层数据面和管理面分离,复用非机密域Hypervisor的能力,极简RMM和TDX Module;最重要的一点是,可以直接运行通用OS,易用性大大提升,应用生态迁移更加平滑。目前armv8.4架构已经支持了TEE硬件虚拟化,同时通用OS替换teeos加速应用生态迁移,载体还是TEE域,进而可以平滑的过度到Realm域,对于realm域的新增、硬件内存加密有可能会在armv9实现。
既然可以运行通用OS,那么其安全性是否能够接受考验又是一大问题,攻击者可利用RMM提供给VMM的接口,注入恶意数据,从而触发OS的漏洞。例如通用OS选择linux,攻击者可以利用TCP/IP实现缺陷,构造特殊的TCP数据包,触发use-after-free,远程获得任意代码执行的权限。
因此,类似linux这种宏内核,代码量非常大,不可避免存在安全漏洞,一个模块攻破相当于整个内核就被攻破了,微内核的优势显现出来,可以通过形式化的方法来提升微内核的安全性,从而既加速了应用生态的迁移,又能保证其安全性不受影响。
原文作者:;如有侵权,请联系管理员删除。