Weak DH primes and openssh

Daniel Kahn Gillmor dkg at fifthhorseman.net
Fri May 29 03:12:15 AEST 2015


On Thu 2015-05-28 10:54:21 -0400, Hubert Kario wrote:
> that being said, how using NUMS seeds to generate safe prime would hurt?

I don't see how it would hurt, but i'm just pointing out that i don't
think it provides any additional defense against small subgroup attacks
once you've settled on requiring safe primes.

Of course, if you use some sort of NUMS process then you have to verify
that the NUMS process was followed as well, which adds an additional
chunk of work for anyone who is trying to do corroboration.

> also, doesn't that require us to provide primality certificates for q rather 
> than p?

Yes, if we expect to use safe primes, i think we need primality proofs
for both p and q.  For the new TLS FFDHE groups, i've posted those here:

  https://dkg.fifthhorseman.net/ffdhe-primality-proofs/

(i'm not recommending using the same groups for TLS and SSH, fwiw.
splitting the potential attack surface by application type seems like a
good thing; it adds no additional fingerprinting/metadata, because the
protocols themselves are already fingerprintable)

I guess i'd summarize the situation as:

 * NUMS requires extra work for both people who choose the moduli, and
   for corroborators (moduli.c's gen_candidates starts from BN_rand on
   line 328, so we're not even claiming to use NUMS in the current
   method)

 * primality proofs require a significant amount of extra work for
   people who choose the moduli, and some extra work for corroborators
   (verification at least)

 * even basic random M-R checks (which wouldn't defend against an
   attacker who knows how to generate strong pseudoprimes) require work
   from corroborators

 * we haven't had much public corroboration of the moduli shipped by
   default in the past (or if we have, i've missed it)

 * it's not fair to Darren and Damien that they should be single points
   of failure here.

Any thoughts on things that we might be able to improve?

    --dkg


More information about the openssh-unix-dev mailing list