Wear-Leveling-Algorithmus zur Verteilung der Schreibzugriffe in USB-Sticks

09/09/2009 - 13:04 von Micki Müller | Report spam
Hallo,

ich bin mir nicht sicher, ob ich mit meiner Frage in der richtigen
Gruppe gelandet bin. Falls nicht, bin ich dankbar für Tipps, wo die
Frage besser aufgehoben wàre.

Es geht um den Wear-Leveling-Algorithmus, der in Flash-Speichermedien
Schreibzugriffe so gleichmàßig auf alle Zellen verteilen soll, dass
keine über Gebühr belastet wird und es zu einem zu schnellen Verschleiß
kommt.

Dieser Algorithmus soll aber laut Wikipedia standardmàßig in der
Firmware der USB-Stick-Controller enthalten sein und die Ursache dafür
sein, dass sicheres Löschen von Dateien durch mehrfaches Überschreiben
der entsprechenden Blöcke auf dem USB-Stick nicht mehr möglich ist, weil
die Schreibzugriffe eben nicht durch Programme auf Anwendungsebene auf
bestimmte Blöcke gelenkt werden können.

s. a.

http://de.wikipedia.org/wiki/Flash-...t_durch_So
ftware
http://de.wikipedia.org/wiki/Wear-L...und_Ausfal
lvorhersage
http://de.wikipedia.org/wiki/Solid_...3.B6schen_
und_Defragmentierung

Ist das soweit richtig bzw. Standard?

Ich habe jetzt mal ein paar Versuche mit vier verschiedenen
USB-Sticks gemacht und mittels des Freeware-Tools Secure Eraser
http://www.ascomp.de/index.php?php=...cureeraser
einzelne Dateien sicher gelöscht (durch dreimaliges oder 35-maliges
(Gutmann-Methode) Überschreiben). Würde oben Gesagtes zutreffen,
müssten die Dateien aber, überwiegend jedenfalls, wiederherstellbar
sein. Dies ist mir allerdings mit 4 verschiedenen
(Freeware-)Datenrettungsprogrammen nicht gelungen. Allerdings waren
die Dateinamen der sicher gelöschten Dateien alle lesbar.

Trotzdem widersprechen meine Testergebnisse der (verbreiteten?) Meinung,
dass sicheres Löschen durch Überschreiben auf USB-Sticks aufgrund des
Wear-Leveling-Algorithmus nicht möglich sei bzw. nur in der Form möglich
sei, dass man den gesamten Stick komplett überschreiben muss.

Daher meine Frage: Ist die Implementierung des Wear-Leveling-Algorithmus
Standard in USB-Sticks? Kann er eventuell auf Anwendungsebene durch
Programme wie Secure Eraser beeinflusst werden?

Viele Grüße,
Micki
 

Lesen sie die antworten

#1 Michael Baeuerle
09/09/2009 - 14:50 | Warnen spam
Micki Müller wrote:

[...]
Trotzdem widersprechen meine Testergebnisse der (verbreiteten?) Meinung,
dass sicheres Löschen durch Überschreiben auf USB-Sticks aufgrund des
Wear-Leveling-Algorithmus nicht möglich sei



Das ist aber so, jedenfalls wenn man "sicheres loeschen" so definiert,
dass alle geloeschten Daten n-mal physisch ueberschrieben wurden. Der
Wear-Leveling-Algorithmus (dessen genaue Funktionsweise in den meisten
Faellen nicht dokumentiert ist) aendert aber das Mapping der logischen
zu den physischen Blocks, d.h. die zu loeschenden Daten koennen physisch
nachher durchaus noch vorhanden sein.

Das heisst nicht, dass sie auf einfache Art ueber das USB-Interface
zugaenglich sein muessen, aber sie sind eben ggf. weniger als n-mal oder
auch gar nicht ueberschrieben worden und was physisch noch vorhanden ist
koennte prinzipiell irgendwie wiederhergestellt werden und ist damit
nicht "sicher geloescht".

bzw. nur in der Form möglich
sei, dass man den gesamten Stick komplett überschreiben muss.



Selbst das einmalige Ueberschreiben aller logischen Blocks garantiert
nicht zwangsweise "sicheres loeschen" aller dort gespeicherten Daten
wenn der Wear-Leveling-Algorithmus mit Reservekapazitaet arbeitet (d.h.
wenn es auch ohne Defektmanagement schon mehr physische als logische
Blocks gibt). Wie oft man das ganze wiederholen muesste damit jeder
physische Block mindestens einmal beschrieben wurde kann man auch nicht
wissen wenn der Algorithmus nicht dokumentiert ist.

Daher meine Frage: Ist die Implementierung des Wear-Leveling-Algorithmus
Standard in USB-Sticks?



Ja.

Kann er eventuell auf Anwendungsebene durch
Programme wie Secure Eraser beeinflusst werden?



Prinzipiell schon, da haben vielleicht auch manche Controller
undokumentierte Befehle dafuer. Eine Standardmethode die mit jedem Stick
funktionieren wuerde gibt es AFAIK nicht.


PS:
Prinzipiell gilt das alles auch fuer Speicherkarten und SSDs sofern sie
mit NAND-Flash arbeiten (was wohl seit vielen Jahren bei 100% der
Consumerware der Fall ist).


Micha

Ähnliche fragen