Österreichische Bürgerkarte geknackt

Mit der österreichischen Bürgerkarte sollen Behördengänge oder Bankgeschäfte sicher im Internet erledigt werden können. Dazu enthält die Karte zwei Signatur-Formen, die RSA-Signatur und die weiter entwickelte ECDSA-Signatur (Elliptic Curve Digital Signature Algorithmus), die einer Unterschrift per Hand gleichkommt. Wer die Bürgerkarte nutzenwill, benötigt die Bürgerkartenumgebung (BKU). Mit dieser Software wird die Karte programmiert. Um den Vorgang einfach und bequem zu gestalten, entwickelte die Universität Graz zusammen mit der Österreichischen Regierung die Online-Version namens Mocca. Diese besteht aus einem signierten Applet mit Java-Servlet, welches durch den STAL-Webservice (Security Token Access Layer) kommuniziert. Genau diese Java-Technologie ist anfällig für Angriffe und bildet eine Sicherheitslücke für die Bürgerkarte.

Moderne Browser verwenden die Programmier-Schnittstelle (Application Programming Interface, API) Java-LiveConnect, um Funktionen von Javascript anzusprechen. Die Sicherheitsprobleme des API rühren daher, dass es sich hierbei um ein signiertes Applet handelt, das über mehr Privilegien verfügt als ein unsigniertes Applet. LiveConnect gestattet Javascript den Zugriff auf Elemente der Benutzeroberfläche. Mit dem BKU-Applet war es möglich, sowohl Felder für Texte und Passwörter als auch Button-Klicks zu simulieren. Da das Applet in einem signierten Kontext arbeitet, während es mit der Bürgerkarte kommuniziert, sind eingegebene Daten leicht auslesbar. Ein Javascript-Programm kann somit Dokumente unterzeichnen, ohne dass es der Nutzer bemerkt. So ist es möglich, dass Web-Seiten mittels Javascript eine Bürgerkarten-Umgebung simulieren und sensible persönliche Daten von privaten Nutzern auslesen.

Das kann im Hintergrund und für den Nutzer völlig unsichtbar ablaufen, denn dieser merkt gar nicht, dass er seine Zugangsdaten auf einer gefälschten Seite einträgt. Ein Script zieht sich diese Daten dann auf den Server des Angreifers und kann damit Dinge signieren, von denen der Nutzer nichts bemerkt. Dazu könnten zum Beispiel Online-Banking Aufträge und PDF-Dokumente sein. Für E-Government Anwendungen funktionieren gefälschte Signaturen nicht, denn hier prüft das Applet, ob der Server eine SSL-Verschlüsselung verwendet und ob das Zertifikat für die gv.at-Domain ausgestellt ist. Eine Lösung gegen solche Attacken bietet das letzte Release des Mocca Project (Modular Open Citizen Card Architeture), Versionen höher als 1.3.7 sind als Download verfügbar unter egovlabs.gv.at

Den Angriff beschreibt Wolfgang Ettlinger im Artikel „Implementation of an universal forgery on the Austrian Bürgerkarte„.