Ключи JWT-асимметричные и симметричные

Я понимаю разницу между симметричными и ассиметричными ключами. Я понимаю, что ключи используются для вычисления подписи, а затем проверить их. Однако погружение немного глубже, я хотел бы понять немного больше, что у меня возникли проблемы с поиском в интернете.

ключи, данные потребителям для проверки содержимого? Разве это не даст потребителям возможность изменять содержимое JWT, если используются симметричные ключи?

при использовании асимметричных ключей подпись, рассчитанная с помощью закрытого или открытого ключа? Предоставляется ли потребителю открытый / закрытый ключ?

спасибо

2 ответов


симметричные ключи должны использоваться только одноранговым способом, поэтому получателю было бы бессмысленно изменять JWTs, для которых только он и отправитель имеют общий ключ (и он является предполагаемым получателем).

асимметричные ключевые подписи (как в JWTs, так и в целом) создаются отправителем с закрытым ключом и проверяются получателем с открытым ключом. Потребителю / получателю предоставляется только открытый ключ, который происходит вне диапазона.


с асимметричными JWTs(JWS), подписанными закрытым ключом отправителя, получатель токена в основном получает полезную нагрузку (заголовок/утверждения), которые находятся в очистить текст другое существо base64 закодировано. Вот почему они должны передаваться в среде защищенного уровня сокетов (SSL). Для проверки полученной подписи открытый ключ используется получателем для пересчета подписи полученной полезной нагрузки. Если две подписи, полученная подпись и Вычисленная подпись, не соответствует, тогда полезной нагрузке нельзя доверять - она недопустима Поэтому такая асимметричная JWS не хороший метод для включения конфиденциального "утверждения", такого как номер социального страхования, поскольку содержимое полезной нагрузки не зашифровано. Включить такие конфиденциальные данные в JWT можно было бы использовать зашифрованный JWE веб-маркер Json. В JWE вся полезная нагрузка зашифрована.