IETF-SSH archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[SSH] GSS key exchange methods



Hello Curdle, and the old SSH list:
 
I forward parts of a correspondence with Mike discussing the need to address GSSAPI key exchange methods in the ssh-kex-sha2 draft:
 
 
- denis:
 
"RFC 4462 defines the following key exchange methods, which our SSH Client and Server implement. I am aware also of other implementations by other vendors, and we hear from users who use them:
 
 
The exchange methods parallel the DH key exchange methods, and are currently:
 
gss-group1-sha1-*
gss-group14-sha1-*
gss-gex-sha1-*
 
The current version of the ssh-kex-sha2 draft mentions these, but only to deprecate gss-gex-sha1-* and gss-group1-sha1-*. The draft allows gss-group14-sha1-* as a MAY, but does not define any new versions of these methods to parallel the new DH methods.
 
These key exchange methods serve a valuable role in environments where it is possible to authenticate using Kerberos, which is in Unix realms and Windows domains. The existing trust relationship between the client and the server can be used in this case, and allows for host authentication without having to set up or verify a host key on the client. This substantially improves security and usability in these environments, since lack of proper host key verification procedures is a big security risk, but their presence is a big pain point for administration. These key exchange methods avoid that problem in environments that already have an existing trust network to begin with."
 
- Mike:
 
"You make a really good point, I did leave out the GSS-API updates and only deprecated the -sha1-* entries.
 
I suspect that the same reasons we defined groups 15, 16, 17, and 18 to use sha512 would hold for gss-group* kex methods. so, adding:
 
Key Exchange Method Name              Reference     Note
gss-group14-sha256-*                  This Draft    MAY
gss-group15-sha512-*                  This Draft    MAY
gss-group16-sha512-*                  This Draft    MAY
gss-group17-sha512-*                  This Draft    MAY
gss-group18-sha512-*                  This Draft    MAY
 
would make sense."
 
-snip-
 
My proposal also included a suggestion to update the gss-gex- method. Since it seems unlikely that the GSS methods will be implemented by resource-constrained devices - in order to use this, a device would have to be part of a Unix realm or a Windows domain - I suggested gss-gex-sha512-* to provide a hash that meets the security level of any DH group.
 
Mike is currently unsure about updating gss-gex-. I don't feel strongly about this, because the DH group exchange methods are a bit of a can of worms (FIPS requires group validation that fails with deployed ephemeral groups). The main priority is that GSS methods serve a unique function, and it would provide value to maintain them.
 
For the same reasons we define the DH groups, I think it makes sense to define the above groups. However, if I needed to pick only one, my priority would be gss-group15-sha512. This is for the same reasons I prefer diffie-hellman-group15-sha512. It meets all security recommendations, both in terms of DH group size and hash size, and it is 2x faster than group 16, which has performance characteristics that begin to close the gap between denial of service and normal rate of connections on busy servers.
 
Does anyone else second these suggestions?
 
Defining this will not affect servers and clients that do not have a use for key exchange and host authentication using Kerberos. Only folks who want to use this will be affected.
 
I am aware of other implementations of these key exchange methods besides ours, including patches for popular open source software. I’m not sure if PuTTY implements them; I think it might just implement the user authentication method gssapi-with-mic. For the people who do implement this, I’m not sure if they have representation or awareness of this list.
 
denis
 


Home | Main Index | Thread Index | Old Index