Detecta en qué ranura está una frase de contraseña

15

Tengo una partición encriptada por luks que estaba protegida por una frase de contraseña y un archivo de clave. El archivo de clave era para acceso de rutina y la frase de contraseña estaba en un sobre cerrado para emergencias. Pasaron los meses de mayo y accidentalmente destruí el archivo de la clave, así que me recuperé usando la frase de contraseña del sobre. Ahora quiero saber, tengo dos ranuras de teclas activas, pero no sé cuál contiene la frase de contraseña del archivo de clave inútil y cuál tiene mi frase de contraseña de emergencia. Obviamente, si elimino el incorrecto, perderé todos los datos en el disco.

#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
Cadera
fuente
2
Resulta que luksKillSlotpide una frase de contraseña de otra ranura, por lo que no hay riesgo de destruir la última clave que tiene. Sin embargo, creo que la pregunta original sigue siendo válida.
Huckle

Respuestas:

14

Como ha descubierto, puede usar cryptsetup luksDumppara ver qué ranuras de teclas tienen claves.

Puede verificar la frase de contraseña para un espacio en particular con

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

Esto tiene éxito si ingresa la frase de contraseña correcta para la ranura de clave 0 y falla de otra manera (incluso si la frase de contraseña es correcta para alguna otra ranura de clave).

Si ha olvidado una de las frases de contraseña, entonces solo puede encontrar en qué ranura está eliminada, y si ha olvidado dos de las frases de contraseña, entonces no hay forma de saber cuál es cuál (de lo contrario, el hash de la frase de contraseña se rompería).

Para eliminar la frase de contraseña que ha olvidado, puede ejecutar cryptsetup luksKillSlot /dev/sda2 0e ingresar con seguridad la frase de contraseña que recuerda. Para borrar una ranura de clave, se cryptsetuprequiere la frase de contraseña para una ranura de clave diferente, al menos cuando no se ejecuta en modo por lotes (es decir --batch-mode, no , --key-file=-o una opción equivalente).

Gilles 'SO- deja de ser malvado'
fuente
6

Una forma más simple (¿ahora?) Es usar el comando con la --verboseopción pero sin especificar el siguiente --key-slot:

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

Verificará automáticamente la ranura correcta, sin tener que hacer un bucle para encontrar la buena :)

ratnoz
fuente