Sicurezza dell'utilità shred linux

2

Se sto cercando di distruggere un singolo file, qual è il metodo migliore?

shred -uvz -n500 file
dd if=/dev/null of=file
dd if=/dev/zero of=file

Ho eseguito il dumping di un file che si trovava nel mezzo della distruzione, e è stato opportunamente mutilato con quello che shred ha detto che stava scrivendo, ma è sicuro?

Per il bene di questo esperimento, supponiamo che qualsiasi versione cache di questo file e qualsiasi altra cosa possa connettersi a questo file siano completamente sparite. L'unica traccia residua del file è il comando eseguito dalla mia cronologia ...

    
posta user50625 10.07.2014 - 00:52
fonte

1 risposta

4

A seconda del filesystem, del dispositivo fisico, ecc., quelli avranno livelli diversi di efficacia. Darei un'occhiata a ciascuno di essi, e in generale sto assumendo ext4 sull'hard disk magnetico, poiché è il default Linux FS più comune in questo momento. Suppongo anche che il ripristino inizi immediatamente dopo il completamento del comando: ad esempio, non ci sono scritture intermedie su questo filesystem.

shred -uvz -n500 file

500 passaggi è eccessivo. In generale, si ritiene che un singolo passaggio sia sufficiente per le unità moderne ( Source 1 , Source 2 , Source 3 ), quindi le offerte 3 passa shred per impostazione predefinita dovrebbero essere numerose. Ovviamente, ciò presuppone che si sovrascriva sul posto (gli stessi blocchi del disco), cosa vera per le impostazioni predefinite di ext4. Se hai strane opzioni di mount (come journal=data ) scoprirai che questo non è più vero e qualsiasi forma di sovrascrittura non sarà sufficiente a meno di non sovrascrivere l'intera partizione.

dd if=/dev/null of=file

/ dev / null fornisce EOF alla lettura. Di conseguenza, questo tronca solo il file, che equivale a echo -n ''>file . Tutti i blocchi di dati rimarranno sul disco e potranno essere ripristinati. Se il file non è frammentato (tutti i blocchi di dati sono consecutivi) questo è banale, se è frammentato, potrebbe richiedere molto più lavoro per ricostruire il file.

dd if=/dev/zero of=file

Per impostazione predefinita (a meno che non venga passato conv=notrunc ), dd apre il file di output con O_TRUNC , che fa sì che il filesystem disalloca immediatamente i blocchi esistenti del file, quindi inizia a scrivere, attivando nuove allocazioni. Saranno gli stessi blocchi liberati dal troncamento? Forse sì forse no. Dipende dalla quantità di spazio disponibile, dal fatto che il file sia frammentato e dalle opzioni di montaggio sia ora che al momento della creazione del file. (L'attivazione / disattivazione dell'estensione sarebbe una grande differenza.) Inoltre, questo comando, come specificato, non specifica alcun punto da interrompere: continuerai a scrivere finché la partizione non sarà piena. (Che in realtà ti dà una buona possibilità di sovrascrivere i tuoi blocchi di dati, ma probabilmente richiederà molto più tempo del necessario.)

Infine, non hai specificato su quale supporto stai facendo. Ho assunto un disco magnetico sopra perché la risposta è molto più diretta. Su un SSD, è un mondo completamente diverso. Usura di livellamento significa che non sovrascriveresti mai gli stessi blocchi e ci sono molti blocchi che esistono ma che non sono visibili dal sistema operativo. Anche le funzionalità di sicurezza integrate degli SSD non cancellano necessariamente i tuoi dati. Nel caso di un SSD, la mia migliore raccomandazione è quella di crittografare con una passphrase strong, e quando sei pronto a riciclare l'unità, colpirla con una sovrascrittura di zeri e una cancellazione sicura ATA. Tra i due, ci sono buone probabilità che tu abbia distrutto la chiave master e, anche se non lo hai, il recupero da parte della polizia scientifica sarà molto dubbio.

    
risposta data 10.07.2014 - 01:46
fonte

Leggi altre domande sui tag