[study] jwt

냐옹·2023년 11월 28일
0

스터디

목록 보기
11/14

참고영상 https://www.youtube.com/watch?v=XXseiON9CV0

세션

  • 사람이 늘어날 때마다 stateless하지 않기 때문에 서버의 부하가 커짐

jwt (토큰)

  • 정보들을 암호화시켜 문자열로 반환한 것을 토큰이라고 한다. (액세스토큰)

  • 들어가는 정보가 많음

  • stateless 하다.
    - 부담을 덜 수 있음

  • jwt쓰면 보안 이슈가 4가지 정도 생김

    1. 알고리즘 (alg) 부분에 none으로 처리하는 것
      • 이렇게 하면 입장시켜주는 서버가 많다.
    2. jsw는 변환이 쉽다.
      • jwt는 디코딩이 매우쉬워서 민감한 유저정보를 그대로 넣으면 안된다.
        • 최소한의 정보만 넣어야한다.
    3. 시크릿키 문제
      • 매우 복잡하고 어려운 문자열로 넣어야 한다.
        • 브루트포스 공격에 뚫릴 수 있기 때문이다.
        • 생성용 키 (private) / 검증용 키 (public) 2개를 사용하는 방법이 있다.
    4. jwt 탈취
      • 근데 이건 깊게 생각할 필요는 없다고 한다.
        • 책임은 잃어버린 사람 책임이기 때문에
        • 하지만 잃어버린 이후에 해당 입장권을 정지시키는 로직 필요
          1. 훔치기 어렵게 만든다.(httpOnly cookie)
          1. 입장권 블랙리스트를 만든다. 특정 입장권은 입장이 불가하게
            • 세션과 다를게 없음
          2. 입장권의 유효기간을 짧게
            • refresh 토큰을 운영해야 한다.
              • refresh 토큰도 탈취당하는 경우가 있긴하다.
              • refresh 토큰은 1회용으로 사용해야 안전하다.

0개의 댓글