ext4 file-based шифрование

Начиная с ядра 4.1 добавлена опция CONFIG_EXT4_ENCRYPTION. Эта штука включает реализацию шифрования в драйвере ext4. С его помощью можно шифровать отдельные части файловой системы, например отдельно взятую директорию.
Так вышло что я использую на десктопе ROSA Fresh, однако последний релиз этой системы хоть и имеет версию ядра выше 4.1 а вот инструментарий для такого функционала отсутствует. Необходимые утилиты появились лишь в e2fsprogs-1.43. Но не беда. На ABF я нашел свежую сборку R9 (это пока даже не альфа) и там как раз ядро v4.8.7 и e2fsprogs-1.43.3, т.е. все необходимое уже есть. Качаем, ставим в виртуалку и пробуем.
Я ставил опыты на файлововой системе, смонтированной в /home, устройство /dev/sda6.
1. Сначала включим функционал (не включайте это на загрузочном разделе. GRUB это не поймет и не сможет загрузить систему)

sudo tune2fs -O encrypt /dev/sda6

2. Теперь создадим файлик с солью:

echo 0x$(head -c 16 /dev/urandom | xxd -p)>~/.cryptoSalt

3. Создадим директорию которую будем шифровать:

mkdir ~/crypted

4. Ну и применим к ней шифрование, ключ набиваем с клавиатуры:

/usr/sbin/e4crypt add_key -S `cat ~/.cryptoSalt` ~/crypted

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

/usr/sbin/e4crypt add_key -S `cat ~/.cryptoSalt` ~/crypted

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

Добавить комментарий