diff --git a/DATENSCHUTZ_UEBERSICHT.md b/DATENSCHUTZ_UEBERSICHT.md index 0d6c3b4..b107ae8 100644 --- a/DATENSCHUTZ_UEBERSICHT.md +++ b/DATENSCHUTZ_UEBERSICHT.md @@ -166,6 +166,16 @@ - `GET /api/auth/passkeys/list` - `POST /api/auth/passkeys/remove` +### Passkey-Recovery (E-Mail-Link): + +- **Ziel**: Wenn der Passkey verloren geht (neues Gerät/Crash), kann ein neuer Passkey **hinzugefügt** werden. +- **Sicherheitsannahme**: Zugriff auf das E-Mail-Postfach gilt als Recovery-Faktor (Account-Übernahme möglich bei kompromittierter Mailbox). +- **Ablauf**: + - Request: `POST /api/auth/passkeys/recovery/request` (sendet Link; keine Account-Enumeration) + - Options: `GET /api/auth/passkeys/recovery/options?token=...` + - Complete: `POST /api/auth/passkeys/recovery/complete` +- **Eigenschaften**: Token ist kurzlebig (TTL), serverseitig nur gehasht gespeichert, one-time-use, rate-limited, audit-logged. + --- ## 🛡️ API-Endpunkte & Zugriffsschutz diff --git a/env.example b/env.example index 5754d62..e10cccd 100644 --- a/env.example +++ b/env.example @@ -66,3 +66,7 @@ WEBAUTHN_RP_ID= WEBAUTHN_RP_NAME=Harheimer TC # Optional: erzwingt User Verification (z.B. biometrisch/PIN am Gerät) WEBAUTHN_REQUIRE_UV=false + +# Passkey-Recovery (E-Mail-Link) +# TTL in Minuten (Standard: 30) +PASSKEY_RECOVERY_TTL_MIN=30 diff --git a/pages/login.vue b/pages/login.vue index f8f0dc0..8594a82 100644 --- a/pages/login.vue +++ b/pages/login.vue @@ -115,13 +115,21 @@ -
+
Passwort vergessen? +
+ + Passkey verloren? Wiederherstellen + +
diff --git a/pages/passkey-wiederherstellen.vue b/pages/passkey-wiederherstellen.vue new file mode 100644 index 0000000..ef3ae09 --- /dev/null +++ b/pages/passkey-wiederherstellen.vue @@ -0,0 +1,190 @@ + + + + diff --git a/pages/registrieren.vue b/pages/registrieren.vue index 6a3bdb3..f5fbaaf 100644 --- a/pages/registrieren.vue +++ b/pages/registrieren.vue @@ -13,8 +13,20 @@
+ +
+
+
Registrierungsmethode
+
Passkey = Anmeldung ohne Passwort (z.B. FaceID/TouchID/Windows Hello)
+
+ +
+