Como apagar arquivos de tal maneira que eles não possam ser restaurados?

0

Eu implementei minha própria versão de uma cifra-aes em java para ter um aplicativo de criptografia independente de plataforma que não seja dependente das cifras disponíveis no jvm em uso.

Este aplicativo deve usar essa criptografia para criptografar um arquivo e armazená-lo no disco rígido.

.

O problema: excluir arquivos de maneira que não possam ser restaurados

O usuário agora precisa excluir com segurança o arquivo original, de modo que não possa ser restaurado sem conhecer a chave de criptografia. Para fazer isso, o aplicativo teria que substituir o arquivo várias vezes por dados aleatórios e, finalmente, excluí-lo do sistema.

Mas o Windows, por exemplo, me atrapalha com outra armadilha para proteger os dados criptografados. A partir do Windows Server 2003, a tecnologia Shadow Copy está em uso. Versões mais antigas do arquivo excluído ainda podem ser ocultadas pelo Windows.

Minhas perguntas agora são:

  • Existem tecnologias semelhantes em uso para Mac ou Linux Mint / Ubuntu?
  • Existe alguma maneira (independente de plataforma) de excluir arquivos sem possibilidade de restaurá-los?
por user1861174 04.03.2014 / 18:11

2 respostas

2

A única maneira de evitar a desfeita de arquivos sem acesso no nível de setor ao disco e conhecimento do sistema de arquivos é abrir um arquivo, gravar dados aleatórios nele até que o disco esteja cheio e, em seguida, excluir o arquivo. E se as coisas estão sendo sombreadas, isso provavelmente não ajuda.

Se o usuário não puder acessar a chave, os dados no arquivo serão inúteis e você também não precisará se preocupar em excluí-la. Se o comprimento do arquivo puder fornecer informações, preencha seus dados antes de escrever.

Se você quiser que apenas uma única chave trabalhe na criptografia / descriptografia desse arquivo, será necessário derivar chaves de sessão exclusivas de uma chave mestra de upstream.

Note que se você estiver armazenando chaves, ou coisas que são usadas para derivar chaves, no mesmo lugar que o texto cifrado, você está implementando um sistema fundamentalmente quebrado que sempre pode ser quebrado eventualmente.

    
por 04.03.2014 / 19:57
1

Infelizmente, não há como contornar isso. Várias implementações de software de SO ou ferramentas de terceira parte são projetadas para reter dados de modo que possam ser recuperados. Não há nada que você possa fazer em seu aplicativo que possa substituir isso. Versões de arquivos, cópias de sombra, backups, etc farão cópias do seu arquivo.

A única coisa que você pode fazer é armazenar os arquivos em um dispositivo ou volume que não tenha "backups".

    
por 04.03.2014 / 18:48