本文へスキップ
ecdsa.com

RS256

SHA-256 を使う RSASSA-PKCS1-v1_5 の JWS アルゴリズム(RFC 7518 §3.3)で、OpenID Connect プロバイダーで長らくデフォルトとされてきました。署名の長さは RSA のモジュラスと同じです(2048 ビット鍵では 256 バイト)。
別表記RS256RSASSA-PKCS1-v1_5 SHA-256COSE -257

OpenID Connect Core はプロバイダーに ID トークンでの RS256 のサポートを義務付けており、そのため Google、Microsoft Entra ID、Okta、Auth0 はデフォルトで RS256 を使って署名します。鍵は 2048 ビット以上でなければなりません(RFC 7518 §3.3)。JWK は kty が RSA で、n と e を持ちます。署名は決定的で、同じ鍵と入力からは常に同じ出力が得られます。

検証は軽量で(Apple M4 Max の 1 コアで OpenSSL 3.6.5 を使うと、2048 ビット鍵で 1 秒あたり約 114,000 回)、署名は低速です(1 秒あたり約 3,000 回)。そのため、リライングパーティが検証するよりもはるかに少ない頻度で署名する発行者に向いています。代償はサイズで、2048 ビットの署名は base64url で 342 文字、3072 ビットの署名は 512 文字になります。

典型的な落とし穴はアルゴリズム混同です。同じ鍵オブジェクトで HS256 も受け付ける検証者は、RSA 公開鍵を HMAC のシークレットとして使うように仕向けられてしまいます。鍵ごとに RS256 を固定してください。PS256 は同じ鍵を、より強固な PSS パディングで使います。

規格と参考文献

すべての用語