Passkey – Passwortlose Authentifizierung

Viele Webanwendungen verwenden noch immer Passwörter zur Anmeldung. Dieses Verfahren hat jedoch mehrere bekannte Schwächen:

  • Benutzer wählen häufig schwache Passwörter
  • Passwörter werden auf mehreren Webseiten wiederverwendet
  • Passwörter können durch Phishing gestohlen werden
  • Datenbanklecks führen dazu, dass Passwort-Hashes veröffentlicht werden

Aus diesen Gründen werden zunehmend Passkeys als passwortlose Authentifizierungsverfahren eingesetzt. Sie basieren auf den Standards WebAuthn und FIDO2.

Grundprinzip

Ein Passkey verwendet Public-Key-Kryptografie.

Dabei existieren zwei Schlüssel:

  1. Private Key
    bleibt auf dem Gerät des Benutzers
  2. Public Key
    wird beim Dienst gespeichert

Der private Schlüssel verlässt das Gerät nicht.

Registrierung eines Passkeys

Bei der Registrierung passiert vereinfacht Folgendes:

  1. Der Server fordert den Browser zur Erstellung eines Passkeys auf.
  2. Das Gerät erzeugt ein Schlüsselpaar.
  3. Der Public Key wird an den Server übertragen.
  4. Der Private Key bleibt im sicheren Speicher des Geräts (z. B. Secure Enclave oder TPM="Trusted Platform Module").

Der Server speichert nur den öffentlichen Schlüssel.

Anmeldung mit einem Passkey

Beim Login wird kein Passwort übertragen.

Der Ablauf ist stattdessen Challenge-Response-Prinzip:

  1. Der Client (z.B. Browser) fordert die Anmeldung mittels Passkey an.
  2. Der Server sendet eine Challenge (zufällige Daten).
  3. Das Gerät signiert diese Challenge mit dem Private Key.
  4. Der Server prüft die Signatur mit dem Public Key.
  5. Ist die Signatur korrekt, wird der Benutzer angemeldet.

Im Detail bedeutet das:

  1. Login-Anfrage
    Der Benutzer klickt z. B. auf „Mit Passkey anmelden“. Damit sendet der Browser eine Authentifizierungsanfrage an den Server.

  2. Challenge vom Server
    Der Server erzeugt eine zufällige Challenge (Nonce = number used once) und sendet sie an den Client.
    Eigenschaften der Challenge:
    • zufällig
    • nur einmal gültig
    • zeitlich begrenzt
    Damit wird verhindert, dass eine alte Antwort wiederverwendet werden kann (Replay-Angriff).

  3. Signatur durch den Client
    Der Client übergibt die Challenge an den Authenticator (z. B. Smartphone, TPM, Security-Chip). Der Authenticator:
    • besitzt als einziger den Private Key
    • signiert die Challenge
    Signatur = Sign(Challenge, PrivateKey)
    Der Private Key verlässt das Gerät nicht.

  4. Antwort an den Server
    Der Client sendet zurück:
    • die signierte Challenge
    • Informationen über den verwendeten Schlüssel
  5. Überprüfung durch den Server
    Der Server besitzt den Public Key, der bei der Registrierung gespeichert wurde.
    Er prüft:
    Verify(Signatur, Challenge, PublicKey)
    Ist die Signatur korrekt: → Authentifizierung erfolgreich

Vorteile von Passkeys

  • kein Passwort notwendig
  • resistent gegen Phishing
  • kein Passwort-Leak möglich
  • Anmeldung häufig mit Biometrie oder Geräte-PIN

Einordnung in Webarchitekturen

In modernen Webanwendungen wird die Authentifizierung häufig durch einen separaten Authentifizierungs-Service bereitgestellt.

Der Passkey-Login ist dabei nur ein weiteres Verfahren neben z. B.:

  • Passwort + Hash
  • Zwei-Faktor-Authentifizierung
  • OAuth-Login

Ein Authentifizierungs-Microservice kann mehrere dieser Verfahren gleichzeitig unterstützen.

Last modified: Tuesday, 10 March 2026, 11:58 AM