T도구모음

JWT 디코더

JWT(JSON Web Token)을 붙여넣으면 Header와 Payload 데이터를 디코딩하여 보여줍니다.

JWT 디코더 -- RFC 7519 기반 토큰 분석 도구

JWT(JSON Web Token)는 RFC 7519에 정의된 개방형 표준으로, 당사자 간 정보를 JSON 객체로 안전하게 전달하기 위한 컴팩트하고 자기완결적(self-contained)인 방식입니다. 이 디코더는 JWT 문자열을 입력하면 Header, Payload, Signature 세 부분을 즉시 파싱하여 사람이 읽을 수 있는 형태로 표시하며, 만료 시간(exp), 발급 시간(iat) 등 타임스탬프 클레임을 한국어 날짜로 자동 변환합니다.

JWT의 3단 구조: Header.Payload.Signature

JWT는 점(.)으로 구분된 세 개의 Base64URL 인코딩 문자열로 구성됩니다.

구성요소내용예시 필드
Header토큰 타입과 서명 알고리즘{"alg":"HS256","typ":"JWT"}
Payload클레임(Claims) -- 사용자 정보와 메타데이터iss, sub, exp, iat, roles
SignatureHeader+Payload를 비밀 키로 서명한 값HMAC-SHA256 또는 RSA-SHA256 해시

서명 알고리즘: HS256 vs. RS256

HS256(HMAC-SHA256)은 대칭 키 알고리즘으로, 서버와 클라이언트가 동일한 비밀 키(Secret)를 공유합니다. 구현이 간단하지만 키 배포가 어렵습니다.RS256(RSA-SHA256)은 비대칭 키 알고리즘으로, 개인 키로 서명하고 공개 키로 검증합니다. 마이크로서비스 아키텍처에서 공개 키만 배포하면 되므로 키 관리가 유리하며, JWKS(JSON Web Key Set) 엔드포인트를 통해 자동 키 로테이션이 가능합니다.

보안 경고: JWT 사용 시 반드시 지켜야 할 사항

  • Signature 검증 필수: 서버 측에서 반드시 비밀 키(또는 공개 키)로 서명을 검증해야 합니다. 검증 없이 Payload를 신뢰하면 토큰 위변조 공격에 노출됩니다.
  • 민감 정보 제외: Payload는 Base64URL 인코딩일 뿐 암호화가 아닙니다. 비밀번호, 신용카드 번호 등 민감 정보를 포함하지 마세요.
  • XSS 방어: localStorage에 토큰을 저장하면 XSS 공격으로 탈취될 수 있습니다. HttpOnly 쿠키 또는 메모리 저장을 권장합니다.
  • CSRF 방어: 쿠키 기반 전송 시 SameSite 속성과 CSRF 토큰을 함께 사용하세요.
  • 짧은 만료 시간: Access Token은 15~30분 이내로 설정하고, Refresh Token으로 재발급 받는 패턴을 사용하세요.

실전 디버깅 시나리오

  • API 요청이 401 Unauthorized를 반환할 때 -- exp 클레임으로 만료 여부 확인
  • 권한 오류(403 Forbidden) 발생 시 -- Payload의 roles/permissions 클레임 점검
  • SSO(Single Sign-On) 연동 시 -- iss(발급자)와 aud(대상) 클레임 검증
  • OAuth 2.0 Access Token 분석 -- scope 클레임으로 허용된 API 범위 확인

관련 도구

SSH 인증이 필요하면 SSH 키 생성기를, 파일 권한 설정은 chmod 계산기를, API 스케줄링은 Cron 표현식 생성기를 활용하세요.

참고 자료

  • IETF RFC 7519 -- JSON Web Token (JWT)
  • IETF RFC 7515 -- JSON Web Signature (JWS)
  • OWASP -- JSON Web Token Cheat Sheet
  • jwt.io -- JWT 디버거 및 라이브러리 목록

자주 묻는 질문

관련 도구