Wipe
Wipe (vom englischen für „wischen“ oder „putzen“) ist eine Eraser-Software, die zum sicheren Löschen von Dateien unter Linux und Windows dient. Wird eine Datei mit Wipe gelöscht, so überschreibt es diese mehrmals mit Nullen, speziellen Bit-Mustern und/oder Zufallsdaten. Dadurch soll gewährleistet werden, dass die gelöschten Daten nicht mehr durch forensische Analyse von magnetischen Datenträgern (wie Festplatten oder Disketten) rekonstruiert werden können.
Das Löschen einer Datei mit Wipe dauert länger als das normale Löschen, da zum einen die Datei mehrmals komplett überschrieben wird und zum anderen da benötigte Zufallsdaten nicht immer verfügbar sind. Das einmalige Überschreiben von Daten mit Nullen reicht entgegen früheren Meinungen aus, um eine Wiederherstellung praktisch unmöglich zu machen.[1][2]
Vergleich mit der Standard-Löschoperation
Das Löschen von Dateien geschieht normalerweise durch den Aufruf der Operation unlink
des Betriebssystems. Dieser Aufruf erfolgt normalerweise durch das Kommando rm
(z. B. unter Unix) oder del
(z. B. unter DOS oder Windows) oder durch eine entsprechende Auswahl in der grafischen Benutzeroberfläche. unlink
entfernt im Normalfall nur den Eintrag im Inhaltsverzeichnis des betreffenden Dateisystems, d. h. letztlich nur den Inode. Die Nutzdaten sind dadurch immer noch vorhanden und mit einfachsten Mitteln auszulesen. Sollen erneut Daten im Dateisystem abgelegt werden, steht dieser freigegebene Speicherplatz zwar zur Verfügung, ist aber mit aufwändigen Methoden immer noch rekonstruierbar.
Hintergrund
Die Benutzung von Wipe wird immer dann empfohlen, wenn sensible Daten nicht in die Hände anderer fallen sollen. Die Manpage von Wipe empfiehlt sogar, zur Reparatur abgegebene Notebooks vorher mittels Wipe von allen privaten Daten zu säubern. Selbiges gilt für den Verkauf von Festplatten mit ehemals wichtigem Inhalt (dabei kann aber die Festplatte als ganzes mehrfach mit Daten überschrieben werden, z. B. durch Benutzung des Unix-Kommandos dd
).
Grenzen von Wipe
Wipe hängt entscheidend von der Struktur des Dateisystems ab. Ältere Systeme, wie etwa das unter Linux verwendete Ext2 oder das von Windows/DOS bekannte FAT bzw. FAT32 machen im Zusammenhang mit Wipe keine Probleme, da sie kein Journal über getätigte Dateisystemtransaktionen führen. Sogenannte journalisierende Dateisysteme, wie ReiserFS oder Ext3, führen jedoch Buch über getätigte Schreiboperationen, um im Fehlerfall ein aufwändiges Suchen von Fehlern im Dateisystem zu unterbinden. In diesem Journal können allerdings Daten zu den zu löschenden Dateien gespeichert sein. Wipe ist jedoch nicht in der Lage, dieses Journal zu verändern, weil dies eines tiefgreifenden Eingriffs in die Treiberstruktur des Dateisystems auf Kernebene bedarf. Deshalb ist die Arbeitsweise von Wipe bei journalisierenden Dateisystemen nur durch den Dateisystemtreiber realisierbar.
Ein weiteres Problem sind die Reserve-Blöcke, die vom Speichercontroller verwendet werden, wenn in genutzten Speicher-Blöcken die Fehlerrate einen kritischen Grenzwert übersteigt: Der Speichercontroller kopiert dann die Daten aus dem betreffenden Block in einen Reserve-Block und verwendet danach nur diesen statt des ursprünglichen, allerdings – bei IDE-Festplatten – transparent für die Anwendungssoftware, so dass nicht einmal Schnittstellentreiber zur Hardware über diesen Vorgang Bescheid wissen. Die so geretteten Daten im ursprünglichen Block können daher nicht überschrieben werden. Dies ist nicht nur bei Festplatten so, sondern auch bei vielen anderen Speichermedien; beispielsweise bei der Multimedia Card (MMC). Bei Festplatten kann man dies durch Auslesen der Anzahl der defekten Blöcke überwachen, beispielsweise unter Linux wie unter Cygwin/MS-Windows bei der ersten HDD/SSD mittels
smartctl -a /dev/sda | awk '/Reallocated_S/{ print $10 }'
aber nicht verhindern.
In jüngerer Zeit immer relevanter wird weiterhin das Problem, dass auf Datenspeichern wie den meisten Flash-Speichern, sogenannte Wear-Leveling-Algorithmen dafür sorgen, dass beim Überschreiben vorhandener Daten diese an einer anderen physischen Adresse des Speichers abgelegt werden. Damit wird Programmen wie Wipe die Möglichkeit entzogen, gezielt Daten auf dem Speicher physikalisch überschreiben zu können. Auch auf Flash-Speichern mit z. B. FAT32-Dateisystem ist so ein sicheres Löschen nicht mehr möglich.
Alternativen
Ein sehr ähnliches Programm mit vergleichbarem Funktionsumfang, welches jedoch keine Verzeichnisse überschreiben kann, dafür aber als Mitglied der GNU Core Utilities bei jeder Linux-Distribution bereits vorinstalliert ist, ist Shred.
Weblinks
Einzelnachweise
- Harald Bögeholz: Sicheres Löschen: Einmal überschreiben genügt. heise.de, 16. Januar 2009
- Craig Wright, Dave Kleiman, Shyaam Sundhar R.S.: Overwriting Hard Drive Data: The Great Wiping Controversy. (PDF; 487 kB) In: Information Systems Security, Lecture Notes in Computer Science, Volume 5352, 2008, S. 243–257.