본문 바로가기

데일리

[2023.11.26] Refresh Token & Access Token

글의 목적

  • Refresh Token & Access Token에 대해서 집중적으로 알아보고 보안문제들을 파악해보려고 함.

본론

Refresh Token & Access Token

  • 두 토큰 모두 JWT 기반이다.
  • Access Token은 API 요청을 할때 검증용 토큰으로 사용된다. 즉, 인증이 필요한 API를 사용할때는 꼭 Access Token을 Header에 넣어서 보내야 한다.
    • 예) 유저 정보 수정
  • Refresh Token은 Access Token을 추가로 발급할때 사용된다. Access Token을 새로고침(Refresh)하는 기능이 있기 때문에 Refresh Token이라고 부른다.
  • Access Token은 유효기간이 짧고 Refresh Token은 유효기간이 길다.
  • 자주 노출되는 Access Token은 유효기간을 짧게해서 Token이 탈취돼도 해커가 오래 사용하지 못하도록 방지할 수 있다.
  • 상대적으로 노출이 적은 Refresh Token의 경우 Access Token을 새로 발급받을때만 사용되기 때문에 탈취 가능성이 적다.

토큰 발급 과정

토큰 발급 과정

 

Refresh Token 사용 과정

Refresh Token 사용 과정

Access Token 사용 과정

Access Token 사용 과정

Refreshing Logic

Refreshing Logic

결론

  • 진작부터 정리해둘걸 하는 아쉬움이 있다.
  • 그래도 부족한 부분을 많이 발견하게 되었고, cookie, session, token에 대해서 정리가 되었다.