¿Qué sucede cuando "borras" algo?
Un sistema de archivos se parece a esto:
00 START NTFS FILESYSTEM
01 START FILE LIST
02 test.txt 6-8
03 molerat.jpg 9-4207
04 END OF FILE LIST
05
06 Hi Jamie,
07 Could you get two eggs and if they have milk, three?
08 Thanks!
09 qDJFIFXcz5nW2ebBraYv
10 BbUTUNuxhh41TS2DwCfR
Así que la lista de archivos contiene qué archivo es dónde y qué tan grande es. Sin tal tabla central, una computadora tendría que leer todo el disco para encontrar un archivo en particular. O, sin un identificador de sistema de archivos (línea 0), no tendría idea de cómo leer la lista de archivos porque no sabe cómo está estructurada.
No puedes eliminar algo: el espacio de una memoria USB no se pierde. Solo puedes leer y escribir bits en ciertas posiciones. Así que cuando decimos "eliminar", generalmente queremos decir "sobrescribir los datos con ceros".
Cuando elimina un archivo, elimina la entrada en la lista de archivos.
Cuando formatea una unidad, borra el identificador del sistema de archivos (línea 0).
Por lo tanto, todos los archivos siguen ahí, solo falta una referencia a ellos. Si intenta leer datos sin tener una tabla de archivos, no sabe si la línea 10 es parte de otro archivo o de un archivo nuevo: tendrá que intentar encontrar marcadores de inicio (como JFIF
en archivos jpg) ) y vea si puede leer datos desde allí.
Para borrar realmente algo, necesitará un software que sobrescriba el archivo , no solo que borre la entrada del archivo. Hay un montón de software que hace esto, busca "borrar seguro" o algo así. Por lo general, no es necesario sobrescribir un archivo varias veces (a menos que maneje datos muy confidenciales, entonces querrá leer los tecnicismos exactos del medio de almacenamiento que está usando).
¿Se pueden recuperar datos de una memoria USB después de sobrescribir?
Las memorias USB y SSD son muy similares en este aspecto: ambas son almacenamiento flash NAND, que realmente borra el contenido de una celda cuando se le dice que borre una celda. Pero cada celda solo puede escribirse un cierto número de veces antes de que se rompa. Para utilizar cada celda de manera óptima, los sticks pueden hacer "nivelación de desgaste", donde mantiene un contador interno de la frecuencia con la que se ha escrito cada celda. (Los SSD siempre hacen esto, las memorias USB rara vez lo saben). El software de eliminación segura podría intentar escribir 00000
en la posición 7, pero el controlador del dispositivo podría decidir que "la celda 7 se ha escrito en más de Celda 919, así que almacenaré estos nuevos datos en 919 en su lugar ". La próxima vez que la computadora solicite los datos desde la posición 7, el stick recordará la asignación y devolverá los datos desde la celda 919.
También en este caso, es posible que los datos sigan estando presentes, incluso si el software le indica al dispositivo que lo sobrescriba, aunque puede ser muy difícil eliminarlo (probablemente tendrá que hacer un poco de soldadura para sortear el controlador y leer cada celda). TRIM es un comando que, cuando se emite al stick (o SSD), borrará todas las celdas marcadas como vacías. Entonces, si aún no ha reutilizado la celda 7, entonces sabe que está vacía (porque sabe que los datos ahora están almacenados en la celda 919). Cada vez que se le indique a TRIM, en realidad borrará los datos antiguos. Hasta que hace eso, sin embargo, los datos siguen ahí.