Lösungsvorschlag: Passkey
Completion requirements
Das Projekt findet sich hier auf Github: https://github.com/ateachment/SimpleAuthService/tree/master
Registrierung des Passkey

Windows Hello bestätigt als Authenticator die Registrierung eines Passkeys für die WebAuthn-Authentifizierung
Passkey-Registrierung (WebAuthn-Ablauf)
- Benutzer startet Registrierung
Der Benutzer klickt in der Webanwendung auf „Passkey registrieren“. - Server erzeugt eine Challenge
Der Server erstellt eine zufällige Challenge und sendet die Registrierungsoptionen an den Browser. - Browser ruft den Authenticator auf
Der Browser startet über die WebAuthn-API den lokalen Authenticator, z. B. Windows Hello. - Benutzer bestätigt seine Identität
Der Authenticator prüft die Benutzeridentität, z. B. mit- PIN
- Fingerabdruck
- Gesichtserkennung
- Passkey wird erstellt Der Authenticator erzeugt ein Schlüsselpaar:
- Private Key bleibt sicher auf dem Gerät.
- Public Key wird an die Webanwendung übermittelt.
- Server speichert den Public Key
Der Server speichert:- Credential ID
- Public Key
- Signaturzähler (signCount)
Damit ist der Passkey für zukünftige Logins registriert.
Datenbank-Schema
Das Datenbank-Schema muss um eine weitere Tabelle erweitert bzw. eine 1:n-Relation erweitert werden, weil ein Benutzer für jedes Gerät einen Passkey erstellen muss, um sich damit an einer Webseite anmelden zu können:
-- Passkey Authentication - more than one passkey per user for different devices needed. CREATE TABLE tblpasskey ( credentialID VARBINARY(255) NOT NULL, -- short binary identifier for the passkey credential, unique for each passkey userID INT NOT NULL, publicKey BLOB NOT NULL, -- larger binary data structure (COSE key) signCount INT DEFAULT 0, -- to prevent replay attacks by tracking the number of times a passkey has been used created DATETIME DEFAULT current_timestamp(), PRIMARY KEY (credentialID) );
(Der COSE Key ist der öffentliche Schlüssel eines Passkeys in einem standardisierten Binärformat, das von WebAuthn verwendet wird.)
Anmeldung mit Passkey

Anmeldung mit Passkey (Windows Hello als Authenticator)
Passkey-Login (WebAuthn-Authentifizierung)
- Benutzer startet Anmeldung
Der Benutzer klickt auf „Login mit Passkey“ auf der Webseite. - Server erzeugt eine Challenge
Der Server erstellt eine zufällige Challenge und sendet sie zusammen mit den Login-Optionen an den Browser. - Browser ruft den Authenticator auf
Der Browser startet über die WebAuthn-API den Authenticator, z. B.- Windows Hello
- Smartphone-Passkey
- Sicherheitsschlüssel (FIDO2)
- Benutzer bestätigt seine Identität
Der Authenticator fordert eine lokale Authentifizierung, z. B.:- PIN
- Fingerabdruck
- Gesichtserkennung
- Challenge wird signiert
Der Authenticator:- verwendet den gespeicherten privaten Schlüssel
- signiert die Challenge des Servers
- Gesichtserkennung
- Browser sendet Antwort an den Server
Der Browser übermittelt an den Server:- Credential ID
- Signatur
- Authenticator-Daten
- signCount
- Server prüft die Signatur
Der Server verwendet den gespeicherten Public Key, um zu prüfen:- ob die Signatur gültig ist,
- ob die Challenge korrekt ist,
- ob der Signaturzähler plausibel ist.
- Login erfolgreich
Ist die Prüfung erfolgreich, wird der Benutzer angemeldet.
Last modified: Friday, 13 March 2026, 7:43 PM