#35 TLSv1.3 support (WIP)
Closed by rcritten. Opened by cheimes.
cheimes/mod_nss tls13  into  master

Download 35.patch

Starting with NSS 3.28, TLS 1.3 support is available in upstream. TLS
1.3 needs both a new configuration constant and a set of new ciphers.
The latest version of TLS does not have any cipher suites in common with
TLS 1.2 and older.

The patch is based on initial work by Franziskus.

NSS 3.28 in Fedora has TLS 1.3 disabled, https://pagure.io/mod_nss/issue/27#comment-143043

Closes: https://pagure.io/mod_nss/issue/27
Signed-off-by: Christian Heimes cheimes@redhat.com

rebased

I created some experimental builds of NSS, mod_nss and python-nss in my personal COPR https://copr.fedorainfracloud.org/coprs/cheimes/nss/ . After some adjustments I'm successfully able to create TLS 1.3 connections from python-nss and Firefox nightly builds.

The require safe renegotiation option is causing problems with TLS 1.3. I reported the problem in https://bugzilla.redhat.com/show_bug.cgi?id=1423401

NSSRequireSafeNegotiation off
NSSCipherSuite +aes_128_gcm_sha_256,+chacha20_poly1305_sha_256
NSSProtocol TLSv1.3
$ venv/bin/python doc/examples/ssl_cipher_info.py -d /home/heimes/redhat/pki-vagans/ipa/inventory/nssdb -H master.ipa.example -E
SSL connect to: master.ipa.example
try connecting to: 192.168.121.252
connected to: 192.168.121.252
handshake complete, peer = 192.168.121.252, negotiated host = master.ipa.example
Connection Info:
SSL Protocol Version: 3.4 (tls1.3)
Cipher:               128-bit AES-GCM
MAC:                  128-bit AEAD
Auth:                 2048-bit TLS 1.3
Key Exchange:         255-bit TLS 1.3
Compression:          NULL
Channel:
--------
Protocol Version:      3.4 (tls1.3)
Cipher Suite:          TLS_AES_128_GCM_SHA256 (0x1301)
Auth Key Bits:         2048
Key Exchange Key Bits: 255
Creation Time:         1970-01-01 01:00:00
Last Access Time:      1970-01-01 01:00:00
Expiration Time:       1970-01-01 01:00:00
Compression Method:    NULL (0x0)
Session ID:
Suite:
------
Cipher Suite: TLS_AES_128_GCM_SHA256 (0x1301)
    Auth Algorithm:               TLS 1.3 (0xa)
    Key Exchange Type:            TLS 1.3 (0x7)
    Symmetric Cipher:             AES-GCM (0xa)
    Symmetric Key Bits:           128
    Effective Symmetric Key Bits: 128
    Symmetric Key Space:          128
    MAC Algorithm:                AEAD (0x6)
    MAC Bits:                     128
    FIPS:                         True
    Exportable:                   False
    Nonstandard:                  False

This generally looks good. I think I'd like to wait until at least the BZ gets fixed before committing upstream.

No movement on the BZ yet. Reconfirmed that it is still broken.

The safe renegotiation bug seems to be fixed in NSS 3.33:
https://bugzilla.mozilla.org/show_bug.cgi?id=1375837

I pushed this manually along with an update to the documentation.

Pull-Request has been closed by rcritten

Metadata