Re: [TLS] PR for anti-downgrade mechanism

Brian Smith <brian@briansmith.org> Fri, 09 October 2015 22:41 UTC

Return-Path: <brian@briansmith.org>
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 6A2F61B2D9A for <tls@ietfa.amsl.com>; Fri, 9 Oct 2015 15:41:01 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.978
X-Spam-Level:
X-Spam-Status: No, score=-1.978 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, 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 fwpHWD6xPK22 for <tls@ietfa.amsl.com>; Fri, 9 Oct 2015 15:40:59 -0700 (PDT)
Received: from mail-ob0-f177.google.com (mail-ob0-f177.google.com [209.85.214.177]) (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 13B441B2D88 for <tls@ietf.org>; Fri, 9 Oct 2015 15:40:59 -0700 (PDT)
Received: by obbda8 with SMTP id da8so73275109obb.1 for <tls@ietf.org>; Fri, 09 Oct 2015 15:40:58 -0700 (PDT)
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:date :message-id:subject:from:to:cc:content-type; bh=lHkQY0EmpTsrs37u1EnpPMsSUr3Zr5KhjldidNvRENs=; b=QOmADJqrqB6nFsoXNb6ALAQlqMJh6Z2fYeg0Yh0ML+lWNgkcDrxtJ40mQj6GaU2IBw 8kOfs5UxrGr6AALWPqdBksFUgHcHDQVwk7vAr85frBuibsUPpO2ReoJyD5GZDaSlLEOq +hHR9zgIVoUtAkZq1eN+sJ37Ho112Cfmn8DDjRYmLQklWjnIF7EfKIhHYeui8e1ihfJw RaN3Rq756ZwSDSdub0vt1BKe10JVwU7gRg+m4HkqAk4ZvPCqeRKdd7hOfjyaltmUhE5O roxmX51w5PgjrI71i6wMaX7A1boJt+BeErgcGZCNzodLpKRk6ae6blN3K3RpTd4c4Q4l 4lxw==
X-Gm-Message-State: ALoCoQnqXLEbz3oI88FWDHSVtauOxU6P0ImZGzUgc7mTRaC9w096rEKTfav2X+DVw+YQUmozUIHT
MIME-Version: 1.0
X-Received: by 10.182.97.97 with SMTP id dz1mr9456216obb.17.1444430458444; Fri, 09 Oct 2015 15:40:58 -0700 (PDT)
Received: by 10.76.100.36 with HTTP; Fri, 9 Oct 2015 15:40:58 -0700 (PDT)
In-Reply-To: <CABcZeBOB9mnQ8bLOCSysnx9LMv0hxrPCA21jTnxAMb3Yom_Aow@mail.gmail.com>
References: <CABcZeBOB9mnQ8bLOCSysnx9LMv0hxrPCA21jTnxAMb3Yom_Aow@mail.gmail.com>
Date: Fri, 09 Oct 2015 12:40:58 -1000
Message-ID: <CAFewVt6yin3NhkcLuJfXVy7RKuyPY+7+P4h1fKAyVtAZdpjBfQ@mail.gmail.com>
From: Brian Smith <brian@briansmith.org>
To: Eric Rescorla <ekr@rtfm.com>
Content-Type: multipart/alternative; boundary="047d7b2e438660fad20521b3ac69"
Archived-At: <http://mailarchive.ietf.org/arch/msg/tls/QqT441QfdEHbSrvfdlsObExDfm4>
Cc: "tls@ietf.org" <tls@ietf.org>
Subject: Re: [TLS] PR for anti-downgrade 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: <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: Fri, 09 Oct 2015 22:41:01 -0000

On Fri, Oct 9, 2015 at 2:23 AM, Eric Rescorla <ekr@rtfm.com> wrote:

> Please take a look at the following PR which documents a suggestion
> made by Karthik Bhargavan about how to prevent protection against
> downgrade against downgrade from TLS 1.3 to TLS 1.2 and below.
>
>   https://github.com/tlswg/tls13-spec/pull/284
>
> The idea is that if a TLS 1.3 server receives a TLS 1.2 or below
> ClientHello, it sets the top N bits of the ServerRandom to be a
> specific fixed value.
>

1. Why would the server ever receive a TLS 1.2 or below ClientHello from a
client that supports TLS 1.3? Why doesn't the already-standardized
downgrade SCSV mechanism work for those cases?

2. My understanding is that every TLS 1.3 ClientHello contains a
ClientKeyShare extension and that no TLS 1.2 or below ClientHello contains
a ClientKeyShare extension. Therefore, the presence or absence of the
ClientKeyShare extension already signals whether the client is attempting a
TLS 1.3 handshake, or a handshake for a lower TLS version. Thus, also
specifying ClientHello.client_version = 0x0304 is redundant. And, we've
already seen clear evidence that ClientHello.client_version = 0x0304 leads
to severe compatibility issues. So, why not just use
ClientHello.client_version = 0x0303 and rely on the presence of the
ClientKeyShare extension to disambiguate TLS 1.3 vs TLS 1.2 or below?

Cheers,
Brian