Hi Orie,

I am not sure whether the comparison between JOSE/COSE and TLS is
appropriate when the latter uses a handshake and the former is a
one-shot message (or a payload).

In a TLS handshake there are so many things that get negotiated, such as
the algorithms and parameters for protecting the record layer (e.g.
TLS_AES_128_GCM_SHA256), the curve and parameters of the key share (e.g.
secp256r1), the digital signature algorithms (like
ecdsa_secp256r1_sha256) used in the handshake and the signature
algorithm used for cerificates, version, extensions and other features.

On top of the above, the design has a long history and didn't radically
change from version to version (except for the cipershite that was
changed to separate the authentication and key exchange mechanism from
the symmetric key algorithm and hash function used at the record layer).


Hence, I am not sure what the benefit of aligning the registries are. To
me, this entire ciphersuite vs. à la carte discussion is largely a
matter of taste.


Ciao
Hannes

PS: Regarding your question below about "I see that "ed25519(0x0807),"
could have been "eddsa_ed25519", and I assume "0x0807" actually means
"eddsa with ed25519", and "0x0808" actually means "eddsa with ed448".
Since these values are in the signature algorithm registry, those are
could have been prefixed with "eddsa".


Am 06.01.2024 um 15:49 schrieb Orie Steele:
Hello,

Apologies in advance for starting a thread about the proper way to
name things.

We've been discussing the TLS naming conventions in relation to JOSE
and COSE naming conventions for suites.

Here is the start of the full thread:
https://mailarchive.ietf.org/arch/msg/jose/66xvb1EgD-bf7V-XyAgDgRuUTJk/

We've been comparing "trends in suite names", between TLS, JOSE and COSE.

For example, we see the following:

          /* ECDSA algorithms */
          ecdsa_secp256r1_sha256(0x0403),
          ecdsa_secp384r1_sha384(0x0503),
          ecdsa_secp521r1_sha512(0x0603),

         /* EdDSA algorithms */
          ed25519(0x0807),
          ed448(0x0808),


In JOSE, ES256 means ~ " ecdsa_secp256r1_sha256(0x0403),"
In COSE, ES256 means ~ "ecdsa with some curve + sha256"

In JOSE, EdDSA means ~ "EdDSA with some curve"
in COSE, EdDSA means ~ "EdDSA with some curve"

This draft is in call for adoption, and argues for a convention:
https://datatracker.ietf.org/doc/draft-jones-jose-fully-specified-algorithms/

The convention is essentially, when we "name a suite", it should fully
specify all the parameters.

"ecdsa_secp256r1_sha256" is fully specified... "eddsa" or "ecdsa with
sha256" is not (curve parameter is not specified).

In the thread, Neil said that it is better to negotiate for
key (representations), instead of algorithms, and that TLS has been
moving away from fully specifying things.

I see that "ed25519(0x0807)," could have been "eddsa_ed25519", and I
assume "0x0807" actually means "eddsa with ed25519", and "0x0808"
actually means "eddsa with ed448".

I don't expect a hash function here, because I know SHA-512 is used
internally.

Key representations in JOSE and COSE have parameters, and one
parameter is the "alg" field, which restricts the use of the key.

In the case of a fully specified algorithm, this "alg" parameter
contains redundant information to the other key parameters.
In the case of a partially specified algorithm, this "alg" parameter
contains non redundant information (such as dsa and hash, there are
curves that support multiple dsas, and of course everyone has a
favorite hash function).

Neil also made several compelling arguments not to adopt the draft
because fully specified identifiers for partially specified things are
already partially understood.

Assuming we dropped new registrations, and just made recommendations
for how to specify algorithms, how might JOSE and COSE align our
registry guidance with the current thinking in TLS?

Should we recommend against fully specifying things, and argue that
negotiation should be for keys, not algorithms, and keys can choose to
restrict to achieve full specification?

Should we recommend fully specifying things, and then decide if
redundant code points should also be assigned, or if the guidance
should just be forward facing?

Regards,

OS

--


ORIE STEELEChief Technology Officerwww.transmute.industries

<https://transmute.industries>


_______________________________________________
TLS mailing list
TLS@ietf.org
https://www.ietf.org/mailman/listinfo/tls
_______________________________________________
TLS mailing list
TLS@ietf.org
https://www.ietf.org/mailman/listinfo/tls

Reply via email to