Выпуск Cryptsetup 2.7 с поддержкой аппаратного дискового шифрования OPAL

Опубликован набор утилит Cryptsetup 2.7, предназначенных для настройки шифрования дисковых разделов в Linux при помощи модуля dm-crypt. Поддерживается работа с разделами dm-crypt, LUKS, LUKS2, BITLK, loop-AES и TrueCrypt/VeraCrypt. В состав также входят утилиты veritysetup и integritysetup для настройки средств контроля целостности данных на основе модулей dm-verity и dm-integrity.

Ключевые улучшения:

  • Реализована возможность использования аппаратного механизма шифрования дисков OPAL, поддерживаемого на cамошифруемых (SED — Self-Encrypting Drives) накопителях SATA и NVMe с интерфейсом OPAL2 TCG, в которых устройство аппаратного шифрования встроено непосредственно в контроллер. С одной стороны шифрование OPAL завязано на проприетарное оборудование и не доступно для публичного аудита, но, с другой стороны, может использоваться как дополнительный уровень защиты над программным шифрованием, не приводящий к снижению производительности и не создающий нагрузку на CPU.

    Для использования OPAL в LUKS2 требуется сборка ядра Linux с опцией CONFIG_BLK_SED_OPAL и включение в Cryptsetup (по умолчанию поддержка OPAL отключена). Настройка LUKS2 OPAL осуществляется по аналогии с программным шифрованием — метаданные сохраняются в заголовке LUKS2. Ключ разделяется на ключ раздела для программного шифрования (dm-crypt) и ключ разблокировки для OPAL. OPAL может использоваться как вместе с программным шифрованием (cryptsetup luksFormat —hw-opal ‹device›), так и отдельно (cryptsetup luksFormat —hw-opal-only ‹device›).
    Активация и деактивация OPAL производится тем же способом (open, close, luksSuspend, luksResume), что и для устройств LUKS2.

  • В plain-режиме, при котором мастер-ключ и заголовок не хранятся на диске, по умолчанию задействован шифр aes-xts-plain64 и алгоритм хэширования sha256 (вместо режима CBC, имеющего проблемы с производительностью, задействован XTS, а вместо устаревшего хэша ripemd160 — sha256).
  • В командах open и luksResume разрешено хранение ключа раздела в выбранном пользователем хранилище ключей в ядре (keyring). Для обращения к keyring во многие команды cryptsetup добавлена опция «—volume-key-keyring» (например ‘cryptsetup open ‹device› —link-vk-to-keyring «@s::%user:testkey» tst’).
  • На системах без раздела подкачки при выполнении форматирования или создания слота ключей для PBKDF Argon2 теперь используется только половина свободной памяти, что решило проблему с исчерпанием доступной памяти на системах с небольшим объёмом ОЗУ.
  • Добавлена опция «—external-tokens-path» для указания каталога для внешних обработчиков токенов LUKS2 (плагинов).
  • В tcrypt добавлена поддержка алгоритма хэширования Blake2 для VeraCrypt.
  • Добавлена поддержка блочного шифра Aria.
  • Добавлена поддержка Argon2 в реализациях OpenSSL 3.2 и libgcrypt, что позволяет обойтись без использования libargon.

Источник: http://www.opennet.ru/opennews/art.shtml?num=60493