Re: QUIC ossification

Jana Iyengar <jri.ietf@gmail.com> Fri, 22 February 2019 04:24 UTC

Return-Path: <jri.ietf@gmail.com>
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 10921130E11 for <quic@ietfa.amsl.com>; Thu, 21 Feb 2019 20:24:14 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.999
X-Spam-Level:
X-Spam-Status: No, score=-1.999 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.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 GFXbh8R9Kvpc for <quic@ietfa.amsl.com>; Thu, 21 Feb 2019 20:24:11 -0800 (PST)
Received: from mail-lf1-x12b.google.com (mail-lf1-x12b.google.com [IPv6:2a00:1450:4864:20::12b]) (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 001D41275F3 for <quic@ietf.org>; Thu, 21 Feb 2019 20:24:10 -0800 (PST)
Received: by mail-lf1-x12b.google.com with SMTP id h10so702249lfc.12 for <quic@ietf.org>; Thu, 21 Feb 2019 20:24:10 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=1zjaf0Cpk38hfPjK3JxQey2ejXwpPcpqtVfX5tILbkc=; b=HRtinBRRax++KqjChdu232JHg9JsvB5+kyawr/7ImA+pcb0T3fUJkboKzcd60ZwVXB Z0Nvf23rxjDNhNzKRamHi2suDM73/y78NxpfNi5qd1c43PWupsr0hJwaANC/FUwD5ysc JqT0Og8PXhjbJVz5+i5t7tki824lAJBb7nuHMyS3UkKAnYQ/+8dC2jhzY+9d7LhZrCf4 bYt1ma/nrwZ6hMrfggitHS38o+gyeP9zh06coPlCNoauN0W0Fu2sNUv76HT3QAG4lXOs LzuQrLeote9r4YjBtgyD0E0AZvINMaesQGjQwf0TW2uaxuPnbFciUJD6HW5KZu3gQxMg 9CnA==
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=1zjaf0Cpk38hfPjK3JxQey2ejXwpPcpqtVfX5tILbkc=; b=nTOyLCFgL2xiJ+HUtYvUXUcXakaGiwFZ4hPobNfo+b78zjosp+M+4LofJuBNPRyCz1 KKtCSPUzo1wLab0m+XKIYD8yfPM+LSXi+Qg8cmH7mLjZkqfYIptJ2UafTK1tSKrhiYOY XEwRsL/dod366kVEl+zsbezrOJuk3RM36BloPA7YIU/9IOGBmfNNHFqQIaobtamMUoPV yjfORw6atbMlTktl5aUK5fhF5qvXV45ET+pUqhSJHRZuZEM0FZ1tg9dO1azbu2THTjq4 aMzxLk/Hu7P1wAzTw6ypfMVVfMWDuNQ6jiuBG+JaWt+2qkYnS7R/q2+TLvvcbs+1QJO3 64OA==
X-Gm-Message-State: AHQUAuatoeKGkFWlLlq/l2f5flLZfR9HZHt9ihdkEvMibFPPrkw6v6nW 3nJd7vuq4+3d1walzJixiaVQF1+Bw6WViX2fQeI=
X-Google-Smtp-Source: AHgI3IZ5CHD9GZRU+9q3l7APvpCrr2kkDTJCYm+rAD9WK49E1km9ugBwpUdq4Wp9Ndk47UEjR+bqOhbS4zORjNOOPwI=
X-Received: by 2002:a19:5601:: with SMTP id k1mr950249lfb.99.1550809448940; Thu, 21 Feb 2019 20:24:08 -0800 (PST)
MIME-Version: 1.0
References: <f76aa399-f35d-46c5-b6a7-043d8704a90e@www.fastmail.com> <CACpbDcf_temqJ3EesvboKt280m-TEucMqa-NpYW7-UC5r0p1mQ@mail.gmail.com> <783327C4-3877-48F4-A41A-5987458C39B7@fb.com> <CACpbDccFRWeSYFGu7cjdsrWAnE_6KbhpPMZJ9kzN1KviAfEGJQ@mail.gmail.com> <067D562F-AC7C-463D-9C4D-D5ECF4D50FC9@trammell.ch> <C9BC63FD-9BE2-47B8-8D1C-EC27CEDF4D42@trammell.ch>
In-Reply-To: <C9BC63FD-9BE2-47B8-8D1C-EC27CEDF4D42@trammell.ch>
From: Jana Iyengar <jri.ietf@gmail.com>
Date: Thu, 21 Feb 2019 20:23:57 -0800
Message-ID: <CACpbDcf+eE_bO4ZN3vjBmrrJ2oB4-yCZ2WVEX6vkxjKJOmk6ww@mail.gmail.com>
Subject: Re: QUIC ossification
To: "Brian Trammell (IETF)" <ietf@trammell.ch>
Cc: Roberto Peon <fenix@fb.com>, QUIC WG <quic@ietf.org>, Martin Thomson <mt@lowentropy.net>
Content-Type: multipart/alternative; boundary="000000000000518b4d058273f6be"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/lLWieuMg1ILvqEGVXM8eBRl4L08>
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: Fri, 22 Feb 2019 04:24:14 -0000

Brian,

I agree that there are potentially other models as well, but the one we
know from experience is the naive one.  We should at least protect against
the one model we know, naive or not. I'll note that it quickly gets
difficult to come up with measures if we assume a smarter ossifier.

- jana

On Tue, Feb 19, 2019 at 11:03 PM Brian Trammell (IETF) <ietf@trammell.ch>
wrote:

> (oops, hit send too soon...)
>
> > On 20 Feb 2019, at 07:58, Brian Trammell (IETF) <ietf@trammell.ch>
> wrote:
> >
> > hi Jana,
> >
> > The middlebox adaptation model that this proposal addresses seems
> limited to middleboxes built based on naive traffic analysis and pre-QUIC
> assumptions about wire images. This is admittedly the model behind one of
> Google's experiences with QUIC middlebox breakage, and the one we seem most
> concerned with because by definition we cannot fix it by writing things in
> documents.
>
> I don't think these are the only things we're concerned about though.
> Concerns about partitioning VN space have a less naive model in mind: here
> we think more about default-deny firewalls that have been told that some
> versions of QUIC are okay but all others are not. As noted before I
> personally cannot think of a reason an operator would want to do this -- if
> you've already decided to allow a protocol with low observability and
> built-in extensibility as a design goal on your network, does the exact
> flavor really matter all that much? -- but it's a checkbox on the firewall
> feature list so yeah, I suppose someone will ship it.
>
> Are there other middlebox adaptation models we are concerned about here?
>
> Cheers,
>
> Brian
>
>
> >> On 20 Feb 2019, at 00:17, Jana Iyengar <jri.ietf@gmail.com> wrote:
> >>
> >> Roberto -- yes, that's basically what I'm proposing too, just one
> variant of how to go about doing it dynamically over time.
> >>
> >> On Tue, Feb 19, 2019 at 3:14 PM Roberto Peon <fenix@fb.com> wrote:
> >> As others have intimated in some form or another, you can also use
> multiple numbers to express “version 1”.
> >>
> >>
> >> For instance, pick 64 (or some similar constant) random numbers, and
> call them all version 1.
> >> -=R
> >>
> >>
> >>
> >> From: QUIC <quic-bounces@ietf.org> on behalf of Jana Iyengar <
> jri.ietf@gmail.com>
> >> Date: Tuesday, February 19, 2019 at 3:10 PM
> >> To: Martin Thomson <mt@lowentropy.net>
> >> Cc: QUIC WG <quic@ietf.org>
> >> Subject: Re: QUIC ossification
> >>
> >>
> >>
> >> On Tue, Feb 19, 2019 at 7:52 AM Martin Thomson <mt@lowentropy.net>
> wrote:
> >>
> >> I don't think that there is much value in using two version numbers to
> refer to the same protocol.  But even if we did, as long as we didn't
> establish any pattern in doing so, that couldn't be used against us.  So I
> might tentatively agree that 0x1 == 0x2 would be inadvisable, there is no
> strong need to do anything special with the first version.  Any attempt to
> profile QUIC will be done with full knowledge of the version number we
> pick, so randomness doesn't serve any real purpose.  Subsequent versions
> might need to use a randomized value, but we can make that decision then.
> >>
> >>
> >>
> >> I figured that making all version assignments random instead of
> special-casing 0x1 made it simpler to reason about and uniform to code for,
> but I actually don't care about the IANA assignment for v1 for the reason
> you note. v1 will be one specific bit-pattern on the wire to start of with,
> and that can just as well be 0x1. It still does segregate the space, but we
> can't do anything about it anyways - it'll be 0x1 or some other random
> number getting special treatment.
> >>
> >>
> >>
> >> The problem of course being that as long as v1 remains, we might find
> places that no other version does.  The QUIC "magic number" will be
> whatever we pick, and we can't prevent someone from fixating on that..
> We'll convince those people in the same way they will be convinced to open
> up UDP for QUIC version 1: by making a QUIC version 2 worth enabling.
> >>
> >>
> >>
> >> That was the entire point of having alternate and preferred versions to
> 0x1. If we have downgrade protection in place, and if there are those who
> try alternate version numbers for v1, that gives us what we need at the
> endpoints. I believe that there would be interest at some major vendors to
> do this at some endpoints. Presumably, we can convince Google to do
> something, since it has been bit by mbox ossification in the past. I am
> operating on the premise that we have buy in from a few major providers.
> >>
> >>
> >>
> >> IANA is for me a publication venue where these alternate versions are
> published and other clients/servers interested in keeping the ecosystem
> from ossifying can use these alternate versions as well.
> >>
> >>
> >>
> >> I completely get the don't segregate thing.  But to - I think -
> Mikkel's point about experimentation without permission, I do think that
> squatting is a perfectly sound approach in a space this big.  TLS people do
> it in a much smaller space.  As long squatters pick random values, they do
> so infrequently, and they get IANA registrations for codepoints relatively
> soon afterwards, the risk of collision is low.  Randomness here is useful -
> but primarily as a collision-avoidance technique.  The TLS extension
> codepoint 26 is a great example of why.  Keeping the bar on registrations
> low (FCFS is a reasonable policy) would also have the effect of making the
> pool of apparent versions larger, which might be more effective than any
> other strategy we might employ.
> >>
> >>
> >>
> >> I'm totally fine with experimentation without permission, and using
> random to avoid collision. My point was entirely about using alternate
> on-wire version numbers for v1. Nothing here about new or experimental
> versions.
> >>
> >>
> >>
> >
>
>