Re: QUIC ossification

Roberto Peon <fenix@fb.com> Fri, 22 February 2019 21:35 UTC

Return-Path: <prvs=79566f5da4=fenix@fb.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 B52481275F3 for <quic@ietfa.amsl.com>; Fri, 22 Feb 2019 13:35:42 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.702
X-Spam-Level:
X-Spam-Status: No, score=-2.702 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIMWL_WL_MED=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=fb.com header.b=RfQt2Qg7; dkim=pass (1024-bit key) header.d=fb.onmicrosoft.com header.b=Kt9RyJ8q
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 V0Bw-G4P6a-0 for <quic@ietfa.amsl.com>; Fri, 22 Feb 2019 13:35:39 -0800 (PST)
Received: from mx0a-00082601.pphosted.com (mx0b-00082601.pphosted.com [67.231.153.30]) (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 1D1C0130E79 for <quic@ietf.org>; Fri, 22 Feb 2019 13:35:38 -0800 (PST)
Received: from pps.filterd (m0001255.ppops.net [127.0.0.1]) by mx0b-00082601.pphosted.com (8.16.0.27/8.16.0.27) with SMTP id x1MLWjTC013332; Fri, 22 Feb 2019 13:35:36 -0800
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fb.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : mime-version; s=facebook; bh=75b6MEBTAFnOMIdSwgPGmfp6snrCK4SlNSFIXHBSo7A=; b=RfQt2Qg7SFmRQqde1WxzHjwOL3bkRMTsYw+NDPL39qBi+kllQaJPsLQbir26gvZeuf0+ juHZemQ3osXc9JW3HtWq1TIVJqOfg6qNilIrEpR2ZkaVZNfj+DfX2pOaAAjdlBYBKbf8 n5BApnaI/jjAu93LOKPl5PK8SRVciJdzQaw=
Received: from mail.thefacebook.com ([199.201.64.23]) by mx0b-00082601.pphosted.com with ESMTP id 2qtpvjgeyk-13 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Fri, 22 Feb 2019 13:35:36 -0800
Received: from prn-mbx03.TheFacebook.com (2620:10d:c081:6::17) by prn-hub02.TheFacebook.com (2620:10d:c081:35::126) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.1.1531.3; Fri, 22 Feb 2019 13:35:29 -0800
Received: from prn-hub04.TheFacebook.com (2620:10d:c081:35::128) by prn-mbx03.TheFacebook.com (2620:10d:c081:6::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.1.1531.3; Fri, 22 Feb 2019 13:35:28 -0800
Received: from NAM03-DM3-obe.outbound.protection.outlook.com (192.168.54.28) by o365-in.thefacebook.com (192.168.16.28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.1.1531.3 via Frontend Transport; Fri, 22 Feb 2019 13:35:28 -0800
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fb.onmicrosoft.com; s=selector1-fb-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=75b6MEBTAFnOMIdSwgPGmfp6snrCK4SlNSFIXHBSo7A=; b=Kt9RyJ8qQK1XBkOsVfpozlFX9a68OKn4Prft8TvJwQ3X4JQzYLXnJd+VHi39taekxUYUOonWnu4owGEbScN1PRUGac/w1/7Ln0N3Div7JwEfehY3o9gqFfwXWfJnfC+IXyYH04bfOZGW6rR1On60OprHE4W0j7HL6nkBmz1/nXI=
Received: from BN7PR15MB2308.namprd15.prod.outlook.com (52.132.217.149) by BN7PR15MB2196.namprd15.prod.outlook.com (52.132.216.32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1643.16; Fri, 22 Feb 2019 21:35:26 +0000
Received: from BN7PR15MB2308.namprd15.prod.outlook.com ([fe80::2496:df75:390f:90a4]) by BN7PR15MB2308.namprd15.prod.outlook.com ([fe80::2496:df75:390f:90a4%5]) with mapi id 15.20.1643.014; Fri, 22 Feb 2019 21:35:26 +0000
From: Roberto Peon <fenix@fb.com>
To: "ek@loon.co" <ek@loon.co>, Jana Iyengar <jri.ietf@gmail.com>
CC: "Brian Trammell (IETF)" <ietf@trammell.ch>, QUIC WG <quic@ietf.org>, Martin Thomson <mt@lowentropy.net>
Subject: Re: QUIC ossification
Thread-Topic: QUIC ossification
Thread-Index: AQHUwxih7UYarYoV30WBSlEhJDleK6Xcr5EA//+EwACAAKdJAP//fAuAgAGRSoCAAArqgIAABPsAgAAA14CAAAMfgIAACY0A//+6QoAAEcIhgAAHiM6AAAFCw4AAAtg4AAAAMeuAAABRNgAAAVt/AAAAuC4AAAHDNQAAHrd+gAAAHQ4AAABwzoAACKm9AAAAEgiAAAAr9QAAACHTgAAATyAAAALUMwAAywJVgAAZs5wAAA9NEYD//3slgIAAhuyAgACA9oCAAAFdAIAC+AOAgAAbZQCAAH6vgA==
Date: Fri, 22 Feb 2019 21:35:25 +0000
Message-ID: <DAC9E580-909C-4E9E-82E0-A6AB22CADA24@fb.com>
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> <CACpbDcf+eE_bO4ZN3vjBmrrJ2oB4-yCZ2WVEX6vkxjKJOmk6ww@mail.gmail.com> <CAAedzxqD8UL39vaxRrugLZR38hXPK9gB8PqPi=kmG2D=eUpcmg@mail.gmail.com>
In-Reply-To: <CAAedzxqD8UL39vaxRrugLZR38hXPK9gB8PqPi=kmG2D=eUpcmg@mail.gmail.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
user-agent: Microsoft-MacOutlook/10.16.1.190220
x-originating-ip: [2620:10d:c090:200::5:24d6]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: f6d5a282-905c-45c2-1896-08d6990da901
x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(5600110)(711020)(4605104)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(2017052603328)(7153060)(7193020); SRVR:BN7PR15MB2196;
x-ms-traffictypediagnostic: BN7PR15MB2196:
x-microsoft-exchange-diagnostics: 1; BN7PR15MB2196; 20:g7kZz661T5igFQQEF7J2jXcXc7Pg3CE4FQnpdHuWRkrBnBAquxoj4oEHQixe1fiM322AsLlaZ+9BhSsm8whpmy1dWUG46DcuN0ft3ihFvr6nx2FDn6kLBdqvdT7HvOE28oxNg0otlxjErE0n+3iL8brHoT77+Gx4G1NI5U1v6pw=
x-microsoft-antispam-prvs: <BN7PR15MB21963AA87C35D1FBF1DF66F7CD7F0@BN7PR15MB2196.namprd15.prod.outlook.com>
x-forefront-prvs: 09565527D6
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(376002)(346002)(136003)(366004)(396003)(39860400002)(189003)(199004)(76176011)(6116002)(53546011)(6506007)(14444005)(71200400001)(7736002)(97736004)(2906002)(83716004)(33656002)(478600001)(105586002)(54896002)(102836004)(8936002)(25786009)(256004)(5660300002)(36756003)(86362001)(14454004)(71190400001)(93886005)(81156014)(68736007)(486006)(106356001)(446003)(8676002)(46003)(221733001)(110136005)(186003)(476003)(7116003)(2616005)(11346002)(6486002)(3480700005)(6436002)(99286004)(6246003)(82746002)(561944003)(53936002)(316002)(6512007)(4326008)(236005)(2501003)(229853002)(81166006)(6306002)(54906003)(58126008)(24704002); DIR:OUT; SFP:1102; SCL:1; SRVR:BN7PR15MB2196; H:BN7PR15MB2308.namprd15.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1;
received-spf: None (protection.outlook.com: fb.com does not designate permitted sender hosts)
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam-message-info: /urfFtBaSrF2EO1zsXjR3AShRDW/Cqyoj3A/wyOFTKt0y5MInfJnAyXB/ryollYiSw5MEUtLi/AVFgkgeZwrd8JWT67tHPBc4y2/M9+f99dqlWX1gCvY35jE0XjBhU38ZCLbfobkC3lFDL2+4RM/rQFgBdqU6RV89EhXBnNUm8dq7bnUhJUezQAZlxdZ1II52D2NS860ZecgxscHPPaZ1h29E1kt0BJwTHB3HyylNrHn8I0kpNRJxbM+T0z/EqqMne2C8/kliMZJOoJRE8LRcUPSOF52HUfOlacztMQXmBzapnVo7xkbWGz859ubpPi5VVz3RMBKH6nVfgM4u/z31m+r7M8dIQ6aarmiKc5lk68YH4hMUdtQEHB6GEpH6azzllGGYGykKa44i7hFG03gTavnLpHlMj/eXA93MqqX1cE=
Content-Type: multipart/alternative; boundary="_000_DAC9E580909C4E9E82E0A6AB22CADA24fbcom_"
MIME-Version: 1.0
X-MS-Exchange-CrossTenant-Network-Message-Id: f6d5a282-905c-45c2-1896-08d6990da901
X-MS-Exchange-CrossTenant-originalarrivaltime: 22 Feb 2019 21:35:26.8099 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 8ae927fe-1255-47a7-a2af-5f3a069daaa2
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN7PR15MB2196
X-OriginatorOrg: fb.com
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:, , definitions=2019-02-22_13:, , signatures=0
X-Proofpoint-Spam-Reason: safe
X-FB-Internal: Safe
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/60K9wK8bTU7LBGLIM9EgX_nxP4U>
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 21:35:43 -0000

This would be “fun” (i.e. somewhat hard) to attempt to match via simple filtering rules :
   When expressed in-the-clear, version is expressed as two var-ints, which are summed and modulo 2^16
i.e.
   version = (decodeVarInt() + decodeVarInt()) % (1 << 16)
-=R

From: Erik Kline <ek@loon.co>
Reply-To: "ek@loon.co" <ek@loon.co>
Date: Thursday, February 21, 2019 at 10:02 PM
To: Jana Iyengar <jri.ietf@gmail.com>
Cc: "Brian Trammell (IETF)" <ietf@trammell.ch>, QUIC WG <quic@ietf.org>, Roberto Peon <fenix@fb.com>, Martin Thomson <mt@lowentropy.net>
Subject: Re: QUIC ossification



On Thu, 21 Feb 2019 at 20:24, Jana Iyengar <jri.ietf@gmail.com<mailto:jri.ietf@gmail.com>> wrote:
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.

You would pretty much have to move version negotiation bits (and subsequent protocol differences) to underneath the crypto umbrella, wouldn't you?  Negotiating a newer version would have to be like negotiating some extensions, or something, I would think...

- jana

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

> On 20 Feb 2019, at 07:58, Brian Trammell (IETF) <ietf@trammell.ch<mailto: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<mailto: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<mailto: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<mailto:quic-bounces@ietf.org>> on behalf of Jana Iyengar <jri.ietf@gmail.com<mailto:jri.ietf@gmail.com>>
>> Date: Tuesday, February 19, 2019 at 3:10 PM
>> To: Martin Thomson <mt@lowentropy.net<mailto:mt@lowentropy.net>>
>> Cc: QUIC WG <quic@ietf.org<mailto:quic@ietf.org>>
>> Subject: Re: QUIC ossification
>>
>>
>>
>> On Tue, Feb 19, 2019 at 7:52 AM Martin Thomson <mt@lowentropy.net<mailto: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.
>>
>>
>>
>