티스토리 뷰

반응형

1. JWT란?

JWT는 JSON Web Token의 약어로, JSON 형식의 데이터를 저장하는 토큰이며 다음과 같이 세 부분으로 구성된다.

  • 헤더(header): 토큰 종류와 해시 알고리즘 정보
  • 페이로드(payload): 토큰의 내용물이 인코딩된 부분
  • 시그니처(signature): 일련의 문자열, 시그니처를 통해 토큰이 변조되었는지 여부를 확인

2. Refresh Token?

 

Access Token(JWT)를 통한 인증 방식의 문제는 만일 제 3자에게 탈취당할 경우 보안에 취약하다는 점이다.

유효기간이 짧은 Token의 경우 그만큼 사용자는 로그인을 자주 해서 새롭게 Token을 발급받아야 하므로 불편하다. 그러나 유효기간을 늘리면, 토큰을 탈취당했을 때 보안에 더 취약해지게 된다.

이때 “그러면 유효기간을 짧게 하면서  좋은 방법이 있지는 않을까?”라는 질문의 답이 바로 "Refresh Token".

 

Refresh Token은 Access Token과 똑같은 형태의 JWT이다. 처음에 로그인을 완료했을 때 Access Token과 동시에 발급되는 Refresh Token은 긴 유효기간을 가지면서, Access Token이 만료됐을 때 새로 발급해주는 열쇠가 된다 

 

* Access Token은 탈취당하면 정보가 유출되는건 동일하다. 다만 짧은 유효기간 안에만 사용이 가능하기에 더 안전하다.

 

* Refresh Token의 유효기간이 만료됐다면, 사용자는 새로 로그인해야 한다. Refresh Token도 탈취될 가능성이 있기 때문에 적절한 유효기간 설정이 필요하다.

3. 결론

 

장점

  • 기존의 Access Token만 있을 때보다 안전하다.

 

단점

  • 구현이 복잡하다.
  • Access Token이 만료될 때마다 새롭게 발급하는 과정에서 생기는 HTTP 요청 횟수가 많다. 이는 서버의 자원 낭비로 귀결된다.

References:

쉽게 알아보는 서버 인증 2편(Access Token + Refresh Token) — 그랩의 블로그 (tistory.com)

[Node.js] JWT: Access Token & Refresh Token 인증 구현 — TaxFree (tistory.com)

 

https://github.com/Square-with-me

반응형

'TIL WIL' 카테고리의 다른 글

항해 99 TIL-24 Swagger (in Node.js)  (0) 2022.03.16
항해 99 TIL-23 MVC  (0) 2022.03.15
[WIL-9week] 2021.03.07~03.13  (0) 2022.03.13
항해 99 TIL-21 Web Server vs WAS  (0) 2022.03.08
[WIL-8week] 2021.02.28~03.06  (0) 2022.03.06
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
링크
글 보관함