보안 공부/Web 보안

JWT(Json web token) 취약점 점검

H.J.World 2024. 1. 9. 11:21
728x90
반응형

 

이전 작성 참고 내용

https://itinformation.tistory.com/527

 

JWT(Json Web Token) 보안 특성 및 대처 방안

JWT 란? - JWT는 상호간의 정보를 안전하게 전송하는데 사용되는 기술 - 주로 신원(identity) 정보와 클라이언트의 요청과 관련된 정보를 운반하는데 사용 - 토큰은 인증(authentication)을 통해서 생성 ->

itinformation.tistory.com

 

JWT 장점
- JWT는 쿠키 등에 저장되므로 서버에서 인증을 위한 세션 저장소가 필요 없음
- 다른 서비스 인증에서도 공통적으로 사용할 수 있어 확장성이 뛰어남
- REST 서비스로 제공 가능

JWT 단점
- 필드가 추가되면 토큰 크기가 증가
- Header나 payload는 단순히 base64로 인코딩이된것이므로 디코딩하면 값을 확인할 수 있음
 > 변조에 대한건 확인할 수 있으나 유출이 되었는지는 확인 할 수가 없음
 
JWT 우회 기법
- Signature 알고리즘을 none으로 변경하여 검증을 우회가능
- Signature 알고리즘 키가 유출되면 원하는 토큰으로 변조 가능

JWT 서명 알고리즘 키 탈취
- JWT는 클라이언트에 저장되므로 서버가 JWT 사용에 관여할 수 없음
- Header에 Signature 알고리즘이 명시되어 있고, JWT 표준에 따라 Signature 만드는 방식이 공개되어 있으므로 공격자는 제한 없이 무차별 대임 공격, 레인보우 테이블 등을 이용하여 Signature 키를 알아 낼수 있음
- jwtcat, jwt-craker 등을 이용

보안 대책
- 복잡한 서명 알고리즘 키 사용
- 주기적인 알고리즘 키 변경
- jwt.io에서 권장하는 라이브러리 사용

728x90
반응형