É possível converter LUKS2 para LUKS versão 1 e, por extensão, alterar o uso de recursos que bloqueariam essa conversão?
O Fedora 30 usa o LUKS2 por padrão , no entanto, me deparei com uma situação em que preciso ficar com o LUKS versão 1. Especificamente, Relax-and-Recover( rear
) não suporta LUKS2 no momento .
A documentação menciona que a conversão entre LUKS2 e LUKS1 é possível sob certas condições:
Formulário de conversão no local LUKS1
Para permitir testes e transição fáceis para o novo formato LUKS2, há um novo comando convert que permite a conversão in-loco do formato LUKS1 e, se não houver opções incompatíveis, também a conversão de volta do formato LUKS2 para LUKS1.
Observe que este comando pode ser usado apenas em alguns dispositivos LUKS1 (alguns tamanhos de cabeçalho de dispositivo não são suportados). Este comando é perigoso, nunca o execute sem backup de cabeçalho! Se algo falhar no meio da conversão (erro de E/S), o cabeçalho será destruído. (Observe que a conversão requer a movimentação da área de dados do keylot para um deslocamento diferente.)
Para converter o cabeçalho no local para o formato LUKS2, use
$ cryptsetup convert --type luks2Para convertê-lo de volta para o formato LUKS1, use
$ cryptsetup convert --type luks1Você pode verificar a versão do LUKS com o comando luksDump.
$ cryptsetup luksDumpObserve que alguns recursos do LUKS2 tornarão o cabeçalho incompatível com o LUKS1 e a conversão será rejeitada (por exemplo, usando o novo Argon2 PBKDF ou extensões de integridade). Alguns atributos menores podem ser perdidos na conversão.
Esse último ponto é um problema, pois parece que esse recurso é usado por padrão pelo menos no Fedora.
$ sudo cryptsetup convert /dev/sda3 --type luks1
WARNING!
========
This operation will convert /dev/sda3 to LUKS1 format.
Are you sure? (Type uppercase yes): YES
Cannot convert to LUKS1 format - keyslot 0 is not LUKS1 compatible.
$ sudo cryptsetup luksDump /dev/sda3
LUKS header information
Version: 2
Epoch: 3
Metadata area: 16384 [bytes]
Keyslots area: 16744448 [bytes]
UUID: 974b19f8-021a-46b6-a089-a46e06e6e746
Label: (no label)
Subsystem: (no subsystem)
Flags: (no flags)
Data segments:
0: crypt
offset: 16777216 [bytes]
length: (whole device)
cipher: aes-xts-plain64
sector: 512 [bytes]
Keyslots:
0: luks2
Key: 512 bits
Priority: normal
Cipher: aes-xts-plain64
Cipher key: 512 bits
PBKDF: argon2i
Time cost: 4
Memory: 973984
Threads: 4
Salt: af 33 7e 3b 6c bb 55 dc e3 dc 2b 07 c5 9e c3 6d
f2 c9 08 be 2f 1d 8b 78 8a 33 65 90 41 e3 05 10
AF stripes: 4000
AF hash: sha256
Area offset:32768 [bytes]
Area length:258048 [bytes]
Digest ID: 0
Tokens:
Digests:
0: pbkdf2
Hash: sha256
Iterations: 100361
Salt: d9 30 b6 7f 60 d0 e0 19 39 f6 a2 38 ae 22 88 43
1e 5c 74 75 e6 b5 dd db a9 e7 29 1a 74 64 9c 0f
Digest: ae 06 29 5f 71 49 bd c8 75 de 53 e8 95 94 d3 38
57 43 5f 0e 1e ac 6d 59 fb 34 a3 97 e4 5a 94 0c