Re: [TLS] Downgrade protection, fallbacks, and server time

Eric Rescorla <ekr@rtfm.com> Wed, 01 June 2016 22:43 UTC

Return-Path: <ekr@rtfm.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 C23B612B040 for <tls@ietfa.amsl.com>; Wed, 1 Jun 2016 15:43:50 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.599
X-Spam-Level:
X-Spam-Status: No, score=-2.599 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=rtfm-com.20150623.gappssmtp.com
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 rIcDXL4tIy4t for <tls@ietfa.amsl.com>; Wed, 1 Jun 2016 15:43:48 -0700 (PDT)
Received: from mail-yw0-x235.google.com (mail-yw0-x235.google.com [IPv6:2607:f8b0:4002:c05::235]) (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 E515512B00F for <tls@ietf.org>; Wed, 1 Jun 2016 15:43:47 -0700 (PDT)
Received: by mail-yw0-x235.google.com with SMTP id h19so33328037ywc.0 for <tls@ietf.org>; Wed, 01 Jun 2016 15:43:47 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rtfm-com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=c1fCYrBQ0785zOFkoDUTYveS/KlYFSAZzwpkRUpMI9Y=; b=BcPjzTzBVbsXwkaannNA4skStdRJT1DQ/pKZwlJooAETy8gk672DhLmz7gPiGIezjr JXaBX8ZNLTnsvimTFhst2lW1CKc2Vl1hzSc3hvfm/yOGiEADFXM3DJh4JdR8yq/QJvvy dV+vQi+4M0RSYiaQJzd2ahIsmOxTREkFUUumYjMboarKCNCHs2o0kQsxt/bobwK4LYtN 4PJitzSNpKzLQ4IFwtsRoA9v5AKLR48banqKhBQeqV4+TDVBoUnvinkL3bLzOUlwI7hy vpsJWL1qGgmMUp/J8Gp8RZ2F2vfZTMe6RbjHZ0xDJweIz1t0zF5bVw9ooSeqVcOpSPtd 3tjA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=c1fCYrBQ0785zOFkoDUTYveS/KlYFSAZzwpkRUpMI9Y=; b=WfoTSDPETov9VHIQrkzA+hhdEaWiFcOW9DinlBJo+sqFvk9wCljKTwh8L0QtsXiWu4 nnNHl2vdhCRMtwTg21X0WFiISymwDjtJjSEdPzi24hWH+BVp7oG7Qg/kRJel5fGNnwaJ Fra6nMV1V4OpJQVK9gG2rzyk8PYyjjobvuDjIfYSLbda113ZpyjVpVVPk20O0j+jcizx CyZDYnYkjrkoPbgeDcffiGX7J8KFvpCqnPU3IdqKlQSiRTBoYAFc8Zg4Jc7ay+Sj3FZk SMi+7DLyYNUvUTZlvHJGcNyETMFffaZ/BamqaDOFxHc1xE0Awmo9StPQ/U5MoCCjEzZR SHoA==
X-Gm-Message-State: ALyK8tIPHgz/UFqeLDhPrzPZbJAfvgli4Lfa98Pujo4H0iSbK4L+lFkrRG27nSKWWRfy7loenrcrYrM5RE7TJQ==
X-Received: by 10.129.51.148 with SMTP id z142mr3846411ywz.322.1464821027214; Wed, 01 Jun 2016 15:43:47 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.13.230.76 with HTTP; Wed, 1 Jun 2016 15:43:07 -0700 (PDT)
In-Reply-To: <CAF8qwaDuGyHOu_4kpWN+c+vJKXyERPJu-2xR+nu=sPzG5vZ+ag@mail.gmail.com>
References: <CAF8qwaDuGyHOu_4kpWN+c+vJKXyERPJu-2xR+nu=sPzG5vZ+ag@mail.gmail.com>
From: Eric Rescorla <ekr@rtfm.com>
Date: Wed, 01 Jun 2016 15:43:07 -0700
Message-ID: <CABcZeBO2Se4EVQMc_AisBUkBHNCO8t3YQWwQhRnw2TwhBjxcPA@mail.gmail.com>
To: David Benjamin <davidben@chromium.org>
Content-Type: multipart/alternative; boundary="001a11422568fcc67905343f3824"
Archived-At: <http://mailarchive.ietf.org/arch/msg/tls/E6UBn6la301vV_207nvDHiYBLog>
Cc: "tls@ietf.org" <tls@ietf.org>
Subject: Re: [TLS] Downgrade protection, fallbacks, and server time
X-BeenThere: tls@ietf.org
X-Mailman-Version: 2.1.17
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: Wed, 01 Jun 2016 22:43:51 -0000

2% is actually pretty good, but I agree that we're going to need fallback.

I'd be fine with moving the 8 bytes to the end, but I wonder if it would be
better to
instead have the *client* indicate its max version and the server check.
That would
have the advantage that it would leave more of the server random intact.

-Ekr

P.S. The FALLBACK_SCSV isn't a substitute because it isn't signed by the
server.


On Wed, Jun 1, 2016 at 3:29 PM, David Benjamin <davidben@chromium.org>
wrote:

> In case folks hoped we could bump the ClientHello version without those
> dreaded browser fallbacks, I have bad news. :-( 1.3 intolerance very much
> exists. (Maybe we should just give up on ClientHello.version and use an
> extension? Extensions have rusted less.)
>
> I picked a large list of top sites and tried connecting to them. Just
> under 2% of them could handle a TLS 1.2 ClientHello, but not the same
> ClientHello with the version switched to 1.3 (no other changes, so I
> haven't tested a real 1.3 ClientHello). They're not unknown hosts either. I
> expect if you probe any top site list, you'll very quickly find some.
>
> Fortunately, the ServerHello.random trick fixes this. But it currently
> clobbers the old server timestamp which tlsdate[1] uses for clock
> synchronization. There really should be a less silly secure timestamping
> protocol, but, today, tlsdate has users. Any servers which expect to be a
> tlsdate target can't honor this MUST without tlsdate gone.
>
> (FALLBACK_SCSV works fine as well, but I gather people prefer the
> ServerHello.random one and would be unhappy having to implement both in
> clients with a fallback because not all servers do the latter.)
>
> I mentioned this before, but rather than clobbering the first 8 bytes, the
> last 8 bytes seems as reasonable and avoids this unnecessary complication
> to TLS 1.3 deployment. If folks agree now that the fallback's
> resurrection is more certain, I'm happy to put together a PR.
>
> David
>
> [1] https://github.com/ioerror/tlsdate
>
> _______________________________________________
> TLS mailing list
> TLS@ietf.org
> https://www.ietf.org/mailman/listinfo/tls
>
>