Não há como recuperar tudo. (*)
Com o LUKS, a frase secreta usada para abrir a criptografia e a chave mestra realmente usada para a criptografia não têm relação alguma entre si.
Basicamente, sua frase secreta descriptografa uma chave completamente aleatória, e essa chave aleatória é armazenada no cabeçalho LUKS. Perder o cabeçalho LUKS completamente (ou mesmo alterar um único bit do material da chave) torna-o incapaz de obter a chave mestra usada para o volume.
É também por isso que, com o LUKS, você pode ter 8 senhas diferentes e alterar cada uma dessas senhas sempre que desejar, sem criptografar novamente todos os dados. Não importa com que frequência você mude a senha LUKS, a chave mestra permanece a mesma.
A recuperação da chave mestra é explicitamente NÃO parte do conceito LUKS, exatamente o oposto; O LUKS executa várias etapas para evitar que você (ou qualquer pessoa) recupere a chave mestra de um cabeçalho LUKS (parcialmente) sobrescrito. A documentação do LUKS até o aconselha a NÃO fazer backup do cabeçalho, pois um cabeçalho de backup fora do seu controle significa perder a capacidade de declarar uma senha antiga inválida. Como a antiga frase secreta ainda seria armazenada e utilizável no cabeçalho antigo.
(*) A única exceção a essa regra é se o contêiner ainda estiver aberto. Para um mapeamento de cripta ativo, pode-se conseguir obter a chave mestra com dmsetup table --showkeys
. Então, se você matou seu cabeçalho LUKS em um sistema em execução e percebeu imediatamente, você poderia criar um novo cabeçalho LUKS com a chave mestra conhecida.
Sem a chave mestra, você não pode continuar e é impossível forçar a chave mestra brutalmente, esse é o ponto principal da criptografia em primeiro lugar. Bem, você poderia fazê-lo com poder infinito de CPU e / ou tempo, então se você quiser deixar seus descendentes com um quebra-cabeça, mantenha uma cópia dos dados criptografados e passe-os adiante ...;)