较新的Intel Xeon可扩展处理器的功能之一是支持信任域扩展(TDX),作为提供机密虚拟机的一种方式。Intel TDX允许“虚拟机级别的隔离、保密和完整性”,这从安全角度来看是好的,但对签名二进制文件的依赖在更广泛的开源社区的Fedora阵营中引起了复杂的情绪。
Red Hat虚拟化工程团队的Daniel Berrange打开了一张FESCo票证,寻求一个例外,允许在Fedora Linux中运送预先构建的、签名的SGX飞地二进制文件。长话短说,为了利用Intel TDX远程认证功能来证明对硬件的信任,在带有TDX的SGX飞地内运行的代码需要由供应商附加签名,然后由飞地进行验证。
Berrange在罚单中解释道:
“可以验证应用程序提供的飞地是否正在运行由其特定供应商证书签名的代码。这涉及到使用一些由英特尔构建并使用众所周知的证书签名的标准/基本SGX飞地,将信任的根源与英特尔硬件平台绑定在一起。
因此,要使用Intel TDX支持CVM的远程认证,需要将大部分SGX软件堆栈打包在Fedora中。在Fedora中封装SGX软件需要封装由Intel构建并关键签名的一小部分标准飞地-id_enclave.so le.so le.orig pce.so pve.so qe.so qe3.so qve.so tdqe.so。
虽然飞地被构建到ELF-so文件中,但这只是一种将代码和签名打包在一起的方便格式。这些.so文件不可由Linux用户空间ld-Linux.so加载。SGX主机软件将从ELF文件中提取可执行代码,并将其放入飞地内存并验证签名。
...
您可以从git中看到,这些飞地的代码都是开源的,并且包括各种许可证,所有这些许可证都被批准包含在Fedora中。可以在Fedora上构建飞地,但不可能使用结果,因为二进制文件将缺乏所需的Intel加密签名,无法建立对硬件的信任根。这给我们带来了一个打包指南合规性问题,因为通常需要从源代码构建,而不是在Fedora中发布预构建的二进制文件。"
因此,费多拉陷入了困境。为了能够在英特尔TDX下使用机密虚拟机的远程证明,他们需要使用来自英特尔的签名二进制文件。代码是开源的,尽管签名证书不是。Red Hat工程师提出并寻求Fedora工程和指导委员会(FESCo)批准的建议是:
“由英特尔签署和分发的标准/基本SGX飞地的预构建二进制文件可以用Fedora打包,前提是验证其有效载荷与未签署二进制文件完全相同,并使用指定的SGX工具链和运行时从koji中的源代码完全打包和构建,以实现可复制的构建。”
这导致Fedora利益相关者有很多复杂的感受,最终也是更广泛的开源/Linux生态系统需要考虑的问题,因为它也将推出其他Linux发行版。一些人赞成以安全虚拟机的机密计算的名义运送签名的英特尔二进制文件,一些人认为这类似于Linux发行版提供的封闭源代码固件,另一些人则以危险计算的名义反对。还提出了安全问题,并依赖英特尔在出现此类问题时及时提供更新和辞职的二进制文件。
So far no action has been decided upon by FESco for how Fedora will deal with Intel TDX confidential VMs support, but those interested in the ongoing discussion can find it here.