Esta pergunta é sobre a criptografia opcional de dados do usuário com a distribuição Linux ao vivo KNOPPIX v6.2 (2009-11-18), que pelo que entendi é baseada no Debian.
Eu não uso mais esta versão antiga, mas estou tentando recuperar dados de anos do arquivo de dados persistente knoppix-data.aes criado pelo KNOPPIX v6.2 nos prompts de inicialização. O arquivo é um byte menor que 4 GiB.
Eu esperava que alguém que conhecesse os padrões de criptografia do Linux desde o final dos anos 2000 pudesse fornecer algumas informações sobre esse arquivo (como explicarei abaixo). Não estou muito familiarizado com os padrões de criptografia do Linux e estou um pouco sobrecarregado com a miríade de termos que vejo (como "LUKS", "dm-crypt", etc.) - não tenho certeza de quais, se houver, se aplica à minha situação com o Knoppix do final dos anos 2000.
Obviamente, o ".aes" no nome do arquivo indica criptografia AES. A princípio, suspeitei que estivesse digitando a senha incorretamente, mas agora me pergunto se poderia haver outro problema que tornaria inúteis minhas tentativas de digitar a senha corretamente. vou explicar:
Quando visualizo o arquivo com um editor hexadecimal, é surpreendente ver que o início do arquivo é uma lista em texto simples de nomes de arquivos e hashes, por exemplo:
f4374a5897aafd09a2439f6c3f4a961d5cc7c1a1 *autorun.bat
eaf953dce8de1442e4e32769260e22435a70f3bc *autorun.inf
(etc.)
(também estão incluídos hashes para muitos arquivos que obviamente estão relacionados ao Knoppix, como KNOPPIX/knoppix-logo-small.png , para dar um exemplo)
Os bytes iniciais parecem corresponder exatamente ao arquivo de texto simples /mnt-system/KNOPPIX/sha1sums (na unidade USB onde o Knoppix está instalado, então aparentemente faz parte da instalação do Knoppix). Depois disso, há extensões de bytes nulos (00) e, em seguida, rabiscos aleatórios. Eu esperava que a coisa toda fosse um rabisco aleatório; no contexto da criptografia AES, o texto não criptografado no início do arquivo ".aes" parece incongruente.
Como teste, desliguei, renomei o arquivo AES original, reiniciei e criei outro knoppix-data.aes de 256 MiB, com a senha "123456789". Este não contém o texto não criptografado no início e posso escrever nele (e descriptografá-lo com sucesso nas inicializações subsequentes).
Mas eu não sei sobre esse formato de arquivo opaco (ou onde está a documentação para ele), exceto que (presumivelmente) envolve um algoritmo AES (mas não tenho detalhes sobre o modo de operação, derivação de chave, cabeçalho etc.) . Em particular, é normal ter esse material de texto claro (sha hashes e nomes de arquivos) no início do arquivo, como algum tipo de cabeçalho, talvez? Ou indicaria que o arquivo de alguma forma foi corrompido (como por ser concatenado com o arquivo sha1sums em algumas circunstâncias bizarras)?
Se a resposta for que é normal que as somas sha1 do texto claro estejam lá, isso significa que preciso fornecer um deslocamento para o losetup para passar do texto claro? estou usando atualmente
echo "mypassword" | losetup -p 0 -e aes -k 256 /dev/loop2 knoppix-data.aes
mount /dev/loop2 /media/mydir/
para evitar ter que reiniciar toda vez que eu quiser tentar descriptografia. Isso funciona para a versão de teste de 256 MiB do knoppix-data.aes , com senha "123456789" e sem texto claro no início, mas não para o arquivo original de 4 GiB que tem os hashes de texto claro (reclama que o sistema de arquivos não está especificado, o que presumivelmente significa que não pode ser determinado automaticamente, o que presumivelmente significa que a descriptografia produziu rabiscos em vez dos dados desejados, possivelmente porque o texto claro não deveria estar lá ou porque o losetup precisa de um deslocamento para passar por ele).
Bem, a corrupção parece ser a única explicação possível (alguém fez um
cp file /dev/loopX
ou similar). loop aes não tem metadados, então o arquivo deve ser aleatório (talvez exceto para setores que nunca foram gravados, ou seja, "espaço livre").Você não quer um deslocamento ímpar, você precisa usar o deslocamento original para ter alguma chance de descriptografar as partes que não foram substituídas.
Infelizmente loop aes não é um padrão muito consistente, veja também observações loop-aes do FAQ do cryptsetup .
O único caso em que um deslocamento alterado seria aplicável é se o arquivo foi realmente produzido por
cat cleartextfile aesfile > newaesfile
ou similar, ou seja, se os dados fossem inteiros, mas movidos para um deslocamento posterior no arquivo. Mas então você teria um tamanho de arquivo estranho, não 4G nítido, então você pode descartar esse.Bem, isso é esperado se os cabeçalhos do sistema de arquivos forem substituídos - você precisa examinar os dados brutos descriptografados para descobrir se há algo que não seja sem sentido nele. O que quer que seja texto claro no arquivo aes será sem sentido na visualização descriptografada, não importa qual senha você escolha...