IETF-SSH archive

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

Re: Proposal and intent to implement "dsa-sha2-256" SSH key algorithm



If proceeding with this, it'd be good to pass it by the
CFRG [1] list for comment.

For example, in discussion of signature schemes based on
new curves, CFRG recently preferred deterministic signatures,
I'm not sure whether this proposal is the same i that respect
or not.

Cheers,
S.

[1] https://irtf.org/cfrg

On 27/10/15 22:50, denis bider wrote:
> Hey everyone,
> 
> so, over the past several years, it looks like everyone has proverbially screwed the pooch with regard to plain old DSA key sizes larger than 1024 bits.
> 
> OpenSSH is now going so far as to have dropped ssh-dss in its default  configuration, which is reasonable, given that this algorithm is now only useful  for 1024-bit DSA.
> 
> Everyone is migrating now to ECDSA over NIST curves or Ed25559,  which is all nice and well - these appear to be strong algorithms,  according to information available at this time.
> 
> Still, I think it's a pity for larger DSA keys to never have had a chance; but more than sentimentalism, I think we're losing out on heterogeneity and backup options in case something, anything, turns out to be wrong in Elliptic Curve territory.
> 
> Now, if we want to agree on some way to implement large DSA keys, the "ssh-dss" algorithm name is tainted for use with larger key sizes, because there are implementations out there that implement them in incompatible ways:
> 
> - There were older versions of OpenSSL and OpenSSH that implemented 2048-bit modulus, but kept 160-bit subgroup. This did not effectively increase the security of the scheme, compared to 1024-bit modulus.
> 
> - Our (Bitvise) implementation predates FIPS 186-3 by a year. It supports a larger modulus, and appropriately larger subgroups, BUT continues to use SHA-1 as the hash function. After FIPS 186-3, other implementations of larger DSA keys, such as Windows CNG, support the larger DSA keys in conjunction with SHA-2.
> 
> - A majority of other "ssh-dss" implementations support only 1024-bit key sizes, and can't verify signatures with larger DSA keys under that scheme.
> 
> Larger DSA keys need a new scheme name for compatibility reasons.
> 
> I therefore suggest a new SSH key algorithm, dsa-sha2-256, which cherry-picks from FIPS 186-3 the following two options:
> 
> L = 2048, N = 256
> L = 3072, N = 256
> 
> In other words:
> - modulus size is either 2048 or 3072
> - subgroup size is 256 bits
> - hash function is SHA2-256
> 
> I choose the name "dsa-sha2-256", rather than a suffixed name ("...@bitvise.com") for the following reasons:
> 
> - Suffixed names are overly long and clumsy. If I were to choose a suffixed name instead, I would go with just "...@bv".
> 
> - Suffixed names complicate standardization. If a suffixed algorithm is commonly implemented, there's pressure to have a version with a non-suffixed name, and now we have multiple names for the same thing.
> 
> - I don't see many ways for "dsa-sha2-256" to be implemented incorrectly or incompatibly by a reasonable implementor. There's really only one DSA, the one specified in FIPS 186. This has four variants. The suffix -sha2-256 explicitly specifies which hash function to use, and strongly suggests use of the 256-bit subgroup sizes.
> 
> Unless someone has a strong and reasonable objection, I intend to  implement this for Bitvise SSH Client and Server 7.xx as described above.
> 
> Comments welcome.
> 
> 



Home | Main Index | Thread Index | Old Index