Como excluir um arquivo específico no Android para que ele não possa ser recuperado?


9

De acordo com minha experiência, um arquivo excluído de um sistema de arquivos de computador geralmente pode ser recuperado, a menos que seja sobrescrito por um programa especial (geralmente chamado de "destruição").

Um smartphone HTC baseado no Android é diferente? Como um arquivo específico pode ser excluído desse smartphone para que o arquivo não possa ser recuperado?


Você está procurando apenas opções hospedadas pelo telefone ou aceita sugestões sobre a exclusão do arquivo quando o telefone está conectado como uma unidade de disco?
— Bernhard Hofmann

@ Bernhard Hofmann: Bem, se a conexão como unidade facilita essa ação - é muito melhor que nada.
— Sharptooth 19/10/11

Respostas:


8

Infelizmente, isso não é tão fácil.

Como não existe uma API para a exclusão segura de arquivos, seria necessário o root para o "aplicativo de exclusão segura" para obter acesso em nível de bloco ao dispositivo de armazenamento. Apenas o acesso aos blocos do arquivo excluído , eventualmente, permite que um aplicativo para substituir as sobras do arquivo com dados aleatórios. Eventualmente, porque o dispositivo de armazenamento flash pode executar o nivelamento do desgaste . Se for esse o caso, o bloco 42 não seria sempre o mesmo bloco físico, o que torna as chamadas do sistema ineficazes.

Eu acho que é por isso que ainda não existe uma solução de exclusão segura para o Android. Pelo menos não consegui encontrar um no XDA .


Um programa poderia abrir um arquivo existente, substituir tudo com lixo, fechar o arquivo e excluí-lo?
— Sharptooth 19/10/11

Você poderia programar isso. Mas será inútil, porque não é garantido que a substituição ocorrerá nos mesmos blocos físicos que os dados existentes.
— Flow

11
Você quer dizer que o sistema de arquivos ou alguma outra entidade realocará de forma transparente os novos dados gravados em um novo local e marcará o local ocupado anteriormente como livre?
— Sharptooth 19/10/11

11
Sim, é a escolha do sistema operacional em que ele deseja gravar novos dados por vários motivos (fragmentação etc.) e o que quase todo sistema operacional moderno faz isso. Mesmo se não houver, ainda existe a camada em que o nivelamento de desgaste pode ocorrer.
— Flow

3

Uma solução simples seria excluir o arquivo e preencher a memória com outros dados, para que o espaço anteriormente pertencente ao arquivo excluído seja substituído.

Depois que a memória é preenchida, os arquivos usados ​​para o preenchimento podem ser removidos, liberando espaço novamente - somente agora as tentativas de recuperação encontrarão apenas o arquivo de preenchimento, não o arquivo excluído original.

Observe que isso se destina apenas ao combate a ferramentas simples de recuperação doméstica como testdisk. Em teoria, ainda pode haver maneiras de recuperar pelo menos partes ou mesmo todo o arquivo original - no entanto, eles exigiriam alguns métodos sofisticados de análise de ponta. Um exemplo desse método seria analisar se alguns dos dados são preservados devido ao nivelamento do desgaste do flash . No entanto, isso não é fácil, e o AFAIK exigiria a conexão do cartão de memória a um dispositivo de leitor personalizado de algum tipo e pode até exigir a desmontagem do dispositivo de memória.


O nivelamento de desgaste na maioria das mídias Flash nem sempre garante que a substituição do arquivo seja gravada no mesmo local físico da memória. pt.wikipedia.org/wiki/Wear_leveling
— Chahk 19/10/11

@ Chahk, Sim, eu concordo, foi por isso que incluí o aviso de "métodos sofisticados". O ponto é que é trivial recuperar um arquivo normalmente excluído usando ferramentas domésticas como testdisk. Se existem algumas ferramentas domésticas fáceis de usar para recuperar o conteúdo poupado por causa do nivelamento do desgaste por flah, nunca ouvi falar delas. Note que eu nunca disse que essa inundação de dados seria um método absoluto , mas provavelmente algo forte o suficiente para as necessidades do solicitante.
— Ilari Kajaste 19/10/11

Adicionei mais detalhes ao aviso para melhorar minha resposta e agora mencionei a análise do nível de desgaste do flash como um exemplo de um possível vetor de ataque restante.
— Ilari Kajaste 19/10/11

1

Se você conectar o dispositivo como uma unidade de disco, poderá usar um utilitário como sdelete no Windows para excluir arquivos com segurança. http://technet.microsoft.com/en-us/sysinternals/bb897443

Na página da Web: "O SDelete implementa o padrão de limpeza e higienização do Departamento de Defesa DOD 5220.22-M, para dar a você a confiança de que, uma vez excluídos com o SDelete, seus dados de arquivo desaparecem para sempre".


Isso ajudará a evitar o nivelamento de desgaste mencionado nesta resposta android.stackexchange.com/questions/14739/… ?
— Sharptooth # 24/11

Com toda a honestidade, não faço ideia. Nem sei se existem dispositivos Android que implementam o nivelamento de desgaste. Como ele substitui os setores originais, eu esperaria que isso não fosse afetado pelo nivelamento de desgaste.
— Bernhard Hofmann

Bem, se houver um desgaste no nivelamento, este programa é afetado - não faz mágica, apenas abre o arquivo para gravação (como qualquer outro programa faria) e grava lixo lá, depois fecha o arquivo. Se houver um nivelamento de desgaste, o programa não pode saber - ele usa as primitivas usuais do sistema operacional.
— Sharptooth # 25/11

Gostaria de saber se o uso da opção de limpeza algumas vezes forneceria proteção contra o nivelamento do desgaste. Como está além do nosso controle, limpar o espaço livre algumas vezes deve "encontrar" os setores liberados e apagá-los.
— Bernhard Hofmann

Talvez, mas suponho que levaria muito tempo.
— Sharptooth 28/10/11

1

Se o arquivo estiver em um sdcard então você poderia inserir o sdcard em seu leitor portátil de cartão e uso srm, sdeleteou o que você costuma usar em seu desktop para exclusão segura de arquivos.

Se o arquivo estiver na memória interna, provavelmente a única maneira confiável de excluir completamente qualquer vestígio dele (e tudo o mais no telefone) seria habilitar a criptografia completa do telefone em Configurações> Segurança, aguarde até que tudo esteja criptografado (cerca de uma hora ) e faça uma redefinição de fábrica.

Também existem aplicativos na loja de jogos que supostamente podem limpar o espaço livre com algoritmos de nível de DoD, mas não tenho idéia de como eles são bons ou como funcionam.

Por outro lado, lembre-se de que a memória flash possui um número limitado de ciclos de leitura e gravação, portanto, a execução desses aplicativos com muita frequência pode reduzir potencialmente a vida útil do chip de memória.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.