On Thu, Oct 15, 2015 at 12:17 PM, Dave Garrett <davemgarr...@gmail.com>
wrote:

> On Thursday, October 15, 2015 09:09:39 am Ilari Liusvaara wrote:
> > So, there are four primitives: Ed25519, Ed25519ph, Ed448 and
> > Ed448ph. And keys MUST NOT be mixed between those.
> >
> > I propose the following:
> > - EdDSA uses one SignatureAlgorithm value (5?[1]).
> > - There will be new curves for EdDSA, one for Ed25519/Ed25519ph and
> >   another for Ed448/Ed448ph
> > - If there is ever EdDSA instantiation with Edwards448 curve (the same
> >   one Ed448 uses) with another KDF, it gets a new curve distinct from
> >   Ed448/Ed448ph.
> > - The HashAlgorithm is always 0, or the HashAlgorithm is always 0 or
> >   value matching the prehash (but the prehash is always done once[2]).
> >   [TBD: resolve this]
>
> I've been thinking about the issue of how to handle
> SignatureAndHashAlgorithm values better. I think this time, I'd like to
> propose going the opposite way we'd normally want to move: let's consider
> enumerating all combinations of HashAlgorithm+SignatureAlgorithm instead of
> having independent values. We're moving to signature algorithms that don't
> have arbitrary hashes, so the current system isn't really ideal anymore.
>
> Current draft:
> https://tools.ietf.org/html/draft-ietf-tls-tls13-09#section-6.3.2.1
> (text)
> https://tools.ietf.org/html/draft-ietf-tls-tls13-09#page-88  (full
> registry)
> ----------------------------------------
> enum {
>     none(0),
>     md5_RESERVED(1),
>     sha1(2),
>     sha224_RESERVED(3),
>     sha256(4), sha384(5), sha512(6),
>     (255)
> } HashAlgorithm;
>
> enum {
>     anonymous_RESERVED(0),
>     rsa(1),
>     dsa(2),
>     ecdsa(3),
>     rsapss(4),
>     (255)
> } SignatureAlgorithm;
>
> struct {
>     HashAlgorithm hash;
>     SignatureAlgorithm signature;
> } SignatureAndHashAlgorithm;
> ----------------------------------------
>
> Proposed replacement backwards-compatible registry:
> ----------------------------------------
> struct {
>     anonymous_RESERVED(0x0000),
>     rsa_nohash(0x0001),
>     dsa_nohash(0x0002),
>     ecdsa_nohash(0x0003),
>     rsapss_nohash(0x0004),
>     md5_RESERVED (0x0100..0x01FF),
>     rsa_sha1(0x0201),
>     dsa_sha1(0x0202),
>     ecdsa_sha1(0x0203),
>     rsapss_sha1(0x0204),
>     sha224_RESERVED (0x0300..0x03FF),
>     rsa_sha256(0x0401),
>     dsa_sha256(0x0402),
>     ecdsa_sha256(0x0403),
>     rsapss_sha256(0x0404),
>     rsa_sha384(0x0501),
>     dsa_sha384(0x0502),
>     ecdsa_sha384(0x0503),
>     rsapss_sha384(0x0504),
>     rsa_sha512(0x0601),
>     dsa_sha512(0x0602),
>     ecdsa_sha512(0x0603),
>     rsapss_sha512(0x0604),
>     (0xFFFF)
> } SignatureAndHashAlgorithm;
> ----------------------------------------
>
> New values could be assigned specific combinations as needed. This would
> also let hashes & signatures be deprecated independently easily, e.g. allow
> rsa_sha1 but prohibit rsapss_sha1 (it's new, so it probably should be from
> the start).


I am not in favor of this change. Because we can already indicate
combinations, this
doesn't seem to add significant new value. If we need to indicate
"signature algorithm
without a hash" then a "none" hash is the simplest solution.

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

Reply via email to