JWT-3
JWT-3
JWT 단점
- 길이
- Claim에 넣는 데이터가 많아질 수록 JWT 토큰은 길어짐
- 긴 token을 전송하면 이에 따른 네트워크 비용 증가
- 토큰에 대한 수정 불가
- 한 번 발급된 토큰에 대한 수정 불가
- 만약 JWT가 탈취당하더라도 서버에서 해당 토큰에 대해 영향을 줄 수 없음
- Payload 정보가 제한적
- 디코딩이 쉽기 때문에 중요한 정보는 payload에 담을 수 없음
- 여러 보안 취약점
- Header의 alg 부분을 none으로 작성한 JWT를 통해 일부 서버를 공격 가능
- 서버에서 짧거나 일반적인 secret key를 이용하면 공격당할 수 있음
Access / Refresh Token
- 서버에 접속하기 위한 JWT를 access token이라고 함. 이 토큰은 탈취당했을 때 굉장히 위험
- 따라서 access token의 만료 기간은 짧게 설정하고, 자주 재발급 받는 것이 좋음
- 이렇게 access token을 재발급 받게 해 주는 또 다른 token(JWT)을 refresh token이라고 함
- Refresh token은 세션과 같이 서버 DB에도 정보가 저장되고, 탈취 당했을 때 서버 DB에서 삭제하면 됨
- 보안성이 증가되지만, 그 만큼 자원 사용 증가 및 구현 난이도 상승
References
- https://youtu.be/XXseiON9CV0
- https://tofusand-dev.tistory.com/89#token-%EA%B8%B0%EB%B0%98-%EC%9D%B8%EC%A6%9D-%EB%B0%A9%EC%8B%9D
- https://debugdaldal.tistory.com/179
- https://tansfil.tistory.com/59