Wie lösche ich ein SSD-Laufwerk sicher?

36

Ich bin ziemlich neu in der SSD-Technologie, daher weiß ich nicht, wie sie mit Festplatten verglichen wird, wenn es darum geht, die Festplatte sicher zu löschen. Reicht es aus, das Festplatten-Dienstprogramm auszuführen und das Laufwerk mit der Option "Mit Nullen überschreiben" zu löschen, oder ist dies für Festplatten gedacht? Gibt es andere Maßnahmen, die ergriffen werden sollten?

Ich bin jedoch nicht auf der Suche nach NSA-Sicherheit, sondern nur nach der Art von Wipe, die Sie tun würden, wenn Sie den Mac zurückgeben oder verkaufen.

Rinzwind
quelle
Müssen Sie die Daten löschen oder andere Personen davon überzeugen, dass die Daten gelöscht wurden? Wenn Sie sich nur davon überzeugen müssen, dass die Daten verloren gegangen sind, sollten Sie den ATA-Befehl Sicheres Löschen verwenden. Wenn Sie andere überzeugen möchten, müssen Sie möglicherweise einen Dienst zum Zerkleinern von Datenträgern verwenden.
DanBeale
In der IT-Sicherheit: Reicht es aus, ein Flash-Laufwerk nur einmal zu löschen? (26. Juli 11)
Graham Perrin

Antworten:

45

Es hängt von Ihrem Paranoia-Level ab. Aufgrund der Art und Weise, wie SSDs mit dem Schreiben von Daten umgehen, ist es nicht so gut, eine einmalige Null auf einer SSD durchzuführen wie auf einer Festplatte.

Wenn Sie eine bestimmte Datenseite auf eine Festplatte schreiben, werden die neuen Daten einfach über die alten Daten geschrieben und ersetzen diese. Schreiben Sie Nullen auf die gesamte Festplatte und alle alten Daten werden gelöscht. SSDs hingegen können einzelne Seiten nicht einfach überschreiben. Um die Daten auf einer Seite zu ersetzen, müssen zuerst die alten Daten gelöscht werden, und SSDs können keine einzelnen Seiten löschen. Sie müssen ganze Blöcke löschen, die aus vielen Seiten bestehen.

Wenn Sie also eine SSD zum Überschreiben auffordern, z. B. Seite Nr. 5, werden die Daten auf Seite Nr. 5 von der SSD nicht geändert, sondern als ungültig markiert, und eine andere derzeit leere Seite wird zugewiesen (z. B. Nr. 2305) Die neuen Daten werden auf Seite 2305 gespeichert, und das nächste Mal, wenn das Betriebssystem nach Seite 5 fragt, wird stattdessen die Nummer 2305 angezeigt. Die ursprünglichen Daten für Seite 5 bleiben dort bis zu einem späteren Zeitpunkt gespeichert, wenn das Laufwerk mehr Speicherplatz benötigt, alle verbleibenden gültigen Seiten aus dem Block entfernt und gelöscht werden. SSDs haben mehr physische Speicherkapazität, als sie dem Computer zur Verfügung stellen. Daher können sie einige Zeit mit solchen Blöcken jonglieren, bevor sie tatsächlich etwas löschen müssen (und wenn sie tatsächlich etwas löschen, gibt es keine gute Möglichkeit, vorherzusagen, welche Datenblöcke übrig bleiben zum Löschen ausgewählt werden). Siehe diesen AnandTech-Test für viel mehr Details (Warnung: es ist ziemlich lang und das relevante Zeug ist verteilt).

Nettoergebnis: Wenn Sie Nullen über das gesamte Laufwerk schreiben, haben Sie nicht alle alten Daten überschrieben. Sie haben die Übersetzungstabelle des Controllers aktualisiert, sodass keine der alten Daten an das Betriebssystem zurückgegeben werden (diese Seiten sind alle ungültig). Aber wenn jemand hardcore genug ist, um den Controller zu umgehen, könnte er einige Ihrer Daten zurückbekommen.

Zweimaliges Überschreiben wird wahrscheinlich funktionieren, hängt jedoch von der Zuweisungsstrategie des Controllers ab. Das zweimalige Überschreiben mit zufälligen Daten ( diskutil randomDisk 2 /dev/diskN) funktioniert zwar mit größerer Wahrscheinlichkeit, ist aber immer noch nicht garantiert. Beide haben auch einige nachteilige Nebenwirkungen: Sie beanspruchen einen Teil der Lebensdauer des Laufwerks und erhöhen außerdem die logische Fragmentierung der SSD, wodurch die Schreibleistung verringert wird.

Beachten Sie, dass neuere Versionen des grafischen Festplattendienstprogramms von OS X die Optionen zum sicheren Löschen auf SSDs deaktivieren (aus den oben erläuterten Gründen), die Befehlszeilenversion sie jedoch weiterhin zulässt. Übrigens habe ich auch einige Empfehlungen zum sicheren Löschen von SSDs durch Konvertieren in ein verschlüsseltes Format gesehen, aber dies ist (wenn überhaupt) etwas weniger sicher als das Überschreiben mit zufälligen Daten.

Der beste Weg, eine SSD sicher zu löschen, besteht darin, die integrierte Funktion zum sicheren Löschen des Controllers aufzurufen. Dies sollte (wenn die Controller-Designer ihre Arbeit erledigt haben) wirklich alle Blöcke löschen und auch den Nebeneffekt haben, dass die logische Seitenzuordnung zurückgesetzt, im Wesentlichen defragmentiert und ihre ursprüngliche Leistung wiederhergestellt wird. Leider laufen die meisten Dienstprogramme, die ich dafür gesehen habe (z. B. HDDErase von CMRR ), unter DOS, was auf einem Mac nicht funktioniert . Ich habe ein Posting zu Makros mit (ziemlich komplexen) Anweisungen zum sicheren Löschen von einer GParted-Boot-CD gefunden. Es ist möglicherweise auch möglich, Parted Magic von einem bootfähigen Flash-Laufwerk aus zu verwenden , aber ich habe dies nicht ausprobiert.

Forscher des UCSD-Labors für nichtflüchtige Systeme haben verschiedene Möglichkeiten zur Desinfektion von SSDs getestet, indem sie das Laufwerk "löschten", es dann zerlegten, um den Controller zu umgehen, und nach verbleibenden Daten suchten ( Zusammenfassung , vollständige Papierform ). Ihre Ergebnisse stimmen größtenteils mit den oben genannten überein (und zeigen auch, dass der integrierte Befehl zum sicheren Löschen nicht immer ordnungsgemäß implementiert ist):

Unsere Ergebnisse führen zu drei Schlussfolgerungen: Erstens sind integrierte Befehle effektiv, aber die Hersteller implementieren sie manchmal falsch. Zweitens ist das zweimalige Überschreiben des gesamten sichtbaren Adressraums einer SSD in der Regel, jedoch nicht immer, ausreichend, um das Laufwerk zu bereinigen. Drittens ist keine der vorhandenen festplattenorientierten Techniken zur Bereinigung einzelner Dateien auf SSDs wirksam.

Gordon Davisson
quelle
1
Danke für die ausführliche Antwort. Es ist für mich kein Problem, einen Terminal-Befehl auszuführen, wie Sie vorschlagen. Aber zum späteren Nachschlagen: Was können normale Benutzer tun, die mit Terminal nicht so vertraut sind? Verwenden Sie einfach die 7-Pass-Option von Disk Utility?
Rinzwind
4
Ich weiß nicht, ob ich eine der Optionen an dieser Stelle wirklich "empfehlen" kann - sie sind alle irgendwie beschissen. Jede der Überschreibungsoptionen beansprucht die maximale Lebensdauer des Laufwerks und erhöht die Fragmentierung und verringert die Leistung. Das Beste für Apple wäre, ATA-Secure-Erase (dh die Controller-basierte Option) als Option im Festplatten-Dienstprogramm hinzuzufügen, aber wer weiß, wann / ob das passieren wird.
Gordon Davisson
2
@ Gordon - Das war eine großartige und informative Antwort! +1
Dolan Antenucci
Hi @GordonDavisson. Neugierig, ob sich etwas geändert hat, seitdem Sie diese Antwort geschrieben haben (seitdem gab es einige Betriebssystem-Updates).
Samthebrand
@SamtheBrand: Nicht viel hat sich geändert. Ich habe einen Hinweis hinzugefügt, dass das Festplatten-Dienstprogramm (GUI-Version) jetzt das sichere Löschen auf SSDs nicht mehr zulässt (weil es nicht wirklich funktioniert), den Link zu HDDErase repariert und einen Hinweis hinzugefügt, dass Parted Magic möglicherweise funktioniert (obwohl ich es nicht ausprobiert habe) ).
Gordon Davisson
8

Öffnen Sie ein Terminal und geben Sie den folgenden Befehl ein:

df -k

Beachten Sie die erste Spalte, die der Partition der SSD entspricht, die Sie irreversibel löschen möchten. Sagen wir es ist /dev/disk1s2.

Geben Sie den folgenden Befehl ein:

dd if=/dev/zero of=/dev/rdisk1s2 bs=100k

Wo /dev/rdisk1s2ist das Raw-Gerät, das Ihrer Partition auf der SSD zugeordnet ist? Dieser Befehl schreibt die Partition vom ersten bis zum letzten verfügbaren Block vollständig. Dieser Befehl hält lange an (~ 1/2 h für 100 GB), ohne dass eine schöne Bildlaufleiste angezeigt wird.

Sobald dieser Befehl die Eingabeaufforderung Ihrer Shell zurückgibt, wurde die Festplatte vollständig und irreversibel gelöscht. Starten Disk Utilityund überprüfen Sie diese Partition. Es wird Ihnen sagen, dass es unwiderruflich beschädigt ist. Und es ist richtig.

Formatieren Sie diese Partition einfach nach Ihren Wünschen.

Folgendes passiert auf der Ebene der physischen Blöcke:Film von dd & DU Löschen einer SSD

Dan
quelle
1
Dies entspricht der Option des Festplatten-Dienstprogramms, mit Nullen zu überschreiben, und ist auf SSDs aus demselben Grund nicht vollständig sicher. Siehe meine Antwort für die detaillierte Erklärung.
Gordon Davisson
→ Gordon: Ich habe Ihre Antwort gelesen und glaube, ich habe sie verstanden und für ihre Qualität positiv bewertet. Meine Antwort ist die Verwendung des Raw-Disk-Geräts und nicht des Block-Geräts (als Festplatten-Dienstprogramm). Dies muss auf SSD überprüft werden (mit vertrauenswürdigen Tools), aber soweit ich weiß, dass bei alten Standard-HD-Systemen Caches verwendet werden, war die Raw-Disk-Schnittstelle der einfache Weg, um diesen Cache zu umgehen. Ein SSD-Gerät ist einfach eine HD-Festplatte, auf der der Cache die volle Kapazität hat und die physische Festplatte entfernt wird.
Dan
Die Verwendung des Raw-Geräts (/ dev / rdisk *) umgeht die OS-Caches, aber nicht die Flash-Übersetzungsschicht (die die Ursache des von mir beschriebenen Problems ist). Tatsächlich gibt es keine Möglichkeit, es vom Betriebssystem aus zu umgehen - der Geräte-Controller setzt den echten unformatierten Flash-Speicher einfach nie dem Bus aus (SATA oder was auch immer), und da das Betriebssystem nur über den Bus mit dem Laufwerk interagieren kann, gibt es keine Möglichkeit, dass der Zugriff für ein sicheres Überschreiben ausreicht.
Gordon Davisson
Der erste Schritt ddbesteht darin, nicht nur eine bestimmte Cache-Ebene zu umgehen (wir haben keine Möglichkeit, ihre Kapazität zu kennen), sondern sie teilweise zu erschöpfen (dies ist der Zustand in Abbildung 3). Der zweite Durchgang muss wirklich neue Blöcke finden und diese sicher löschen.
Dan
Dies reicht aus zwei Gründen immer noch nicht aus: Erstens, wenn das Festplatten-Dienstprogramm die Festplatte formatiert, überschreibt es nur einen kleinen Teil davon (Partitionstabelle, Volume-Header usw.), und es gibt keine Garantie dafür, dass dies ausreicht, um die zusätzliche Kapazität auszuschöpfen. Zweitens gibt es überhaupt keine Garantie dafür, dass das zusätzliche Schreiben, das DU ausführt, andere physische Blöcke trifft als das, was zuvor gelöscht wurde. Abhängig von der Zuweisungsstrategie des Controllers ist es durchaus möglich, dass Sie dieselben physischen Blöcke immer wieder löschen. Deshalb habe ich gesagt, dass das zweimalige Überschreiben des gesamten Speicherplatzes möglicherweise nicht ausreicht.
Gordon Davisson
7

Die Schaltfläche "Sicherheitsoptionen ..." im Festplatten-Dienstprogramm ist derzeit für SSDs ausgegraut. Laut http://support.apple.com/kb/HT3680 kann das Löschen einer SSD normalerweise sicher genug sein:

Hinweis: Bei OS X Lion und einem SSD-Laufwerk sind das sichere Löschen und Löschen von freiem Speicherplatz im Festplatten-Dienstprogramm nicht verfügbar. Diese Optionen werden für ein SSD-Laufwerk nicht benötigt, da ein Standardlöschvorgang die Wiederherstellung von Daten von einer SSD erschwert. Um mehr Sicherheit zu gewährleisten, sollten Sie die FileVault 2-Verschlüsselung aktivieren, wenn Sie das SSD-Laufwerk verwenden.

Es ist weiterhin möglich, diskutil secureErase freespace 4 disk0s2auf der Wiederherstellungspartition so etwas wie Terminal auszuführen .

Es ist jedoch wahrscheinlich besser, FileVault 2 vor dem Löschen des Laufwerks einzuschalten. Laut dieser Antwort wird beim Ausführen eines Remote-Löschvorgangs auch nur der Verschlüsselungsschlüssel gelöscht, wenn FileVault 2 aktiviert ist:

Ja, wenn Sie den Computer aus der Ferne löschen, wird eine sichere Löschung durchgeführt. Apple warnt Sie sogar davor, dass es bis zu einem Tag dauern könnte. Wenn Ihr Laufwerk jedoch mit FileVault 2 verschlüsselt wurde, muss der Datenträger nicht gelöscht werden. Es reicht aus, die auf der Festplatte gespeicherten Verschlüsselungsschlüssel sicher zu löschen. Es ist sehr schnell und so sicher wie das zugrunde liegende Verschlüsselungssystem, das vorerst sehr sicher ist.

http://training.apple.com/pdf/wp_osx_security.pdf :

FileVault 2 bietet IT-Abteilungen die Möglichkeit, den Verschlüsselungsschlüssel von einem bestimmten Mac jederzeit zu löschen, um sicherzustellen, dass weder Benutzeranmeldungs- noch Datenwiederherstellungstools auf verschlüsselte Daten zugreifen können. Dieser Vorgang wird als Remote Wipe bezeichnet.

Lri
quelle
5
Das Aktivieren der Verschlüsselung (z. B. FileVault) vor dem Speichern vertraulicher Daten ist eine hervorragende Option, aber für mich ist der zum "Löschen" des Verschlüsselungsschlüssels verwendete Prozess möglicherweise nicht vollständig sicher, aus dem gleichen Grund, aus dem ein standardmäßiges sicheres Löschen nicht möglich ist. - Der alte Verschlüsselungsschlüssel wird weiterhin im Flash gespeichert, nur auf einer Seite, die vorgezeichnet ist. So könnte jemand, der den Controller umgehen kann, immer noch auf die "gelöschte" Taste
Gordon Davisson
@GordonDavisson aber wenn Sie dann beim Formatieren des Laufwerks die Verschlüsselung erneut aktivieren, sollte der alte Verschlüsselungsschlüssel überschrieben werden, damit auf die alten Daten sicher nicht zugegriffen werden kann?
Super
@supersize Der alte Verschlüsselungsschlüssel wird möglicherweise überschrieben, hängt jedoch davon ab, welche physischen Seiten während der Neuformatierung gelöscht werden. Dies wird von der Firmware des Laufwerks gesteuert und nicht vom Betriebssystem.
Gordon Davisson