F6 — TOTP + verificação de telefone (2FA opcional para o usuário) #63

Open
opened 2026-07-27 13:24:33 -03:00 by navigator · 1 comment
Owner

2FA opcional, controlado pelo usuário.

  • TOTP (RFC 6238) — app autenticador; recomendado; opcional
  • Telefone/SMS OTP como 2FA alternativo (não recomendado; ver F5)
  • Ordem: e-mail (obrigatório) -> SMS (opt-in) -> TOTP (opt-in)
  • Códigos de recuperação; endpoints EN (/me/2fa/totp, /me/2fa/sms)
2FA opcional, controlado pelo usuário. - [ ] **TOTP** (RFC 6238) — app autenticador; recomendado; opcional - [ ] Telefone/SMS OTP como 2FA alternativo (não recomendado; ver F5) - [ ] Ordem: e-mail (obrigatório) -> SMS (opt-in) -> TOTP (opt-in) - [ ] Códigos de recuperação; endpoints EN (`/me/2fa/totp`, `/me/2fa/sms`)
Author
Owner

F6.1 (enrollment) entregue (imagem 0.73.0-totp, commit ffafa1e): TOTP RFC6238 hand-rolled (HOTP RFC4226+HMAC-SHA1, compativel Google Authenticator), TESTADO contra vetores oficiais; /me/2fa/totp (status/setup/enable/disable), 8 recovery codes, base32 proprio. UI aba 2FA (TOTP recomendado + telefone). Verificado: rotas 401, schema OK, cripto OK.

PENDENTE F6.2: forcar 2FA no LOGIN (challenge de segundo fator no fluxo dsoc-auth) + consumo de recovery code + encriptar totp_secret em repouso.

F6.1 (enrollment) entregue (imagem 0.73.0-totp, commit ffafa1e): TOTP RFC6238 hand-rolled (HOTP RFC4226+HMAC-SHA1, compativel Google Authenticator), TESTADO contra vetores oficiais; /me/2fa/totp (status/setup/enable/disable), 8 recovery codes, base32 proprio. UI aba 2FA (TOTP recomendado + telefone). Verificado: rotas 401, schema OK, cripto OK. PENDENTE F6.2: forcar 2FA no LOGIN (challenge de segundo fator no fluxo dsoc-auth) + consumo de recovery code + encriptar totp_secret em repouso.
Sign in to join this conversation.
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
brasil/democracia-social#63
No description provided.