Это старая версия документа.
Содержание
LUKS (Linux Unified Key Setup) — спецификация шифрования диска (или блочного устройства), изначально предложенная для Linux, но сейчас поддерживаемая и в ряде других операционных систем.
Особенности
- В качестве «контейнера» используется файл. Его размер «фиксирован».
- «Внутри» контейнера создается файловая система, любого удобного вам формата.
- При использовании - монтируется «как обычный раздел».
—- Данные сохраняются по блокам, как в обычном файле/файловой системе. То есть :
- модификация файла внутри контейнера приводит к перезаписи блоков, занимаемых этим файлом, но не всего контейнера;
- «потеря/порча» одного блока приводит к потере информации «того-что-было-в-этом-блоке», и не более того.
- при синхронизации контейнера «в облако» - как правило, перезаписывается не весь файл, а «модифицировання часть», что требует малого объема трафика.
—- В отличие от EncFS
- «снаружи» не видны общее количество файлов, их размеры и время модификации;
- проблематично изменить «размер контейнера», если весь контейнер «занят».
—- В отличие от Truecript
- как правило, выше скорость обработки данных (зависит от алгоритма/размера ключа);
- проще работа с ключами;
- нет механизма «двойного дна»;
- возможны проблемы при попытке использования контейнера «из другой ОС»
Создание контейнера
- Создаем необходимые каталоги:
md /home/user/keys # каталог файла-ключа и скриптов. Должен быть недоступен другим пользователям md /home/user/.private # каталог контейнера. В нем хранится криптованный файл-контейнер md /home/user/private # точка монтирования. В нем будет содержимое контейнера "в открытом виде"
- При необходимости, доустанавливаем пакеты:
sudo apt-get install cryptsetup
и проверяем (должен быть вывод «kernel/drivers/md/dm-crypt.ko»)
modprobe -l |grep dm-crypt
- Создаем ключ
dd if=/dev/urandom of=/home/user/keys/container.key bs=512 count=1
- Создаем контейнер, файл container.crt, размером 50M
dd if=/dev/urandom of=/home/user/.private/container.crt bs=1M count=50
Размечаем контейнер, как luks-систему с ключом
sudo cryptsetup luksFormat /home/user/.private/container.crt -d /home/user/keys/container.key -c aes-xts-plain64 -s 512
или - без ключа, с набором пароля при каждом открытии контейнера
sudo cryptsetup luksFormat /home/user/.private/container.crt -c aes-xts-plain64 -s 512
Параметры контейнера, смотрим
sudo cryptsetup luksDump /home/user/.private/container.crt
- «Открываем» контейнер
sudo cryptsetup luksOpen /home/user/.private/container.crt -d /home/user/keys/container.key container
смотрим, появился ли в устройствах, и информация о нем
ls /dev/mapper/ sudo dmsetup info container