Perché i sistemi operativi non hanno eliminato i file in modo sicuro fin dall'inizio? E perché non lo fanno ancora?

88

Dopo aver sentito per decenni che "cancellare" non rende i dati impossibili da recuperare, devo chiedere perché il sistema operativo non è stato corretto molto tempo fa per fare quello che avrebbe dovuto fare da sempre? qual'e il problema? Non è possibile che il sistema giri troppo in background sovrascrivendo e qualcos'altro deve succedere? Perché abbiamo bisogno di utilità aggiuntive per fare ciò che pensavamo fosse successo? Qual è la motivazione degli sviluppatori di sistemi operativi per NON correggere questo problema?

ADDITION: Questa non è una domanda tecnologica, perché chiaramente è possibile eliminare le cose in sicurezza, altrimenti non ci sarebbero strumenti disponibili per farlo. È una domanda politica: se alcune persone ritengono che sia importante e debbano far parte del sistema operativo, perché non fanno parte del sistema operativo? Molte cose sono state aggiunte ai sistemi operativi nel corso degli anni e questo potrebbe certamente essere uno di questi. Ed è una questione importante, o non ci sarebbero stati articoli e storie su di esso per circa 3 decenni. Cos'è l'inerzia? Fai la cosa giusta.

    
posta 15.01.2016 - 15:19
fonte

11 risposte

107

Invece di un'altra risposta "Hai sbagliato perché", mi piacerebbe adottare un approccio leggermente diverso:

I primi sistemi operativi per computer erano scritti da programmatori per programmatori. Chiunque programmi e sappia quali puntatori sono in grado di capire che "eliminare" un puntatore non elimina la cosa a cui punta: sono separati.

Ciò non significa che l'eliminazione non venga effettivamente eliminata. Quel puntatore è sparito. Provare ad usarlo dopo averlo "cancellato" (liberando la memoria, riconciliando il nome) può causare il verificarsi di cose brutte.

Ma la storia continua e ora gli utenti finali che hanno un diverso concetto di eliminazione (come te) sono nell'immagine. Loro (e voi) hanno aspettative che sono non irragionevoli (qualunque cosa sia detta in questa discussione).

Ma cancellare non significherà mai (per un computer) quello che pensi dovrebbe: ci sono ragioni sia tecniche (dettagliate abbastanza bene in altre risposte) che sociali (45 anni di inerzia).

Il sistema operativo moderno (e sto includendo * nix) astrae un sacco di cose per te: non devi più essere un esperto di computer per possedere / utilizzare un computer nello stesso modo in cui non hai più bisogno di essere un meccanico possedere / operare un'auto Il prezzo che paghi è che quelle astrazioni sono leaky : c'è una disconnessione fondamentale che non può mai essere superata. Un "documento" di computer non è realmente un documento, un "desktop" non è un desktop, una "finestra" non è una finestra, ecc.

    
risposta data 15.01.2016 - 17:14
fonte
250

Per i seguenti motivi:

  • Prestazioni: occupa risorse che distruggono i file. Immagina un'applicazione che usi centinaia o migliaia di file. Sarebbe una grande operazione cancellarne tutti in sicurezza.
  • Usura extra sulle unità.
  • A volte la possibilità di recuperare un file è una funzionalità del sistema operativo (ad esempio Cestino, Cestino, Copia shadow del volume).
  • Come notato da Xander, a volte il meccanismo di archiviazione fisica viene estratto dal sistema operativo (ad esempio SSD o unità di rete).
risposta data 15.01.2016 - 15:29
fonte
97

Non deve essere corretto perché non è un errore.

I puntatori del file vengono cancellati e l'area occupata dal file è contrassegnata come spazio libero. L'unità quindi sovrascrive quest'area nel proprio tempo. È puramente lì per risparmiare usura sul disco. Dopotutto, i dispositivi di memorizzazione (in particolare gli SSD) hanno un numero limitato di volte in cui possono scrivere prima di fallire. La maggior parte degli utenti non apprezzerebbe il fatto che i loro dischi non funzionassero dopo 6 mesi.

Esistono soluzioni sicure con strumenti disponibili per cancellare in modo sicuro lo spazio libero su un disco rigido.

    
risposta data 15.01.2016 - 16:12
fonte
75

Sembra che tu abbia un problema di formulazione con il termine delete e un'aspettativa errata su cosa dovrebbe fare la funzionalità.

Puoi controllare la definizione semplice sul sito web di Merriam-Webster:

delete: to remove (something, such as words, pictures, or computer files) from a document, recording, computer, etc.

L'obiettivo della funzione di eliminazione è rimuovere gli oggetti selezionati dalla loro posizione corrente. Possono essere spostati in un'altra posizione temporanea (il cestino) per evitare qualsiasi perdita accidentale, oppure lo spazio occupato potrebbe essere contrassegnato come libero.

Confronta questo elemento con la definizione di cancella , ad esempio:

erase: to remove (something that has been recorded) from a tape (such as a videotape or audiotape) or a computer disk; also : to remove recorded material from (a tape or disk)

: to remove (something written) by rubbing or scraping so that it can no longer be seen

: to remove something written from (a surface)

Questo va davvero a un livello inferiore, qui non stiamo solo rimuovendo il file dalla cartella, stiamo rimuovendo i dati del file dal disco, e in questa sottigliezza si trova tutta la differenza.

Cancella è la parola che puoi incontrare di più nel mondo Windows, nel mondo Unix puoi invece trovare wipe che descrive il processo da un punto di vista più tecnico :

wipe: to clean or dry (something) by using a towel, your hand, etc.

: to remove (something) by rubbing

: to move (something) over a surface

Perché i SO non lo fanno di default? Per diversi motivi:

  • Gli utenti domestici comuni non hanno bisogno di tale funzionalità, tutto ciò di cui hanno bisogno è semplicemente rimuovere un file da una cartella, o nel caso di unità esterne assicurarsi che venga pulito completamente (formato "lento" in termini profani ). Raramente hanno bisogno di cancellare un singolo file specifico.

  • Gli utenti domestici comuni in realtà non vogliono tale caratteristica. Vedrai che il valore predefinito non è solo quello di non cancellare il file, ma di non cancellarlo realmente: viene spostato nel cestino perché gli utenti domestici si aspettano che il loro sistema operativo sia in grado di salvarli in caso di manipolazione errata. Spesso devi utilizzare una combinazione di tasti specifica (opzione Shift + Canc) per eliminare un file senza passare per il cestino.

  • Infine, un'opzione del genere potrebbe non essere facile o addirittura attuabile. L'evoluzione tecnologica ha aggiunto diversi livelli logici e fisici attorno ai tuoi dati effettivi:

    • Alcuni sistemi operativi eseguono regolarmente istantanee del contenuto del file system, in tal caso il file potrebbe essere incluso in una o più di queste istantanee. Potrebbe diventare complicato garantire la corretta cancellazione dei file in tali condizioni senza compromettere l'integrità delle istantanee.

    • Come menzionato in altre risposte e commenti, per aumentare la durata del dispositivo di archiviazione esiste un livello di astrazione tra la memoria reale e il modo in cui viene visualizzato dal sistema operativo. In tal caso, mentre il sistema operativo può fare del suo meglio per garantire che i dati del file vengano eliminati a livello di file system, non ha modo di garantire che sia stato effettivamente cancellato a livello di archiviazione.

Da un lato si ha il sistema operativo che ragiona in termini di file (per semplificare) ma non si preoccupa veramente dell'archiviazione dei byte, dall'altro lato si ha il firmware del dispositivo di memorizzazione che ragiona in termini di byte ma non sa nulla sui file e su come viene effettivamente impostato il file system.

Quindi, questo significa che tutto è perduto e dobbiamo aspettare un futuro improbabile per portarci il file system implementato in modo nativo nel firmware del dispositivo di archiviazione? No, ma ciò che dovresti fare dipende dalla tua preoccupazione reale:

  • Se la tua preoccupazione riguarda i dati a livello di file system, hai a disposizione software di terze parti che ti aggiungerà una nuova opzione di cancellazione / cancellazione ai menu contestuali. È necessario assicurarsi manualmente che le copie di questi file non siano presenti in qualsiasi snapshot e backup del file system, poiché ciò richiede una decisione caso per caso che il sistema operativo non può farlo per te (non si desidera che il wizard del sistema operativo venga visualizzato) per rovinare il tuo backup o per aiutarti, vero?).

  • Se la preoccupazione riguarda i dati archiviati fisicamente sul dispositivo di archiviazione, utilizzare la crittografia del file system. Ciò garantirà che i potenziali dati di "perdita" dovuti al livellamento dell'usura e alla cattiva gestione dei blocchi non saranno sfruttabili da chiunque riesca a mettere le mani sul dispositivo di archiviazione.

risposta data 15.01.2016 - 16:53
fonte
12

Per motivi di prestazioni. L'eliminazione del file dall'indice e la dichiarazione che la zona in cui si trovava il file è ora gratuita e può essere riutilizzata è molto più efficiente di quella di cancellare tutti i dati su quella zona.

    
risposta data 15.01.2016 - 15:22
fonte
8

Non tutti sono d'accordo con la tua definizione di ciò che "cancella" dovrebbe significare.

Per il 99,9% degli utenti, non sono preoccupati per qualcuno che annusa i dati. Vogliono spazio per archiviare episodi di Teletubbies più torrentosi. Per la maggior parte delle persone, semplicemente non è più sufficiente prenotare lo spazio per il file.

Poi c'è il gruppo di persone di cui fai parte, che vuole che il file sia cancellato in modo che non possa essere recuperato. Tuttavia, hai considerato correttamente le copie del file memorizzate nella cache che potrebbero trovarsi altrove sul tuo hard disk? In realtà può essere difficile assicurarsi che qualcosa sia completamente cancellato. Per qualcuno che vuole una funzione come questa, potresti aver già bilanciato le domande di sicurezza, ma pensi che abbia fatto il 99,9%?

Infine, considera quelli a cui importa davvero cancellare i loro segreti. Il processo standard del governo è quello di gettare i dischi rigidi in una smerigliatrice. Perché? Lo sapevi che quando cancelli il file, alcune proprietà magnetiche del disco mantengono i tuoi dati accessibili? Non è possibile accedervi dalla normale testina del disco rigido, ma estrarre il piatto e inserirlo in un costoso lettore magnetico e possono effettivamente estrarre i dati.

Se il governo desidera riutilizzare il disco rigido, il processo standard è una cancellazione 7 volte, in cui si scrive in ogni settore del disco 7 volte. Solitamente usano solo la smerigliatrice, perché questo processo è così meccanicamente intenso che la maggior parte dei dischi non sopravvive nemmeno all'incontro.

Che cosa significa "cancella" comunque?

EDIT: Ho cercato di disegnare alcuni punti e lasciare che gli altri disegnassero le linee, ma sembra che potrebbe aiutarmi anche a disegnare la linea. La sicurezza comporta sempre dei compromessi. Poche persone capiscono la sicurezza abbastanza bene da scegliere correttamente il livello di compromesso. Per coloro che possono, puoi dividere le persone in tre categorie. C'è una categoria di persone che si preoccupa meno della sicurezza e odierà un prodotto per spingere più sicurezza di quello che vuole al prezzo dell'usabilità. C'è una categoria di persone che è più preoccupata della sicurezza di te, e sarà frustrata dalla mancanza di sicurezza nel prodotto. Infine, c'è una categoria con te, chi è contento di questo equilibrio.

Se ognuno ha la propria definizione di cosa sia "abbastanza sicuro", ottenere i file di eliminazione sicuri "a destra" dall'inizio è più difficile di quanto sembri.

    
risposta data 16.01.2016 - 18:14
fonte
6

In realtà stai rovinando due procedure diverse : la cancellazione e pulizia sicura . Il primo è solo un'operazione standard dipendente da FS, uno determinato e standardizzato . Il secondo - la cancellazione sicura - ha molti approcci, gradi di protezione unerase, standard, ecc. Per questo motivo, è logicamente corretto, che se hai bisogno della seconda categoria di uno, tu sei responsabile di selezionare e attivare un meccanismo adatto nella tua situazione unica . Non esiste un'implementazione comune e standardizzata in ogni caso / compito / ambiente per una pulizia sicura.

    
risposta data 16.01.2016 - 22:53
fonte
6

Per lo stesso motivo in cui i raccoglitori di immondizie del mondo reale non fanno a pezzi tutto prima di gettarlo nel loro camion.

Ci sono due ragioni principali per cui le persone possono sbarazzarsi di oggetti o informazioni:

  1. Vogliono impedirne l'utilizzo da parte di chiunque altro (o forse di una persona o persone specifiche).

  2. Non credono che gli articoli abbiano un valore sufficiente per chiunque per giustificare la spesa per mantenerli o per trovare qualcuno a cui potrebbero essere utili.

Coloro che si liberano delle cose per la prima ragione dovrebbero distruggerli in modo da renderli inutilizzabili, ma per coloro che si liberano delle cose per la seconda ragione, è preferibile ridurre al minimo le spese rimanenti totali associate agli articoli in questione. Poiché i computer generano molte informazioni che diventeranno inutili dopo un tempo relativamente breve, e poiché - per la maggior parte dei computer - molte delle informazioni potrebbero non causare danni a nessuno se rilasciate, in molti casi non vi è alcun vantaggio per distruggere deliberatamente le informazioni. È sufficiente garantire che qualsiasi spazio occupato dalle informazioni sia disponibile per il riutilizzo se e quando ne sorge la necessità.

    
risposta data 21.01.2016 - 18:10
fonte
2

Why didn't OSes securely delete files right from the beginning?

Intendi dall'inizio della cancellazione o dall'inizio dei sistemi operativi? I primi sistemi operativi cercavano di concentrarsi sui progressi tecnologici come la memorizzazione di materiale su hard disk piuttosto che su floppy drive o schede perforate. Non era necessario che il sistema operativo facesse qualcosa di speciale per rendere impossibile il recupero dei dati dalle unità floppy. (Scusate, solo divertendoci un po 'a controllare l'affidabilità delle unità floppy.) In quei giorni, la possibilità di "salvare" era un grosso problema. Per eseguire la manutenzione dei file, come poter "cancellare", potrebbe essere un'opzione di menu sepolta e raramente utilizzata. "Cancellare in sicurezza" sembrerebbe una sciocchezza per le persone che potrebbero semplicemente buttare via il disco o bruciarlo prima. Perché usare l'unità floppy rumorosa, che aveva una velocità molto più bassa di quella a cui siamo abituati oggi, aspettare un mezzo minuto o più solo per poter sovrascrivere quelli con zero? Nel giorno in cui nessuno capiva cosa fosse un "doppio clic", perché non avevano nemmeno un mouse e quindi non avevano nemmeno fatto un solo clic, e pensavano che "copia e incolla" fosse una tecnologia super avanzata, ottenendo persone persino capire lo scopo sarebbe stato abbastanza impegnativo.

Poi, quando arrivarono gli ostacoli, i sistemi operativi facevano semplicemente la cosa più semplice, ovvero utilizzare lo stesso codice computer che è stato dimostrato affidabile per le unità floppy.

And it IS an important issue, or there would not have been articles and stories about it for about 3 decades now.

In realtà, questo potrebbe essere più di una riflessione sugli obiettivi del giornalismo di scrivere cose che le persone potrebbero trovare interessanti, o potrebbe essere il risultato di sforzi educativi. Molte persone semplicemente non capiscono che la cancellazione è piuttosto non permanente, ed è positivo per le persone capire le cose, quindi l'istruzione è una cosa positiva. Ciò non significa che il comportamento predefinito di softare debba essere modificato.

If some people feel that it is important and should be part of the OS, why is it not part of the OS?

Perché alcune persone pensano che non sia importante. Anche se la pulizia potrebbe essere molto più utile per alcune persone (che sono, in ogni caso, libere e benvenute per cancellare (anziché cancellare) se desiderano farlo), diverse persone potrebbero avere priorità diverse. Io, per esempio, elimino le cose in modo che io abbia spazio su disco disponibile invece di spazio su disco usato, e acceleri le azioni che riguardano tutti i file (come copiare tutto lo spazio su disco usato su un disco rigido), e quindi non ho bisogno per vedere i nomi di file di vecchi file e in modo che non accidentalmente apro un vecchio file quando voglio un nuovo file. L'eliminazione è un modo efficace per nascondere dati indesiderati (come vecchi dati) dal software in modo che il software non utilizzi tali dati indesiderati. Prima di iniziare a eseguire il backup dei dati in modo più affidabile, in realtà ho apprezzato la possibilità occasionale di utilizzare software di recupero che potrebbe "annullare l'eliminazione" dei dati. Come altri hanno espresso, la pulitura può causare ulteriori rallentamenti e ulteriori "segni di usura". Dal momento che i miei computer non sono stati in presenza di persone che sono interessato potrebbero scavare attraverso i miei dati cancellati per cercare di imparare qualcosa che speravo di essere segreto, asciugare non è mai stata una grande priorità per me. Con tutto questo in mente, in risposta alla tua ultima affermazione, "Fai semplicemente la cosa giusta", penso che la cancellazione sia stata la "cosa giusta" per i miei scenari di utilizzo molto più frequentemente di quello che sarebbe stato il tergicristallo. Penso che la ragione più grande e più semplice, che risponde a molte delle tue domande, è che identificare quale comportamento sia la "cosa giusta" per la maggior parte degli scenari potrebbe non essere così semplice come lo stai attribuendo.

    
risposta data 19.01.2016 - 20:20
fonte
2

And why do they still not do this?

Le altre risposte hanno risposto perché non è stato fatto in passato (prestazioni, aspettative degli utenti, ecc.) quindi aggiungerò semplicemente una nota sul motivo per cui non è ancora stato fatto ora. Un problema è che l'eliminazione sicura è considerata solo una soluzione di sicurezza parziale: eliminerà una copia del file, ma la maggior parte delle applicazioni moderne lascerà tracce sostanziali - cronologia (annulla) buffer, copie di backup, ecc. - da cui i dati possono essere si riunirono. C'è anche il problema dei file a cui si accede prima di essere cancellati (ad esempio, si stava per eliminare in modo sicuro quel file sul disco, ma qualcuno ha rubato l'unità prima che si potesse avere una possibilità). Per questi motivi, i moderni sistemi operativi hanno invece implementato la crittografia completa per l'archiviazione degli utenti, il che rende inutile l'eliminazione sicura. Con dati utente crittografati, anche se l'unità conserva l'immagine di un file "cancellato", tutte le tracce di quel file (e di ogni altro file) sono nascoste a un utente malintenzionato che non ha la chiave di decrittografia. Chrome OS, Android e iOS stanno già crittografando i dati utente per impostazione predefinita, quindi, su questi sistemi, almeno, è necessario eliminare in modo sicuro singoli file.

    
risposta data 19.01.2016 - 22:34
fonte
1

Altre risposte sono buone e hanno coperto la domanda completamente a livello tecnico. Ma penso che sia necessaria un'altra risposta che dia una visione diversa del problema, in quanto (IMHO) questa domanda non è propriamente tecnica (chiedendo perché qualcosa non è stato fatto in modo diverso è più una decisione commerciale che tecnica).

La domanda chiede perché il sistema operativo non cancella realmente i dati. Il produttore del sistema operativo può farlo fare quello che vogliono. Non c'è certamente alcun motivo per cui qualcuno non possa costruire un sistema operativo che possa cancellare i dati. Ma perché dovrebbero? Prova a capovolgere la domanda, perché qualcuno dovrebbe costruire un sistema operativo che cancella i dati quando è facile scaricare un'utilità che lo fa per te? Inoltre, di solito è la filosofia che i sistemi operativi dovrebbero essere minimalisti e contenere solo le funzionalità necessarie al funzionamento del computer.

Non sto cercando di essere duro con la mia risposta, quello che sto dicendo è che la domanda sembra essere posta dalla prospettiva sbagliata e mancano alcune informazioni preliminari.

    
risposta data 22.01.2016 - 08:26
fonte

Leggi altre domande sui tag