cryptsetup open for luks: manipulação indevida do argumento --key-file

1

Uma questão relacionada seria: luksOpen não decriptografa com keyfile a menos que o argumento -key-file seja fornecido

No Ubuntu bionic com cryptsetup 2.0.2 , no entanto, encontro o seguinte problema:

ao abrir um dispositivo luks criptografado usando uma senha contida em um arquivo que funciona bem na chamada direta:

cat mypass.txt | sudo cryptsetup open --type luks /dev/sda1 enc-store

tentando usar o argumento documentado --key-file=- , que deve resultar no mesmo comportamento

cat mypass.txt | sudo cryptsetup open --type luks --key-file=- /dev/sda1 enc-store

apenas produzindo a mensagem atrasada

No key available with this passphrase.

isso é especialmente um problema ao tentar usar o script cryptdisks_start enc-store , que depende da opção --key-file=- , que produz a mensagem acima três vezes

que torna a vida um pouco menos agradável.

estou faltando alguma coisa aqui?

-thanks!

    
por qbit 22.08.2018 / 11:22

1 resposta

2

Há uma diferença entre os dois comandos, conforme descrito em man cryptsetup :

--key-file, -d name
Read the passphrase from file.

If the name given is "-", then the passphrase will be read from stdin. In this case, reading will not stop at newline characters.

Isso significa que, se você gerou seu arquivo usando echo , vi ou copiar / colar, provavelmente incluirá uma nova linha no final. se usado como stdin puro (sem --key-file option), ele terá sua nova linha final ignorada, mas quando usado como um parâmetro para --key-file , mesmo que seja o mesmo stdin ( --key-file=- ) ele terá essa nova linha incluída a frase secreta: ela se torna uma nova senha que é inválida.

Para verificar isso:

cat mypass.txt | tr -d '\r\n' | sudo cryptsetup open --type luks --key-file=- /dev/sda1 enc-store

Deve funcionar como pretendido (apenas no caso de eu remover qualquer CR também).

Se essa for a causa, basta remover esta nova linha: por exemplo

mv -i mypass.txt mypass.old && tr -d '\r\n' < mypass.old > mypass.txt

O que você provavelmente deve fazer de qualquer maneira é gerar uma nova senha a partir de números aleatórios puros, colocá-la em um arquivo seguro e incluí-la em um slot LUKS separado.

    
por 22.08.2018 / 13:07