Re: [TLS] Further TLS 1.3 deployment updates

Hubert Kario <hkario@redhat.com> Thu, 13 December 2018 16:54 UTC

Return-Path: <hkario@redhat.com>
X-Original-To: tls@ietfa.amsl.com
Delivered-To: tls@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 1D6AF130DD5 for <tls@ietfa.amsl.com>; Thu, 13 Dec 2018 08:54:01 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.901
X-Spam-Level:
X-Spam-Status: No, score=-6.901 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_HI=-5, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 38iZZjiKUXm2 for <tls@ietfa.amsl.com>; Thu, 13 Dec 2018 08:53:58 -0800 (PST)
Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id A622B130DC7 for <tls@ietf.org>; Thu, 13 Dec 2018 08:53:58 -0800 (PST)
Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 0ED15300230A; Thu, 13 Dec 2018 16:53:58 +0000 (UTC)
Received: from pintsize.usersys.redhat.com (unknown [10.43.21.83]) by smtp.corp.redhat.com (Postfix) with ESMTP id 8195E607D0; Thu, 13 Dec 2018 16:53:57 +0000 (UTC)
From: Hubert Kario <hkario@redhat.com>
To: tls@ietf.org
Date: Thu, 13 Dec 2018 17:53:51 +0100
Message-ID: <1588490.iHGf2W1UT2@pintsize.usersys.redhat.com>
In-Reply-To: <CAF8qwaC1W+U+rQr_0m0h1OJEVrCckqW7-P5_43W1xVf7Rd8TtQ@mail.gmail.com>
References: <CAF8qwaC1W+U+rQr_0m0h1OJEVrCckqW7-P5_43W1xVf7Rd8TtQ@mail.gmail.com>
MIME-Version: 1.0
Content-Type: multipart/signed; boundary="nextPart14444041.LZJlD4aBsV"; micalg="pgp-sha512"; protocol="application/pgp-signature"
X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14
X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.43]); Thu, 13 Dec 2018 16:53:58 +0000 (UTC)
Archived-At: <https://mailarchive.ietf.org/arch/msg/tls/i1EkVnIOtKzMiF7tdVG_xDREOWA>
Subject: Re: [TLS] Further TLS 1.3 deployment updates
X-BeenThere: tls@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "This is the mailing list for the Transport Layer Security working group of the IETF." <tls.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tls>, <mailto:tls-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/tls/>
List-Post: <mailto:tls@ietf.org>
List-Help: <mailto:tls-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tls>, <mailto:tls-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 13 Dec 2018 16:54:01 -0000

On Wednesday, 12 December 2018 23:21:43 CET David Benjamin wrote:
> Hi folks,
> 
> We have one more update for you all on TLS 1.3 deployment issues. Over the
> course of deploying TLS 1.3 to Google servers, we found that JDK 11
> unfortunately implemented TLS 1.3 incorrectly. On resumption, it fails to
> send the SNI extension. This means that the first connection from a JDK 11
> client will work, but subsequent ones fail.
> https://bugs.openjdk.java.net/browse/JDK-8211806
> 
> It appears this will be fixed in JDK 11.0.2, which is not yet released. In
> the meantime, we have sadly had to detect JDK 11 clients and disable TLS
> 1.3 for them. This, in turn, raises a problem with the downgrade signal in
> ServerHello.random. JDK 11 does implement that downgrade signal, so the
> workaround cannot send it. However, the signal is not effective for other
> clients unless all TLS 1.2 ServerHellos are marked.
> 
> To salvage this for now, we've introduced a second value, generated
> randomly:
>     0xed, 0xbf, 0xb4, 0xa8, 0xc2, 0x47, 0x10, 0xff
> 
> When Google servers detect JDK 11 and disable TLS 1.3 to work around this
> issue, they will use that value in ServerHello.random instead of the
> standard 0x44, 0x4f, 0x57, 0x4e, 0x47, 0x52, 0x44, 0x01. Future versions of
> Chrome will treat the new value as an alias of the standard one. Other
> clients may wish to do the same, but please properly test your TLS 1.3
> implementation first.

there is now a server test script in tlsfuzzer for standard downgrade 
sentinel:
https://github.com/tomato42/tlsfuzzer/blob/master/scripts/test-downgrade-protection.py

example of usage: https://github.com/tomato42/tlsfuzzer/pull/479/files

-- 
Regards,
Hubert Kario
Senior Quality Engineer, QE BaseOS Security team
Web: www.cz.redhat.com
Red Hat Czech s.r.o., Purkyňova 115, 612 00  Brno, Czech Republic