SD-13

🔐 비밀번호 관리 (설계)

설계단계 보안설계 · 보안기능

위험도: 상
💡 쉽게 말하면
비밀번호를 평문이나 약한 해시로 저장하면, 금고 비밀번호를 포스트잇에 그대로 적어두는 것과 같습니다. 솔트를 더한 적응형 해시(bcrypt/Argon2)로 저장해 유출돼도 원문을 알 수 없게 설계해야 합니다.

🎯 직접 해보기 — 공격을 실행해 보세요

아래에서 시스템 상태를 취약 또는 안전(조치 적용)으로 바꾼 뒤 공격 실행을 눌러, 같은 공격이 어떻게 다르게 끝나는지 직접 확인하세요.

현재: 취약한 설정 — 공격이 통할까요?
# DB가 유출된 뒤 저장된 비밀번호를 복원하려 한다 # [공격 실행] 버튼을 누르면 시작합니다.

📋 설정 비교 (왜 막혔나?)

✗ 취약한 설정
# 설계 결정 비밀번호 평문/단순 해시 저장 복잡도·재설정 검증 없음 → 유출 시 즉시 탈취
✓ 안전한 설정
# 설계 결정 솔트+적응형 해시(bcrypt 등) 복잡도·이력·안전한 재설정 → 유출돼도 복원 곤란

🔧 조치 방법

  1. 비밀번호는 솔트를 포함한 적응형 해시(bcrypt/Argon2 등)로 저장하도록 설계합니다.
  2. 복잡도·재사용 제한·만료 정책을 설계합니다.
  3. 재설정은 본인확인·1회성 토큰으로 처리하도록 설계합니다.

✅ 점검 체크리스트

  • 적응형 해시 저장이 설계됨
  • 복잡도/이력 정책이 설계됨
  • 안전한 재설정이 설계됨
점검기준: 개발보안 설계기준 2.3 비밀번호 관리