LUKS2 и Argon2id: практическое руководство по настройке полнодискового шифрования
LUKS2 и Argon2id: практическое руководство по настройке полнодискового шифрования
Введение
Полнодисковое шифрование (Full Disk Encryption, FDE) — базовый элемент защиты данных на серверах и рабочих станциях. В экосистеме Linux стандартом де-факто является LUKS (Linux Unified Key Setup), актуальная версия — LUKS2. Ключевым фактором стойкости является функция формирования ключа (KDF). В LUKS2 по умолчанию применяется Argon2id — современный алгоритм, устойчивый к атакам на GPU/ASIC.
Почему Argon2id
- Устойчивость к параллельным атакам: Argon2id сочетает устойчивость Argon2i к атакам по сторонним каналам и Argon2d к GPU-атакам.
- Настраиваемые параметры: память (m), параллелизм (p), итерации (t). Для серверов с DDR4/DDR5 и SSD NVMe разумные начальные значения: --pbkdf-force-iterations=4 --pbkdf-memory=1048576 --pbkdf-parallel=4.
- Совместимость: поддерживается cryptsetup ≥ 2.1, ядра Linux ≥ 5.6 без проблем.
Подготовка блочного устройства
Перед созданием LUKS-контейнера убедитесь, что устройство не содержит нужных данных, и безопасно очистите его:
# Идентификация устройства
lsblk
# Безопасная очистка (при необходимости)
blkdiscard /dev/sdX || dd if=/dev/zero of=/dev/sdX bs=1M status=progress
Создание LUKS2 с Argon2id
cryptsetup luksFormat --type luks2 \
--pbkdf argon2id \
--pbkdf-force-iterations=4 \
--pbkdf-memory=1048576 \
--pbkdf-parallel=4 \
/dev/sdX
Открытие и создание ФС
cryptsetup open /dev/sdX crypt_fde
mkfs.ext4 -L FDE /dev/mapper/crypt_fde
mount /dev/mapper/crypt_fde /mnt/fde
Добавление резервного ключа
cryptsetup luksAddKey /dev/sdX --pbkdf argon2id
Автоматизация при загрузке
В /etc/crypttab:
crypt_fde /dev/sdX none luks,discard,noearly
В /etc/fstab:
/dev/mapper/crypt_fde /mnt/fde ext4 defaults 0 2
Для серверов без интерактивного ввода используйте keyfile с ограниченными правами (600) и подключите через keyscript или TPM2.
Проверка и диагностика
cryptsetup luksDump /dev/sdX
cryptsetup benchmark --cipher aes-xts-plain64
lsblk -f
Производительность и тюнинг
- На NVMe: включите TRIM/discard через опцию discard в crypttab.
- Контроль нагрузки: iotop, dstat, perf.
- Если узкое место — KDF: уменьшите --pbkdf-memory до 524288, контролируя устойчивость к офлайн-атакам.
Типичные ошибки
- Использование старого PBKDF2 на новых системах — снижает стойкость.
- Слишком низкие значения памяти/параллелизма для Argon2id — делает атаку дешевле.
- Хранение keyfile без прав 600 и вне зашифрованного раздела.
Заключение
LUKS2 с Argon2id — современный стандарт FDE в Linux. Правильная настройка KDF и понимание цепочки загрузки обеспечивают баланс между безопасностью и производительностью. Для корпоративных сред интегрируйте с TPM2 и централизованным управлением ключами.
Метаданные
- Категории: Безопасность, Администрирование Linux
- Хештеги: #LUKS2 #Argon2id #FDE #cryptsetup #Linux #security #encryption #best-practices