23 lines
1.1 KiB
Markdown
23 lines
1.1 KiB
Markdown
# ADR-0005 — Throttle du PIN separe des compteurs de connexion (RG-T22)
|
|
|
|
- Statut : Accepte
|
|
- Date : 2026-06-15
|
|
|
|
## Contexte
|
|
Le PIN d'action sensible (ADR-0004) est court (4 chiffres) : il faut limiter le
|
|
brute-force. Question : reutiliser les compteurs de login (`user.lockout_until` /
|
|
`login_throttle`) ou un compteur dedie ? Et sur quelle dimension compter ?
|
|
|
|
## Decision
|
|
Table **`pin_throttle`** dediee, **separee** des compteurs de connexion. La dimension
|
|
est l'**utilisateur agissant** (la session authentifiee qui soumet le PIN), pas l'email
|
|
cible (contournable par rotation) ni l'IP (collateral sur poste partage). Backoff
|
|
degressif, bornes propres plus permissives que le login. Verrou evalue AVANT la
|
|
verification ; sous verrou actif, pas de nouvelle ligne `pin.failed` (anti-amplification).
|
|
|
|
## Consequences
|
|
- (+) Spammer le PIN d'une victime ne verrouille pas sa CONNEXION (pas d'escalade DoS
|
|
sur une surface plus sensible).
|
|
- (+) Detection : un pic de `pin.failed` reste alertable.
|
|
- (-) Un compteur de plus a purger (cron, comme `login_throttle`).
|
|
- Brique : `App\Auth\PinThrottle`. Regle : RG-T22. Cf. ADR-0004.
|