4 Commits

Author SHA1 Message Date
Daniel Redetzke b54ff1b002 Cap concurrent password checks and count attempts before checking
Every argon2 run takes 64 MiB and nothing limited how many ran at once,
so parallel sign-in attempts could run the server out of memory (8 at
once used about 600 MB). At most two now run at once; at most 16
sign-ins wait for one, more get HTTP 429. 30 parallel sign-ins peaked
at 275 MB.

A sign-in attempt now counts toward the lockout before its password is
checked, so parallel attempts cannot get past it; a right password
takes its own attempt back. IPv6 addresses are locked out by /64.
2026-10-05 00:23:05 +03:00
Daniel Redetzke 0a8dc8f7af Delete stored security keys 2026-10-04 22:35:19 +03:00
Daniel Redetzke 6570611ed8 Passkeys only: drop adding security keys 2026-10-04 22:13:31 +03:00
Daniel Redetzke 1fe9b4e619 Two-step sign-in: authenticator app, security keys and passkeys 2026-10-04 21:55:53 +03:00