인프런 커뮤니티 질문&답변

사유님의 프로필 이미지
사유

작성한 질문수

CS 지식의 정석 | 디자인패턴 네트워크 운영체제 데이터베이스 자료구조

로그인 #4. 토큰기반인증방식(access토큰, refresh토큰) 실습 ★★★

Access Token과 Refresh Token 문제

작성

·

136

·

수정됨

0

예전에 토큰 기반 인증 구현하면서 Access Token과 Refresh Token 문제점에 대해 고민해본 적이 있었습니다.

만약 Refresh Token을 탈취 당한다면 해커가 Access Token을 재발급 받을 수 있으므로 Access Token만을 사용했을 때와 똑같은 문제가 발생할 거라고 생각합니다. 그래서 당시에 프론트 측 개발자에게 물어봤을 때에는 Refresh Token에 Http Only 옵션이나 Secure 옵션을 해주면 된다고 이런 식으로 들었던 것 같은데, 그럼 애시당초 Access Token만을 사용하고 거기에 그런 옵션들을 해주면 번거롭게 Refresh Token을 사용할 필요도 없을 것 같다는 생각이 들었습니다.

강의를 수강하면서 Refresh Token의 효용성에 대해 의문이 다시 생기게 되었는데, 실무에서는 어떻게 Refresh Token 탈취 문제를 해결하고 있는지 궁금합니다.

답변 1

1

큰돌님의 프로필 이미지
큰돌
지식공유자

안녕하세요 사유님 ㅎㅎ

Refresh Token에 Http Only 옵션이나 Secure 옵션을 해주면 된다고 이런 식으로 들었던 것 같은데,

>> 두 토큰 모두 해당 옵션은 필수입니다.

 

탈취 문제 해결

>>

먼저 Access Token의 수명을 짧게 설정하여 탈취된 토큰의 유효 기간을 최소화합니다. 짧은 수명의 Access Token을 사용하고, 필요할 때만 Refresh Token을 통해 새로운 Access Token을 발급받습니다.

그리고 Refresh Token을 사용할 때 추가적인 사용자 인증 단계를 요구할 수 있습니다. 예를 들어, 사용자가 민감한 작업을 수행하려고 할 때 추가 인증(2단계 인증 등)을 요구할 수 있고 Refresh Token을 사용할 때 토큰을 발급받은 IP 주소 및 디바이스 정보를 확인하여, 동일한 조건에서만 토큰을 사용할 수 있도록 제한하는 방법을 씁니다.



또 질문 있으시면 언제든지 질문 부탁드립니다.

좋은 수강평과 별점 5점은 제게 큰 힘이 됩니다. :)

감사합니다.

강사 큰돌 올림.

 

사유님의 프로필 이미지
사유

작성한 질문수

질문하기