Détemine dans lequel se trouve un mot de passe

15

J'ai une partition cryptée luks qui a été protégée par une phrase secrète et un fichier de clé. Le fichier de clés était destiné à un accès de routine et la phrase secrète se trouvait dans une enveloppe scellée pour les urgences. Des mois ont passé et j'ai accidentellement déchiqueté le fichier de clés, alors j'ai récupéré en utilisant la phrase secrète de l'enveloppe. Maintenant, je veux savoir, j'ai deux emplacements de clé actifs mais je ne sais pas qui contient la phrase de passe du fichier de clé inutile et qui contient ma phrase de passe d'urgence. Évidemment, si je supprime la mauvaise, je perdrai toutes les données sur le disque.

#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
la source
2
Il s'avère que cela luksKillSlotdemande une phrase secrète d'un autre emplacement, donc il n'y a aucun risque à détruire la dernière clé que vous avez. Cependant, je pense que la question d'origine est toujours valable.
Huckle

Réponses:

14

Comme vous l'avez découvert, vous pouvez utiliser cryptsetup luksDumppour voir quels emplacements de clés ont des clés.

Vous pouvez vérifier la phrase secrète d'un emplacement particulier avec

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

Cela réussit si vous entrez la phrase de passe correcte pour l'emplacement de clé 0 et échoue dans le cas contraire (y compris si la phrase de passe est correcte pour un autre emplacement de clé).

Si vous avez oublié l'une des phrases secrètes, vous ne pouvez trouver que l'emplacement dans lequel elle se trouve par élimination, et si vous avez oublié deux des phrases secrètes, il n'y a aucun moyen de savoir laquelle est laquelle (sinon le hachage de la phrase secrète serait rompu).

Pour supprimer la phrase secrète que vous avez oubliée, vous pouvez exécuter en toute sécurité cryptsetup luksKillSlot /dev/sda2 0et saisir la phrase secrète dont vous vous souvenez. Pour effacer une fente clé, cryptsetupnécessite le mot de passe pour une fente clé différente, au moins quand il ne fonctionne pas en mode batch (c. -à- pas --batch-mode, --key-file=-ou option équivalente).

Gilles 'SO- arrête d'être méchant'
la source
6

Une manière plus simple (maintenant?) Consiste à utiliser la commande avec l' --verboseoption mais sans spécifier celle- --key-slotci:

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

Il vérifiera automatiquement pour vous la bonne fente, sans vous avoir en boucle pour trouver la bonne :)

ratnoz
la source