Sicherheitslücke in Eu-Authentifizierungssoftware (eIDAS Node)

research vulnerability

SEC Consult identifizierte kritische Schwachstellen in eIDAS-Node, die es einem Angreifer ermöglichen könnten, sich als beliebiger EU-Bürger auszugeben.

Bild von GOETHE mit der Tagline "Target identified" - SEC Consult

Letztes Jahr hat SEC Consult eine Schwachstelle in einer Software zur Online-Authentifizierung deutscher Bürger demonstriert, bei der man eine willkürliche Identität annehmen konnte. Diesmal war es an der Zeit, einen Schritt weiter zu gehen und sich eine ähnliche Software anzuschauen, die in der gesamten Europäischen Union eingesetzt wird.

Im Juni analysierte SEC Consult eIDAS-Node. Hierbei handelt es sich um eine Softwarebibliothek, mit der die Mitgliedstaaten am grenzüberschreitenden Authentifizierungssystem eIDAS teilnehmen können. Jeder Mitgliedsstaat verfügt über einen eigenen Mechanismus zur Authentifizierung seiner Bürger – eIDAS verknüpft diese nationalen eID-Systeme miteinander. Auf diese Weise kann sich ein EU/EEA-Bürger beispielsweise mit seinem Personalausweis bei einem Dienst in einem beliebigen Mitgliedstaat authentifizieren. SEC Consult hat auch in diesem System eine kritische Schwachstelle gefunden, die es einem Angreifer ermöglichte, sich als der berühmte Schriftsteller „Johann Wolfgang von Goethe“ – oder als jeder andere lebende Bürger – zu legitimieren.

 

Mein Name ist Johann Wolfgang von Goethe – Ich bin zurück, um es (erneut) zu beweisen

eIDAS (Electronic IDentification, Authentication and Trust Services) ist eine EU-Verordnung, die unter anderem eine Möglichkeit für Bürger definiert, sich beim Zugriff auf Dienste aus anderen Mitgliedstaaten mithilfe ihres nationalen elektronischen Identifikationsschemas (eID) zu authentifizieren. Bürger können auf diesem Weg Steuererklärungen einreichen, sich an einer Universität anmelden, Bankkonten eröffnen, Online-Zahlungen vornehmen usw. Bestehende, nationale eID-Systeme können von Bürgern weiterhin verwendet werden – diese werden durch bereitgestellte Vorschriften und Standards in das europäische eIDAS-Netzwerk eingebunden.

Der folgende Blog Post liefert einen Überblick über die kritische Schwachstelle. Nähere technische Details und Proof of Concept Informationen können in unserem Security Advisory nachgelesen werden.

eIDAS im Überblick

Nehmen wir an, ein italienischer Staatsbürger möchte sich bei einem deutschen Onlinedienst authentifizieren. Zunächst wird der deutsche eIDAS-Node (eIDAS-Connector) von der Webanwendung angewiesen, den Authentifizierungsprozess einzuleiten und sendet eine Anfrage an den italienische eIDAS-Node (eIDAS-Service). Der italienische eIDAS-Node leitet den Benutzer an ein System weiter, das in der Lage ist, den italienischen Bürgers anhand des nationalen eID-Schemas zu authentifizieren. Nach der Authentifizierung erhält der deutsche eIDAS-Connector die Identitätsinformationen, die er an die Webanwendung weiterleitet.

Abbildung zeigt schematische Sequenz einer Authentifikation - SEC Consult
Schematischer Ablauf einer Authentifizierung

eIDAS nutzt SAML für die Kommunikation zwischen dem eIDAS-Connector und eIDAS-Service (gemeinsam bezeichnet als eIDAS-Nodes). Wenn Sie sich SAML genauer ansehen, werden Sie feststellen, dass es sich um ein sehr komplexes Protokoll handelt. Es ist sehr flexibel, aber dadurch auch etwas anfällig für Implementierungsfehler. Die Tatsache, dass SAML für die eIDAS-Kommunikation verwendet wird, hat das Interesse von SEC Consult geweckt und wir wollten herauszufinden, ob eventuell Implementierungsfehler in der verwendeten Software vorliegen könnten.

Da jeder Mitgliedstaat seinen eigenen eIDAS-Node bereitstellen muss, hat die Europäische Kommission das Integrationspaket für eIDAS-Node bereitgestellt, welches als Grundlage für die Implementierung eines solchen Dienstes dienen kann. Da anzunehmen war, dass viele Mitgliedstaaten diese Software verwenden, haben wir uns diesen SAML-Parsing-Code genauer angesehen. SEC Consult hat eine Sicherheitslücke gefunden, die es einem Angreifer grundsätzlich ermöglicht, die Signaturüberprüfung zu umgehen und in weiterer Folge eine beliebige SAML-Nachricht an einen betroffenen eIDAS-Node zu senden. Der Angreifer könnte daher z.B eine manipulierte SAML-Antwort an einen eIDAS-Connector senden, um sich als ein anderer EU-Bürger zu authentifizieren.

Darstellung des Trust Store Angriffs - SEC Consult
Darstellung des Angriffs

Der anfällige Code wurde verwendet, um die Vertrauenswürdigkeit des Zertifikats zu überprüfen, mit dem die SAML-Antwort signiert wurde. Die Anwendung geht dabei folgendermaßen vor:

  1. Befindet sich das Zertifikat im lokalen Trust Store, wird es akzeptiert.
  2. Andernfalls wird das Ausstellerzertifikat aus dem lokalen Trust Store oder aus den zusätzlichen Zertifikaten in der SAML-Nachricht abgerufen.
  3. Das Zertifikat wird akzeptiert, wenn ein Vertrauenspfad zwischen dem Ausstellerzertifikat und einem Zertifikat im Vertrauensspeicher nachvollzogen werden kann.

Im zweiten Schritt wird das Ausstellerzertifikat aus dem Trust Store abgerufen, indem lediglich der Aussteller-DN auf dem Zertifikat mit dem Antragsteller-DN der Zertifikate im Trust Store abgeglichen wird. Daher wird die Signatur des Entitätszertifikats nicht mit dem öffentlichen Schlüssel im Ausstellerzertifikat verglichen. Ein Angreifer kann ein Zertifikat mit einem beliebigen öffentlichen Schlüssel erstellen, dessen Aussteller-DN mit einem der Antragsteller-DNs der vertrauenswürdigen Zertifikate übereinstimmt.

Banner der Eu-Authentifizierungssoftware - SEC Consult

Das folgende Video zeigt dieses Problem, indem sich der Angreifer in alter Tradition als „Johann Wolfgang von Goethe“ authentifiziert:

Als SEC Consult andere Versionen der eIDAS-Node Software kurz untersuchte, wurde festgestellt, dass Version 2.1 eine ähnliche Schwachstelle enthielt (siehe Advisory zu eIDAS-Node). Da diese Version nicht mehr unterstützt wird, wird dringend empfohlen, diese Version durch die aktuelle Version zu ersetzen.

Die Lösung

SEC Consult hat sich im Juli 2019 an das CEF-eID-Team gewandt. Seitdem wurde eine aktualisierte Version 2.3.1 veröffentlicht, die im Rahmen des Responsible Disclosure Prozesses vorab an die Mitgliedstaaten verteilt wurde. Die gepatchte Version kann ab sofort heruntergeladen werden.

SEC Consult möchte dem CEF-Team der Europäischen Kommission für die schnelle und professionelle Bearbeitung dieses Schwachstellenberichts danken!

Interessanterweise führte die Ruhr-Universität Bochum im Jahr 2018 einen umfangreichen Test auf häufige Schwachstellen in eID-Systemen durch. Ihre Bemühungen hätten wahrscheinlich auch diese Schwachstelle identifiziert, wenn die anfällige Version zu diesem Zeitpunkt im Einsatz gewesen wäre.

 

Dieser Research wurde von Wolfgang Ettlinger (@ettisan) im Auftrag des SEC Consult Vulnerability Labs durchgeführt.