웹 보안

JWT

창욱씨 2020. 8. 24. 23:54
반응형

1. JWT란?

  • JSON Web Token의 약자로, 당사자 간 정보를 안전하게 전송하기 위한 개방형 표준(RFC 7519)
  • 주로 인증(Authentication) 에 사용

구조 (Header.Payload.Signature)

파트 역할
Header 토큰 타입, 서명 알고리즘 정보
Payload 실제 데이터(클레임). Base64 인코딩만 되어 있어 민감 정보 포함 금지
Signature 위변조 방지 서명

동작 흐름

로그인 요청 → JWT 발급 → 이후 요청마다 Authorization: Bearer <token> 포함 → 서버 서명 검증

장/단점

  • ✅ Stateless, 확장성, 자체 포함
  • ❌ 탈취 시 만료 전 무효화 불가, Payload 노출 가능, 토큰 크기 큼
  • 💡 Access Token(단기) + Refresh Token(장기) 조합으로 보완

2. JWT vs 다른 인증 방식

주요 인증 방식

방식 특징
세션 + 쿠키 인증 정보를 서버에 저장, 쿠키는 sessionId만 전달
JWT (Bearer Token) 인증 정보를 토큰 자체에 포함, 서버 저장 불필요
API Key 서버 간 통신, 외부 API 연동에 주로 사용
OAuth 2.0 제3자 인증 위임 (카카오/구글 로그인 등)

세션 vs JWT 핵심 차이

세션 JWT
서버 부하 DB 조회 발생 서명 검증만 (DB 조회 없음) ✅
수평 확장 세션 공유 문제 ❌ 어디서든 검증 가능 ✅
강제 로그아웃 즉시 가능 ✅ 만료 전까지 어려움 ❌
CSRF 취약 ❌ 헤더 수동 전송으로 안전 ✅
XSS HttpOnly 쿠키로 방어 ✅ localStorage 저장 시 취약 ❌
반응형

'웹 보안' 카테고리의 다른 글

OAuth  (0) 2020.10.08
WebSocket  (0) 2020.10.07
Https  (0) 2020.06.08
암호화 알고리즘  (0) 2020.06.04
XSS  (0) 2020.04.07