Falsche Akzeptanz eines möglichen Schutzes Marc Ruef | 12.10.2009 Ich fahre täglich mit Bus, Bahn und Tram zur Arbeit. Pro Arbeitsweg sitze ich knapp 45 Minuten in einem öffentlichen Verkehrsmittel. Früher habe ich stets gelesen. Da kommen pro Woche dann etwa 300 Lesestunden zusammen. Mittlerweile mag ich aber nicht immer lesen. Vor allem am Abend bin ich zu müde, um abgesehen von einer seichten Tageszeitung meine Nase noch in ein technisches Buch oder einen Klassiker der Literatur zu stecken. Aus diesem Grund schaue ich unterwegs meistens Filme, Serien oder Dokumentationen. Bei längeren Reisen gerne auf meiner Sony PSP, die mit einem guten Bildschirm und ausgezeichneter Akkulaufzeit überzeugen kann. Seitdem ich jedoch ein iPhone besitze, bin ich etwas faul darin geworden, ein zusätzliches Gadget mit mir herumzuschleppen, so dass ich die meisten Filme auf dem Handy schaue. (Oder halt eben doch die neuesten Meldungen aus den RSS/Twitter-Feeds auf durchgehe.) Unter anderem habe ich den Video Podcast der Wissenssendung "Galileo" von Pro7 abonniert. In diesem werden in jeweils 15-minütigen Berichten spezifische Themen behandelt. Einer der Beiträge setzte sich mit "Sicherheitsprodukten" auseinander. Dort wurden dann eine Handy-Ortungs-Software, ein mit Fingerabdruck-Scanner geschützter USB-Stick, eine auf Infrarot-Schranken basierende Alarmanlage sowie ein auf einem Lichtsensor basierende Alarmanlage für Schubladen getestet. Der dafür zuständige "Sicherheitsexperte" agierte meines Erachtens jedoch ungeschickt, ja in allen Fällen gar extrem unsystematisch. Obwohl dies wohl auch grösstenteils mit dem Format des Podcasts zusammenhängt, möchte ich dies zum Anlass nehmen, um ein konkretes Problem von Sicherheitsüberprüfungen zu illustrieren. Der besprochene USB-Stick wies einen kleinen Fingerabdruck-Scanner auf. Erst durch die Authentisierung auf biometrischer Ebene sollte der Zugriff auf die Daten durchgeführt werden können. Das Test-Szenario eines Angriffs bestand nun darin, dass der Stick entwendet und am Rechner des Diebs ausprobiert werden würde. Da sich dieser mit seinem eigenen Fingerabdruck nicht authentisieren konnte, wurde das Produkt als "sicher" eingestuft. Wahrlich vermag der Fingerabdruck-Scanner vor unerlaubten Zugriffen schützen. Doch nur vor unerlaubten Zugriffen, die über den legitimen und damit erwarteten Zugriffsweg geschehen wollen. Der USB-Stick legt die Daten in verschlüsselter Form ab und erst durch das Einlesen des Fingerabdrucks findet eine Entschlüsselung des Vaults statt. Dies geschieht durch eine zusätzlich auf dem Rechner installierte Applikation. Der Vault und damit die chiffrierten Daten sind jedoch immer vorhanden. Der Angreifer kann also auf anderen Wegen versuchen, an diese zu kommen, ohne den Prozess der biometrischen Authentisierung durchlaufen zu müssen. Je nach eingesetzter Verschlüsselung liesse sich diese selbst angreifen. Gerade proprietäre Mechanismen neigen zu schwerwiegenden Fehlern, die ein erfahrener Kryptologe eruieren kann. Spätestens mit einer Chosen-Plaintext-Attacke liesse sich das Grundprinzip des Mechanismus bestimmen und mit diesem die möglichen Angriffspunkte. Ich selbst würde jedoch einen anderen Weg bevorzugen. Ich gehe davon aus, dass eine halbwegs intelligente Lösung den Original-Fingerabdruck nicht speichert, sondern mit einem Einweg-Mechanismus die Korrektheit dessen feststellt: Das Einlesen des Fingerabdrucks wird voraussichtlich einen Bitstream generieren, der als "Passwort" verwendet wird. Dieser Bitstream wird dann in einem Prozess einer klassischen Entschlüsselung auf die Daten des Vaults angewendet. Durch eine stupide Bruteforce-Attacke liessen sich nun alle Varianten dieses Bitstreams generieren und damit auch ohne den dazugehörigen Finger die Originaldaten wiederherstellen. Der Aufwand und mit ihm der Erfolg dieser Angriffstechnik ist massgeblich von der Komplexität der als Passwort verwendeten Bitstreams abhängig. Durch API Call Interception liessen sich die Bitstreams eines Authentisierungsversuchs mitlesen und dadurch die Komplexität ableiten (oder durch ein Deadlisting der jeweiligen Codeteile). Da der Hersteller des Produkts voraussichtlich stark darauf bedacht ist, dass nicht versehentlich zwei unterschiedliche Fingerabdrücke den gleichen Bitstream generieren, werden wohl eine hohe Anzahl an Prüfpunkten und damit ein langer Bitstream verwendet werden. Das Problem hierbei ist, dass nur selten Bitstreams variabler Länge zum Einsatz kommen. Wird also stets eine 16 Bit lange Zeichenkette eingesetzt, so kommen nur 65'536 = 2^16 Varianten zum Einsatz (ebenso viele unterschiedliche Fingerabdrücke könnten erkannt werden). Eine Bruteforce-Attacke auf einen solch begrenzen Schlüsselraum ist überschaubar und wird in wirtschaftlich vertretbarer Zeit zum Ziel führen. Die Sicherheit eines durch einen Fingerabdruck geschützten USB-Sticks ist also nicht zwingend von der Verfügbarkeit des richtigen Fingers abhängig. Viel mehr gibt es auch noch andere Angriffsflächen, die das biometrische Merkmal als solches gänzlich vernachlässigen lassen. Dann wird das Ganze zu einem klassischen Angriff, der nur noch mit Bits und Mathematik zu tun hat.