Опубликован набор утилит Cryptsetup 2.8, предназначенных для настройки шифрования дисковых разделов в Linux при помощи модуля dm-crypt. Поддерживается работа с разделами dm-crypt, LUKS, LUKS2, BITLK, loop-AES и TrueCrypt/VeraCrypt. В состав также входят утилиты veritysetup и integritysetup для настройки контроля целостности данных на основе модулей dm-verity и dm-integrity.
Ключевые улучшения:
- Добавлена поддержка inline-режима, позволяющего использовать расширенные секторы с дополнительной областью для хранения метаданных контроля целостности. Подобные секторы поддерживаются некоторыми NVMe-накопителями, позволяющими помимо области с данными размещать в секторе и блок метаданных (например, 4096 байт под данные + 64 байт под метаданные).
При наличии неиспользуемой области метаданных в секторе Cryptsetup теперь может использовать для хранения служебной информации, что избавляет от необходимости задействования дополнительного слоя на базе
dm-integrity, отвечающего за выделение места под метаданные. Соответственно, можно обойтись без ведения журнала dm-integrity, являющегося узким местом, негативно влияющим на производительность.
В ядре Linux возможности, необходимые для работы inline-режима, присутствуют начиная с выпуска 6.11. Для включения inline-режима добавлена опция “–integrity-inline”. - Доведён до готовности API Keyslot Context для манипуляции со слотами ключей. Новый API позволил расширить функциональность многих существующих команд, такими функциями, как активация токенов, возобновления работы с приостановленным зашифрованным устройством и выполнение повторного шифрования (reencryption).
- В утилиту cryptsetup добавлены опции “–key-description” и “–new-key-description” для прикрепления описания к ключам.
- Добавлена возможность возобновления приостановленной операции повторного шифрования (reencryption), используя токен и ключи раздела.
- В реализацию команды “repair” добавлена проверка повреждения областей со слотами ключей LUKS.
- В команду veritysetup добавлена опция “–error-as-corruption” при которой любые ошибки обрабатываются как повреждение данных, соответственно можно настроить перезагрузку или переход в состояние panic при ошибках, в случае использования опций “–restart-on-corruption” и “–panic-on-corruption”.
- Добавлена опциональная возможность использования библиотеки Mbed-TLS в качестве крипто-бэкенда (включается при сборке с опцией “–with-crypto_backend=mbedtls”).