보안 · 중급
Access Token과 Refresh Token을 분리하여 사용하는 것이 일반적인데, 이와 같이 토큰을 분리하는 주된 이유와 각각의 보안적 이점을 설명해 주세요.
힌트 · Access Token의 짧은 만료 주기로 탈취 위험을 줄이고, Refresh Token으로 사용자 재인증 없이 Access Token을 갱신하여 사용성을 유지합니다.
Access TokenRefresh Token유효 기간탈취보안 강화
모범답안
Access Token과 Refresh Token을 분리하는 주된 이유는 보안성과 사용자 경험을 동시에 잡기 위해서입니다.
Access Token은 짧은 유효 기간을 갖도록 설계하여, 혹시라도 탈취당하더라도 피해를 최소화합니다. 짧은 시간 안에 만료되므로 공격자가 악용할 수 있는 시간이 제한적입니다.
Refresh Token은 Access Token을 갱신하는 데 사용되며, 비교적 긴 유효 기간을 가집니다. Access Token이 만료되면 Refresh Token을 사용하여 사용자 인증 없이 새로운 Access Token을 발급받을 수 있어 사용자 경험을 해치지 않으면서 보안을 강화할 수 있습니다. Refresh Token 자체는 Access Token 갱신에만 사용되므로, 탈취 시 영향 범위를 제한할 수 있습니다.
읽었다면, 이제 직접 답해볼 차례예요
패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.
함께 보는 인증 / 인가 (JWT · OAuth) 면접 질문
- JWT(JSON Web Token)는 무엇이며, 토큰 기반 인증 시스템에서 어떤 장점을 제공하나요?
- OAuth 2.0의 'Authorization Code Grant'와 'Client Credentials Grant'는 각각 어떤 상황에 적합하며, 두 Grant Type의 주요 차이점은 무엇인가요?
- JWT(JSON Web Token)의 구조(Header, Payload, Signature)에서 Signature 부분의 역할은 무엇이며, Signature를 통해 JWT의 어떤 보안 속성을 보장할 수 있는지 설명해 주세요.
- OpenID Connect(OIDC)는 OAuth 2.0 위에 구축된 프로토콜입니다. OAuth 2.0과 OIDC의 관계를 설명하고, OIDC가 OAuth 2.0에 추가적으로 제공하는 핵심 기능은 무엇인가요?
- JWT 기반 인증 시스템에서 Access Token이 만료되었을 때, 클라이언트와 서버는 각각 어떻게 처리해야 하는지 구체적인 시나리오를 들어 설명해 주세요.
- OAuth 2.0에서 PKCE(Proof Key for Code Exchange) 확장이 도입된 배경과 이 확장 기능이 Public Client(예: 모바일 앱, SPA) 환경에서 어떤 보안 문제를 해결하는지 설명해 주세요.