pbkdf-force-iterations を使用して GRUB で LUKS 復号化を高速化します。

pbkdf-force-iterations を使用して GRUB で LUKS 復号化を高速化します。

以下の指示に従いました。GRUBでLUKS復号化を高速化する - GRUB/ヒントとコツ - ArchWiki。ガイドを使用してフルディスク暗号化を作成しました。Full_Disk_Encryption_Howto_2019 - コミュニティヘルプ Wiki

ブートパーティションの暗号化の繰り返しを減らしたいです。

$ sudo cryptsetup luksDump /dev/nvme0n1p1 
LUKS header information for /dev/nvme0n1p1

Version:        1
Cipher name:    aes
Cipher mode:    xts-plain64
Hash spec:      sha256
Payload offset: 4096
MK bits:        512
MK digest:      ec 22 27 de c1 ef 40 0f a5 cf 37 d3 96 5c d5 b2 6e c8 dd 90 
MK salt:        62 1a 05 81 ba 60 3b 0d b1 8a 9f f0 04 98 27 54 
                06 b6 8d 72 53 23 09 47 ea 5f 80 1d d7 c5 ca 50 
MK iterations:  305173
UUID:           586de9a0-14c7-40d7-b721-7fdba2e3b184

Key Slot 0: DISABLED
Key Slot 1: ENABLED
        Iterations:             4882774
        Salt:                   2a 22 d6 07 a3 48 ad 83 f9 f4 03 a4 a1 e7 95 ab 
                                2c 95 82 cf c1 73 99 1c 74 70 00 5b b8 1b bf 5f 
        Key material offset:    512
        AF stripes:             4000
Key Slot 2: ENABLED
        Iterations:             4888466
        Salt:                   65 fe 32 1d c4 c6 1b 38 28 4c 19 3c c0 27 5a d9 
                                83 92 13 8e f4 84 61 00 b5 f6 6c f8 75 15 36 52 
        Key material offset:    1016
        AF stripes:             4000
Key Slot 3: ENABLED
        Iterations:             4888466
        Salt:                   ce 5b b3 e1 f4 85 45 db fd 49 79 71 b1 02 c7 dc 
                                d7 60 a6 36 8b 82 95 20 8e 6e 1d ce 2b 35 1b 13 
        Key material offset:    1520
        AF stripes:             4000
Key Slot 4: DISABLED
Key Slot 5: DISABLED
Key Slot 6: DISABLED
Key Slot 7: DISABLED

3つのスロットが有効になっていることがわかります。

繰り返し回数の変更

$ sudo cryptsetup luksChangeKey --pbkdf-force-iterations 1000   /dev/nvme0n1p1
Enter passphrase to be changed: 
Enter new passphrase: 
Verify passphrase: 
$ sudo cryptsetup luksDump /dev/nvme0n1p1 
LUKS header information for /dev/nvme0n1p1

Version:        1
Cipher name:    aes
Cipher mode:    xts-plain64
Hash spec:      sha256
Payload offset: 4096
MK bits:        512
MK digest:      ec 22 27 de c1 ef 40 0f a5 cf 37 d3 96 5c d5 b2 6e c8 dd 90 
MK salt:        62 1a 05 81 ba 60 3b 0d b1 8a 9f f0 04 98 27 54 
                06 b6 8d 72 53 23 09 47 ea 5f 80 1d d7 c5 ca 50 
MK iterations:  305173
UUID:           586de9a0-14c7-40d7-b721-7fdba2e3b184

Key Slot 0: ENABLED
        Iterations:             4888466
        Salt:                   93 c2 c4 fe 95 ab 24 44 9e dd 26 90 c1 cf a2 66 
                                19 80 d3 4b f9 e8 b3 5a 0e a1 9f 6a de d8 60 ea 
        Key material offset:    8
        AF stripes:             4000
Key Slot 1: ENABLED
        Iterations:             4882774
        Salt:                   2a 22 d6 07 a3 48 ad 83 f9 f4 03 a4 a1 e7 95 ab 
                                2c 95 82 cf c1 73 99 1c 74 70 00 5b b8 1b bf 5f 
        Key material offset:    512
        AF stripes:             4000
Key Slot 2: ENABLED
        Iterations:             1000
        Salt:                   65 fe 32 1d c4 c6 1b 38 28 4c 19 3c c0 27 5a d9 
                                83 92 13 8e f4 84 61 00 b5 f6 6c f8 75 15 36 52 
        Key material offset:    1016
        AF stripes:             4000
Key Slot 3: DISABLED
Key Slot 4: DISABLED
Key Slot 5: DISABLED
Key Slot 6: DISABLED
Key Slot 7: DISABLED

質問

  1. 繰り返し回数を変更した後は、以前にキーホーム0が有効になるのではなく、無効になっていることを確認できます。キースロットはランダムに割り当てられていますか?それはそんなに重要なのか?
  2. 開始速度を上げるには、すべてのキー溝の繰り返し数を1000に減らす必要がありますか?キーホームが順番にチェックされるのを覚えているからです。
  3. すべてのキースロットに対して反復回数を1000にする方法は?
  4. 上記のコマンドで表示される情報は非公開なので、共有してはいけませんか?

答え1

(1.) cryptsetup は内部的な理由でキースロットを交換します。残念ながら、これを処理する必要があります。

cryptsetup luksChangeKey マンページから:

キースロットが指定されている場合(--key-slotを介して)、そのキースロットのパスワードを指定する必要があり、新しいパスワードは指定されたキースロットを上書きします。

キースロットが指定されておらず、まだ空きキースロットがある場合は、古いパスワードを含むキースロットが消去される前に、新しいパスワードが無料のキースロットに配置されます。

利用可能なキースロットがない場合は、古いパスワードのキースロットを直接上書きします。

また、キーホームのランダムな配列を好む理由の1つに言及しています。

警告:キースロットを上書きすると、この操作中にメディアエラーが発生したため、古いパスワードが消去された後に上書きが失敗し、LUKSコンテナにアクセスできなくなる可能性があります。

一部の cryptsetup コマンドでは、使用するキースロットを指定できます。たとえば、特定のスロットを削除したり、特定の空きスロットに新しいキーを追加したりできます。したがって、必要な順序でキーを取得する方法はいくつかあります。

(2.) 最も使用するキーを最初のスロットに入れるのが最善です。それ以外の場合は、遅いスロットが最初に試行されます。 cryptsetupが開かれるときに必要なキースロットを指定することも可能ですが、GRUBはそれをサポートしていない可能性があります。

LUKS 2では、キーはキーホームの順序でまったく試行されません。代わりに、JSONメタデータに格納されている順序とを使用して設定できるキースロットの優先順位によって異なりますが、cryptsetup config --priorityGRUBがそれに準拠しているかどうかはわかりません。

(3.)それぞれを変更するか、問題になるものを取り除きます。 (自分がロックされる可能性があるため、キーを削除する前にLUKSヘッダをバックアップすることをお勧めします。)

luksDump(4.)キーデータが完全に失われたため、LUKSマスターキーまたはパスワードを出力から派生することはできません。ただし、ドライブがどこかで失われたことを発見した人がUUIDを検索した場合は、投稿を見つけてそれを識別できます。

答え2

各スロットは特定のパスワードに対応します。

パラメータを使用して、パスワードに対応するスロットを確認できます。--test-passphrase

-Sその後、以下を使用して特定のスロットをターゲティングできます。

追加情報ここ

関連情報