皇上,还记得我吗?我就是1999年那个Linux伊甸园啊-----24小时滚动更新开源资讯,全年无休!

Linux 6.19 引入了 PCIe 链路加密与设备认证,启用 AMD SEV-TIO

本周末最令人兴奋的合并之一是为 Linux 6.19 内核建立支持 PCI Express 链路加密和设备认证的基础设施。多家厂商正在为其硬件开发 PCIe 链路加密,而此次初始拉取请求开始为主线内核建立 AMD SEV-TIO 可信 I/O 支持的基础。

Dan Williams of Intel 发起了一个拉取请求,用于布局新的 PCI 基础设施,以支持 PCIe 链路加密和设备认证。该新代码的第一个实现是 AMD SEV-TIO,用于可信 I/O 支持。Dan 在拉取请求中解释道:

“这项工作是多个厂商在一些核心基础设施上达成共识的结果(感谢 Alexey、Yilun 和 Aneesh!),并且有三个厂商的实现,尽管只有其中一个包含在此拉取请求中。PCI 核心的更改得到了 Bjorn 的确认,加密/CCP 的更改得到了 Tom 的确认,而 IOMMU/AMD 的更改得到了 Joerg 的确认。所有内容都已出现在 linux-next 中,Stephen 报告了一个小的冲突(我同意他的解决方式),并且 0day 机器人报告了一些晚期构建修复的奇怪配置。Dan Carpenter 最近的一个小修复,预计 Tom 会在 rc1 之后进行处理。

PCIe 链路加密得以实现,得益于下面简短日志中提到的一系列缩写。链路完整性与数据加密(IDE)是一种在链路两端的发送端和接收端安装密钥的协议。该协议通过数据对象交换(DOE)邮箱,使用 PCI 配置请求进行传输。

这一方面使它成为“平台固件服务”的原因在于,密钥的提供和协议是通过可信执行环境(TEE)安全管理器(TSM)进行协调的。也就是说,要么是运行在协处理器中的固件(如 AMD SEV-TIO),要么是运行在受保护 CPU 模式中的准超管理程序软件(如 Intel TDX Connect / ARM CCA)。

现在,唯一需要让 TSM 运行此协议并安装密钥而不是由 Linux 驱动程序执行的原因是,这样之后,一个保密虚拟机可以直接向 TSM 询问“你能认证这个设备吗?”。这排除了主机 Linux 自行提供密钥的可能性,因为主机 Linux 位于虚拟机信任域之外。此外,还发现除了一个架构之外,其他所有架构都不提供一种机制让操作系统在根端口上建立密钥。因此,“由 TSM 建立的链路加密”是目前跨架构实现该功能的唯一途径。

接受此拉取请求将解除其他架构实现的限制,一旦它们清除了一些其他依赖项,就可以在 v6.20/v7.0 中跟进。这也将解除下一步工作的限制,以实现机密设备分配的端到端流程。PCIe 规范将此端到端流程称为可信执行环境(TEE)设备接口安全协议(TDISP)。

同时,Linux 获得了一个链路加密功能,其实际好处与内存加密类似。它通过证书来验证设备,可能有助于防范试图捕获明文 PCIe 流量的中间人攻击。

这只是 AMD SEV-TIO 上游合并的开始,也是第一阶段,但预计在 Linux 6.20~7.0 周期中会有更多代码。

Linux 6.19 引入了 PCIe 链路加密与设备认证,启用 AMD SEV-TIO

如需浏览初始的 4K 行代码并查看围绕 TEE 安全管理器等的新的 sysfs 接口文档,请查看合并记录

AMD SEV-TIO 支持 PCIe 设备保护,包括网卡、加速器、存储设备等,作为 TEE 设备接口安全协议的一部分,目前在当前的 AMD EPYC 9005 “Turin” 平台上已得到支持。

转自  Linux 6.19 Introduces PCIe Link Encryption & Device Authentication, AMD SEV-TIO Enabling – Phoronix