linux 内核密钥环是否将密钥存储在磁盘上?

zed*_*ed4 5 kernel linux-kernel ecryptfs

我正在尝试了解 linux 内核密钥环(作为使用 ecryptfs 的背景)。内核密钥环是否将密钥存储在磁盘上的某个位置,还是每次系统启动时都以编程方式重新初始化?

我查看了有关加密的手册页和 archlinux 文档,但没有找到答案。如果有关于内核密钥环的其他文档,我想知道。

如果内核密钥环确实将密钥存储在磁盘上,那么它将文件放在哪里?

Gil*_*il' 8

Linux 内核从不代表自己在磁盘上存储任何内容。它存储应用程序通过文件系统接口告诉它存储的文件,或直接访问的块设备上的数据,或已安装文件系统和磁盘卷的元数据。

此外,将加密密钥存储在同一媒体上没有任何意义。

加密密钥仅存储在 RAM 中。它是在挂载加密文件系统之前输入的。密钥通常来自用户键入的密码短语,但也可以从例如智能卡加载。该内核文档有细节。

可以将卷的加密密钥存储在该卷之外的文件中,然后加载该文件。例如,在启动时物理插入的可移动驱动器上有一个密钥是有意义的。但是内核不会自己做这件事,这取决于系统的启动脚本来做。


小智 2

有关内核密钥环的文档可以在内核源代码树中找到:

https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/Documentation/security

eCryptfs 使用的密钥不会以明文形式存储在磁盘上。ecryptfs-utils 项目中的实用程序默认在将任何密钥材料保存到磁盘之前使用用户提供的密码包装密钥。每次启动后,用户都需要输入用户提供的密码。