Kaltstartattacke
Die Kaltstartattacke oder der Kaltstartangriff (englisch cold boot attack) bezeichnet in der Kryptologie eine Seitenkanalattacke, bei der ein Angreifer mit physischem Zugang zum Zielrechner Inhalte des Arbeitsspeichers ausliest, nachdem das System abgeschaltet wurde.
Sie basiert auf der Datenremanenz in gängigen RAM-Modulen, in denen sich Ladung unter bestimmten Bedingungen (oder schon allein durch Fertigungstoleranzen bedingt) nicht innerhalb von Millisekunden, sondern nach und nach langsam über Sekunden bis Minuten verflüchtigt und die Dateninhalte aus den Speicherzellen eventuell nach einigen Minuten noch erfolgreich vollständig ausgelesen werden können. Je nach Rechner können solche Reste nach mehreren Sekunden bis Minuten ohne Strom aufgefunden werden. Kühlung der Speichermodule verlängert die Remanenzzeit drastisch. Nach einer Behandlung der Module mit Kältespray halten sich die Inhalte viele Minuten lang.
Bei einem im Juli 2008 auf der USENIX-Konferenz vorgestellten Angriff gelang es Forschern der Princeton-Universität, direkt nach einem Kaltstart Daten noch forensisch auszulesen.[1] Für den Angriff wird der Zielrechner mit einem minimalen Betriebssystem kalt neugestartet. Weil dieses Mini-System nur wenig Speicher verbraucht, lässt es einen größtmöglichen Teil des Speichers unberührt, wodurch der unbenutzte Speicher noch genau das enthalten kann, was vor dem Neustart dort gespeichert war.
Aus den ausgelesenen Daten können dann die kryptographischen Schlüssel zu verschlüsselten Daten extrahiert werden, auf die im Moment des Systemabsturzes gerade Zugriff bestand. Das könnten zum Beispiel die Schlüssel von Full-Disk-Encryption-Systemen sein.
Gegenmaßnahmen
Als Best Practice zur Minderung der Angriffschancen gilt das Überschreiben der Schlüssel beim Aushängen des Datenträgers (zum Beispiel beim Herunterfahren des Systems), womit die Daten zumindest danach sicher sind. Die Trusted Computing Group empfiehlt als Gegenmaßnahme in der „TCG Platform Reset Attack Mitigation Specification“, dass das BIOS Inhalte des Arbeitsspeichers beim power-on self-test leert, wenn ein unsauberes Beenden des Betriebssystems erkannt wurde.[2] Dies verhindert allerdings höchstens, dass ein konformer Rechner selbst zum Auslesen benutzt wird.
Eine Möglichkeit, das zugrundeliegende Problem zu beheben, ist, Schlüssel und ähnliches nur im Prozessor-Cache vorzuhalten. Dieser ist in einem Gesamtchip eingebettet, dem er nicht leicht zu entnehmen ist und welcher bei Einschalten eine Initialisierung durchläuft, die die Speicherinhalte vernichtet. Dabei muss sichergestellt werden, dass der Cache-Inhalt nicht wie üblich mit dem Hauptspeicher synchronisiert wird („no-fill“-Modus). In der Praxis bremst die Methode den Prozessor zur Unbenutzbarkeit.[3][4]
Ein weiterer Ansatz ist es, den Schlüssel ausschließlich in den Registern des Prozessors vorzuhalten. Für Linux-Betriebssysteme auf x86-64-Systemen und Android auf ARM-Systemen ist eine Implementierung dieses Ansatzes als Teil des Kernels in Form eines Patchs verfügbar. Für sonstige x86-64-Betriebssysteme (z. B. Microsoft Windows) kann diese Art der Registerspeicherung durch den Einsatz einer geeigneten Hypervisor-Software erreicht werden.[5] Auf einem 64-Bit-Prozessor mit AES-Befehlssatzerweiterung, ab Core-i-'Westmere'-Prozessoren seit 2010[6] sind die Leistungseinbußen nach Aussage der Entwickler zu vernachlässigen.[5][7]
Einzelnachweise
- J. Alex Halderman, Seth D. Schoen, Nadia Heninger, William Clarkson, William Paul, Joseph A. Calandrino, Ariel J. Feldman, Jacob Appelbaum, Edward W. Felten: Lest We Remember: Cold Boot Attacks on Encryption Keys. Center for Information Technology Policy at Princeton, abgerufen am 10. Januar 2012 (englisch).
- Trusted Computing Group (Hrsg.): TCG Platform Reset Attack Mitigation Specification; Specification Version 1.00, Revision 1.00. 15. Mai 2008 (englisch, Download als PDF [abgerufen am 10. Januar 2012]).
- Juergen Pabel: FrozenCache: Mitigating cold-boot attacks for Full-Disk-Encryption software. 29. Dezember 2010, abgerufen am 10. Januar 2012 (englisch, Mitschnitte: MP4 Video, MP3 Audio, Vorbis Audio (OGG; 26,8 MB)).
- Jens Neuhalfen: Frozen Cache: Countering Cold-Boot attacks? (Nicht mehr online verfügbar.) In: neuhalfen.name. 15. Januar 2009, archiviert vom Original am 22. November 2011; abgerufen am 10. Januar 2012 (englisch). Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.
- TRESOR Runs Encryption Securely Outside RAM. Lehrstuhl 1 für Informatik, Universität Erlangen-Nürnberg, abgerufen am 7. Juni 2013 (englisch): „Running TRESOR on a 64-bit CPU that supports AES-NI, there is no performance penalty compared to a generic implementation of AES and the supported key sizes are 128, 192 and 256 bits (full AES).“
- Intel® Advanced Encryption Standard (AES) Instructions Set - Rev 3.01. Intel Inc., abgerufen am 2. August 2014 (englisch).
- Tilo Müller: TRESOR: Festplatten sicher verschlüsseln. 29. Dezember 2011, abgerufen am 10. Januar 2012 (Mitschnitte: MP4 Video, MP3 Audio).