bsmith: the Diffie-Hellman private keys generated by NSS
are hardcoded to be 160 bits long:
http://bonsai.mozilla.org/cvsblame.cgi?file=mozilla/security/nss/lib/freebl/dh.c&rev=1.11&mark=24#24

The private key length should be the same as the length of the
q parameter.  So for a 2048-bit p, q should be either 224 or
256 bits.  A 160-bit q is only appropriate for a 1024-bit p.

Private key length should max out at 512 bits (at the 256-bit
security level).

We can come up with a step function that returns these discrete
private key lengths depending on the size of p:
160 bits
224 bits
256 bits
384 bits
512 bits

See NIST SP 800-57, Table 2 and http://www.keylength.com/en/4/

-- 
You received this bug notification because you are a member of Desktop
Packages, which is subscribed to thunderbird in Ubuntu.
https://bugs.launchpad.net/bugs/1002434

Title:
  TLS interoperability issue in NSS based software

Status in Network Security Services (NSS):
  In Progress
Status in Mozilla Thunderbird Mail and News:
  In Progress
Status in “firefox” package in Ubuntu:
  Triaged
Status in “nss” package in Ubuntu:
  Triaged
Status in “thunderbird” package in Ubuntu:
  Triaged

Bug description:
  NSS (Netscape Security Services) module provides encryption services
  to many applications, such as Thunderbird, Firefox and Chromium. NSS
  has a hard coded maximum limit of 2236 bits for ephemeral Diffie-
  Hellman (DHE) keys. If the TLS server (such as a web server, SMTP
  server, IMAP server, etc) requests a bigger DHE key size, NSS based
  applications refuse to interoperate. They just close the connection
  and display a confusing error message (such as "Unknown error").

  Recent versions of GnuTLS (as shipped by Ubuntu and other
  distributions) include a new library API which recommends and
  automatically selects the following key sizes:

  Security level         key bits

  LOW                         1248
  LEGACY                   1776
  NORMAL                 2432
  HIGH                         3248

  See the following for more information:
  https://www.gnu.org/software/gnutls/manual/html_node/Selecting-
  cryptographic-key-sizes.html

  As can be seen, NSS's maximum limit of 2236 bits can only interoperate
  with GnuTLS server which has been set at "LOW" or "LEGACY" security
  level.

  This bug was discovered when Exim's GnuTLS interface was revamped
  recently. Thunderbird refused to complete TLS handshake with the Exim
  SMTP server any more, because the new GnuTLS interface was following
  the GnuTLS library's opinion on suitable key sizes.

  Please patch the NSS library to accept reasonable key sizes: at the
  very least 3248 bits should be accepted to allow interoperability with
  GnuTLS at HIGH level. NSS is the only TLS library which has such a low
  hard limit on DHE key size.

  The only reason people are not hitting this bug frequently yet is that
  most main stream server software still does not use GnuTLS library's
  new API or recommendations but instead hard codes the DHE key size to
  1024 or 2048 bits.

  I am attaching a patch which points out the relevant #define in
  blapit.h.

To manage notifications about this bug go to:
https://bugs.launchpad.net/nss/+bug/1002434/+subscriptions

-- 
Mailing list: https://launchpad.net/~desktop-packages
Post to     : desktop-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~desktop-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to