QWAC-Zertifikate

QWAC steht für "Qualified Website Authentication Certificate" und soll "noch sicherer" Zertifikate bereitstellen. Die Initiative hat sogar ein eigenes schickes Icon.

Aber ist das schon genug um einen Standard zu erklären und die Browser der Welt zu überzeugen ?

Zertifikate sind wichtig

Die Aufgabe eines Zertifikats auf einem Server sind klar vorgegeben:

  • Verifizierung der Gegenstelle
    Ein Client erhält nach der Verbindung und im Rahmen des TLS-Handshakes das Zertifikat des Servers. Der Client kann den Namen, Aussteller, den Gültigkeitszeitraum und optional auch die CRL und den Fingerabdruck prüfen und damit sicher sein, dass er tatsächlich den gewünschten Server erreicht hat. Das schützt ihn davor, Daten an eine falsche Gegenstelle oder einen Man in the Middle zu senden.
  • Verschlüsselung
    Über den öffentlichen Schlüssel im ausgeleiferten Zertifikat können Server und Client ein Geheimnis austauschen, um die danach übertragenen Daten zu verschlüsseln. Damit werden "Mitleser" ausgesperrt und Veränderungen unterbunden.

Das alles funktioniert natürlich nur, wenn der Client dem Zertifikat vertraut und dieses nicht "gefälscht" ist. Damit kommen wir zur Frage, woher Zertifikate kommen und wie der "Trust" hergestellt wird.

Level der Verifikation (DV, OV, EV, QWAC)

Aussteller eines Zertifikat ist in der Regel eine Zertifizierungsstelle (Certificate Authority) und diese Stelle sollte natürlich sicherstellen, dass hier kein Fehler passiert. Eine Zertifizierungsstelle muss also sicherstellen, dass die Anfrage von der richtigen Person kommt. Dazu gibt es mehrere Abstufungen.

Klasse Beschreibung Kosten

Domain Validated (DV)

Diese sehr einfache Verfahren stellt einfach nur sicher, dass die DNS-Domain korrekt ist. In der Regel prüft dies die PKI durch einen vom Administrator anzulegenden DNS-Eintrag oder eine Mail mit Link an den Admin-C dieser Domain. Im Zertifikat steht dann auch nur der DNS-Name drin. Das ist aber günstig und schnell und auch Let's Encrypt nutzt diesen einfachen Weg.

0-$

Organisation Validation (OV)

Wenn Sie im Zertifikat auch ihre "Organisation" hinterlegen wollen, dann muss die PKI natürlich sicherstellen, dass Sie zu der Organisation gehören und legitimiert sind. Es ist also etwas mehr Aufwand, den sich die PKi's auch bezahlen lassen. Die Ausstellung kann zumindest beim ersten Antrag auch etwas länger dauern, z.B. Handelsregisterauszüge o.ä.

Allerdings schaut sich in der Regel kein Anwender im Browser das Zertifikat an und der Mehrwert ist fragliche

$$

Extended Validation (EV)

Die EV-Zertifikate wurden früher immer mit "besonders sicher" beworben und lange wurden Anwender auch darauf hingewiesen, dass nur eine "grüne Adresszeile" im Browser wirklich sicher ist (hier ein sehr altes Bild)

Die jüngeren Nutzer kennen diese Form der Anzeige gar nicht mehr, weil die Browserhersteller die Funktion nach und nach entfernt haben. Den die Verbindung ist damit nicht wirklich sicherer. Es wird nur bestätigt, dass die ausstellende PKI die Identität der anfragenden Stelle genauer geprüft hat, z.B. über Handelsregister, Steuernummer o.ä. Es muss also schon eine Firma existieren aber es ist keine Aussage zur Qualität des Inhalts. Angreifer könnten sogar gezielt eine ähnliche klingende Domain mit einem Firmennamen und EV-Zertifikaten ausstatten und auf Beutezug per Phishing gehen.

Google hat die Kennzeichnung daher in Chrome 69 (Sep 2018) entfernt und die Anzeige der Firma aus dem Zertifikat in der Version 77 im Jahr 2019 abgeschaltet. Firefox hat im Okt 2019 nachgezogen

$$$

Qualified Website Authentication Certificate (QWAC)

Im Jahr 2021 aber versuchen die PKIs erneut einen etwas anderen Ansatz, um die "verbesserte" Prüfung von ausgestellten Zertifikaten auf dem Client sichtbar zu machen. Der Wunsch ist es, dass die Browser beim Zugriff auf eine Webseite auch bei einer Zertifizierungsstelle nachfragen und dann den "besseren Status" entsprechend anzeigen. Die PKIs müssten dazu natürlich die Infrastruktur bereitstellen.

Ob das dann sicherer ist, die Kunden wertschätzen und den ganzen Aufwand wert ist, steht auf einem anderen Blatt. Solche Zertifikate werden sicher preislich am oberen Ende zu finden sein, während "Let's Encrypt" die gegensätzliche Strategie fährt.

$$$

SAN-Zertifikate sind übrigens auch nur normale Zertifikat. Aber je nach Verifizierung steigt der Aufwand natürlich mit jedem weiteren Namen. Wenn Sie sehr viele Zertifikate benötigen, dann bieten die meisten PKIs auch eine Verwaltungskonsole bzw. API an, damit Sie selbst Zertifikate für hinterlegte Domänen, Organisationen oder Personen (Speziell SMIME) ausstellen können. Dann geht das nach der ersten Identifizierung deutlich schneller aber kaum günstiger.

Client-Support

Damit die "Besonderheit" der QWAC-Zertifikate genutzt werden kann, müssten natürlich die Browser die Zertifikate auch entsprechend honorieren. Der Browser müsste sich zur Prüfstelle verbinden, das Zertifikat verifizieren lassen und dann dem Anwender den Erfolg oder Misserfolg auch so darstellen, dass er damit umgehen kann. Das Problem hier: PKI's schreiben keine Browser-Software und Google, Microsoft, Mozilla u.a. vertreten eine andere Meinung. Mozilla hat es ogar deutlich gemacht

Von Microsoft und Google bzw. dem Chromium-Projekt habe ich noch keine Statements gefunden aber sie haben alle damals schon die "grüne Adressleiste" abgeschaltet, da sie keinen Sicherheitsgewinn bietet sondern Besucher eine Malware-Seite sogar in trügerischer Sicherheit wiegen.

Daher wird es wohl darauf hinauslaufen, dass die Funktion zumindest anfangs über Plug-ins im Browser bereitgestellt wird. Die muss dann ein Anwender aber für den jeweiligen Browser und auf dem passenden Betriebssystem erst einmal installieren

QWACs Plug-in - ENISA
https://www.enisa.europa.eu/publications/qwacs-plugin/at_download/fullReport

Risiken

Auch PlugIns haben nicht den besten Ruf, denn Sie laufen ja unter dem Account des Anwender und sehen quasi alles, was durch den Browser geht und können die Inhalte sogar modifizieren. Sie sollten schon genau hinschauen, welche Plug-ins Sie installieren.

Aber selbst wenn das Plug-in fehlerfrei arbeitet, muss es für jeden neuen Zugriff auf eine Webseite mit einem QWAC-Zertifikat eine Verbindung zur ausstellenden PKI aufnehmen und den Status abfragen. Technisch ist das ein HTTPS-Request, der den Seitenaufbau verzögert aber vor allem der PKI die jede Menge Informationen übermittelt. Der Service bekommt neben dem Zeitpunkt und ihrer IP-Adresse auch das zu prüfende Zertifikat samt dem DNS-Namen mit.

Würden alle Browser QWAC nutzen und die häufig genutzten Seiten (Facebook, Twitter, YouTube u.a.) ein QWAC-Zertifikat einsetzen, ist sehr schnell ein Profil ihrer "Surftätigkeit" möglich. Dazu müssen Sie dann nicht einmal ihr "Cookie Einverständnis" geben. Scott Helme hat dazu einen sehr ausführlichen Artikel geschrieben:

Natürlich vertreten die Verkäufer von QWAC-Zertifikaten eine andere Meinung

Wobei all diese Schutzfunktionen problemlos auch mit "billigen" Domain-validated (DV)-Zertifikaten möglich sind. Es gibt durchaus andere Optionen, um die Gültigkeit eines Zertifikats auch dezentral zu überprüfen. Dazu würden sich gesicherte DNS-Anfragen (DNSSEC) in Verbindung mit in der DNS-Zone hinterlegte Fingerprints (DANE/TLSA) aus meiner Sicht viel besser eignen.

All diese zusätzlichen Maßnahmen sind aber kein Schutz gegen ähnlich klingende Domänen, auf denen unvorsichtige Anwender doch wieder in die Falle tappen.

Vertrauen verspielt?

Ich bin dann mal auf die Suche gegangen, wer schon ein QWAC-Zertifikat einsetzt. Der erste Treffer meiner Suchergebnisse nach den ganzen Anzeigen von Zertifikatsverkäufern war ausgerechnet der GAU einer PKI. GlobalSign hat bei der Ausstellung eines QWAC-Zertifikats geschlampt und dies wurde bei Mozilla behandelt. HTTPS basiert auf dem System der vertrauenswürdigen RootCAs und wenn diese schlampen, ist die Höchststrafe der Entzug des Vertrauens durch die Browser.

Banken, PSD2 und QWAC

Das kann aber auch damit zusammenhängen, dass QWAC-Zertifikate erst einmal für PSD2-Services erforderlich sind. Meine letzten Projekte im Zahlungsverkehr der Banken und Sparkassen liegen schon etwas zurück, so dass ich hier keine Beispiele geben kann. Aber ich gehe ganz stark davon aus, dass die Banken miteinander mittlerweile auch per HTTPS und Webservices über das Internet kommunizieren.

Hier macht es dann natürlich sinn, dass sich die Gegenstelle mit einem qualifizierten Zertifikat melde aber auch der Clientprozess seinerseits mit einem Zertifikat die Verbindung absichert. Quasi eine "Mutual TLS"-Verbindung zwischen zwei Kommunikationspartner, die beide ein QWAC-Zertifikat nutzen. In die Richtung geht auch ein Artikel bei der Bundesdruckerei, die ebenfalls entsprechende Zertifikate ausstelle:

Um als Drittanbieter Zugang zu Bankkonten zu erhalten, müssen sich Unternehmen beim automatisierten Zugriff mit einem oder mehreren Zertifikaten identifizieren. Auch Banken weisen sich mittels Zertifikat gegenüber den zugreifenden Zahlungsdienstleistern aus. Das Zertifikat gilt als „Unternehmensausweis“ im elektronischen Geschäftsverkehr. Der Artikel 34 der RTS (EU 2018/389) schreibt die Verwendung von qualifizierten Website-Zertifikaten (QWACs) oder qualifizierten Zertifikaten für elektronische Siegel (QSiegel) vor.
Quelle: https://www.bundesdruckerei.de/de/Service-Support/Service/Zertifikate-fuer-PSD2

Hierbei geht es dann aber nicht um die Kommunikation eines Endanwenders mit einem Browser und einem Webserver der Bank, sondern die Kommunikation zwischen Systemen von zwei Banken. Es gibt natürlich immer noch das SWIFT-System zur Übermittlung von Zahlungen aber darüber ist kein Zugriff auf Konten möglich.

Es gibt ja Dienstleister, die Netzwerksicherheit verkaufen und in dem Zuge das Internet nach Webservern und Zertifikaten absuchen. Hier lässt sich sehr einfach nach Banken und anderen Namen im Zertifikat suchen. Ich habe mal die Heimatsparkasse meiner Eltern genutzt und habe neben einigen "EV"-Zertifikaten auch ein direkt ein "QuoVadis Qualified Web ICA G2" gefunden:


https://search.censys.io/certificates?q=sparkasse-suedpfalz.de

Der "Webservice" für die psd2-Zugriffe zwischen Banken ist hier gut zu erkennen. Da spricht ja dann auch nichts dagegen, mal dem Zertifikat auf die Finger zu schauen. Interessanterweise löst der Name nicht per DNS auf:

C:\>nslookup psd2-xs2a.sparkasse-suedpfalz.de. 8.8.8.8
Server:  dns.google
Address:  8.8.8.8

*** psd2-xs2a.sparkasse-suedpfalz.de. wurde von dns.google nicht gefunden: Non-existent domain.

Vermutlich haben die Banken schon ihre "Lookup"-Tabellen. Aber der Service muss zumindest per IP-Scan bei der Firma censys.io aufgefallen sein, denn eine TLS-Verbindung muss ja wohl geklappt haben:

Auszug aus https://search.censys.io/certificates/4592d306c8c064a1dfd8fa8dcb86d50c2332b7165f73c09daa65850fc48ea6b1/openssl 
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:
            0d:b6:7d:0b:74:a4:bb:ee:47:39:b2:2e:d7:75:f0:86:01:b9:38:c2
    Signature Algorithm: sha256WithRSAEncryption
        Issuer:
            commonName                = UTF8STRING:QuoVadis Qualified Web ICA G2
            organizationName          = UTF8STRING:QuoVadis Trustlink B.V.
            countryName               = PRINTABLESTRING:NL
        Validity
            Not Before: Nov  9 14:03:27 2021 GMT
            Not After : Nov  9 14:12:00 2022 GMT
        Subject:
            commonName                = UTF8STRING:psd2-xs2a.sparkasse-suedpfalz.de
            organizationName          = UTF8STRING:Sparkasse S\C3\BCdpfalz
            2.5.4.97 = UTF8STRING:PSDDE-BAFIN-101000
            localityName              = UTF8STRING:Landau in der Pfalz
            stateOrProvinceName       = UTF8STRING:Rheinland-Pfalz
            countryName               = PRINTABLESTRING:DE
            serialNumber              = PRINTABLESTRING:HRA 2321
            businessCategory          = UTF8STRING:Private Organization
            jurisdictionLocalityName  = UTF8STRING:Landau
            jurisdictionStateOrProvinceName = UTF8STRING:Rheinland-Pfalz
            jurisdictionCountryName   = PRINTABLESTRING:DE
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
                Public-Key: (2048 bit)
                Modulus:
                    xxxxxxxxxxx
                Exponent: 65537 (0x10001)
        X509v3 extensions:
            X509v3 Authority Key Identifier: 
                keyid:BC:EB:5E:FB:D8:0D:E8:82:AE:86:46:BD:3B:7C:B2:6F:D1:2C:7F:0A
            Authority Information Access: 
                CA Issuers - URI:http://trust.quovadisglobal.com/quovadisqualifiedwebicag2.crt
                OCSP - URI:http://ocsp.quovadisglobal.com
            X509v3 Subject Alternative Name: 
                DNS:psd2-xs2a.sparkasse-suedpfalz.de
            X509v3 Certificate Policies: 
                Policy: 0.4.0.194112.1.4
                Policy: 0.4.0.19495.3.1
                Policy: 1.3.6.1.4.1.8024.0.2.100.1.2
                Policy: 1.3.6.1.4.1.8024.1.450
                  CPS: https://www.quovadisglobal.com/repository
                Policy: 2.23.140.1.1
            X509v3 Extended Key Usage: 
                TLS Web Client Authentication, TLS Web Server Authentication
            qcStatements: 
                xxxxxxx.010/.)https://www.quovadisglobal.com/repository..en0e..xxx
                xxxx ...PSP_AI.'Federal Financial Supervisory Authority..DE-BAFIN
            2.23.140.3.1: 
                0...PSD..DE..BAFIN-101000
            X509v3 CRL Distribution Points: 
                Full Name:
                  URI:http://crl.quovadisglobal.com/quovadisqualifiedwebicag2.crl
            X509v3 Subject Key Identifier: 
                92:75:DB:63:5D:26:09:23:47:76:87:B4:CB:D9:00:2C:A9:40:FC:5E
            X509v3 Key Usage: critical
                Digital Signature, Key Encipherment
            CT Precertificate Poison: critical
                NULL

Wenn ich es nun drauf anlegen würde, könnte ich versuchen das Subnetz der Sparkasse zu ermitteln und per IP/Portscan den Server vermutlich auch ohne DNS-Auflösung finden.

Einschätzung

Meine Kollegen von NoSpamProxy haben mich auf das Thema QWAC aufmerksam gemacht. Sie sind beim Thema Zertifikate immer aufmerksam, wenn es neue Entwicklungen oder mögliche Standards gibt. Aber natürlich gibt es auch einig Irrwege, die nur auf den ersten Blick interessant aussehen aber bei einer genaueren Betrachtung mehr Nachteile als Vorteile haben.

Dass im Finanzsektor die Verbindung zwischen Banken per HTTPS erfolgt, überrascht mich nicht und dass dabei Zertifikate und keine proprietäre Verschlüsslungen eingesetzt werden, ist eher ein Vorteil. "Security by Obscurity" hat noch nie funktioniert und psd2-Hosts lassen sich mit Diensten wie https://search.censys.io/ oder Shodan schnell finden. Dennoch kann so eine Verbindung sicher sein, wenn beide Seiten das Zertifikat genau prüfen. Dazu kann die QWAC-Extension nützlich sein, wenn die PKIs nicht schludern.

Für Privatanwender oder öffentliche Webseiten kann ich aber schon für die EV-Zertifikate keinen Vorteil sehen und für die QWAC-Zertifikate schon erst recht nicht. Anwender müssen immer darauf achten, auf welcher Webseite sie sind und in welches Formular sie gerade ihre Anmeldedaten o.ä. eintragen. Die Browser sorgen mittlerweile schon dafür, dass HTTPS zum neuen Standard wird und Webseiten ohne Verschlüsselung abgestraft werden. Einfache DV-Zertifikate gibt es auch per Let's Encrypt oder sind in ihrem Hostingpaket zum Teil enthalten.

Im Grunde sind QWAC-Zertifikate aber nichts anderes als EV-Zertifikate mit einem weiteren Property, welches aktuell wohl nur PSD2-Services auswerten.
Wenn Sie eine andere Einschätzung haben, dann schreiben Sie mir oder bloggen Sie darüber.

Weitere Links