Re: [TLS] PR for anti-downgrade mechanism

Eric Rescorla <ekr@rtfm.com> Sat, 17 October 2015 19:04 UTC

Return-Path: <ekr@rtfm.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 DCF761A6FA9 for <tls@ietfa.amsl.com>; Sat, 17 Oct 2015 12:04:14 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.977
X-Spam-Level:
X-Spam-Status: No, score=-1.977 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] 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 f6fEOBhcNGvY for <tls@ietfa.amsl.com>; Sat, 17 Oct 2015 12:04:13 -0700 (PDT)
Received: from mail-yk0-f180.google.com (mail-yk0-f180.google.com [209.85.160.180]) (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 090DC1A6F33 for <tls@ietf.org>; Sat, 17 Oct 2015 12:04:13 -0700 (PDT)
Received: by yknn9 with SMTP id n9so61030895ykn.0 for <tls@ietf.org>; Sat, 17 Oct 2015 12:04:12 -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:from:date :message-id:subject:to:content-type; bh=x9t4s3oMzUJ3AUMKObaKbve59DaVyuUbvS6AIBGJ3V0=; b=R0D3XJrwTgUlGv52pPh/tNDb4OqCgYhDvIsSGdmLB/htJj5QtGEs7XgWqRpZLBSZyJ P7iccAutHv0TwLLz33Ek27s6iJO34UN2rFf4u8xIHd4qqZmSdvZMvNXTbJjs9MVCAr1T D8hi+kqbTateVLAZbi+pkgOhIKwbkKFl0DdksKJKYgEYuCFh42b251psVX34zvaA1H25 KayyAkbc3/XF2BKAEs6P6/gYEsaEXGuAhbIDdT57bTgapVyF+gOkjIqp0LHxeWpmykH2 n0WeZ5DBT7GmL8UrlrBPZRg3E5xhOl1zPfKgyWqAzDNQMCYemNyse847E7vqgs2tJ6Fv vQaQ==
X-Gm-Message-State: ALoCoQkebVhX8kopCdGYjHnlfkX/fnqY3rybLMY2SErQYDiJWc/NBEDB3z4iyDu742uf73HpE9X7
X-Received: by 10.13.193.133 with SMTP id c127mr14229913ywd.79.1445108652254; Sat, 17 Oct 2015 12:04:12 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.129.114.85 with HTTP; Sat, 17 Oct 2015 12:03:32 -0700 (PDT)
In-Reply-To: <20151017190036.GD15070@mournblade.imrryr.org>
References: <CABcZeBOB9mnQ8bLOCSysnx9LMv0hxrPCA21jTnxAMb3Yom_Aow@mail.gmail.com> <CAFewVt6yin3NhkcLuJfXVy7RKuyPY+7+P4h1fKAyVtAZdpjBfQ@mail.gmail.com> <D22E3AD8-19A1-4CAF-987B-349CE6961284@gmail.com> <CAFewVt484VFa+bUPc41BXVhoYqx1qJdWR4z7c_xjx=Ff_6QZQw@mail.gmail.com> <CABkgnnVEUuWEEpqjRWm9=D7OkDuxvJj7pmX=8RMCU6T_qah5mw@mail.gmail.com> <CAFewVt6kPzMfjKb5deATw4funEa_=Z9G5U-6_QeX1f34abS55g@mail.gmail.com> <CABkgnnW1V6SbbFfjKekCTmWNK6gP1uH2rH4POSkwmycQwtPkoA@mail.gmail.com> <CAFewVt5qXaXGrMi8ids_3pfB7t=zdmmqRqe2N_GXjex_P=Qq1w@mail.gmail.com> <02BF1D46-DC94-4D4C-B0E6-5FE0E7D7F95B@gmail.com> <CABcZeBOzGhTjGo0xJVFCRCGAcw3mLXyUGBb0t1Hu9Rk6PBPd1g@mail.gmail.com> <20151017190036.GD15070@mournblade.imrryr.org>
From: Eric Rescorla <ekr@rtfm.com>
Date: Sat, 17 Oct 2015 12:03:32 -0700
Message-ID: <CABcZeBMScyzd6+3aQc1+F+6gAnnJx16GpVqiojVkRPuTaj+Gbg@mail.gmail.com>
To: "tls@ietf.org" <tls@ietf.org>
Content-Type: multipart/alternative; boundary="001a114e761ee15bbd05225193a4"
Archived-At: <http://mailarchive.ietf.org/arch/msg/tls/KIJFyFlRmDeIzdMMePN98P1sK_M>
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: Sat, 17 Oct 2015 19:04:15 -0000

On Sat, Oct 17, 2015 at 12:00 PM, Viktor Dukhovni <ietf-dane@dukhovni.org>
wrote:

> On Sat, Oct 17, 2015 at 11:35:35AM -0700, Eric Rescorla wrote:
>
> > Trying to close the loop on this, I think people are generally in favor
> of
> > this
> > mechanism, so we just need a concrete construction.
> >
> > I propose we use an N bit field divided as follows
> >
> > - N - 8 bits of fixed sentinel.
> > - 8 bits of version number with the semantics being the highest TLS
> version
> >   number supported by the server, encoded with the high nibble being
> >   the major version and the low version being the minor version. So,
> >   concretely a TLS 1.3 implementation would use 0x34 here.
> >
> > I imagine people have opinions about N and the sentinel, but for
> > concreteness
> > I suggest that N = 64 bits, and that we use the ASCII string
> > 'DOWNGRD' as the sentinel.
> >
> > Let the bikeshedding begin!
>
> IIRC for TLS >= 1.3 the entire server hello (as part of a session
> transcript digest that includes it) is signed with the key exchange.
> So TLS 1.3 already protects against rollbacks from 1.4 to 1.3.
>

Hopefully, yes.


If so, is it necessary to have a variable high octet?


Note: I am proposing this in the low octet. Not that it's that
important either way.



> Just a single
> fixed patter signalling ">= 1.3" would then suffice.
>

If you wanted to cover 1.2 -> 1.1, then you would want this.

-Ekr


> I must admit to not have looked closely, so perhaps wrong end of
> the stick...  If the above is however correct, I think simpler is
> better, over-engineering this work-around "side-channel" is I think
> unwise.  This seems to be a protection against rollback to TLS <
> 1.3, for TLS >= 1.3, the protocol should solve any issues more
> naturally than by overloading the server-random.
>
> --
>         Viktor.
>
> _______________________________________________
> TLS mailing list
> TLS@ietf.org
> https://www.ietf.org/mailman/listinfo/tls
>