Warum eine Datei mehr als einmal überschreiben, um alle Spuren einer Datei sicher zu löschen?

StackOverflow https://stackoverflow.com/questions/59656

  •  09-06-2019
  •  | 
  •  

Frage

Löschprogramme wie Eraser empfehlen, Daten etwa 36 Mal zu überschreiben.

Soweit ich weiß, werden alle Daten als Einsen oder Nullen auf einer Festplatte gespeichert.

Wenn die gesamte Datei einmal mit zufälligen Einsen und Nullen überschrieben wird, warum reicht das dann nicht aus, um alle Spuren der Originaldatei zu entfernen?

War es hilfreich?

Lösung

Eine Festplatte, die einen Bit 0 früher, und wird dann zu einem ‚1‘ geändert wird, hat ein etwas schwächeres Magnetfeld als eine, die ein 1 verwendet werden sollte, und wurde dann wieder auf 1 geschrieben. Mit empfindlichen Geräten kann der vorherige Inhalt jedes Bits mit einem vernünftigen Maße an Genauigkeit erkannt werden, indem die leichten Abweichungen in der Stärke zu messen. Das Ergebnis wird nicht ganz richtig sein, und es werden Fehler sein, aber ein guter Teil der vorherigen Inhalte abgerufen werden können.

Bis Sie 35-mal über die Bits gekritzelt haben, ist es praktisch unmöglich, zu erkennen, was früher da sein.

Bearbeiten: eine moderne Analyse zeigt, dass ein einzelnes Bit überschrieben mit nur 56% Genauigkeit wiederhergestellt werden. Der Versuch, ein ganzes Byte wiederherzustellen, ist nur dann genau 0,97% der Zeit. So war ich nur eine urbane Legende zu wiederholen. mehrfach überschreibt notwendig gewesen sein könnte, wenn sie mit Disketten oder einem anderen Medium zu arbeiten, aber Festplatten brauchen es nicht.

Andere Tipps

Daniel Feenberg (Ökonom an dem privaten National Bureau of Economic Research) behauptet, dass die Chancen der überschriebenen Daten von einer modernen Festplatte Menge zurückgewonnen werden zu "urban legend":

Can Geheimdiensten lesen überschriebenen Daten?

Überschreiben So theoretisch die Datei einmal mit Nullen würde sufficent sein.

Bei herkömmlichen Bedingungen, wenn eine eine auf der Platte geschrieben wird, zeichnen die Medien ein, und wenn eine Null geschrieben wird das Medium zeichnet eine Null. Jedoch ist die tatsächliche Wirkung näher an ein 0,95 zu erhalten, wenn eine Null mit einem überschrieben wird, und einen, wenn ein 1,05 eines mit einem überschrieben wird. Normale Plattenschaltung ist so eingestellt, dass diese beiden Werte als solche gelesen werden, sondern mit spezieller Schaltung ist es möglich, herauszufinden, was vorherige „Schichten“ enthalten. Die Rückgewinnung von zumindest einer oder zwei Schichten überschriebene Daten nicht zu stark durch das Lesen des Signals von den analogen Kopfelektronik mit einem hochwertigen digitalen Abtastoszilloskops, das Herunterladen der abgetasteten Wellenform an einen PC, und die Analyse in Software durchzuführen die zuvor aufgezeichneten Signal wiederherzustellen. Was die Software tut, ist ein „ideale“ Lesesignal erzeugen und subtrahieren sie von dem, was tatsächlich gelesen wurde, als die Differenz Verlassen des Restes des vorherigen Signals. Da die analogen Schaltungen in einem kommerziellen Fest bei weitem nicht die Qualität der Schaltung in dem Oszilloskop verwendet, um das Signal abzutasten, besteht die Möglichkeit, eine Menge zusätzlicher Informationen zu gewinnen, die nicht von der Festplatte Elektronik genutzt wird (wenn auch mit neuerem Kanalcodierungstechniken wie PRML (weiter erläutert auf), die umfangreiche Mengen an Signalverarbeitung erfordern, die Verwendung von einfachen Werkzeugen, wie beispielsweise ein Oszilloskop, um direkt die Wiederherstellung von Daten nicht mehr möglich ist)

http://www.cs.auckland.ac. nz / ~ pgut001 / Kneipen / secure_del.html

Stellen Sie sich einen Sektor von Daten auf dem physischen Datenträger. In diesem Sektor ist ein magnetisches Muster (ein Streifen), die die Bits von Daten in dem Sektor gespeichert kodiert. Dieses Muster wird durch einen Schreibkopf geschrieben, die mehr oder weniger stationär, während sich die Scheibe dreht, darunter ist. Um nun für die Festplatte richtig als Datenspeichergerät funktioniert jedes Mal, wenn ein neuer magnetisches Muster Streifen auf einen Sektor geschrieben wird, hat das magnetische Muster in diesem Sektor zurückgesetzt genug lesbar später zu sein. Es ist jedoch nicht vollständig, um alle Beweise des früheren magnetischen Musters zu löschen, es muss nur gut genug sein (und mit der Menge der Fehlerkorrektur verwendet heute gut genug, um nicht alles, was gut sein muss). Bedenken Sie, dass der Schreibkopf nicht immer die gleiche Spur wie der vorherigen Durchlauf über einen bestimmten Sektor (es könnte ein wenig nach links oder rechts verschoben sein, könnte es die Branche in einem leichten Winkel eines Weg übergehen oder anderen Grundes Vibrationen, etc.)

Was man bekommt, ist eine Reihe von Schichten aus magnetischen Mustern, mit dem stärksten Muster zur letzten Datenschreib entspricht. Mit der richtigen Instrumentierung kann es möglich sein, diese Schichtung von Mustern mit genügend Details zu lesen Lage sein, einen Teil der Daten in älteren Schichten zu bestimmen.

Es hilft, dass die Daten digital ist, denn wenn man die Daten für eine bestimmte Schicht extrahiert haben Sie genau das magnetische Muster bestimmen können, die verwendet wurden, wäre es auf der Festplatte zu schreiben und subtrahieren, dass aus den Messwerten (und dann tun, auf der nächsten Schicht, und die nächste).

Der Grund, warum Sie dies wollen, ist nicht Festplatten, aber SSDs.Sie ordnen Cluster neu zu, ohne es dem Betriebssystem oder den Dateisystemtreibern mitzuteilen.Dies geschieht zum Zweck des Verschleißausgleichs.Daher ist die Wahrscheinlichkeit recht hoch, dass das geschriebene 0-Bit an einer anderen Stelle landet als das vorherige 1.Das Entfernen des SSD-Controllers und das Auslesen der rohen Flash-Chips liegt selbst für Unternehmensspionage durchaus in der Reichweite.Aber bei 36 vollständigen Festplattenüberschreibungen wird der Wear Leveling wahrscheinlich einige Male alle Ersatzblöcke durchlaufen haben.

"Datenremanenz" Es ist eine ziemlich gute Reihe von Referenzen in Bezug auf mögliche Angriffe und ihre tatsächliche Machbarkeit auf Wikipedia. Es gibt DoD und NIST-Standards und Empfehlungen auch dort zitiert. Unterm Strich ist es möglich, aber immer immer schwerer zu überschriebenen Daten aus magnetischen Medien zu erholen. Dennoch erfordern einige (US-Regierung) Standards noch mindestens mehrere Überschreibungen. Inzwischen Gerät Einbauten werden immer komplexer geworden, und selbst nach dem Überschreiben, ein Laufwerk oder Solid-State-Gerät in unerwarteten haben können Kopien (denken Sie über schlechte Block Handhabung oder Flash-Wear Leveling ( siehe Peter Gutmann ). So ist das wirklich besorgt Laufwerke noch zerstören.

Was wir hier sehen ist „Datenremanenz“ genannt. die meisten der Technologien in der Tat, die wiederholt werden (harmlos) überschrieben ist mehr als das, was tatsächlich notwendig ist. Es gab Versuche, Daten von Festplatten wiederherzustellen, die Daten mussten überschrieben und mit Ausnahme von einigen Labor Fällen gibt es wirklich keine Beispiele für eine solche Technik erfolgreich zu sein.

Wenn wir über Recovery-Methoden zu sprechen, vor allem werden Sie Magnetkraftmikroskopie als Königsweg sehen eine lässige Überschreiben zu umgehen, aber auch so hat dies keine aufgezeichneten Erfolge und kann über durch das Schreiben ein gutes Muster von binären Daten in jedem Fall aufgehoben werden die Region auf magnetische Medien (im Gegensatz zu einfachen 0000000000s Gegensatz).

Schließlich ist die 36 (tatsächlich 35) überschreibt, dass Sie als veraltet und unnötig heute als Technik (bekannt als die Gutmann-Methode) werden erkannt beziehst wurde entwickelt, um die verschiedenen aufzunehmen - und in der Regel ohne dass der Anwender - Codierverfahren in Technologien wie RLL und MFM verwendet, die Sie wahrscheinlich nicht in irgendwie laufen. Auch erklären die US-Regierung Leitlinien die eine Überschreibungs ausreichend ist, Daten zu löschen, wenn auch für administrative Zwecke sie nicht über diese akzeptabel für „Hygienisierung“ betrachten. Der vorgeschlagene Grund für diese Diskrepanz ist, dass „schlechte“ Sektoren, die von der Plattenhardware schlecht markiert werden können und nicht richtig überschreibt, wenn die Zeit, die ein Überschreiben zu tun kommt, also die Möglichkeit offen gelassen, dass die visuelle Inspektion der Platte der Lage, diese zu erholen Regionen.

Am Ende -. Schreiben mit einem 1010101010101010 oder ziemlich zufälligem Muster genug ist, Daten zu dem Punkt zu löschen, die bekannten Techniken nicht gestellt werden können

Ich habe mich immer gefragt, warum die Möglichkeit, dass die Datei, die zuvor in einem anderen physischen Standort auf der Platte gespeichert wurde, wird nicht berücksichtigt.

Zum Beispiel, wenn ein defrag aufgetreten nur dort leicht eine Kopie der Datei sein könnte, die auf der Platte leicht wiederherstellbare woanders ist.

Hier ist ein Gutmann Lösch Implementierung ich zusammen. Es verwendet den Verschlüsselungszufallszahlengenerator einen starken Block von Zufallsdaten zu erzeugen.

public static void DeleteGutmann(string fileName)
{
    var fi = new FileInfo(fileName);

    if (!fi.Exists)
    {
        return;
    }

    const int GutmannPasses = 35;
    var gutmanns = new byte[GutmannPasses][];

    for (var i = 0; i < gutmanns.Length; i++)
    {
        if ((i == 14) || (i == 19) || (i == 25) || (i == 26) || (i == 27))
        {
            continue;
        }

        gutmanns[i] = new byte[fi.Length];
    }

    using (var rnd = new RNGCryptoServiceProvider())
    {
        for (var i = 0L; i < 4; i++)
        {
            rnd.GetBytes(gutmanns[i]);
            rnd.GetBytes(gutmanns[31 + i]);
        }
    }

    for (var i = 0L; i < fi.Length;)
    {
        gutmanns[4][i] = 0x55;
        gutmanns[5][i] = 0xAA;
        gutmanns[6][i] = 0x92;
        gutmanns[7][i] = 0x49;
        gutmanns[8][i] = 0x24;
        gutmanns[10][i] = 0x11;
        gutmanns[11][i] = 0x22;
        gutmanns[12][i] = 0x33;
        gutmanns[13][i] = 0x44;
        gutmanns[15][i] = 0x66;
        gutmanns[16][i] = 0x77;
        gutmanns[17][i] = 0x88;
        gutmanns[18][i] = 0x99;
        gutmanns[20][i] = 0xBB;
        gutmanns[21][i] = 0xCC;
        gutmanns[22][i] = 0xDD;
        gutmanns[23][i] = 0xEE;
        gutmanns[24][i] = 0xFF;
        gutmanns[28][i] = 0x6D;
        gutmanns[29][i] = 0xB6;
        gutmanns[30][i++] = 0xDB;
        if (i >= fi.Length)
        {
            continue;
        }

        gutmanns[4][i] = 0x55;
        gutmanns[5][i] = 0xAA;
        gutmanns[6][i] = 0x49;
        gutmanns[7][i] = 0x24;
        gutmanns[8][i] = 0x92;
        gutmanns[10][i] = 0x11;
        gutmanns[11][i] = 0x22;
        gutmanns[12][i] = 0x33;
        gutmanns[13][i] = 0x44;
        gutmanns[15][i] = 0x66;
        gutmanns[16][i] = 0x77;
        gutmanns[17][i] = 0x88;
        gutmanns[18][i] = 0x99;
        gutmanns[20][i] = 0xBB;
        gutmanns[21][i] = 0xCC;
        gutmanns[22][i] = 0xDD;
        gutmanns[23][i] = 0xEE;
        gutmanns[24][i] = 0xFF;
        gutmanns[28][i] = 0xB6;
        gutmanns[29][i] = 0xDB;
        gutmanns[30][i++] = 0x6D;
        if (i >= fi.Length)
        {
            continue;
        }

        gutmanns[4][i] = 0x55;
        gutmanns[5][i] = 0xAA;
        gutmanns[6][i] = 0x24;
        gutmanns[7][i] = 0x92;
        gutmanns[8][i] = 0x49;
        gutmanns[10][i] = 0x11;
        gutmanns[11][i] = 0x22;
        gutmanns[12][i] = 0x33;
        gutmanns[13][i] = 0x44;
        gutmanns[15][i] = 0x66;
        gutmanns[16][i] = 0x77;
        gutmanns[17][i] = 0x88;
        gutmanns[18][i] = 0x99;
        gutmanns[20][i] = 0xBB;
        gutmanns[21][i] = 0xCC;
        gutmanns[22][i] = 0xDD;
        gutmanns[23][i] = 0xEE;
        gutmanns[24][i] = 0xFF;
        gutmanns[28][i] = 0xDB;
        gutmanns[29][i] = 0x6D;
        gutmanns[30][i++] = 0xB6;
    }

    gutmanns[14] = gutmanns[4];
    gutmanns[19] = gutmanns[5];
    gutmanns[25] = gutmanns[6];
    gutmanns[26] = gutmanns[7];
    gutmanns[27] = gutmanns[8];

    Stream s;

    try
    {
        s = new FileStream(
            fi.FullName,
            FileMode.Open,
            FileAccess.Write,
            FileShare.None,
            (int)fi.Length,
            FileOptions.DeleteOnClose | FileOptions.RandomAccess | FileOptions.WriteThrough);
    }
    catch (UnauthorizedAccessException)
    {
        return;
    }
    catch (IOException)
    {
        return;
    }

    using (s)
    {
        if (!s.CanSeek || !s.CanWrite)
        {
            return;
        }

        for (var i = 0L; i < gutmanns.Length; i++)
        {
            s.Seek(0, SeekOrigin.Begin);
            s.Write(gutmanns[i], 0, gutmanns[i].Length);
            s.Flush();
        }
    }
}

Es gibt „disk repair“ Typ-Anwendungen und Dienste, die noch Daten von einer Festplatte lesen kann, auch nachdem sie formatiert worden ist, so einfach mit zufälligen 1 und 0 ein Überschreiben ist nicht ausreichend, wenn Sie wirklich sicher etwas löschen müssen .

Ich würde sagen, dass für die durchschnittlichen Benutzer, dies ist mehr als ausreichend, aber wenn man in einer Hochsicherheitsumgebung (Regierung, Militär, etc.) ist, dann müssen Sie ein viel höheres Maß an „löschen“ Das kann ziemlich effektiv garantiert, dass keine Daten aus dem Laufwerk einbringbar sind.

Die Vereinigten Staaten haben Anforderungen löschte in Bezug auf die Löschung von sensiblen Informationen (das heißt Top Secret Info) ist das Laufwerk zu zerstören. Grundsätzlich wurden die Antriebe in eine Maschine mit einem riesigen Magneten setzen und würden auch physisch den Antrieb für die Entsorgung zerstören. Dies liegt daran, es gibt eine Möglichkeit, auf einem Laufwerk Informationen lesen, auch viele Male überschrieben werden.

Sehen Sie diese: Guttman Papier

invertieren Sie die Bits, so dass 1en geschrieben werden auf alle 0 und 0 geschrieben werden alle 1 dann Null alle sich heraus, dass im Magnetfeld einer Variablen los und dauert nur 2 Pässe bekommen sollte.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top