使用dm-crypt的全磁盘加密(不带LUKS)


8

我目前正在尝试以纯模式使用dm-crypt来实现全盘加密,而没有带有单独/bootUSB记忆棒的LUKS头。

我的主要目标是在基于Debian的发行版上实现合理的可否认性。目前,我已经设法使用加密分区cryptsetup并将/boot分区安装到单独的USB密钥。一切都按预期进行,因为加密头未存储在LUKS中,所以我需要在initramfs屏幕上手动输入它,但是在这一步,我只是得到一个错误,指示initramfs中没有cryptsetup(“ / bin / sh:cryptsetup:未找到”),同时尝试解析标头。

结论:

  • dev/sda使用dm-crypt/root/home卷)通过以下方式加密:
cryptsetup --hash=sha512 --cipher=twofish-xts-plain64 create crypt /dev/sda
  • dev/sdb 装有grub的靴子

我可以从引导杆成功引导。我看到Ubuntu屏幕启动画面大约20秒钟,这是我希望达到合理的可否认性的目的,然后它落入抱怨无法找到的initramfs之中,/dev/mapper/root这也是我想要实现的目标。

问题是,当我想解析允许我输入密码并继续引导的cryptsetup行时,initramfs会抱怨“ cryptsetup:not found”。

我猜这个抱怨是真的。我的问题是:如何将cryptsetup安装到initramfs中,以便允许进一步启动密码提示?

另外,我知道我省略了在中添加相应条目的内容/etc/fstab/etc/crypttab并且在启动过程中未找到任何设备。

这些是我找到并用于设置所有当前配置的指南,也许这可以清除我在问题中未涉及的内容:

第一个版本有些过时,第二个版本是Arch Linux的版本,但是我使用了其中两个版本,并进行了一些微调,安装了最新的Lubuntu。


1
等待truecrypt分支并提出功能请求...
RobotHumans 2014年

Answers:


2

根据initramfs-tools(8),可以通过将以下内容添加到钩子脚本中来将程序添加到initrd映像中:

copy_exec / sbin / cryptsetup / sbin

可以/usr/share/initramfs-tools/hooks在我的Ubuntu系统中或在其上找到示例挂钩脚本,/usr/share/initramfs-tools/hooks/cryptroot的确确实添加/sbin/cryptsetup了该initrd映像。

例:

$ gzip -dc /boot/initrd.img-`uname -r` | cpio -tv 2> / dev / null | grep cryptsetup
=>尚无cryptsetup。

$ cat / etc / initramfs-tools / hooks / fde
#!/ bin / sh

。/ usr / share / initramfs-tools / hook-functions
copy_exec / sbin / cryptsetup / sbin

$ sudo chmod 0755 / etc / initramfs-tools / hooks / fde
$ sudo update-initramfs -u

$ gzip -dc /boot/initrd.img-`uname -r` | cpio -tv 2> / dev / null | grep cryptsetup
-rwxr-xr-x 1根root 59248 8月21日04:04 sbin / cryptsetup
-rw-r--r-- 1个根目录158848 8月21日04:04 lib / x86_64-linux-gnu / libcryptsetup.so.4
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.