USB-Stick mit Hardware-AES-Verschlüsselung - geknackt

Zertifizierung hin, 256-Bit-AES her – die beste Verschlüsselung nützt nichts, wenn eine nachträglich angestrickte Zusatzfunktion das Passwort preisgibt.

In Pocket speichern vorlesen Druckansicht
Lesezeit: 5 Min.
Von
  • Philippe Oechslin
Inhaltsverzeichnis

Bei diesem Test der Objectif Sécurité ging es nicht um einen USB-Stick mit ein bisschen Sicherheit für Dummies. Die bereits letztes Jahr in c't kurz vorgestellten Stealth MXP Sticks von MXI Security können immerhin mit einer FIPS-140-2-Zertifizierung aufwarten [1]. Und das bedeutet, dass sie das US-amerikanische National Institute of Standards and Technology (NIST) nach ausgiebigen Tests als sicher für den Einsatz in Bundesbehörden erklärt hat [2].

Schon der erste Eindruck bestätigt: Hier waren keine Anfänger am Werk. Die Stealth MXP Sticks haben einen eigenen Prozessor und einen FPGA-Chip, der AES-Verschlüsselung in Hardware umsetzt und sich gegen Auslesen der Programmierung sperren lässt (Actel ProASIC 3 A3P250). Die Markierung des Prozessors und eines Speicherbausteins sind weggekratzt, um Reverse Engineering zu erschweren. Optional kommt noch ein Fingerabdruckleser hinzu.

Wenn man den Stick einsteckt, sieht man zunächst nur eine Partition, die man lesen und sogar beschreiben kann. Sie wird allerdings bei jedem Einstecken wieder auf den Originalzustand zurückgesetzt, was einen Angriff mit trojanisierten Programmen verhindert. Das dort abgelegte Programm namens Start.exe präsentiert einen Login-Dialog für Benutzernamen und Passwort. Nach der erfolgreichen Anmeldung erscheint ein zweites Laufwerk, dessen Inhalt der Stick laut FIPS-Prüfprotokoll mit AES-256 transparent ver- und entschlüsselt.

Die Authentifizierung via Fingerabdruck erfordert kein Programm; man fährt mit dem Finger einfach über den Abdruckleser. Dies funktioniert somit auch unter Linux oder sogar am Autoradio. Für die Verwaltung des Sticks ist man jedoch auf Windows-Software angewiesen.

Der FGPA-Chip von Actel übernimmt die Hardware-Verschlüsselung

Unsere Analyse im Debugger zeigte, dass die Kommunikation zwischen der Software und dem Prozessor auf dem Stick über den USB-Port ebenfalls verschlüsselt erfolgt. Sie ergab beispielsweise, dass die Funktion SSD_AuthenticatePassword eine Anfrage an den Stick zunächst mit SSD_MSG_Encode vorbereitet, dann mit CipherSession::encrypt verschlüsselt und schließlich via Stealth_DeviceCom::SendRequest sendet. Die Überprüfung des Passworts und auch von Fingerabdrücken erfolgt also offenbar wie im Zertifizierungsprofil festgelegt auf dem Stick und nicht im PC, wo sie angreifbar wäre.

An diesem Punkt hätten wir – beeindruckt von so viel Sicherheit und offiziellen Zertifizierungen – den Test beinahe abgebrochen. Doch bei einem abschließenden Blick ...