在新安装的 Linux Mint 22 Cinnamon(基于 Ubuntu 24.04)上,我进行了一些尝试dmesg
,并发现了一个可能很有趣的问题,新的 6.8 Linux 内核向我显示了警告,提示我在 UEFI BIOS 中禁用了 Intel SGX,因此我启用了它,结果如下:
# dmesg | grep -i sgx
[ 0.442210] sgx: EPC section 0x60200000-0x65f7ffff
我在 5.15 Linux 内核上没有注意到它,但这也可能是因为我没有寻找它。
因此,我的问题自然是:Linux 内核如何使用 Intel SGX?
为了完整起见,我查找了一些有关它的文章,但发现它太技术性了(对我来说):
我正在寻找或多或少简单的答案,如果无法使其简单,请尝试根据需要了解的内容修改您的答案。非常感谢!
此外我还发现了这样的描述:
英特尔软件保护扩展 (SGX) 是一组指令代码,可在英特尔 CPU 内创建安全环境,允许创建受保护的私有内存区域(称为 enclave)。SGX 用于安全远程计算、网页浏览、DRM、隐藏专有算法和加密密钥。它于 2015 年首次与第六代英特尔酷睿处理器一起推出,专为数字版权管理和安全网页浏览等安全应用而设计。
内核目前不使用 SGX 本身,它所做的只是提供支持以便程序可以使用它。这包括处理 SGX Enclave 页面缓存(与常规 Linux 页面缓存无关),因为设置它涉及特权操作。内核还在 vDSO 中提供特定于 SGX 的异常处理,以简化信号处理。
至于哪些程序使用 SGX,我并不了解很多。不过,其中一些很重要,至少如果你有兴趣保护不受信任的主机上的工作负载:支持机密容器的基础设施可以运行容器,而不允许主机查看容器内部发生的事情。另请参阅2023 年 7 月关于机密计算的 Kubernetes 博客文章。