LUKS 장치의 경우 해시 값이 어떻게든 파티션 헤더에 저장된다는 것을 알고 있습니다(이게 무슨 뜻인지는 잘 모르겠습니다). 하지만 이 경우 해시 값을 인쇄하는 방법을 모르겠습니다.
예를 들어, 표준 UNIX 시스템에서는 사용자 비밀번호 해시가 에 저장됩니다 /etc/shadow
. 비밀번호 해시를 보려면 해당 파일을 열어서 볼 수 있습니다.
그렇다면 LUKS 장치의 해시를 어떻게 추출합니까?
답변1
LUKS 헤더에 대한 일반 정보라면 시도해 보세요 luksDump
.
# cryptsetup luksDump /dev/loop0
LUKS header information for /dev/loop0
Version: 1
Cipher name: aes
Cipher mode: xts-plain64
Hash spec: sha1
Payload offset: 4096
MK bits: 256
MK digest: 67 77 17 e9 43 cf b2 e1 f3 a0 e2 0b 7a a9 fa a1 cf d8 e0 76
MK salt: f1 6a 09 51 55 e8 af d2 11 b2 73 1c cc ae b5 15
9e e9 dc 84 a5 22 aa b1 b3 0c 7c db 23 59 9a 14
MK iterations: 77625
UUID: ec59d9ad-39f1-4d5c-af9e-b35f34847561
Key Slot 0: ENABLED
Iterations: 311434
Salt: ed 69 d7 9d 7a 39 1a 23 3f 38 64 15 3f 38 dd 5f
90 1e ea 9f 5b 9f c3 59 f3 18 49 2f 9a 3f 4e c6
Key material offset: 8
AF stripes: 4000
Key Slot 1: DISABLED
Key Slot 2: DISABLED
Key Slot 3: DISABLED
Key Slot 4: DISABLED
Key Slot 5: DISABLED
Key Slot 6: DISABLED
Key Slot 7: DISABLED
실제 키를 찾고 있다면 dmsetup
열 때 표시됩니다.
# dmsetup table --showkeys
luksthing: 0 209711104 crypt aes-xts-plain64 c2349e71e00186c784a1d83917778fcaacb87382ea508aa41f6324f1e2f056eb 0 7:0 4096
이는 해시가 아니라 장치 잠금을 해제하는 실제 키입니다. 이 비밀번호가 있으면 더 이상 LUKS 비밀번호가 필요하지 않습니다.
# cryptsetup luksClose luksthing
# echo 0 209711104 crypt aes-xts-plain64 c2349e71e00186c784a1d83917778fcaacb87382ea508aa41f6324f1e2f056eb 0 7:0 4096 \
| dmsetup create luksthing
# file -s -L /dev/mapper/luksthing
/dev/mapper/luksthing: Linux rev 1.0 ext2 filesystem data, UUID=34fadafe-31cf-467d-84c0-c2d50bbcfcde (large files)
그렇기 때문에 시스템이 손상된 경우 다시 설치/재암호화해야 합니다. LUKS 비밀번호가 무엇이든 암호화 키가 있습니다.
답변2
해시값을 추출할 수 없습니다.거기 없어.
사용자가 로그인할 때 운영 체제에는 사용자가 입력한 비밀번호와 비교할 수 있는 비밀번호의 참조 사본이 있어야 합니다. 에 저장되어 있는 내용입니다 /etc/shadow
. 입력한 비밀번호가 참조 비밀번호와 동일하면 인증에 성공합니다. 비밀번호 복구를 어렵게 만들기 위해 시스템은 비밀번호를 저장하지 않고 비밀번호의 해시(무차별 대입 시도를 통해 비밀번호를 추측하기 어렵게 만드는 느린 솔트 해시)를 저장합니다.
암호화는 다르게 작동합니다. 그 목적은 스토리지에 접근하는 공격자로부터 보호하는 것입니다. 따라서 암호화 키는 기기에 저장된 것에서만 추출할 수 없습니다. 따라서 키는 기기에 저장되지 않고 기기에 저장된 정보와 사용자가 제공한 정보를 결합하여 구성됩니다. 일반적으로 키는 사용자가 제공한 비밀번호와 결합된 장치에 저장된 솔트를 기반으로 생성됩니다. 또한, 무차별 공격 시도를 늦추려면 이러한 값을 결합하는 과정을 느리게 해야 하며, 사용자의 비밀번호 외에 장치별 값(솔트)을 사용해야 동일한 비밀번호를 사용해도 동일한 키가 발생하지 않도록 해야 합니다. . 장치에 있는 것은 기본적으로 키를 생성하기 위해 비밀번호와 결합된 솔트일 뿐입니다.