DragonFlyBSD получил новый модуль шифрования дисков

DragonFlyBSD получил новый модуль шифрования дисков

Новая реализация устранила зависания и хаос в коде.

image

В DragonFlyBSD наконец-то появилось важное и интересное обновление — на прошлой неделе в систему был внедрён новый модуль шифрования дисков под названием dm_target_crypt_ng. Это переработанная версия модуля DM-crypt, совместимая с одноимённой реализацией в Linux. За разработку отвечает Майкл Нойман, один из активных участников проекта DragonFlyBSD.

В отличие от старого варианта, новый модуль больше не использует устаревшие и сложные в обслуживании подсистемы opencrypto и cryptodev. Вместо этого используется собственный набор реализаций симметричных блочных шифров, что заметно упростило архитектуру и избавило от асинхронных ловушек, вызывавших зависания и проблемы с отзывчивостью системы.

Одним из ключевых улучшений стало повышение интерактивности. Раньше при запуске тестов, например утилиты blogbench, система буквально «замерзала» — мышь останавливалась, и общая отзывчивость падала. Новый модуль dm_target_crypt_ng лишён этого недостатка: даже под нагрузкой курсор мыши продолжает двигаться плавно, а производительность осталась примерно на том же уровне. Более того, результаты тестов слегка улучшились — например, число операций чтения увеличилось с 200 тысяч до 203 тысяч.

Технически новая система организована через два пула рабочих потоков, привязанных к конкретным процессорам. Один отвечает за расшифровку (чтение), другой — за шифрование (запись). Такой подход обеспечивает большую справедливость при распределении нагрузки. Для чтения не требуется дополнительной памяти, а запись использует общую очередь, как и раньше, чтобы зашифровать данные перед отправкой.

На данный момент поддерживаются только два алгоритма — AES-CBC и AES-XTS. Другие, более надёжные, но медленные алгоритмы, такие как Twofish и Serpent, пока отключены из-за отсутствия аппаратной поддержки, но могут быть возвращены при необходимости.

Попробовать новый модуль можно уже сейчас, добавив строку dm_target_crypt_ng_load=YES в конфигурационный файл /boot/loader.conf. Однако есть нюанс: при использовании swapon модуль может не загрузиться автоматически, так как утилита по-прежнему ищет старый dm_target_crypt.

Майкл Нойман планирует сделать новую версию модуля основной по умолчанию и удалить старую после дополнительного тестирования и получения обратной связи от пользователей. За последние несколько дней в репозиторий уже поступили обновления с улучшениями API и поддержкой новых алгоритмов — в том числе вернули Twofish и Serpent в режимах CBC и XTS.

Проект DragonFlyBSD не выпускал стабильных релизов уже более двух лет — последняя версия 6.4 вышла в 2022 году. Хочется верить, что новый модуль шифрования станет частью скорого релиза, который объединит в себе все накопленные улучшения.

Как управлять уязвимостями в инфраструктуре свыше 80 000 хостов

23 апреля состоится вебинар о возможностях ScanFactory VM для крупного бизнеса.

Реклама. 18+, ООО «СКАНФЭКТОРИ», ИНН 7727458406