Spring/Spring Security

[Spring Security][KoLiving] 4-4. RefreshToken Rotation

noahkim_ 2023. 10. 3. 22:27

* 이전 포스팅의 시리즈입니다.

 

3. RefreshToken Rotation

  • RefreshToken Rotation은 RefreshToken 의 보안 취약점을 최소화하는 기법입니다.
    • 만약 RefreshToken가 탈취되었다면, 서버는 RefreshToken 사용자가 악의적인 사용자인지 식별할 수 없습니다.
    • RefreshToken Rotation은 이러한 취약점을 보완하고자 도입되었습니다.
  • 클라이언트가 새로운 AccessToken을 요청할 때마다 RefreshToken도 함께 새로 발급해주는 방식을 말합니다
    • RefreshToken를 통해 AccessToken를 새로 발급받을 경우
  • 만약 AccessToken을 요청할 때마다 RefreshToken을 새로 발급하게 되면
    • 공격자가 RefreshToken를 새로 발급 받고 사용자가 이전 RefreshToken로 AccessToken를 요청할 경우
    • 서버에 저장된 RefreshToken와 요청자의 RefreshToken간의 불일치가 발생합니다.
      • 이러한 경우 서버는 RefreshToken이 노출되었다 판단하고 기존의 RefreshToken을 지웁니다
      • 서버는 새로운 RefreshToken을 생성하여 저장소에 저장합니다.
      • 불일치할 경우 서버는 클라이언트에게 로그인 창으로 리다이렉트 시킵니다.