JWT 토큰 분석의 첫 단계
JWT(JSON Web Token)는 현대 웹 인증의 표준 중 하나. 토큰을 받았는데 내용이 알 수 없는 글자라면 Base64 디코딩이 필요. 한 번 분석 흐름을 잡아 두면 디버깅이 부드럽다.
JWT 구조
마침표(.)로 세 부분 구분:
- 헤더 (Header)
- 페이로드 (Payload)
- 시그니처 (Signature)
각 부분이 Base64URL로 인코딩.
STEP 1: 토큰 분리
전체 JWT를 마침표 기준으로 세 조각 분리. xxxx.yyyy.zzzz 형태.
STEP 2: 헤더 디코딩
첫 조각(xxxx)을 Base64 디코딩. 결과는 JSON 형태. 알고리즘(alg)·토큰 타입(typ) 확인. Base64 인코더로 디코딩 즉시.
STEP 3: 페이로드 디코딩
두 번째 조각(yyyy)을 Base64 디코딩. 사용자 정보·만료 시간·권한 등이 JSON 형태로.
STEP 4: 만료 시간 확인
페이로드의 exp 값은 Unix 타임스탬프. 별도 도구로 사람이 읽는 시간으로 변환.
STEP 5: 시그니처 검증
세 번째 조각(zzzz)은 헤더+페이로드의 서명. 디코딩으로는 의미 파악 불가. 별도 검증 로직 필요.
JWT 분석 자주 쓰는 자리
- 로그인 디버깅
- API 인증 오류
- 토큰 만료 확인
- 권한 정보 점검
베이스64 변환기를 JWT 분석 자리에 두면 디버깅이 빠르다.
주의 사항
- JWT는 Base64 디코딩만으로 누구나 내용 확인 가능
- 민감 정보를 페이로드에 담지 않기
- 시그니처 검증 없이 페이로드 신뢰 금지
마무리
JWT 분석은 Base64 디코딩이 첫 단계. 도구 한 번이면 토큰 내용이 한눈에.