Re: [TLS] What counts as the same ClientHello?

Ilari Liusvaara <ilariliusvaara@welho.com> Mon, 04 September 2017 20:59 UTC

Return-Path: <ilariliusvaara@welho.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 E6B121320B5 for <tls@ietfa.amsl.com>; Mon, 4 Sep 2017 13:59:47 -0700 (PDT)
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] autolearn=ham autolearn_force=no
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 fyWtRP7XZDoK for <tls@ietfa.amsl.com>; Mon, 4 Sep 2017 13:59:46 -0700 (PDT)
Received: from welho-filter3.welho.com (welho-filter3.welho.com [83.102.41.25]) by ietfa.amsl.com (Postfix) with ESMTP id D4AC212426E for <tls@ietf.org>; Mon, 4 Sep 2017 13:59:45 -0700 (PDT)
Received: from localhost (localhost [127.0.0.1]) by welho-filter3.welho.com (Postfix) with ESMTP id 148925DE5C; Mon, 4 Sep 2017 23:59:43 +0300 (EEST)
X-Virus-Scanned: Debian amavisd-new at pp.htv.fi
Received: from welho-smtp1.welho.com ([IPv6:::ffff:83.102.41.84]) by localhost (welho-filter3.welho.com [::ffff:83.102.41.25]) (amavisd-new, port 10024) with ESMTP id r05nDLtMg0x3; Mon, 4 Sep 2017 23:59:42 +0300 (EEST)
Received: from LK-Perkele-VII (87-92-19-27.bb.dnainternet.fi [87.92.19.27]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by welho-smtp1.welho.com (Postfix) with ESMTPSA id 2B2DE28A; Mon, 4 Sep 2017 23:59:38 +0300 (EEST)
Date: Mon, 04 Sep 2017 23:59:37 +0300
From: Ilari Liusvaara <ilariliusvaara@welho.com>
To: Martin Thomson <martin.thomson@gmail.com>
Cc: Benjamin Kaduk <bkaduk@akamai.com>, Noah Robbin <Noah_Robbin@symantec.com>, "tls@ietf.org" <tls@ietf.org>
Message-ID: <20170904205937.xvm6bt2wvowjgwpq@LK-Perkele-VII>
References: <89458B97-EEB1-4F3C-8624-796447B21CC2@symantec.com> <20170822201354.ojkuap7simes4g4v@LK-Perkele-VII> <1ca03f97-2a16-0eea-ea2c-38e36b303bbf@akamai.com> <20170830125734.6gcnuwez4fprsajo@LK-Perkele-VII> <CABkgnnX5Hwja9yJzTsQKZYFYj7MCXc5Nv7f8DdWTzeYMCO1xHA@mail.gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Disposition: inline
In-Reply-To: <CABkgnnX5Hwja9yJzTsQKZYFYj7MCXc5Nv7f8DdWTzeYMCO1xHA@mail.gmail.com>
User-Agent: NeoMutt/20170609 (1.8.3)
Sender: ilariliusvaara@welho.com
Archived-At: <https://mailarchive.ietf.org/arch/msg/tls/achTUlFkGknw8Yz9pJ7C3fUZrpc>
Subject: Re: [TLS] What counts as the same ClientHello?
X-BeenThere: tls@ietf.org
X-Mailman-Version: 2.1.22
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: Mon, 04 Sep 2017 20:59:48 -0000

On Thu, Aug 31, 2017 at 09:50:07AM +1000, Martin Thomson wrote:
> On 30 August 2017 at 22:57, Ilari Liusvaara <ilariliusvaara@welho.com> wrote:
> > However, I identified a new category of extensions that I didn't notice
> > before: Dependent on altered extensions. There are no such standardized
> > extensions, but there is at least one proposal (in WG draft stage).
> 
> Is it possible that you could help us by sharing which one?

early_token_binding from  draft-ietf-tokbind-tls13-0rtt


However, looks like in this case, the server advertises support for
this in an NST extension, so at least it doesn't get thrown to random
servers.


Thinking about this more, it seems that any field or extension that
could be different across retry falls into one of three categories:

1) Something related to 0-RTT.
2) Something "feral": These things basically do not play by the normal
   rules[1].
3) Something that does not actually negotiate state[2].

Altering anything else will probably provoke Undefined Behavior due to
unknown state commitments.


[1] E.g., anything that goes into HelloRetryRequest or ServerHello,
and supported_versions.


[2] E.g. (Random), Padding.



-Ilari