Clearly, you and I disagree about what’s broken.  The negotiation algorithms 
work as intended when fully-specified algorithm identifiers are used.  The 
thing that’s broken, as I see it, are the polymorphic algorithm identifiers.

                                                                -- Mike

From: Neil Madden <[email protected]>
Sent: Monday, May 6, 2024 1:58 PM
To: Michael Jones <[email protected]>
Cc: Karen ODonoghue <[email protected]>; JOSE WG <[email protected]>
Subject: Re: [jose] WGLC for draft-ietf-jose-fully-specified-algorithms


On 6 May 2024, at 20:32, Michael Jones 
<[email protected]<mailto:[email protected]>> wrote:
Others had also suggested something along the lines of 
“id_token_encryption_crv_values_supported”, but the problem is that that’s 
playing a game of whack-a-mole.  Yes, if the missing information to make an 
algorithm fully-specified is a curve, then this helps.  But cryptographers are 
clever (a good thing!) and regularly come up with new ways of parameterizing 
cryptographic functions.  Parameters include hash functions, key derivation 
functions, mask generation functions, curves, and more.  We could either keep 
adding ad-hoc metadata parameters for each new kind of parameterization that 
arises or we can use fully-specified algorithms.
You are suggesting cramming everything that might possibly be useful into a 
single identifier. *That* is paying whack-a-mole. What is a relevant parameter 
changes over time. Do we need to deprecate and re-register algorithms every 
time somebody decides there is a new dimension that is relevant to them? For 
example, several blockchain consensus protocols based on Ed25519 require 
additional constraints to ensure canonical signatures and public keys - does 
that need to be encoded into the algorithm identifier? EdDSA is not 
fully-specified without it!

The only entities that are guaranteed to be fully specified are keys.
The fully-specified algorithms approach works with all current 
parameterizations *and* all the new creative parameterizations that 
cryptographers will invent in the future and so is future-proof, unlike the 
keep-adding-metadata-parameters-as-needed approach.
But it *doesn’t* really work with anything other than the elliptic curve 
algorithms you are specifying. It doesn’t work for ECDH without an explosion of 
new algorithm identifiers. And if you’re only going to do it for ES* and EdDSA 
then the new metadata parameter also works just as well and doesn’t require 
causing conflicts and interoperability issues.
Obviously, hardware will and software can keep using deprecated algorithms as 
long as they choose if they continue to meet a need.  (Heck, we even registered 
the deprecated RSA-SHA-1 for COSE because TPMs use it!).  That’s reality.
But this is different. The algorithm is not deprecated, just the identifier for 
it. You are causing needless churn and incompatibility in the ecosystem just to 
change the name of an algorithm rather than fixing the broken negotiation 
mechanisms. Literally adding a single extra metadata parameter would fix all of 
the issues you’ve raised without half the pain.

— Neil

_______________________________________________
jose mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to