【发布时间】:2015-01-01 12:38:54
【问题描述】:
我需要在 Raspberry 上存储敏感数据,以便在 Raspberry 上运行的软件可以使用它,但其他人不能。我可以设置硬密码、禁用 tty 等,但很容易移除 SD 卡并在 PC 上检查。
我的第一次尝试是 eCryptFS。看起来不错,但是有问题。如何存储密码并使用它来挂载加密的 fs? eCryptFS 可以从文件中读取密码或将其作为挂载参数。显然,我不能使用文件,因为它存储不安全。我还可以编写一个程序,它将硬编码(和混淆)密码短语作为 cli 参数或从标准输入提供给 mount.ecryptfs。但在这种情况下,也可以运行该程序并在进程列表中查看带有密码的整个命令行。
现在我正在考虑在 ecryptfs 本身中对我的密码进行硬编码(或者甚至从受保护的 eeprom 中读取它),因此它只能在我的设备上使用。或者我可以使用其他加密系统,但它们都必须在某个地方采用密钥形式。所以我看到的唯一方法是 eeprom 或硬编码。
有没有更好的方法将敏感数据安全地存储在 Raspberry 的 SD 卡上?
【问题讨论】:
-
我没有尝试过eCryptFS,但我认为您正在寻找的是所谓的“encrypted root”。使用dm-crypt。
-
dm-crypt 仍然存在同样的问题:如何存储密钥/释义?当您没有对存储设备的物理访问权限时,可以将其放入具有 400 权限的 /root/somewhere 中。但是任何人都可以拉SD卡并轻松使用它来挂载加密分区
-
对于非根分区,如
home和swap,将您的LUKS 密钥放入/etc(即在根目录下)。对于根分区,您仍然需要一些手动输入根密码的方法。如果您没有对 RPi 的物理访问权限,则可以使用 dropbear SSH(早期 SSH),它提供了一个简单的 initramfs 挂钩。
标签: linux encryption raspberry-pi ecryptfs