Re: QUIC ossification

Roberto Peon <fenix@fb.com> Wed, 13 February 2019 00:21 UTC

Return-Path: <prvs=7947745a3f=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 7D0CE1228B7 for <quic@ietfa.amsl.com>; Tue, 12 Feb 2019 16:21:16 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.68
X-Spam-Level:
X-Spam-Status: No, score=-2.68 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, T_SPF_HELO_TEMPERROR=0.01, T_SPF_TEMPERROR=0.01, URIBL_BLOCKED=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=dLF5Nijj; dkim=pass (1024-bit key) header.d=fb.onmicrosoft.com header.b=ZN9OwJ/B
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 AHK03BWcRX-7 for <quic@ietfa.amsl.com>; Tue, 12 Feb 2019 16:21:13 -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 C61CB1200D8 for <quic@ietf.org>; Tue, 12 Feb 2019 16:21:13 -0800 (PST)
Received: from pps.filterd (m0089730.ppops.net [127.0.0.1]) by m0089730.ppops.net (8.16.0.27/8.16.0.27) with SMTP id x1D041b0011963; Tue, 12 Feb 2019 16:21:12 -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=bSaiZxsBE+cdm/QrhJjJVJ0x76/Qn1C84jymdDTBqD0=; b=dLF5Nijjs5ATf6/iDh090PWgghmj1f3hyjq9ANXaGD7iEsnOW2uLWA3yU8L0EgtS0KbC 653UM1bB+PFk0QMJXNfd68PDpmBJGAkWs8v1sQy+gZrKNrRl95GCnGf5PFyUhBMeczGl Dj8uEkpGsNO/bvO1d4JLRv69ciAHsci7wqI=
Received: from mail.thefacebook.com ([199.201.64.23]) by m0089730.ppops.net with ESMTP id 2qm7s805n9-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Tue, 12 Feb 2019 16:21:12 -0800
Received: from prn-mbx01.TheFacebook.com (2620:10d:c081:6::15) by prn-hub04.TheFacebook.com (2620:10d:c081:35::128) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.1.1531.3; Tue, 12 Feb 2019 16:21:10 -0800
Received: from prn-hub04.TheFacebook.com (2620:10d:c081:35::128) by prn-mbx01.TheFacebook.com (2620:10d:c081:6::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.1.1531.3; Tue, 12 Feb 2019 16:21:10 -0800
Received: from NAM01-BN3-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; Tue, 12 Feb 2019 16:21:10 -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=bSaiZxsBE+cdm/QrhJjJVJ0x76/Qn1C84jymdDTBqD0=; b=ZN9OwJ/BjkMSsKK2ZJqv21GN58itcnBe01zlP4w5M31YbK70Iwc4LHiEyADPXJQlyg473yIAGEddKmKrvNSDObDpzewYymmScNJTM7w+ojBEEoueDuYU1lZziDn7RaA1l6TMgBdgkggRK3S6IA6x4DxZPpYXL70SJfVropbcv1c=
Received: from BYAPR15MB2312.namprd15.prod.outlook.com (52.135.197.146) by BYASPR01MB0029.namprd15.prod.outlook.com (20.177.126.202) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1622.16; Wed, 13 Feb 2019 00:20:52 +0000
Received: from BYAPR15MB2312.namprd15.prod.outlook.com ([fe80::2403:324c:ac17:7084]) by BYAPR15MB2312.namprd15.prod.outlook.com ([fe80::2403:324c:ac17:7084%5]) with mapi id 15.20.1601.023; Wed, 13 Feb 2019 00:20:52 +0000
From: Roberto Peon <fenix@fb.com>
To: David Schinazi <dschinazi.ietf@gmail.com>
CC: Martin Thomson <mt@lowentropy.net>, "quic@ietf.org" <quic@ietf.org>
Subject: Re: QUIC ossification
Thread-Topic: QUIC ossification
Thread-Index: AQHUwxih7UYarYoV30WBSlEhJDleK6Xcr5EA//+EwACAAKdJAP//fAuA
Date: Wed, 13 Feb 2019 00:20:52 +0000
Message-ID: <47E7A834-B6CD-4D73-BF49-8768A48CADF0@fb.com>
References: <CAM4esxTm0GiXnow4Vyv0UX6kFW4U3zJgVrN_JzD31Sm6sxoYGg@mail.gmail.com> <1550007332.441557.1656692832.0E5412AE@webmail.messagingengine.com> <9425344B-D72F-474D-A549-AA2453E57F19@fb.com> <CAPDSy+5LikoojquLhaW58DbJ3VrGXUViaD0aHcTkxBJGzFjgQA@mail.gmail.com>
In-Reply-To: <CAPDSy+5LikoojquLhaW58DbJ3VrGXUViaD0aHcTkxBJGzFjgQA@mail.gmail.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
user-agent: Microsoft-MacOutlook/10.15.0.190117
x-originating-ip: [2620:10d:c090:200::7:55b7]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 4f941201-08ec-4113-3e65-08d691491ced
x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600110)(711020)(4605077)(2017052603328)(7153060)(7193020); SRVR:BYASPR01MB0029;
x-ms-traffictypediagnostic: BYASPR01MB0029:
x-microsoft-exchange-diagnostics: 1; BYASPR01MB0029; 20:+zN0l7N5t2SUERJRn+oFx7LP81Y7mweURVNzG5tBv2UJbfYB8C1WjBqbDYmjV7qShQwXltFQvsuB/WXn6HEbW07x4wYufYQMYxF+D1dIKCeMV7SfBBC9V46P/84thyMK1sP3Idp2Aajjb7VyOO50VTHFb9IfJOU6lYFUbFVQ2r8=
x-microsoft-antispam-prvs: <BYASPR01MB0029911BF1F8174AE85837DDCD660@BYASPR01MB0029.namprd15.prod.outlook.com>
x-forefront-prvs: 094700CA91
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(136003)(396003)(366004)(346002)(39860400002)(376002)(189003)(199004)(68736007)(6246003)(99286004)(4326008)(97736004)(236005)(476003)(25786009)(36756003)(7116003)(221733001)(7736002)(82746002)(6436002)(6306002)(486006)(14454004)(6512007)(8676002)(58126008)(6116002)(186003)(54896002)(53936002)(76176011)(6916009)(105586002)(11346002)(446003)(316002)(86362001)(6506007)(3480700005)(106356001)(81156014)(81166006)(2906002)(6486002)(71190400001)(71200400001)(14444005)(256004)(478600001)(102836004)(8936002)(33656002)(2616005)(46003)(93886005)(54906003)(6346003)(229853002)(83716004)(53546011)(569394003); DIR:OUT; SFP:1102; SCL:1; SRVR:BYASPR01MB0029; H:BYAPR15MB2312.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: 85Hq2RN6KKhQ0UOihQQojUIBtBSe8DEcx/OSPlJ8ZcBh9cN5Ok14Fur+J7Phwn5Nrv6EBD9aFbveSlV/t4hgLRPSK0jX01UhphQWaFz8/5Xd7QR03wZWXs17dZyY7OGDpgOG0ossAk0BKWXLCHbaxPNz3OFWkmYddxYiI9Q99MDaktRynG8YPZ1/kzzgsZc9QK9i8eyaGY8qdasUqaUuM8SKpj9c81ePQKxMjfYARTpF1a4n5XB29V50o/a584NmsKyC5cNcGCqlFJT4os6/FXM5FVHRMYqK+DOGwlSkPS7mcmjsFF322sPvvJLUXurhFTesLCgpXjC8hP7j/RzDoaDYhfVu3MLWwWKCQUM9jyV/z5lxaBVMW4DhYMBqG8MQaYreka51TdtMBeq2qr15zYJsRwUsmURq2CTIZRiCJkA=
Content-Type: multipart/alternative; boundary="_000_47E7A834B6CD4D73BF498768A48CADF0fbcom_"
MIME-Version: 1.0
X-MS-Exchange-CrossTenant-Network-Message-Id: 4f941201-08ec-4113-3e65-08d691491ced
X-MS-Exchange-CrossTenant-originalarrivaltime: 13 Feb 2019 00:20:52.2433 (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: BYASPR01MB0029
X-OriginatorOrg: fb.com
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:, , definitions=2019-02-12_13:, , signatures=0
X-Proofpoint-Spam-Reason: safe
X-FB-Internal: Safe
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/D5E-o9VVife-my1_uiTqbe9Esco>
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, 13 Feb 2019 00:21:16 -0000

I don’t have an opinion on how version is negotiated yet.
I’m not convinced it is easy to get right. It may be more correct for me to say that I’m convinced it is reasonable difficult to get right because it is the most important of the various invariants.

I also suspect that you need more than one way to do it, e.g. in-band and out-of-band (which could be in-band in a V2 to allow for upgrade to something else). Then does a client cache the version? For how long/where? Per IP? Hostname? (blah blah.. etc. etc.)

I can say that the ALPN and NPN approaches each had their positives and negatives, and in the end, having something like either is probably good enough.

Rather than an opinion on how it should be done, I have an opinion that we need to add this soon, as a V2.

-=R

From: David Schinazi <dschinazi.ietf@gmail.com>
Date: Tuesday, February 12, 2019 at 4:13 PM
To: Roberto Peon <fenix@fb.com>
Cc: Martin Thomson <mt@lowentropy.net>, "quic@ietf.org" <quic@ietf.org>
Subject: Re: QUIC ossification

I think we may be able to limit ossification of version numbers by adding some GREASE to the (upcoming) in-band compatible version upgrade extension (what used to be EKR's PR). The idea of that extension is that the client sends a QUICv1 initial containing a transport parameter indicating it supports this extension and what versions of QUIC it supports. The server can then send its replies with a new QUIC version number. Back to GREASE: one option here would be for us to burn some versions for "v1 compatible version negotiation greasing" (similar but different to 0x?a?a?a?a) and servers can in-band upgrade to those versions. But we could also do that in the reverse direction: the servers advertise support for one of these in Alt-Svc and clients send their Initial to that version, and the server can then perform in-band version change to v1, to another of these versions, or just keep the client's version for the life of this connection. This will cause ossifying middleboxes to break these connections.

Thoughts?

David

On Tue, Feb 12, 2019 at 2:15 PM Roberto Peon <fenix@fb.com<mailto:fenix@fb.com>> wrote:
My fear/experience around this is why I'd strongly recommend doing a QUIC V2 as soon as possible where the delta from V1 -> V2 is limited to *solely* what is necessary for version negotiation.

We can simultaneously have a V3 conversation which would  include whatever else we decide we need to change/add as a separate conversation which depends on V2.

-=R

On 2/12/19, 1:36 PM, "QUIC on behalf of Martin Thomson" <quic-bounces@ietf.org<mailto:quic-bounces@ietf.org> on behalf of mt@lowentropy.net<mailto:mt@lowentropy.net>> wrote:

    On Wed, Feb 13, 2019, at 08:18, Martin Duke wrote:
    > 1) Version. I can't think of any immediate negative consequences for a
    > middlebox that drops any long header with a version > 1. TLS 1.3 had to
    > surrender to this problem by hiding the version elsewhere.
    >
    > We might avoid this by routinely coalescing long headers with random
    > version fields to connection-critical packets. Beyond that, I'm out of
    > great ideas. If we don't have a robust defense against this, we ought to
    > put some thought into how to deploy a v2 if the version fields is
    > inoperable.

    As Mike points out, the Length field is version-specific, so there is no real defense here other than - as many have suggested - using the version field actively.  That means shipping another version.  In a sense, the fact that Google are still not on the same version gives us some time, but it could mean that we might want to look toward having the "add version negotiation and fallback protection" draft define a version rather than an extension.

    > 2) Client Transport Parameters. Initial Keys will help a little bit, but in
    > TLS1.3 CCS still sorta exists because middleboxes are inspecting packets so
    > deeply. It's not viable for v2 to have the same transport parameters; it's
    > only slightly less gross to send v2 client TPs in some later message and
    > have to send a fairly bulky "fake" set of v1 TPs in the client hello to get
    > through the network.

    I'm not concerned about transport parameters if the above issue is fixed.  TLS had no real issues with extensions, and it looks like we already have the start of a pipeline of extensions coming.  v2 can share the transport parameter extension, unless we decide to change the format in a non-compatible way.

    (Note: CCS in TLS 1.3 only exists because middleboxes were inspecting a lot, yes, but it also indicates that they weren't inspecting enough, because the compatibility hack we have wouldn't work if they did a proper job.)