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

LUKS2 и Argon2id: современное шифрование дисков в Linux

LUKS2 и Argon2id: современное шифрование дисков в Linux

Введение

Шифрование дисков — фундамент безопасности инфраструктуры. В Linux стандартом является LUKS (Linux Unified Key Setup). С выходом LUKS2 и переходом на алгоритм хеширования Argon2id, защита ключей стала на порядок устойчивее к перебору на GPU. В этой статье мы разберем, чем LUKS2 отличается от LUKS1, как работает Argon2id и как правильно развернуть современное шифрование.

LUKS1 vs LUKS2

LUKS2 — это не просто новая версия, а переработанная архитектура.

Характеристика LUKS1 LUKS2
Формат метаданных Бинарный JSON (читаемый, восстанавливаемый)
Слоты ключей До 8 До 32 (теоретически)
PBKDF PBKDF2 Argon2i/Argon2id (по умолчанию)
Устойчивость к GPU Низкая Высокая (Argon2id memory-hard)
Восстановление Сложное Простое (JSON header)

Главное преимущество LUKS2 — использование Argon2id. Это memory-hard функция, которая заставляет атакующего тратить не только процессорное время, но и гигабайты оперативной памяти на каждую попытку подбора пароля, что делает атаки на видеокартах экономически невыгодными.

Практическая часть: настройка LUKS2

Современные дистрибутивы (Ubuntu 22.04+, RHEL 9+, Debian 12+) по умолчанию создают LUKS2.

1. Проверка версии

sudo cryptsetup --version
# Должно быть 2.3.0+ для полной поддержки LUKS2 features

2. Форматирование с явным указанием типа

# Создаем LUKS2 с Argon2id
sudo cryptsetup luksFormat --type luks2 --pbkdf argon2id /dev/sdb

Система запросит подтверждение (YES) и пароль. Рекомендуется использовать парольные фразы длиной от 20 символов.

3. Открытие тома

sudo cryptsetup open /dev/sdb secure_data
# Появится /dev/mapper/secure_data

4. Создание ФС и монтирование

sudo mkfs.ext4 /dev/mapper/secure_data
sudo mkdir /mnt/secure
sudo mount /dev/mapper/secure_data /mnt/secure

5. Автоматизация (fstab + crypttab)

/etc/crypttab:

secure_data    /dev/sdb    none    luks,discard

/etc/fstab:

/dev/mapper/secure_data   /mnt/secure   ext4    defaults    0   2

Администрирование ключей

LUKS2 позволяет гибко управлять доступом.

Добавление второго фактора (ключ-файл)

# Генерация ключа
dd if=/dev/urandom of=/root/keyfile bs=4096 count=1
chmod 600 /root/keyfile

# Добавление в слот
sudo cryptsetup luksAddKey /dev/sdb /root/keyfile

Проверка статуса и параметров PBKDF

sudo cryptsetup luksDump /dev/sdb
# Обратите внимание на строку: PBKDF: argon2id, Time: ..., Memory: ..., Threads: ...

LUKS2 в сложных схемах (RAID + LVM)

В enterprise-средах LUKS2 встраивается в цепочку:
Hardware RAID -> LUKS2 -> LVM -> FS

Это обеспечивает:

  1. Отказоустойчивость (RAID)
  2. Защиту данных при краже дисков (LUKS2)
  3. Гибкость томов (LVM)

Важно: Шифруется блочное устройство после сборки RAID, но до создания LVM.

Безопасность и подводные камни

  1. Header Backup: В LUKS2 заголовок больше и сложнее. Его потеря = потеря данных. Делайте бэкап:
    sudo cryptsetup luksHeaderBackup /dev/sdb --header-backup-file /root/luks2_header.bak
  2. Hibernate: При гибернации ключ остается в RAM. Для защиты используйте systemd с очисткой ключей или полное выключение.
  3. Performance: Argon2id потребляет RAM. На системах с < 1 ГБ оперативки время разблокировки может быть долгим. Параметры можно тюнить через --pbkdf-memory.

Заключение

Переход на LUKS2 с Argon2id — это не рекомендация, а стандарт для 2026 года. Это обеспечивает актуальную защиту от современных методов перебора паролей и предоставляет удобный JSON-формат метаданных для администрирования.

Теги

#LUKS #LUKS2 #Argon2id #шифрование #безопасность #Linux #dm-crypt #fde