Re: [Uri-review] URI scheme registration request

Ted Hardie <ted.ietf@gmail.com> Wed, 02 December 2015 16:39 UTC

Return-Path: <ted.ietf@gmail.com>
X-Original-To: uri-review@ietfa.amsl.com
Delivered-To: uri-review@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 194991B2BC8 for <uri-review@ietfa.amsl.com>; Wed, 2 Dec 2015 08:39:10 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.199
X-Spam-Level:
X-Spam-Status: No, score=-0.199 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, J_CHICKENPOX_22=0.6, J_CHICKENPOX_25=0.6, J_CHICKENPOX_32=0.6, SPF_PASS=-0.001] autolearn=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 J1esCdEltkNb for <uri-review@ietfa.amsl.com>; Wed, 2 Dec 2015 08:39:06 -0800 (PST)
Received: from mail-qk0-x236.google.com (mail-qk0-x236.google.com [IPv6:2607:f8b0:400d:c09::236]) (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 56D841B2BC2 for <uri-review@ietf.org>; Wed, 2 Dec 2015 08:39:06 -0800 (PST)
Received: by qkfo3 with SMTP id o3so18363199qkf.1 for <uri-review@ietf.org>; Wed, 02 Dec 2015 08:39:05 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=5v2PeeO1p4N5S3m++nbf9LbHU6hql8OteH3k2O8C4Jw=; b=jcrr+V9+MWD6KgAHS65kF0t0uaFelqUPdvVNLiqpakfhVaJYTQbPER61yhuPzdPNlI 8pKAAC7nbBkmwzX7tgg9XghogObOm31l/LooH9Tj7spcBlx7yCRnx5BZcMXKrnHO9TyS xe8Z+KJZBaEgnFEKWJYPjAnfHtP9tTVq7M7ct6gE2uHD7zWPtFL7rYyxt/QyRCMU6goQ vSQbPX5f64PTutVQlPxXP8W5kNzCcEhq+5x8+DN3XPrgAwGN3t8JYozzUSbRHo+MnBVr AkutpsEt17vCSJ7DG3X2xdTeE2c++Q1t+s5Wu2uU4+7r6e2bRfR5um5FPnI/QrTabbjc p3yA==
MIME-Version: 1.0
X-Received: by 10.55.204.213 with SMTP id n82mr4974117qkl.36.1449074345470; Wed, 02 Dec 2015 08:39:05 -0800 (PST)
Received: by 10.55.14.211 with HTTP; Wed, 2 Dec 2015 08:39:05 -0800 (PST)
In-Reply-To: <71680E9C-17BF-4FA2-9C80-3DAB49ADFE99@gbiv.com>
References: <564531FC.7000606@wasontech.com> <2D58682309E75147BB3B286C815CAC7E2ACD0A184B@AUSX7MCPS308.AMER.DELL.COM> <5646C765.4050907@wasontech.com> <E3443077-C4D8-496E-BCD0-661F387831E3@gbiv.com> <BY2PR03MB412048F8332055735B3CFFDA3100@BY2PR03MB412.namprd03.prod.outlook.com> <5647B3D1.6000608@wasontech.com> <BY2PR03MB4126303C398BA1771C297F3A3100@BY2PR03MB412.namprd03.prod.outlook.com> <564FF0F6.8020008@wasontech.com> <71680E9C-17BF-4FA2-9C80-3DAB49ADFE99@gbiv.com>
Date: Wed, 02 Dec 2015 08:39:05 -0800
Message-ID: <CA+9kkMCMG3PWx_3n2gCu-xgYLx9LXw=u6htVgFHKk_fbe9Yfag@mail.gmail.com>
From: Ted Hardie <ted.ietf@gmail.com>
To: "Roy T. Fielding" <fielding@gbiv.com>
Content-Type: multipart/alternative; boundary="001a1149a1789d997e0525ece99c"
Archived-At: <http://mailarchive.ietf.org/arch/msg/uri-review/uSmR7kL3JxrF6S1OtPGLZh1X3Eo>
Cc: John Wason <wason@wasontech.com>, "uri-review@ietf.org" <uri-review@ietf.org>
Subject: Re: [Uri-review] URI scheme registration request
X-BeenThere: uri-review@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Proposed URI Schemes <uri-review.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/uri-review>, <mailto:uri-review-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/uri-review/>
List-Post: <mailto:uri-review@ietf.org>
List-Help: <mailto:uri-review-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/uri-review>, <mailto:uri-review-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 02 Dec 2015 16:39:10 -0000

On Tue, Dec 1, 2015 at 1:12 PM, Roy T. Fielding <fielding@gbiv.com> wrote:

>
>
> I still don't see what the purpose is for all these new schemes.  Yes,
> provisional should have a low bar, but there
> should at least be an indication that each scheme being registered
> provides new identifiers.
>
>
​Roy, I understand your preference, but using different schemes to indicate
different protocol mechanics instead of different identifiers has certainly
been done in the past; RFC 3981 is one example.

Given that we're trying to encourage provisional registration by making it
a low bar, I don't think blocking on something that we've done in standards
track documents is appropriate.​  There's certainly nothing in RFC 7595's
guidelines for provisional registrations that would suggest we should block
on this.

If this is intended to be an interim step toward permanent registration,
then I'm sure the feedback will be considered.

regards,

Ted





> For example, the +ws(s) identifiers appear to just be an alias of ws and
> wss.  Aliases are bad.
> rr and rr+cloud are being defined as aliases = VERY BAD.  There is no
> reason to do that.
>
> *TCP Transport*
>
> ·         rr+tcp – Standard TCP communication
> ·         rrs+tcp – TLS TCP communication
>
> The TCP Transport operates by connecting to a remote port and then using
> the Robot Raconteur protocol to communicate.  The official listen port is
> 48653.  The path must be “/” or empty. The first handshake contains the
> target nodeid and/or nodename to identify which node should be connected.
>  Both can be blank to connect to the default node on the endpoint.  The
> communication can be wrapped in TLS using Start TLS semantics.  The first
> message contains the target nodeid and/or nodename and a flag to start
> using TLS.  The server node then provides a certificate signed by Wason
> Technology, LLC issued to the UUID (nodeid) of the node.  The client can
> also provide a signed certificate to provide certificate based
> authentication.
>
> Discovery for TCP is accomplished through UDP packets that are broadcast
> periodically on port 48653.  The packets contain the nodeid, nodename,
> the connection URI, and some additional metadata to help identify the
> capabilities.  The information is generally only used to connect to the
> “Service Index” that runs on all nodes.  This index provides detailed
> information about the services available and how to connect.  The clients
> will interrogate the nodes through the Service Index to determine if the
> node matches the search criteria.  During this process it will also
> verify the TLS certificates if appropriate.
>
>
> Okay, it sounds like you have two identifiers: one for the service index
> and one for the node within that service.
> Why don't you use two URIs: one for identifying the service index (defines
> the protocols necessary to get there)
> and one for a single rr scheme that identifies the rr node ("/" being the
> index itself)?
>
> Also, TLS implies TCP.  For most schemes, the bare name is TCP and {name}s
> is TLS.  So, rr and rrs, or
> raconteur and raconteurs if you want to be more descriptive.  Using plain
> rr to indicate the WebRTC
> transport is very odd.
>
> *WebSocket Transport*
>
> The WebSocket transport is an extension to the TCP transport and in the
> software is directly integrated into the TCP transport.  It works by
> wrapping the TCP transport data into WebSocket binary frames. The frame
> boundaries are ignored as the stream is reassembled on the receiving end.
>  The frames however shall be equal to or less than 4 KB of data per frame.
>
>
> The transport also implements the HTTP handshake to start the WebSocket
> protocol using the subprotocol “robotraconteur”. The URI contains the path
> to the WebSocket and query information, both of which are passed unmodified
> to the server. The URI must contain a query parameter named “service” to
> identify the name of the service to connect.
>
> All nodes that listen for TCP connections shall also be capable of
> detecting and accepting an HTTP WebSocket connection to the root file path
> “/” on the same port that listens for standard Robot Raconteur connections.
> This allows for standard web browsers to connect without additional
> plugins. (Note that HTTPS (wss) is not possible in this configuration. See
> below.)
>
> TLS is somewhat complicated with WebSockets due to the handshake behavior.
>   There are four flavors of WebSocket connections:
>
> ·         rr+ws – No encryption (HTTP)
> ·         rrs+ws – Encryption using the TLS Robot Raconteur transport.  This
> does not encrypt the HTTP handshake.  For local network use connecting to
> a device this should be sufficient as the handshake only contains the
> target nodeid/service information which is not considered secret data. Just
> after the handshake the Robot Raconteur TLS layer is activated protecting
> any secret data. (HTTP)
> ·         rr+wss – Encrypted HTTPS transport but no Robot Raconteur
> encryption.  Not recommended because the target node identity is not
> verified. (HTTPS)
> ·         rrs+wss – Encryption HTTPS transport and TLS Robot Raconteur
> transport.  This will encrypt the HTTP handshake and allow for identity
> verification of the node.  Note that this is only possible when the
> target node has an official HTTPS certificate which is not available for
> IoT type devices.  In those cases rrs+ws should be used as it is designed
> for such scenarios. rrs+wss should only be used when it is determined to be
> truly necessary.
>
>
> This just describes several access mechanism which will (after accessing)
> make use of rr identifiers.
> You don't need new schemes for this.
>
>
> *Local Transport*
>
> ·         rr+local
>
> The local transport uses UNIX sockets or Named Pipes to communicate
> between nodes on the same machine.  The nodeid and/or nodename are used
> to identify the target nodes.  The host is always “localhost”.  A
> username can be used to specify which user owns the desired node, ie
> “username@localhost”.  The port is never used and must be left out of the
> URI. Access control is accomplished through file permissions and standard
> username/credential access control. Untrusted software shall not be allow
> local transport access. The path must be “/” or empty.
>
>
> Likewise, not an identifier. You don't need an identifier for every local
> configuration option.
>
> *Hardware Transport*
>
> ·         rr+usb
> ·         rr+pci
>
> Hardware device drivers are implemented through a userspace daemon service.
>   This service provides UNIX socket / Named Pipe connections that allow
> nodes to access the devices.  Access control is accomplished through file
> permissions.  Generally only admin or equivalent users are given access.
> Untrusted software shall not be allow local transport access. The path must
> be “/” or empty.
>
>
> Likewise, not an identifier.
>
> *Cloud Transport*
>
> ·         rr
> ·         rr+cloud
>
> The cloud transport is a transport based on WebRTC.  The signaling as
> accomplished through the Robot Raconteur server.  Nodes are identified by
> the Robot Raconteur username and nodeid/nodname pair.  The hostname for
> each user is “username.cloud.robotraconteur.com”, where username is
> replaced with the registered username.  For instance, “
> johnw.cloud.robotraconteur.com” would be the hostname “johnw”. The port
> must not be included. Nodes connecting to the cloud service must all have
> issued certificates tied to the uuid of the node (nodeid). This
> communication is always secured through DTLS at the WebRTC layer.  Security
> of the overall cloud is managed by the Robot Raconteur server. The
> hostnames for each user are only relevant within the signaling server and
> do not have any general use DNS meaning. “rr” and “rr+cloud” are
> equivalent. The path must be “/” or empty.
>
>
> If this is consistent with WebRTC, then use webrtc's identifiers.
>
> In other words, what you are defining here is an identifier space for rr
> nodes and then a
> bunch of proxy mechanisms for obtaining access to those identified nodes.
> We don't do that
> by multiplying schemes!  We do it by sending two identifiers: one for the
> proxy and one for
> the resource to access.  The proxy mechanisms already have defined
> identifier schemes.
>
> ....Roy
>
>
> _______________________________________________
> Uri-review mailing list
> Uri-review@ietf.org
> https://www.ietf.org/mailman/listinfo/uri-review
>
>