Bug 1044191

Summary: [RFE] support TLSv1.1 and TLSv1.2, if supported by NSS
Product: Red Hat Enterprise Linux 7 Reporter: Nathan Kinder <nkinder>
Component: 389-ds-baseAssignee: Rich Megginson <rmeggins>
Status: CLOSED ERRATA QA Contact: Viktor Ashirov <vashirov>
Severity: unspecified Docs Contact:
Priority: high    
Version: 7.0CC: jgalipea, nhosoi, rmeggins
Target Milestone: rcKeywords: FutureFeature
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: 389-ds-base-1.3.3.1-1.el7 Doc Type: Enhancement
Doc Text:
Feature: Based upon the NSS library available on the system, the Directory Server supports the SSL versions in the range manner offered by the NSS library. By default, for the security reason (POODLEBLEED) SSLv3 is disabled even if it is offered by the NSS library. Restriction is available in the encryption config entry as follows. dn: cn=encryption,cn=config sslVersionMin: <minimum version> sslVersionMax: <maximum version> The values for the version is SSL3, TLS1.0, TLS1.1, TLS1.2, ... up to the max version available.
Story Points: ---
Clone Of:
: 1118285 (view as bug list) Environment:
Last Closed: 2015-03-05 09:32:45 UTC Type: ---
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:    
Bug Blocks: 1118285    
Attachments:
Description Flags
CI test script none

Description Nathan Kinder 2013-12-17 21:49:15 UTC
This bug is created as a clone of upstream ticket:
https://fedorahosted.org/389/ticket/605

https://developer.mozilla.org/en-US/docs/NSS/NSS_3.14_release_notes

We will have to do this in ds, admin server, dsgw, adminutil, and perldap.

Comment 1 Rich Megginson 2014-06-23 16:49:03 UTC
AFAIK, the commit for upstream ticket 605 also adds support for TLSv1.2 - is this correct?

Comment 2 Noriko Hosoi 2014-06-23 19:18:24 UTC
(In reply to Rich Megginson from comment #1)
> AFAIK, the commit for upstream ticket 605 also adds support for TLSv1.2 - is
> this correct?

Yes, as long as the coexisting NSS supports it.  NSS returns the min and max supported versions.  We examine the NSS version and if TLSv1.2 is available, we enable it.

Comment 3 Rich Megginson 2014-06-23 20:18:37 UTC
Ok, Thanks! - I'm changing the description to be more accurate (and searchable by interested parties)

Comment 6 Noriko Hosoi 2014-10-23 21:11:27 UTC
Created attachment 950071 [details]
CI test script

(In reply to Jenny Galipeau from comment #5)
> Please add details as to implementation, usage and expect behaviour or link
> to design page.
> Thanks
> Jenny

Covered by upstream CI test.

Comment 7 Sankar Ramalingam 2014-12-03 10:12:46 UTC
I successfully configured SSL with nstls1:on for cn=encryption,cn=config.

The minimum supported version shows: tls1
Max supported version shows tls1.2

dn: cn=encryption,cn=config
objectClass: top
objectClass: nsEncryptionConfig
cn: encryption
nsSSLSessionTimeout: 0
nsSSLClientAuth: allowed
sslVersionMin: TLS1.0
nsTLS1: on
nsSSL3Ciphers: +all
nsSSL2: off
nsSSL3: off
sslVersionMax: TLS1.2

Do we need to explicitly add a support for 389-ds-base as tls1.1: on and tls1.2:on?

Tested packages:
rpm -qa |egrep '389-ds-base|nss-'
nss-util-3.16.2.3-1.el7.x86_64
mod_nss-1.0.8-32.el7.x86_64
389-ds-base-libs-1.3.3.1-9.el7.x86_64
python-nss-0.15.0-1.el7.x86_64
389-ds-base-1.3.3.1-9.el7.x86_64
nss-sysinit-3.16.2.3-2.el7.x86_64
nss-softokn-freebl-3.16.2.3-3.el7.x86_64
nss-3.16.2.3-2.el7.x86_64
nss-tools-3.16.2.3-2.el7.x86_64
nss-softokn-3.16.2.3-3.el7.x86_64

Comment 8 Rich Megginson 2014-12-03 14:23:11 UTC
(In reply to Sankar Ramalingam from comment #7)
> I successfully configured SSL with nstls1:on for cn=encryption,cn=config.
> 
> The minimum supported version shows: tls1
> Max supported version shows tls1.2
> 
> dn: cn=encryption,cn=config
> objectClass: top
> objectClass: nsEncryptionConfig
> cn: encryption
> nsSSLSessionTimeout: 0
> nsSSLClientAuth: allowed
> sslVersionMin: TLS1.0
> nsTLS1: on
> nsSSL3Ciphers: +all
> nsSSL2: off
> nsSSL3: off
> sslVersionMax: TLS1.2
> 
> Do we need to explicitly add a support for 389-ds-base as tls1.1: on and
> tls1.2:on?

No. That's what sslVersionMin/Max are for.  We don't have the ability to turn off TLS versions inside the range.  For example, you can't say "enable TLS 1.0 and TLS 1.2 but disable TLS 1.1".

> 
> Tested packages:
> rpm -qa |egrep '389-ds-base|nss-'
> nss-util-3.16.2.3-1.el7.x86_64
> mod_nss-1.0.8-32.el7.x86_64
> 389-ds-base-libs-1.3.3.1-9.el7.x86_64
> python-nss-0.15.0-1.el7.x86_64
> 389-ds-base-1.3.3.1-9.el7.x86_64
> nss-sysinit-3.16.2.3-2.el7.x86_64
> nss-softokn-freebl-3.16.2.3-3.el7.x86_64
> nss-3.16.2.3-2.el7.x86_64
> nss-tools-3.16.2.3-2.el7.x86_64
> nss-softokn-3.16.2.3-3.el7.x86_64

Comment 9 Noriko Hosoi 2014-12-04 23:47:31 UTC
(In reply to Rich Megginson from comment #8)
> (In reply to Sankar Ramalingam from comment #7)
> > I successfully configured SSL with nstls1:on for cn=encryption,cn=config.
> > 
> > The minimum supported version shows: tls1
> > Max supported version shows tls1.2
> > 
> > dn: cn=encryption,cn=config
> > objectClass: top
> > objectClass: nsEncryptionConfig
> > cn: encryption
> > nsSSLSessionTimeout: 0
> > nsSSLClientAuth: allowed
> > sslVersionMin: TLS1.0
> > nsTLS1: on
> > nsSSL3Ciphers: +all
> > nsSSL2: off
> > nsSSL3: off
> > sslVersionMax: TLS1.2
> > 
> > Do we need to explicitly add a support for 389-ds-base as tls1.1: on and
> > tls1.2:on?
> 
> No. That's what sslVersionMin/Max are for.  We don't have the ability to
> turn off TLS versions inside the range.  For example, you can't say "enable
> TLS 1.0 and TLS 1.2 but disable TLS 1.1".

Rich is correct.

Please note:
This set is an style to specify the SSL version.
> > nsTLS1: on
> > nsSSL2: off
> > nsSSL3: off
This set is the new way.
> > sslVersionMin: TLS1.0
> > sslVersionMax: TLS1.2

We are still accepting the old way for the backward compatibility, but you don't have to set them.  Without the old style set, the server should start just with the new style.  An exception is enabling SSL3.0.  You have to explicitly set "nsSSL3: on" as well as "sslVersionMin: SSL3.0".

Another note: if there's any conflict between the old style and new style, the tighter one is honoured.  For instance, if the old style has
> > nsTLS1: on
> > nsSSL2: off
> > nsSSL3: off
while new one has
> > sslVersionMin: SSL3.0
> > sslVersionMax: SSL3.0
the server starts as 
> > sslVersionMin: TLS1.0
> > sslVersionMax: TLS1.2
which picked up the old style set.

Comment 10 Sankar Ramalingam 2014-12-08 10:56:08 UTC
Support for TLS1.1 and TLS1.2s is added by sslVersionMin and sslVersionMax definitions. Hence, marking the bug as Verified.

Comment 12 errata-xmlrpc 2015-03-05 09:32:45 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/RHSA-2015-0416.html