使用 USB 上的密钥文件解锁 LUKS 分区不起作用

使用 USB 上的密钥文件解锁 LUKS 分区不起作用

我部分关注

/lib/cryptsetup/scripts/passdev 实际上在做什么?

在/etc/crypttab中

2tb UUID=... /dev/disk/by-label/STICK:/logfile luks,nofail,keyscript=/lib/cryptsetup/scripts/passdev,tries=2

我插入了一根格式化为 ext2 的棒子,将带有密码的日志文件标记为 STICK。在从我的第一个磁盘读取密码之前,我使用了“常规”方法,我用键盘输入进行描述。

2tb UUID=.. /etc/luks-keys/2tb luks,nofail,tries=1

是的,我sudo update-initramfs -u -k all && systemctl reboot不断这样做,但就是不起作用。

我正在尝试让它工作,最终通过插入 USB 棒来解锁我的整个系统,但它不起作用。

如果这很重要,我使用的是已禁用安全启动的 UEFI 系统。我已阅读了有关相关主题的模块的内容。我需要加载任何特殊内容吗?

另外这个日志在哪里?

答案1

对我来说,如果能有一个包含密码的小型 USB 棒来解锁磁盘,那就太理想了。这不仅对服务器很方便(您可以将 USB 棒留在服务器中 - 目标是能够返回损坏的硬盘而不必担心机密数据),而且对我的笔记本电脑也很有用:启动时插入 USB 棒,解锁加密磁盘后将其移除。

我现在已经编写了一个补丁,它将在所有设备的根目录中搜索文件“cryptkey.txt”,并尝试使用每行作为密钥进行解密。如果失败:恢复输入密码短语。

这确实意味着密钥不能包含 \n,但这也适用于任何输入的密钥。好处是您可以使用同一个 USB 磁盘来存储多台机器的密钥:您不需要为每台机器单独准备一个 USB 磁盘。因此,如果您的物理密钥环中有一个 USB 驱动器,那么当物理上接近时,您可以为启动的所有机器使用同一个驱动器。

您可以使用以下命令添加密钥:

cryptsetup luksAddKey /dev/sda5

然后将相同的密钥作为一行放入 USB/MMC 磁盘上名为“cryptkey.txt”的文件中。补丁在这里:

https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=746806

如果您的 initramfs 中没有 USB 驱动程序、MMC 驱动程序或文件系统,则需要通过添加到 /etc/initramfs-tools/modules 来添加它们:

uhci_hcd
ehci_hcd
usb_storage
nls_utf8
nls_cp437
vfat
fat
sd_mod
mmc_block
tifm_sd
tifm_core
mmc_core
tifm_7xx1
sdhci
sdhci_pci

完成所有操作后,更新 initramfs:

update-initramfs -u

答案2

使用安装程序创建使用 16.04 和 18.04 密码的加密设备后,您必须添加以下内容(似乎与漏洞):

启动时读取密钥的脚本/etc/decryptkeydevice/decryptkeydevice.sh

更改配置/etc/initramfs-tools/conf.d/cryptroot

诱使 initramfs 使用 cryptroot 文件/etc/initramfs-tools/hooks/decryptkeydevice.hook

并修改 initramfs/etc/initramfs-tools/模块

https://github.com/Codeuctivity/UnlockLuksOnBootByToken将 initAutoUnlockOnBootConfig.sh 中的步骤放在一起 - 以 root 身份执行:

sudo dd if=/dev/urandom of=/dev/sdb bs=512 seek=1 count=60 

sudo dd if=/dev/sdb bs=512 skip=1 count=4 > tempKeyFile.bin 

sudo cryptsetup luksAddKey /dev/sda5 tempKeyFile.bin 

# copy config
mkdir /etc/decryptkeydevice
# update device ids in in this file
cp decryptkeydevice.sh /etc/decryptkeydevice/decryptkeydevice.sh
chmod +x /etc/decryptkeydevice/decryptkeydevice.sh

cp cryptroot /etc/initramfs-tools/conf.d/cryptroot
chmod +x /etc/initramfs-tools/conf.d/cryptroot

cp decryptkeydevice.hook /etc/initramfs-tools/hooks/decryptkeydevice.hook
chmod +x /etc/initramfs-tools/hooks/decryptkeydevice.hook

cat modules >> /etc/initramfs-tools/modules

update-initramfs -u

相关内容