English version: USB stick with hardware AES encryption has been cracked
Artikelanfang
Verschusselt
31.07.2008 13:02
Dieser Artikel erschien ursprünglich in c't 16/08

Zertifizierung hin, 256-Bit-AES her – die
beste Verschlüsselung nützt nichts, wenn eine
nachträglich angestrickte Zusatzfunktion das Passwort
preisgibt.
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.
Verschlüsselt
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 ...
Version zum Drucken
[Seite
>>]