Security — Signing in (2)
• Password storage: Accounts that set a password — sign-up no longer creates one, but earlier accounts and anyone who adds one still have it — are stored with PBKDF2 using HMAC-SHA256, 100,000 iterations, a unique random salt per user, and a 32-byte derived key. Passwords are never stored or logged in a recoverable form.
• Two-factor authentication: Time-based one-time codes (TOTP, RFC 6238) from any authenticator app, plus single-use recovery codes that are themselves stored hashed.
• Single sign-on: Google and Microsoft. Only addresses the provider has verified are accepted, so an unverified email cannot open an account.
• SSO account linking: A signed-in provider account links on the provider's own immutable subject identifier, never on the email address — so a reassigned or spoofed address cannot inherit an existing RowFold account.