Open randomstuff opened 1 day ago
What would be the proposed change in 6.3? @randomstuff
(Added: « Add requirement in V3 Session Management »)
6.3.X Verify that randomly generated credentials (or identifiers which are intended to be hard-to guess (?)) not intended for handling by end-users have at least 128 bits of entropy. When applicable, they should have at least 256 bits of entropy.
This could apply to things like:
client_secret
code_verifier
nonce
jti
(?)Question: Would this need to be made explicit? (eg. requirement in the OAuth chapter)
Question: What about when the credentials are not random but derived from something? Could this requirement apply as well?
Additional question: When using HMAC, there are additional recommendations with respect to the key entropy (you can tecnically use "123" as key but you should not …). So we need to have some guidance about that in appendix? We currently have this:
6.2.9 [ADDED] All cryptographic primitives MUST utilize a minimum of 128-bits of security, with exceptions only made for equipment or applications approaching end of life, where the requirement is at least 112-bits of security for all cryptography.
which is about cryptographic primitives but not necessarily about cryptographic material inputs (keys/secrets).
ping @danielcuthbert
Several standards and other references have requirements about entropy of random values.
NIST sp800-63n:
NIST sp800-63c about Federated user ID (eg. OpenID Connect "sub" claims):
OAuth 2.1 draft:
This would apply to
challenge_verifier
, OIDCnonce
, generatedclient_secret
, etc.FAPI 2.0:
Percival's Cryptographic Right Answers (2009):
Ptacek's Cryptographic Right Answers (2015):
Latacora's Cryptographic Right Answers (2018):
Latacora's Cryptographic Right Answer: Post Quantum Edition (2024):
DPoP:
Possible options: