内核映像或 initramfs 中的 eCryptfs 密钥

内核映像或 initramfs 中的 eCryptfs 密钥

我有一个嵌入式 Linux 系统,带有未加密的内核映像和 NAND 闪存中的 initramfs。我的 RootFS 在 SD 卡中。

我想加密 SD 卡上的一些文件,因为我的 SD 卡易于物理访问。

为此,我计划使用 eCryptfs。

但我想将密钥保留在内核映像或 initramfs 中的 NAND 闪存中。我有什么选择,保护 SD 卡上某些文件的最佳方法是什么。

答案1

如果你没有初始化文件系统,你可以用内核参数来做到这一点。只需添加一个随机字符串作为内核参数,然后用作/proc/cmdline加密的密钥。如果将这些参数添加到引导加载程序并不容易,Linux 内核有一个CMDLINE配置选项可以让您编译它。(注意:内核参数有可能最终出现在日志文件等中。它是否适合您的场景取决于 SD 卡上运行/写入的内容。)

初始化文件系统,当然你可以自由地做任何你想做的事。它可以在启动时询问您的密码,或包含密钥,或使用加密密钥执行这两项操作。这取决于您,但具体实施取决于您的初始化文件系统看起来没有这样的修改。你可以看看各种初始化文件系统在线指南以了解其原理如何工作,例如:https://wiki.gentoo.org/wiki/Custom_Initramfs

您只需小心不要将未加密的密钥副本留在 SD 卡上。同时你应该有一份副本某处因为如果设备损坏,可能很难将其从 NAND 中取出。

相关内容