[openssl-users] How to disable EECDH in OpenSSL 1.0.2 and 1.1.x?

Matt Caswell matt at openssl.org
Sun Dec 2 22:48:33 UTC 2018

On 02/12/2018 22:13, Viktor Dukhovni wrote:
> [ While I could ask off-list, or RTFS, someone else might have the
>   same question later, so might as well ask on-list. ]
> Postfix added support for ECDHE ciphers long ago, back when OpenSSL
> 1.0.0 was shiny and new, and the server-side ECDHE support was
> enabled by specifying a single preferred "temp" ECDH curve.  At the
> time we allowed users to configure:
>     smtpd_tls_eecdh_grade = none | strong | ultra
> which was later expanded to:
>     smtpd_tls_eecdh_grade = none | strong | ultra | auto
> as documented at:
>     http://www.postfix.org/postconf.5.html#smtpd_tls_eecdh_grade
>     http://www.postfix.org/postconf.5.html#tls_eecdh_strong_curve
>     http://www.postfix.org/postconf.5.html#tls_eecdh_ultra_curve
>     http://www.postfix.org/postconf.5.html#tls_eecdh_auto_curves
> The "none" setting is documented to disable ECDHE, and did that by
> simply doing nothing, that is by not setting a specific ECDH temp
> curve and also not calling SSL_CTX_set_ecdh_auto().  But doing
> nothing no longer has the same effect in OpenSSL 1.1.0 and later,
> where ECDHE curve negotiation is always on, and SSL_CTX_set_ecdh_auto()
> is basically a NOOP (that returns "failure" if the requested behaviour
> is ECDHE "off").
> I thought I might get the same effect by configuring an empty curve
> list, but OpenSSL 1.1.x, does not accept an empty list, and in any
> case that might also affect DHE support, since IIRC there's now a
> unified list of curves and FFDHE groups, and may not be an interface
> for configuring just the curves?
> Is there still a way to support the "none" setting other than to
> modify the cipherlist (ciphers = "!kECDHE:...")?  The Postfix
> code that deals with DH settings is separate from the code
> that deals with ciphers, and I'd prefer to get these mixed up.

AFAIK this can't be done. If you don't want ECDHE then you should not configure
ECDHE ciphersuites.

WRT a unifed lists of curves that's not quite the case. TLSv1.3 has a single
"supported_groups" list for both FFDHE and ECDHE - but OpenSSL does not support
FFDHE in TLSv1.3 so in an OpenSSL context this still only relates to ECDHE groups.


> I should say that I understand that turning off ECDHE is increasingly
> unwise, interoperability can and will suffer.  So I may well decide
> to drop support for "none" and pretend the user meant "auto", but
> I'd like to understand the available options first.

More information about the openssl-users mailing list