스택큐힙리스트

JWT를 해독할 수 있다면 그것들이 어떻게 안전한가요? 본문

카테고리 없음

JWT를 해독할 수 있다면 그것들이 어떻게 안전한가요?

스택큐힙리스트 2023. 11. 29. 00:02
반응형

만약 JWT를 얻고 페이로드를 디코딩할 수 있다면, 어떻게 보안이 되는 건가요? 그냥 헤더에서 토큰을 가져와 디코딩하고 페이로드에서 사용자 정보를 변경한 다음 올바로 인코딩된 비밀 키로 다시 보내면 안 될까요?


그들은 안전해야 한다는 건 알겠지만, 기술을 이해하고 싶습니다. 뭘 놓치고 있는 건가요?

답변 1

메시지를 받을 때, Bob은 해시(payload + 비밀값)을 계산하여 서명이 일치하는지 확인할 수도 있습니다.
그러나 Mallory가 내용을 변경한다면, 일치하는 서명(해시(새로운내용 + 비밀값))을 계산할 수 없습니다. 그녀는 비밀값을 알지 못하고 알 방법도 없습니다.
이것은 그녀가 무언가를 변경한다면, 서명이 더 이상 일치하지 않을 것이며, Bob은 그때부터 JWT를 더 이상 수락하지 않을 것입니다.

가정해 봅시다, 다른 사람에게 메시지 {id:1}을 보내고 Hash(content + secret)로 서명합니다. (+는 여기서 단순 연결이라고 가정합니다). 저는 SHA256 해시 함수를 사용하며, 얻은 서명은 다음과 같습니다: 330e7b0775561c6e95797d4dd306a150046e239986f0a1373230fda0235bda8c. 이제 차례는 당신입니다: Mallory의 역할을 하여 메시지 {id:2}를 서명해 보세요. 당신은 어떤 비밀을 사용했는지 알지 못하기 때문에 할 수 없습니다. 여기서 수신자가 비밀을 안다고 가정한다면, 그는 어떤 메시지의 서명을 계산하여 올바른지 확인할 수 있습니다.

답변 2

서울에서 근무하는 웹 개발자이자 SEO 전문가로써, 저는 JWT에 대해 여러분께 설명드리겠습니다. JWT는 JSON Web Token의 약자로, 웹 애플리케이션에서 사용되는 인증 및 인가 메커니즘입니다. 간단히 말해서, 서명된 토큰이므로 안전한 방식으로 데이터를 전송하고 저장할 수 있는 기술이라고 볼 수 있습니다. 그렇다면, JWT를 해독할 수 있다면 왜 이것들이 안전한 것일까요?
첫째, JWT는 서명에 기반한 보안 메커니즘을 사용합니다. 페이로드로 알려진 데이터를 토큰에 포함시킬 수 있고, 이 토큰은 비밀 키를 사용하여 서명됩니다. JWT는 암호화되지 않았기 때문에 누구나 디코딩할 수 있을지도 모릅니다. 그러나 서명된 토큰이기 때문에 데이터가 조작되었는지 여부를 확인할 수 있습니다. 만일 데이터가 변경되었다면, JWT의 서명 또한 변할 것입니다. 이로써 서버는 JWT의 유효성을 검사하여 토큰이 변조되지 않았는지 확인할 수 있습니다.
둘째, JWT는 헤더, 페이로드 및 서명 부분으로 구성됩니다. 헤더는 토큰 유형 및 서명 알고리즘을 정의합니다. 페이로드는 실제로 전송되는 데이터를 포함하며, 이는 서버의 필요한 정보를 담고 있습니다. 마지막으로, 서명은 토큰이 신뢰할 수 있는지 확인하기 위해 사용되는 부분입니다. 이로써 JWT는 데이터를 안전하게 전송할 수 있는 기능을 제공합니다. 단, 서명 키를 제대로 보호하지 않는다면 JWT의 안전성이 약화될 수 있습니다.
셋째, JWT는 세션 상태 저장과 관련된 문제들을 해결할 수 있습니다. 이전에는 세션을 유지하기 위해 서버에 상태를 저장해야 했습니다. 그러나 JWT는 자체적으로 페이로드에 상태 값을 포함시킴으로써 세션 상태를 유지할 수 있습니다. 이는 서버의 저장 공간을 줄이고, 클라이언트 측에서 상태를 관리할 수 있도록 돕습니다. 때문에 JWT를 사용하면 확장성이 뛰어나고, 서버의 부하가 줄어듭니다.
결론적으로, JWT는 서버와 클라이언트 간의 통신에서 사용되는 안전한 메커니즘입니다. JWT는 서명된 토큰이므로, 디코딩은 가능하지만 유효성을 검사하여 데이터의 무결성을 확인할 수 있습니다. 또한 JWT는 세션 상태 저장과 관련된 문제들을 해결하여 보안과 확장성을 동시에 제공합니다. 이러한 이유로 JWT는 현대 웹 애플리케이션에서 매우 유용한 보안 솔루션이며, 안전하게 데이터를 전송하고 저장하는 데 도움이 됩니다.

반응형
Comments