Fnu에 2 단계를 사용하기 위해 GnuPG와 함께 LUKS (dm-crypt)를 어떻게 사용합니까?


9

Ubuntu에서 전체 디스크 암호화를 사용하는 경우 (homedir 암호화와 반대) LUKS를 사용하는 dm-crypt는 볼륨을 암호화하는 데 사용됩니다. 설치 프로그램 (적어도 12.04 대체)에서 암호 또는 키 파일을 사용하여 설정하도록 선택할 수 있습니다 . 두 가지를 조합하여 사용하고 싶습니다. 둘 다가 아니라 둘 다 필요합니다.

왜? 이것은 보안을 강화하기 때문에 (이중 요소); 당신은해야합니다 가지고 뭔가를 당신이 필요 알고 잠금을 해제 뭔가. 그런 다음 키 파일을 작은 이동식 저장 장치 (USB 플래시 드라이브)에 넣고 부팅시에만 연결하려고합니다. 결과는 적절한 플래시 드라이브에 넣어 필요하다는 것을해야 하고 루트 파티션의 잠금을 해제 할 수있는 권한 암호를 제공합니다.

다시 말해, 부팅 중에 외부 드라이브의 키 파일이 암호화 된 암호 문구를 묻고 싶습니다.

나는 /usr/share/initramfs-tools/hooks/cryptgnupg그것을 달성하는 데 도움이 되는 도우미 스크립트를 보았지만 그것을 사용하는 방법에 대한 실마리는 없습니다.

혼란을 피하기 위해 : 볼륨에 잠금을 해제하기 위해 볼륨에 추가 키를 추가하는 방법을 묻지 않습니다 .


나는 docs을 읽음으로써 대답의 한 부분을 스스로 발견했다 . 에서 사용법을 읽어보십시오 /usr/share/doc/cryptsetup/README.gnupg. 외부 미디어의 키 파일을 사용하도록 시간을 변경하려고합니다.
gertvdijk

답변:


5

나는 똑같은 일을하지만, 여러 가지 이유로 완전히 맞춤형 Initramfs을 사용했기 때문에 대답이 만족스럽지 않을까 두려워 합니다.

대신 GnuPG에 포함되어야하는 별도의 바이너리 인 initramfs에 (그리고의 경우 GnuPG-2다소 복잡 하나,), 단순히 이미 무엇을 사용했다. 그리고 그것은 분명히 dm-crypt/LUKS입니다.

따라서가 있다고 가정합니다 keyfile. 임의의 데이터를 갖는 것이 바람직하다.

# dd if=/dev/urandom of=keyfile count=1
1+0 records in
1+0 records out
512 bytes (512 B) copied, 0.000189802 s, 2.7 MB/s

LUKS로 암호화를 추가하십시오 (선택한 암호 설정을 자유롭게 추가하십시오).

# truncate -s 2M keyfile.luks
# cryptsetup luksFormat keyfile --header keyfile.luks

WARNING!
========
This will overwrite data on keyfile.luks irrevocably.

Are you sure? (Type uppercase yes): YES
Enter passphrase: bananas
Verify passphrase: bananas

이제 키 파일 (512 바이트)과 keyfile.luks (2MB, 어떤 이유로 cryptsetup이 192k LUKS 헤더를 작성해야 함)가 있습니다. Initramfs는 어쨌든 압축되므로 너무 나쁘지는 않습니다 (여전히 작습니다 GnuPG).

이제 키 파일을 해독 할 수 있습니다 :

# cryptsetup luksOpen keyfile --header keyfile.luks lukskey
Enter passphrase for keyfile: bananas

그리고에 512 바이트의 랜덤 데이터가 /dev/mapper/lukskey있습니다. (변경하려는 경우 파일에 쓸 수 있으므로 파일을 0으로 일찍 초기화 할 수 있습니다.)

# blockdev --getsize64 /dev/mapper/lukskey
512

Initramfs 에서는 init실제 LUKS 볼륨을 열 수 있습니다 (키를 먼저 추가했다고 가정).

cryptsetup --key-file=/dev/mapper/lukskey luksOpen /dev/yourdisk luksyourdisk
cryptsetup luksClose lukskey # clean up

이러한 접근 방식은 GnuPG를 완전히 불필요한 것으로 만들며, 키의 암호, 선택한 암호 등의 모든 LUKS 이점을 얻습니다. 여러 번 재 시도하는 멋진 (대부분 규칙적인) 비밀번호 프롬프트는 말할 것도 없습니다.


2
멋진 솔루션이지만 어떻게 initramfs에 정확하게 통합합니까? 당신은 완전히 사용자 정의 initramfs를 사용한다고 말하지만, 후크를 사용하는 것만으로는 가능하지 않습니까?
gertvdijk

확실히. 어쨌든 열쇠를 찾아서 열기 위해 암호 탭을 강제하는 방법을 생각할 수 있다면 후크가 없을 수도 있습니다. 예를 들어 파일 일 필요는 없으며 USB 스틱에서 별도의 파티션을 만들 수 있습니다. 그러나 그렇게하지 않고 있기 때문에 구체적인 대답을 할 수 없습니다 ... 죄송합니다 :-/
frostschutz

1
전혀 문제 없습니다-GnuPG를 우회하고 LUKS를 재사용하는 것은 확실히 탁월한 옵션입니다. GnuPG 접근 방식에 대한 후크를 다시 작성 해야하는 경우 어쨌든 사용하지 않고 다시 작성하는 것이 좋습니다. 그리고 네, 이것이 파일 일 필요는 없다는 것을 알고 있습니다.
gertvdijk

@gertvdijk 만약 당신이 이런 일을한다면, 나는 나중에 참조하기위한 당신의 대답에 관심이있을 것입니다
frostschutz
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.