Изготовление зашифрованного раздела в Linux средствами ядра

  • Автор темы Shotdown
  • Дата начала
S

Shotdown

Original poster
Всем пользователям Linux предоставляется мощнейшее криптографическое средство, но не каждый пользователь догадывается о его существовании. Cryptoloop является частью ядра и позволяет шифровать разделы промышленным алгоритмом AES. Использовать Cpyptoloop довольно легко. Для начала убедитесь, что модуль загружен:

Код:
lsmod | grep cryptoloop

Должен быть вывод:

Код:
cryptoloop 12671 1

...и если не загружен, то загрузите его:

Код:
modprobe cryptoloop

Теперь нужно специальным образом подготовить раздел, который
предполагается сделать зашифрованным. Подготовка носит необязательный
характер и рекомендуется лишь параноикам и тем, кто хочет обеспечить
самый высокий класс защиты. Допустим, требуется подготовить раздел
/dev/sdb1. Заполним этот раздел случайными данными, чтобы усложнить
возможную работу криптоаналитиков:

Код:
dd if=/dev/urandom of=/dev/sdb1 bs=1M

Наверное, не стоит отдельно упоминать, что данная операция
уничтожит все данные на разделе /dev/sdb1. Теперь основная часть работы.
Создадим виртуальный раздел /dev/loop0, который будет использоваться
для доступа к расшифрованным данным. В качестве алгоритма шифрования
выберем AES256, который стабильно демонстрирует отличные показатели
криптостойкости:

Код:
losetup -e aes -k 256 /dev/loop0 /dev/sdb1
Password:

Пользователя попросят придумать пароль. Желательно придумать
стойкий вариант и хорошо его запомнить. В случае утраты пароля,
восстановить данные будет невозможно. Теперь создадим на устройстве
/dev/loop0 файловую систему ext4 (вы можете выбрать любую другую):
Код:
mkfs.ext4 /dev/loop0

Затем нужно смонтировать раздел и.... всё — можно работать:

Код:
mkdir /mnt/cryptoloop
mount -t ext4 /dev/loop0 /mnt/cryptoloop/


Теперь точка монтирования /mnt/cryptoloop может использоваться как
самая обычная директория для хранения файлов. Физически, данные из
/mnt/cryptoloop будут храниться в зашифрованном виде на разделе
/dev/sdb1. После работы необходимо размонтировать все обратно:

Код:
umount /mnt/cryptoloop/
losetup -d /dev/loop0

Если пользователь пожелает, то можно можно прописать соответствующие параметры монтирования в файл /etc/fstab:

Код:
/dev/sdb1 /mnt/cryptoloop ext4 noauto,encryption=aes
Теперь в любой момент можно использовать команду mount /mnt/cryptoloop для доступа к зашифрованным данным и команду umount /mnt/cryptoloop для отключения. Кроме раздела, можно создавать создавать и отдельные криптоконтейнеры в виде файлов (просто замените /dev/sdb1 на произвольное имя файла). Можно шифровать и флешки. Как видите, все просто и эффективно. А главное, что вы сможете получить доступ к своим данным на любом компьютере с Линуксом, ведь никаких дополнительных программ не требуется.