Server

JWT(Json Web Token)란?

테런 2023. 4. 1. 23:32
  • JWT(Json Web Token)란?
JWT는 JSON Web Token의 약자로 URL-safe한 JSON으로 전자 서명된 것입니다. 전자 서명은 JSON의 변조를 체크할 수 있게 되어 있습니다. JWT는 속성 정보(Claim)를 JSON 데이터 구조로 표현한 토큰으로 RFC7519 표준입니다. JWT는 인증에 필요한 정보들을 암호화시킨 JSON 토큰을 의미합니다. JWT 기반 인증은 JWT 토큰(Access Token)을 HTTP 헤더에 실어 서버가 클라이언트를 식별하는 방식입니다.

 

  • JWT 토큰과 OAuth2.0의 차이점
JWT는 인증에 필요한 정보들을 암호화시킨 JSON 토큰을 의미합니다. 반면 OAuth2.0은 인증과 권한 부여를 위한 프로토콜입니다. JWT는 OAuth2.0에서 사용되는 인증 방식 중 하나입니다. JWT는 OAuth2.0의 Access Token으로 사용될 수 있습니다.

 

  • JWT 토큰 장단점
JWT(JSON Web Token)의 장점은 사용자 인증에 필요한 모든 정보를 토큰 자체에 포함하기 때문에 별도의 인증 저장소가 필요 없다는 것입니다. 쿠키를 전달하지 않아도 되므로 쿠키를 사용함으로써 발생하는 취약점이 사라집니다.

JWT(JSON Web Token)의 단점은 토큰의 길이가 길어 인증 요청이 많아질수록 네트워크 부하가 심해진다는 것입니다. Payload 자체는 암호화되지 않기 때문에 유저의 중요한 정보는 담을 수 없습니다. 토큰을 탈취당하면 대처하기 어렵습니다.

 

  • JWT 토큰 보안 문제
JWT(JSON Web Token)의 보안 문제는 토큰이 만료될 때 유효하지 않게 되며 사용자는 명시적으로 토큰의 유효성 검증을 취소할 수단이 없게 됩니다. 이는 즉 토큰이 유출될 경우 사용자는 토큰 자체를 취소할 수 없게 되며 공격자를 차단할 수 없음을 의미합니다. 또한, JWT(JSON Web Token)는 Payload 자체는 암호화되지 않기 때문에 유저의 중요한 정보는 담을 수 없습니다. 토큰을 탈취당하면 대처하기 어렵습니다.