Преобразование LUKS2 обратно в LUKS версии 1

Из справочной страницы локали:

Programs in the OpenBSD base system ignore the locale except for the character encoding, and it is not recommended to use any of these variables except that the following non-default setting is supported as an option:

export LC_CTYPE=en_US.UTF-8

Затем установка LC_CTYPEна pt_BR.UTF-8работает, и теперь я получаю правильные имена файлов.

3
12.08.2019, 03:57
1 ответ

Преобразование LUKS1 в LUKS2, а затем обратно в LUKS1 работает нормально. Он начинается с LUKS2, а затем преобразуется в LUKS1, что вызывает проблемы. По-видимому, cryptsetup convertне может выполнять преобразование между ключами LUKS2 argon2iи ключами LUKS1 pbkdf2.

Настройка:

# truncate -s 100M luks1.img
# truncate -s 100M luks2.img
# cryptsetup luksFormat --type luks1 luks1.img
# cryptsetup luksFormat --type luks2 luks2.img

Тест с изначально luks1:

# cryptsetup convert luks1.img --type luks2
WARNING!
========
This operation will convert luks1.img to LUKS2 format.


Are you sure? (Type uppercase yes): YES

# cryptsetup convert luks1.img --type luks1

WARNING!
========
This operation will convert luks1.img to LUKS1 format.


Are you sure? (Type uppercase yes): YES

У нас работает LUKS1 -> LUKS2 -> LUKS1.

Тест с изначально luks2:

# cryptsetup convert luks2.img --type luks1

WARNING!
========
This operation will convert luks2.img to LUKS1 format.


Are you sure? (Type uppercase yes): YES
Cannot convert to LUKS1 format - keyslot 0 is not LUKS1 compatible.

Та же история с исходным файлом luks1.img, если добавить еще один ключ в формате LUKS2.

Но поскольку мы можем добавить ключи argon2i к исходному luks1, возможно, мы можем добавить ключ pbkdf к исходному luks2? С этим тоже были некоторые странные проблемы, но после некоторых проб и ошибок я остановился на:

# cryptsetup luksConvertKey --pbkdf=pbkdf2 luks2.img
Enter passphrase for keyslot to be converted: I have a sudden craving for butternut biscuits.

И тогда работает (при условии, что был единственный ключ ).

# cryptsetup convert luks2.img --type luks1 

WARNING!
========
This operation will convert luks2.img to LUKS1 format.


Are you sure? (Type uppercase yes): YES

Но это не совсем то же самое, что и исходный заголовок LUKS1 (, в частности Payload offset: 32768выделяется ). Теперь LUKS1 изменил смещение своих данных до (, изначально он не был выровнен по MiB ), поэтому стороннее -программное обеспечение должно иметь возможность обрабатывать необычные смещения, но вы никогда не знаете наверняка.

LUKS2 также имеет другие особенности, которые делают невозможным преобразование (без устаревшего повторного -шифрования ), поэтому описанный здесь метод охватывает только самый простой случай.

7
27.01.2020, 21:24

Теги

Похожие вопросы