We have been thinking that new hash functions and new mechanisms (eg ECDH-ES) would be treated the same and require a spec and review.
(At some point I will do a asymmetric extension so that the key can also be used to encrypt POP keys back to the client, but I don't want to make this spec look to complicated) Any mechanism using a challenge & verifier approach could fit in to the defined parameters, a different hash like SHA3 is simple in that it just be a replacement of the hash function. I think guidance id fine as long as it doesn't limit future options. John B. > On Dec 3, 2014, at 8:46 AM, Hannes Tschofenig <hannes.tschofe...@gmx.net> > wrote: > > Hi John, > > I believe it makes sense to give recommendations for extensions (if you > envision them). Of course, I hope that we do not see a flood of > extensions that all use different hash functions. > > Changing the mechanism to something that provides even stronger security > properties would definitely require a new specification and review. > > Ciao > Hannes > > > On 12/03/2014 12:37 PM, John Bradley wrote: >> Thanks Hannes. >> >> Other methods such as different hashes need to be added via extension specs. >> >> >> Are you saying that we should set minimum recommendations for them. >> >> It is also possible that those methods might use something other than >> hashing. Key agreement might be a possibility. >> >> Those properties would all be requirements for selecting a different hash >> function. We could add that as a requirement for extensions if you think >> that is appropriate. >> >> John B. >> >>> On Dec 3, 2014, at 8:17 AM, Hannes Tschofenig <hannes.tschofe...@gmx.net> >>> wrote: >>> >>> Hi all, >>> >>> I am trying to figure out how to progress the SPOP document and >>> therefore I read through the discussion about the code challenge, see >>> >>> I wanted to share my view about this topic. >>> >>> As a summary, the mechanism works as follows: >>> >>> C: Compute code_verifier:=rand() >>> C: Compute code_challenge:=func(code_verifier) >>> >>> (For this discussion, the function func() is SHA-256.) >>> >>> C: Send(Authz Request + code_challenge,S) >>> >>> S: store code_challenge >>> S: Send(Authz Grant,C) >>> >>> C: Send(Access Token Request || code_verifier, S) >>> >>> S: Compute code_challenge':=func(code_verifier) >>> S: IF (code_challenge'==code_challenge) THEN SUCCESS ELSE FAIL. >>> >>> The document currently does not say how much entropy the random number >>> has to have. >>> >>> The text only talks about the output size and SHA-256 indeed produces a >>> 256 bit output. >>> >>> Here is the relevant text: >>> >>> " >>> NOTE: code verifier SHOULD have enough entropy to make it impractical >>> to guess the value. It is RECOMMENDED that the output of a suitable >>> random number generator be used to create a 32-octet sequence. >>> " >>> >>> I suggest to recommend at least 128 bits, which is inline with the >>> recommendations for symmetric ciphers in >>> http://tools.ietf.org/html/draft-ietf-uta-tls-bcp-07 >>> >>> I would also suggest to reference RFC 4086 concerning the creation of >>> random numbers. >>> >>> Furthermore, since you allow other hash functions to be used as well it >>> would be good to give guidance about what the properties of those hash >>> functions should be. You definitely want a cryptographic hash function >>> that provides pre-image resistance, second pre-image resistance, and >>> collision resistance. >>> >>> Given the size of the input and output it is impractical to compute a >>> table that maps code_verifies to code_challenges. >>> >>> This mechanism provides better properties than the "plain" mechanism >>> since it deals with an attacker that can see responses as well as >>> requests (but cannot modify them). It does not provide any protection >>> against a true man-in-the-middle attacker. >>> >>> Ciao >>> Hannes >>> >>> >>> _______________________________________________ >>> OAuth mailing list >>> OAuth@ietf.org >>> https://www.ietf.org/mailman/listinfo/oauth >> >
smime.p7s
Description: S/MIME cryptographic signature
_______________________________________________ OAuth mailing list OAuth@ietf.org https://www.ietf.org/mailman/listinfo/oauth