使用 dm-crypt 进行全盘加密(无需 LUKS)

使用 dm-crypt 进行全盘加密(无需 LUKS)

我目前尝试使用纯模式实现全盘加密,dm-crypt无需 LUKS 标头,USB 上具有单独的 /boot。它的主要目标是在 Debian Linux 发行版上实现合理的可否认性。目前,我已经设法使用加密分区并将cryptsetup/boot 分区安装到单独的 USB 密钥上。一切按计划进行,并且由于加密标头未存储在 LUKS 中,我需要在 initramfs 屏幕上手动输入它,但在此步骤中,我在尝试解析标头时仅收到错误,表明 initramfs 中没有 cryptsetup(/bin/sh:cryptsetup:未找到)。总结:

  1. 使用 dm-crypt 加密的 dev/sda(/root 和 /home 卷)

    cryptsetup --hash=sha512 --cipher=twofish-xts-plain64 create crypt /dev/sda
    
  2. 带有 grub 的 dev/sdb 启动棒

我成功地从启动棒启动了,我看到 Ubuntu 启动画面持续了大约 20 秒,这正是我想要实现的合理否认,然后 id 下降到 initramfs 抱怨无法找到,/dev/mapper/root这也是我想要实现的。问题是,当我想解析 cryptsetup 行时,这将允许我输入密码并继续启动,然后 initramfs 抱怨 cryptsetup:未找到

我猜这个抱怨是真的。我的问题是如何将 cryptsetup 安装到 initramfs 中,以便允许进一步启动以提示密码。另外,我知道我在添加适当的条目时遗漏了一些内容/etc/fstab/etc/crypttab并且在启动过程中找不到设备。

我很抱歉这里没有说明清楚。我只是一个普通的 Unix 用户,对系统有一些基本的了解,但任何帮助都会非常感激。


这是我找到并用来设置所有当前配置的指南,也许这会清除我在帖子中未涉及的内容。

第一有点过时了第二个仅适用于 Arch Linux,但我已经使用了其中两个,并且对最新的 lubuntu 安装进行了少量调整。

答案1

我是http://and1equals1.blogspot.com/2009/10/encrypting-your-hdd-with-plausible.html,我一直想更新它,因为我注意到它不适用于较新的发行版。以下是我迄今为止发现的内容:

在使用 LUKS 和 LVM 的 Ubuntu 14.04 系统上,/usr/share/initramfs/hooks 中有一个名为 cryptroot 的文件,我认为它在调用 mkinitramfs 时会将 /sbin/cryptsetup 复制到 initramfs(通过 copy_exec 函数)。查询 dpkg 数据库,该文件是 cryptsetup 包的一部分,它是我指南中安装 grub 之前的最后一步。我不完全理解为什么它不在你的系统上构建的 initramfs 中。

如果时间允许的话我会仔细研究一下,但如果你想继续研究这个问题我建议如下:

  1. 如果您还没有这样做,请在 initramfs 上除 $PATH 之外的某个位置搜索可执行文件。我认为它被复制到 initramfs 中的 /sbin/,但我不知道它是否在路径中。

  2. 在创建图像期间,例如当提示安装 grub 时,切换到第二个终端 (Alt-F2),并确保 /target/usr/share/initramfs/hooks/cryptroot 脚本存在并且 /target/sbin/cryptsetup 也存在。

  3. 弄清楚钩子脚本的格式,以便明确地将二进制文件复制到 initramfs,可能使用新名称(无论如何,这可能更有利于可信度)。创建它并运行“update-initramfs -u -v | less”以更新最新内核的 initramfs(在输出中搜索 cryptsetup 进行验证)和“update-grub”以防万一。当然,执行此操作时,请确保您的启动棒已插入并且 /boot 已挂载。

  4. 您可能想尝试移除 /usr/share/initramfs/scripts/local-top/cryptroot(比如删除它),这样从启动棒启动的人就不会太明显地知道它正在等待加密分区。这可能会让它看起来更像是一个简单的救援棒。

等我有时间了,我会看看能否在 Ubuntu 14.04 上运行这个并在博客上创建一个新帖子。我会在这里添加一个指向我所做的任何内容的链接,因为从它产生的流量来看,你并不是唯一一个搜索类似内容的人……

相关内容