LUKS가 키 파일을 사용하여 자동으로 암호를 해독하지 못했습니다. 디버깅할 수 있도록 도와주세요.

LUKS가 키 파일을 사용하여 자동으로 암호를 해독하지 못했습니다. 디버깅할 수 있도록 도와주세요.

Orico 케이스 내부의 HDD 드라이브에 USB를 통해 Raspberry Pi가 연결되어 있고 별도의 전원 공급 장치가 있습니다. 다음 명령을 사용하여 드라이브를 암호화했습니다.

cryptsetup luksFormat /dev/sda

그런 다음 다음 명령을 사용하여 키 파일을 만들었습니다.

dd if=/dev/random bs=32 count=1 of=/home/ubuntu/luks/luks.key

다음 명령을 사용하여 이 파일을 두 번째 키로 추가합니다.

cryptsetup luksAddKey /dev/sda /home/ubuntu/luks/luks.key

다음 행을 다음에 추가하십시오 /etc/crypttab.

vault /dev/sda none

시스템 시작 중에 드라이브의 암호가 자동으로 해독되도록 할 수 있는 모든 조치를 취했다고 생각했지만 그런 일은 일어나지 않았습니다. 재부팅할 때마다 수동으로 이 작업을 수행해야 합니다. 나를 괴롭히는 또 다른 것은 출력입니다 cryptsetup luksDump /dev/sda. 두 개의 슬롯이 "활성화"될 것으로 예상하지만 출력에는 표시되지 않습니다.

ubuntu@ubuntu:~$ sudo cryptsetup luksDump /dev/sda
sudo: unable to resolve host ubuntu: Temporary failure in name resolution
LUKS header information
Version:        2
Epoch:          4
Metadata area:  16384 [bytes]
Keyslots area:  16744448 [bytes]
UUID:           ab24c6e5-9286-4e6d-a874-29755338afa1
Label:          (no label)
Subsystem:      (no subsystem)
Flags:          (no flags)

Data segments:
  0: crypt
    offset: 16777216 [bytes]
    length: (whole device)
    cipher: aes-xts-plain64
    sector: 512 [bytes]

Keyslots:
  0: luks2
    Key:        512 bits
    Priority:   normal
    Cipher:     aes-xts-plain64
    Cipher key: 512 bits
    PBKDF:      argon2i
    Time cost:  4
    Memory:     270573
    Threads:    4
    Salt:       b8 50 50 6c b2 54 45 ea 36 45 66 1d 61 d1 e9 94 
                87 7c 67 d3 a8 f3 3b 54 04 b6 46 7b 25 0d d2 89 
    AF stripes: 4000
    AF hash:    sha256
    Area offset:32768 [bytes]
    Area length:258048 [bytes]
    Digest ID:  0
  1: luks2
    Key:        512 bits
    Priority:   normal
    Cipher:     aes-xts-plain64
    Cipher key: 512 bits
    PBKDF:      argon2i
    Time cost:  4
    Memory:     268825
    Threads:    4
    Salt:       55 e6 be a8 55 45 61 3c 1b 6e 6d 7a b3 70 40 32 
                fc 4f 95 71 f0 13 52 c7 a1 69 cb 73 66 0b a9 6f 
    AF stripes: 4000
    AF hash:    sha256
    Area offset:290816 [bytes]
    Area length:258048 [bytes]
    Digest ID:  0
Tokens:
Digests:
  0: pbkdf2
    Hash:       sha256
    Iterations: 39527
    Salt:       62 9b 83 b6 04 f3 b0 aa 36 21 bc bf 28 aa 1d 3c 
                ad 89 8a 5c 0d 7a d2 f4 0f 6e d4 09 b2 33 0b d4 
    Digest:     45 42 fc 30 22 95 12 26 3f 78 8c 56 d7 b0 c3 d9 
                10 4e 32 99 93 3c 10 48 a3 df ab 89 77 89 14 1f 

이 문제가 USB 드라이브로 연결된 HDD와 관련이 있을 수 있다고 생각하시나요? 앞에서 언급했듯이 이 LUKS 볼륨을 수동으로 열면 문제가 없습니다. 이 문제를 디버깅하도록 도와주세요.

답변1

에 키 파일을 지정해야 합니다 /etc/crypttab. 여기에 넣으면 none"비밀번호 요청"으로 해석됩니다.

에서 man crypttab:

세 번째 필드는 암호화 비밀번호를 지정합니다. 이 필드가 존재하지 않거나 비밀번호가 "none" 또는 "-"로 설정된 경우 시스템 부팅 중에 비밀번호를 수동으로 입력해야 합니다. 그렇지 않으면 이 필드는 암호화된 비밀번호가 포함된 파일의 절대 경로로 해석됩니다.

이는 luksAddKeyLUKS 장치에 새로운 비밀번호 없는 키슬롯을 추가하거나, 새 비밀번호로 보호되는 새 키슬롯을 추가하거나, 파일에서 읽은 비밀번호를 추가한다는 의미는 아닙니다. 구문 /home/ubuntu/luks/luks.key- 이것은 키/dm이 아닙니다. LUKS에서 사용하는 crypt는 LUKS 장치를 잠금 해제/열기 위해 필요한 "바이너리 비밀번호"일 뿐입니다.

crypttab 항목을 다음으로 변경하십시오.

vault /dev/sda /home/ubuntu/luks/luks.key

그러면 문제가 해결될 것입니다.

출력은 luksDump양호합니다. LUKS 버전 2로 변경되어 더 이상 라인을 인쇄하지 않습니다 Key Slot X: ENABLED/DISABLED(LUKS 2의 경우 LUKS 1에 대해 계속 인쇄함).

관련 정보