비밀번호를 몰라도 LUKS 파일 시스템에서 비밀번호 변경


30

암호화 된 드라이브로 잠시 동안 실행중인 Debian Wheezy 서버가 있습니다. /dev/sda5암호화 된 비밀번호 파일이 손상되면 암호화 된 드라이브의 비밀번호 ( )가 손실되었습니다.

이 서버를 재부팅하고 싶지만 물론 암호가 필요합니다. 드라이브가 암호 해독 된 상태이기 때문에 이전 암호를 몰라도 암호를 변경하는 방법이 있습니까?

cryptsetup luksChangeKey /dev/sda5 볼륨의 비밀번호가 필요합니다.

물론 rsync모든 것을 해제하고 재 구축 할 수는 있지만 피하고 싶습니다. 나는 메모리 ( #cat /dev/mem | less)를 보았지만 찾을 수 없었습니다 (매우 좋은 것입니다!).


2
흠 .... 암호없이 액세스하기가 쉽다면 암호화 된 파일 시스템을 갖는 것이 무엇입니까?
mdpc

7
@ mdpc : 당신의 quip이 이해가되지 않습니다. 그는 자신이 있기 때문에, 파일 시스템에 액세스 서버가 마지막으로 부팅 할 때 암호를.
G-Man, 'Reinstate

2
당신이 암호를 가지고 있다고해서 (그리고 그것이 손상되었다) 내 의견을 무효화하지 않습니다. 일반적으로 모든 유형의 암호화 된 자료에 대한 비밀번호를 잊어 버린 경우, 비밀번호를 잊어 버린 경우 영원히 잊어 버려야합니다.
mdpc

3
@mdpc 현재 시제에는 파일 시스템에 대한 현재 액세스 권한이 있습니다.
Patrick

수퍼 유저와 동일한 질문 : LUKS 암호 분실, 암호화 된 파티션 열기 (응답되지 않음).
G-Man, 'Reinstate

답변:


40

예, 볼륨이 해독 된 상태에서 마스터 키에 액세스하면됩니다.

새 암호 문구를 추가하는 빠르고 더러운 방법 :

device=/dev/sda5
volume_name=foo
cryptsetup luksAddKey $device --master-key-file <(dmsetup table --showkeys $volume_name | awk '{ print $5 }' | xxd -r -p)

device그리고 volume_name적절하게 설정해야합니다.
volume_name암호 해독 된 볼륨의 이름은에서 볼 수 있습니다 /dev/mapper.


설명:

LUKS 볼륨은 마스터 키로 데이터를 암호화합니다. 추가 한 각 암호는 단순히 해당 암호로 암호화 된이 마스터 키의 사본을 저장합니다. 따라서 마스터 키가있는 경우 새 키 슬롯에서 사용하면됩니다.

위의 명령을 찢어 버리십시오.

$ dmsetup table --showkeys $volume_name

이것은 현재 해독 된 볼륨에 대한 많은 정보를 덤프합니다. 결과는 다음과 같습니다.

0 200704 crypt aes-xts-plain64 53bb7da1f26e2a032cc9e70d6162980440bd69bb31cb64d2a4012362eeaad0ac 0 7:2 4096

필드 # 5는 마스터 키입니다.

 

$ dmsetup table --showkeys $volume_name | awk '{ print $5 }' | xxd -r -p

이진 데이터이므로이 결과를 표시하지 않지만이 작업은 볼륨의 마스터 키를 잡고 나중에 필요한 원시 이진 데이터로 변환하는 것입니다.

 

$ cryptsetup luksAddKey $device --master-key-file <(...)

이것은 cryptsetup이 볼륨에 새 키를 추가하도록 지시합니다. 일반적으로이 작업에는 기존 키가 필요하지만 --master-key-file대신 마스터 키를 사용하겠다고 알려줍니다.
<(...)쉘 명령 치환 및 재이다. 기본적으로 내부의 모든 것을 실행하고 출력을 파이프로 보낸 다음 <(...)해당 파이프의 경로로 대체합니다 .

 

따라서 전체 명령은 여러 작업을 압축하는 하나의 라이너입니다.


내가 잘못하고 있는지 확실하지 않지만 LUKS는 예제에서 보여주는 것과 같은 문자열을 전혀 표시하지 않습니다. 짧은 9 자리 숫자입니다. 또한 "linear 8 : 3"으로 표시됩니다.
slm

@slm이 표시 linear되면 열린 LUKS 볼륨이 아닙니다 ( volume_name제공된 명령에서 잘못된 값 ). 열린 LUKS 볼륨은 crypt3 번째 필드에 있습니다. 에서 cryptsetup luksOpen /dev/foo barvolume_name값이 될 것이다 bar.
Patrick

알았어 아래 볼륨있다 /dev/mapper라는 이름은 luks-...... 이것이 LVM이 아니라 사용해야하는 볼륨에 매핑 된 논리 볼륨입니다.
slm

1
최신 버전의 dmsetup에서는 형식 dmsetup table이 변경된 것 같습니다 . 적어도 나를 위해 마스터 키는 열에 표시됩니다 $6.
Karol Babioch

@KarolBabioch 아마도 볼륨 이름을 지정하지 않았습니까?
frostschutz
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.