본문 바로가기
C.W.K.
Stream
Lesson 01 of 05 · published

수학 — 4자리 PIN 이 방어 가능한 이유

~15 min · bcrypt, math, pin-length

Level 0Greenhorn
0 XP0/53 lessons0/14 achievements
0/100 XP to next level100 XP to go0% complete

4자리 PIN 은 조합이 1만 개야. 종이 위에선 우습게 뚫려. 실전에선 방어 둘이 겹치면서 솔로 앱한테 가장 값싸게 효과적인 auth 가 돼. 계산은 한 번 해볼 만해.

Brute force 세 모드

모드속도물리치는 법
Offline (hash leak)SHA256: ~10⁹ 추측/초/GPU → 4자리는 microsecondBcrypt cost 12: ~6 추측/초/코어 → 4자리 ~30분
Online, lockout 없음HTTP 요청 속도 — Tailscale 통해 ~100/초 → 4자리 ~2분Rate limit + lockout (이 트랙)
Online, lockout-after-55번 틀리면 blacklist → 얻어걸리려는 공격자한텐 사실상 못 뚫음이게 목표

5자리가 사주는 거

PIN 길이조합UX 비용marginal 보안 이득 (lockout 있을 때)
410,000baseline (빠름)baseline
5100,000+키 한 번online 은 10배. bcrypt cost 12 에선 offline 이득이 미미
61,000,000+키 두 번100배. lockout 이 무너졌을 때만 의미 있음
8100,000,000키 네 번 더. 이쯤 되면 사람들이 헷갈리기 시작이 시점부터 diminishing returns

External links

Exercise

Dev 머신에서 이 명령의 시간을 재봐. python -c "import bcrypt; bcrypt.hashpw(b'1234', bcrypt.gensalt(rounds=12))". 찍힌 시간이 추측 하나당 비용이야. 거기에 1만을 곱하면 hash 가 샜을 때 4자리 PIN 이 offline 으로 깨지는 대략의 시간이 나와. 그 숫자를 보고 네 하드웨어에 cost factor 가 맞는지 정해.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.