Блог "Дети ОИТа"
/поиск

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