Detemine em qual slot a frase secreta está inserida

15

Eu tenho uma partição criptografada por luks que foi protegida por uma senha e um arquivo de chave. O arquivo principal era para acesso rotineiro e a senha estava em um envelope selado para emergências. Os meses se passaram e eu destruí acidentalmente o arquivo da chave, então me recuperei usando a senha do envelope. Agora eu quero saber, tenho dois slots de chave ativos, mas não sei qual contém a frase secreta do arquivo-chave inútil e qual a minha frase secreta de emergência. Obviamente, se eu remover o errado, perderei todos os dados na unidade.

#cryptsetup luksDump /dev/sda2
LUKS header information for /dev/sda2

Version:        1
Cipher name:    aes
Cipher mode:    xts-plain64
Hash spec:      sha256
Payload offset: 4096
MK bits:        256
MK digest:      xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx 
MK salt:        xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx 
                xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx 
MK iterations:  371000
UUID:           28c39f66-dcc3-4488-bd54-11ba239f7e68

Key Slot 0: ENABLED
        Iterations:             2968115
        Salt:                   xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx 
                                xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx 
        Key material offset:    8
        AF stripes:             4000
Key Slot 1: ENABLED
        Iterations:             2968115
        Salt:                   xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx 
                                xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx 
        Key material offset:    264
        AF stripes:             4000
Key Slot 2: DISABLED
Key Slot 3: DISABLED
Key Slot 4: DISABLED
Key Slot 5: DISABLED
Key Slot 6: DISABLED
Key Slot 7: DISABLED
Huckle
fonte
2
Acontece que luksKillSlotpede uma senha de outro slot, para que não haja risco de destruir a última chave que você possui. No entanto, acredito que a pergunta original ainda é válida.
quer

Respostas:

14

Como você descobriu, pode usar cryptsetup luksDumppara ver quais slots de chave possuem chaves.

Você pode verificar a senha de um slot específico com

cryptsetup luksOpen --test-passphrase --key-slot 0 /dev/sda2 && echo correct

Isso será bem-sucedido se você digitar a senha correta para o slot da chave 0 e falhar de outra forma (inclusive se a senha estiver correta para outro slot de chave).

Se você esqueceu uma das frases secretas, poderá encontrar em qual slot ela está eliminada e se esqueceu duas frases secretas, não há como saber qual é qual (caso contrário, o hash da frase secreta seria quebrado).

Para remover a senha que você esqueceu, você pode executar cryptsetup luksKillSlot /dev/sda2 0e inserir com segurança a senha que você se lembra. Para limpar um slot de chave, é cryptsetupnecessária a senha para um slot de chave diferente, pelo menos quando não estiver em execução no modo de lote (por exemplo --batch-mode, não , --key-file=-ou opção equivalente).

Gilles 'SO- parar de ser mau'
fonte
6

Uma maneira mais simples (agora?) É usar o comando com a --verboseopção mas sem especificar o seguinte --key-slot:

# cryptsetup --verbose open --test-passphrase /dev/sda2
Enter passphrase for /dev/sda2: 
Key slot 4 unlocked.

Ele verificará automaticamente o slot certo, sem que você faça loop para encontrar o bom :)

ratnoz
fonte