본문으로 건너뛰기
Previous
Next
JWT 뜻과 의미 | 기술 용어 사전 | pkglog
보안

JWT

다른 이름: JSON Web Token

정의

JSON Web Token. Header(알고리즘), Payload(데이터), Signature(서명) 3부분 구조. Base64 인코딩. 서버 세션 불필요(Stateless), 서명으로 위변조 검증. Access Token(짧은 만료), Refresh Token(긴 만료) 조합. REST API 인증 표준

상세 설명

📋 기술 스펙

  • 구조: Header.Payload.Signature (점으로 구분)
  • Header: {"alg": "HS256", "typ": "JWT"}
  • Payload: {"sub": "user123", "exp": 1735689600}
  • Signature: HMAC-SHA256(base64(header).base64(payload), secret)
  • 알고리즘: HS256 (대칭키), RS256 (비대칭키 RSA)
  • Claims: iss (발행자), sub (주체), exp (만료), iat (발행 시간)
  • Access Token: 15분~1시간 만료
  • Refresh Token: 1주~1달 만료, Access Token 재발급

💡 실무 활용

  • REST API 인증: Authorization: Bearer <token>
  • SPA: LocalStorage에 저장 (XSS 취약)
  • MSA: 서비스 간 인증 전파
  • OAuth: Google, Facebook 로그인 토큰

장점

  • Stateless: 서버 세션 불필요, 확장 용이
  • 자가 포함: Payload에 사용자 정보 포함
  • 크로스 도메인: CORS 문제 없음
  • 모바일 친화: 쿠키 없이 사용 가능

⚠️ 단점 및 제약

  • 토큰 탈취: XSS, 중간자 공격 위험
  • 만료 전 무효화 불가: 블랙리스트 필요
  • 크기 큼: 쿠키(4KB) 초과 시 헤더 부담
  • Secret 노출: 서명 키 유출 시 전체 무효화

🔧 호환성

모든 HTTP 클라이언트. Node.js, Python, Java 라이브러리

📚 표준 정보

표준화 기구: IETF RFC 7519

출시 연도: 2015년