-
Notifications
You must be signed in to change notification settings - Fork 580
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
Enable built-in OpenSSL DH parameters to allow DHE TLS ciphers #9811
Conversation
Non-ECC DHE ciphers in the `cipher_list` attribute of `ApiListener` (the default value includes these) had no effect as no DH parameters were available and therefore the server wouldn't offer these ciphers. OpenSSL provides built-in DH parameters starting from version 1.1.0, however, these have to be enables explicitly using the `SSL_CTX_set_dh_auto()` function. This commit does so and thereby makes it possible to establish a connection to an Icinga 2 server using a DHE cipher.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This doesn't just LGTM. This is a legit additional security feature for 2.14!
For anything smaller (even 2047 bit for that matter),
Pretty convenient to see the world burning I guess.
Just wanted to contribute your idea to nginx and found this: nginx/nginx@61ec58a Please say pre-computed (as per that commit message) EDH is better than no EDH at least... 😭 |
Part of why the recommendation is to generate custom DH parameters is that many software (like nginx as you can see from the commit you linked) only allowed sufficiently large (>1024 bit) parameters by specifying the concrete parameters yourself. Yes, if you can break these fixed 3072 bit parameters, you can use it to attack many destinations, but for that size, this should be infeasible for the next years. You could use the same argument against pretty much every elliptic curve: if you could break that curve, you could break handshakes using ECDHE and that curve. These are fine as parameters and so are 3072 bit DH parameters as long as that bit size provides sufficient security margin. |
Non-ECC DHE ciphers in the
cipher_list
attribute ofApiListener
(the default value includes these) had no effect as no DH parameters were available and therefore the server wouldn't offer these ciphers. OpenSSL provides built-in DH parameters starting from version 1.1.0, however, these have to be enables explicitly using theSSL_CTX_set_dh_auto()
function. This commit does so and thereby makes it possible to establish a connection to an Icinga 2 server using a DHE cipher.Tests
Availability of DHE ciphers
Diff of sslscan between the current master and this PR running in container built using docker-icinga2 (Debian 11, OpenSSL 1.1.1n):
Full output for master
Full output for this PR
DH group size
Note that with
SSL_CTX_set_dh_auto()
, OpenSSL chooses the DH group based on the key size in the server certificate.critical/SSL: Error with public key file '/var/lib/icinga2/certs//agent-1.crt': 336245135, "error:140AB18F:SSL routines:SSL_CTX_use_certificate:ee key too small"
, which is probably good as I guess it might use a 1024 bit group otherwise.Limitations
#else
branch.refs #9809 (comment)