Bug 55915

Summary: Add ECDHE support to tcnative-1.dll
Product: Tomcat Native Reporter: Ognjen Blagojevic <ognjen.d.blagojevic>
Component: LibraryAssignee: Tomcat Developers Mailing List <dev>
Status: CLOSED FIXED    
Severity: normal    
Priority: P2    
Version: 1.1.29   
Target Milestone: ---   
Hardware: All   
OS: All   
Attachments: Add ECDHE support to Tomcat Native.

Description Ognjen Blagojevic 2013-12-20 12:44:32 UTC
EECDH (Ephemeral elliptic-curve Diffie-Hellman) protocol is useful for enabling Forward Secrecy and for preventing certain attacks.

EECDH support exists in official OpenSSL since version 1.0.0. Note that RHEL / CentOS did not include EECDH due to patent concerns until recently [1], but that issue is now resolved, and EECDH is included since RHEL / CentOS version 6.5.

Tcnative Windows binary seems to lack support for EECDH, also. I don't know why, but I guess it is due to following RedHat decisions on EECDH support in OpenSSL for RHEL.

Since RedHat resolved aforementioned issue, and included EECDH support in OpenSSL RPMs, is it possible that developers/packagers of Tomcat native also add EECDH support to the Windows binary (tcnative-1.dll)?


[1] https://bugzilla.redhat.com/show_bug.cgi?id=319901
Comment 1 Mike Noordermeer 2014-02-04 22:35:18 UTC
Created attachment 31283 [details]
Add ECDHE support to Tomcat Native.

It's not just the Windows binary, the source is also missing the required call to SSL_CTX_set_tmp_ecdh() on other platforms.

A minimal patch to enable ECDHE using the NIST P256 EC is attached. If the EC has to be user selectable, adding it to TC Native will probably require some more work (but since the DH params are fixed too, I think this should suffice). 

It may also be necessary to add a call to SSL_set_tmp_ecdh() in sslnetwork.c, but I'm not sure how that will be used.
Comment 2 Jeffrey.Janner 2014-04-08 22:09:31 UTC
I just wanted to an importance stress to this bug.
At this time, support for ECDHE is the only way to get Forward Secrecy support with Internet Explorer browsers. Firefox, Chrome, and Safari (and others) will at least do regular DHE ciphers if available.
Comment 3 Mladen Turk 2014-04-09 07:24:53 UTC
New versions will be configured at build time using
perl Configure enable-ecdh enable-ec enable-ecdsa ...
Comment 4 Mladen Turk 2014-04-09 07:36:26 UTC
Patch applied.
Resolving, but will need to verify the functionality.
Comment 5 Jeffrey.Janner 2014-04-10 15:17:44 UTC
Wanted to report that the Qualys SSL Labs' SSl test tool is now reporting that, with this version, the ECDHE ciphers are available and will be used by the IE releases that support them (not IE8/XP does not). In fact, I am now getting an A rating on the tool and all major browsers are shown to use a cipher that offers Forward Secrecy.
Thanks for quickly addressing this one.
Comment 6 Ognjen Blagojevic 2014-05-21 09:42:52 UTC
I also tested 1.1.30 that is released at 10.4.2014, and I am able to use EECDH ciphers now. Thank you.