⚙️ BE

JWT 관리와 탈취대응 시나리오 ( 2 )

jobey 2024. 4. 9. 15:33
반응형
토큰기반의 인증 전략에 대해 고민해본 글 입니다.

 

 

이전 글에서 RTR이 토큰 탈취 대응 방안으로 어느정도 효과가 있는지 알아보았습니다.

여러가지 문제가 있었지만 간략 하게 정리하면 아래와 같습니다.

 

  • RTR은 일부 케이스에선 효과가 있지만 그리 효과적이지는 못한 것 같다.
  • XSS 공격에는 여전히 취약하다. 대부분 방어가 되어있긴 하지만 일부 취약한 부분도 있다. 
  • 어느정도 양보하면 세션과 다를게 없어진다.

그리하여 새로운 전략에 대해 이야기 해보려 합니다.

 

Http Only

리프레시 토큰을 쿠키에 담아 보내는 방식 입니다. http only 속성을 부여하여 자바스크립트로 접근할 수 없도록 설정하는 방식입니다.

우선 자바스크립트로 접근 할 수 없기 때문에 여기서 대부분의 보안 취약점은 해결이 된 모습입니다.

 

덕분에 XSS 공격에도 대응이 가능해졌습니다.

하지만, 

웹 보안 이슈 단골손님 csrf가 기다리고 있습니다.

 

해커가 만든 피싱 사이트 url을 클릭 하고 해커가 미리 삽입해둔 태그에서 발생한 요청에 의해 정상 유저인 것 처럼 둔갑되어 버립니다.

 

 

엑세스 토큰에 고유정보 기록

엑세스 토큰에 고유정보를 기록하는 방식입니다.토큰을 발급 할 때 요청을 보낸 사람의 브라우저, IP, 디바이스 종류 등 비교적 덜 민감한 요소들을 기록합니다.

 

이후 재발급 요청을 받으면 고유정보를 다시 확인하고 이 정보가 매칭이 되지 않는다면 재발급 요청에 응하지 않는 방식 입니다.물론 IP 같은 경우에는 다소 민감한 요소로 분류될 수도 있지만, 이름, 주민번호, 휴대폰 번호 정도의 민감성은 없다고 판단됩니다.

 

이 방식은 토큰을 직접 해독하여 기록된 정보를 알아내지 않는 이상 다른 세부정보를 모두 알아내기가 쉽지 않습니다.

 

 

 

결론

세션도 그렇고 토큰도 그렇고 완벽한건 없는 것 같습니다.

개인적으로 비용이 더 들더라도 각 전략의 장점을 적절히 섞어 안전한 방법을 모색하고,

Google Authenticator 같은 멀티팩터 인증을 적극적으로 활용하면 좋을 것 같다는 생각입니다.

 

 

 

 

반응형