pbkdf-force-iterations를 사용하여 GRUB에서 LUKS 암호 해독 속도를 높입니다.

pbkdf-force-iterations를 사용하여 GRUB에서 LUKS 암호 해독 속도를 높입니다.

아래 지침을 따랐습니다.GRUB에서 LUKS 복호화 속도 높이기 - GRUB/팁과 요령 - ArchWiki. 가이드를 사용하여 전체 디스크 암호화를 만들었습니다.Full_Disk_Encryption_Howto_2019 - 커뮤니티 도움말 위키.

부팅 파티션 암호화 반복을 줄이고 싶습니다.

$ 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을 통해) 해당 키 슬롯에 대한 비밀번호를 제공해야 하며 새 비밀번호는 지정된 키 슬롯을 덮어씁니다.

키 슬롯이 지정되지 않고 아직 여유 키 슬롯이 있는 경우 이전 비밀번호가 포함된 키 슬롯이 지워지기 전에 새 비밀번호가 무료 키 슬롯에 배치됩니다.

사용 가능한 키 슬롯이 없으면 이전 비밀번호의 키 슬롯을 직접 덮어씁니다.

또한 키홈의 무작위 배열을 선호하는 이유 중 하나를 언급합니다.

경고: 키 슬롯을 덮어쓰는 경우 이 작업 중 미디어 오류로 인해 이전 암호가 지워진 후 덮어쓰기가 실패하고 LUKS 컨테이너에 액세스할 수 없게 될 수 있습니다.

일부 cryptsetup 명령을 사용하면 사용할 키 슬롯을 지정할 수 있습니다. 예를 들어 특정 슬롯을 삭제하거나 특정 여유 슬롯에 새 키를 추가할 수 있습니다. 따라서 원하는 순서대로 키를 얻는 방법에는 여러 가지가 있습니다.

(2.) 가장 많이 사용하는 키를 첫 번째 슬롯에 넣는 것이 가장 좋습니다. 그렇지 않으면 느린 슬롯이 먼저 시도됩니다. cryptsetup이 열릴 때 필요한 키 슬롯을 지정하는 것도 가능하지만 GRUB에서는 이를 지원하지 않을 수 있습니다.

LUKS 2에서는 키가 키홈 순서대로 전혀 시도되지 않습니다. 대신 JSON 메타데이터에 저장된 순서와 를 사용하여 설정할 수 있는 키 슬롯 우선 순위에 따라 다르지만 cryptsetup config --priorityGRUB가 이를 준수할지 여부는 알 수 없습니다.

(3.) 각각을 변경하거나 문제가 되는 것을 제거하십시오. (자신이 잠길 수 있으므로 키를 삭제하기 전에 LUKS 헤더를 백업하는 것이 좋습니다.)

luksDump(4.) 키 자료가 완전히 손실되었기 때문에 LUKS 마스터 키 또는 비밀번호를 출력에서 ​​파생할 수 없습니다. 그러나 드라이브를 어딘가에서 잃어버렸고 이를 발견한 사람이 UUID를 검색한 경우 게시물을 찾아서 그렇게 식별할 수 있습니다.

답변2

각 슬롯은 특정 암호에 해당합니다.

매개변수를 사용하여 비밀번호에 해당하는 슬롯을 확인할 수 있습니다.--test-passphrase

-S그런 다음 다음을 사용하여 특정 슬롯을 타겟팅 할 수 있습니다 .

추가 정보여기

관련 정보