Re: [Anima] BRSKI-AE text proposal: how to signal to a pledge which BRSKI variant(s) with which parameter(s) a registrar supports

Toerless Eckert <tte@cs.fau.de> Thu, 07 September 2023 01:32 UTC

Return-Path: <eckert@i4.informatik.uni-erlangen.de>
X-Original-To: anima@ietfa.amsl.com
Delivered-To: anima@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 1C901C15199F; Wed, 6 Sep 2023 18:32:25 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.657
X-Spam-Level:
X-Spam-Status: No, score=-1.657 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HEADER_FROM_DIFFERENT_DOMAINS=0.249, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01, URIBL_BLOCKED=0.001, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001] autolearn=no autolearn_force=no
Received: from mail.ietf.org ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id jAI_nqtVybr5; Wed, 6 Sep 2023 18:32:21 -0700 (PDT)
Received: from faui40.informatik.uni-erlangen.de (faui40.informatik.uni-erlangen.de [IPv6:2001:638:a000:4134::ffff:40]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id BC16FC151088; Wed, 6 Sep 2023 18:32:17 -0700 (PDT)
Received: from faui48e.informatik.uni-erlangen.de (faui48e.informatik.uni-erlangen.de [IPv6:2001:638:a000:4134::ffff:51]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by faui40.informatik.uni-erlangen.de (Postfix) with ESMTPS id 4Rh1tz6B7zznkS9; Thu, 7 Sep 2023 03:32:11 +0200 (CEST)
Received: by faui48e.informatik.uni-erlangen.de (Postfix, from userid 10463) id 4Rh1tz5DKpzkZCn; Thu, 7 Sep 2023 03:32:11 +0200 (CEST)
Date: Thu, 07 Sep 2023 03:32:11 +0200
From: Toerless Eckert <tte@cs.fau.de>
To: David von Oheimb <it@von-oheimb.de>
Cc: draft-ietf-anima-brski-ae <draft-ietf-anima-brski-ae@ietf.org>, Michael Richardson <mcr+ietf@sandelman.ca>, Brian E Carpenter <Brian.E.carpenter@gmail.com>, anima <anima@ietf.org>, anima-chairs <anima-chairs@ietf.org>, Hendrik Brockhaus <Hendrik.Brockhaus@siemens.com>, Steffen Fries <steffen.fries@siemens.com>, pritikin@cisco.com
Message-ID: <ZPkoG+SyvJPOozdF@faui48e.informatik.uni-erlangen.de>
References: <ZEAfR3/01oaduCO9@faui48e.informatik.uni-erlangen.de> <2ff32157884c5a4522bec999cfe469610f050151.camel@von-Oheimb.de> <777cb0d7-15bc-5ae5-7561-00fc180da099@von-Oheimb.de>
MIME-Version: 1.0
Content-Type: text/plain; charset="iso-8859-1"
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <777cb0d7-15bc-5ae5-7561-00fc180da099@von-Oheimb.de>
Archived-At: <https://mailarchive.ietf.org/arch/msg/anima/oq3L_d5SwNhwONezeYLkfn46CaA>
Subject: Re: [Anima] BRSKI-AE text proposal: how to signal to a pledge which BRSKI variant(s) with which parameter(s) a registrar supports
X-BeenThere: anima@ietf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: Autonomic Networking Integrated Model and Approach <anima.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/anima>, <mailto:anima-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/anima/>
List-Post: <mailto:anima@ietf.org>
List-Help: <mailto:anima-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/anima>, <mailto:anima-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 07 Sep 2023 01:32:25 -0000

Thanks, David

I have some more fundamental concerns than the discussions that we had this week
and that you tried to sommarize, so let me try to restate the issue in a way that
readers with less context detail can hopefully follow.

In BRSKI, the overall sequence of events is high level:
   1. Pledge discovers (somehow) BRSKI registrar, which is specified to MUST support EST.
   2. Pledge connects to registrar, TLS
   2.1 Pledge requests a voucher over the TLS connection.
   2.2 If 2.1 is successful, pledge requests EST enrollment over same TLS connection

Now, with BRSKI-AE, some set of pledges may only support some other enrollment
protocol, such as CMP instead of EST. So, the above method stays the same, except that
in 2.2, EST is replaced with e.g.: CMP.

Now the problem is that for this to work "guaranteed", pledges would need to be able to
discover a Registrar that supports (one of) the same enrollment protocol(s) as the pledge.

We have started to work on such discovery solutions across the different BRSKI extension,
including AE, but the authors of BRSKI-AE where trying to find the best solution how
to make this work best in the absence of such a discovery mechanism. 

A) For once, there is the hope that by having such a "fallback" solution (no correct discovery
of supported enrollment protocol on registrar), that the reference to a working discovery
solution could become informational only as opposed to normative.

I am not quite clear about whether or not a reference to a discovery solution should
be normative or information, whether or not we do have some better or worse fallback.
Practically speaking, i don't believe that a normative reference does necessarily help
in practical deployments. For example, assume we would specify only a GRASP discover
in such a reference, and then a deployment can not use GRASP and needs another discovery
solution anyhow. Aka: a loose linkage that is informational could IMHO say
"MUST support _some_/_whatever_/_you_pick_ discovery, such as <grasp-reference>" would
be appropriate in my book, and having e.g.: <grasp-reference> be informational. But
on this point, mileage will vary, so thats a separate question we should investigate
with folks with IESG experience.

B) The core issue really is: If we assume that we do NOT have a working discovery,
but only RFC8995 BRSKI discovery, then we may persistently learn about registrars
that will NOT support the enrollment protocol required by the pledge.

Lets say the example is that a domain has two registrars, one with EST, one with CMP,
and the discovery mechanism from rfc8995 can not help to distinguish, and now, the
most important issue that we need to tackle is that all RFC8995 compliant pledges
could persistently discover the CMP registrar first before the EST registrar, because
for example the existing discovery mechanisms persistent ordering rules of responses.

These RFC8995 pledges are a bigger pain that BRSKI-AE/CMP pledges, because currently
the brski-ae draft does not claim to update RFC8995, so we can not assume that any
useful text we write into brski-ae will be honored by those RFC8995 pledges.

So, if we want to be 100% sure that the deployment of an additional BRSKI-AE/CMP
registrar will not negatively impact any existing RFC8995 pledges, we would have to use
completely incompatible discovery parameters, so legacy pledges will never discover
the new BRSKI-AE/CMP registrar. For example using in DNS a new service name
'brski2-registrar'/brski2-proxy or the like.

Given how i think we do not have crucial production deployments of BRSKI that
we would need to protect in this way, i think we do not need to do this, because it's
always ugly to leave trash of first-gen work around, especially in registries. Instead,
we may rather want to document in brski-ae these risks after we've worked through the
cases, and maybe also use the tool of updating RFC8995 with BRSKI-AEonce we agree
on the solution we like (and see that we get easier solutions with fixing up
BRSKI requirments).

So, i have a hard time to extract from rfc8995 the likely worst-case common
behavior of an RFC8995 pledge in case of a failure.

E.g.: Lets assume we use the voucher extension approach, so an improved 'BRSKI-AE'
pledge's voucher request will contain the list of supported enrollment protocols,
and in converse, a BRSKI-AE registrar can deduce that a voucher request comes
from a non-BRSKI-AE (EST-only) pledge. What error code should it return to such a
pledge ?

Or would the registar better return a 30x error code to directly redirect the
pledge to the EST registrar. IMHO: If we think that we can improve the likelyhood
that RFC8995-only pledges can overcome issues in the presence of new BRSKI-AE registrars
by such a redirect, then i think we should add a "SHOULD be able to redirect RFC8995
pledges to a known/discovered RFC8995 registrar".

In addition: I am still a fan of new pledges trying to figure out what the registrar
can do - like we can do in CoAP. But i'll have to ask around if/how this would be
feasible with existing IETEF work.

Cheers
    Toerless

On Wed, Sep 06, 2023 at 10:31:36PM +0200, David von Oheimb wrote:
> Dear ANIMA WG,
> 
> as mentioned in the below email and in the status report at IETF 117, the
> BRSKI-AE draft would be ready for AD review,
> except that after end of WGLC, a rather general open issue with all upcoming
> BRSKI variants has been brought up by Toerless,
> namely how to signal to the pledge the capabilities of the registrar, i.e,
> which BRSKI variant(s) it supports with which parameter(s).
> 
> After some forth and back, as far as the BRSKI-AE draft is concerned, it
> should be sufficient to extend its currently very brief section:
> 
> > *4.2.1.<https://datatracker.ietf.org/doc/html/draft-ietf-anima-brski-ae#section-4.2.1>Pledge
> > - Registrar Discovery <https://datatracker.ietf.org/doc/html/draft-ietf-anima-brski-ae#name-pledge-registrar-discovery>*
> > The discovery is done as specified in [RFC8995
> > <https://www.rfc-editor.org/info/rfc8995>].
> 
> with some guidance, such as the following text:
> 
> > The pledge discovers the registrar basically as specified in [RFC8995
> > <https://www.rfc-editor.org/info/rfc8995>].
> > In an engineered environment, the pledge may simply assume that the
> > discovered registrar
> > supports the BRSKI-AE variant of BRSKI with the certificate enrolment
> > protocol it wants to use.
> > 
> > Note: In case the protocol is not supported by the registrar, this would
> > be detected only after
> > the pledge sent its certificate enrolment request, on which it would
> > receive an error (likely at HTTP level).
> > This late detection might be avoided in several ways.
> > The registrar might be able to determine by inspecting the IdevID used
> > by the pledge in the voucher request
> > which enrolment protocol the pledge is going to use and reject the
> > voucher request if it does not support this protocol.
> > The pledge could also include in its voucher request an explicit
> > indication which enrolment protocol it is going to use,
> > such that the registrar can safely reject the request if it does not
> > support this protocol. This may be achieved by
> > a simple optional extension of the voucher request structure with a
> > key-value pair,
> > where absence implies "EST" as the default protocol, and currently the
> > only other defined value would be "CMP".
> > 
> > As a more general solution, the discovery mechanism by BRSKI may be
> > extended to provide beforehand to the pledge
> > explicit information on the capabilities of the registrar, such as the
> > certificate enrolment protocol(s) it supports.
> > This needs to be specified a separate document; at the time of writing
> > this specification, it is being done in [TDB informative reference
> > toBRSKI-discovery <https://github.com/anima-wg/brski-discovery/blob/main/draft-ietf-anima-brski-discovery.md>].
> > 
> This topic, including the current state of the proposal, is meanwhile being
> handled at https://github.com/anima-wg/anima-brski-ae/issues/32.
> If you have any thoughts to share on it, I ask you to let us know by email
> or by commenting on that page.
> In particular, in case you have objections, please raise them to the draft
> authors by the end of next week.
> 
> Regards,
> 
>     David
> 
> 
> On 02.05.23 16:56, David von Oheimb wrote:
> > Dear Brian, Toerless, Michael, et al.,
> > 
> > thank you
> > 
> >   * Brian for your comment during the WGLC,
> >   * Toerless for your further quick shepherd review thereafter, and
> >   * Michael for your response on the latter on how to reference EST,
> > 
> > 
> > all quoted below.
> > 
> > I've meanwhile prepared an intermediate version of the draft that is not
> > yet officially submitted to IETF,
> > i.e., a preview of version 05, available at
> > https://github.com/anima-wg/anima-brski-ae
> > 
> > The change log so far is:
> > 
> >   * Remove entries from the terminology section that should be clear
> >     from BRSKI
> >   * Tweak use of the terms IDevID and LDevID and replace PKI RA/CA by
> >     RA/CA
> >   * Add the abbreviation 'LwCMP' for Lightweight CMP to the
> >     terminology section
> >   * State clearly in Section 5.1 that LwCMP is mandatory when using CMP
> >   * Change URL of BRSKI-AE-overview graphics to slide on IETF 116
> >     meeting material
> > 
> > 
> > The first two items were suggested internally by Steffen,
> > while the remaining ones address the below points by Toerless and Brian.
> > 
> > Regarding the reference to EST, the authors discussed this and came to
> > the conclusion
> > that we better keep the reference to EST [RFC 7030] as /informative/
> > because we do not really depend on its contents
> > since the EST instance of BRSKI-AE has effectively been removed from the
> > draft (and just remain as a theoretical option).
> > The only "feature" that stems from EST that we take over in BRSKI-AE,
> > namely the endpoint naming scheme,
> > is already covered by the reference to BRSKI [RFC 8995], such that
> > having BRSKI as a /normative/ reference fully covers this.
> > OTOH, the references to CMP are clearly /normative/ for the case that
> > BRSKI-AE is instantiated to CMP,
> > which we have made more explicit in the upcoming version as stated in
> > the above change log.
> > 
> > Thus we believe that we have covered all open points,
> > and since the IPR poll has been finished as well,
> > the draft would be ready for being submitted and for AD review,
> > but:
> > 
> > On Thu, 2023-04-27 at 11:02 +0000, Fries, Steffen wrote:
> > To: anima@ietf.org <anima@ietf.org>
> > Subject: [Anima] Design Team Meeting discussion (April 25) on BRSKI-PRM
> > discovery with cross relation to BRSKI-AE
> > 
> > > Independent of the final solution picked, as BRSKI-AE is also
> > > enhancing the functionality of a BRSKI registrar by supporting
> > > alternative enrollment protocols, the same approach is to be
> > > intended for BRSKI-AE as well. Therefore, we will wait with the
> > > submission of an updated BRSKI-AE draft until the discussion has
> > > ended.
> > 
> > So we are holding back the draft until this has been sorted out,
> > most likely resulting in a small paragraph to be added to BRSKI-AE.
> > 
> > If there is any further comment or suggestion for improval, please let
> > us (the authors) know.
> > 
> > Best,
> > David
> > 

-- 
---
tte@cs.fau.de