Bug 1316377

Summary: IO::Socket::SSL does not support ECDHE
Product: Red Hat Enterprise Linux 7 Reporter: Karel Srot <ksrot>
Component: perl-IO-Socket-SSLAssignee: perl-maint-list
Status: CLOSED ERRATA QA Contact: Karel Srot <ksrot>
Severity: medium Docs Contact: Lenka Špačková <lkuprova>
Priority: high    
Version: 7.2CC: antti, ddas, gabe.fahl, hkario, jorton, jplesnik, lkuprova, ovasik, perl-maint-list, ppisar, psabata, salmy, szidek, tmraz
Target Milestone: rcKeywords: FutureFeature, Patch
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: perl-IO-Socket-SSL-1.94-5.el7 Doc Type: Enhancement
Doc Text:
Perl *IO::Socket::SSL* now supports ECDHE Support for Elliptic Curve Diffie–Hellman Exchange (ECDHE) has been added to the *IO::Socket::SSL* Perl module. The new `SSL_ecdh_curve` option can be used for specifying a suitable curve by the Object Identifier (OID) or Name Identifier (NID). As a result, it is now possible to override the default elliptic curve parameters when implementing a TLS client using *IO::Socket:SSL*.
Story Points: ---
Clone Of: 1078084 Environment:
Last Closed: 2016-11-04 00:22:29 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 1316379    
Bug Blocks:    
Attachments:
Description Flags
Upstream support for ECDH key exchange ported to 1.94 none

Description Karel Srot 2016-03-10 06:32:36 UTC
RHEL-7 version doesn't support ECDHE while it is being added to RHEL-6.8

+++ This bug was initially created as a clone of Bug #1078084 +++

[...]
--- Additional comment from Deepak Das on 2014-02-27 08:45:44 GMT ---

The issue is not from openssl end. The issue seems to be on perl side. 

During ssl handshake "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA" cipher was selected. It seems perl shipped with RHEL 6.5 does not have support to handle ECDHE based connection.

When following cpan modules were installed in perl the issue got resolved.

  1) cpan  Net::SSLeay

  2) cpan  IO::Socket::SSL

--- Additional comment from Tomas Mraz on 2014-02-27 09:49:01 GMT ---

This is fairly strange as the TLS client side should not require any code changes for ECDHE support. Perhaps just rebuild of these perl packages would help?
Reassigning.

--- Additional comment from Petr Pisar on 2014-02-27 10:22:43 GMT ---

Rebuild is not enough. One has to add the support to the binding and upper layers.

Support for ECDH has been added by upstream in IO-Socket-SSL-1.955 and Net-SSLeay-1.56.

RHEL-6 delivers perl-IO-Socket-SSL-1.31-2.el6 and perl-Net-SSLeay-1.35-9.el6.

[...]
--- Additional comment from Petr Pisar on 2014-03-19 06:54:38 GMT ---

There is definitely the problem that Perl TLS libraries as delivered by Red Hat Enterprise Linux 6 now do not support ECDHE. We will focus on this issue first.

We need to port the support available from latest version as described in comment #19.
----

IO::Socket:SSL as layer above Net::SSLeay has to be fixed too.

The reproducer is t/ecdhe.t from recent IO-Socket-SSL test suite <http://cpansearch.perl.org/src/SULLR/IO-Socket-SSL-1.969/t/ecdhe.t>.

Comment 1 Karel Srot 2016-03-10 06:42:21 UTC
RHEL-6 bug also depends on bug 1078301. I don't know if such a change is needed for RHEL-7 too, please double check that.

Comment 2 Jitka Plesnikova 2016-03-10 14:39:23 UTC
Created attachment 1134908 [details]
Upstream support for ECDH key exchange ported to 1.94

Comment 3 Jitka Plesnikova 2016-03-10 14:47:47 UTC
(In reply to Karel Srot from comment #1)
> RHEL-6 bug also depends on bug 1078301. I don't know if such a change is
> needed for RHEL-7 too, please double check that.

The test failure mention in bug 1078301 is fixed in 1.94.

Comment 6 Jitka Plesnikova 2016-03-16 16:39:33 UTC
Verification steps are same as in BZ#1078084 comment 7

Comment 9 errata-xmlrpc 2016-11-04 00:22:29 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://rhn.redhat.com/errata/RHBA-2016-2201.html