SSD Secure Erase

Aus Thomas-Krenn-Wiki
Wechseln zu: Navigation, Suche

In diesem Artikel zeigen wir wie Sie unter Linux ein Secure Erase einer SSD durchführen. Sie können damit die Performance vieler gebrauchten SSDs für die künftige Anwendung steigern. Es gehen dabei aber alle Daten der SSD verloren. Für Fusion-io ioDrives siehe Fusion-io ioDrive Low-level Formatierung.

Update August 2011: Da bei der Formatierung von NTFS mit Windows 7 oder der Formatierung von Ext4 ab mke2fs 1.41.10 oder XFS ab xfsprogs 3.1.0 ein ATA Trim durchgeführt wird, ist in diesen Fällen ein Secure Erase nicht mehr notwendig (siehe Ziele eines Secure Erase weiter unten). Soll bei einer gebrauchten SSD die Spare Area erhöht werden (z.B. mittels SSD Over-Provisioning mit hdparm) ist es aber weiterhin sinnvoll vor der Vergrößerung der Spare Area alle Blöcke zu löschen (etwa indem noch eine Formatierung inkl. Trim über die gesamte Kapazität durchgeführt wird, oder mit einem Secure Erase sofern die SSD keine Verschlüsselung eingebaut hat).

Ziele eines Secure Erase

Ein Secure Erase soll laut ATA-Spezifikation das sichere Löschen aller gespeicherten Daten eines Datenträgers garantieren. Bei den meisten SSDs, die Secure Erase unterstützen, führt dies zum physischen Löschen aller Blöcke der SSD. Die SSD ist dann wieder mit der ursprünglichen optimalen Performance nutzbar, da alle Pages direkt beschrieben werden können (siehe Solid State Drive - Schreibzugriffe).

Bei neueren SSDs mit integrierter Verschlüsselung kann Secure Erase allerdings anders implementiert sein. Solche SSDs verschlüsseln automatisch alle Daten die geschrieben werden. Bei einem Secure Erase würde es dann ausreichen den Schlüssel sicher zu löschen - die Daten könnten damit nicht mehr entschlüsselt werden, wären aber noch physisch vorhanden.[1] Auf Anfrage teilte uns Tahmid Rahman (Intel Senior Technical Marketing Engineer) am Ende der Session Optimizing Solid-State Drive (SSD) Performance for Data Center Applications am Intel Developer Forum 2011 mit, dass die Intel 320 Series SSDs und Intel 710 Series SSDs mit integrierter Verschlüsselung trotz dieser Möglichkeit nur den Schlüssel zu löschen weiterhin auch die Flash Blöcke löschen. Hauptgrund ist, dass ein Secure Erase auch bei diesen SSDs weiterhin die Performance wieder in den Ausgangszustand bringen soll.

Bei anderen SSDs mit integrierter Verschlüsselung, bei denen das Verhalten bei einem Secure Erase nicht ausreichend dokumentiert ist, empfiehlt es sich zusätzlich zu einem Secure Erase die Blöcke der SSD per Trim zu löschen, um für die neue Verwendung der SSD die optimale Performance zu bekommen. Windows 7 führt ein solches TRIM bei der Formatierung automatisch durch, ebenso Ext4 ab mke2fs 1.41.10 und XFS ab xfsprogs 3.1.0.

Das Linux-Tool hdparm bietet dazu zwar auch eine Option, die manpage rät allerdings bei hdparm Version 9.27 (Ubuntu 10.10) von der Nutzung der Option ab:

       --trim-sector-ranges
              For  Solid  State  Drives (SSDs).  EXCEPTIONALLY DANGEROUS. DO NOT USE THIS FLAG!!  Tells
              the drive firmware to discard unneeded data sectors, destroying any data  that  may  have
              been  present  within  them.  This makes those sectors available for immediate use by the
              firmware's garbage collection mechanism, to improve scheduling for wear-leveling  of  the
              flash  media.   This  option expects one or more sector range pairs immediately after the
              flag: an LBA starting address, a colon, and a sector count, with no  intervening  spaces.
              EXCEPTIONALLY DANGEROUS. DO NOT USE THIS FLAG!!

              Eg.  hdparm --trim-sector-ranges 1000:4 7894:16 /dev/sdz

Notwendige Schritte für ein Secure Erase

Die folgenden gezeigten Schritte haben wir dem ATA Wiki auf kernel.org entnommen.[2] Im Beispiel hat die zu löschende SSD den Devicenamen /dev/sdb. Wenn Sie ein Secure Erase durchführen wollen, achten Sie besonders auf den richtigen Devicenamen, damit Sie nicht irrtümlich ein falsches Laufwerk löschen.

Wichtiger Hinweis: Führen Sie ein Secure Erase nur dann aus, wenn Sie die SSD direkt an einem SATA-Port betreiben da es ansonsten zu Problemen kommen kann.[2]

Informationen zur Bedeutung der Passwörter finden Sie im Artikel ATA Security Feature Set.

Schritt 1: NOT frozen

Im ersten Schritt überprüfen Sie ob die SSD im Zustand not frozen ist und SSD Secure Erase unterstützt (supported: enhanced erase):

root@ubuntu-10-04:~# hdparm -I /dev/sdb

/dev/sdb:

ATA device, with non-removable media
	Model Number:       INTEL SSDSA2M160G2GC                    
	Serial Number:      CVPO014602FC160AGN  
	Firmware Revision:  2CV102HD
	Transport:          Serial, ATA8-AST, SATA 1.0a, SATA II Extensions, SATA Rev 2.5, SATA Rev 2.6
[...]
Security: 
	Master password revision code = 65534
		supported
	not	enabled
	not	locked
	not	frozen
	not	expired: security count
		supported: enhanced erase
	2min for SECURITY ERASE UNIT. 2min for ENHANCED SECURITY ERASE UNIT.
[...]

Schritt 2: Setzen des User Passworts

Damit Sie ein Secure Erase ausführen können, müssen Sie zuerst ein User Passwort setzen. Im Beispiel verwenden wir das Passwort Eins. Die Security Funktion ist danach aktiviert (enabled).

Warnung: Wenn Sie das User Passwort setzen, geht die SSD nach einem Reboot in den Zustand locked. Die SSD blockiert dann jeden normalen Zugriff bis sie wieder mit dem richtigen Passwort entsperrt wird. Wenn Sie die weiteren Schritte aber vollständig (ohne Reboot) durchführen, wird die Security Funktion allerdings wieder automatisch deaktiviert.

root@ubuntu-10-04:~# hdparm --user-master u --security-set-pass Eins /dev/sdb
security_password="Eins"

/dev/sdb:
 Issuing SECURITY_SET_PASS command, password="Eins", user=user, mode=high
root@ubuntu-10-04:~# hdparm -I /dev/sdb
[...]
Security: 
	Master password revision code = 65534
		supported
		enabled
	not	locked
	not	frozen
	not	expired: security count
		supported: enhanced erase
	Security level high
	2min for SECURITY ERASE UNIT. 2min for ENHANCED SECURITY ERASE UNIT.
[...]

Schritt 3: Secure Erase

Führen Sie nun das Secure Erase aus:

root@ubuntu-10-04:~# time hdparm --user-master u --security-erase Eins /dev/sdb
security_password="Eins"

/dev/sdb:
 Issuing SECURITY_ERASE command, password="Eins", user=user

real	0m55.408s
user	0m0.000s
sys	0m0.000s
root@ubuntu-10-04:~# 

Schritt 4: Überprüfung

Nach dem Secure Erase ist die Security Funktion der SSD wieder deaktiviert:

root@ubuntu-10-04:~# hdparm -I /dev/sdb
[...]
Security: 
	Master password revision code = 65534
		supported
	not	enabled
	not	locked
	not	frozen
	not	expired: security count
		supported: enhanced erase
	2min for SECURITY ERASE UNIT. 2min for ENHANCED SECURITY ERASE UNIT.
[...]

Einzelnachweise

  1. The Intel SSD 320 Review: 25nm G3 is Finally Here: TRIM Performance (anandtech.com): A side effect of having all data encrypted on the NAND is that secure erases happen much quicker. You can secure erase a SF drive in under 3 seconds as the controller just throws away the encryption key and generates a new one. Intel's SSD 320 takes a bit longer but it's still very quick at roughly 30 seconds to complete a secure erase on a 300GB drive. [...] Without the encryption key, the data stored in the NAND array is meaningless.
  2. 2,0 2,1 https://ata.wiki.kernel.org/index.php/ATA_Secure_Erase


Foto Werner Fischer.jpg

Autor: Werner Fischer

Werner Fischer, tätig im Bereich Web Operations & Knowledge Transfer bei Thomas-Krenn, hat sein Studium zu Computer- und Mediensicherheit an der FH Hagenberg abgeschlossen. Er ist regelmäßig Autor in Fachzeitschriften und Speaker bei Konferenzen wie LinuxTag, LinuxCon Europe, OSMC u.v.m. Seine Freizeit gestaltet er sehr abwechslungsreich. In einem Moment absolviert er seinen Abschluss im Klavierspielen, im anderen läuft er beim Linzmarathon in der Staffel mit oder interessiert sich für OpenStreetMap.


Das könnte Sie auch interessieren

Daten mit rsync unter Linux synchronisieren
Linux Kernel Oops oder Kernel Panic analysieren
Solid-State Drive