web-dev-qa-db-ja.com

dm-cryptを使用したフルディスク暗号化(LUKSなし)

私は現在、USBスティックに別の/bootを備えたLUKSヘッダーなしのプレーンモードでdm-cryptを使用してフルディスク暗号化を実現しようとしています。

私の主な目標は、Debianベースのディストリビューションでもっともらしい否認を達成することです。今のところ、cryptsetupを使用してパーティションを暗号化し、/bootパーティションを別のUSBキーにインストールすることができました。暗号化のヘッダーはLUKSに保存されていないため、initramfs画面で手動で入力する必要がありますが、このステップでは、initramfsにcryptsetupがないことを示すエラーが表示されます( "/ bin/sh:cryptsetup:not found ")ヘッダーの解析を試みている間。

結論として:

  • dev/sdadm-cryptおよび/rootボリューム)を使用して暗号化された/home
cryptsetup --hash=sha512 --cipher=twofish-xts-plain64 create crypt /dev/sda
  • dev/sdbgrubがインストールされたブートスティック

ブートスティックから正常に起動できます。もっともらしい否認のために達成したかったUbuntuスプラッシュスクリーンが約20秒間表示された後、/dev/mapper/rootが見つからないことを訴えるinitramfsにドロップします。これも達成したかったことです。

問題は、パスワードを入力してブートを続行できるようにするcryptsetup行を解析したい場合、initramfsが「cryptsetup:notfound」について文句を言うことです。

この苦情は本当だと思います。私の質問は、cryptsetupをinitramfsにインストールして、パスワードプロンプトをさらに起動できるようにする方法です。

また、/etc/fstab/etc/crypttabに適切なエントリを追加して何かを省略していて、起動時にデバイスが見つからないこともわかっています。

これらは私が見つけてすべての現在の設定をセットアップするために使用したガイドです、多分これは私が私の質問でカバーしなかったものをクリアするでしょう:

最初のものは少し時代遅れで、2番目のものはArch Linux用ですが、私はそれらのうちの2つを、ほとんど調整せずに最新のLubuntuインストールで使用しました。

8
Rowen

initramfs-tools(8) によると、次のように追加することで、initrdイメージにプログラムを追加できます。次の フックスクリプト

copy_exec/sbin/cryptsetup/sbin

フックスクリプトの例は/usr/share/initramfs-tools/hooksにあり、私のUbuntuシステムでは、/usr/share/initramfs-tools/hooks/cryptrootが実際にinitrdイメージに/sbin/cryptsetupを追加しています。

例:

 $ 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 root 59248 Aug 21 04:04 sbin/cryptsetup 
-rw-r--r--1 root root 158848 Aug 21 04:04 lib/x86_64-linux-gnu/libcryptsetup.so.4 
2
ckujau