当前位置: 首页 > 科技观察

Linux5.14将支持创建秘密内存区

时间:2023-03-14 00:01:09 科技观察

继Linux5.13之后,Linux5.14也将支持创建秘密内存区。该函数由memfd_secret()实现。memfd_secret()是一个专门的系统调用,而不是memfd_create()的扩展,其目的是允许用户创建更安全的内存映射,而不是简单地允许基于文件的内存访问。根据描述,memfd_secret()创建的秘密内存区只对所属进程可见,不会映射到其他进程或内核页表。因此,它可以在Linux上用于在用户空间中存储OpenSSL的私钥,并减少私钥在不受任何其他硬件加密保护的情况下暴露在系统内存中的可能性。这项工作起源于IBM工程师MikeRapoport,他在2019年为Linux内核内存管理代码提出了一个“MAP_EXCLUSIVE”标志,以支持只有拥有进程才能看到的映射,而memfd_secret()的秘密内存支持是对相同的概念演变。目前,memfd_secret()支持已合并为周五AndrewMorton补丁的一部分。不过这个版本默认仍然禁止访问memfd_secret(),需要在启动内核时开启secretmem_enable选项才能启用该功能。本文转自OSCHINA文章标题:Linux5.14将支持创建秘密内存区