Bug 1376741

Summary: need backport of "use correct digest when exporting keying material." from upstream, RFC violation [rhel-6]
Product: Red Hat Enterprise Linux 6 Reporter: Stanislav Zidek <szidek>
Component: opensslAssignee: Tomas Mraz <tmraz>
Status: CLOSED ERRATA QA Contact: Stanislav Zidek <szidek>
Severity: medium Docs Contact:
Priority: medium    
Version: 6.8CC: hkario, mooney, tmraz
Target Milestone: rc   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: openssl-1.0.1e-51.el6 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: 1289620 Environment:
Last Closed: 2017-03-21 10:11:52 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:
Bug Depends On: 1289620    
Bug Blocks:    

Description Stanislav Zidek 2016-09-16 09:37:34 UTC
Same problem seems to be present on RHEL-6 (tested both openssl-1.0.1e-42.el6_7.5 and openssl-1.0.1e-48.el6).

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:: [   LOG    ] :: TLSv1.2 - ECDHE-RSA-AES128-SHA
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

:: [  BEGIN   ] :: Running 'PYTHONPATH=tlslite-ng python -u tlslite-ng/scripts/tls.py server -l EXPORTER-test -L 40 -k localhost.key -c localhost.crt localhost:4433 >server.out 2>server.err &'
:: [   PASS   ] :: Command 'PYTHONPATH=tlslite-ng python -u tlslite-ng/scripts/tls.py server -l EXPORTER-test -L 40 -k localhost.key -c localhost.crt localhost:4433 >server.out 2>server.err &' (Expected 0, got 0)
...
:: [  BEGIN   ] :: Running 'openssl s_client -keymatexport EXPORTER-test -keymatexportlen 40 -connect localhost:4433  -cipher ECDHE-RSA-AES128-SHA </dev/null'
...
Keying material exporter:
    Label: 'EXPORTER-test'
    Length: 40 bytes
    Keying material: FE36CFD8B323213AAD9E00716BA6E82310C1C17E912249B5B23C2A64F48C50BEF21CA8B1F271A004
---
DONE
:: [   PASS   ] :: Command 'openssl s_client -keymatexport EXPORTER-test -keymatexportlen 40 -connect localhost:4433  -cipher ECDHE-RSA-AES128-SHA </dev/null' (Expected 0, got 0)
...
:: [   FAIL   ] :: Check if exporters match (Assert: 'DD7A15A77B9FA3F6F274FE3A1FD204B94353763C648D17979B726A036F9383A1EE7DCBA945A39110' should equal 'FE36CFD8B323213AAD9E00716BA6E82310C1C17E912249B5B23C2A64F48C50BEF21CA8B1F271A004')
:: [  BEGIN   ] :: Running 'cat server.out'
...
  Exporter label: EXPORTER-test
  Exporter length: 40
  Keying material: DD7A15A77B9FA3F6F274FE3A1FD204B94353763C648D17979B726A036F9383A1EE7DCBA945A39110
:: [   PASS   ] :: Command 'cat server.out' (Expected 0, got 0)
...
TLSv1-2-ECDHE-RSA-AES128-SHA result: FAIL

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

Description of problem:

Versions of OpenSSL before 1.0.1h have an issue with incorrect digests when interoperating with certain clients.  It appears that the bug actually causes OpenSSL on RHEL 7 to violate RFC 5246.

The upstream bug report is

    https://rt.openssl.org/Ticket/Display.html?user=guest&pass=guest&id=3319

The one-line patch from upstream that's in 1.0.1h and 1.0.2 is

    https://git.openssl.org/gitweb/?p=openssl.git;a=commitdiff;h=4fdf917

Version-Release number of selected component (if applicable):

openssl-1.0.1e-42.el7_1.9
openssl-libs-1.0.1e-42.el7_1.9


Additional info:

This issue can trigger interoperability issues with any client (including devices like mobile phones) that support TLS 1.2 but offer older cipher suites.  Especially on mobile devices, it's often not possible for the user to configure what ciphers their SSL stack prefers.

Comment 6 errata-xmlrpc 2017-03-21 10:11:52 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-2017-0660.html