Re: [TLS] A new TLS version negotiation mechanism

Dave Garrett <davemgarrett@gmail.com> Wed, 11 March 2015 18:56 UTC

Return-Path: <davemgarrett@gmail.com>
X-Original-To: tls@ietfa.amsl.com
Delivered-To: tls@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 6B2B71A017A for <tls@ietfa.amsl.com>; Wed, 11 Mar 2015 11:56:42 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2
X-Spam-Level:
X-Spam-Status: No, score=-2 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, SPF_PASS=-0.001] autolearn=ham
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 OWBZA8LzCZtu for <tls@ietfa.amsl.com>; Wed, 11 Mar 2015 11:56:40 -0700 (PDT)
Received: from mail-qc0-x22c.google.com (mail-qc0-x22c.google.com [IPv6:2607:f8b0:400d:c01::22c]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 505511A09C9 for <tls@ietf.org>; Wed, 11 Mar 2015 11:56:40 -0700 (PDT)
Received: by qcvs11 with SMTP id s11so12717368qcv.6 for <tls@ietf.org>; Wed, 11 Mar 2015 11:56:39 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:subject:date:user-agent:cc:references:in-reply-to :mime-version:content-type:content-transfer-encoding:message-id; bh=8qTvsd4lh6L5mDEXRBEz04pG2ADS2bpIQeZ2wpMjhPA=; b=czpe79Josapg3iH5hdqVjZM5KX3J9+1CJ+NYr7LWkVi3nq8kV0lFHaatK2zwhNLdAW nEkh9847Tuh79S59okeTkW++ILt+W/Q6cprlaV6zIRgY5m8wvWABnRXat2o/ZYzl0Sxh OPZF0TydqzUEKnfbRNWxMXTQcTrJvCFaQa0JOPKRlmTswexKZ9X0xl6r5pniR3akZyxa r7GeYXgRR81fZSI9v1HpuO+k2OEx9v+/lxPvycok8pF+FnUTMKMjcUfvb/PYMo9verFF kLjVT9M2J68Wj8K2jXynlz4Y0doWCM9Emeg6jYWlJvnN02UCOUstm5g7LnBV+lpIavTE lBQg==
X-Received: by 10.140.108.116 with SMTP id i107mr47549805qgf.73.1426100199649; Wed, 11 Mar 2015 11:56:39 -0700 (PDT)
Received: from dave-laptop.localnet (pool-96-245-254-195.phlapa.fios.verizon.net. [96.245.254.195]) by mx.google.com with ESMTPSA id g34sm3151034qgd.0.2015.03.11.11.56.39 (version=TLSv1 cipher=RC4-SHA bits=128/128); Wed, 11 Mar 2015 11:56:39 -0700 (PDT)
From: Dave Garrett <davemgarrett@gmail.com>
To: Stephen Checkoway <s@pahtak.org>
Date: Wed, 11 Mar 2015 14:56:37 -0400
User-Agent: KMail/1.13.5 (Linux/2.6.32-71-generic-pae; KDE/4.4.5; i686; ; )
References: <201503081339.47927.davemgarrett@gmail.com> <201503111252.23754.davemgarrett@gmail.com> <C7A83A3B-A859-437C-88CB-460E8BDEAB3D@pahtak.org>
In-Reply-To: <C7A83A3B-A859-437C-88CB-460E8BDEAB3D@pahtak.org>
MIME-Version: 1.0
Content-Type: Text/Plain; charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
Message-Id: <201503111456.38308.davemgarrett@gmail.com>
Archived-At: <http://mailarchive.ietf.org/arch/msg/tls/HMN8mp0cloz14tRenk5UyAtE8ZU>
Cc: "tls@ietf.org" <tls@ietf.org>
Subject: Re: [TLS] A new TLS version negotiation mechanism
X-BeenThere: tls@ietf.org
X-Mailman-Version: 2.1.15
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: <http://www.ietf.org/mail-archive/web/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: Wed, 11 Mar 2015 18:56:42 -0000

On Wednesday, March 11, 2015 02:13:56 pm Stephen Checkoway wrote:
> Do you expect that there's a significant fraction of servers that (a) tolerate 1.2; (b) don't tolerate > 1.2; and (c) aren't maintained or can't be upgraded?

Yes.

> I'd be surprised by data showing this. I imagine that any server satisfying (b) and (c), probably doesn't satisfy (a) so this proposal doesn't help.

http://www.ietf.org/mail-archive/web/tls/current/msg15141.html
On Tuesday, January 20, 2015 11:01:31 pm Xiaoyin Liu wrote:
> For each site, I made at most four attempts with the following order to fallback:
> (TLS 1.3, TLS 1.3) -> (TLS 1.0, TLS 1.3) -> (TLS 1.0, TLS 1.2) -> (TLS 1.0, TLS 1.0)
> where the first is TLS record layer version, and the second is Client Hello version.
>  
> Here is the result:
> (1) Number of sites scanned: 1,000,001
> (2) Number of DNS Error: 45,402
> (3) Number of sites that refuse TCP connection on port 443 (RST, timeout): 289,334
> (4) Number of sites that fail sending ServerHello in all 4 attempts: 238,846
> (5) Number of sites that are tolerant to (TLS1.3, TLS1.3): 397,152 (93.1%)
> (6) Number of sites that need to fallback to (TLS1.0, TLS1.3): 22,461 (5.3%)
> (7) Number of sites that need to fallback to (TLS1.0, TLS1.2): 6,352 (1.5%)
> (8) Number of sites that need to fallback to (TLS1.0, TLS1.0): 454 (0.1%)
> 
> The total number of TLS enabled sites is 426,419. TLS 1.3 intolerant sites (7 and 8) are about 1.6%. TLS 1.2 intolerant sites are about 0.1%. Also it shows setting a lower record layer version does improve compatibility a lot. An example is https://paypal.com is intolerant to (TLS 1.3, TLS 1.3) but is tolerant to (TLS 1.0, TLS 1.3). Please note that I did not validate certificates nor check the integrity of handshakes. I closed the connection immediately after receiving ServerHello.

Anecdotally, I am seeing TLS 1.3 intolerant servers that otherwise work popping up reports of servers breaking with the RC4 phase out.

An arbitrary and not scientific survey of the sites currently listed in the Mozilla RC4-Dependence meta-bug shows the following:

https://bugzilla.mozilla.org/show_bug.cgi?id=1138101
42 sites checked (popular enough to get reported there, at least)
of those, 5 have fixed their RC4 dependence; the others have not (as of this email)

5 are TLS 1.1-1.3 intolerant
1 is TLS 1.2-1.3 intolerant
8 are TLS 1.3 intolerant, but not 1.2 or less
3 are even tolerant to TLS 1.98 & 2.98 tests (the others are not)

(not bothering with percentages because the sample size is low and biased)

The rough things learned here are:
1) TLS 1.3 intolerance is more common than TLS 1.2 intolerance
2) TLS 1.2 intolerance without TLS 1.1 intolerance is actually a thing that happens
3) It is seemingly rare for any server to fully implement version negotiation properly
    (the domain that runs the test I use is even intolerant to TLS 2.98)
4) It appears that TLS 1.3 intolerance is more common with servers that have other problems that should've been fixed by now, but aren't

Again, this is anecdotal. I don't claim this is fully extrapolatable to the entire Internet, just that I'm seeing enough of it to be concerned.

I argue that TLS should never formally change its ClientHello version to anything greater than 1.x, though a spec name with yet another hacky numbering that doesn't match the official version number would be fine. (e.g. Call it TLS2 but number it {3,4} still)

I also argue that TLS 1.3 intolerance is something that must be addressed fully BEFORE attempting to get draft implementations out there and encouraging insecure fallback to deal with it.


Dave