Re: [TLS] Server validation of a second ClientHello

Eric Rescorla <ekr@rtfm.com> Wed, 13 February 2019 20:28 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 B7F8D1200B3 for <tls@ietfa.amsl.com>; Wed, 13 Feb 2019 12:28:31 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.9
X-Spam-Level:
X-Spam-Status: No, score=-1.9 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_MED=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001] 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 2htWtabfKNkO for <tls@ietfa.amsl.com>; Wed, 13 Feb 2019 12:28:28 -0800 (PST)
Received: from mail-lf1-x12d.google.com (mail-lf1-x12d.google.com [IPv6:2a00:1450:4864:20::12d]) (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 373E5128B01 for <tls@ietf.org>; Wed, 13 Feb 2019 12:28:28 -0800 (PST)
Received: by mail-lf1-x12d.google.com with SMTP id q12so2845897lfm.0 for <tls@ietf.org>; Wed, 13 Feb 2019 12:28:28 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rtfm-com.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=gFMtgZY8qnFT4d/yAtYxGXK+zlojAtAGzWbI0yVSlwE=; b=BmSDsxJrwLzkPTNZ4BVCQWk4PwyAlH3+vuWgWFf2YaC/ZhyfNXPcIPXcrnlBKm2Kk7 qZ5Poi80pKeEpVE9GoyI/FGPiYrsvZ2PMG+cUyNqQL5lEHA9VfkQRip7s3uUHA4k3/3r Ve7Fxmbe0x17GQQqyvqNU31/gc1wtUY4RBK4RRD6fFdcyuRZeSuO7P0N9X9MNzFQcyFh ljHtmkGFhdgXk25oG4TXPM+3YLimg+DEsUUeNc02nJSKMZ88rH8jJ+tRwUGj8Uo29DnO 3QQn6VjUp0qZ+M6iLvelQy+Uh8Y339nN86M5TYnF08DHzV551iE0WTQMOP6mHIlF/mKr 05Gg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=gFMtgZY8qnFT4d/yAtYxGXK+zlojAtAGzWbI0yVSlwE=; b=eHYCf9DlBkG9YosQBOYHlA8Vx5o7u1hT9LeiqL1dy6NHkW+XKBmaX4ZPQdV+RA1nLB sZXm7LXjZSaG6kkyPKWIvhu5/Jsa28G3QSPQHSmzzDWI6M2gCuSJk0dv8gmIS4vsGlz/ Yoxcu6q92y88OcuqqWQWytFWaTLtyoYb59LoJwmuB6jB8pz+A3f5MoW0m3FD9jbI3ZKS mab2zDhIs+hgbEJsmZVRIeB72Sixb8+n+VAjWWnYS2tp+tMW7lxKHk8ZuFhyK6kFFjdy 2QYiMRuXXHGFcMgoZGKrNhU7FPariwjMC/rTN1eOoPzIyvFelg6ALxQnKig6VEDlw3jm 1yEg==
X-Gm-Message-State: AHQUAuY985m5XazbxMqRfg3WWYJXV6l/MdDFD4ajcHfi6U9FYaMcUTC9 J8gMt4GpTx5sNHHDIPCU0r5EHcGWU9A77oO7qNzFkA==
X-Google-Smtp-Source: AHgI3IYodFeaoamPiuQ3WG9pJw26LwZJKSPWS0NDI0uTAnEAY0cgIIG0XxxsalQBKaY5D2lfg+TJAdUklNZBGztnX24=
X-Received: by 2002:a19:2d44:: with SMTP id t4mr4202lft.90.1550089705865; Wed, 13 Feb 2019 12:28:25 -0800 (PST)
MIME-Version: 1.0
References: <1549596678.898774.1653407000.2B2ACE8E@webmail.messagingengine.com> <1676094.U5iVg0WcKh@pintsize.usersys.redhat.com> <CABcZeBOWu9_DLqRUqROjPR7MViDcdeWWuooCf=uWGKkt+TKhLQ@mail.gmail.com> <3869497.s3jJ9zoz9Q@pintsize.usersys.redhat.com>
In-Reply-To: <3869497.s3jJ9zoz9Q@pintsize.usersys.redhat.com>
From: Eric Rescorla <ekr@rtfm.com>
Date: Wed, 13 Feb 2019 12:27:46 -0800
Message-ID: <CABcZeBMOfmEg=O+A9-czcctCNK7uKzRML5RzxKeeMJ=vKsq+bw@mail.gmail.com>
To: Hubert Kario <hkario@redhat.com>
Cc: Martin Thomson <mt@lowentropy.net>, "<tls@ietf.org>" <tls@ietf.org>
Content-Type: multipart/alternative; boundary="00000000000049e04f0581cc621a"
Archived-At: <https://mailarchive.ietf.org/arch/msg/tls/JgKQtqAeR8qHkFkzzLy9wGwzGPk>
Subject: Re: [TLS] Server validation of a second ClientHello
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: Wed, 13 Feb 2019 20:28:32 -0000

On Wed, Feb 13, 2019 at 11:37 AM Hubert Kario <hkario@redhat.com> wrote:

> On Wednesday, 13 February 2019 20:01:10 CET Eric Rescorla wrote:
> > On Wed, Feb 13, 2019 at 10:23 AM Hubert Kario <hkario@redhat.com> wrote:
> > > On Wednesday, 13 February 2019 17:31:52 CET Eric Rescorla wrote:
> > > > On Wed, Feb 13, 2019 at 7:39 AM Hubert Kario <hkario@redhat.com>
> wrote:
> > > > > On Wednesday, 13 February 2019 15:39:03 CET Eric Rescorla wrote:
> > > > > > I'n not sure I understand your question, but I'll try to answer
> what
> > >
> > > I
> > >
> > > > > > think it says.
> > > > > >
> > > > > > 1. I do think that whether you continue the connection or abort
> it
> > >
> > > is an
> > >
> > > > > > implementation decision and I think that the way the spec is
> written
> > > > > > says
> > > > > > that.
> > > > > > 2. I think the spec leaves open whether you should use the first
> or
> > > > > > second
> > > > > > values, but I think implementations should use the second value.
> > > > > > It's
> > > > > > not
> > > > > > clear why one would want to use the first.
> > > > >
> > > > > because you have already parsed, verified and sanity-checked the
> first
> > > > > hello,
> > > > > you already decided what kind of parameters will the connection use
> > > > > and
> > > > > you're
> > > > > expecting just the values that can change to change and ignoring
> > > > > everything
> > > > > else, thus not wasting cycles on verifying the extensions twice...
> > > > >
> > > > > so it's not clear to me why you'd ever want to use the second one
> > > >
> > > > Well, clearly views differ on this, then.
> > >
> > > yes, that was my point, and the reason why I'd like to see
> clarification
> > > or
> > > agreement on expected behaviour
> > >
> > >
> > > so if my understanding is correct, to do that, we would need to agree
> on a
> > > new
> > > RFC that clarifies such issues
> >
> > I'm not so sure.
>
> I said "I'd like", yes, I am aware that not everybody shares my views on
> those
> topics, but *if* we reach a conclusion and decide to update/clarify RFC
> 8446,
> it would require publishing a new RFC (depending on intrusiveness of it,
> it
> may be just "Informational" or it may need to be "Standards Track", with
> everything that it entails), wouldn't it?
>

The current document does not mandate any particular implementation. If you
want to require a specific implementation then would need a new standards
track RFC.


> > - I don't think that the specification ought to require checking and/or
> not
> > checking.
> > - I don't think it should require using the first CH, and unsure whether
> we
> > should require use of the second CH, but it doesn't sound like there's
> > consensus on that.
>
> it all depends on your threat model, if leaking information which kind of
> implementation you are running is useful information to the attacker, then
> having multiple implementations that are indistinguishable on protocol
> level
> may be very desirable
>

There are an enormous number of ways in which TLS stacks can vary and
requiring indistinguishable behavior is not a goal of the TLS spec.



> and in this specific example of record_size_limit, lack of agreement over
> extension from which Client Hello takes precedence will easily lead to
> interoperability failures
>

You're forbidden to change that value, so you'll only see interop failures
if the client is already nonconformant.

-Ekr


> --
> 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