드라이브를 물리적으로 제거한 후에도 LUKS 파티션에 계속 액세스할 수 있음

드라이브를 물리적으로 제거한 후에도 LUKS 파티션에 계속 액세스할 수 있음

LUKS를 사용하여 완전히 디스크 암호화된 USB 플래시 드라이브가 있습니다. 드라이브를 연결하고 다음을 사용하여 마운트했습니다.

cryptsetup luksOpen /dev/sdb flash
mount /dev/mapper/flash /mnt/flash

플래시 드라이브를 물리적으로 제거하더라도 /mnt/flash의 콘텐츠에 계속 액세스할 수 있습니다. 왜 이런거야? 플래시 드라이브가 물리적으로 제거되면 플래시 드라이브의 콘텐츠에 액세스할 수 없게 될 것으로 예상되기 때문에 이는 보안 위험이라고 생각합니다.

이를 달성하려면 어떻게 해야 합니까? 다른 컴퓨터에서 사용하기 때문에 드라이브에 할 수 있는 작업이어야 하며 드라이브를 안전하게 유지하기 위해 이 모든 것을 변경할 필요는 없습니다.

답변1

프로세스 중 일부 단계를 건너뛴 것 같습니다. 당신은:

  • 드라이브 삽입
  • cryptsetup luksOpen /dev/sdb flash
  • mount /dev/mapper/flash /mnt/flash
  • 드라이브를 정상적으로 사용하십시오.
  • umount /mnt/flash
  • cryptsetup close flash
  • 드라이브 제거

의 역수는 mount이다 umount. 분리된 드라이브를 시도하면 umount시스템이 수행하려는 작업에 따라 중단될 수 있습니다. 이 cryptsetup close단계에서는 드라이브 매핑을 추가로 제거하고 커널 메모리에서 암호화 키를 삭제합니다.

장치를 호출하지 않고 물리적으로 제거하면 모든 (메타)데이터가 장치에 올바르게 기록되었다는 보장이 없습니다 umount. 암호화 키는 전화를 걸 때까지 메모리에 남아 있습니다 cryptsetup close. 이를 염두에 두고 다음 단계를 건너뛰어서는 안 됩니다.

답변2

USB 자체에서 프로그램/스크립트를 실행하는 경우 어떤 LUKS 맵/이름 및 장치가 있는지 파악하고(또는 알고 있는 경우 스크립트에 장치 또는 맵 이름을 알려줌) 언제 실행되는지 확인할 수 있어야 합니다. 장치가 제거된 후 "사라집니다". 그런 다음 제거하십시오.

그래요매우 확신하다USB를 뽑으면 장치( /dev/sdXn)가 사라지지만, 사라지지 않으면 dmesg시스템 로그를 살펴보거나 /sys어딘가에서 찾아야 합니다.

다음은 작동할 것으로 보이는 개념 증명 bash 스크립트입니다. 하지만 USB에 테스트할 LUKS 파티션이 없습니다.or 같은 옵션이 umount필요한지 잘 모르겠습니다 .--lazy--force

map=$( df --output=source $PWD |tail -n1 )

device=$( sudo cryptsetup status "$map" | grep -o "device:.*"|cut -d' ' -f 3 )

while [ -b "$device" ]
do
    sleep 30
done

echo "Device $device is missing, unmounting"
sudo umount -v "$map"

설치된 LUKS 컨테이너 내부에서 실행 중인 경우 $PWD매핑된 LUKS 이름을 찾은 다음 장치를 찾고, 장치가 더 이상 블록 특수 파일이 아닌 경우 매핑된 장치를 마운트 해제해야 합니다.

PS 장치가 rw(쓰기 가능) 모드로 마운트된 경우 갑작스러운 연결 해제로 인해 파일 시스템이 손상될 수 있습니다. FAT는 특히 취약한 것으로 보이지만 저널링 파일 시스템은 더욱 강력해야 합니다. ro(읽기 전용)로 마운트된 경우 최소한 이 문제를 피할 수 있습니다. mount는 허용 -o ro하고 cryptsetup은 허용합니다 --readonly(둘 중 어느 것도 필요하지 않음).

관련 정보