Рейтинг:1

Способ получить открытый ключ RS256 JWT из его заголовков и полезной нагрузки?

флаг cn

У меня есть RS256 JWT, я хотел бы узнать его открытый ключ. Поскольку я знаю заголовок, полезную нагрузку и у меня есть зашифрованная подпись, есть ли способ получить открытый ключ, который сделал подпись из этих элементов?

dave_thompson_085 avatar
флаг cn
Подписи не шифруются и генерируются с использованием закрытого ключа, а не открытого ключа. Они _проверяются_ с помощью открытого ключа, и для JWS (включая подписанный JWT) этот ключ обычно либо включается в заголовок, либо идентифицируется им; см. [rfc7515, раздел 6] (https://datatracker.ietf.org/doc/html/rfc7515#section-6)
Рейтинг:1
флаг in

RS256 определяется как «RSASSA-PKCS1-v1_5 с использованием SHA-256», т. е. подпись RSA PKCS#1 v1.5.Поэтому вы можете найти метод получения модуля здесь. Обратите внимание, что сначала вам нужно выполнить детерминированное кодирование PKCS#1 v1.5 на самой полезной нагрузке, чтобы добраться до $м$ внутри вопроса/ответа.

Если публичный показатель большой и случайный, то вам, вероятно, не повезло, но это совсем не обычно. Вместо этого общедоступная экспонента обычно мала, часто это значение 0x010001/65537 — пятое простое число Ферма, также известное как F4. JWT только намекает на использование F4; похоже, явно не требуется использование определенного или небольшого показателя степени.

Maarten Bodewes avatar
флаг in
Обратите внимание, что я предполагаю, что подпись на самом деле не зашифрована. Утверждение, что генерация подписи — это шифрование с закрытым ключом (для RSA), является [**распространенной ошибкой**](https://crypto.stackexchange.com/q/15997/1172), с которой я пытаюсь бороться (и проигрывает из-за ужасного количества плохого учебного материала).

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.