it-swarm.com.de

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

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 sind die Standardwerkzeuge wie shred oder wipe für die oben beschriebenen Punkte hier 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).

14
Byte Commander

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 ein paar Nachforschungen angestellt und festgestellt, dass Sie all zuvor gelöschte Dateien löschen können, wenn Sie alle nicht belegten Sektoren eines Dateisystems kennenlernen, was im Allgemeinen möglich und angeboten wird von einigen Dateisystem-Tools (z. B. für die ext * -Familie) und dann discard (z. B. mit blkdiscard(8) wie angegeben in dieser Antwort) auf die verknüpfte Frage ), die die Blöcke für die Garbage Collection zurückgibt, 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).
9
David Foerster

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 sicheres Löschen unterstützt, ist die Frage: Ich habe in den folgenden Beispielen /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

https://superuser.com/questions/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 Sudo hdparm -I /dev/sdX angezeigt:
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, der den Zeiger bewegt, 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 beliebige 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

3
Elder Geek