Re: Artart last call review of draft-ietf-core-coap-tcp-tls-07

Mark Nottingham <mnot@mnot.net> Tue, 11 April 2017 00:39 UTC

Return-Path: <mnot@mnot.net>
X-Original-To: ietf@ietfa.amsl.com
Delivered-To: ietf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 37EC91293F8; Mon, 10 Apr 2017 17:39:27 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.601
X-Spam-Level:
X-Spam-Status: No, score=-2.601 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, URIBL_BLOCKED=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 u01rQ2Qe3umb; Mon, 10 Apr 2017 17:39:25 -0700 (PDT)
Received: from mxout-07.mxes.net (mxout-07.mxes.net [216.86.168.182]) (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 0CB501294C4; Mon, 10 Apr 2017 17:39:24 -0700 (PDT)
Received: from [192.168.3.104] (unknown [124.189.98.244]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.mxes.net (Postfix) with ESMTPSA id 2753B22E253; Mon, 10 Apr 2017 20:39:21 -0400 (EDT)
Content-Type: text/plain; charset="utf-8"
Mime-Version: 1.0 (Mac OS X Mail 10.3 \(3273\))
Subject: Re: Artart last call review of draft-ietf-core-coap-tcp-tls-07
From: Mark Nottingham <mnot@mnot.net>
In-Reply-To: <5E5238DC-B835-4BDF-B50D-8D594A46C4D4@tzi.org>
Date: Tue, 11 Apr 2017 10:39:18 +1000
Cc: art@ietf.org, draft-ietf-core-coap-tcp-tls.all@ietf.org, ietf@ietf.org, core@ietf.org
Content-Transfer-Encoding: quoted-printable
Message-Id: <7DEDD3CB-B812-4151-97DC-403448C1080B@mnot.net>
References: <149179722452.3118.982908107963516290@ietfa.amsl.com> <5E5238DC-B835-4BDF-B50D-8D594A46C4D4@tzi.org>
To: Carsten Bormann <cabo@tzi.org>
X-Mailer: Apple Mail (2.3273)
Archived-At: <https://mailarchive.ietf.org/arch/msg/ietf/xcMJMUXHJA6UbETYHBJ0vbvVv1I>
X-BeenThere: ietf@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: IETF-Discussion <ietf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/ietf>, <mailto:ietf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/ietf/>
List-Post: <mailto:ietf@ietf.org>
List-Help: <mailto:ietf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ietf>, <mailto:ietf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 11 Apr 2017 00:39:27 -0000

Hi Carsten,

Couple of quic responses below.

On 10 Apr 2017, at 7:46 pm, Carsten Bormann <cabo@tzi.org> wrote:

> I agree that the introduction should focus on the Browser use case and keep out of the firewall traversal jungle.

OK. Just curious -- is there a strong motivation here? It seems very odd to tunnel HTTP-like semantics over a custom UDP protocol (COAP) over WebSockets over HTTP again, rather than just using HTTP (which AIUI you already have a mapping to).


>> Section 7 defines a number of new URI schemes for COAP protocols.
>> Syntactically, they use "+" to separate "coap" from the underlying
>> transport(-ish) protocol that they're bound to; e.g., "coap+tcp". This
>> syntax is allowed by RFC3986, but is unprecedented, and implies a
>> sub-syntax convention similar to those used in media types, etc. Is
>> there an expectation that other URI schemes starting with "coap+" are
>> reserved? 
> 
> There is no such expectation.
> 
> We did have the discussion about reserved URI scheme prefixes in the IETF, and as I recall, the result was that there are none.  While it would be a bit weird to register a URI scheme starting with coap+ or coaps+ that is unrelated to CoAP, only the slightly boggled response from an expert review is in the way of that happening.
> 
> Would the scheme names be more palatable with a dash instead of a plus?
> Careful choice of the scheme name mostly benefits the implementer, so it can be changed in the spec (at the cost of changing existing implementations).

OK. I'm mostly noting this in case other folks feel that this is a bad precedent for URI schemes; I think the bigger concern is the one below.


>> Defining URI schemes that switch transport protocol based upon their
>> name deserves wider review as well; this has been a contentious topic
>> in the past, and it would be good to understand what tradeoffs are
>> being made by doing so. Locking identifiers into a specific transport
>> protocol sacrifices much of the power of URLs.
> 
> The “siloing” of URIs along schemes is indeed a problem, which started for CoAP with the separation of the coap:/coaps: name spaces.  The CoRE WG did not see it as its task to address this shortcoming.  So, for now, we’ll have to live with it; approaches such as draft-silverajan-core-coap-protocol-negotiation are trying to address its practicalities.

By defining multiple URI schemes for different transports of the same protocol, the WG has taken a position as to what the solution is. I'm finding it difficult to square this with the continuing characterisation of CORE as "RESTful".


>> Furthermore, creating
>> "coap+ws" to denote a specific protocol over WebSockets (which has its
>> own URI scheme) is questionable; taken to its natural conclusion,
>> we'll have a proliferation of URI schemes for things over WebSockets.
> 
> I’m not sure that a proliferation will happen — WebSockets is mostly used for tightly bound proprietary protocols between a JavaScript mobile code client and a server that provides this mobile code client.  On the other hand, deciding to never use URIs to refer to resources available over a WebSockets protocol strikes me as an unnecessary restriction.
> 
>> Will COAP take the same approach for HTTP?
> 
> Not sure what this question is leading into.
> (We do have a defined relationship with HTTP, in RFC 7252 and RFC 8075.
> But maybe this is about something different.)

I mean to ask whether there will be a need for a "coap+http" URI scheme; it seems like a logical conclusion of the approach taken here. 


>> I would suggest a wider discussion of these issues on art@ / uri@.
> 
> Indeed, a wider discussion of these longstanding issues would be useful.
> I’m not sure that waiting for their resolution is blocking this spec.
> 
>> Section 7.4 shows how to convert a "coap+ws://" URI into a "wss://"
>> URI, using a well-known URI in the "wss" scheme. However, "wss" is not
>> defined to use well-known URIs, so this is an invalid use. 
> 
> This incorrect use of RFC 5785 is indeed embarrassing.  More about that later.

OK. The other obvious path is to opt wss:// (and ws://?) into RFC5785, but I think that would take a separate RFC that updates their scheme registrations. Not sure whether there would be any pushback in that community (but I can't see any immediate reason why there would be).


>> Section 8.1 makes it Mandatory to Implement the protocol without any
>> security ("NoSec"). This seems counter to best practice in the IETF,
>> but I'll defer to the Security Area review.
> 
> Since it is the implementers who will decide whether they implement this, this co-author could live with making implementing NoSec completely optional.  (It will be anyway, in practice, at the level of what is actually configured.)  The important point(*) from the WG perspective here is that TLS is mandatory to implement, with the specifics depending on the security mode needed (cf. RFC 7925).  (Note also that there are other ways to provide security with CoAP.)

Ack. Again, this was mostly a note to bring it to others' attention; the use of the phrase "Mandatory to Implement" when applied to "no security" just seems odd.

Cheers,

> 
> Grüße, Carsten
> 
> (*) https://github.com/core-wg/coap-tcp-tls/commit/fe348f543fc45e981e38e9354242012afb28dc60
> 

--
Mark Nottingham   https://www.mnot.net/