Comment supprimer un fichier spécifique dans Android pour qu'il ne puisse pas être récupéré?

9

D'après mon expérience, un fichier supprimé d'un système de fichiers informatique peut souvent être récupéré à moins qu'il ne soit écrasé par un programme spécial (qui est généralement appelé "déchiquetage").

Un smartphone HTC basé sur Android est-il différent? Comment un fichier spécifique peut-il être supprimé d'un tel smartphone afin qu'il ne soit pas possible de le récupérer?

acéré
la source
Recherchez-vous uniquement des options hébergées sur le téléphone, ou accepteriez-vous des suggestions sur la suppression du fichier lorsque le téléphone est connecté en tant que lecteur de disque?
Bernhard Hofmann
@Bernhard Hofmann: Eh bien, si la connexion en tant que lecteur facilite une telle action - c'est beaucoup mieux que rien.
sharptooth

Réponses:

8

Ce n'est malheureusement pas si facile.

Puisqu'il n'y a pas d'API pour la suppression sécurisée de fichiers, il faudrait une racine pour «l'application de suppression sécurisée» afin d'obtenir un accès de niveau bloc au périphérique de stockage. Seul l'accès aux blocs du fichier supprimé permet finalement à une application d'écraser les restes du fichier avec des données aléatoires. Finalement, car le périphérique de stockage flash pourrait effectuer un nivellement de l'usure . Si tel est le cas, le bloc # 42 ne serait pas toujours le même bloc physique, ce qui rend les appels système inefficaces.

Je pense que c'est pourquoi il n'y a pas encore de solution de suppression sécurisée pour Android. Au moins, je n'ai pas pu en trouver sur XDA .

Couler
la source
Un programme pourrait-il éventuellement ouvrir un fichier existant, tout écraser avec la corbeille, fermer le fichier puis le supprimer?
sharptooth
Vous pouvez programmer cela. Mais cela sera inutile, car il n'est pas garanti que l'écrasement se produira sur les mêmes blocs physiques que les données existantes.
Débit
1
Voulez-vous dire que le système de fichiers ou une autre entité déplacera de manière transparente les nouvelles données écrites vers un nouvel emplacement et marquera l'emplacement précédemment occupé comme libre?
sharptooth
1
Oui, c'est le choix du système d'exploitation sur lequel il souhaite écrire de nouvelles données pour diverses raisons (fragmentation, etc.) et ce que presque tous les systèmes d'exploitation modernes font. Même si ce n'est pas le cas, il y a toujours la couche où le nivellement de l'usure pourrait se produire.
Débit
3

Une solution simple serait de supprimer le fichier, puis de remplir la mémoire avec toute autre donnée afin que l'espace précédemment détenu par le fichier supprimé soit sûr d'être écrasé.

Une fois la mémoire remplie, le ou les fichiers utilisés pour le remplissage peuvent être supprimés, libérant à nouveau de l'espace - ce n'est que maintenant que les tentatives de récupération ne trouveront que le fichier de remplissage, pas le fichier supprimé d'origine.

Notez que cela est uniquement destiné à combattre les outils de récupération à domicile simples comme testdisk. En théorie, il peut toujours exister des moyens de récupérer au moins des parties, ou même l'intégralité du fichier d'origine - mais ils nécessiteraient des méthodes d'analyse haut de gamme sophistiquées. Un exemple d'une telle méthode serait d'analyser si certaines des données sont préservées en raison du nivellement d'usure par flash . Cependant, cela n'est pas facile à faire, et AFAIK nécessiterait de connecter la carte mémoire à un lecteur personnalisé, et pourrait même nécessiter de démonter le périphérique de mémoire.

Ilari Kajaste
la source
Le nivellement de l'usure sur la plupart des supports Flash ne garantit pas toujours que l'écrasement du fichier se fera sur le même emplacement physique de la mémoire. en.wikipedia.org/wiki/Wear_leveling
Chahk
@Chahk, oui, je suis d'accord, c'est pourquoi j'ai inclus l'avertissement "méthodes sophistiquées". Le fait est qu'il est trivial de récupérer un fichier normalement supprimé à l'aide d'outils comme testdisk. S'il existe des outils domestiques faciles à utiliser pour récupérer du contenu qui a été épargné en raison du niveau d'usure de la flah, je n'en ai jamais entendu parler. Notez que je n'ai jamais dit que cette inondation de données serait une méthode absolue , mais probablement quelque chose d'assez fort pour les besoins du demandeur.
Ilari Kajaste
J'ai ajouté plus de détails à l'avis de non-responsabilité pour améliorer ma réponse, et mentionne maintenant l'analyse du niveau d'usure du flash comme un exemple d'un vecteur d'attaque restant possible.
Ilari Kajaste
1

Si vous connectez votre appareil en tant que lecteur de disque, vous pouvez utiliser un utilitaire comme sdelete sous Windows pour supprimer les fichiers en toute sécurité. http://technet.microsoft.com/en-us/sysinternals/bb897443

Depuis la page Web: "SDelete implémente la norme DOD 5220.22-M du ministère de la Défense pour nettoyer et assainir, pour vous donner l'assurance qu'une fois supprimée avec SDelete, vos données de fichier auront disparu à jamais."

Bernhard Hofmann
la source
Cela aidera-t-il contre le nivellement d'usure mentionné dans cette réponse android.stackexchange.com/questions/14739/… ?
2011
En toute honnêteté, je n'en ai aucune idée. Je ne sais même pas s'il existe des appareils Android qui implémentent le nivellement de l'usure. Puisqu'il écrase les secteurs d'origine, je m'attendrais à ce qu'il ne soit pas affecté par le nivellement d'usure.
Bernhard Hofmann
Eh bien, s'il y a une usure, ce programme est affecté - il ne fait pas de magie, ouvre simplement le fichier pour l'écriture (comme n'importe quel autre programme) et y écrit des ordures, puis ferme le fichier. S'il y a un niveau d'usure, le programme ne peut pas le savoir - il utilise les primitives habituelles du système d'exploitation.
2011 à 6h36
Je me demande si l'utilisation de l'option de nettoyage à plusieurs reprises fournirait une protection contre le nivellement de l'usure. Puisqu'il échappe à notre contrôle, le nettoyage de l'espace libre à quelques reprises devrait «trouver» les secteurs libérés et les effacer.
Bernhard Hofmann
Peut-être, mais je suppose que cela prendrait beaucoup de temps.
Dentranchante
1

Si le fichier est sur une carte SD, vous pouvez insérer la carte SD dans votre lecteur de carte pour ordinateur portable et l'utiliser srm, sdeleteou tout ce que vous utilisez habituellement sur votre bureau pour la suppression sécurisée des fichiers.

Si le fichier est dans la mémoire interne, alors probablement le seul moyen fiable pour supprimer complètement toute trace de celui-ci (et tout le reste sur le téléphone) serait d'activer le cryptage complet du téléphone dans Paramètres> Sécurité, attendez que tout soit crypté (environ une heure ), puis effectuez une réinitialisation d'usine.

Il existe également des applications dans le Play Store qui peuvent prétendument effacer l'espace libre avec des algorithmes de niveau DoD, mais je n'ai aucune idée de leur qualité ou de leur fonctionnement.

Et btw, gardez à l'esprit que la mémoire flash a un nombre limité de cycles de lecture-écriture, donc l'exécution trop fréquente de ces applications peut potentiellement réduire la durée de vie de la puce mémoire.

ccpizza
la source