20200710_Abschlussbericht_v1.0_geschwrzt_final

Dieses Dokument ist Teil der Anfrage „Analyse JAVA Card mit FIDO U2F Applet

/ 40
PDF herunterladen
Analyse nicht-zertifizierter IT-Sicherheitselemente Untersuchung einer Java-Karte mit FIDO U2F Applet Prüfbericht Autor:   TÜV Informationstechnik GmbH Version: 1.0 Datum: 14.09.2016
1

Änderungshistorie Version          Datum               Name                          Beschreibung 0.3          2016-08-16          TÜViT              Zwischenstand für BSI zur Kommentierung 1.0          2016-09-14          TÜViT              Finaler Report Bundesamt für Sicherheit in der Informationstechnik Postfach 20 03 63 53133 Bonn Tel.: +49 22899 E-Mail:           @bsi.bund.de Internet: https://www.bsi.bund.de © Bundesamt für Sicherheit in der Informationstechnik 2016
2

Inhaltsverzeichnis Inhaltsverzeichnis Änderungshistorie............................................................................................................................................................................. 2 1      Einführung und Motivation.......................................................................................................................................................... 7 2      Softwaretechnische Präparation................................................................................................................................................. 8 2.1        Laden und Installation des FIDO-Applets auf die vorgegebene Plattform......................................................8 2.2        Messumgebung für das FIDO-Applet................................................................................................................................ 8 2.3        Erstellen eigener Applets für die vorgegebene Plattform.........................................................................................8 3      Charakterisierung der Hardware.............................................................................................................................................. 10 3.1        Identifizierung des zugrundeliegenden Sicherheits-ICs durch Oberflächenaufnahmen und Recherche...................................................................................................................................................................................... 10 4      Protokollanalyse und Source-Code-Analyse des Applet...............................................................................................12 4.1        Protokollanalyse........................................................................................................................................................................ 12 4.1.1           Allgemein............................................................................................................................................................................... 12 4.1.2           Registrierung........................................................................................................................................................................ 12 4.2        Source-Code-Analyse.............................................................................................................................................................. 14 4.3        Identifizierte Assets.................................................................................................................................................................. 14 4.4        Angriffsszenarien...................................................................................................................................................................... 15 4.4.1           Angriff auf den Cryptographic Authentication Key einer Webseite..........................................................15 4.4.2           Angriff auf den Symmetric Encryption Key.......................................................................................................... 15 5      Dokumentation der Angriffe und Bewertungen.............................................................................................................. 17 5.1        AES-Leakage-Analyse.............................................................................................................................................................. 17 5.1.1           Lokalisierung der AES-Verschlüsselung.................................................................................................................. 17 5.1.2           EM-Scan.................................................................................................................................................................................. 18 5.1.3           Synchronisation.................................................................................................................................................................. 21 5.1.4           Kollisionsanalyse................................................................................................................................................................ 21 5.2        Deinterleave-Leakage-Analyse........................................................................................................................................... 23 5.2.1           Lokalisierung der Deinterleage-Funktion.............................................................................................................. 23 5.2.2           Korrelationsanalyse........................................................................................................................................................... 25 5.2.3           Templateanalyse................................................................................................................................................................. 27 5.3        ECC-Leakage-Analyse............................................................................................................................................................. 28 5.3.1            Korrelationsanalyse.......................................................................................................................................................... 31 6      Zusammenfassung und Schlussfolgerung........................................................................................................................... 35 Anhang.................................................................................................................................................................................................. 36 Literaturverzeichnis........................................................................................................................................................................ 37 Stichwort- und Abkürzungsverzeichnis................................................................................................................................ 38 Bundesamt für Sicherheit in der Informationstechnik                                                                                                                                                              3
3

Inhaltsverzeichnis Abbildungsverzeichnis Abbildung 1: Freigelegte Chipoberfläche einer Java-Karte........................................................................................................ 10 Abbildung 2: Ablauf eines Registrierungskommandos nach FIDO [FIDO15]...................................................................12 Abbildung 3: Ablauf eines Authentifizierungskommandos nach FIDO [FIDO15]..........................................................13 Abbildung 4: Stromprofil der AES-Verschlüsselung im CBC-Modus; Anzahl der verschlüsselten Blöcke: 1.....17 Abbildung 5: Stromprofil der AES-Verschlüsselung im CBC-Modus; Anzahl der verschlüsselten Blöcke: 4.....17 Abbildung 6: Vergrößerte Darstellung des in Abbildung 4 markierten Bereichs...........................................................18 Abbildung 7: Vergrößerte Darstellung des in Abbildung 5 markierten Bereichs...........................................................18 Abbildung 8: Ergebnis des EM-Scans während der Ausführung einer AES-Verschlüsselung...................................19 Abbildung 9: EM-Messung an einer Position mit hohem Signal-zu-Rauschen-Verhältnis......................................19 Abbildung 10: Position der EM-Sonde während der Messung...............................................................................................20 Abbildung 11: Beispielmessung einer möglichen AES-Verschlüsselung...........................................................................20 Abbildung 12: Vergrößerte Darstellung des Endbereichs der vermuteten AES-Verschlüsselung; mögliche Sbox-Aufrufe rot-umrandet..................................................................................................................................................................... 21 Abbildung 13: Teilergebnisse aus der Kollisionsanalyse............................................................................................................. 22 Abbildung 15: Stromprofil der deinterleave-Funktion................................................................................................................ 23 Abbildung 16: EM-Profil der deinterleave-Funktion.................................................................................................................... 24 Abbildung 17: Vergrößertes EM-Profil................................................................................................................................................ 25 Abbildung 18: Ergebnisse der Korrelationsanalyse des Stromprofils; Byte 1 und 2 des key handles....................25 Abbildung 19: Ergebnisse der Korrelationsanalyse des EM-Profils; Byte 1 und 2 des key handles........................26 Abbildung 20: Korrelationsanalyse auf das Hamminggewicht einzelner Nibble...........................................................27 Abbildung 21: Stromprofil (oben) und SOST-Graph (unten)..................................................................................................... 28 Abbildung 22: Stromprofil der generateSharedSecret-API-Funktion..................................................................................29 Abbildung 23: Vergleich der generateSharedSecret Funktionen auf einer 256 und eine 112-bit Kurve..............30 Abbildung 24: Ausschnitt aus den synchronisierten ECC Traces............................................................................................30 Abbildung 25: Zoom in die synchronisierten Traces aus Abbildung 24...............................................................................31 4                                                                                                                 Bundesamt für Sicherheit in der Informationstechnik
4

Inhaltsverzeichnis Tabellenverzeichnis Tabelle 1: Sourcecode der deinterleave-Funktion.......................................................................................................................... 14 Tabelle 2: Ergebnisse der Korrelationsanalyse auf die Strom- und EM-Messungen. Betrachtet wurden die Anfänge der identifizierten regulären Struktur...................................................................................................33 Bundesamt für Sicherheit in der Informationstechnik                                                                                                                        5
5

Einführung und Motivation 1 1          Einführung und Motivation Sicherheitselemente und Authentifizierungstoken, wie zum Beispiel USB-Token nach FIDO-Standard [FIDO15] oder SmartCards finden in den unterschiedlichsten Bereichen Verwendung. Sowohl im hoheitlichen Kontext als auch im privatwirtschaftlichen Umfeld sind sie ein lohnendes Angriffsziel, wenn sie eine hohe Verbreitung haben und zum Schutz sensibler Daten eingesetzt werden. Das Auslesen von sensiblen Daten durch Dritte sollte durch die Verwendung von Sicherheitselementen geschützt sein. Eine konkrete Einschätzung des praktischen Sicherheitsniveaus existiert jedoch in der Regel nur für CC-zertifizierte Produkte. In den o.g. Bereichen kommen jedoch häufig auch nicht-zertifizierte „Massenprodukte“ zum Einsatz, deren tatsächliches Sicherheitsniveau unbekannt ist. Insbesondere für den Einsatz im hoheitlichen Bereich, aber auch im Bereich von kritischen Infrastrukturen ist die Verwendung derartiger Sicherheitstoken bedenklich. In der vorliegenden Studie wird ein nicht-zertifiziertes Sicherheitselement exemplarisch untersucht. Hierbei umfasst das Wort Sicherheitselement den Chip, das OS und das Applet. Die Untersuchung dient primär der Erprobung von Seitenkanalangriffstechniken auf einen Sicherheitscontroller, der in einem nicht-zertifizierten Modus betrieben wird. Hieraus sollen Schlüsse auf die grundsätzliche Anwendbarkeit von Seitenkanalangriffen auf marktübliche Sicherheitscontroller, insbesondere bei nicht-zertifizierter Instanziierung, gezogen werden. Die Ergebnisse der Studie sollen auch dazu dienen eine Sicherheitsbewertung der untersuchten FIDO-Anwendung vornehmen zu können und eine Empfehlung für oder gegen den Einsatz in sicherheitskritischen Anwendungen treffen zu können. Als Basis unserer Sicherheitsuntersuchung dient die offizielle FIDO U2F Spezifikation vom 14 Mai, 2015. Bundesamt für Sicherheit in der Informationstechnik                                                              7
6

2 Softwaretechnische Präparation 2           Softwaretechnische Präparation Dieser Abschnitt gliedert sich in drei Teile. Zunächst wird beschrieben, welche Voraussetzungen gegeben sein müssen und wie das Vorgehen ist, um das zu untersuchende FIDO-Applet auf die gegebene Plattform zu laden. Daraufhin wird beschrieben, wie man mit diesem Applet kommunizieren kann. Der letzte Schritt befasst sich damit, wie eigene Applets für die Plattform erstellt und auf der Plattform ausgeführt werden können. Verwendete Skripte hierfür werden jeweils im Anhang gelistet und referenziert. Die verwendete Software wird gegebenenfalls angegeben oder (falls es sich um eigene Software der TÜV Informationstechnik GmbH handelt) deren Funktionalität beschrieben. 2.1         Laden und Installation des FIDO-Applets auf die vorgegebene Plattform Das untersuchte FIDO Applet ist eine Open-Source-Implementierung des FIDO-Standards und kann unter heruntergeladen werden. Das Applet wurde von der französischen Firma Ledger entwickelt, welche eigene Java-Karten vertreibt. Auf diesen Java-Karten ist der Card-Appstore fidesmo (https://www.fidesmo.com) vorinstalliert, über den das FIDO-Applet auf diesen vorbereiteten Karten installiert werden kann. Die uns zur Verfügung gestellten Java-Karten stammten leider nicht von Ledger und haben daher keinen Zugriff auf den fidesmo-Store. Daher musste das Applet von uns selbst kompiliert und auf der Java-Karte installiert werden. Für diesen Prozess wurde die Software JCworkBench (Version 2.7.2) von der Firma Riscure genutzt. Die Kompilierung des Applets war ohne Modifikationen möglich. Da die Java-Karte Globalplatform-kompatibel ist, konnte das Applet mit den Standardbefehlen über den Cardmanager der Java-Karte geladen werden. Die verwendeten Transportschlüssel entsprachen den Standardschlüsseln nicht personalisierter Java-Karten. Applets werden standardmäßig über den Cardmanager geladen und danach über den Cardmanager in das Java-Card OS installiert. Das erste Problem trat bei der Installation des Applets auf. Die Source-Code-Analyse ergab, dass das Applet die folgenden Installationsparameter erwartet: • privaten ECC-256 Schlüssel, • ein von einer CA ausgestelltes Zertifikat, welches den dazugehörigen öffentlichen Schlüssel signiert. Ein Beispieldatensatz kann in der Dokumentation des FIDO-Standards unter „FIDO U2F Raw Message Formats“ gefunden werden. Nach der Anpassung des Installationsscripts ließ sich das Applet installieren und anschließend über den Cardmanager auswählen. Unter Zuhilfenahme der Beispieldaten wurden auch Beispielskripte zum Aufruf der beiden FIDO-Funktionen „Registration“ und „Authentication“ erstellt und getestet. 2.2         Messumgebung für das FIDO-Applet Als Messumgebung wurde ein proprietäres von TÜViT entwickeltes Programm namens DPA_FI genutzt. Die Messskripte basieren auf den JCworkBench-Skripten, welche die Funktionen „Registration“ und „Authentication“ aufrufen (siehe voriges Kapitel), und liegen dem Bericht bei. Das Programm ist verantwortlich für die Kommunikation mit dem FIDO-U2F-Applet und dem Oszilloskop, sowie für die Aufnahme und Speicherung der Messdaten. Für die Analyse der Messdaten wurden proprietäre Analyseprogramme der TÜViT genutzt und, sofern notwendig, angepasst. Die Analysemethoden werden in Kapitel 5 beschrieben. 8                                                                        Bundesamt für Sicherheit in der Informationstechnik
7

Softwaretechnische Präparation 2 2.3        Erstellen eigener Applets für die vorgegebene Plattform Basierend auf der Protokollanalyse und der Definition der Assets (siehe Kapitel 4) wurden 3 eigene Applets für die Sicherheitsanalyse entwickelt. Hier sei erwähnt, dass das FIDO-Applet keine eigenen kryptographischen Funktionen implementiert sondern die vom                                   implementierten Funktionen nutzt (siehe Kapitel 4.2). 1.   Das erste Applet instanziiert das vom Betriebssystem implementierte AES-Modul und ermöglicht es uns diesen mit selbst gewählten Schlüsseln und Plaintexten aufzurufen. 2.   Das zweite Applet instanziiert das vom Betriebssystem implementierte ECC-Modul und ermöglicht es uns die Funktionen zur Schlüsselgenerierung und Signaturerzeugung aufzurufen. Hier sei erwähnt, dass es keine Möglichkeit gibt, implementierte Gegenmaßnahmen auszuschalten. Weiterhin ist es nicht möglich, selbst gewählte ephemeral keys für die ECDSA Signaturerzeugung zu übergeben. Stattdessen werden diese in jedem Aufruf der ECDSA-Signaturerzeugung vom Betriebssystem zufällig gewählt. 3.   Das dritte Applet implementiert eine Kopie der deinterleave Funktion, die einen privaten ECC Schlüssel aus dem entschlüsselten key handle extrahiert. Die Applets wurden mit Hilfe von JCworkBench programmiert, kompiliert und auf der Java-Karte installiert. Die Source-Codes der Applets liegen dem Bericht bei. Bundesamt für Sicherheit in der Informationstechnik                                                                9
8

3 Charakterisierung der Hardware

 

3  Charakterisierung der Hardware

3.1 Identifizierung des zugrundeliegenden Sicherheits-ICs durch
Oberflächenaufnahmen und Recherche

Die uns zur Verfügung gestellten Java-Karten wurden an das zu TÜV NORD gehörende Chemielabor
gegeben. Dort wurden sie mit Salpetersäure aufgeätzt um die Chipoberfläche freizulegen. Hier sei zu
erwähnen, dass bei diesem Prozess der Chip leicht zerstört werden kann und 2 von 3 Java-Karten zerstört
wurden. Des Weiteren können Säurerückstände dazu führen, dass Chips nach einer gewissen Zeit plötzlich
nicht mehr funktionieren. Abbildung 1 zeigt eine unserer aufgeätzten Java-Karten.

 

Abbildung 1: Freigelegte Chipoberfläche einer Java-Karte

Auf Abbildung 1 kann man deutlich verschiedene Bereiche auf der Chipoberfläche erkennen. Im Folgenden
haben wir versucht, diese Bereiche zu benennen. Die Identifikation der verschiedenen Bereiche basiert auf
unserer Erfahrung und und hat keinen Anspruch auf 100%ige Richtigkeit.

10 Bundesamt für Sicherheit in der Informationstechnik
9

Charakterisierung der Hardware 3 Bundesamt für Sicherheit in der Informationstechnik                              11
10

Zur nächsten Seite