ADMIN 11/13 stellt die besten Lösungen vor und klärt, ob Browser-Plugins, Anonymisierer sowie Verschlüsselung wirklich helfen. Weitere Themen: Small ... (mehr)

Sicheres Löschen

Hartnäckig hält sich immer noch der Mythos, dass ein sogenanntes sicheres Überschreiben von Festplattensektoren nur durch mindestens 137-maliges Überschreiben mit Zufalls-Bytes möglich sei. Das war aber einmal – dieser Ansatz ist angesichts der hohen Schreibdichte moderner Platten nicht mehr zeitgemäß. Darüber hinaus ist bei SSDs das mehrfache Überschreiben aller Zellen nicht nur sinnlos, sondern verkürzt auch massiv die Lebensdauer.

Bei halbwegs modernen Platten sowie SSDs reicht ein einfaches Überschreiben mit Null-Bytes vollkommen aus. Aus diesem Grund kennt der ATA-Standard das diesbezügliche Kommando »SECURITY_ERASE_UNIT« . Dieses Kommando führt dazu, dass der Festplattencontroller unwiederbringlich sämtliche Daten auf dem Device löscht. Der Befehl kennt einen normalen Modus und einen Enhanced Mode. Der normale Modus macht das Gleiche, was ein »dd« seitens des Betriebssystems erreichen würde, entlastet aber wenigstens CPU und PCIe-Bus: das Überschreiben sämtlicher LBA-adressierbarer Sektoren, meist mit Null-Bytes. Wenn das sogenannte DCO (Device Configuration Overlay) aktiv ist, die Platte also beispielsweise weniger Sektoren und damit eine geringere Kapazität anzeigt als maximal möglich wäre und wenn sie dem Betriebssystem wie dem BIOS eine andere Geometrie vorgaukelt (ein Relikt aus der Festplatten- und BIOS-Steinzeit), dann wird auch nur dieser kleinere Bereich gelöscht, denn nur dieser ist LBA-adressierbar.

Der Enhanced Mode ignoriert DCO (setzt dieses aber nicht zurück), überschreibt mit herstellerspezifischen Daten sämtliche Sektoren inklusive aller deallokierten Bereiche aus der sogenannten G-Liste: Der Liste aller in der Vergangenheit als defekt markierten und deallokierten Sektoren, deren LBA-Adressen mit Hilfe von Reservebereichen reallokiert wurden. Auf diese Bereiche kann das Betriebssystem ohnehin nicht direkt zugreifen. Nur der Festplattencontroller selbst hat Zugriff auf sie, gibt deren Inhalte nicht preis, löscht sie aber zuverlässig.

Damit das »SECURITY_ERASE_UNIT« -Kommando erfolgreich abgesetzt werden kann, muss das Device im Status SEC5 sein, die »security« -Zeile im hdparm-Output muss also »enabled« lauten und das Device muss »not frozen« sein. Wie den obigen Ausgabemeldungen zu entnehmen ist, gibt es zwei Angaben zur Löschdauer dieser exemplarisch betrachteten SSD: ein vollständiger Löschdurchlauf im Normalmodus dauert bei diesem Device vier Minuten, im Enhanced Mode zwei Minuten – bei drehenden Platten und vor allem bei weitaus größeren Kapazitäten sind hier natürlich deutlich größere Zeitangaben im Stundenbereich zu finden.

Mit hdparm löst man das Löschen so aus:

root # hdparm --user-master u --security-erase "Geheim" /dev/sdb
security_password="Geheim"
/dev/sdd:
Issuing SECURITY_ERASE command, password="Geheim", user=user
0.000u 0.000s 0:39.71 0.0% 0+0k 0+0io 0pf+0w

beziehungsweise

root # hdparm --user-master u --security -erase-enhanced "Geheim" /dev/sdb

In beiden Fällen wird nicht nur der oben beschriebene Löschvorgang durchgeführt; vielmehr wird darüber hinaus das User-Passwort gelöscht (sprich auf NULL zurückgesetzt) und der Security Mode deaktiviert. Das Device befindet sich danach im ungeschützten Zustand SEC1. Das ATA-Kommando »SECURITY_ERASE_UNIT« ist also dazu da, eine Festplatte in einen jungfräulichen Zustand zurückzuversetzen.

Das Master-Passwort: Vorsicht!

Bisher wurde noch gar nicht erklärt, was es mit dem Master-Passwort auf sich hat. Im bislang beschriebenen Szenario kann das Master-Passwort einfach als Fallback dienen, wenn das User-Passwort nicht mehr bekannt ist. Der Sinn dahinter ergibt sich wiederum aus dem Kontext von Firmen-Notebooks: Die firmeneigene IT soll jederzeit Zugriff auf die Daten haben, auch wenn der User, sprich der (Ex-)Angestellte, nicht mehr an Bord ist.

Jede Festplatte ist initial mit einem undokumentierten Master-Passwort versehen. Im »hdparm« -Output ist dies zu erkennen durch die Angabe des Master-Passwort-Revision-Codes, der als Identifier auf das aktuell gültige Master-Passwort verweist. Der Default-Wert 65534 (Hex $FFFE) referenziert per definitionem das Hersteller-Passwort. Von Anfang an hat hiermit also der Festplatten- oder SSD-Hersteller eine Möglichkeit, die Sicherheitseinstellungen rückgängig zu machen. Das initiale Master-Passwort ist dem Anwender zwar unbekannt, kann aber überschrieben werden durch den erstmaligen Aufruf des »SECURITY_SET_PASSWORD« -Kommandos, diesmal mit dem »--user-master m« -Switch:

root # hdparm --user-master m --security-set-pass "Ultrageheim" /dev/sdbsecurity_password="Ultrageheim"
/dev/sdb:
Issuing SECURITY_SET_PASS command, password="Ultrageheim", user=master,mode=high

Der Master-Passwort-Revision-Code ist danach auf 1 gesetzt. Wichtig zu verstehen: Wenn nur ein Master-, aber kein User-Passwort gesetzt ist, sind keine Sicherheitsfeatures aktiv. Das Master-Passwort spielt seine Rolle erst aus, wenn diese bereits aktiviert sind. Dann können sämtliche Sicherheitseinstellungen entweder mit dem User- oder dem Master-Passwort über das ATA-Kommando »SECURITY_DISABLE_PASSWORD« deaktiviert werden:

root # hdparm --user-master [m|u] --security-disable "Ultrageheim"/dev/sdb

In ATA-Zuständen gesprochen: es findet wie nach einem »SECURITY_ERASE_UNIT« ein Übergang von SEC5 nach SEC1 statt. Nun lässt sich auch ein neues User-Passwort vergeben.

Was bisher verschwiegen wurde: der ATA-Standard legt zwei verschiedene Sicherheitsniveaus fest, die beim Setzen des User-Passworts bereits definiert werden und den Umfang der Fähigkeiten des Master-Passworts festlegen: »HIGH« und »MAXIMUM« . »HIGH« ist der Default (»LOW« wäre: gar keine aktivierten Security Features). Sämtliche Erklärungen bislang haben sich auf genau dieses Niveau bezogen. In diesem Sicherheitsniveau (ATA-Jargon: Master Password Capability) sind User- und Master-Passwort wie oben beschrieben bei aktivierter Security austauschbar anzuwenden.

Das Sicherheitsniveau MAXIMUM hingegen schränkt diese Fähigkeit ein. Erreicht wird es durch den Aufruf:

root # hdparm --user-master u --security-mode m --security-set-passwd "Geheim"/dev/sdb
security_password="Geheim"
/dev/sdb:
Issuing SECURITY_SET_PASS command, password="Geheim", user=user, mode=maximum

Der »hdparm« -Output spiegelt den Zustand wider (Listing 5).

Listing 5

Level MAXIMUM

 

In diesem Zustand kann man mit dem Master-Passwort das Device nicht mehr entsperren und erst recht keine direkte Deaktivierung der Sicherheitsfeatures auslösen. Kennt man das User-Passwort nicht, ist ein Übergang von SEC5 nach SEC1 nur noch über ein SECURITY_ERASE_UNIT möglich.

Der Gedanke dahinter ist, dass in diesem Fall auch die Admins keinen Zugriff auf Benutzerdaten bekommen sollen. Das Device soll sich andererseits aber wenigstens wieder in einen benutzbaren, jungfräulichen Zustand zurückversetzen lassen. Das muss bedacht werden, sollte der Sicherheitslevel auf MAXIMUM eingestellt sein! Bei Verlust des User-Passworts sind im Ernstfall sämtliche Daten unwiederbringlich verloren.

comments powered by Disqus

Artikel der Woche

Eigene Registry für Docker-Images

Wer selber Docker-Images herstellt, braucht auch eine eigene Registry. Diese gibt es ebenfalls als Docker-Image, aber nur mit eingeschränkter Funktionalität. Mit einem Auth-Server wird daraus ein brauchbares Repository für Images. (mehr)
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Ausgabe /2022