Sprawdź, w którym szczelinie luks znajduje się hasło

15

Mam partycję zaszyfrowaną przez Luksa, która była chroniona hasłem i plikiem klucza. Plik klucza służył do rutynowego dostępu, a hasło znajdowało się w zapieczętowanej kopercie na wypadek awarii. Minęły miesiące maja i przypadkowo zniszczyłem plik klucza, więc odzyskałem go, używając hasła z koperty. Teraz chcę wiedzieć, że mam dwa aktywne gniazda kluczy, ale nie wiem, które zawiera bezużyteczne hasło pliku klucza i które zawiera moje hasło bezpieczeństwa. Oczywiście, jeśli usunę niewłaściwy, stracę wszystkie dane na dysku.

#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
Biodro
źródło
2
Okazuje się, że luksKillSlotprosi o hasło z innego gniazda, więc nie ma ryzyka zniszczenia ostatniego klucza. Uważam jednak, że pierwotne pytanie jest nadal aktualne.
Huckle,

Odpowiedzi:

14

Jak odkryłeś, możesz użyć, cryptsetup luksDumpaby zobaczyć, które gniazda kluczy mają klucze.

Możesz sprawdzić hasło dla określonego miejsca za pomocą

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

To się powiedzie, jeśli wpiszesz poprawne hasło dla klucza 0 i inaczej się nie powiedzie (w tym jeśli hasło jest poprawne dla innego klucza).

Jeśli zapomniałeś jedno z haseł, możesz tylko znaleźć, które gniazdo jest w drodze eliminacji, a jeśli zapomniałeś dwóch haseł, nie ma sposobu, aby powiedzieć, które jest (w przeciwnym razie hash hasła byłby zepsuty).

Aby usunąć zapomniane hasło, możesz bezpiecznie uruchomić cryptsetup luksKillSlot /dev/sda2 0i wprowadzić zapamiętane hasło. Wytrzeć kluczową gniazdo, cryptsetupwymaga hasła do innego gniazda klucza, przynajmniej wtedy, gdy nie jest uruchomiony w trybie wsadowym (to znaczy nie --batch-mode, --key-file=-lub równoważne opcji).

Gilles „SO- przestań być zły”
źródło
6

Prostszym sposobem (teraz?) Jest użycie polecenia z --verboseopcją, ale bez podania --key-slotjednego:

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

Automatycznie sprawdzi dla ciebie odpowiedni slot, bez konieczności zapętlania się w celu znalezienia dobrego :)

ratnoz
źródło