Re: [secdir] secdir review of draft-ietf-httpbis-h2-websockets

Carl Wallace <carl@redhoundsoftware.com> Thu, 31 May 2018 10:18 UTC

Return-Path: <carl@redhoundsoftware.com>
X-Original-To: secdir@ietfa.amsl.com
Delivered-To: secdir@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 3012312EA54 for <secdir@ietfa.amsl.com>; Thu, 31 May 2018 03:18:35 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.7
X-Spam-Level:
X-Spam-Status: No, score=-2.7 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=redhoundsoftware.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 r0wULnSoqhNh for <secdir@ietfa.amsl.com>; Thu, 31 May 2018 03:18:33 -0700 (PDT)
Received: from mail-qk0-x229.google.com (mail-qk0-x229.google.com [IPv6:2607:f8b0:400d:c09::229]) (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 E544112EC1D for <secdir@ietf.org>; Thu, 31 May 2018 03:18:32 -0700 (PDT)
Received: by mail-qk0-x229.google.com with SMTP id j12-v6so13428395qkk.4 for <secdir@ietf.org>; Thu, 31 May 2018 03:18:32 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhoundsoftware.com; s=google; h=mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=jueXlFv401kdBDjsnUMkJM6TN6QSzXdnSDuLXQdbVQU=; b=fs1tsrPS4D3o4cP4XnME3hN247Qs3CjqU646rdZZdYfgOzGYtjYU64lRoJig08JVP2 SuOeVwJtQ5k3BFhEpp6JpAh8lpEvvaYYiHUYE4A52SQgTlOIZn6hTPpwVrcOYEnF5+jr rWkqx7fGkVccw2y6xoeVRQgX7SDdcNbePC5bM=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=jueXlFv401kdBDjsnUMkJM6TN6QSzXdnSDuLXQdbVQU=; b=Fm7YFk9aLNfDHKYO4R19fszJjeXgWYKt5ZgsYiKtc6H+JRspWtWSpMt3SKhux4BUPe zho4pcPDQ6curhjD4wPgBg5KJBALsZTiLwf0NSUgpIRHE9YF/YTnWYJ9qkdzOKsrRSSw HDVffdTMYaFMV3ACcfTPMs433k+fRfNw5bkzReQUnS3z6y0bi4n8gpgNoAZmeCbifGMe Yzb5Y+KARFWv1+dXFkCUEe/hjXRGWdmoyqeeev3NkpbY9OZb24pIXfK5YjLLkfXIcGK0 A4UGzUxs449/3OASxF9bxEStZ8piOh8d480DzMYHEtC34dTbifga+9Xd14dhQyhip/tw DwuA==
X-Gm-Message-State: APt69E2A0RWTwCg5onT/C8eJ0fxUh0eWsXawoJ1eovOA08prQjPDS2O1 BG04oimFdtI+3icpC1det73YSQ==
X-Google-Smtp-Source: ADUXVKKrmh9Pj4nb3qyYYTPCeT9G5VzAqzFATxZ4z+rqQeQBV+iLWiZrqcNA7qg90t010YoFLcdF9w==
X-Received: by 2002:a37:f59:: with SMTP id z86-v6mr5494993qkg.234.1527761911900; Thu, 31 May 2018 03:18:31 -0700 (PDT)
Received: from [192.168.2.158] (pool-74-96-253-73.washdc.fios.verizon.net. [74.96.253.73]) by smtp.gmail.com with ESMTPSA id 31-v6sm2316477qtq.80.2018.05.31.03.18.31 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 31 May 2018 03:18:31 -0700 (PDT)
Content-Type: text/plain; charset="us-ascii"
Mime-Version: 1.0 (1.0)
From: Carl Wallace <carl@redhoundsoftware.com>
X-Mailer: iPhone Mail (14G60)
In-Reply-To: <E5BEBC29-97A2-41A2-BC27-043BE57BDF0A@mnot.net>
Date: Thu, 31 May 2018 06:18:29 -0400
Cc: Patrick McManus <pmcmanus@mozilla.com>, draft-ietf-httpbis-h2-websockets.all@ietf.org, secdir@ietf.org, The IESG <iesg@ietf.org>
Content-Transfer-Encoding: quoted-printable
Message-Id: <CEB6602B-80AC-44F7-907B-1E4E9257DCDB@redhoundsoftware.com>
References: <D73306E9.B8C32%carl@redhoundsoftware.com> <CAOdDvNpiYqG4zpMQgiB2MXjHbL0CTuP9NgXh3AVTkFxeFTCK6Q@mail.gmail.com> <D7332279.B8CA6%carl@redhoundsoftware.com> <E5BEBC29-97A2-41A2-BC27-043BE57BDF0A@mnot.net>
To: Mark Nottingham <mnot@mnot.net>
Archived-At: <https://mailarchive.ietf.org/arch/msg/secdir/BBgKtAz3Hy5g2ShdawcM5GDZlMY>
Subject: Re: [secdir] secdir review of draft-ietf-httpbis-h2-websockets
X-BeenThere: secdir@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: Security Area Directorate <secdir.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/secdir>, <mailto:secdir-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/secdir/>
List-Post: <mailto:secdir@ietf.org>
List-Help: <mailto:secdir-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/secdir>, <mailto:secdir-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 31 May 2018 10:18:36 -0000

Good enough. 

> On May 30, 2018, at 11:23 PM, Mark Nottingham <mnot@mnot.net> wrote:
> 
> The problem is that we'd have to put such a caveat on pretty much every MUST in the document. 
> 
> Cheers,
> 
> 
>> On 30 May 2018, at 5:37 am, Carl Wallace <carl@redhoundsoftware.com> wrote:
>> 
>> Your reasoning makes sense but it requires an awfully careful reading to counter the clarity of the prohibition on new pseudo-headers. Maybe an errata could be filed against 7540 to clarify the "alter any aspect of this protocol" where the prohibition  is asserted for the benefit of future readers. For example, something like "Endpoints MUST NOT generate pseudo-header fields other than those defined in this document, except where support for additional pseudo-headers is negotiated as permitted in section 5.5" would help.
>> 
>> From: Patrick McManus <pmcmanus@mozilla.com>
>> Date: Tuesday, May 29, 2018 at 1:49 PM
>> To: Carl Wallace <carl@redhoundsoftware.com>
>> Cc: <draft-ietf-httpbis-h2-websockets.all@ietf.org>, <secdir@ietf.org>, The IESG <iesg@ietf.org>
>> Subject: Re: secdir review of draft-ietf-httpbis-h2-websockets
>> 
>>> Hey Carl, thanks for doing this
>>> 
>>>> On Tue, May 29, 2018 at 1:32 PM, Carl Wallace <carl@redhoundsoftware.com> wrote:
>>>> 
>>>> The draft-ietf-httpbis-h2-websockets defines a new pseudo-header field in
>>>> section 4. Section 3 addresses extending HTTP/2 via a reference to section
>>>> 5.5 of RFC7540, but there was nothing in that section to relax the
>>>> prohibition on using pseudo-header fields not defined by 7540. Is a mod to
>>>> 7540 necessary to enable support for the mechanism in
>>>> draft-ietf-httpbis-h2-websockets?
>>>> 
>>> 
>>> imo no update to 7540 is needed. the wg also considered the question and had the same conclusion. I will highlight the reasoning:
>>> 
>>> 5.5.  Extending HTTP/2
>>> 
>>> 
>>> 
>>>   HTTP/2 permits extension of the protocol.  Within the limitations
>>>   described in this section, protocol extensions can be used to provide
>>>   additional services or alter any aspect of the protocol.  Extensions
>>>   are effective only within the scope of a single HTTP/2 connection.
>>> 
>>> 
>>> note "alter any aspect of this protocol"
>>> [..]
>>> 
>>>   Extensions that could change the semantics of existing protocol
>>>   components MUST be negotiated before being used. 
>>> 
>>> This is one of the limitations mentioned above.. so the websockets extension needs to be negotiated (and it is).
>>> [..] For example, an
>>>   extension that changes the layout of the HEADERS frame cannot be used
>>>   until the peer has given a positive signal that this is acceptable.
>>> 
>>> In this case, it could also be necessary to coordinate when the
>>>   revised layout comes into effect.  Note that treating any frames
>>>   other than DATA frames as flow controlled is such a change in
>>>   semantics and can only be done through negotiation.
>>> 
>>> These two examples are also powerful citations that negotiated extensions can change the interpretation of basic pieces of 7540 such as existing frame layouts and even flow control rules (both of which have MUSTs associated with them).
>>> 
>>> The whole section is a little bit confusing because it also enumerates a few extension points that the websockets draft is not using. But those are specifically enumerated because they can be used without negotiated opt-in and implementations not aware of the extensions need to take care to keep them clean and available for extending (so there are requirements even if you're not implementing the extension). As the example paragraph shows, extensions are not solely limited to that model.
>>> 
>>> Cheers
>>> -Patrick
>>> 
>>> 
>>> 
> 
> --
> Mark Nottingham   https://www.mnot.net/
>