Hi Neil,

thanks for your feedback! The security considerations are certainly far from complete in this first draft (and didn't intend to be). Your comments will help us to improve this part of the draft.

Am 23.06.22 um 20:52 schrieb Neil Madden:
I’m not entirely sure the OAuth WG is a suitable venue for this kind of document. It should at least get some review from CFRG, to get feedback on the crypto aspects.

That would certainly be appropriate!


I have some initial comments about the cryptography being used.

Commitments to claim values are of the form HASH(SALT | CLAIM-VALUE), but this does not necessarily commit the sender to CLAIM-VALUE. In section 7.4, I think you need to say that HASH must be collision resistant - otherwise the user can find two (salt, claim-value) pairs that collide and get the issuer to sign one and then reveal the other pair to the downstream party.
+1

The fact that HASH(SALT | CLAIM-VALUE) is vulnerable to length extension attacks is also troubling, even if I can’t see an immediate attack. But it’s a weird property that Bob, for example, could make a commitment to some extension of one of Alice’s claims without actually knowing her claim value.
That would mean the Bob would need to be an issuer in this case?

You can address both of these issues by instead using a compactly committing PRF [1], such as HMAC- i.e., HMAC-HASH(SALT, CLAIM-VALUE) rather than simple prefix hash.
Given the advantages, we will consider using an HMAC.

It doesn’t seem great to say that you can use any hash algorithm in the IANA registry, but then to rule out half of them as being not suitable in the security considerations - this list may go out of date as other hash algorithms are broken. Is it possible to update the IANA registry with a Recommended Y/N column? Also, shake128 and shake256 are not collision-resistant hash functions, they are XOFs that can produce any length of output - e.g. shake128 with a 32-bit output would not be collision-resistant and thus would not be at all suitable for this usage. Given these considerations, I might be tempted to create a new IANA registry, or perhaps just pick one good hash function. (Or maybe just use the same hash algorithm as the signature?)

I don't know of such a registry, but I'm certain the current limitations in our spec are not sufficient and we need to improve this.

-Daniel

_______________________________________________
OAuth mailing list
OAuth@ietf.org
https://www.ietf.org/mailman/listinfo/oauth

Reply via email to