IT 면접에서 JWT(JSON Web Token) 은 인증과 보안의 핵심 개념으로 자주 출제되는 주제예요.
오늘은 JWT의 개념과 구조, 그리고 보안 고려 사항에 대해 정리해볼게요.
1. JWT(JSON Web Token)란?
JWT는 클라이언트와 서버 간 안전한 정보 교환을 위한 JSON 기반의 토큰이에요.
주로 인증(Authentication) 및 권한 부여(Authorization) 에 활용되며,
자체적으로 디지털 서명이 포함되어 있어 데이터의 무결성을 보장해요.
2. JWT의 구조
JWT는 헤더(Header), 페이로드(Payload), 서명(Signature) 총 세 부분으로 구성돼요.
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9
.
eyJ1c2VyX2lkIjoxMjMsInJvbGUiOiJBRE1JTiJ9
.
hJ3xl3jJjfevNxG0fWqL1m3B9XY8Mzo9F2_lcTzzRfY
🔹 1) Header (헤더)
• 토큰의 타입(JWT)과 서명에 사용된 알고리즘(예: HS256)을 포함해요.
🔹 2) Payload (페이로드)
• 사용자 정보(user_id, role 등) 및 기타 추가 데이터가 담겨 있어요.
• 단, 암호화되지 않고 인코딩된 형태라서 중요한 정보는 포함하면 안 돼요!
🔹 3) Signature (서명)
• 헤더와 페이로드를 합친 후 비밀 키를 사용해 서명한 값이에요.
• 이를 통해 토큰이 변조되지 않았음을 검증할 수 있어요.
3. JWT와 관련된 보안 문제
JWT는 편리한 인증 방식을 제공하지만, 적절히 보호하지 않으면 보안 취약점이 발생할 수 있어요.
🔥 1) 토큰 탈취 (Token Theft)
• JWT가 탈취되면 만료될 때까지 악용될 위험이 커요.
• 따라서 HTTPS를 사용하고, 토큰 만료 시간(exp)을 짧게 설정하는 것이 중요해요.
🔥 2) 서명 알고리즘 변경 공격
• JWT의 alg 값을 “none” 으로 설정하면 서명 검증이 우회될 가능성이 있어요.
• 서버에서 허용할 알고리즘을 미리 지정하고, none 값은 차단해야 해요.
🔥 3) 토큰 크기 문제
• JWT는 보통 클라이언트 측에서 저장되므로 불필요한 정보를 포함하지 않도록 최적화해야 해요.
• 리프레시 토큰(Refresh Token) 을 활용해 접근 토큰(Access Token)의 크기를 줄일 수도 있어요.
4. 면접에서 자주 묻는 질문
면접에서는 JWT의 개념뿐만 아니라, 보안 및 활용 방안까지 깊이 있는 질문이 나올
수 있어요.
✅ JWT란 무엇이며, 어떻게 동작하나요?
✅ JWT와 세션 기반 인증의 차이점은 무엇인가요?
✅ JWT의 보안을 강화하기 위한 방법은 무엇인가요?
✅ JWT를 안전하게 저장하는 방법은 무엇인가요?
✅ JWT의 단점을 보완하기 위한 대안 기술이 있나요?
5. 실전 답변 예시
💡 Q: JWT를 안전하게 저장하는 방법은 무엇인가요?
✅ A:
JWT는 로컬 스토리지(Local Storage), 세션 스토리지(Session Storage), HTTP-Only 쿠키에 저장될 수 있어요.
하지만 로컬 스토리지는 XSS(크로스 사이트 스크립팅) 공격에 취약하므로,
HTTP-Only 쿠키에 저장하는 것이 가장 안전한 방법이에요.
6. 면접 준비 팁
🔥 실전 연습을 통해 면접 대비력을 높이는 것이 중요해요!
✅ JWT를 직접 생성하고 검증하는 코드 작성해보기
✅ JWT와 세션 기반 인증을 비교하며 장단점 분석
✅ JWT 보안 강화 기법 (JWT Rotation, Refresh Token 등) 학습
📌 다음 IT 면접 대비 포스트에서는 “API Rate Limiting(요청 제한)과 보안”에 대해 다룰 예정이에요!
면접에서 실력 발휘할 수 있도록 함께 준비해봐요. 😊
'개발자 면접 질문' 카테고리의 다른 글
IT 면접 필수 질문: 쿠키(Cookie)와 세션(Session)의 차이점 완벽 정리! (0) | 2025.02.12 |
---|---|
IT 면접 질문 – API Rate Limiting(요청 제한)과 보안 (0) | 2025.02.11 |
IT 면접 질문 – OAuth 인증 방식과 보안 (0) | 2025.02.09 |
IT 면접 질문 – RESTful API 설계 원칙 (1) | 2025.02.08 |
IT 면접 질문 – 데드락(Deadlock)과 해결 방법 (0) | 2025.02.07 |
댓글