partição LUKS ainda acessível após remover a unidade fisicamente

1

Eu tenho uma unidade flash USB com Full Disk Encryption usando o LUKS. Liguei a unidade e montei-a como tal usando o seguinte:

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

Se eu remover fisicamente meu pendrive, ainda posso acessar seu conteúdo em / mnt / flash. Por que é isso? Eu vejo isso como um risco de segurança, pois quero que o conteúdo da minha unidade flash fique inacessível assim que a unidade for fisicamente removida.

Que tipo de coisa faço para que isso aconteça? Ele precisa ser algo que eu possa fazer na unidade, pois uso isso em outros computadores e não quero ter que alterá-los para tornar a unidade segura.

    
por Patrick 16.08.2017 / 04:24

2 respostas

1

Se você executou um programa / script a partir do próprio USB, você deve ser capaz de descobrir em qual mapa / nome e dispositivo da LUKS ele está (ou apenas dizer ao script o nome mapeado ou dispositivo se você o conhece) e observar quando o dispositivo "desaparece" quando é removido. Então desmonte-o.

Estou bastante certo de que desconectar um USB fará com que o dispositivo ( /dev/sdXn ) desapareça, mas caso você não precise assistir dmesg ou procurar o syslog, ou encontrá-lo em algum lugar em /sys .

Aqui está um script bash de prova de conceito que parece funcionar, mas eu não tenho nenhuma partição LUKS em usbs para testar, então não tenho certeza se umount pode precisar de opções como --lazy ou --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"

Se ele for executado de dentro do contêiner LUKS montado, $PWD deverá localizar o nome LUKS no qual está mapeado e, em seguida, o dispositivo, e se o dispositivo deixar de ser um arquivo especial de bloco, desmonte o dispositivo mapeado.

PS Se o dispositivo foi montado rw (gravável), o sistema de arquivos pode ser corrompido desconectando-o de repente. O FAT parece especialmente vulnerável, enquanto um sistema de arquivos de journaling deve ser mais robusto. Se estiver montado ro (somente leitura) pelo menos você pode evitar esse problema, o mount aceita -o ro e o cryptsetup aceita --readonly (ambos provavelmente não são necessários)

    
por 24.08.2017 / 13:21
3

Você parece estar pulando algumas etapas do processo. Você deveria:

  • Insira a unidade
  • cryptsetup luksOpen /dev/sdb flash
  • mount /dev/mapper/flash /mnt/flash
  • Use a unidade normalmente
  • umount /mnt/flash
  • cryptsetup close flash
  • Remover a unidade

O inverso de mount é umount . Tentando umount uma unidade não inserida pode travar, dependendo do que o sistema está tentando fazer. A etapa cryptsetup close remove ainda mais o mapeamento da unidade e limpa a chave de criptografia da memória do kernel.

Você não pode garantir que todos os (meta) dados sejam gravados corretamente no dispositivo se você removê-los fisicamente sem chamar umount . Sua chave de criptografia ainda está disponível na memória até você chamar cryptsetup close . Com isso em mente, essas etapas não devem ser ignoradas.

    
por 16.08.2017 / 04:50