Cryptsetup 2.8.7 приспосабливается к отказу от AF_ALG в ядре Linux
Вышла версия 2.8.7 утилиты cryptsetup, отвечающей за настройку и управление зашифрованными накопителями в Linux. Главная задача релиза — пережить постепенное исчезновение интерфейса AF_ALG, на который cryptsetup долгое время опирался.
Почему исчезает AF_ALG
AF_ALG давал пользовательским приложениям прямой доступ к внутреннему криптографическому API ядра. Однако мейнтейнеры ядра сочли этот интерфейс источником «огромной поверхности атаки»: в Linux 7.2 его объявили устаревшим, а в Linux 7.3 добавляют новую настройку sysctl, позволяющую дополнительно ограничить его использование. Для программ вроде cryptsetup, годами полагавшихся на AF_ALG, это создаёт очевидные трудности.
Что меняется в libcryptsetup
Библиотека libcryptsetup использует пользовательское пространство (в первую очередь через AF_ALG) для обработки слотов ключей LUKS и работы с метаданными на диске. AF_ALG удобен тем, что гарантировал одинаковый набор алгоритмов и в пространстве пользователя, и позже в ядре при активации устройства.
Теперь библиотека может действовать по нескольким путям: задействовать пользовательскую криптобиблиотеку, использовать AF_ALG, если он доступен, а в отдельных случаях (слоты ключей LUKS) — прибегать к временному отображению dm-crypt. Последний вариант требует прав root. Такая схема позволяет большинству операций продолжать работать даже при отключённом или ограниченном AF_ALG.
Полностью безболезненным переход не будет. Если нужный алгоритм или режим шифрования не реализован в пользовательской библиотеке, возможны серьёзные проблемы совместимости. Показательный пример — шифр Adiantum, существующий только в ядре. Шифры Serpent и Twofish в режиме XTS также отсутствуют в ряде пользовательских библиотек. Кроме того, при недоступности AF_ALG перестаёт работать встроенный бенчмарк шифров cryptsetup.
Прочие изменения
Помимо адаптации к уходу AF_ALG, версия 2.8.7 приносит изменения в обработке keyring, меры против возможных коллизий дайджеста ключа тома LUKS, поддержку шифров Aria и Camellia в бэкенде libgcrypt, а также ряд других исправлений.
Скачать cryptsetup 2.8.7 можно из GitLab.
Источник: Phoronix
Комментарии
Войдите, чтобы комментировать.