Access Token의 유효 기간을 짧고, 자주 재발급 하도록 만들어 보안을 강화하면서도 사용자에게 잦은 로그인을 요구하지 않게 하는 기술이다.
Refresh Token은 형태에 따라 기능도 다양하고, RTR이라는 기술도 있을 정도로 쓰임은 다양하다.
Access Token 대신에 Refresh Token을 쓴다면 정말 기존의 단점인 “토큰 탈취”의 문제점이 사라지고, 편의성도 증가할까?
답은 아니오다.
Access Token이 탈취 되었을 때, 유효기간이 짧기 때문에 보안이 강화되었다고 볼 수 있지만 짧아진 Access Token의 유효기간만큼이나 Refresh Token을 통한 재발급 비율이 늘어났다. 이것의 문제점은 Refresh Token이 탈취 될 가능성이 높아지는 것이다.
이것은 생각보다 큰 문제점인데 Refresh Token은 기본적으로 유효기간이 길기 때문이다. 일반 사용자는 이 토큰이 탈취 되었다고 느끼기까지 정말 오랜시간이 걸린다.
따라서 Refresh Token을 사용한다고해서 보안성과 편의성 둘 다 챙길 수는 없다.
어느 기술이나 쓰임을 판단하는 기준은 “상황에 맞게”이다. 다음은 보안성과 편의성을 기준으로 정리한 상황이다.
Access Token은 짧은 유효기간, Refresh Token은 긴 유효기간을 가졌다 가정한다.
Access Token만을 사용했을 시 : 보안성은 좋고, 편의성은 좋지않다.
Refresh Token을 같이 사용했을 시 : 보안성은 좋지않고, 편의성은 좋다.