Подписать токен с помощью алгоритма RSA - PullRequest
0 голосов
/ 03 апреля 2019

ПРИМЕЧАНИЕ: На моей машине установлен самозаверяющий сертификат.

У меня есть токен JWT, который я пытаюсь подписать с использованием алгоритма RSA.библиотека "JOSE" для достижения того же с помощью метода ниже.

Jose.JWT.Encode(payload, certificate.GetRSAPrivateKey(), JwsAlgorithm.RS256);

После изучения метода «Кодирования» я обнаружил, что в нем используется алгоритм Hashing SHA-256.

Я ищу подход, в котором хэширование исключено и подписано напрямую с использованием RSA.

Любая помощь будет принята с благодарностью!

1 Ответ

1 голос
/ 03 апреля 2019

Хеш является требованием безопасности для большинства, если не для всех алгоритмов подписи. Таким образом, вы не можете исключить это.

Однако вы можете использовать RSA, используя сигнатуры, дающие (частичное) восстановление сообщений (как указано в ИСО / МЭК 9796-2), которые могут возвращать (частично) сообщение, которое было подписано. Они обычно считаются устаревшими; если вам нужно меньше накладных расходов на подпись, вместо этого вы должны использовать криптографию с эллиптической кривой.

Однако, какой из этих двух вариантов вы выберете, не имеет значения, поскольку любой из них нарушит протокол веб-токена JOSE / JS, который вы пытаетесь реализовать.

...