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:841
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:1411
test path
alg: 'RS256', -
test/client_auth/client_auth.test.js:1459
test path
alg: 'RS256', -
test/client_auth/client_auth.test.js:1471
test path
alg: 'RS256', -
test/client_auth/client_auth.test.js:1483
test path
alg: 'RS256', -
test/client_auth/client_auth.test.js:1495
test path
alg: 'RS256', -
test/client_auth/client_auth.test.js:1507
test path
alg: 'RS256', -
test/client_auth/client_auth.test.js:1519
test path
alg: 'RS256', -
test/client_auth/client_auth.test.js:1531
test path
alg: 'RS256', -
test/client_auth/client_auth.test.js:1543
test path
alg: 'RS256', -
test/client_auth/client_auth.test.js:1570
test path
alg: 'RS256', -
test/configuration/client_metadata.test.js:1103
test path
userinfo_signed_response_alg: 'RS256', -
test/configuration/client_metadata.test.js:1208
test path
introspection_signed_response_alg: 'RS256', -
test/configuration/client_metadata.test.js:1308
test path
authorization_signed_response_alg: 'RS256', -
test/configuration/client_metadata.test.js:2118
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:87
test path
const client = await setup.call(this, { userinfo_signed_response_alg: 'RS256' }); -
test/registration_management/registration_management.test.js:115
test path
const client = await setup.call(this, { userinfo_signed_response_alg: 'RS256' });