피드로 돌아가기
GeekNewsSecurity
원문 읽기
JWT 사용을 중단하라
Browser Session 인증 시 JWT 대신 Cookie Session 도입을 통한 보안성 및 제어력 강화
AI 요약
Context
브라우저 기반 사용자 세션 유지에 JWT를 사용하는 아키텍처의 보안 허점과 설계 부적합성 분석. Stateless 인증을 지향하나 실제로는 토큰 무효화(Revocation)를 위해 상태 저장소가 필요한 모순적 구조가 병목 지점으로 작용.
Technical Solution
- Session-based Authentication으로 전환하여 서버 측 상태 제어를 통한 즉각적인 세션 무효화 구현
- JWT의 복잡한 서명 및 암호화 라이브러리 의존성을 제거하여 공격 표면(Attack Surface) 최소화
- LocalStorage/SessionStorage 저장 방식에서 Secure Cookie 기반 저장 방식으로 변경하여 XSS 공격 방어
- 짧은 수명의 서명 토큰이 필수적인 특수 목적의 경우, 보안 설계가 강화된 PASETO 표준 채택
- Single Sign On(SSO)과 같이 서비스 간 인증 전송이 필요한 경우에만 제한적으로 JWT 사용
실천 포인트
1. 브라우저 세션 유지 용도라면 JWT 대신 표준 Cookie Session 도입 검토
2. 토큰 저장소 선정 시 LocalStorage를 배제하고 HttpOnly, Secure 옵션의 Cookie 사용
3. 즉각적인 로그아웃이나 권한 변경 반영이 필요한지 확인하여 상태 저장소 필요성 판단
4. 서비스 간 통신(M2M)이 아닌 단순 사용자 인증에 JWT를 남용하고 있지 않은지 점검
5. 최신 보안 요구사항 충족을 위해 JWT 대안으로 PASETO 라이브러리 검토