3

Я хотел бы зашифровать свой внешний жесткий диск с помощью dm-crypt+luks, но я не удовлетворен всей информацией, которую заголовок LUKS предоставляет в виде открытого текста.

Поэтому я хотел бы, чтобы заголовок LUKS и зашифрованные данные были отделены друг от друга:

  1. Храните раздел LUKS (CRYPT) без заголовка на внешнем диске.
  2. Когда я захочу получить доступ к зашифрованным данным, объединить заголовок и CRYPT и нормально смонтировать раздел luks.

Я уже знаю, как я мог бы достичь этого вручную:

  1. Резервное копирование заголовка LUKS с дд.
  2. Перезаписать заголовок LUKS на внешнем диске.
  3. Всякий раз, когда раздел LUKS должен быть смонтирован, запишите его обратно и смонтируйте как обычно.
  4. Размонтируйте и перезапишите заголовок снова, когда закончите.

Это не очень оптимально, поскольку заголовки Sectors в заголовке luks будут перезаписываться при каждом подключении диска, и я опасаюсь, что эти сектора наверняка испортятся.


Другой подход заключается в том, что заголовочный файл и зашифрованный раздел luks объединяются в одно виртуальное устройство linux, которое можно монтировать обычным образом.

Под "объединением в одно виртуальное устройство" я подразумеваю, что заголовок фактически не записывается обратно в раздел luks, но система воспринимает его таким образом. Заголовок до сих пор остается на моей USB-флешке.

Моя единственная проблема в том, что я не знаю, как создать такое виртуальное устройство.

Любая помощь будет оценена.

1 ответ1

8

Вы можете просто использовать LUKS в режиме отдельного заголовка:

cryptsetup luksFormat /dev/sda4 --header ~/lukshdr --align-payload 0 --cipher twofish
cryptsetup open /dev/sda4 --header ~/lukshdr mycrypt
cryptsetup luksSuspend mycrypt --header ~/lukshdr
cryptsetup luksResume mycrypt --header ~/lukshdr

Вы можете поместить заголовочный файл куда хотите, включая блочное устройство.

~/lukshdr должен быть не менее 1049600 байт для luksFormat работы:

dd if=/dev/zero bs=1049600 count=1 > ~/lukshdr

Если вы запустите lsblk -b , вы увидите, что размер подключенного устройства точно равен размеру устройства LUKS; нет места, где могут скрываться заголовки или метаданные.

$ lsblk -b
NAME          MAJ:MIN RM        SIZE RO TYPE  MOUNTPOINT
sda             8:0    0 80026361856  0 disk  
├─sda1          8:1    0   254803968  0 part  /boot
├─sda2          8:2    0  5999951872  0 part  [SWAP]
├─sda3          8:3    0 19999490048  0 part  /
└─sda4          8:4    0 53771067392  0 part  
  └─mycrypt   254:0    0 53771067392  0 crypt /tmp/mnt

На самом деле, до тех пор, пока основные шифры не будут взломаны, устройство LUKS будет выглядеть как случайные данные для всех, у кого нет заголовочного файла.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .