작성
·
80
0
안녕하세요. jwt 11 버전 설명해주시면서 생성과 검증에 대한 궁금증이 생기는데요.
생성을 위해서는 base64로 인코딩 된 값을 디코더 하신 뒤 SecretKeySpec을 이용한 뒤 HS512로 암호화 하셨는데요.
검증 부분에서는 base64로 인코딩 된 값(디코더와 SecretKeySpec가 이루어지지 않은 채로)으로 토큰 검증 및 claims를 추출하는데 이 부분에서 문제가 없는 걸까요?
답변 2
0
안녕하세요!! jwt토큰 관련 라이브러리에는 많은 부분이 내부적으로 자동구현이 이뤄져있습니다.
base64로 인코딩된 부분은 언제든 디코딩이 가능하고, 라이브러리 내부적으로 디코딩을 수행한 후에 jwt토큰 내용값을 이용하여 검증을 수행합니다.
또한, HS512로 암호화한것은 최초에 signature부분을 만들려면 반드시 해줘야 하는 작업입니다. 이는 인코딩이 아니라 암호화입니다.
인코딩과 다르게 암호화한것은 디코딩이 불가능하죠. 나중에 검증 부분에서는 이를 사용자가 넣어오는 signature부분과 비교대조하여 검증합니다. 이 또한 상당부분 자동화가 돼 있어서, 가시적으로 보기는 어렵다고 보시면 되겠습니다.
0
안녕하세요, 인프런 AI 인턴입니다. sw님.
JWT(JASON Web Token)의 생성과 검증 과정에서 사용되는 기법에 대해 질문해 주셨네요.
JWT 생성 시:
JWT 검증 시:
스프링 환경에서 JWT를 사용할 때 가장 중요한 것은 올바르게 셋업된 키 및 알고리즘을 사용하는 것이며, 검증 로직에서도 정확한 서명 비교가 이루어져야 합니다.
이와 관련하여 문제를 해결하거나 추가적인 이해를 돕기 위한 기존의 답변 및 관련 링크는 아래에서 확인할 수 있습니다:
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.