¿Cómo eliminar un archivo específico en Android para que no se pueda recuperar?


9

Según mi experiencia, un archivo eliminado de un sistema de archivos de computadora a menudo se puede recuperar a menos que se sobrescriba con un programa especial (que generalmente se llama "trituración").

¿Es diferente un teléfono inteligente HTC basado en Android? ¿Cómo se puede eliminar un archivo específico de ese teléfono inteligente para que el archivo no se pueda recuperar?


¿Solo está buscando opciones alojadas en el teléfono o aceptaría sugerencias sobre cómo eliminar el archivo cuando el teléfono está conectado como una unidad de disco?
Bernhard Hofmann

@Bernhard Hofmann: Bueno, si conectarse como una unidad hace que tal acción sea más fácil, es mucho mejor que nada.
Sharptooth

Respuestas:


8

Desafortunadamente, eso no es tan fácil.

Dado que no existe una API para la eliminación segura de archivos, se requerirá root para la "aplicación de eliminación segura" para lograr un acceso de nivel de bloque al dispositivo de almacenamiento. Solo el acceso a los bloques del archivo eliminado eventualmente permite que una aplicación sobrescriba las sobras del archivo con datos aleatorios. Eventualmente, porque el dispositivo de almacenamiento flash podría realizar nivelación de desgaste . Si ese es el caso, el bloque # 42 no sería siempre el mismo bloque físico, lo que hace que las llamadas al sistema sean ineficaces.

Creo que por eso todavía no hay una solución de eliminación segura para Android. Al menos no pude encontrar uno en XDA .


¿Podría un programa abrir un archivo existente, sobrescribirlo todo con la basura, cerrar el archivo y luego eliminarlo?
Sharptooth

Usted podría programar eso. Pero será inútil, porque no está garantizado que la sobrescritura ocurra en los mismos bloques físicos que los datos existentes.
Flujo

1
¿Quiere decir que el sistema de archivos o alguna otra entidad reubicará de forma transparente los nuevos datos escritos en una nueva ubicación y marcará la ubicación ocupada previamente libre?
Sharptooth

1
Sí, es la elección del sistema operativo donde desea escribir nuevos datos por varias razones (fragmentación, etc.) y lo que casi todos los sistemas operativos modernos hacen eso. Incluso si no, todavía existe la capa donde podría ocurrir la nivelación del desgaste.
Flujo

3

Una solución simple sería eliminar el archivo, luego llenar la memoria con cualquier otro dato para que el espacio previamente propiedad del archivo eliminado se sobrescriba.

Una vez que se llena la memoria, los archivos utilizados para el llenado se pueden eliminar, liberando el espacio nuevamente; solo ahora los intentos de recuperación encontrarán solo el archivo de relleno, no el archivo original eliminado.

Tenga en cuenta que esto está destinado solo a combatir herramientas simples de recuperación en el hogar como testdisk. En teoría, todavía puede haber formas de recuperar al menos partes, o incluso todo el archivo original, sin embargo, requerirían algunos métodos sofisticados de análisis de alta gama. Un ejemplo de tal método sería analizar si algunos de los datos se conservan debido a la nivelación del desgaste del flash . Sin embargo, esto no se hace fácilmente, y AFAIK requeriría conectar la tarjeta de memoria a un dispositivo lector de algún tipo, e incluso podría requerir desmontar el dispositivo de memoria.


La nivelación de desgaste en la mayoría de los medios Flash no siempre garantizará que sobrescribir el archivo escriba sobre la misma ubicación física en la memoria. en.wikipedia.org/wiki/Wear_leveling
Chahk

@ Chak, sí, estoy de acuerdo, por eso incluí el descargo de responsabilidad de "métodos sofisticados". El punto es que es trivial recuperar un archivo normalmente eliminado usando herramientas de inicio como testdisk. Si hay algunas herramientas para el hogar fáciles de usar para recuperar contenido que se ha ahorrado debido a la nivelación del desgaste, nunca he oído hablar de ellas. Tenga en cuenta que nunca dije que esta inundación de datos sería un método absoluto , pero muy probablemente algo lo suficientemente fuerte como para las necesidades del autor de la pregunta.
Ilari Kajaste

Agregué más detalles al descargo de responsabilidad para mejorar mi respuesta, y ahora menciono el análisis de la nivelación del desgaste del flash como un ejemplo de un posible vector de ataque restante.
Ilari Kajaste

1

Si conecta su dispositivo como una unidad de disco, puede usar una utilidad como sdelete en Windows para eliminar archivos de forma segura. http://technet.microsoft.com/en-us/sysinternals/bb897443

Desde la página web: "SDelete implementa el Departamento de Defensa para limpiar y desinfectar el estándar DOD 5220.22-M, para darle la confianza de que una vez eliminado con SDelete, sus datos de archivo desaparecen para siempre".


¿Ayudará contra la nivelación de desgaste mencionada en esta respuesta android.stackexchange.com/questions/14739/… ?
Sharptooth

Honestamente, no tengo idea. Ni siquiera sé si hay dispositivos Android que implementen nivelación de desgaste. Como sobrescribe los sectores originales, esperaría que no se vea afectado por la nivelación del desgaste.
Bernhard Hofmann

Bueno, si hay nivelación de desgaste, este programa se ve afectado: no hace magia, solo abre el archivo para escribir (como lo haría cualquier otro programa) y escribe basura allí, luego cierra el archivo. Si hay nivelación de desgaste, el programa no puede saberlo: utiliza primitivas habituales del sistema operativo.
Sharptooth

Me pregunto si usar la opción de limpieza varias veces proporcionaría protección contra la nivelación del desgaste. Como está más allá de nuestro control, limpiar el espacio libre varias veces debería "encontrar" los sectores liberados y borrarlos.
Bernhard Hofmann

Tal vez, pero supongo que tomaría mucho tiempo.
Sharptooth

1

Si el archivo está en una tarjeta SD, entonces podría insertar la tarjeta SD en el lector de tarjetas de su computadora portátil y usarla srm, sdeleteo lo que sea que use normalmente en su escritorio para la eliminación segura de archivos.

Si el archivo está en la memoria interna, entonces probablemente la única forma confiable de eliminar completamente cualquier rastro del mismo (y todo lo demás en el teléfono) sería habilitar el cifrado completo del teléfono en Configuración> Seguridad, espere hasta que todo esté cifrado (aproximadamente una hora ) y luego realice un restablecimiento de fábrica.

También hay aplicaciones en Play Store que supuestamente pueden borrar el espacio libre con algoritmos de nivel DoD, pero no tengo idea de lo buenos que son o cómo funcionan.

Y, por cierto, tenga en cuenta que la memoria flash tiene un número limitado de ciclos de lectura y escritura, por lo que ejecutar esas aplicaciones con demasiada frecuencia puede reducir potencialmente la vida útil del chip de memoria.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.