Che cosa succede quando elimini qualcosa?
Un filesystem assomiglia a questo:
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
Quindi la lista dei file contiene quale file è dove e quanto è grande. Senza un tale tavolo centrale, un computer dovrebbe leggere l'intero disco per trovare un file particolare. Oppure, senza un identificatore di filesystem (riga 0), non avrebbe idea di come leggere l'elenco dei file perché non sa come è strutturato.
Non puoi cancellare qualcosa: lo spazio da una penna USB non manca. Puoi solo leggere e scrivere bit su determinate posizioni. Quindi quando diciamo "eliminazione", in genere intendiamo "sovrascrivere i dati con gli zeri".
Quando elimini un file, cancella la voce nell'elenco dei file.
Quando formatta un'unità, cancella l'identificatore del filesystem (riga 0).
Quindi i file sono tutti ancora lì, ti manca solo un riferimento a loro. Se provi a leggere i dati senza avere una tabella file, non sai se la riga 10 fa parte di un altro file o un nuovo file: dovrai cercare e trovare i marcatori iniziali (come JFIF
nei file jpg ) e vedi se riesci a leggere i dati da lì.
Per cancellare veramente qualcosa, è necessario un software che sovrascriva il file , non solo elimina la voce del file. C'è un sacco di software che fa questo, cerca "cancellazione sicura" o qualcosa del genere. Sovrascrivere un file più volte di solito non è necessario (a meno che non si gestiscano dati molto sensibili, quindi si vorrà leggere i dettagli esatti del supporto di memorizzazione che si sta utilizzando).
I dati possono essere recuperati da una chiavetta USB dopo la sovrascrittura?
Le chiavette USB e gli SSD sono molto simili in questo senso: sono entrambi memorie flash NAND, che cancellano veramente il contenuto di una cella quando viene detto di cancellare una cella. Ma ogni cella può essere scritta solo un certo numero di volte prima che si rompa. Per utilizzare ogni cella in modo ottimale, i bastoncini possono fare "wear leveling", dove mantiene un contatore interno della frequenza con cui ogni cella è stata scritta. (Gli SSD fanno sempre così, le chiavette USB (per quanto ne so) raramente.) Il tuo software di cancellazione sicura potrebbe provare a scrivere 00000
sulla posizione 7, ma il controller nel dispositivo potrebbe decidere "la cella 7 è stata scritta su più di cella 919, quindi conserverò questi nuovi dati in 919 invece ". La prossima volta che il computer richiederà i dati dalla posizione 7, la chiavetta ricorderà la mappatura e restituirà i dati dalla cella 919.
Anche in questo caso, i dati potrebbero essere ancora presenti anche se il tuo software ha richiesto al master di sovrascriverlo, anche se potrebbe essere molto difficile farlo uscire (probabilmente dovrai fare un po 'di saldatura per aggirare il controller e leggere ogni cella). TRIM è un comando che, quando viene emesso sulla chiavetta (o SSD), cancella tutte le celle contrassegnate come vuote. Quindi, se non ha ancora riutilizzato la cella 7, allora sa che è vuota (perché sa che i dati sono ora memorizzati nella cella 919). Ogni volta che viene detto a TRIM, in realtà cancellerà i vecchi dati. Fino a quando non lo fa, tuttavia, i dati sono ancora lì.