Как зашифровать файловую систему F2FS?

Вопрос или проблема

Я читал, что формат f2fs подходит для SSD-накопителей, поэтому я отформатировал один из своих дисков с его помощью. Также я читал в некоторых заметках ядра, что в него добавлено шифрование, но документации на этот счет нет. Обычно я предпочитаю шифрование всего диска. Не уверен, возможно ли это для f2fs.

Интересно, знает ли кто-нибудь шаги, которые я мог бы предпринять для шифрования диска f2fs. Я знаю, что это делается на Android для их полного шифрования диска (я использую Ubuntu). Является ли LUKS независимым от файловой системы? Думаю, что нет. Любое шифрование было бы полезно.

Нет документации == нет пользы.

Вот ссылка на обновления ядра: http://lkml.iu.edu/hypermail/linux/kernel/1506.3/00598.html

Из man-страницы f2fscrypt:

# mkfs.f2fs -O encrypt /dev/sdxx
# mount /dev/sdxx /encrypted/
# mkdir /encrypted/dir

Сначала создайте ключ в keyring, используя простой соль (или сгенерируйте случайную соль). Затем используйте его для установки политики для шифруемого каталога.

# f2fscrypt add_key -S 0x1234
Введите пароль (ввод отключен):
Добавлен ключ с дескриптором [28e21cc0c4393da1]

# f2fscrypt set_policy 28e21cc0c4393da1 /encrypted/dir
Ключ с дескриптором [28e21cc0c4393da1] применен к /encrypted/dir.

# touch /encrypted/dir/test.txt
# ls -l /encrypted/dir/
-rw-r--r--. 1 root root 0 Мар 5 21:41 test.txt

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

# ls -l /encrypted/dir/
-rw-r--r--. 1 root root 0 Мар 5 21:41 zbx7tsUEMLzh+AUVMkQcnB

# f2fscrypt get_policy /encrypted/dir/
/encrypted/dir/: 28e21cc0c4393da1

# f2fscrypt add_key -S 0x1234
Введите пароль (ввод отключен):
Добавлен ключ с дескриптором [28e21cc0c4393da1]

# ls -l /encrypted/dir/
-rw-r--r--. 1 root root 0 Мар 5 21:41 test.txt

Показать процесс keyrings.

# keyctl show
Session Keyring
084022412 --alswrv 0 0 keyring: _ses
204615789 --alswrv 0 65534 \_ keyring: _uid.0
529474961 --alsw-v 0 0 \_ logon: f2fs:28e21cc0c4393da1

Рассмотрение вопроса о реализации этого на этапе загрузки

Как установить дистрибутивы Linux на базе Ubuntu на самом инновационном файловом системе F2FS с шифрованием LUKS2?
Это руководство работает с дистрибутивами на базе Ubuntu с
установщиком Calamares; например, Lubuntu, Kubuntu, KDE neon.

SolydXK — это единственный дистрибутив на базе Debian с полностью графической поддержкой установки на файловую систему F2FS (Flash-Friendly File System) с поддержкой шифрования LUKS. Он удобен для пользователей.

SolydXK имеет очень хорошую поддержку на самом инновационном файловом системе F2FS (Flash-Friendly File System).

F2FS — это самая инновационная файловая система со специализацией для ПК и ноутбуков с SSD.

LUKS является независимым от файловой системы. Он работает на более низком уровне, чем файловая система. LUKS — это способ, которым Android выполняет шифрование всего диска.

Ответ или решение

Файловая система F2FS (Flash-Friendly File System) была разработана специально для эффективной работы с твердотельными накопителями (SSD). Пришелец из мира разработки ОС Android, F2FS стала очень популярной среди пользователей Linux благодаря её оптимизации работы с флэш-памятью. Для повышения безопасности данных на таких устройствах имеет смысл использовать шифрование. У вас на руках твердотельный диск, отформатированный в F2FS, и возникает вопрос: как именно организовать его шифрование?

Теория

Прежде всего, необходимо понять уровень, на котором происходит шифрование. В мире Linux шифрование может выполняться на нескольких уровнях:

  1. Полное шифрование диска/раздела осуществляется программой LUKS (Linux Unified Key Setup). Этот метод не зависит от файловой системы и действует на уровне блочного устройства, создавая криптоконтейнер, поверх которого уже монтируется файловая система. Это делает LUKS независимым от типа файловой системы, будь то EXT4, F2FS или любая другая.

  2. Шифрование на уровне файловой системы предусматривает шифрование данных на уровне файлов и каталогов. Это может предложить более гибкую настройку и управление, но требует поддержки со стороны конкретной файловой системы. Для F2FS такая возможность реализована через f2fscrypt.

Пример

Вот пошаговая инструкция по шифрованию на уровне файловой системы F2FS:

  1. Создайте файловую систему F2FS с поддержкой шифрования:

    mkfs.f2fs -O encrypt /dev/sdxx

    Параметр -O encrypt включает поддержку шифрования.

  2. Смонтируйте раздел:

    mount /dev/sdxx /encrypted/
  3. Создайте каталог для хранения данных:

    mkdir /encrypted/dir
  4. Добавьте ключ в keyring:

    Используйте f2fscrypt для добавления ключа:

    f2fscrypt add_key -S 0x1234

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

  5. Установите политику шифрования для каталога:

    f2fscrypt set_policy <дескриптор_ключа> /encrypted/dir

    Используйте ранее полученный дескриптор ключа вместо <дескриптор_ключа>.

  6. Проверьте работу:

    Создайте файл в зашифрованном каталоге:

    touch /encrypted/dir/test.txt

    Убедитесь, что файл видно только после активации ключа:

    f2fscrypt add_key -S 0x1234

Применение

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

В то же время, если ваша цель — шифрование всего устройства с минимальными настройками, то LUKS предложит более простое решение. Вы можете использовать LUKS для создания зашифрованного контейнера и работать с вашей F2FS через него, получая все преимущества одной из самых современных и оптимизированных для флэш-памяти файловых систем.

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

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

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

Капча загружается...