Tentukan slot slot kata sandi mana yang ada

15

Saya memiliki partisi terenkripsi luks yang dilindungi oleh frasa sandi dan file kunci. File kuncinya adalah untuk akses rutin dan frasa sandi dalam amplop tertutup untuk keadaan darurat. Berbulan-bulan berlalu dan saya tidak sengaja merobek-robek file kunci, jadi saya pulih dengan menggunakan kata sandi dari amplop. Sekarang saya ingin tahu, saya memiliki dua slot kunci aktif tetapi saya tidak tahu yang berisi frase pass file kunci tidak berguna dan yang memiliki kata sandi darurat saya di dalamnya. Jelas jika saya menghapus yang salah saya akan kehilangan semua data pada drive.

#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
sumber
2
Ternyata yang luksKillSlotmeminta frasa sandi dari slot lain, jadi tidak ada risiko menghancurkan kunci terakhir yang Anda miliki. Namun, saya yakin pertanyaan aslinya masih valid.
Huckle

Jawaban:

14

Seperti yang telah Anda temukan, Anda dapat menggunakan cryptsetup luksDumpuntuk melihat slot kunci mana yang memiliki kunci.

Anda dapat memeriksa frasa sandi untuk slot tertentu dengan

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

Ini berhasil jika Anda memasukkan frasa sandi yang benar untuk slot kunci 0 dan gagal jika tidak (termasuk jika frasa sandi itu benar untuk beberapa slot kunci lainnya).

Jika Anda lupa salah satu passphrases maka Anda hanya dapat menemukan slot mana yang ada dengan eliminasi, dan jika Anda lupa dua passphrases maka tidak ada cara untuk mengetahui mana yang (kalau tidak hash passphrase akan rusak).

Untuk menghapus frasa sandi yang Anda lupa, Anda dapat dengan aman menjalankan cryptsetup luksKillSlot /dev/sda2 0dan memasukkan frasa sandi yang Anda ingat. Untuk menghapus slot kunci, cryptsetupdiperlukan frasa sandi untuk slot kunci yang berbeda, setidaknya ketika slot tidak berjalan dalam mode batch (yaitu tidak ada --batch-mode, --key-file=-atau opsi yang setara).

Gilles 'SO- berhenti menjadi jahat'
sumber
6

Cara yang lebih sederhana (sekarang?) Adalah menggunakan perintah dengan --verboseopsi tetapi tanpa menentukan yang --key-slot:

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

Ini akan secara otomatis memeriksa Anda slot yang tepat, tanpa Anda harus mencari yang bagus :)

ratnoz
sumber