Hard lockout-after-N 이 가장 단순한 방어. threat model 이 더 정교함 보장할 때 알 가치 있는 세 기법 더.
1. Exponential backoff — 늦추기, lockout 아님
"5번 strike, 아웃" 대신 각 successive 실패가 더 많은 시간 비용. 사용자는 거의 못 알아채고; 공격자는 벽에 부딪혀.
2. Jitter — timing side channel 격퇴
0.5초 constant-time 지연 (Track 5) 이 *응답 시간* 으로 정보 누출 방지. 랜덤 jitter (예: 정확히 0.5s 대신 0.4–0.6s) 추가가 timing 의 통계적 공격 더 흐려.
3. Honeypot 엔드포인트 — 정찰 발견
/wp-admin 이나 /.env 같은 가짜 엔드포인트 추가 — 항상 404 반환하지만 "scanner detected" 이벤트 로그하고 (선택) source IP blacklist.
하지 말 것
- 다른 에러 반환 X "PIN 틀림" 과 "사용자 없음" — user enumeration 누출. 항상 같은 응답.
- Username 만 lockout X 다중 사용자 시스템에서 — 공격자가 한 사용자한테 틀린 PIN spam 해서 DOS. Per-IP lockout 이 정답.
- Attempt counter 공개 X ("3 시도 남음") — 공격자한테 공짜 정보. "Invalid PIN" 만 보여.