-
Notifications
You must be signed in to change notification settings - Fork 29.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Weak Diffie-Hellman groups provided by crypto module #44539
Comments
-1 to removing modp2 yet, it's still used by older SSH (2.0) implementations and in some places it's the only exchange algorithm offered. |
It seems OpenSSH itself hasn't supported that since 2016:
|
Node just calls every function they can find. I've added the other ones from RFC 3526 (although some of these are *quite* large) but, for now, skipped the 768-bit and 1024-bit ones. Those are too small. See nodejs/node#44539. I've also reordered so DH_get_rfc7919_2048 is first. In so far as we want to recommend DH at all, that's probably the one to list first. Change-Id: If101b32114cc631f80ac6696733c440e222d769a Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/54305 Reviewed-by: Bob Beck <bbe@google.com> Auto-Submit: David Benjamin <davidben@google.com> Commit-Queue: Bob Beck <bbe@google.com>
That's for the group exchange, which is separate from the modp-based algorithms. Specifically, the modp2-based algorithm is called |
I remember being mildly apprehensive when they were added back in 2012, modp1 in particular. I'm feeling vindicated now. What is an acceptable way forward? Remove modp1 and doc-deprecate (or runtime deprecate?) the other two? I'm sympathetic to @mscdex's concern w.r.t. ssh but if working on open source has taught me one thing, it's that users never read the documentation. |
As a first, small step toward deprecating modp1, stop using it in an example that users might copy. Refs: nodejs#44539
These MODP groups should not be used by new applications, and existing applications should attempt to migrate to stronger groups (or different key exchange mechanisms). Some applications still rely on these particular groups, so Node.js will likely maintain support, directly or indirectly, for the foreseeable future. Refs: nodejs#44539
FWIW, that's not entirely accurate. I only recently wrote that part of code to replace a large header file that previously explicitly specified all of these groups. In other words, until recently, the MODP implementation in node did not use any constants provided by OpenSSL :)
Let's add a documentation-only deprecation for all three groups as a first step, which is not a semver-major change and can thus land and be released quickly: #44588 |
Warning about or outright removing modp1 is not semver-major under the security exception. I don't expect huge ecosystem fallout, there's probably very little software that would be affected. |
These MODP groups should not be used by new applications, and existing applications should attempt to migrate to stronger groups (or different key exchange mechanisms). Some applications still rely on these particular groups, so Node.js will likely maintain support, directly or indirectly, for the foreseeable future. Refs: nodejs#44539
These MODP groups should not be used by new applications, and existing applications should attempt to migrate to stronger groups (or different key exchange mechanisms). Some applications still rely on these particular groups, so Node.js will likely maintain support, directly or indirectly, for the foreseeable future. Refs: nodejs#44539
These MODP groups should not be used by new applications, and existing applications should attempt to migrate to stronger groups (or different key exchange mechanisms). Some applications still rely on these particular groups, so Node.js will likely maintain support, directly or indirectly, for the foreseeable future. Refs: nodejs#44539
These MODP groups should not be used by new applications, and existing applications should attempt to migrate to stronger groups (or different key exchange mechanisms). Some applications still rely on these particular groups, so Node.js will likely maintain support, directly or indirectly, for the foreseeable future. Refs: #44539 PR-URL: #44588 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Rich Trott <rtrott@gmail.com>
As a first, small step toward deprecating modp1, stop using it in an example that users might copy. Refs: nodejs#44539 PR-URL: nodejs#44585 Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: theanarkh <theratliter@gmail.com> Reviewed-By: Rich Trott <rtrott@gmail.com>
These MODP groups should not be used by new applications, and existing applications should attempt to migrate to stronger groups (or different key exchange mechanisms). Some applications still rely on these particular groups, so Node.js will likely maintain support, directly or indirectly, for the foreseeable future. Refs: nodejs#44539 PR-URL: nodejs#44588 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Rich Trott <rtrott@gmail.com>
These MODP groups should not be used by new applications, and existing applications should attempt to migrate to stronger groups (or different key exchange mechanisms). Some applications still rely on these particular groups, so Node.js will likely maintain support, directly or indirectly, for the foreseeable future. Refs: #44539 PR-URL: #44588 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Rich Trott <rtrott@gmail.com>
These MODP groups should not be used by new applications, and existing applications should attempt to migrate to stronger groups (or different key exchange mechanisms). Some applications still rely on these particular groups, so Node.js will likely maintain support, directly or indirectly, for the foreseeable future. Refs: #44539 PR-URL: #44588 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Rich Trott <rtrott@gmail.com>
These MODP groups should not be used by new applications, and existing applications should attempt to migrate to stronger groups (or different key exchange mechanisms). Some applications still rely on these particular groups, so Node.js will likely maintain support, directly or indirectly, for the foreseeable future. Refs: #44539 PR-URL: #44588 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Rich Trott <rtrott@gmail.com>
These MODP groups should not be used by new applications, and existing applications should attempt to migrate to stronger groups (or different key exchange mechanisms). Some applications still rely on these particular groups, so Node.js will likely maintain support, directly or indirectly, for the foreseeable future. Refs: #44539 PR-URL: #44588 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Rich Trott <rtrott@gmail.com>
These MODP groups should not be used by new applications, and existing applications should attempt to migrate to stronger groups (or different key exchange mechanisms). Some applications still rely on these particular groups, so Node.js will likely maintain support, directly or indirectly, for the foreseeable future. Refs: #44539 PR-URL: #44588 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Rich Trott <rtrott@gmail.com>
These MODP groups should not be used by new applications, and existing applications should attempt to migrate to stronger groups (or different key exchange mechanisms). Some applications still rely on these particular groups, so Node.js will likely maintain support, directly or indirectly, for the foreseeable future. Refs: #44539 PR-URL: #44588 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Rich Trott <rtrott@gmail.com>
Node just calls every function they can find. I've added the other ones from RFC 3526 (although some of these are *quite* large) but, for now, skipped the 768-bit and 1024-bit ones. Those are too small. See nodejs/node#44539. I've also reordered so DH_get_rfc7919_2048 is first. In so far as we want to recommend DH at all, that's probably the one to list first. Change-Id: If101b32114cc631f80ac6696733c440e222d769a Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/54305 Reviewed-by: Bob Beck <bbe@google.com> Auto-Submit: David Benjamin <davidben@google.com> Commit-Queue: Bob Beck <bbe@google.com> (cherry picked from commit 1106836aa99c08d0b709219889d364a4c855d3c9)
Node just calls every function they can find. I've added the other ones from RFC 3526 (although some of these are *quite* large) but, for now, skipped the 768-bit and 1024-bit ones. Those are too small. See nodejs/node#44539. I've also reordered so DH_get_rfc7919_2048 is first. In so far as we want to recommend DH at all, that's probably the one to list first. Change-Id: If101b32114cc631f80ac6696733c440e222d769a Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/54305 Reviewed-by: Bob Beck <bbe@google.com> Auto-Submit: David Benjamin <davidben@google.com> Commit-Queue: Bob Beck <bbe@google.com> (cherry picked from commit 1106836aa99c08d0b709219889d364a4c855d3c9)
These MODP groups should not be used by new applications, and existing applications should attempt to migrate to stronger groups (or different key exchange mechanisms). Some applications still rely on these particular groups, so Node.js will likely maintain support, directly or indirectly, for the foreseeable future. Refs: #44539 PR-URL: #44588 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Rich Trott <rtrott@gmail.com>
These MODP groups should not be used by new applications, and existing applications should attempt to migrate to stronger groups (or different key exchange mechanisms). Some applications still rely on these particular groups, so Node.js will likely maintain support, directly or indirectly, for the foreseeable future. Refs: #44539 PR-URL: #44588 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Rich Trott <rtrott@gmail.com>
These MODP groups should not be used by new applications, and existing applications should attempt to migrate to stronger groups (or different key exchange mechanisms). Some applications still rely on these particular groups, so Node.js will likely maintain support, directly or indirectly, for the foreseeable future. Refs: #44539 PR-URL: #44588 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Rich Trott <rtrott@gmail.com>
Node just calls every function they can find. I've added the other ones from RFC 3526 (although some of these are *quite* large) but, for now, skipped the 768-bit and 1024-bit ones. Those are too small. See nodejs/node#44539. I've also reordered so DH_get_rfc7919_2048 is first. In so far as we want to recommend DH at all, that's probably the one to list first. Change-Id: If101b32114cc631f80ac6696733c440e222d769a Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/54305 Reviewed-by: Bob Beck <bbe@google.com> Auto-Submit: David Benjamin <davidben@google.com> Commit-Queue: Bob Beck <bbe@google.com> (cherry picked from commit 1106836aa99c08d0b709219889d364a4c855d3c9)
As a first, small step toward deprecating modp1, stop using it in an example that users might copy. Refs: nodejs/node#44539 PR-URL: nodejs/node#44585 Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: theanarkh <theratliter@gmail.com> Reviewed-By: Rich Trott <rtrott@gmail.com>
These MODP groups should not be used by new applications, and existing applications should attempt to migrate to stronger groups (or different key exchange mechanisms). Some applications still rely on these particular groups, so Node.js will likely maintain support, directly or indirectly, for the foreseeable future. Refs: nodejs/node#44539 PR-URL: nodejs/node#44588 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Rich Trott <rtrott@gmail.com>
As a first, small step toward deprecating modp1, stop using it in an example that users might copy. Refs: nodejs/node#44539 PR-URL: nodejs/node#44585 Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: theanarkh <theratliter@gmail.com> Reviewed-By: Rich Trott <rtrott@gmail.com>
These MODP groups should not be used by new applications, and existing applications should attempt to migrate to stronger groups (or different key exchange mechanisms). Some applications still rely on these particular groups, so Node.js will likely maintain support, directly or indirectly, for the foreseeable future. Refs: nodejs/node#44539 PR-URL: nodejs/node#44588 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Rich Trott <rtrott@gmail.com>
Node exposes various IKE MODP groups. It appears the list was chosen by exporting every group provided by OpenSSL:
https://github.com/nodejs/node/blob/main/src/crypto/crypto_dh.cc#L222-L229
https://nodejs.org/api/crypto.html#class-diffiehellmangroup
However, some of these groups are too small to be used. See RFC 8247, section 2.4:
These are all exposed by Node as "modp1", "modp2", and "modp5". The documentation should reflect their status and they should be deprecated and removed, especially modp1.
The text was updated successfully, but these errors were encountered: