Re: Benjamin Kaduk's Discuss on draft-ietf-quic-transport-33: (with DISCUSS and COMMENT)
Benjamin Kaduk <kaduk@mit.edu> Thu, 07 January 2021 06:54 UTC
Return-Path: <kaduk@mit.edu>
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 3CD883A0B01; Wed, 6 Jan 2021 22:54:18 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.92
X-Spam-Level:
X-Spam-Status: No, score=-1.92 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_MSPIKE_H4=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] 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 PLHzrT_sWGSG; Wed, 6 Jan 2021 22:54:16 -0800 (PST)
Received: from outgoing.mit.edu (outgoing-auth-1.mit.edu [18.9.28.11]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 154563A0AFB; Wed, 6 Jan 2021 22:54:15 -0800 (PST)
Received: from kduck.mit.edu ([24.16.140.251]) (authenticated bits=56) (User authenticated as kaduk@ATHENA.MIT.EDU) by outgoing.mit.edu (8.14.7/8.12.4) with ESMTP id 1076s4CM017950 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 7 Jan 2021 01:54:08 -0500
Date: Wed, 06 Jan 2021 22:54:04 -0800
From: Benjamin Kaduk <kaduk@mit.edu>
To: Martin Thomson <mt@lowentropy.net>
Cc: The IESG <iesg@ietf.org>, draft-ietf-quic-transport@ietf.org, WG Chairs <quic-chairs@ietf.org>, quic@ietf.org, Lars Eggert <lars@eggert.org>
Subject: Re: Benjamin Kaduk's Discuss on draft-ietf-quic-transport-33: (with DISCUSS and COMMENT)
Message-ID: <20210107065404.GH93151@kduck.mit.edu>
References: <160996950953.25754.14270013028683006869@ietfa.amsl.com> <39c24306-42dc-454a-8a60-cfbd86ab6c64@www.fastmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Disposition: inline
In-Reply-To: <39c24306-42dc-454a-8a60-cfbd86ab6c64@www.fastmail.com>
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/8_WTTfhXSBIKe73ZvEeh1bHUDu8>
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: Thu, 07 Jan 2021 06:54:18 -0000
On Thu, Jan 07, 2021 at 03:52:00PM +1100, Martin Thomson wrote: > Responding to the DISCUSS point only: > > On Thu, Jan 7, 2021, at 08:45, Benjamin Kaduk via Datatracker wrote: > > This is very much a "discuss discuss", and I am not strongly convinced > > that there is a problem here, but if there is a problem it is a fairly big > > one. > > [... many words on version negotiation removed...] > > > > I'd love to hear more about how the WG decided to proceed > > with the current formulation, especially with regard to what > > consideration was given to non-standards-track new versions. > > I think that this is the key ask here. I don't think that this is an appropriate use of DISCUSS, I believe that the working group consensus is clear and clearly documented, but I'll attempt to answer faithfully nonetheless. By way of clarification, allow me to phrase a related (if not identical) concern in a way that closely adheres to the RFC 2026 requirements for a Proposed Standard specification: 1) is this an unresolved design choice? 2) did the WG resolve a design choice by concluding that it is safe to defer creation of a version downgrade protection mechanism? 3) if yes, what assumptions were used to make that choice? 4) are those assumptions valid? Most of the discourse in my ballot position involved inferences and assumptions as to the answers to (2) and (3), leaving uncertainty about (4). Thank you for continuing on an attempting to answer; I would prefer if we do not spend too much energy on the "appropriate use of DISCUSS" topic and attempt to conclude the technical discussion quickly instead. > The working group came to the conclusion around half way though the design process that we did not have a firm understanding of what it meant to authenticate the choice of QUIC version. We had mechanisms proposed, but we found either operational issues or ways to circumvent the protections in those proposals. Given those discoveries, we made a decision to defer protections for version negotiation until after version 1 was deployed. > > This comes with risks, though I don't think that uncoordinated development of mechanisms is the primary one. The primary risk is that we never publish a workable design. It is a hard problem, after all. > > Other relevant points made in that discussion: > > * You don't need to rely on version negotiation to deploy a new version, in the extreme case where we fail to secure it. We have Alt-Svc, for instance, which is secure enough for HTTP (though I will concede that SVCB isn't good enough). Indeed, we want to avoid the performance hit of version negotiation for those applications anyway, so we're unlikely to be affected. > > * The problem only exists if you have both clients and servers willing to support two different versions and the least preferred (or worst) doesn't provide any downgrade protection. Non-standards track versions that have no intent of coexisting with version 1 are therefore not a downgrade risk. Yes. Do we have any reason to believe that non-standards-track versions will or will not intend to coexist with v1? I, at least, do not have any data on that question either way. I think this relates to my (3) above -- are we assuming that the problem of downgrade protection only becomes relevant when there is specifically an IETF v2? > * Addressing version downgrade in QUIC doesn't address the problem of downgrade from QUIC to TCP (or vice versa if you prefer the other order). That said, we probably have to tolerate that sort of downgrade, at least for the moment. > > Ultimately, the working group is committed to solving the problem. There is adopted draft on defining a form of version negotiation. I've also recently updated draft-thomson-tls-snip which attempts to solve the problem more generally, including addressing the question of TCP/QUIC downgrade, which nothing this working group does will ever address. Not a lot of engagement on that, but I think what it reveals - in addition to this being HARD - is how the problem is not necessarily limited to QUIC. I agree that it's not necessarily limited to QUIC, though even having something that only works within the QUIC ecosystem would be better than nothing. It would be surprising to define a protocol with verisons and a Version Negotiation packet but end up with technical flaws that prevent that packet from working properly, though. > There has been a lot more discussion on this point than the above, and I have likely missed other key points, but I hope that this will suffice and we can get back to the YES position promptly. This helps some, and I'm happy to hear that the WG is committed to solving the problem. I think it would be fruitful to try to drill a little more into what assumptions we are making when we say (okay, I'm synthesizing a bit, but I believe this is the sentiment) that "it is safe to defer availability of this mechanism until a future version of the protocol exists". This might touch on things like: - is the only "future version" we care about IETF v2? - what role will non-standards-track versions play in the global ecosystem? - what does "safe" mean in that statement? - what properties are needed for a version downgrade mechanism to be called "secure"? (I recognize that answering that last one may end up being nearly as hard to answer as actually solving the problem.) My main goal here is to have some reasonable level of confidence that we are not putting ourselves in a position that will be hard or impossible to get out of in the future. Depending on what assumptions we are making, it may be very easy or somewhat less easy to achieve such confidence, but deferring entirely to future versions of the protocol without information on how or when such version(s) will appear leaves me without much confidence on that front. Thanks, Ben
- Benjamin Kaduk's Discuss on draft-ietf-quic-trans… Benjamin Kaduk via Datatracker
- Re: Benjamin Kaduk's Discuss on draft-ietf-quic-t… Lucas Pardue
- Re: Benjamin Kaduk's Discuss on draft-ietf-quic-t… Martin Thomson
- Re: Benjamin Kaduk's Discuss on draft-ietf-quic-t… Benjamin Kaduk
- Re: Benjamin Kaduk's Discuss on draft-ietf-quic-t… Martin Thomson
- Re: Benjamin Kaduk's Discuss on draft-ietf-quic-t… Jana Iyengar
- Re: Benjamin Kaduk's Discuss on draft-ietf-quic-t… Mikkel Fahnøe Jørgensen
- RE: Benjamin Kaduk's Discuss on draft-ietf-quic-t… Mike Bishop
- Re: Benjamin Kaduk's Discuss on draft-ietf-quic-t… Eric Rescorla
- Re: Benjamin Kaduk's Discuss on draft-ietf-quic-t… Benjamin Kaduk
- Re: Benjamin Kaduk's Discuss on draft-ietf-quic-t… Eric Rescorla
- Re: Benjamin Kaduk's Discuss on draft-ietf-quic-t… Spencer Dawkins at IETF
- Re: Benjamin Kaduk's Discuss on draft-ietf-quic-t… Martin Duke