LUKS 암호화에서 제공하는 옵션을 사용하면 --header=<file>
dm-crypt를 사용하는 것과 같습니다.합리적인 부인성아니면 헤더를 포함하지 않았음에도 불구하고 특정 파티션이 LUKS로 암호화되었음을 알 수 있는 방법이 있습니까?
답변1
사용하는 경우 --header
데이터만 장치에 기록됩니다. 루프 장치를 생성하고 를 사용하거나 사용하지 않고 한 번 사용하여 luksFormat
이를 확인할 수 있습니다 --header
. 이 옵션을 사용하면 암호화된 장치는 변경되지 않으며 복호화된 장치는 더 커집니다.
start cmd: # cd /tmp
start cmd: # dd if=/dev/zero of=luks.img bs=1M count=100
start cmd: # dd if=/dev/zero of=luksheader bs=1M count=10
start cmd: # cryptsetup --force-password --header luksheader luksFormat /dev/loop0
start cmd: # cryptsetup --header luksheader luksOpen /dev/loop0 luks
start cmd: # blockdev --getsz /dev/mapper/luks
204800
start cmd: # blockdev --getsz /dev/loop0
204800
start cmd: # dd if=/dev/loop0 bs=1K count=1 | od
0000000 000000 000000 000000 000000 000000 000000 000000 000000
*
0002000
start cmd: # cryptsetup luksClose luks
start cmd: # cryptsetup --force-password luksFormat /dev/loop0
start cmd: # cryptsetup luksOpen /dev/loop0 luks
start cmd: # blockdev --getsz /dev/mapper/luks
200704
start cmd: # dd if=/dev/loop0 bs=1K count=1 | command od
0000000 052514 051513 137272 000400 062541 000163 000000 000000
0000020 000000 000000 000000 000000 000000 000000 000000 000000
0000040 000000 000000 000000 000000 072170 026563 066160 064541
[...]
답변2
LUKS 파일의 경우:
장치에 정상이지만 미끼/가짜 LUKS 헤더를 만드는 것은 어떻습니까? 그 다음에는 미끼 헤더를 통해 urandom(또는 미디어의 기타 더 빠른 잡음 채우기)을 실행하여 해당 미끼 헤더로 잡음을 완전히 채울 수 있습니다.
이제 필요한 경우 복원할 수 있도록 이 헤더를 저장합니다. 다음으로 안전한 비밀번호로 새 헤더를 생성하고 파일 시스템을 생성한 후 파일을 저장하고 싶을 때 사용합니다.
일부 작동하지만 실행 가능한 쉘 스크립트를 사용하면 이 작업을 빠르고 쉽게 수행할 수 있습니다. 미디어를 사용하고 싶을 때 미디어에 올바른 luks 헤더를 쓰고 파일 시스템에 대한 전체 액세스 권한을 갖습니다. 완료되면 헤더 영역을 지우고 미끼 LUKS 헤더를 미디어에 다시 씁니다. 실행 가능한 쉘 스크립트를 사용하는 것은 매우 쉽고 빠릅니다.
제가 보기엔 디코이 헤더를 이용해 LUKS 미디어를 열면 완전히 지워진 것처럼 보이고 숨겨진 볼륨도 없기 때문에 이런 움직임에 대한 의혹은 높지 않을 것 같습니다.
그냥 생각입니다.
답변3
아니요, 둘은 동등하지 않습니다.합리적인 부인성. 그 이유는 암호화로 숨겨지지 않는 헤더파일이 존재하기 때문이다.