SSD Secure Erase

Aus Thomas-Krenn-Wiki
Zur Navigation springen Zur Suche springen

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.

Update August 2011: Bei der Formatierung von NTFS ab 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 erforderlich (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).

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. Anders ist das Verhalten beispielsweise bei Sandisk, wo ein Secure Erase nicht alle Daten löscht.[2]

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.43 (Ubuntu 14.04) noch immer von der Nutzung der Option ab:

--trim-sector-ranges
              For Solid State Drives (SSDs).  EXCEPTIONALLY DANGEROUS. DO  NOT
              USE  THIS OPTION!!  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
              option:  an  LBA  starting  address, a colon, and a sector count
              (max 65535), with no intervening spaces.  EXCEPTIONALLY  DANGER‐
              OUS. DO NOT USE THIS OPTION!!

              E.g.  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.[3] 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, nicht an einem USB Adapter, betreiben da es ansonsten zu Problemen kommen kann.[3]

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-14-04:~# hdparm -I /dev/sdb 

/dev/sdb:

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

Falls die SSD den Zustand frozen besitzt, schafft ein Hot-Plug der SSD Abhilfe.

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-14-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-14-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
	32min for SECURITY ERASE UNIT. 32min for ENHANCED SECURITY ERASE UNIT.
[...]

Schritt 3: Secure Erase

Führen Sie nun das Secure Erase aus:

root@ubuntu-14-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	4m34.820s
user	0m0.000s
sys	0m0.002s

Schritt 4: Überprüfung

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

root@ubuntu-14-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
	32min for SECURITY ERASE UNIT. 32min for ENHANCED SECURITY ERASE UNIT.
[...]

Einzelnachweise

  1. The Intel SSD 320 Review: 25nm G3 is Finally Here: TRIM Performance (anandtech.com, 28.03.2011): 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. What is the difference between Secure Erase and Sanitize? (kb.sandisk.com)
  3. 3,0 3,1 ATA Secure Erase (ata.wiki.kernel.org)


Foto Werner Fischer.jpg

Autor: Werner Fischer

Werner Fischer arbeitet im Product Management Team von Thomas-Krenn. Er evaluiert dabei neueste Technologien und teilt sein Wissen in Fachartikeln, bei Konferenzen und im Thomas-Krenn Wiki. Bereits 2005 - ein Jahr nach seinem Abschluss des Studiums zu Computer- und Mediensicherheit an der FH Hagenberg - heuerte er beim bayerischen Server-Hersteller an. Als Öffi-Fan nutzt er gerne Bus & Bahn und genießt seinen morgendlichen Spaziergang ins Büro.


Das könnte Sie auch interessieren

Vim Dateimanagement von Remote Hosts mit netrw
Wake on LAN unter Linux
Windows 11 USB Installationsstick unter Linux erstellen