【问题标题】:Securing data on SD card Raspberry Pi保护 SD 卡 Raspberry Pi 上的数据
【发布时间】: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


【解决方案1】:

您可以使用 RaspberryPi 唯一的序列号。

您可以从 /proc/cpuinfo 中检索它

~# cat /proc/cpuinfo 
[...]
Hardware    : BCM2709
Revision    : a01041
Serial      : 00000000407xxxxx

直接 bash 命令:

~# ID=$(cat /proc/cpuinfo | grep ^Serial | cut -d":" -f2)
~# echo $ID
00000000407xxxxx

如果您需要定期更改加密密码,请使用 Rpi 序列号作为返回 ecryptfs 加密密码的静态文件的解密密钥。 OpenSSL 是你的朋友 :D

希望对你有帮助。

【讨论】:

  • 我喜欢你的建议!我一直在寻找一种将 sd 卡“绑定”到覆盆子的方法,没有什么特别高的安全性,只是为了避免卡上的数据过于开放。
  • 您可以使用 blkid 命令检索作为分区唯一标识符的 UUID。
  • 但是每个人都可以有序列号。只需放置另一个未加密的 sdcard 并执行“cat /proc/cpuinfo”命令。之后用它来解密加密的SD卡。
【解决方案2】:

您可以将密码设置为 eth0 hw ether mac 地址。但它不能用于加密根分区。

【讨论】:

  • 这不是一个很好的密码,因为它是固定的,同一子网上的其他计算机可以通过 ARP 解析它。
  • 同意,再三考虑是个坏主意。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-08-08
  • 2021-08-22
  • 2012-11-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多