RSA-PKCS1v15 Already broken Recorded traffic 34 places See details
JWT signed with a classical algorithm
A JOSE `alg` value. RS*, PS*, ES* and EdDSA sign with a quantum-vulnerable key; HS* is an HMAC and is not affected. `alg: 'none'` is reported as a critical defect today.
This is already unsafe today, with no quantum computer involved. PKCS#1 v1.5 encryption padding is vulnerable to Bleichenbacher oracles today, and the underlying RSA is broken by Shor.
What to do. No standardised post-quantum JOSE algorithm exists yet. Keep token lifetimes short.
-
lib/consts/client_attributes.js:32
authorization_signed_response_alg: 'RS256', -
lib/consts/client_attributes.js:36
id_token_signed_response_alg: 'RS256', -
lib/consts/client_attributes.js:37
introspection_signed_response_alg: 'RS256', -
lib/consts/dev_keystore.js:4
alg: 'RS256', -
lib/helpers/defaults.js:826
id_token_signed_response_alg: 'RS256', -
test/client_auth/client_auth.test.js:64
test path
alg: 'RS256', -
test/client_auth/client_auth.test.js:1463
test path
alg: 'RS256', -
test/client_auth/client_auth.test.js:1511
test path
alg: 'RS256', -
test/client_auth/client_auth.test.js:1523
test path
alg: 'RS256', -
test/client_auth/client_auth.test.js:1535
test path
alg: 'RS256', -
test/client_auth/client_auth.test.js:1547
test path
alg: 'RS256', -
test/client_auth/client_auth.test.js:1559
test path
alg: 'RS256', -
test/client_auth/client_auth.test.js:1571
test path
alg: 'RS256', -
test/client_auth/client_auth.test.js:1583
test path
alg: 'RS256', -
test/client_auth/client_auth.test.js:1595
test path
alg: 'RS256', -
test/client_auth/client_auth.test.js:1622
test path
alg: 'RS256', -
test/configuration/client_metadata.test.js:1148
test path
userinfo_signed_response_alg: 'RS256', -
test/configuration/client_metadata.test.js:1253
test path
introspection_signed_response_alg: 'RS256', -
test/configuration/client_metadata.test.js:1353
test path
authorization_signed_response_alg: 'RS256', -
test/configuration/client_metadata.test.js:2163
test path
id_token_signed_response_alg: 'RS256', -
test/core/implicit/implicit.config.js:24
test path
id_token_signed_response_alg: 'RS256', -
test/encryption/encryption.config.js:37
test path
userinfo_signed_response_alg: 'RS256', -
test/external_signing/external_signing.config.js:111
test path
id_token_signed_response_alg: 'RS256', -
test/formats/jwt.test.js:100
test path
expect(header).to.have.property('kid', i(this.provider).keystore.selectForSign({ alg: 'RS256' })[0].kid); -
test/formats/jwt.test.js:116
test path
expect(header).to.have.property('kid', i(this.provider).keystore.selectForSign({ alg: 'RS256' })[0].kid); -
test/formats/jwt.test.js:122
test path
const [source] = keystore.selectForSign({ alg: 'RS256' }); -
test/formats/jwt.test.js:133
test path
sign: { alg: 'RS256', kid: jwk.kid }, -
test/jwks/jwks-enc.config.js:30
test path
alg: 'RS256', -
test/jwks/jwks-noenc.config.js:30
test path
alg: 'RS256', -
test/jwks/jwks_uri.test.js:30
test path
alg: 'RS256', -
test/jwks/jwks_uri.test.js:95
test path
alg: 'RS256', -
test/jwt_introspection/jwt_introspection.config.js:18
test path
introspection_signed_response_alg: 'RS256', -
test/registration_management/registration_management.test.js:102
test path
const client = await setup.call(this, { userinfo_signed_response_alg: 'RS256' }); -
test/registration_management/registration_management.test.js:130
test path
const client = await setup.call(this, { userinfo_signed_response_alg: 'RS256' });