Re: [core] Endpoint Client Name / Endpoint Name in RD draft

Jim Schaad <ietf@augustcellars.com> Sun, 15 April 2018 19:31 UTC

Return-Path: <ietf@augustcellars.com>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id A8E6C1270A0 for <core@ietfa.amsl.com>; Sun, 15 Apr 2018 12:31:02 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.901
X-Spam-Level:
X-Spam-Status: No, score=-1.901 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, SPF_PASS=-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 wGd9xzjK1W26 for <core@ietfa.amsl.com>; Sun, 15 Apr 2018 12:31:00 -0700 (PDT)
Received: from mail2.augustcellars.com (augustcellars.com [50.45.239.150]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 3658D12708C for <core@ietf.org>; Sun, 15 Apr 2018 12:31:00 -0700 (PDT)
Received: from Jude (73.180.8.170) by mail2.augustcellars.com (192.168.0.56) with Microsoft SMTP Server (TLS) id 15.0.1347.2; Sun, 15 Apr 2018 12:28:33 -0700
From: Jim Schaad <ietf@augustcellars.com>
To: 'Christian Amsüss' <christian@amsuess.com>, consultancy@vanderstok.org, 'Carsten Bormann' <cabo@tzi.org>
CC: 'Hannes Tschofenig' <Hannes.Tschofenig@arm.com>, core@ietf.org
References: <CB28DFEA-5F9E-4C35-BD86-A37AC5C122C9@tzi.org> <ca2b6038e911d93e15e57763836a1d09@xs4all.nl> <20180413151121.GC20765@hephaistos.amsuess.com>
In-Reply-To: <20180413151121.GC20765@hephaistos.amsuess.com>
Date: Sun, 15 Apr 2018 12:30:52 -0700
Message-ID: <011701d3d4f0$46255e50$d2701af0$@augustcellars.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: quoted-printable
X-Mailer: Microsoft Outlook 16.0
Thread-Index: AQGfMgGYuZnAjgmyOi0d4VE9O1YZbqRrcsRg
Content-Language: en-us
X-Originating-IP: [73.180.8.170]
Archived-At: <https://mailarchive.ietf.org/arch/msg/core/tjNtKgP8HzHmRZesDhFXmIE7WrU>
Subject: Re: [core] Endpoint Client Name / Endpoint Name in RD draft
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sun, 15 Apr 2018 19:31:03 -0000


> -----Original Message-----
> From: core <core-bounces@ietf.org> On Behalf Of Christian Amsüss
> Sent: Friday, April 13, 2018 8:11 AM
> To: consultancy@vanderstok.org; Carsten Bormann <cabo@tzi.org>
> Cc: Hannes Tschofenig <Hannes.Tschofenig@arm.com>; core@ietf.org
> Subject: Re: [core] Endpoint Client Name / Endpoint Name in RD draft
> 
> On Mon, Apr 09, 2018 at 10:04:07AM +0200, peter van der Stok wrote:
> > > I am curious what we lose if we remove this identifier altogether.
> > > The only thing that comes to my mind is a debugging capability where
> > > you might want to test your system without any security protocol.
> >
> > Probably, I completely misunderstand your suggestion.
> > Registrations in the RD need identification so that they can be
> > changed, removed , updated, etc...
> 
> Well, the manipulation (change, removal, update) already happens
> independently of the endpoint name or domain; that is just bound to the
> registration resource.
> 
> In the current text, we allow that the endpoint name is not given at
> registration time if it is explicitly configured and the RD can recognize the
> endpoint by its security context.
> 
> > Registrations are identified by the (ep, d) pair, unique within a given RD.
> > Removing ep identifier will force you to find another identifier for a
> > registration.........
> > and you are back to square 1 it seems.
> 
> In any authenticated context, that can identifier can be the security context.
> How that can be expressed at lookup is an open question.
> An endpoint name string can be what glues those together.
> 
> On Mon, Apr 09, 2018 at 10:14:54AM +0200, Carsten Bormann wrote:
> > The argument seems to be that if a client holds an authorization to
> > register at an RD, that authorization may imply a specific endpoint
> > name.  (I’m not sure that is always true, as the authorization may be
> > based on a claim that does not happen to provide an obvious candidate
> > for that.)
> >
> > To discuss this further, we’ll need to discuss authorization models
> > for RD access.  Maybe high time in any case…
> 
> 
> Could everybody maybe sketch how they'd express the permissions they
> would like to set on their RDs?
> 
> 
> I'll start with some arbitrary ones that might be useful (at least with some
> help from Cunningham's Law):
> 
> TrustTheWebCAs: "This RD accepts any registration, provided who registers
> can present a X509 certificate chain to my system certificates that carries a
> Common Name or Subject Alternative Name that matches the host name
> they give in their con".

TrustTheWebCAs + GodBit: This RD accepts any registration, provided who registers can present an X509 certificate chain to my system certificates that carries a common or alternative name (or maybe an EKU) that matches to the God criteria.

> 
> RequireEKU: "Like TrustTheWebCAs, and if it wants to set an endpoint type
> (et=), that must be justified by an Extended Key Usage in the certificate."

I would probably generalize this rule to - The RD may extract additional information from the certificate beyond the naming to either enforce or supplement attributes set such as endpoint types or domains.

> 
> EPFromACE: "This RD uses /reg/${domain}/${endpoint} as registration URIs.
> An endpoint can only register if it holds an ACE-AIF token to POST to that
> resource issued by my Authorization Server (AS)."

EPFromACE2:  This RD uses /reg?ep=${endpoint}&d=${domain} as registration URIs.  An endpoint can only register if it holds an ACE-AIF token to POST to that resource issued by my Authorization Server (AS).  The token may contain values for fields in the URI-queries which are to be either enforced, or set if not present in the registration request.  Examples are ep, d, et.

> 
> PNFromACE: "This RD allows registration of arbitrary endpoints, but
> advertising an at=... (registration) or ol=... (link) attribute (see
> core-protocol-negotiation) requires that that value is contained in an ACE
> token from my AS."

RSFromACE: This RD allows registration of endpoints, but restricts the resources that can be registered.  All resources registered must be filtered by matching one of a number of patterns potentially with values that can be defaulted in.

Jim

> 
> 
> Best regards
> Christian
> 
> --
> To use raw power is to make yourself infinitely vulnerable to greater powers.
>   -- Bene Gesserit axiom