提交记录显示,英特尔正在为 Linux 提供了新的 Key Locker 支持补丁。
Key Locker 是一个 CPU 功能,用于减少密钥外泄的机会,同时保持与 AES-NI 类似的编程接口。它将 AES 密钥转换为一种编码形式,称为 "密钥句柄(key handle)"。密钥句柄是明文密钥的包装版本,其中包装密钥的暴露程度有限。一旦转换,所有后续的使用新的 AES 指令的数据加密(AES-KL)都会使用这个密钥柄,从而减少私人密钥在内存中的暴露。
自 2020 年末以来,Linux 上的 Key Locker 就开始了开源相关工作,此次补丁是英特尔 Key Locker 系列的第三次迭代。在该补丁中,其承认使用 Key Locker 会导致性能比原始 AES-NI 使用慢约 5 倍,但他们的目标是 Key Locker 来处理磁盘加密。在磁盘加密场景中,磁盘吞吐量性能比 Key Locker 本身更可能成为瓶颈。
此外,该补丁还有其他改进,包括避免通过 /proc/cpuinfo 将 "keylocker",指示器发布到用户空间,将使用限制为仅裸机(无虚拟机)等等。并且,这也是第一个不带有 "征求意见"(RFC)名称的版本。