Open-Source-Tool ermöglicht Sicherheitstests von Chipkarten
Der sicherste Hardware-Chip nützt nichts, wenn sich auf ihm manipulierbare Software befindet. Mit einem neuen Open-Source-Tool kann man Smartcards auf Sicherheitsschwächen untersuchen. Das Verfahren könnten aber auch Kriminelle zu ihrem Vorteil nutzen.
Auf der Konferenz Black Hat dieses Jahr demonstrierte der Kryptoexperte Karsten Nohl von den SRLabs das Tool degate, mit dem man auf Smartcards – etwa Kredit- oder EC-Karten – gespeicherte Anwendungen genauer unter die Lupe nehmen kann.
Ein Smartcard-Chip ist ein kleiner Computer mit ROM, in dem sich sein Betriebssystem und die Anwendungssoftware befindet, Flash-Speicher für dynamische Daten, einem Rechenwerk und RAM. ROM, RAM und Rechenwerk sind über Busse miteinander verbunden. Auf den Chips befinden sich häufig wichtige Daten wie gemeinsame Schlüssel für Pay-TV-Programme oder Basisdaten für die TAN-Generierung, daher gab es in der Vergangenheit immer wieder Begehrlichkeiten, sie auszulesen. Beliebt waren bis vor etlichen Jahren sogenannte Timing-Attacken.
Vor zehn Jahren reagierte die Industrie und führte eine Verschlüsselung der Daten auf der Smartcard ein. Seitdem gab es kaum noch eine Weiterentwicklung zum Schutz der Smartcard-Controller. Dabei mussten für die Datenverschlüsselung Krypto-Algorithmen für den Schutz des RAM/ROM benutzt werden, die innerhalb eines oder mehrerer Taktzyklen der CPU der Smartcard die Daten aus dem Bus ein- und auslesen. Zudem muss ein kleiner Teil des ROM unverschlüsselt sein, da die Verschlüsselungseinheit auf der Smartcard zuerst den Key laden muss, um dann verschlüsselt mit dem Speicher und dem ROM/OS sowie dem Programm auf der Karte zu arbeiten.
Mit dem Open-Source-Tool der Forscher um Karsten Nohl kann man nun diese intern benutzten Hardware-Algorithmen aus dem Silizium in logischen und Programmcode rekonstruieren. Dazu fertigt man von dem Silizium des Chips ein mikroskopisches Foto an und markiert anschließend mit der besagten Software jedes einzelne Logikelement. Wenn alle Verbindungen mit der Software markiert sind, spuckt degate logischen Code aus, der sich wie der Chip verhält.
(Bild: SRLabs)
Ist der Verschlüsselungsalgorithmus von RAM und ROM bekannt, gilt es noch den Schlüssel dafür zu finden. Häufig ist dieser aus Kostengründen im billigen ROM und nicht im Flash abgelegt, in dem Fall ist er nicht sicher. ROM-Bereiche auf einer Smartcard sind auch passiv – also ohne eigene Stromversorgung – und rein optisch mittels Lichtmikroskop auslesbar. Werden nun Programm und Betriebssystem auf der Smartcard im ROM abgelegt, kann man sie auslesen und entschlüsseln. Somit lassen sich unsichere Implementierungen prüfen und sicherheitsrelevante Softwarefehler aufspüren, die ein Angreifer ausnutzen könnte.
Schlüssel und dynamische Daten sind dagegen sicher, wenn sie im Flash-Speicher (EEPROM) abgelegt sind. Denn diesen kann man nur mit extrem teuren Werkzeugen (bis in den Millionen-Euro-Bereich) mit Nadeln auf der Leiterbahn auslesen. Das gilt ebenso für RAM-Inhalte.
Selbst der sicherste Hardware-Chip wird angreifbar, wenn sich auf ihm unsichere Programme befinden. Da sich dieses nun mit degate feststellen lässt, ist zu erwarten, dass nicht nur "die Guten" das Sicherheitsniveau testen wollen, sondern auch Kriminelle aktiv werden. Sie könnten etwa schlechte TAN-Generatoren knacken oder "Man-in-the-Middle-Angriffe" durchführen, wie kürzlich Forscher der Universität Cambridge. Zu erwarten sind auch neue Angriffe auf Pay-TV-Systeme, die nur wenige Schlüssel für viele Benutzer verwenden.
Weitere Einzelheiten rund um den Smartcard-Chip und das Open-Source-Tool finden sich im Artikel in iX 10/2011, die seit dem 15. September im Einzelhandel oder ohne Versandkosten online bestellbar ist. (ur)