Standards · FIDO CTAP 2.2 Hybrid (Passkey QR)

Soll ich diesen Passkey-Anmelde-QR scannen?

Nur wenn SIE gerade eine Passkey-Anmeldung auf dem Gerät gestartet haben, das den QR anzeigt. Hat jemand anderes den QR erzeugt – ein Fremder, ein „Helpdesk"-Mitarbeiter, ein Tech-Support-Anruf – dann meldet das Scannen mit Ihrem Telefon diese Person in Ihr Konto an, nicht Sie. Das offene Protokoll (FIDO CTAP 2.2 Hybrid) ist solide; die Bedrohung ist Social Engineering rund um die Frage, wer zuerst auf „Mit Passkey anmelden" gedrückt hat.

Passkey-QR prüfen → Alle Standards →

So funktioniert geräteübergreifende Passkey-Anmeldung

Ein Passkey ist eine Anmeldedaten – ein öffentlich/privates Schlüsselpaar – das an eines Ihrer Geräte gebunden ist. Wenn Sie einen Passkey für example.com auf Ihrem Telefon registriert haben, kann nur Ihr Telefon die Anmelde-Challenge für example.com signieren.

Das funktioniert gut, wenn Sie sich AUF Ihrem Telefon anmelden. Was passiert aber, wenn Sie sich auf einem Laptop anmelden, der keinen Passkey für diese Seite hat? Sie können:

  1. Passwort eingeben – widerspricht dem ganzen Sinn von Passkeys.
  2. Einen neuen Passkey auf dem Laptop anlegen – in Ordnung, aber nur wenn Sie diesem Laptop langfristig vertrauen.
  3. Den Passkey des Telefons über Cross-Device-Transport nutzen – der Laptop zeigt einen QR, Ihr Telefon scannt ihn, das Telefon signiert die Challenge, der Browser des Laptops empfängt das Ergebnis, und Sie sind angemeldet.

Option 3 ist das, was FIDO CTAP 2.2 „Hybrid" definiert. Der QR ist der Bootstrap – er enthält genug Informationen, damit Ihr Telefon den Laptop über Bluetooth Low Energy findet, einen einmaligen sicheren Tunnel aufbaut und die WebAuthn-Überprüfung vermittelt.

Was steckt im QR

Der URI sieht so aus:

FIDO:/0123456789012345678901234567890123456789...

Die Dezimalziffern sind eine Base10-Kodierung einer CBOR-Map. Nach Base10-Dekodierung und CBOR-Parsing hat die Map ganzzahlige Schlüssel:

Schlüssel 0, Peer-Public-Key

Unkomprimierte X9.62-Public-Key-Bytes (33 Bytes für P-256). Das Telefon nutzt diesen, um den verschlüsselten Tunnel aufzubauen.

Schlüssel 1, QR-Geheimnis / Tunnel-Nonce

10 Bytes Zufallsdaten. Identifiziert diesen spezifischen QR; die BLE-Ankündigung sendet einen Hash davon, damit das Telefon den richtigen Laptop findet.

Schlüssel 2, Operationshinweis

0 = make-credential (neuen Passkey registrieren), 1 = get-assertion (Anmelden), 2 = discoverable-credential.

Schlüssel 3, Tunnel-Server-Domain

Der HTTPS-Host, der den Tunnel zwischen den beiden Geräten vermittelt, wenn direktes BLE nicht erreichbar ist (z. B. über NAT). Üblicherweise ein vom Anbieter betriebener Server wie cable.ua5v.com (Google) oder cable.auth.com (Apple/MS).

Schlüssel 4, Zeitstempel

Sekunden seit Epoch, als der QR erzeugt wurde. Dient dem Schutz vor Replay-Angriffen – das Telefon verweigert einen QR, der älter als wenige Minuten ist.

Schlüssel 5, State-Assisted-Flag

Boolean. Gibt an, ob der Laptop möchte, dass das Telefon an passivem State-Keeping teilnimmt (hauptsächlich relevant für Credential-Enumeration-Abläufe).

Das Bedrohungsmodell: Wer hat zuerst „Mit Passkey anmelden" gedrückt?

Das Protokoll ist kryptografisch solide. Die Bluetooth-Näherungsprüfung ist real und begrenzt den Angriff auf jemanden, der sich physisch in Ihrer Nähe befindet. Wie läuft es trotzdem schief?

Durch Social Engineering beim Initiieren. Der Angreifer startet eine Passkey-Anmeldung für IHR Konto auf SEINEM Laptop. Sein Laptop zeigt einen FIDO-QR. Irgendwie bringt er diesen QR vor Ihre Augen:

Wenn Sie scannen, leitet Ihr Telefon Ihre Passkey-Signatur an den Browser des Laptops des Angreifers weiter. Die Website, für die Sie einen Passkey besitzen, glaubt, dass Sie sich angemeldet haben. Der Angreifer ist jetzt in Ihrem Konto eingeloggt.

Die Näheprüfung hilft nicht – der Angreifer ist physisch anwesend. Der QR-Inhalt hilft nicht – er ist kryptografisch gültig. Das Anmeldeziel hilft nicht – es ist die korrekte Website, für die Sie einen Passkey haben. Das Einzige, was hilft, ist die Situation zu erkennen: Sie sollten niemals einen FIDO-QR scannen, den Sie nicht selbst durch Klicken auf „Anmelden“ auf Ihrem eigenen Gerät erzeugt haben.

Was unser Scanner anzeigt

Wenn Sie einen FIDO-QR in unseren Scanner laden, zeigt das Ergebnis:

Die Bedrohungsklasse ist stets suspicious, nicht weil das Protokoll fehlerhaft ist, sondern weil die Sicherheitsbeurteilung kontextabhängig ist und der Scanner nicht wissen kann, wer „Anmelden“ gedrückt hat. Der Befund des Scanners erklärt genau das: „Das Scannen schließt eine Anmeldung ab, die JEMAND ANDERES AUF EINEM ANDEREN GERÄT GESTARTET HAT. Wenn Sie selbst gerade keine Anmeldung initiiert haben, ablehnen.“

Wann es sicher ist (und wann nicht)

Sicher: Sie haben sich an Ihren Laptop gesetzt, Ihre Bank- oder E-Mail-Website geöffnet, auf „With Passkey anmelden“ geklickt, und Ihr Laptop hat den QR angezeigt. Sie nehmen Ihr Telefon, scannen den QR und bestätigen die Näheabfrage. Fertig.

Nicht sicher: jemand anderes als Sie hat die Anmeldung initiiert. Dazu gehören Personen am Telefon, Personen in einem Remote-Support-Gespräch, jemand, der Ihnen einen QR per E-Mail geschickt hat, jemand, der Ihnen einen „QR zur Identitätsverifizierung“ gezeigt hat, sowie jeder QR an einem Ort, der nicht Ihr eigenes, gerade angezeigtes Gerät ist.

Wenn Sie nicht sicher sind, ob ein QR von einer Anmeldung stammt, die SIE gestartet haben, brechen Sie die Anmeldung auf dem ursprünglichen Gerät ab (Browser-Tab schließen) und starten Sie auf dem gewünschten Gerät neu. Echte FIDO-QRs sind nur ~10 Minuten gültig – ein Neustart löscht jede laufende Sitzung und macht den Angriff unmöglich.

Verwandte Themen

Einen FIDO-QR untersuchen

Bild ablegen oder den FIDO:-URI einfügen. Das Ergebnis zeigt Operation, Tunnel-Server, Zeitstempel und eine eindeutige Warnung, den Scan abzulehnen, falls Sie die Anmeldung nicht selbst gestartet haben.

Scanner öffnen →