Re: SSH key algorithm updates

[email protected] (Niels Möller)
Newsgroups gmane.ietf.secsh
Message-ID <[email protected]>
Jeffrey Hutzelman <[email protected]> writes:

> To summarize the changes, I propose:

I think this makes sense. I've been a bit out of the loop for this, wit
lsh being a mostly dormant project, but I'd like to offer my comments.
My apologies if I misremember some relevant details.

> For public key algorithms:
> - Downgrade ssh-dss, pgp-sign-dss, and x509v3-ssh-dss to NOT
> RECOMMENDED.
> - Upgrade ssh-rsa to REQUIRED

ssh-rsa is sha1 only, right? It's still stronger than ssh-dss (since it
allows larger keys), so if we want a widely deployed algorithm to
replace ssh-dss as REQUIRED, it makes sense. But defining ssh-sha256-rsa
as RECOMMENDED would make sense too.

And when it comes to sha1 weaknesses, using sha1 with a signature
algorithm seems more dangerous than using it for hmac or for key
expansion.

> - Upgrade ecdsa-sha2-* to RECOMMENDED
> - Add dsa-sha2-256 as RECOMMENDED

I have no strong opinion on whether these should be recommended or
optional. I think there are quite strong reasons to prefer deterministic
algorithms, but that's more a question of a recommendation for the
implementation, since it's not really visible on the wire what method
was used to produce the nonce.

> For MAC algorithms:
> - Upgrade hmac-sha2-256 to REQUIRED
> - Consider upgrading hmac-sha2-512 to RECOMMENDED
> - Downgrade hmac-md5 and hmac-md5-96 to NOT RECOMMENDED
> - Downgrade hmac-sha1-96 to NOT RECOMMENDED
> - Consider downgrading hmac-sha1 to RECOMMENDED
>
> HMAC-SHA1 is not (yet) considered insecure, it has been SSHv2's only
> required algorithm since RFC 425x were published, and it is probably the
> most widely deployed.  So, we should not downgrade it below RECOMMENDED.
> However, I think a case can be made for hmac-sha2-256 replacing it as
> the REQUIRED algorithm, if we think that has gained enough traction.

My understanding is that there are no known attacks on hmac-sha1, and
that the attacks on non-keyed hashfunctions in the family don't apply.
Is there any likely harm in keeping it as required for another decade?

> For encryption algorithms:
> - Upgrade aes128-ctr to REQUIRED
> - Consider downgrading 3des-cbc to RECOMMENDED
> - Downgrade all other *-cbc algorithms to NOT RECOMMENDED
> - Do we want to say anything about IDEA, CAST, or RC4?

The last 3 seem fairly irrelevant now. We could specify salsa20 or
chacha, to replace rc4 for high-performance use-cases.

> I chose aes128-ctr because RFC4253 listed aes128-cbc as
> RECOMMENDED while leaving the other sizes OPTIONAL.  I suspect this was
> done because at the time, some folks did not want to ship AES256 due to
> export restrictions and/or lack of utility.

What about the key-setup problems in aes256? I seem to recall that it's
not as much better than aes128 as was intended.

> We may wish to consider leaving 3des-cbc at SHOULD,

I think that makes sense, if the main problem with 3des is performance
rather than security.

> Finally, for key exchange algorithms:
> - Upgrade diffie-hellman-group-exchange-sha256 to REQUIRED
> - Upgrade ecdh-sha2-* to RECOMMENDED
> - Consider downgrading diffie-hellman-group14-sha1 to RECOMMENDED
> - Downgrade other diffie-hellman-*-sha1 to NOT RECOMMENDED
> - Downgrade rsa1024-sha1 to NOT RECOMMENDED

> Again, eliminating the SHA1-based DH algorithms in favor of GEX SHA256
> should be obvious,

I don't think choosing group-exchange is obvious; using a fixed group is
an obvious gain in terms of simplicity. Personally, I don't quite like
the complexity and validation issues with group-exchange (but maybe I
could be convinced it's no problem). So I hesitate to make it the
reqiured algorithm.

Why don't you like diffie-hellman-group14-sha1 as required? Is that group
considered too small these days, or is sha1 considered too weak for this
use?

To me it would make sense to also define diffie-hellman-group14-sha256 and/or
diffie-hellman-curve25519, but they can't be candidates for required  at
this time.

>> Or, is this better left to another RFC? Perhaps moving the Ed25519
>> algorithm created by
>> 
>>   https://tools.ietf.org/html/draft-irtf-cfrg-eddsa-00 
>> 
>> into a MUST algorithm while deprecating "ssh-dss" for SSH?
>
> That's an unfinished, -00 version internet draft from CFRG. 

Is that related to the (now expireed, I think) draft I and Simon wrote
some time ago? I'm not following the cfrg work.

I think it would also be highly desirable to standardize use of
aead-algorithms. But as far as I remember, from last time this was
discussed, it was tricky to extend the algorithm negotiation in a clean
way. (And I'd like to do chacha-poly1305 sligthly different from the way
openssh does it, but we can get to that in due time).

So specifying AEAD is a different and harder problem than just updating
the list of recommended algorithms.

Regards,
/Niels

-- 
Niels Möller. PGP-encrypted email is preferred. Keyid C0B98E26.
Internet email is subject to wholesale government surveillance.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.