Перейти к содержимому
ecdsa.com

RS256

Алгоритм JWS RSASSA-PKCS1-v1_5 с SHA-256 (RFC 7518, § 3.3), исторически алгоритм по умолчанию у поставщиков OpenID Connect; длина подписи равна длине модуля RSA (256 байт для 2048-битных ключей).
Другие написанияRS256RSASSA-PKCS1-v1_5 SHA-256COSE -257

OpenID Connect Core требует от поставщиков поддерживать RS256 для ID-токенов, поэтому Google, Microsoft Entra ID, Okta и Auth0 по умолчанию подписывают именно им. Ключи должны быть длиной не менее 2048 бит (RFC 7518, § 3.3); в JWK указываются kty со значением RSA, а также n и e. Подписи детерминированы: один и тот же ключ и одни и те же входные данные всегда дают одинаковый результат.

Проверка дешёвая (около 114 000 в секунду для 2048-битных ключей на одном ядре Apple M4 Max с OpenSSL 3.6.5), а подписание медленное (около 3 000 в секунду): это подходит издателям, которые подписывают гораздо реже, чем доверяющие стороны проверяют подписи. Плата за это — размер: 2048-битная подпись занимает 342 символа base64url, 3072-битная — 512.

Классическая ловушка — подмена алгоритма: проверяющую сторону, которая с тем же объектом ключа принимает ещё и HS256, можно заставить использовать открытый ключ RSA как секрет HMAC. Закрепите RS256 за каждым ключом. PS256 использует те же ключи с более стойким дополнением PSS.

Стандарты и ссылки

Все термины