web-dev-qa-db-ja.com

パスフレーズが含まれているラックスロットを特定する

パスフレーズとキーファイルで保護されたluks暗号化パーティションがあります。キーファイルは日常的なアクセス用であり、パスフレーズは緊急用の封筒に入れられていました。 5か月が経過し、誤ってキーファイルを細断処理したので、封筒のパスフレーズを使用して回復しました。知りたいのですが、アクティブなキースロットが2つありますが、どれが役に立たないキーファイルのパスフレーズを含み、どれが緊急パスフレーズを含んでいるかがわかりません。明らかに、間違ったものを削除すると、ドライブ上のすべてのデータが失われます。

#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
20
Huckle

発見したように、cryptsetup luksDumpを使用して、どのキースロットにキーがあるかを確認できます。

特定のスロットのパスフレーズを確認するには、

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

これは、キースロット0に正しいパスフレーズを入力した場合は成功し、それ以外の場合は失敗します(他のキースロットのパスフレーズが正しい場合を含む)。

パスフレーズの1つを忘れた場合は、削除することでどのスロットにあるかを見つけることができます。パスフレーズの2つを忘れた場合は、どちらが正しいかを判別する方法がありません(それ以外の場合、パスフレーズハッシュは壊れます)。

忘れたパスフレーズを削除するには、cryptsetup luksKillSlot /dev/sda2 0を安全に実行して、覚えているパスフレーズを入力します。キースロットをワイプするには、少なくともバッチモードで実行されていない場合(つまり、--batch-mode--key-file=-または同等のオプションがない場合)、cryptsetupには別のキースロットのパスフレーズが必要です。 。

より簡単な方法(今?)は、--verboseオプションを指定せずに--key-slotを指定せずにコマンドを使用することです。

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

適切なスロットを見つけるためにループすることなく、適切なスロットが自動的にチェックされます。

7
ratnoz