답변:
다른 어떤 것도 암호화하지 않기로 선택한 것과 같은 이유로 페이로드를 암호화하지 않기로 선택합니다. 비용 (소액은 적음)이 이점을 초과하며 많은 데이터를 그렇게 확보 할 필요가 없습니다.
당신이 주로 보호해야 할 것은 잘못된 기록이 업데이트되도록 누군가가 데이터를 변조하거나 누군가의 당좌 계좌가 가지고 있지 않은 돈을 얻는 것입니다. JSON 웹 토큰의 서명은 헤더 / 페이로드 / 서명 조합의 일부를 변경하면 패킷이 무효화되므로이를 수행합니다.
SSL을 사용하여 전송 계층에서 패킷을 계속 보호 할 수 있습니다.
RFC에서 서명 이라는 용어를 사용하는 것은 비대칭 암호화 의 디지털 서명 과 유사합니다 . 비대칭 암호화에서 보낸 사람이 개인 키로 메시지를 암호화하면 메시지를 가진 사람은 누구나 보낸 사람의 공개 키로 해독 할 수 있습니다. 따라서 서명 이라는 용어의 목표 는 메시지를 비밀로 유지하는 것이 아니라 메시지의 무결성 / 보내는 사람을 확인하는 것입니다.
JWT의 경우, 전송 시스템은 메시지의 작성자이자 소비자입니다 (아래 다이어그램 참조). 목표는 사용자에게 전달 된 토큰이 변조되지 않았는지 확인하는 것입니다 (예 : 높은 권한이 부여 된 경우).
@Robert가 언급했듯이 JWT는 여전히 TLS로 암호화해야합니다.
아래 이미지가 제공되는 JWT 및 서명에 대한 좋은 설명이 있습니다. JSON 웹 토큰 (JWT)을 이해하는 5 가지 쉬운 단계
Robert Harveys의 답변에 추가하려면 페이로드를 암호화하는 데 큰 단점이 있습니다. 즉, 서비스 수신자는 토큰 보유자가 인증되었는지 여부를 이해하기 위해 인증 서버 (암호화 키)와 비밀을 공유해야합니다. 또는 아닙니다. 반대로 누구나 인증 서버에서 공개 한 공개 키만 사용하여 JWT의 유효성을 검증 할 수 있습니다.
이는 클라이언트 응용 프로그램이 인증 서버에서 발급 한 ID 토큰의 유효성을 검사 할 수있게 해주는 개방형 연결 사양의 핵심 부분으로, 리소스 서버를보다 쉽게 배포 할 수 있습니다 (비밀 암호화에 액세스하여 배포 할 필요가 없으므로) 키) 및 발급 된 JWT의 문제를 진단 할 때도 도움이됩니다.