Re: Back to work

Martin Thomson <mt@lowentropy.net> Wed, 28 October 2020 02:41 UTC

Return-Path: <mt@lowentropy.net>
X-Original-To: quic@ietfa.amsl.com
Delivered-To: quic@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 3DB2D3A0BC0 for <quic@ietfa.amsl.com>; Tue, 27 Oct 2020 19:41:42 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.098
X-Spam-Level:
X-Spam-Status: No, score=-2.098 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=lowentropy.net header.b=pX9M08ng; dkim=pass (2048-bit key) header.d=messagingengine.com header.b=gO2RBkDl
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 icE-zMAd0OL0 for <quic@ietfa.amsl.com>; Tue, 27 Oct 2020 19:41:40 -0700 (PDT)
Received: from out2-smtp.messagingengine.com (out2-smtp.messagingengine.com [66.111.4.26]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 87CC83A0D6C for <quic@ietf.org>; Tue, 27 Oct 2020 19:41:38 -0700 (PDT)
Received: from compute1.internal (compute1.nyi.internal [10.202.2.41]) by mailout.nyi.internal (Postfix) with ESMTP id D50545C0143; Tue, 27 Oct 2020 22:41:37 -0400 (EDT)
Received: from imap10 ([10.202.2.60]) by compute1.internal (MEProxy); Tue, 27 Oct 2020 22:41:37 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=lowentropy.net; h=mime-version:message-id:in-reply-to:references:date:from:to :cc:subject:content-type; s=fm3; bh=fApEXK2BQbeVhuyaML41lqKkaYSL betqxHbX2bWaOLY=; b=pX9M08ngGy3Fufuf/qJOGn51i6mBU863ny6nRlHfFn6J 7/JPztzITaSp3upTw13NIBjFyxEQWFcxEQHRtx4yLOquZr8sRjvcXzDNP2IKUeV8 V60rxguA0Nr/BSAsbXxhraq982mvxtljXtGh7a1CTM4yRZUC5atKJYpp7Z72gQ2H 9cL16EoR3CM/lbIvRBM2OFGlSr+ZrwfjjU3Nn4SNKV6UXtvcSUGkBA+trTDi8Kbd vjBfzQpG9clQerO5UxtP5hGhCAfV6GZCPOOuENC5kGzWLriEWxgEXKR1QKPW/XuE sHCATDxlA5gwb/jYwHz8LJytHHZ+VnPCsUzhJRvD8g==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to:x-me-proxy :x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm1; bh=fApEXK 2BQbeVhuyaML41lqKkaYSLbetqxHbX2bWaOLY=; b=gO2RBkDlay/tFI9QV2n4h/ cw0jtiJM8HXpZDYYMepfWeKm9iUxV4MG4Qf5GHbxHBMQIU4Ni2Ru101PttXtjwyT wv0rAN+MEO1f9hfWFouevAxBWiCicqNOFqC2pOJKKZPaSUsu5OMi039IhE9eRC69 4yw0987Si9tTaqzltbpsySskXKhtgZbw0ZgAJPHQZGaD7sJ1WPQ2n3EA8wJRrD5l Nh02EsXB+jHiKujvNG3mvAu2jbe/MknnevblJTMYS+1vXJyfaUCTBxYSq3T/UrLl M5YBl0pTX8ZT9iHNwdvPU9deAN5PEsSNz3bscqgETQt34t6GlXDgbIIo16TbqzXw ==
X-ME-Sender: <xms:YdqYXwRSl3m4kZppe6_ByEnSTgrhRBNMBnlW9a9ohDQEEbLypIxH4Q> <xme:YdqYX9yfwxQC5-whqF7TVklKBSVBFZAPjabKmB5zyg00ZqM6w3lVT7dNedscQhmwf c3j6R34CLoM7PbLwsg>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedujedrledtgdeglecutefuodetggdotefrodftvf curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu uegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenuc fjughrpefofgggkfgjfhffhffvufgtsehttdertderredtnecuhfhrohhmpedfofgrrhht ihhnucfvhhhomhhsohhnfdcuoehmtheslhhofigvnhhtrhhophihrdhnvghtqeenucggtf frrghtthgvrhhnpedtgefhkeegfffhteefjeekveefteehheelgeehheevleefteefieek fefgjedvgeenucffohhmrghinhepghhithhhuhgsrdgtohhmnecuvehluhhsthgvrhfuih iivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepmhhtsehlohifvghnthhrohhphidr nhgvth
X-ME-Proxy: <xmx:YdqYX90QG7ftHxUo7PIjrHscw-o_aT-tQleREUN3AmUN2Z6lVaIIWQ> <xmx:YdqYX0AoTL4XXCBmMUutDy6O1GFuYL42zPteSLCp6iFKIYltzliliw> <xmx:YdqYX5hn2klsDw5F10sTJUXTXDuI5u3bDXvSnAYd9Y9XArTO51vppg> <xmx:YdqYXzdyEVyJHICa6wJWfBZnLqcNzdtxgIUuC0U6Z7vswKrYMxhbhg>
Received: by mailuser.nyi.internal (Postfix, from userid 501) id 8D03920075; Tue, 27 Oct 2020 22:41:37 -0400 (EDT)
X-Mailer: MessagingEngine.com Webmail Interface
User-Agent: Cyrus-JMAP/3.3.0-529-g69105b1-fm-20201021.003-g69105b13
Mime-Version: 1.0
Message-Id: <efe63bdf-7af2-49c0-932d-3a36de61bdd6@www.fastmail.com>
In-Reply-To: <b80cf41524865c171712bfcfca7ef92e2a472044.camel@ericsson.com>
References: <0f150dec-e408-48bf-8e54-05e3e96e7a85@www.fastmail.com> <CALZ3u+a1fBq1MB52H-h-JYY=OOkOo9=jEu7smNVeyy_9U3abEw@mail.gmail.com> <CAKcm_gNoB=nP050VRfw5MXAAw-HhpnKHp6pAx9onaA4a5CH5-Q@mail.gmail.com> <b80cf41524865c171712bfcfca7ef92e2a472044.camel@ericsson.com>
Date: Wed, 28 Oct 2020 13:41:18 +1100
From: Martin Thomson <mt@lowentropy.net>
To: Magnus Westerlund <magnus.westerlund@ericsson.com>
Cc: "quic@ietf.org" <quic@ietf.org>
Subject: Re: Back to work
Content-Type: text/plain
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/rx2EXJXW6xxgWiHAmTa6Fx3b4fI>
X-BeenThere: quic@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Main mailing list of the IETF QUIC working group <quic.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/quic>, <mailto:quic-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/quic/>
List-Post: <mailto:quic@ietf.org>
List-Help: <mailto:quic-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/quic>, <mailto:quic-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 28 Oct 2020 02:41:42 -0000

Thanks to everyone for the feedback.

I've written up a draft pull request here: https://github.com/quicwg/base-drafts/pull/4264

This does something like what Magnus suggests below.  It's not pretty, because in some very common cases path validation could take twice as long, and it's more complicated, but I think that it is at least principled.

On Wed, Oct 28, 2020, at 04:04, Magnus Westerlund wrote:
> On Tue, 2020-10-27 at 09:12 -0400, Ian Swett wrote:
> > Thanks for summarizing this issue. I think the above discussion is about
> > immediate migration and repeated immediate migrations, but I also wonder if
> > we've introduced a single packet amplification attack by requiring
> > PATH_RESPONSEs be padded on new paths without a requirement on the size of
> > PATH_CHALLENGE(see first item)?
> > 
> > Validating a new path
> > If one receives only a PATH_CHALLENGE on a new path, then the server
> > responds with a full-sized PATH_RESPONSE.  This seems safe.  If a non-padded
> > PATH_CHALLENGE is received on a new path, then the peer is supposed to send a
> > fully padded PATH_RESPONSE on the path, which could be >20x larger.  I'm not
> > sure if we care about this, but I wanted to point it out. 
> > 
> > Immediately migrating to a new path
> > I think we should remove the text about allowing kMinimumWindow each
> > kInitialRtt after migration and change it to the 3x limit.  I'm actually
> > surprised the text about 2*kInitialWindow still exists, since recovery says
> > "Until the server has validated the client's address on the path, the amount
> > of data it can send is limited to three times the amount of data received, as
> > specified in Section 8.1 of {{QUIC-TRANSPORT}}.".
> > 
> > In order to not get deadlocked by the 3x factor, I think we should change the
> > newly added MUSTs to only apply to path validation prior to migration, not the
> > peer responding to migration.
> > 
> > My reasoning is that if a peer migrates prior to validating the path, it means
> > it's either unintentional or they have no other choice, so the migrating peer
> > has implicitly decided that validating PathMTU is not a prerequisite to
> > migrating.
> 
> So some quesitons and ideas as I think it is relevant to resolve this as best as
> possible.
> 
> So isn't this recreating the issue that if the client initiates a migration to a
> new path that is not QUIC compatible, by responding with a minimal size packet
> and completing the migration and then if the server performs the path
> verification with 1200 bytes UDP payload it fails. Thus maintaining a broken
> path. 
> 
> So is there need for the non pre-validated path migration case that one need
> need to do a two step process where one will ACK with minimal packet while
> initiating path validation. If path validatation fails then maybe one need to
> close down the connection as the migration ended up on a path that was unable to
> support QUIC. The question here is how to avoid the DoS attack this may open up
> if an attack rewrites source address of packets. 
> 
> So Maybe the path validation needs to be a two step process. First a return
> routability over the new path to verify that it is bi-directional. When that has
> been verified one does a test with minimal MTU to prove it to be QUIC
> compatible. This might even be done with application data if there is some that
> are available to send. 
> 
> But, I think that one needs to work through the criterias for when the QUIC
> connection is shut down under the conditions that the path available is not
> supporting 1200 bytes. Also do we end up in a situation where the client needs
> to do the second step itself towards the server to verify the path so that it
> can determine if it needs to try another path if this one doesn't work? 
> 
> Cheers
> 
> Magnus
> 
> 
> Attachments:
> * smime.p7s