Wie lösche ich auf einer SSD gespeicherte Dateien sicher?

Aus einem (sehr langen, aber definitiv lesenswerten) Artikel über SSDs:

Wenn Sie eine Datei in Ihrem Betriebssystem löschen, gibt es keine Reaktion von einer Festplatte oder SSD. Erst wenn Sie den Sektor (auf einer Festplatte) oder die Seite (auf einer SSD) überschreiben, verlieren Sie die Daten tatsächlich. Dateiwiederherstellungsprogramme nutzen diese Eigenschaft zu ihrem Vorteil und so helfen sie Ihnen, gelöschte Dateien wiederherzustellen.

Der Hauptunterschied zwischen Festplatten und SSDs ist jedoch was passiert, wenn Sie eine Datei überschreiben. Während eine Festplatte die neuen Daten einfach in denselben Sektor schreiben kann, weist eine SSD eine neue (oder zuvor verwendete) Seite für die überschriebenen Daten zu. Die Seite, die die jetzt ungültigen Daten enthält, wird einfach als ungültig markiert und irgendwann gelöscht.

Was wäre also der beste Weg, um auf einer SSD gespeicherte Dateien sicher zu löschen? Das Überschreiben mit zufälligen Daten, wie wir es von Festplatten gewohnt sind (z. B. mit dem Dienstprogramm "shred"), funktioniert nur, wenn Sie überschreiben Sie das GESAMTE Laufwerk...

Author: Community, 2009-08-13

6 answers

Wie wäre es mit der Verschlüsselung des Volumes selbst? Die gelöschten Daten sind weiterhin vorhanden, sollten jedoch für niemanden ohne den entsprechenden Schlüssel unzugänglich sein.

 22
Author: teabot,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2009-08-13 11:10:27

Aufgrund der Art des NAND-Flash-Speichers können SSDs Daten nicht direkt überschreiben. Wenn Sie eine Datei vor dem Löschen wiederholt überschreiben, wird sie nicht sicher auf einer SSD gelöscht-die Daten werden nur an einer anderen Stelle auf dem NAND geschrieben.

Um zu verstehen, warum dies der Fall ist, muss erklärt werden, wie SSDs im Inneren funktionieren.

  • NAND Flash ist unterteilt in Blöcke, die jeweils aus einem Satz von Seiten typischerweise 4 KB groß sind (plus Fehlerkorrekturcodes). Am moderne SSDs verwenden NAND mit Blöcken von 128 Seiten für eine Blockgröße von 512 KB, obwohl einige Laufwerke, insbesondere ältere, möglicherweise 256 KB oder kleinere Blöcke verwenden. Das folgende Diagramm nimmt 256 KB-Blöcke an, aber das Konzept ist unabhängig von der Blockgröße gleich.

Diagramm der Seiten in einem NAND-Block
Quelle - Courtesy Music Sorter bei Wikipedia, CC BY-SA 3.0

  • Jede Seite kann einzeln geschrieben werden, aber Seiten können nicht neu geschrieben werden, bis gelöscht, und Löschen kann nur in ganzen Blöcken gemacht werden. Dies bedeutet, dass die SSD die Daten auf den betroffenen Seiten immer dann ungültig markieren und an anderer Stelle, möglicherweise in einem anderen Block, neu schreiben muss, wenn Daten neu geschrieben werden. Zu einem geeigneteren Zeitpunkt, idealerweise, wenn das Laufwerk im Leerlauf ist und alle Seiten in einem Block als ungültig markiert sind, kann die SSD Blöcke löschen, die nicht mehr verwendet werden. Dieser Bereinigungsprozess wird als garbage collection bezeichnet.

  • Damit die SSD weiß, welche Blöcke gelöscht werden können, ist die das Betriebssystem muss mitteilen, welche Blöcke keine gültigen Daten mehr enthalten. Dies geschieht mit dem Befehl ATA TRIM . Die SSD ist dann frei, diese unbenutzten Blöcke Müll zu sammeln.

SSDs versuchen, Schreibvorgänge gleichmäßig über den NAND zu verteilen, um einen vorzeitigen Fehler zu vermeiden, ein Prozess, der auf dem freien Speicherplatz des Laufwerks beruht.

  • Jeder NAND-Block kann nur eine endliche Anzahl von Schreib - /Löschzyklen aufrechterhalten. Viele der heutigen Consumer-Grade SSDs verwenden 19-21nm NAND, wobei jeder Block für etwa 3.000 Zyklen gut ist, bevor er unbrauchbar wird, obwohl Enterprise-SSDs und mehrere High-End-Consumer-SSDs, die haltbarere Arten von NAND verwenden, im Handel erhältlich sind.

  • In allen Fällen müssen SSDs jedoch Schreibvorgänge über das gesamte Laufwerk verteilen, um einen übermäßigen Verschleiß an einem einzelnen Block zu vermeiden, um einen vorzeitigen Ausfall des Laufwerks durch einen Prozess namens tragen nivellierung. Effiziente Verschleißnivellierung kann nur erreicht werden, wenn eine bestimmte Menge an Speicherplatz (Over-Provisioning) reserviert ist, um eine effiziente Garbage Collection nach Bedarf zu ermöglichen, auch wenn das Laufwerk fast voll ist.

  • Unter extremen Bedingungen, unter denen die SSD aufgefordert wird, Daten schneller zu schreiben, als sie alte Blöcke löschen kann (häufig bei schreibintensiven Rechenzentrumslasten), kann es erforderlich sein, die Daten in einem Block in einen anderen Block umzuschreiben und dann den alten Block sofort zu löschen, um Platz für neue Daten zu schaffen, bevor sie hat eine Chance gehabt, Müllabfuhr durchzuführen.

  • Das erzwungene Umschreiben eines Blocks ist weniger als ideal, da es die Leistung beeinträchtigt und dazu beiträgtverstärkung schreiben, wenn mehr Daten in den zugrunde liegenden NAND geschrieben werden als der tatsächliche Betrag, den das Laufwerk zum Schreiben angewiesen wird. Die hinzugefügte Überbereitstellung hilft, die Schreibverstärkung zu verringern, indem mehr Speicherplatz zum Umschreiben von Daten und zum Löschen alter Blöcke bereitgestellt wird. Aus diesem Grund sind High-End-Enterprise-SSDs wie die Samsung SSD 845DC PRO gibt es in Größen wie 200 GB und 400 GB, obwohl das Laufwerk tatsächlich 256 oder 512 GB NAND enthält. Siehe auch: Warum haben SSDs seltsame Größen?

  • Samsungs SSD White Paper series bietet eine gründliche Erklärung des Innenlebens von SSDs. Schreiben und Löschen von NAND-Seiten und Blöcken und Garbage Collection wird in erklärt weißbuch 04.

Die einzige eine Möglichkeit, Daten auf einer SSD wirklich zu löschen, ist die Verwendung der ATA Secure Erase-Befehle.

  • Secure Erase weist das Laufwerk an, alle gespeicherten Daten zu löschen, einschließlich Daten, die möglicherweise in den überbereiteten NAND-Regionen verbleiben. Alle Blöcke werden gelöscht, wenn dies erledigt ist, was zu einem makellosen Laufwerk führt.

  • In Laufwerken mit Selbstverschlüsselungsfunktion kann das sichere Löschen einfach durch Löschen des Verschlüsselungsschlüssels implementiert werden. Da die Daten auf dem NAND eines verschlüsselten Laufwerks nicht lesbar sind ohne den Schlüssel müssen nicht alle Blöcke gelöscht werden, wie dies auf einem unverschlüsselten Laufwerk erforderlich wäre.

 14
Author: bwDraco,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2017-03-20 10:17:03

Wenn das SSD-Laufwerk die ATA-Sicherheitsmodus-Funktion unterstützt, ist eine Secure Erase-Funktion integriert, auf die Sie mit etwas wie Secure Erase zugreifen können sollten, hier dokumentiert und hier.

 14
Author: bk1e,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2017-11-07 17:35:09

Selbst wenn Sie das gesamte Laufwerk überschreiben, können Sie nicht absolut sicher sein, da sowohl HDs als auch SSDs Ersatzsektoren enthalten, die ersetzt werden, wenn Fehler auftreten, oder im Fall von SSDs, um Verschleißnivellierung zu unterstützen.

Wenn Sie absolut sicher sein möchten, dass die Daten nicht mehr wiederherstellbar sind, müssen Sie das Laufwerk physisch über die Wiederherstellung hinaus zerstören. Überschreiben gibt Ihnen vernünftige Sicherheit auf HDs-auf SSDs, gibt es nicht wirklich eine Möglichkeit, auch das zu erreichen. Wenn sie füllen die während des gesamten Laufwerks ist es immer noch möglich, dass der Block, in dem sich die Daten befanden, zur Verschleißnivellierung auf einen Ersatzblock umgestellt wurde und später wieder erscheint.

 10
Author: Michael Borgwardt,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2009-08-13 11:12:05

Wie von @teabot angegeben, umgeht die Verwendung einer vollständigen Festplattenverschlüsselungssoftware das Problem des sicheren Löschens, da Sie dies nicht mehr tun müssen. Wie jedoch in einer - bezogenen Frage angegeben, hat dies enorme Auswirkungen auf die Leistung, da dies viele Funktionen des Controllers wie Komprimierung und TRIMMEN verhindert und die Leistung auf ein Niveau reduziert, auf dem eine normale Festplatte schneller ist als die teure SSD. Für SandForce-basierte Geräte gibt es eine bessere lösung: Diese Geräte führen standardmäßig eine AES-Verschlüsselung durch, und der Schlüssel wird gelöscht, wenn Sie die ATA Secure Delete-Funktion verwenden, wodurch alle Daten nicht zugänglich sind, es sei denn, der Angreifer kann AES unterbrechen (128 Bit für aktuelle, 256 Bit für die neuen Laufwerke, die im März 2011 veröffentlicht wurden).

 6
Author: c089,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2017-03-20 10:17:03

Wie Sie dachten, ist es die einzige Möglichkeit, den gesamten freien Speicherplatz zu löschen, um sicherzustellen, dass alle Blöcke, die die Daten enthielten, gelöscht werden. Nun, abgesehen davon, dass wir die Seite aus dem Orbit nehmen...

Dies wird ziemlich zeitaufwendig sein und die Lebensdauer der Flash-Chips reduzieren, wenn Sie einen Multi-Pass-Shred verwenden.

Die andere Möglichkeit, die gelöschten Daten zu speichern, besteht darin, sie zunächst verschlüsselt mit einem verschlüsselten Dateisystem wie Truecrypt zu speichern.

 3
Author: David Spillett,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2009-08-13 11:12:38