LUKS 분리 헤더와 해당 블록 장치 간의 관계를 이해하려고 합니다. 내가 아는 한, 분리된 헤더를 사용한 "포맷"은 실제로 해당 블록 장치의 내용을 변경하지 않으며 cryptsetup luksOpen
열린 () 파티션에 쓰기 시작할 때만 발생합니다.
그래서 나는 알고 싶습니다:
- 단일 암호화 파티션에 두 개의 독립적인 헤더가 있을 수 있나요? 예를 들어, 두 대의 다른 컴퓨터에 간헐적으로 연결되는 이동식 드라이브가 있는 경우 두 헤더 복사본을 다시 동기화하지 않고도 각 컴퓨터가 헤더의 독립적인 복사본을 가질 수 있습니까?
- 두 개의 별도 드라이브에 단일 브레이크아웃 커넥터를 사용할 수 있습니까? 예를 들어, 두 개의 암호화된 백업 드라이브가 있는 경우 두 드라이브 모두에 단일 헤더를 사용할 수 있습니까? 아니면 헤더가 어떻게든 파티션에 연결되어 있습니까?
답변1
이것은 가능하다. cryptsetup 매뉴얼과 FAQ를 읽어보면 이것이 권장되지 않는다는 것을 알 수 있습니다. 하지만 무슨 일이 있어도 당신이 그 일을 하는 것을 막을 수는 없습니다.
원하는 만큼 헤더 복사본을 사용할 수 있으며 복사본을 수정할 수도 있습니다. 예를 들어 한 복사본은 암호 A를 사용하고 다른 복사본은 암호 B를 사용합니다. 또는 한 복사본은 LUKS1 형식이고 다른 복사본은 LUKS2 형식일 수 있습니다. 암호화 자체가 변경되지 않는 한 모든 일이 발생합니다. 단점은 LUKS 헤더 복사본을 모두 제어하지 않으면 비밀번호를 철회할 수 없다는 점입니다.
원하는 수의 드라이브에 동일한 헤더를 사용할 수 있으며 작동하지만 단점은 모두 정확히 동일한 마스터 키로 암호화된다는 것입니다. 더 일반적인 방법은 동일한 비밀번호로 다른 헤더(다른 마스터 키)를 사용하는 것입니다. 예를 들어 systemd
시작 시 동일한 비밀번호를 재사용하여 여러 개의 독립적인 LUKS 컨테이너를 열 수 있도록 지원합니다.
LUKS 헤더는 실제 암호화 키(LUKS가 "마스터 키"라고 부르는 것)와 관련 메타데이터(사용할 암호 및 데이터 오프셋 등)를 저장하는 멋진 방법일 뿐입니다. 파티션 이름이나 크기를 기록하지 않으므로 제한이 많지 않습니다. LVM 또는 mdadm 메타데이터는 이러한 사항에 대해 더 까다롭습니다.