Wie lösche ich sicher Dateien vom SSD-Laufwerk?


14

Beim Versuch, SSDs sicher zu löschen, treten verschiedene Probleme auf:

  • SSDs nutzen sich nach einer begrenzten Anzahl von Löschzyklen ab
  • SSDs verfügen über einen Controller, der LBAs (logische Blockadressen, die vom System für den Zugriff auf die Festplatte verwendet werden) den NVRAM-Zellen (den eigentlichen Flash-Speicherzellen) dynamisch zuordnet, um den Verschleiß auszugleichen. Dies bedeutet, dass die Festplatte angewiesen wird, die zuvor gespeicherten Blöcke zu überschreiben Datei kann dazu führen, dass andere Ersatzblöcke überschrieben werden.
  • SSDs verfügen über einen beachtlichen Prozentsatz der Reservekapazität, der zum Ausgleich absterbender Speicherzellen und zur Verringerung des Verschleißes verwendet wird. Sie sind für das System nicht sichtbar und können alte Datenfragmente enthalten.

Welche Möglichkeiten haben wir in Ubuntu, um SSDs sicher zu löschen?

Ich habe gehört, dass einige neuere SSDs in der Lage sein sollten, sich selbst sicher zu löschen, aber wie finde ich heraus, ob meine SSD dazu in der Lage ist und wie würde ich sie auslösen?
Es sollte auch einen ATA-Befehl zum sicheren Löschen geben. Wie finde ich heraus, ob dies unterstützt wird, und wie kann ich das auslösen?

Gibt es auch Möglichkeiten, nur eine bestimmte Datei oder nur unbenutzten Speicherplatz sicher zu löschen?
Ich denke, ein Backup aller Partitionen zu erstellen, die gesamte Festplatte sicher zu löschen und dann das Backup wiederherzustellen, wäre möglich, klingt aber zu kompliziert und würde zu lange dauern, um praktisch zu sein. Gibt es noch andere Alternativen? Wenn nicht, mit welchen Tools kann ich Partitionen sichern, ohne auch bereits gelöschte Dateien zu sichern?

Natürlich mögen shredoder wipesind die Standardwerkzeuge hier für die oben beschriebenen Punkte nicht verwendbar. Sie überschreiben einfach eine Datei (indem sie ihre Dateisystem-Cluster überschreiben, die an LBAs gebunden sind, die aufgrund des Wear Leveling Controllers nicht ständig auf dieselben Flash-Zellen zeigen).


Hier könnte es einige interessante Informationen geben wiki.archlinux.org/index.php/SSD_memory_cell_clearing
Byte Commander

Ich weiß von akademischen Arbeiten, die es in den Kernel geschafft haben, siehe lwn.net/Articles/480269
noleti 07.07.16

Antworten:


9

Derzeit gibt es keine Möglichkeit, Dateien auf der SSD sicher zu löschen, ohne den Inhalt des gesamten Laufwerks zu löschen oder auf die Firmware der SSD zuzugreifen.

  • Es ist unmöglich zu wissen, wo die SSD vorherige Kopien eines logischen Blocks speichern kann.

  • Erschwerend kommt hinzu, dass aufgrund von Journaling- und Copy-on-Write-Mechanismen des Dateisystems möglicherweise nicht bekannt ist, in welchen logischen Blöcken eine vorherige Kopie einer bestimmten Datei enthalten sein kann.

Der einzige Weg, um zu verhindern, dass gelöschte Dateien an Personen mit direktem Zugriff auf das Laufwerk gelangen, besteht darin, sie zu verschlüsseln und den Verschlüsselungsschlüssel vor neugierigen Blicken zu schützen.

Nachtrag:

Ich habe einige Nachforschungen angestellt und festgestellt, dass Sie alle zuvor gelöschten Dateien irgendwie löschen können, wenn Sie alle nicht belegten Bereiche eines Dateisystems kennenlernen, was in der Regel mit einigen Dateisystem-Tools (z. B. für die ext * -Familie) möglich und möglich ist ) und dann verwerfen (z. blkdiscard(8)B. wie in dieser Antwort auf die verknüpfte Frage beschrieben ), wodurch die Blöcke für die Garbage Collection zurückgegeben werden, bis sie erneut verwendet und dabei überschrieben werden.

Dies ist sicher für alle, die nicht direkt auf die Flash-Zellen zugreifen können, also für alle, die

  • hat kein passendes Flash-Lesegerät und
  • Die Laufwerksfirmware kann nicht überredet werden, den Inhalt nicht zugewiesener Blöcke preiszugeben (was in den meisten Fällen eine sinnvolle Änderung der Firmware und benutzerdefinierte ATA-Befehle erfordern würde, da es keinen standardisierten Weg gibt).

Würden Sie bitte die wichtigsten Punkte und eine Zusammenfassung der Anweisungen aus diesem Link in Ihre Antwort aufnehmen?
Byte Commander

Ich habe eine gleichwertige AU-Frage verlinkt. Ich hoffe das ist besser
David Foerster

Wäre es sinnvoll, freien Speicherplatz beim Booten sicher zu löschen?
user4493605

1
@ user4493605: Was meinst du mit "lebensfähig"? Das ist durchaus möglich. Könnten Sie bitte eine neue Frage eröffnen , wenn Sie eine neue Frage oder eine Folgefrage haben? Der Kommentarbereich ist nicht geeignet oder für neue Fragen oder erweiterte Diskussionen gedacht. Gerne können Sie mir einen Kommentar mit einer Benachrichtigung senden, um mich darauf aufmerksam zu machen. Vielen Dank.
David Foerster

3

Warnung: Wenn das Laufwerk nicht bereits gelöscht ist, werden durch das sichere Löschen alle Daten auf dem Laufwerk gelöscht und eine Wiederherstellung sollte unmöglich sein. Sie sollten alle wichtigen Informationen sichern.

Der einfachste Weg, um festzustellen, ob Ihr Laufwerk das sichere Löschen unterstützt, ist die Frage: In den folgenden Beispielen habe ich / dev / sdX verwendet . Sie müssen es sorgfältig ändern, um es an das Gerät anzupassen, mit dem Sie arbeiten:

Quellen:

https://ata.wiki.kernel.org/index.php/ATA_Secure_Erase

/superuser/1161531/how-to-unfreeze-drive-in-linux

$ sudo hdparm -I /dev/sdX | grep -i erase

Auf meiner SSD führt dies zu:

supported: enhanced erase
2min for SECURITY ERASE UNIT. 2min for ENHANCED SECURITY ERASE UNIT.

Wenn das sichere Löschen von Ihrem Gerät unterstützt wird, erfolgt das Auslösen in zwei oder drei Schritten.

  1. Wenn das Gerät meldet, dass es eingefroren ist, wie durch die Ausgabe von angezeigt sudo hdparm -I /dev/sdX:
not   enabled
not   locked
      frozen
not   expired: security count
supported: enhanced erase

Entsperren Sie es, indem Sie Ihr System anhalten und fortsetzen. Ich tat dies mit dem Befehl sudo systemctl suspend , den Zeiger zu bewegen, bis das System wieder aufgenommen wurde.

  1. Sie müssen ein Kennwort festlegen, um das sichere Löschen zu verwenden. In diesem Fall verwende ich foobar als Kennwort. Sie können jedes nicht leere Kennwort als temporäres Kennwort verwenden.

    sudo hdparm --user-master u --security-set-pass foobar /dev/sdX

  2. Mit dem eingestellten Passwort können Sie nun das Laufwerk sicher löschen:

sudo hdparm --user-master u --security-erase foobar /dev/sdX

Wenn Ihr Laufwerk dies unterstützt und Sie dies wünschen, können Sie stattdessen die erweiterte Sicherheitslöschung verwenden:

sudo hdparm --user-master u --security-erase-enhanced foobar /dev/sdX

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.