본문 바로가기
개발자 면접 질문

IT 면접 질문 – JWT(JSON Web Token)과 보안

by 개발자 굳덜이 2025. 2. 10.
반응형

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(요청 제한)과 보안”에 대해 다룰 예정이에요!

면접에서 실력 발휘할 수 있도록 함께 준비해봐요. 😊

 

반응형

댓글