피드로 돌아가기
Learnings about authentication and authorization.
Dev.toDev.to
Security

Stateless JWT와 BCrypt 도입을 통한 인증 아키텍처 고도화

Learnings about authentication and authorization.

Miguel Novelo2026년 6월 9일5intermediate

Context

단일 호스트 기반의 Session 관리와 단순 MD5 Hashing 방식의 보안 취약성 노출. 수평 확장 시 세션 불일치 문제와 데이터베이스 기반의 토큰 검증으로 인한 Request당 DB I/O 병목 현상 발생.

Technical Solution

  • BCrypt 도입을 통한 Cost Factor 설정 및 Random Salt 적용으로 Rainbow Table 공격 방어
  • Pepper Secret 추가 적용을 통한 DB 유출 시의 2차 해시 보호 계층 구축
  • JWT 기반의 Stateless 인증 구조 설계로 서비스 간 공유 가능한 서명된 페이로드 활용
  • Access Token(단기)과 Refresh Token(장기)의 이원화 설계를 통한 Blast Radius 최소화
  • HttpOnly 및 SameSite 설정 Cookie 활용으로 Local Storage 기반 XSS 및 CSRF 공격 차단
  • DB 조회 기반의 인증 방식을 서명 검증 방식으로 전환하여 인증 지연 시간 제거

- 비밀번호 저장 시 단순 Hash가 아닌 BCrypt 등 가변 Cost Factor 지원 알고리즘 사용 여부 검토 - API 인증 시 DB 의존성을 제거하기 위해 JWT의 Stateless 특성 활용 및 토큰 유효기간 분리 설계 - 토큰 저장소 선정 시 XSS 방지를 위해 Local Storage 대신 보안 설정이 적용된 Cookie 사용 권장 - 보안 관련 기능 구현 시 자체 개발보다 검증된 표준 라이브러리 및 State-of-the-art 솔루션 우선 채택

원문 읽기