나는 내 문제에 대해 몇 가지 조사를 수행했으며(아래 참조) 이는 "거래 완료"만큼 좋지만 여전히 이 지식이 풍부한 커뮤니티에 내 질문을 제기하고 싶었습니다.
질문의 짧은 버전: partman(Debian 설치 프로그램의 디스크 파티셔너)에서 이전에 dm-crypt/LUKS 암호화된 볼륨의 비밀번호가 잘못 변경(또는 추가)되었습니다. 이 볼륨의 데이터는 다음과 같습니다.아니요삭제 표시. 나중에 설치를 취소했습니다. 나중에 볼륨을 수동으로 "복호화"한 결과 "새" 비밀번호로만 볼륨을 복호화할 수 있었지만 데이터를 읽을 수 없다는 사실이 밝혀졌습니다(즉, 파일 시스템과 파일을 찾을 수 없음).
이전 비밀번호로 다시 변경하면 볼륨 콘텐츠의 암호를 올바르게 해독할 수 있는지 알고 싶습니다.
이전 연구들: 위의 질문은 debian-boot 메일링 리스트에 제출되었으며, 그곳에서 다음을 받았습니다(매우 명확함).답변:
LUKS 헤더를 백업하지 않으면 데이터를 복구할 수 없을 것 같습니다. LUKS의 작동 방식은 데이터가 비밀번호로 직접 암호화되는 것이 아니라 일련의 비밀번호로 암호화된 키를 사용하여 암호화된다는 것입니다. 설치 프로그램의 UI를 통해서만 이 작업을 수행하면 LUKS 헤더를 덮어쓰게 되고 키 자료가 손실되므로 데이터를 다시 해독할 수 없게 됩니다. 디스크의 LUKS 헤더 위치는 항상 같은 위치에 있습니다.
데이터 삭제는 실제로 기존 데이터를 0으로 덮어쓰는 것이므로 매우 혼란스럽습니다. 기술적으로 헤더를 덮어쓴 이후 데이터가 삭제되었지만 일부 사람들은 시스템을 프로덕션에 배포하기 전에 디스크에 임의의 데이터(또는 암호화되지 않은 디스크의 경우 0)를 쓰고 싶어합니다.
아쉽게도 이 볼륨에 대한 LUKS 헤더 백업이 없습니다. 위에서 말했듯이 목적은 다음과 같습니다.산이전에 암호화되어 아무것도 변경되지 않는 볼륨(그래서 아쉽게도 적절한 예방 조치를 취하지 않았습니다).
질문: 볼륨을 암호화한 (알려진) 원래 비밀번호를 사용하여 원래 LUKS 헤더를 (재)생성할 수 있는 방법이 있습니까? 아니면 이 데이터가 영구적으로 손실됩니까?
귀하의 배려와 시간에 감사드립니다.
답변1
어쨌든 회복할 방법은 없습니다. (*)
LUKS를 사용하면 암호화를 여는 데 사용하는 비밀번호와 실제로 암호화에 사용되는 마스터 키는 전혀 관련이 없습니다.
기본적으로 귀하의 비밀번호는 완전히 임의의 키로 해독되며 해당 임의의 키는 LUKS 헤더에 저장됩니다. LUKS 헤더를 완전히 잃어버리면(또는 키 자료의 한 비트만 변경해도) 볼륨에 대한 마스터 키를 얻을 수 없습니다.
그렇기 때문에 LUKS를 사용하면 8개의 서로 다른 비밀번호를 가질 수 있고 모든 데이터를 다시 암호화하지 않고도 언제든지 각 비밀번호를 변경할 수 있습니다. LUKS 비밀번호를 얼마나 자주 변경하더라도 마스터 키는 동일하게 유지됩니다.
마스터 키 복구는 분명히 LUKS 개념의 일부가 아닙니다. 실제로는 그 반대입니다. LUKS는 사용자(또는 다른 사람)가 (부분적으로) 덮어쓴 LUKS 헤더에서 마스터 키를 복구하는 것을 방지하기 위해 많은 단계를 수행합니다. LUKS 문서에서는 헤더를 백업하지 말 것을 권장하기도 합니다. 헤더를 백업하는 것은 사용자의 통제 범위를 벗어나기 때문에 이전 비밀번호를 유효하지 않다고 선언하는 기능을 잃게 된다는 뜻입니다. 이전 비밀번호는 여전히 이전 헤더에 저장되고 사용되기 때문입니다.
(*) 이 규칙의 유일한 예외는 컨테이너가 아직 열려 있는 경우입니다. 활성 암호화 맵의 경우 를 사용하여 마스터 키를 얻을 수 있습니다 dmsetup table --showkeys
. 따라서 실행 중인 시스템에서 LUKS 헤더를 종료하고 즉시 인식하면 알려진 마스터 키를 사용하여 새로운 LUKS 헤더를 생성할 수 있습니다.
마스터 키 없이는 진행할 수 없고, 암호화의 핵심인 마스터 키를 무차별 대입할 수도 없습니다. 뭐, 무제한의 CPU 성능 및/또는 시간으로 이 작업을 수행할 수 있으므로 퍼즐을 후손에게 남기고 싶다면 암호화된 데이터의 복사본을 보관하여 전달하세요 .....;)