Перевод шифрованного раздела на LUKS2 и более надёжную функцию формирования ключа |
[исправить] |
В шифрованных разделах LUKS1 в качестве функции формирования ключа (KDF, Key
Derivation Function) на основе заданного пользователем пароля применяется
функция PBKDF2, не обеспечивающая должную стойкость от подбора с использованием
GPU. В LUKS2 в качестве KDF появилась возможность использования гибридной хэш-функции
argon2id, которая помимо потребления
вычислительных ресурсов, затрудняет распараллеливание и требует значительного
объёма памяти.
Например, подбор KDF-функции PBKDF2, рассчитанной на потребление CPU, может
эффективно распараллеливаться на GPU Geforce 4090 c 16384 вычислительными
блоками, но в случае применения argon2id подбор упирается в размер видеопамяти
(при потреблении 1 ГБ на каждую операцию подбора, на GPU с 24 ГБ памяти можно
обеспечить лишь подбор в 24 параллельных потока).
Переключение с LUKS1 на LUKS2 с argon2id.
Определяем на каком устройстве находится шифрованный раздел:
lsblk
...
└─nvme0n1p3 259:3 0 474,8G 0 part
└─nvme0n1p3_crypt
253:0 0 474,8G 0 crypt
├─vgubuntu--mate-root
│ 253:1 0 473,8G 0 lvm /var/snap/firefox/common/host-hunspell
│ /
└─vgubuntu--mate-swap_1
253:2 0 980M 0 lvm [SWAP]
Сохраняем резервную копию заголовка LUKS и затем копируем на внешний носитель,
чтобы иметь возможность восстановить состояние.
sudo cryptsetup luksHeaderBackup /dev/nvme0n1p3 --header-backup-file /tmp/luksheader
Проверяем версию LUKS:
sudo cryptsetup luksDump /dev/nvme0n1p3
...
Version: 1
...
PBKDF: pbkdf2
Если версия 1, то необходимо обновить заголовок до LUKS2.
sudo cryptsetup convert /dev/nvme0n1p3 --type luks2
Проверяем, что с новым заголовком система по-прежнему грузится и если возникли
проблемы восстанавливаем старый заголовок командой
sudo cryptsetup luksHeaderRestore /dev/nvme0n1p3 --header-backup-file путь_к_скопированному_luksheader
Ещё раз выполняем cryptsetup luksDump и проверяем алгоритм в секции Keyslots,
если указано "pbkdf2" или "argon2i" следует обновить его до
"argon2id":
sudo cryptsetup luksConvertKey /dev/nvme0n1p3 --pbkdf argon2id
Проверяем результат:
sudo cryptsetup luksDump /dev/nvme0n1p3
...
Version: 2
...
Keyslots:
0: luks2
...
PBKDF: argon2id
...
0: luks2
...
PBKDF: argon2id
...
|
|
|
|
Раздел: Корень / Безопасность / Шифрование, PGP |