Определите, в каком слоте Luks находится парольная фраза

Определите, в каком слоте Luks находится парольная фраза

У меня есть зашифрованный раздел luks, который был защищен парольной фразой и файлом ключа. Файл ключа был для обычного доступа, а парольная фраза была в запечатанном конверте для экстренных случаев. Прошло несколько месяцев, и я случайно уничтожил файл ключа, поэтому я восстановил его, используя парольную фразу из конверта. Теперь я хочу знать, у меня есть два активных слота ключей, но я не знаю, какой из них содержит бесполезную парольную фразу файла ключа, а какой — мою аварийную парольную фразу. Очевидно, если я удалю не тот, я потеряю все данные на диске.

#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

решение1

Как вы уже обнаружили, вы можете использовать его, cryptsetup luksDumpчтобы увидеть, в каких слотах для ключей находятся ключи.

Вы можете проверить парольную фразу для определенного слота с помощью

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

Это сработает, если вы введете правильную парольную фразу для слота ключа 0, и не сработает в противном случае (в том числе, если парольная фраза верна для какого-либо другого слота ключа).

Если вы забыли одну из парольных фраз, то вы сможете найти, в каком слоте она находится, только методом исключения, а если вы забыли две парольные фразы, то нет никакого способа определить, какая из них какая (иначе хеш парольной фразы будет взломан).

Чтобы удалить забытую вами парольную фразу, вы можете безопасно запустить cryptsetup luksKillSlot /dev/sda2 0и ввести парольную фразу, которую вы помните. Чтобы стереть слот ключа, cryptsetupтребуется парольная фраза для другого слота ключа, по крайней мере, когда он не запущен в пакетном режиме (т. е. нет --batch-mode, --key-file=-или эквивалентная опция).

решение2

Более простой способ (сейчас?) — использовать команду с опцией --verbose, но не указывать ее --key-slot:

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

Он автоматически проверит нужный слот, и вам не придется тратить время на поиск подходящего :)

Связанный контент