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.