<?xml version="1.0" encoding="utf-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc version 1.6.36 (Ruby 3.1.3) -->


<!DOCTYPE rfc  [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">

]>

<?rfc compact="yes"?>
<?rfc iprnotified="no"?>
<?rfc strict="yes"?>

<rfc ipr="trust200902" docName="draft-eckert-anima-brski-discovery-01" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title abbrev="BRSKI-discovery">Discovery for BRSKI variations</title>

    <author initials="T." surname="Eckert" fullname="Toerless Eckert" role="editor">
      <organization abbrev="Futurewei">Futurewei USA</organization>
      <address>
        <postal>
          <country>USA</country>
        </postal>
        <email>tte@cs.fau.de</email>
      </address>
    </author>
    <author initials="D." surname="von&nbsp;Oheimb" fullname="David von&nbsp;Oheimb">
      <organization abbrev="Siemens">Siemens AG</organization>
      <address>
        <postal>
          <street>Otto-Hahn-Ring 6</street>
          <city>Munich</city>
          <code>81739</code>
          <country>Germany</country>
        </postal>
        <email>david.von.oheimb@siemens.com</email>
        <uri>https://www.siemens.com/</uri>
      </address>
    </author>
    <author initials="E." surname="Dijk" fullname="Esko Dijk">
      <organization>IoTconsultancy.nl</organization>
      <address>
        <email>esko.dijk@iotconsultancy.nl</email>
      </address>
    </author>

    <date year="2023"/>

    <area>Operations and Management</area>
    <workgroup>ANIMA</workgroup>
    <keyword>Internet-Draft</keyword>

    <abstract>


<?line 91?>

<t>This document specifies how BRSKI entities, such as registrars, proxies, pledges or others
that are acting as responders, can be discovered and selected by BRSKI entities acting as initiators.</t>



    </abstract>



  </front>

  <middle>


<?line 96?>

<section anchor="terminology"><name>Terminology</name>

<t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>

<?line -18?>

<t>This document relies on the terminology defined in <xref target="BRSKI"/>.  The following terms are described partly in addition.</t>

<dl>
  <dt>Context:</dt>
  <dd>
    <t>See Variation Context.</t>
  </dd>
  <dt>Initiator:</dt>
  <dd>
    <t>A host that is using an IP transport protocol to initiate a connection or transaction to another host called the responder.</t>
  </dd>
  <dt>Initiator socket:</dt>
  <dd>
    <t>A socket consisting of an initiators IP or IPv6 address, protocol and protocol port number from which it
initiates connections or transactions to a responder (typically UDP or TCP).</t>
  </dd>
  <dt>Objective Name:</dt>
  <dd>
    <t>See Service Name.</t>
  </dd>
  <dt>Resource Type:</dt>
  <dd>
    <t>See Service Name.</t>
  </dd>
  <dt>Responder:</dt>
  <dd>
    <t>A host that is using an IP transport protocol to respond to transaction or connection requests from an Initiator.</t>
  </dd>
  <dt>Responder socket:</dt>
  <dd>
    <t>A socket consisting of a responders IP or IPv6 address, protocol and protocol port 
number on which it responds to requests of the protocol (typically UDP or TCP).</t>
  </dd>
  <dt>Role:</dt>
  <dd>
    <t>In the context of this document, a type of entity in a variation of BRSKI that can act as a responder and whose supported variations can be discovered. BRSKI roles relevant in this document include Join Registrar, Join Proxy and Pledge. The IANA registry defined by this document allows to specify variations for any roles. See also Variation Context.</t>
  </dd>
  <dt>Socket:</dt>
  <dd>
    <t>The combination of am  IP or IPv6 address, an IP protocol that utilizes a port number (such as TCP or UDP) and a port number of that protocol.</t>
  </dd>
  <dt>Service Name:</dt>
  <dd>
    <t>The name for (a subset of) the functionality/API provided by a discoverable responder socket. This term is inherited from <xref target="DNS-SD"/> but unless otherwise specified also used in this document to apply to any other discovery functionality/API. The terminology used by other mechanisms typically differs. For example, when <xref target="GRASP"/> is used to discover a responder socket for BRSKI, the Objective Name carries the equivalent to the service name. In <xref target="CORE-LF"/>, the Resource Type (rt=) carries the equivalent of the service name.</t>
  </dd>
  <dt>Type:</dt>
  <dd>
    <t>See Variation Type.</t>
  </dd>
  <dt>Variation:</dt>
  <dd>
    <t>A combination one one variation choice each for every variation type applicable to the variation context of one discoverable BRSKI communications.
For example, in the context of BRSKI, a variation is one choice for "mode", one choice for "enroll" and once choice for "vformat".</t>
  </dd>
  <dt>Variation Context:</dt>
  <dd>
    <t>A set of Services for whom the same set of variations applies</t>
  </dd>
  <dt>Variation Type:</dt>
  <dd>
    <t>The name for one aspect of a protocol for which two or more choices exist (or may exist in the future), and where the choice 
can technically be combined orthogonal to other variation types. This document defined the BRSKI variation types "mode", "enroll" and "vformat".</t>
  </dd>
  <dt>Variation Type Choice:</dt>
  <dd>
    <t>The name for different values that a particular variation type may have.
For example, this document does defines the choices "rrm" and "prm" for the BRSKI variation "mode".</t>
  </dd>
  <dt anchor="ACP">ACP:</dt>
  <dd>
    <t>"An Autonomic Control Plane", <xref target="RFC8994"/>.</t>
  </dd>
  <dt anchor="BRSKI">BRSKI:</dt>
  <dd>
    <t>"Bootstrapping Remote Secure Key Infrastructure", <xref target="RFC8995"/>.</t>
  </dd>
  <dt anchor="BRSKI-AE">BRSKI-AE:</dt>
  <dd>
    <t>"Alternative Enrollment Protocols in <xref target="BRSKI"/>", <xref target="I-D.ietf-anima-brski-ae"/>.</t>
  </dd>
  <dt anchor="BRSKI-PRM">BRSKI-PRM:</dt>
  <dd>
    <t>"<xref target="BRSKI"/> with Pledge in Responder Mode", <xref target="I-D.ietf-anima-brski-prm"/>.</t>
  </dd>
  <dt anchor="cBRSKI">cBRSKI:</dt>
  <dd>
    <t>"Constrained Bootstrapping Remote Secure Key Infrastructure (<xref target="BRSKI"/>)", <xref target="I-D.ietf-anima-constrained-voucher"/>.</t>
  </dd>
  <dt anchor="COAP">COAP:</dt>
  <dd>
    <t>"The Constrained Application Protocol (CoAP)", <xref target="RFC7252"/>.</t>
  </dd>
  <dt anchor="CORE-LF">CORE-LF:</dt>
  <dd>
    <t>"Constrained RESTful Environments (CoRE) Link Format", <xref target="RFC6690"/>.</t>
  </dd>
  <dt anchor="cPROXY">cPROXY:</dt>
  <dd>
    <t>"Constrained Join Proxy for Bootstrapping Protocols", <xref target="I-D.ietf-anima-constrained-join-proxy"/>.</t>
  </dd>
  <dt anchor="DNS-SD">DNS-SD:</dt>
  <dd>
    <t>"DNS-Based Service Discovery", <xref target="RFC6763"/>.</t>
  </dd>
  <dt anchor="EST">EST:</dt>
  <dd>
    <t>"Enrollment over Secure Transport", <xref target="RFC7030"/>.</t>
  </dd>
  <dt anchor="GRASP">GRASP:</dt>
  <dd>
    <t>"GeneRic Autonomic Signaling Protocol", <xref target="RFC8990"/>.</t>
  </dd>
  <dt anchor="GRASP-DNSSD">GRASP-DNSSD:</dt>
  <dd>
    <t>"DNS-SD Compatible Service Discovery in GeneRic Autonomic Signaling Protocol (GRASP)", <xref target="I-D.eckert-anima-grasp-dnssd"/>.</t>
  </dd>
  <dt anchor="JWS-VOUCHER">JWS-VOUCHER:</dt>
  <dd>
    <t>"JWS signed Voucher Artifacts for Bootstrapping Protocols", <xref target="I-D.ietf-anima-jws-voucher"/>.</t>
  </dd>
  <dt anchor="lwCMP">lwCMP:</dt>
  <dd>
    <t>"Lightweight Certificate Management Protocol (CMP) Profile", <xref target="I-D.ietf-lamps-lightweight-cmp-profile"/>.</t>
  </dd>
  <dt anchor="mDNS">mDNS:</dt>
  <dd>
    <t>"multicast DNS", <xref target="RFC6762"/>.</t>
  </dd>
  <dt anchor="SCEP">SCEP:</dt>
  <dd>
    <t>"Simple Certificate Enrolment Protocol", <xref target="RFC8894"/>.</t>
  </dd>
</dl>

</section>
<section anchor="overview"><name>Overview</name>

<t>The mechanisms described in this document are intended to help solve the following challenges.</t>

<t>Signaling BRSKI variation for responder selection.</t>

<t>When an initiator such as a proxy or pledge uses a mechanism such as
<xref target="DNS-SD"/> to discover an instance of a role it intends to connect to, such
as a registrar, it may discover more than one such instance. In the presence
of variations of the BRSKI mechanisms that impact interoperability, performance
or security, not all discovered instances may support exactly what the initiator needs to achieve
interoperability and/or best performance, security or other metrics. In this case, the service
announcement mechanism needs to carry the necessary additional information beside the name that
indicates the service to aid the initiator in
selecting an instance that it can inter operate and achieve best performance with.</t>

<t>Easier use of additional discovery mechanisms.</t>

<t>In the presence of different discovery mechanisms, such as <xref target="DNS-SD"/>, <xref target="GRASP"/>,
<xref target="CORE-LF"/> or others, the details of how to apply each of these mechanisms are usually
specified individually for each mechanism, easily resulting in inconsistencies. Deriving
as much as possible the details of discovery from a common specification and registries
can reduce such inconsistencies and easy introduction of additional discovery mechanisms.</t>

<t>Generalization of principles related to discovery and operation of proxies.</t>

<t>Because of the unified approach to discovery of BRSKI Variations described in this document,
it also allows to use <xref target="DNS-SD"/> for document for <xref target="cBRSKI"/> and <xref target="cPROXY"/>, which may be
of interest in networks such as Thread, which use <xref target="DNS-SD"/>.</t>

</section>
<section anchor="specification"><name>Specification</name>

<section anchor="abstracted-brski-discovery-and-selection"><name>Abstracted BRSKI discovery and selection</name>

<t>In the abstract model of discovery used by this document and intended to apply to all described discovery mechanisms, an entity operating as an initiator of a transport
connection for a particular BRSKI protocol role, such as a pledge, discovers one or more responder sockets
(IP/IPv6-address, responder-port, IP-protocol) of entities acting as responders for the peer BRSKI role, such
as registrar. The initiator uses some discovery mechanism such as <xref target="DNS-SD"/>, <xref target="GRASP"/> or <xref target="CORE-LF"/>. In the
the initiator looks for a particular combination of a Service Name and an IP-protocol, and in return learns
about responder sockets from one or more responders that use this IP-protocol and serve the requested Service Name
type service across it. It also learns the BRSKI variation(s) supported on the socket.</t>

<t>Service Name is the name of the protocol element used in <xref target="DNS-SD"/>, unless explicitly specified, it is used
as a placeholder for the equivalent protocol elements in other discovery mechanisms. In <xref target="GRASP"/>, it is called
objective-name, in <xref target="CORE-LF"/> it is called Resource Type.</t>

<t>Upon discovery of the available sockets, the initiator selects one, whose supported variation(s) best match
the expectations of the initiator, including performance, security or other preferences. Selection may also
include attempting to establish a connection to the responder socket, and upon connection failure
to attempt connecting to the next best responder socket. This is for example necessary when discovery
information may not be updated in real-time, and the best responder has gone offline.</t>

</section>
<section anchor="variation-contexts"><name>Variation Contexts</name>

<t>A Variation Context is a set of (Discover Mechanism, Service Names, IP-protocols) across which this document
and the registry of variations defines a common set of variations. The initial registry defined in this
document defines two variation contexts.</t>

<dl>
  <dt>BRSKI context:</dt>
  <dd>
    <t>context for discovery of BRSKI registrar and proxy variations by proxies, pledges or agents
(as defined in <xref target="BRSKI-PRM"/>) via the Service Names defined for <xref target="DNS-SD"/> and <xref target="GRASP"/> via
TCP and hence (by default) TLS (version 1.2 or higher according to <xref target="BRSKI"/>).</t>
  </dd>
  <dt>cBRSKI context (constrained BRSKI):</dt>
  <dd>
    <t>context for discovery of BRSKI registrar and proxy variations by proxies, pledges 
via the Service Names defined for <xref target="DNS-SD"/>, <xref target="GRASP"/> and <xref target="CORE-LF"/> via UDP, and hence (by default) secure COAP.</t>
  </dd>
</dl>

<t>Note that the Service Names for cBRSKI include the same <xref target="DNS-SD"/> Service Names as for the BRSKI context,
hence enabling the use of <xref target="DNS-SD"/> with cBRSKI.</t>

<t>This document does not define variations for different end-to-end encryption mechanisms, so
only the "(by default)" options exist at the time of writing this document. However, the mechanisms described here
can also be used to introduce backward incompatible new secure transport options. For example when responders start
to support only TLS 1.3 or higher in the presence of TLS 1.2 only initiators, then new variations can be added,
such that those initiators will not select those responders.</t>

<t>This document does not introduce variation contexts for discovery of other BRSKI roles, such as discovery
of pledges by agents (as defined in <xref target="BRSKI-PRM"/>), or discovery of MASA by registrars. However, the registry
introduced by this document is defined such that it can be extended by such additional contexts through future
documents.</t>

</section>
<section anchor="variation-types-and-choices"><name>Variation Types and Choices</name>

<t>A Variation Type is a variation in one aspect of the BRSKI connection between initiator and responder that ideally
orthogonal from variations in other aspects of the BRSKI connection.</t>

<t>A Variation Type Choice is one alternative (aka: value) for its Variation Type.</t>

<t>This document, and the initial registry documenting the variation types introduces three variation types as follows:</t>

<dl>
  <dt>mode:</dt>
  <dd>
    <t>A variation in the basic sequence of URI endpoints communicated. This document introduces the choices of
"rrm" to indicate the endpoints and sequence as defined in <xref target="BRSKI"/> and "prm" to indicate the endpoints and sequence
as defined in <xref target="BRSKI-PRM"/>. Note that registrars also act as responders in "prm". "rrm" was chosen because the
more logical "pim" (pledge initiator mode) term was feared to cause confusion with other technologies that use that term.</t>
  </dd>
  <dt>vformat (voucher format):</dt>
  <dd>
    <t>A variation in the encoding format of the voucher communicated between registrar and pledge. This document introduces
the choices "cms" as defined in <xref target="BRSKI"/>, "cose" as defined in <xref target="cBRSKI"/> and "jose" as defined in <xref target="JWS-VOUCHER"/>.</t>
  </dd>
  <dt>enroll:</dt>
  <dd>
    <t>A variation in the URI endpoints used for enrollment of the pledge with keying material (trust anchors and certificate (chain)). This document introduces the following :choices
</t>

    <t><list style="symbols">
      <t>"est" as introduced by <xref target="BRSKI"/> to indicate the <xref target="EST"/> protocol, which is default</t>
      <t>"cmp" to indicate the CMP protocol according to the Lightweight CMP profile (<xref target="lwCMP"/>). The respective adaptations to BRSKI have been introduced by <xref target="BRSKI-AE"/>.</t>
      <t>"scep" to indicate <xref target="SCEP"/>. This is only a reservation, because no specification for the use of <xref target="SCEP"/> with BRSKI exists.</t>
    </list></t>
  </dd>
</dl>

</section>
<section anchor="variations"><name>Variations</name>

<t>A Variation is the combination of one Choice each for every Variation Type applicable to the Variation Context.
In other words, a variation is a possible instance of BRSKI if supported by initiator and responder. In <xref target="BRSKI"/>,
the default variation is "registrar responder mode" (rrm) and use of the "cms voucher format" (cms).</t>

</section>
<section anchor="brski-variations-discovery-registry"><name>BRSKI Variations Discovery Registry</name>

<t>The IANA "BRSKI Variations Registry" as specified by this document, see <xref target="registry"/> specifies the
defined parameters for discovery of BRSKI variations.</t>

<section anchor="brski-variation-contexts-table"><name>BRSKI Variation Contexts table</name>

<t>This table, <xref target="fig-contexts"/>, defines the BRSKI Variations Contexts.</t>

<t>The "Applicable Variation Types" lists the Variation Types from whose choices a Variation for this
context is formed. The "Service Name(s)" column lists the discovery mechanisms and their Service Name(s)
that constitute the context.</t>

</section>
<section anchor="brski-variation-type-choices-table"><name>BRSKI Variation Type Choices table</name>

<t>This table, <xref target="fig-choices"/>, defines the Variations Type Choices.</t>

<t>The "Context" column lists the BRSKI Variation Context(s) to which this line applies. If it is empty, then the same
Context(s) apply as that of the last prior line with a non-empty Context column.</t>

<t>The "Variation Type" column lists the BRSKI Variation Type to which this line applies. If it is empty, then the
same Variation Type applies as that of the last prior line with a non-empty Variation Type column.
Variation Types <bcp14>MUST</bcp14> the listed in the order in which the Variation Types are listed in the Applicable Variation Types
column of the BRSKI Variation Contexts table.</t>

<t>The "Variation Type Choice" column defines a Variation Type Choice term within the Context(s) of the line.
To allow the most flexible encodings of variations, all Variation Types and Variation Type Choices <bcp14>MUST</bcp14> be unique strings (across all Variation Types).
This allows to encode Variation Type Choices in a discovery mechanism without indicating their Variation Type. Variation Types
and Variation Type Choices and <bcp14>MUST</bcp14> be strings from lowercase letters a-z and digits 0-9 and <bcp14>MUST</bcp14> start with a letter. The
maximum length of a Variation Type Choice is 12 characters.</t>

<t>The "Reference" column specifies the documents which describe the Variation Type Choice. Relevant specification
includes those that only specify the semantics without referring to the aspects of discovery and/or those
that specify only the Discovery aspects. Current RFCs for BRSKI variations preceding this RFC typically
only specify the semantics, and this document adds the discovery aspects.</t>

<t>The "Dflt" Flag specifies a Variation Type Choice that is assumed to be the default Choice for the Context,
such as "rrm" for the BRSKI context. Such a Variation Type Choice is to be assumed to be supported in discovery
if discovery is performed without indication of any or an empty signaling element to carry the Variation or
Variation Choices. For example, <xref target="BRSKI"/> specifies the empty string "" as the objective-value in <xref target="GRASP"/>
discovery. Because "rrm", "est" and "cms" are default in the BRSKI context, this Discovery signaling
indicates the support for those Variation Type Choices.</t>

<t>The "Dflt<em>" Flag specifies a Variation Type Choice that is only default in a subset of Discovery options in a
context. The Note(s) column has then to explain which subset this is. Like for "Dflt", the signaling in
this subset of Discovery options can then forego indication of the "Dflt</em>" Variation Type Choice.</t>

<t>The "Rsvd" Flag specifies a Variation Type Choice for which no complete specification exist on how to use it
within BRSKI (or more specifically the context), but which is known to be of potential interest. "Rsvd"
Variation Type Choices <bcp14>MUST NOT</bcp14> be considered for the  Discoverable Variations table. They are documented
primarily to reserve the Variation Type Choice term.</t>

<t>The Note(s) section expands the Variation Type Choice terms and provides additional beneficial specification
references beyond the "Reference" column.</t>

</section>
<section anchor="variation"><name>BRSKI Discoverable Variations table</name>

<t>This table <xref target="fig-variations"/> enumerates the Discoverable Variations and categorizes them.</t>

<t>The "Context" column lists the BRSKI Variation Context(s) to which this line applies. If it is empty, then the same
Context(s) apply as that of the last prior line with a non-empty Context column.</t>

<t>The "Spec / Applicability" lists the document(s) that specify the variation, if the variation is
explicitly described. If the variation is not described explicitly, but rather a combination of
Variation Type Choices from more than one BRSKI related specification, then this column will
indicate "-" if by expert opinion it is assumed that this variation should work, or "NA", if
by expert opinion, this variation could not work. The "Explanations" column includes references
to the relevant documents and as necessary additional explanation.</t>

<t>The "Variation" column lists the Variation Type Choices that form the Variation. The Variation Type Choices
<bcp14>MUST</bcp14> be listed in the order in which the Variation Types are listed in the Applicable Variation Types
column of the BRSKI Variation Contexts table.</t>

<t>The "Variation String" column has the string term used to indicate the variation when using the
simple encoding of BRSKI Variation Discovery for GRASP as described in <xref target="GRASP"/>. It is formed by
concatenating the Choices term from the Variation column with the "-" character, excluding those
Choices terms (and "-" concatenator) which are Default for the Context. If this procedure ends
up with the empty string, then this is indicated as "" in the column.</t>

<t>The "Explanations" column explains the "Spec / Applicability" status of the Variation.</t>

</section>
<section anchor="extending-or-modifying-the-registry"><name>Extending or modifying the registry</name>

<t>Unless otherwise specified below, extension or changes to the registry require standards action.</t>

<t>Additional Variation Type Choices and Variation Context discovery mechanism Service Names including
additional discovery mechanisms require (only) specification and expert review if they refer to non standard action
protocols and/or protocol variation aspects. For example, a specification how to use <xref target="SCEP"/> with BRSKI would
fall under this clause as it is an informational RFC.</t>

<t>Non standards action Variation Type Choices can not be Default(Dflt). They can only be Dflt* for non standards action
(sub)Contexts.</t>

<t>Reservation of additional Variation Type Choices requires (only) expert review.</t>

<t>Additional Contexts <bcp14>MUST</bcp14> be added at the end of the BRSKI Variation Contexts table.</t>

<t>Additional Variation Types <bcp14>MUST</bcp14> be added at the end of the Applicable Variation Types column of the
BRSKI Variation Contexts table and at the end of existing lines for the Context in the 
BRSKI Variation Type Choices. Additional Variation Types <bcp14>MUST</bcp14> be introduced with a Default (Dflt) 
Variation Type Choice. These rules ensures that the rule to create the Variation String for GRASP
(and as desired by other discovery mechanism), and it also enables to add new Variation Type and Choices
without changing pre-existing Variation Strings: Any Variations String implicitly include the Default Choice for
any future Variation Types.</t>

<t>When a new Variation Type is added, their Default Choice <bcp14>SHOULD</bcp14> be added to the Variation Column of existing
applicable lines in the BRSKI Discoverable Variations table. Variations that include new non-Default 
Variation Type Choices <bcp14>SHOULD</bcp14> be added at the end of the existing lines for the Context.</t>

</section>
</section>
<section anchor="brski-join-proxies-support-for-variations"><name>BRSKI Join Proxies support for Variations</name>

<section anchor="permissible-variations"><name>Permissible Variations</name>

<t>Variations according to the terminology of this document are those that do not require changes to BRSKI join proxy operations,
but that can transparently pass across existing join proxies without changes to them - as long as they support the rules
outlined in this document.</t>

<t>Different choices for e.g.: pledge to registrar encryption mechanisms, voucher format (vformat), use of different URI endpoints or enrollment
protocol endpoints (mode) are all transparent to join proxies, and hence join proxies can not only support existing, well-defined
Choices of these Variation Types, but without changes to the proxies also future ones - and only those are permitted to become
Variation Type Choices.</t>

<t>Changes to the BRSKI mechanism that do require additional changes to join proxies are not considered Variations
according to this document and <bcp14>MUST NOT</bcp14> use the same discovery protocol signaling elements as those defined for variations
by this document. Instead, they <bcp14>SHOULD</bcp14> use different combinations of Service Name and Protocol (e.g.: TCP vs. UDP).</t>

<t>For example, the stateless join proxy mode defined by <xref target="cPROXY"/> is such a mechanism that requires explicit
join proxy support. Therefore, registrars sockets that support circuit proxy mode use the GRASP objective "AN_join_registrar",
and registrar sockets that support stateless join proxy mode use the GRASP objective "AN_join_registrar_rjp". This
enables join proxies to select the registrar and socket according to what the join proxy supports and prefers. By
not using the same signaling element(s) for variations, join proxies can support discovery of all variations
independent of their support for stateless join proxy operations.</t>

</section>
<section anchor="proxy"><name>Join Proxy support for Variations</name>

<t>Join proxies supporting the mechanisms of this document <bcp14>MUST</bcp14> signal for each socket they announce to initiators via a discovery
mechanism the Variation(s) supported on the socket. These Variation(s) <bcp14>MUST</bcp14> all be supported by the registrar that the join
proxy then uses for the connection from the initiator (e.g.: pledge). Pledges <bcp14>SHOULD</bcp14> announce sockets to initiators so that
all Variations that are supported by registrars that the join proxy can interoperate with are also available to the initiators
connecting to the join proxy.</t>

<t>To meet these requirements, join proxies can employ different implementation option. In the most simple one, a join proxy
allocates a separate responder socket for every Variation for which it discovers one or more registrars supporting
this Variation. It then announces that socket with only that one Variation in the discovery mechanism, even if the Registrar(s) are all
announcing their socket with multiple Variations. When the join proxy operates in circuit mode, it can then
select one of the registrars supporting the variation for every new initiator connection based on policies
as specified by BRSKI specifications and/or discovery parameters, such as priority and weight when <xref target="DNS-SD"/> is used,
and redundant registrars include those parameters.</t>

<t>TBD: insert example of received Registrar announcement and created proxy announcement ??</t>

<t>Join proxies <bcp14>MAY</bcp14> reduce the number of sockets announced to initiators by using a single socket for all Variations for
which they have the same set of registrar sockets supporting those Variations. This primarily helps to reduce the size
of the discovery messages to initiators and can save socket resources on the join proxy.</t>

<t>Join proxies <bcp14>MAY</bcp14> create multiple sockets in support of other discovery options, even for the same Variation(s).
For example, if <xref target="DNS-SD"/> is used by two registrars, both announcing the same priority but different weights, then 
the join proxy may create a separate socket for each of these registrars - and their variations, so that the join proxy can equally announce the same
priority and weight for both sockets to initiators. This allows to maintain the desired weights of use of registrars,
even when the join proxy operates in stateless mode, in which it can not select a separate registrar for every 
client initiating a connection.</t>

</section>
<section anchor="colo"><name>Co-location of Proxy and Registrar</name>

<t>In networks using <xref target="BRSKI"/> and <xref target="ACP"/>, registrars must have a co-located
proxy, because pledges can only use single-hop discovery (DULL-GRASP) and will only discover
proxies, but not registrar. Such a co-located proxy does not constitute additional processing/code
on a registrar supporting circuit mode, it simply implies that the registrars BRSKI services(s) are
announced with a proxy Service Name, to support pledges, and the  registrar service name, to
support join proxies.</t>

<t>To ease consistency of deployment models in the face of different discovery mechanisms, Variations and
non-Variation enhancements to BRSKI, it is <bcp14>RECOMMENDED</bcp14> that all future options to BRSKI do always have
a Service Name for proxies and a separate Service Name in support of pledge or other initiators. Pledges
and other initiators <bcp14>SHOULD</bcp14> always only look for the proxy Service Name, and only Proxies should look
for a registrar Service Name. Registrars therefore <bcp14>SHOULD</bcp14> always include the proxy functionality according
to the prior paragraph. This only involves additional code on the registrar beyond the service announcement
in case the Registrar would otherwise not implement circuit mode.</t>

</section>
</section>
<section anchor="brski-pledges-support-for-variations"><name>BRSKI Pledges support for Variations</name>

<section anchor="brski-pledge-context"><name>BRSKI-PLEDGE context</name>

<t>BRSKI-PLEDGE is the context for discovery of pledges by nodes such as registrar-agents.
Pledges supporting <xref target="BRSKI-PRM"/> <bcp14>MUST</bcp14> support it. It may also be used by other variations of BRSKI
when supported by pledges.</t>

<t>Pledges supporting BRSKI-PLEDGE <bcp14>MUST</bcp14> support DNS-SD for discovery via mDNS, using link-local scope.
For DNS-SD discovery beyond link-local scope, pledges <bcp14>SHOULD</bcp14> support DNS-SD via <xref target="I-D.ietf-dnssd-srp"/>.</t>

<t>TBD: Is there sufficient auto-configuration support in <xref target="I-D.ietf-dnssd-srp"/>, that pledges without any
configuration can use it, and if so, do we need to raise specific additional requirements to enable this
in pledges ?</t>

<t>These DNS-SD requirements are defaults. Specifications for specific deployment contexts such as specific
type of radio network solutions may need to specify their own requirements overriding or amending these
requirements.</t>

<t>Pledges <bcp14>MUST</bcp14> support to be discoverable via their service instance name. They <bcp14>MAY</bcp14> be discoverable
via DNS-SD browsing, so that registrar-agents can find even unexpected pledges through DNS-SD browsing.</t>

<t>Support for browsing is required to discover over the network pledges supporting only <xref target="BRSKI-PRM"/>,
but not <xref target="BRSKI"/> if they have no known serial-number information from which their service instance
name can be constructed, so it is a crucial feature for robust enrollment.  See <xref target="security-considerations"/>
for more details about discovery and BRSKI-PLEDGE.</t>

<t>When pledges are discoverable vis DNS-SD browsing, they <bcp14>MUST</bcp14> expect that a large number of pledges
exist in the network at the same time, such as in the order of 100 or more, and schedule their responses
according to the procedures in <xref target="mDNS"/> and <xref target="DNS-SD"/> to avoid simultaneous reply from all pledges.</t>

<t>TBD: What is the best section in mDNS/DNS-SD to point to for this timed reply to scale ?</t>

<t>Browsing via DNS-SD for a pledge is circumvented by the pledge not announcing its PTR RR for
"brski-registrar". Technically, the remaining RR may not constitute full DNS-SD service, but
they do provide the required discovery for the known service instance name of the pledge.</t>

<t>counter measures such as limiting the number and rate of PRM connects that they accept, ideally 
on a per-initiator basis (assuming that DDoS attacks are more harder to mount than single
attacker DoS attacks).</t>

<section anchor="service-instance-name"><name>Service Instance Name</name>

<t>The service instance name chosen by a BRSKI pledge <bcp14>MUST</bcp14> be composed from information which is</t>

<t><list style="symbols">
  <t>Easily known by BRSKI operations, such as the operational personnel or software automation,
specifically sales integration,</t>
  <t>Available to the pledges BRSKI software itself, for example by being encoded in some attribute of the IDevID.</t>
</list></t>

<t>Typically, a customer will know the serial number of a product from sales information, or even
from bar-code/QR-codes on the product itself. If this serial number is used as the service instance
name to discover a pledge from a registrar-agent, then this may lead to possible duplicate replies
from two or more pledges having the same serial number, such as in the following cases:</t>

<t><list style="numbers">
  <t>A manufacturer has different product lines and re-uses serial-numbers across them.</t>
  <t>Two different manufacturer re-use the same serial-numbers.</t>
</list></t>

<t>If pledges enable browsing of their service instance name, they <bcp14>MAY</bcp14> support <xref target="DNS-SD"/> specified
procedures to create unique service instance names when they discover such clashes, by appending
a space and serial number, starting with 2 to the service instance name: "&lt;service-instance-name&gt; (2)",
as described in <xref target="DNS-SD"/> Appendix D.</t>

<t>Nevertheless, this approach to resolving conflicts is not desirable:</t>

<t><list style="symbols">
  <t>If browsing of DNS-SD service instance name is not supported, registrar-agents would have to
always (and mostly wrongly) guess that there is a clash and (mostly unnecessarily) search
for "&lt;service-instance-name&gt; (2)".</t>
  <t>If a clash exists between pledges from the same manufacturer, and even if the registrar-agent
then attempts to start enrolling all pledges with the same clashing service instance name,
it may not have enough information to determine which the correct pledge is. This would happen
especially if the IDevID from both devices (of different product type), had the same serial
number, and the CA of both was the same (because they come from the same manufacturer).
Even if some other IDevID field was used to distinguish their device model, the registrar-agent
would not be able to determine that difference without additional vendor specific programming.</t>
</list></t>

<t>In result:</t>

<t><list style="symbols">
  <t>Vendors <bcp14>MUST</bcp14> document a scheme how their pledges form a service instance name from
information available to the customer of the pledge.</t>
  <t>These service instance names <bcp14>MUST</bcp14> be unique across all IDevID of the manufacturer that
share the same CA.</t>
</list></t>

<t>The following mechanisms are recommended:</t>

<t><list style="symbols">
  <t>Pledges <bcp14>SHOULD</bcp14> encode manufacturer unique product instance information in their
subject name serialNumber. <xref target="RFC5280"/> calls this the X520SerialNumber.</t>
  <t>Pledges <bcp14>SHOULD</bcp14> make this serialNumber information consistent with easily accessible
product instance information when in physical possession of the pledge, such as
product type code and serial number on bar-code/QR-code to enable <xref target="BRSKI-PRM"/> discovery
without additional backend sales integration. Note that discovery alone does not
allow for enrollment!</t>
  <t>Pledges <bcp14>SHOULD</bcp14> construct their service instance name by concatenating
their X520SerialNumber with a domain name prefix that is used by the manufacturer
and thus allows to disambiguate devices from different manufacturer using the
same serialNumber scheme, and hence the likelihood of service instance name clashes.</t>
</list></t>

<figure title="Example service instance name data" anchor="service-name-example"><artwork><![CDATA[
Service Instance Name:
  "PID:Model-0815 SN:WLDPC2117A99.example.com"

Manufacturer published Service Instance Name schema:
 PID:\<PID>\\ SN:\<SN>.example.com

Pledge IDevID certificate information:
  ; Format as shown by e.g.: openssh
  Subject: serialNumber = "PID:Model-0815 SN:WLDPC2117A99",
    O = Example, CN = Model-0815

DNS-SD RR for the pledge:
  ; PTR RR to support browsing / discovery of service instance name
  _brski-pledge._tcp.local  IN PTR
    PID:Model-0815\\ SN:WLDPC2117A99\\.example\\.com._brski-pledge._tcp.local
 
  ; SRC and TXT RR for the service instance name
  PID:Model-0815\\ SN:WLDPC2117A99\\.example\\.com._brski-pledge._tcp.local
    IN SRV 1 1 
    PID:Model-0815\\ SN:WLDPC2117A99\\.example\\.com.local
  PID:Model-0815\\ SN:WLDPC2117A99\\.example\\.com._brski-pledge._tcp.local
    IN TXT ""

  ; AAAA address resolution for the target host name
  PID:Model-0815\\ SN:WLDPC2117A99\\.example\\.com.local
    IN AAAA fda3:79a6:f6ee:0000::0200:0000:6400:00a1
]]></artwork></figure>

<t>In <xref target="service-name-example"/>, the manufacturer "example" identifies device instances 
through a product identifier &lt;PID&gt; and a serial number &lt;SN&gt;. Both are printed on labels
on the product/packaging and/or communicated during purchase of the product.</t>

<t>The service instance name of pledges from this manufacturer are using the
string "PID:&lt;PID&gt; SN:&lt;SN&gt;.example.com". "example.com" is assumed to be a
domain owned by this manufacturer. &lt;PID&gt; and &lt;SN&gt; are replaced by the actual
strings.</t>

<t>The IDevID encodes the service instance name without the domain ending (".example.com")
in the X520SerialNumber field. Other fields of the IDevID are not used.</t>

<t>The resulting DNS-SD RRs that the pledge announces are shown in the example.
" " and "." characters are escaped as recommended by <xref target="DNS-SD"/>.</t>

<t>In this example, the same string as constructed for the service instance name
is also used as the target host name. This is of course not necessary, but
unless the pledge already obtains a host name through other DNS means,
re-using the same name allows to avoid coming up with a second method to
construct a unique name.</t>

</section>
</section>
</section>
<section anchor="variation-signaling-and-encoding-rules-for-different-discovery-mechanisms"><name>Variation signaling and encoding rules for different discovery mechanisms</name>

<section anchor="dns-sd"><name>DNS-SD</name>

<section anchor="signaling"><name>Signaling</name>

<t>The following definitions apply to any instantiation of DNS-SD including DNS-SD via mDNS as defined in
<xref target="DNS-SD"/>, but also via unicast DNS, for example by registering the necessary DNS-SD Resource Records (RR) via <xref target="I-D.ietf-dnssd-srp"/> (SRP).</t>

<t>The requirements in this document do not guarantee interoperability when using DNS-SD, instead, they need to be amended
with deployment specific specifications / requirements as to which signaling variation, such as mDNS
or unicast DNS with SRP is to be supported between initiator and responder. When using unicast DNS
(with SRP), additional mechanisms are required to learn the IP / IPv6 address(es) of feasible DNS and
SRP servers, and deployment may also need agreements for the (default) domain they want to use in
unicast DNS. Hence, a mandatory to implement (MTI) profile is not feasible because of the wide range
of variations to deploy DNS-SD.</t>

<t>TBD: We could say that mDNS <bcp14>MUST</bcp14> be supported, unless the network context defines an interoperable
mode to support DNS-SD without mDNS ???</t>

</section>
<section anchor="encoding"><name>Encoding</name>

<t>Variation Type Choices defined in the IANA registry <xref target="fig-variations"/> are encoded as <xref target="DNS-SD"/> Keys with
a value of 1 in the DNS-SD service instances TXT RR.
This is possible because all Variation Type Choices are required to be unique across all Variation Types. It also allows to shorten
the encoding from "key=1" to just "key" for every Variation Type Choice, so that the TXT-DATA encoding can be more compact.</t>

<t>If the TXT Record does not contain a Variation Type Choice for a particular applicable Variation Type, then this indicates
support for the Default Choice of this Variation Type in the context of the DNS-SD Service Name. For example, if the TXT
Record is "jose", then this indicates support for "rrm" and "est", if the Service Name is brski-registrar or brski-proxy and the
protocol is TCP (BRSKI Context), but also when the protocol is UDP (cBRSKI context), because "rrm" and "est" are defaults
in both contexts.</t>

<t>If multiple Variation Type Choices for the same Variation Type are indicated, then this implies
that either of these Variation Type Choices is supported in conjunction with any of the other
Variation Type Choices in the same TXT Record. For example, if the TXT Record is "prm" "rrm" "cms" "jose", then
this implies support for rrm-cms-est, rrm-jose-est, prm-cms-est and prm-jose-est. This example also shows
that if the default Variation Type Choice, such as "rrm" and another Choice of the same Variation Type ("prm") are to
be indicated as supported, then both need to be included in the TXT Record.</t>

<t>In <xref target="DNS-SD"/>, a responder does not only indicate a Service Name, but also its Service Instance Name, which needs
to be unique across the domain to support initiators selecting a responder. This specification makes no recommendation
for choosing the Instance portion of that name. Usually it is the same, or derived from some form of pre-existing system name.</t>

<t>Registrars <bcp14>SHOULD</bcp14> support support their configuration without specifying a name to use in the Service Instance Name to minimize the
amount of configuration required. Registrars <bcp14>SHOULD</bcp14> support the configuration of such a name.</t>

<t>If the responder needs to indicate different sockets for different (set of) Variations, for example,
when operating as a proxy, according to <xref target="proxy"/>, then it needs to signal for each socket a separate Service Instance Name
with the appropriate port information in its SRV Record and the supported Variations for that socket in the TXT Record of that
Service Instance Name. In this case, it is <bcp14>RECOMMENDED</bcp14> that the Instance Name includes the Variation it supports,
such as in the format specified in <xref target="variation"/> and used in the Variation String column of the <xref target="fig-variations"/> table.</t>

<figure title="DNS-SD for a simple BRSKI and cBRSKI registrar" anchor="dnssd-example-1"><artwork><![CDATA[
               _brski-registrar._tcp.local
               IN PTR  0200:0000:7400._brski-registrar._tcp.local
0200:0000:7400._brski-registrar._tcp.local
                IN SRV  1 2 4555 0200:0000:7400.local
0200:0000:7400._brski-registrar._tcp.local IN TXT  "rrm" "prm"
0200:0000:7400.local
                IN AAAA  fda3:79a6:f6ee:0000::0200:0000:6400:0001

               _brski-registrar._udp.local
                IN PTR  0200:0000:7400._brski-registrar._udp.local
0200:0000:7400._brski-registrar._udp.local
                IN SRV  1 2 5684 0200:0000:7400.local
0200:0000:7400._brski-registrar._udp.local IN TXT  ""
]]></artwork></figure>

<t>In the above example <xref target="dnssd-example-2"/>, a registrar supports BRSKI with "rrm" and "prm" modes across the same TCP socket, port 4555.
It uses "cms" voucher format and "est" enrollment, which are not included in the TXT strings because both are default for
_brski-registrar._tcp. The registrar also offers cBRSKI with "rrm" mode,  "cose" voucher and "est" enrollment on UDP port 5684,
the COAP over DTLS default port. The TXT RR for this has only an empty string because "rrm", "cose" and
"est" are default for cBRSKI.</t>

<t>As the instance name, the registrar uses in this example the MAC address "0200:0000:7400", which is
MAC address of the interface on which the registrar has the IPv6 address "fda3:79a6:f6ee:0000::0200:0000:6400:0001".
The registrar should know that this MAC address is globally unique (assigned by IEEE). Else it should instead
use its IPv6 address as the Instance Name. For example, if the registrar is just a software application not
knowing the specifics of the hardware it is running on, the MAC address <bcp14>MUST NOT</bcp14> be used. If only mDNS is used
(as in this example), then the IPv6 link-local address would also suffice as the Instance Name.</t>

<t>In this example, a single Instance Name suffices, because BRSKI and cBRSKI are two separate service
contexts: they are distinguished by different protocols: TCP vs. UDP.</t>

<figure title="DNS-SD for a BRSKI registrar supporting RRM and PRM" anchor="dnssd-example-2"><artwork><![CDATA[
0123456789012345678901234567890123456789012345678901234567890123456789
                   _brski-registrar._tcp.local
               IN PTR  0200:0000:7400-rrm._brski-registrar._tcp.local
0200:0000:7400-rrm._brski-registrar._tcp.local
               IN SRV  1 2 4555 0200:0000:7400-rrm.local
0200:0000:7400-rrm._brski-registrar._tcp.local IN TXT ""
0200:0000:7400-rrm.local
               IN AAAA fda3:79a6:f6ee:0000::0200:0000:6400:0001

                   _brski-registrar._tcp.local
               IN PTR 0200:0000:7400-prm._brski-registrar._tcp.local
0200:0000:7400-prm._brski-registrar._tcp.local
               IN SRV 1 2 4555 0200:0000:7400-prm.local
0200:0000:7400-prm._brski-registrar._tcp.local
               IN TXT "prm" "cmp"
0200:0000:7400-prm.local
               IN AAAA fda3:79a6:f6ee:0000::0200:0000:6400:0001
]]></artwork></figure>

<t>In the second example <xref target="dnssd-example-2"/>, a registrar needs to use two different Instance Names, because both
share the same service context: BRSKI - TCP with service name brski-registrar. In this example, the registrar
offers "rrm" mode with "cms" voucher and "est" enrollment. It also offers "prm" mode with "cms" voucher,
but (only) with "cmp" enrollment protocol. Because the registrar does not offer "rrm" with "cmp", or
"prm" with "est", it is not possible to coalesce all variations under one Instance Name, so instead, two
Instance Names have to be created, and with them the necessary (duplicate) RR.</t>

<t>Note that the "-rrm" and "-prm" in the Instance Names are only explanatory and could be any mutually unique
strings - as is true for the whole Instance Name.</t>

<t>Note too, that because both Instances share the same port number 4555 (and hence TCP socket), they both have
to be provided by the same BRSKI application. If two separate applications where to be started on the
dame host, one for "rrm", the other for "prm", then they would have separate sockets and hence port numbers.</t>

</section>
</section>
<section anchor="grasp"><name>GRASP</name>

<section anchor="signaling-1"><name>Signaling</name>

<t>This document does not specify a mandatory to implement set of signaling options to guarantee
interoperability of discovery between initiator and responders when using GRASP. Like for the
other discovery mechanisms, these requirements will have to come from other specifications
that outline what in <xref target="GRASP"/> is called the "security and transport substrate" to be used for
GRASP.</t>

<t><xref target="RFC8994"/> specifies one such "security and transport substrate", which is zero-touch deployable.
It is mandatory to support for initiators and responders implementing the so-called
"Autonomic Network Infrastructure" (ANI). DULL GRASP is used for link-local discovery of
proxies, and the ACP is used to automatically and securely build the connectivity for multi-hop discovery
of registrars by proxies.</t>

</section>
<section anchor="encoding-1"><name>Encoding</name>

<t>To announce protocol variations with <xref target="GRASP"/>, the supported Variation is indicated in the 
objective-value field of the GRASP objective, using the method of forming the Variation string term
in <xref target="variation"/>, and listed in the Variation String column of the <xref target="fig-variations"/> table.</t>

<t>If more than one Variation is supported, then multiple objectives have to be announced, each with
a different objective-value, but the same location information if the different Variations are
supported across the same socket. Different sockets require different objective structures in GRASP anyhow.</t>

<t>Compared to DNS-SD, the choice of encoding for GRASP optimizes for minimum parsing effort, whereas
the DNS-SD encoding is optimized for most compact encoding given the limit for DNS-SD TXT records.</t>

<figure title="GRASP example for a BRSKI registrar supporting RRM and PRM" anchor="grasp-example-1"><artwork><![CDATA[
[M_FLOOD, 12340815, h'fe800000000000000000000000000001', 180000,
    [["AN_Proxy", 4, 1, "",
     [O_IPv6_LOCATOR,
     h'fe800000000000000000000000000001', IPPROTO_TCP, 4443],
     ["AN_Proxy", 4, 1, "prm",
     [O_IPv6_LOCATOR,
     h'fe800000000000000000000000000001', IPPROTO_TCP, 4443],
     ["AN_Proxy", 4, 1, "",
     [O_IPv6_LOCATOR,
     h'fe800000000000000000000000000001', IPPROTO_UDP, 4684]]
]
]]></artwork></figure>

<t><xref target="grasp-example-1"/> is an example for a GRASP service announcement for "AN_Proxy" in support of BRSKI
with both "rrm" and "prm" supported on the same socket (TCP port number) and for cBRSKI with
COAP over DTLS.</t>

<t>Note that one or more complete service instances (in the example 3) can be contained within a single GRASP message
without the need for any equivalent to the Service Instance Name of the DNS-SD PTR RR or the
Target name of the DNS-SD SRV RR. DNS-SD requires them because its encoding is
decomposed into different RR, but it also intentionally introduces the Service Instance Name
as an element for human interaction with selection (browsing and/or diagnostics of selection),
something that the current GRASP objective-value encoding does not support.</t>

<t>Because this GRASP encoding does not support service instance name, examples such as</t>

<figure title="GRASP example with two different processes" anchor="grasp-example-2"><artwork><![CDATA[
[M_FLOOD, 12340815, h'fe800000000000000000000000000001', 180000,
    [["AN_Proxy", 4, 1, "",
     [O_IPv6_LOCATOR,
     h'fe800000000000000000000000000001', IPPROTO_TCP, 4443],
     ["AN_Proxy", 4, 1, "",
     [O_IPv6_LOCATOR,
     h'fe800000000000000000000000000001', IPPROTO_UDP, 4684]]
]

[M_FLOOD, 42310815, h'fe800000000000000000000000000001', 180000,
    [["AN_Proxy", 4, 1, "prm",
     [O_IPv6_LOCATOR,
     h'fe800000000000000000000000000001', IPPROTO_TCP, 44000]]
]
]]></artwork></figure>

<t>In <xref target="grasp-example-2"/>, A separate application process supports "prm" and hence
uses a separate socket, with example TCP port 44000. In this case, there is
no need nor significant benefit to merge all service instance announcements into
a single GRASP message. Instead, the BRSKI-"rrm"/cBRSKI process would be
able to generate and send its own, first, message shown in the example, and the
second process would send its own, second message in the example.</t>

<t>For a more extensive, DNS-SD compatible encoding of the objective-value that also
support Service Instance Names, see <xref target="I-D.eckert-anima-grasp-dnssd"/>.</t>

</section>
</section>
<section anchor="core-lf"><name>CORE-LF</name>

<section anchor="signaling-2"><name>Signaling</name>

<t>"Web Linking", <xref target="RFC5988"/> defines defines a format, originally for use with
HTTP headers, to link a HTTP document against other URIs. Web linking is not a stand alone
method for discovery of services for use with HTTP.</t>

<t>"Constrained RESTful Environments (CoRE) Link Format", <xref target="CORE-LF"/> introduces a
stand alone method to discover services instances (called resources in CORE-LF).
An initiator connects to a previously discovered initiator and uses CORE-LF
to discover the available service instances and their COAP parameters, such as
their endpoints and service parameters.</t>

</section>
</section>
</section>
</section>
<section anchor="updates-to-existing-rfcs"><name>Updates to existing RFCs</name>

<section anchor="rfc8995"><name>RFC8995</name>

<t>TBD.</t>

</section>
</section>
<section anchor="iana-considerations"><name>IANA considerations</name>

<section anchor="registry"><name>BRSKI Variations Discovery Registry (section)</name>

<t>This document requests a new section named "BRSKI Variations Discovery Parameters"
in the "Bootstrapping Remote Secure Key Infrastructures (BRSKI) Parameters"
registry (https://www.iana.org/assignments/brski-parameters/brski-parameters.xhtml).
Its initial content is as follows.</t>

<t>[ RFC editor. Please remove the following sentence.
Note: This section contains three tables according to the specifications of this document.
If it is not possible to introduce more than one table per section, then we will modify the request
accordingly for three sections, but given how the three tables are tightly linked, that would be unfortunate. ]</t>

<t>Registration Procedure(s):
  Standards action or expert review based on registration.  See ThisRFC.</t>

<t>Experts:
  TBD.</t>

<t>Reference:
  ThisRFC.</t>

<t>Notes:</t>

<dl>
  <dt>Dflt flag:</dt>
  <dd>
    <t>Indicates a Variation Type Choice that is assumed to be used if the service discover/selection mechanism does not indicate any variation.</t>
  </dd>
  <dt>Rsvd Flag:</dt>
  <dd>
    <t>Indicates a Variation Type Choice that is reserved for use with the mechanism described in the Note(s) column, but for which no specification yet exists.</t>
  </dd>
  <dt>Spec / Applicability:</dt>
  <dd>
    <t>A "-" indicates that the variation is considered to be feasible through existing specifications, but not explicitly mentioned in them.
An "NA" indicates that the combination is assumed to be not working with the currently available specifications.</t>
  </dd>
</dl>

<texttable title="BRSKI Variation Contexts" anchor="fig-contexts">
      <ttcol align='left'>Context</ttcol>
      <ttcol align='left'>Applicable Variation Types</ttcol>
      <ttcol align='left'>Discovery Mechanism</ttcol>
      <ttcol align='left'>Service Name(s)</ttcol>
      <c>BRSKI</c>
      <c>mode<br />vformat<br />enroll</c>
      <c>GRASP</c>
      <c>"AN_join_registrar" /<br /> "AN_Proxy"<br />with IPPROTO_TCP</c>
      <c>&#160;</c>
      <c>&#160;</c>
      <c>DNS-SD</c>
      <c>"brski-registrar" /<br /> "brski-proxy"<br /> with TCP</c>
      <c>cBRSKI</c>
      <c>mode<br />vformat<br />enroll</c>
      <c>GRASP</c>
      <c>"AN_join_registrar" /<br /> "AN_join_registrar_rjp" /<br /> "AN_Proxy"<br /> with IPPROTO_UDP</c>
      <c>&#160;</c>
      <c>&#160;</c>
      <c>DNS-SD</c>
      <c>"brski-registrar" /<br /> "brski-proxy"<br /> with UDP</c>
      <c>&#160;</c>
      <c>&#160;</c>
      <c>CORE-LF</c>
      <c>rt=brski.*</c>
      <c>BRSKI-PLEDGE</c>
      <c>mode<br />vformat<br />enroll</c>
      <c>DNS-SD</c>
      <c>"brski-pledge" with TCP</c>
</texttable>

<texttable title="BRSKI Variation Type Choices" anchor="fig-choices">
      <ttcol align='left'>Context</ttcol>
      <ttcol align='left'>Variation Type</ttcol>
      <ttcol align='left'>Variation Type Choice</ttcol>
      <ttcol align='left'>Reference</ttcol>
      <ttcol align='left'>Flags</ttcol>
      <ttcol align='left'>Note(s)</ttcol>
      <c>BRSKI, cBRSKI</c>
      <c>mode</c>
      <c>rrm</c>
      <c><xref target="RFC8995"/><br />ThisRFC</c>
      <c>Dflt</c>
      <c>Registrar Responder Mode <br /> the mode specified in <xref target="RFC8995"/></c>
      <c>&#160;</c>
      <c>&#160;</c>
      <c>prm</c>
      <c>ThisRFC  <br /></c>
      <c>&#160;</c>
      <c>Pledge Responder Mode    <br /> <xref target="I-D.ietf-anima-brski-prm"/></c>
      <c>BRSKI</c>
      <c>vformat</c>
      <c>cms</c>
      <c><xref target="RFC8368"/><br />ThisRFC</c>
      <c>Dflt</c>
      <c>CMS-signed JSON Voucher  <br /></c>
      <c>&#160;</c>
      <c>&#160;</c>
      <c>cose</c>
      <c>ThisRFC<br /></c>
      <c>&#160;</c>
      <c>CBOR with COSE signature<br /></c>
      <c>cBRSKI</c>
      <c>&#160;</c>
      <c>cose</c>
      <c>ThisRFC<br /></c>
      <c>Dflt</c>
      <c>CBOR with COSE signature <br /> <xref target="I-D.ietf-anima-constrained-voucher"/></c>
      <c>&#160;</c>
      <c>&#160;</c>
      <c>cms</c>
      <c><xref target="RFC8368"/><br />ThisRFC</c>
      <c>&#160;</c>
      <c>CMS-signed JSON Voucher  <br /></c>
      <c>BRSKI, cBRSKI</c>
      <c>&#160;</c>
      <c>jose</c>
      <c>ThisRFC<br /></c>
      <c>Dflt*</c>
      <c>JOSE-signed JSON, Default when prm is used<br /> <xref target="I-D.ietf-anima-jws-voucher"/>, <xref target="I-D.ietf-anima-brski-ae"/></c>
      <c>BRSKI-PLEDGE</c>
      <c>mode</c>
      <c>prm</c>
      <c>ThisRFC</c>
      <c>Dflt</c>
      <c>Pledge responder Mode<br /><xref target="I-D.ietf-anima-brski-prm"/></c>
      <c>&#160;</c>
      <c>vformat</c>
      <c>jose</c>
      <c>ThisRFC</c>
      <c>Dflt</c>
      <c>JOSE-signed JSON, Default when prm is used<br /> <xref target="I-D.ietf-anima-jws-voucher"/>, <xref target="I-D.ietf-anima-brski-ae"/></c>
      <c>&#160;</c>
      <c>&#160;</c>
      <c>cms</c>
      <c>ThisRFC</c>
      <c>Rsvd</c>
      <c>CMS-signed JSON Voucher, not specified.</c>
      <c>&#160;</c>
      <c>&#160;</c>
      <c>cose</c>
      <c>ThisRFC</c>
      <c>Rsvd</c>
      <c>CBOR with COSE signature, not specified.</c>
      <c>BRSKI, cBRSKI, BRSKI-PLEDGE</c>
      <c>enroll</c>
      <c>est</c>
      <c><xref target="RFC8995"/><br /><xref target="RFC7030"/></c>
      <c>Dflt</c>
      <c>Enroll via EST           <br /> as specified in <xref target="RFC8995"/>, extension for <xref target="BRSKI-PRM"/> when used in context BRSKI-PLEDGE</c>
      <c>&#160;</c>
      <c>&#160;</c>
      <c>cmp</c>
      <c>ThisRFC</c>
      <c>&#160;</c>
      <c>Lightweight CMP Profile  <br /> {I-D.ietf-anima-brski-ae}}, <xref target="I-D.ietf-lamps-lightweight-cmp-profile"/></c>
      <c>&#160;</c>
      <c>&#160;</c>
      <c>scep</c>
      <c>ThisRFC</c>
      <c>Rsvd</c>
      <c><xref target="RFC8894"/></c>
</texttable>

<dl>
  <dt>Note 1:</dt>
  <dd>
    <t>The Variation String "EST-TLS" is equivalent to the Variation String "" and is required and only permitted for the AN_join_registrar objective value in GRASP for backward compatibility with RFC8995, where it is used for this variation. Note that AN_proxy uses "".</t>
  </dd>
</dl>

<texttable anchor="fig-variations">
      <ttcol align='left'>Context</ttcol>
      <ttcol align='left'>Spec / Applicability</ttcol>
      <ttcol align='left'>Variation String</ttcol>
      <ttcol align='left'>Variation</ttcol>
      <ttcol align='left'>Explanations / Notes</ttcol>
      <c>BRSKI</c>
      <c><xref target="RFC8995"></xref></c>
      <c>"" / "EST-TLS"</c>
      <c>rrm cms  est</c>
      <c>Note 1</c>
      <c>&#160;</c>
      <c><xref target="I-D.ietf-anima-brski-ae"/></c>
      <c>cmp</c>
      <c>rrm cms  cmp</c>
      <c>&#160;</c>
      <c>&#160;</c>
      <c><xref target="I-D.ietf-anima-brski-prm"/></c>
      <c>prm</c>
      <c>prm jose est</c>
      <c>&#160;</c>
      <c>&#160;</c>
      <c>&#160;</c>
      <c>&#160;</c>
      <c>&#160;</c>
      <c>&#160;</c>
      <c>&#160;</c>
      <c>-</c>
      <c>jose</c>
      <c>rrm jose est</c>
      <c>possible variation of <xref target="RFC8995"/> with voucher according to <xref target="I-D.ietf-anima-jws-voucher"/></c>
      <c>&#160;</c>
      <c>-</c>
      <c>jose-cmp</c>
      <c>rrm jose cmp</c>
      <c>possible variation of <xref target="RFC8995"/> with voucher according to <xref target="I-D.ietf-anima-jws-voucher"/> and enrollment according to <xref target="I-D.ietf-lamps-lightweight-cmp-profile"/></c>
      <c>&#160;</c>
      <c>-</c>
      <c>cose</c>
      <c>rrm cose est</c>
      <c>possible variation of <xref target="RFC8995"/> with voucher according to <xref target="I-D.ietf-anima-constrained-voucher"/></c>
      <c>&#160;</c>
      <c>-</c>
      <c>cose-cmp</c>
      <c>rrm cose cmp</c>
      <c>possible variation of <xref target="RFC8995"/> with voucher according to <xref target="I-D.ietf-anima-constrained-voucher"/> and enrollment according to <xref target="I-D.ietf-lamps-lightweight-cmp-profile"/></c>
      <c>&#160;</c>
      <c>-</c>
      <c>prm-cmp</c>
      <c>prm jose cmp</c>
      <c>possible variation of <xref target="I-D.ietf-anima-brski-prm"/> and <xref target="I-D.ietf-anima-brski-ae"/></c>
      <c>&#160;</c>
      <c>-</c>
      <c>prm-cose</c>
      <c>prm cose est</c>
      <c>possible variation of <xref target="I-D.ietf-anima-brski-prm"/> and <xref target="I-D.ietf-anima-constrained-voucher"/></c>
      <c>&#160;</c>
      <c>-</c>
      <c>prm-cose-cmp</c>
      <c>prm cose cmp</c>
      <c>possible variation of <xref target="I-D.ietf-anima-brski-prm"/>, <xref target="I-D.ietf-anima-constrained-voucher"/> and <xref target="I-D.ietf-anima-brski-ae"/></c>
      <c>&#160;</c>
      <c>&#160;</c>
      <c>&#160;</c>
      <c>&#160;</c>
      <c>&#160;</c>
      <c>cBRSKI</c>
      <c><xref target="I-D.ietf-anima-constrained-voucher"/></c>
      <c>""</c>
      <c>rrm cose est</c>
      <c>&#160;</c>
      <c>&#160;</c>
      <c>&#160;</c>
      <c>&#160;</c>
      <c>&#160;</c>
      <c>&#160;</c>
      <c>&#160;</c>
      <c>-</c>
      <c>&#160;</c>
      <c>&#160;</c>
      <c>TBD: all the possible variations as for BRSKI ???</c>
</texttable>

</section>
<section anchor="service-names-registry"><name>Service Names Registry</name>

<t>IANA is asked to modify and amend the "Service Name and Transport Protocol Port Number Registry" registry (https://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.txt) as follows:</t>

<t>brski-proxy and brski-registrar are to be added as Service Names for the "udp" protocol using ThisRFC as the reference.</t>

<t>The registrations for brski-proxy and brski-registrar for the "tcp" protocol are to be updated to also include ThisRFC as their reference.</t>

<t>The Defined TXT keys column for brski-proxy and brski-registrar for both "tcp" and "udp" protocols are to state the following text:</t>

<t>See ThisRFC and the "BRSKI Variation Type Choices" table in the "Bootstrapping Remote Secure Key Infrastructures (BRSKI) Parameters" registry.</t>

<t>TBD: This request likely does not include all the necessary formatting.</t>

</section>
<section anchor="brski-well-known-uris-fixes-opportunistic"><name>BRSKI Well-Known URIs fixes (opportunistic)</name>

<t>The following change requests to "https://www.iana.org/assignments/brski-parameters/brski-parameters.xhtml#brski-well-known-uris" are cosmetic in nature and are included in this document solely because support for Endpoint URIs is implied by the mechanisms specified in this document and the existing registry has these cosmetic issues.</t>

<t><list style="numbers">
  <t>IANA is asked to change the name of the first column of the table from "URI" to "URI Suffix". This is in alignment with other table columns with the same syntax/semantic, such as "https://www.iana.org/assignments/well-known-uris/well-known-uris.xhtml".</t>
  <t>IANA is asked to change the Reference from <xref target="RFC8995"/> to <xref section="8.3.1" sectionFormat="comma" target="RFC8995"/>.</t>
  <t>IANA is asked to include the following "Note" text: The following table contains the assigned BRSKI protocol Endpoint URI suffixes under "/.well-known/brski"." - This note is added to introduce the term "Endpoint" into the registry table as that is the term commonly used (instead of URI) in several of the memos for which this discovery document was written. It is meant to help readers map the registry to the terminology used in those documents.</t>
</list></t>

</section>
</section>
<section anchor="security-considerations"><name>Security Considerations</name>

<t>In <xref target="BRSKI-PRM"/>, pledges are easier subject to DoS attacks than in <xref target="BRSKI"/>, because attackers
can be initiators and delay or prohibit enrollment of a pledge by opening so many connections to
the pledge that a valid registrar-agents connection to the pledge may not be possible. Discovery
of the pledge via DNS-SD increases the ability of attackers to discover pledges against which such
DoS attacks can be attempted.</t>

<t>Especially when supporting DNS-SD browsing across unicast DNS,
Pledges <bcp14>MUST</bcp14> implement DoS prevention measures, such as limiting the number and rate of accepted TCP
connections on a per-initiator basis. If feasible for the implementation, simultaneous connections
<bcp14>SHOULD</bcp14> be possible, so that an ongoing attacker connection will not delay a valid registrar-agent
connection. When accepting connections, a strategy such as LRU <bcp14>MAY</bcp14> be used to ensure that an attacker
will not be able to monopolize connections.</t>

<t>Browsing via DNS-SD, especially via unicast DNS which makes information available network-wide does
also introduce a perpass attack, gathering intelligence against what type and serial number of
devices are installed in the network. Whether or not this is seen as a relevant risk is highly
installation dependent. Networks <bcp14>SHOULD</bcp14> implement filtering measures at mDNS and/or DNS RR/services
level to prohibit such data collection if there is a risk, and this is seen as an undesirable attack
vector.</t>

</section>
<section anchor="acknowledgments"><name>Acknowledgments</name>

<t>TBD.</t>

</section>
<section anchor="draft-considerations"><name>Draft considerations</name>

<section anchor="open-issues"><name>Open Issues</name>

<t>Questions to the DNS-SD community, potential review with</t>

<t>TBD</t>

</section>
<section anchor="change-log"><name>Change log</name>

<t>[RFC Editor: please remove this section.]</t>

<t>Individual version 00:</t>

<t>Initial version.</t>

</section>
</section>


  </middle>

  <back>


    <references title='Normative References'>



<reference anchor="RFC5280">
  <front>
    <title>Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile</title>
    <author fullname="D. Cooper" initials="D." surname="Cooper"/>
    <author fullname="S. Santesson" initials="S." surname="Santesson"/>
    <author fullname="S. Farrell" initials="S." surname="Farrell"/>
    <author fullname="S. Boeyen" initials="S." surname="Boeyen"/>
    <author fullname="R. Housley" initials="R." surname="Housley"/>
    <author fullname="W. Polk" initials="W." surname="Polk"/>
    <date month="May" year="2008"/>
    <abstract>
      <t>This memo profiles the X.509 v3 certificate and X.509 v2 certificate revocation list (CRL) for use in the Internet. An overview of this approach and model is provided as an introduction. The X.509 v3 certificate format is described in detail, with additional information regarding the format and semantics of Internet name forms. Standard certificate extensions are described and two Internet-specific extensions are defined. A set of required certificate extensions is specified. The X.509 v2 CRL format is described in detail along with standard and Internet-specific extensions. An algorithm for X.509 certification path validation is described. An ASN.1 module and examples are provided in the appendices. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="5280"/>
  <seriesInfo name="DOI" value="10.17487/RFC5280"/>
</reference>

<reference anchor="RFC6690">
  <front>
    <title>Constrained RESTful Environments (CoRE) Link Format</title>
    <author fullname="Z. Shelby" initials="Z." surname="Shelby"/>
    <date month="August" year="2012"/>
    <abstract>
      <t>This specification defines Web Linking using a link format for use by constrained web servers to describe hosted resources, their attributes, and other relationships between links. Based on the HTTP Link Header field defined in RFC 5988, the Constrained RESTful Environments (CoRE) Link Format is carried as a payload and is assigned an Internet media type. "RESTful" refers to the Representational State Transfer (REST) architecture. A well-known URI is defined as a default entry point for requesting the links hosted by a server. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="6690"/>
  <seriesInfo name="DOI" value="10.17487/RFC6690"/>
</reference>

<reference anchor="RFC6762">
  <front>
    <title>Multicast DNS</title>
    <author fullname="S. Cheshire" initials="S." surname="Cheshire"/>
    <author fullname="M. Krochmal" initials="M." surname="Krochmal"/>
    <date month="February" year="2013"/>
    <abstract>
      <t>As networked devices become smaller, more portable, and more ubiquitous, the ability to operate with less configured infrastructure is increasingly important. In particular, the ability to look up DNS resource record data types (including, but not limited to, host names) in the absence of a conventional managed DNS server is useful.</t>
      <t>Multicast DNS (mDNS) provides the ability to perform DNS-like operations on the local link in the absence of any conventional Unicast DNS server. In addition, Multicast DNS designates a portion of the DNS namespace to be free for local use, without the need to pay any annual fee, and without the need to set up delegations or otherwise configure a conventional DNS server to answer for those names.</t>
      <t>The primary benefits of Multicast DNS names are that (i) they require little or no administration or configuration to set them up, (ii) they work when no infrastructure is present, and (iii) they work during infrastructure failures.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="6762"/>
  <seriesInfo name="DOI" value="10.17487/RFC6762"/>
</reference>

<reference anchor="RFC6763">
  <front>
    <title>DNS-Based Service Discovery</title>
    <author fullname="S. Cheshire" initials="S." surname="Cheshire"/>
    <author fullname="M. Krochmal" initials="M." surname="Krochmal"/>
    <date month="February" year="2013"/>
    <abstract>
      <t>This document specifies how DNS resource records are named and structured to facilitate service discovery. Given a type of service that a client is looking for, and a domain in which the client is looking for that service, this mechanism allows clients to discover a list of named instances of that desired service, using standard DNS queries. This mechanism is referred to as DNS-based Service Discovery, or DNS-SD.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="6763"/>
  <seriesInfo name="DOI" value="10.17487/RFC6763"/>
</reference>

<reference anchor="RFC8990">
  <front>
    <title>GeneRic Autonomic Signaling Protocol (GRASP)</title>
    <author fullname="C. Bormann" initials="C." surname="Bormann"/>
    <author fullname="B. Carpenter" initials="B." role="editor" surname="Carpenter"/>
    <author fullname="B. Liu" initials="B." role="editor" surname="Liu"/>
    <date month="May" year="2021"/>
    <abstract>
      <t>This document specifies the GeneRic Autonomic Signaling Protocol (GRASP), which enables autonomic nodes and Autonomic Service Agents to dynamically discover peers, to synchronize state with each other, and to negotiate parameter settings with each other. GRASP depends on an external security environment that is described elsewhere. The technical objectives and parameters for specific application scenarios are to be described in separate documents. Appendices briefly discuss requirements for the protocol and existing protocols with comparable features.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8990"/>
  <seriesInfo name="DOI" value="10.17487/RFC8990"/>
</reference>

<reference anchor="RFC8994">
  <front>
    <title>An Autonomic Control Plane (ACP)</title>
    <author fullname="T. Eckert" initials="T." role="editor" surname="Eckert"/>
    <author fullname="M. Behringer" initials="M." role="editor" surname="Behringer"/>
    <author fullname="S. Bjarnason" initials="S." surname="Bjarnason"/>
    <date month="May" year="2021"/>
    <abstract>
      <t>Autonomic functions need a control plane to communicate, which depends on some addressing and routing. This Autonomic Control Plane should ideally be self-managing and be as independent as possible of configuration. This document defines such a plane and calls it the "Autonomic Control Plane", with the primary use as a control plane for autonomic functions. It also serves as a "virtual out-of-band channel" for Operations, Administration, and Management (OAM) communications over a network that provides automatically configured, hop-by-hop authenticated and encrypted communications via automatically configured IPv6 even when the network is not configured or is misconfigured.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8994"/>
  <seriesInfo name="DOI" value="10.17487/RFC8994"/>
</reference>

<reference anchor="RFC8995">
  <front>
    <title>Bootstrapping Remote Secure Key Infrastructure (BRSKI)</title>
    <author fullname="M. Pritikin" initials="M." surname="Pritikin"/>
    <author fullname="M. Richardson" initials="M." surname="Richardson"/>
    <author fullname="T. Eckert" initials="T." surname="Eckert"/>
    <author fullname="M. Behringer" initials="M." surname="Behringer"/>
    <author fullname="K. Watsen" initials="K." surname="Watsen"/>
    <date month="May" year="2021"/>
    <abstract>
      <t>This document specifies automated bootstrapping of an Autonomic Control Plane. To do this, a Secure Key Infrastructure is bootstrapped. This is done using manufacturer-installed X.509 certificates, in combination with a manufacturer's authorizing service, both online and offline. We call this process the Bootstrapping Remote Secure Key Infrastructure (BRSKI) protocol. Bootstrapping a new device can occur when using a routable address and a cloud service, only link-local connectivity, or limited/disconnected networks. Support for deployment models with less stringent security requirements is included. Bootstrapping is complete when the cryptographic identity of the new key infrastructure is successfully deployed to the device. The established secure connection can be used to deploy a locally issued certificate to the device as well.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8995"/>
  <seriesInfo name="DOI" value="10.17487/RFC8995"/>
</reference>


<reference anchor="I-D.ietf-anima-brski-ae">
   <front>
      <title>BRSKI-AE: Alternative Enrollment Protocols in BRSKI</title>
      <author fullname="David von Oheimb" initials="D." surname="von Oheimb">
         <organization>Siemens AG</organization>
      </author>
      <author fullname="Steffen Fries" initials="S." surname="Fries">
         <organization>Siemens AG</organization>
      </author>
      <author fullname="Hendrik Brockhaus" initials="H." surname="Brockhaus">
         <organization>Siemens AG</organization>
      </author>
      <date day="20" month="October" year="2023"/>
      <abstract>
	 <t>   This document defines an enhancement of Bootstrapping Remote Secure
   Key Infrastructure (BRSKI, RFC 8995) that supports alternative
   certificate enrollment protocols, such as CMP.  This offers the
   following advantages.

   Using authenticated self-contained signed objects for certification
   requests and responses, their origin can be authenticated
   independently of message transfer.  This supports end-to-end
   authentication (proof of origin) also over multiple hops, as well as
   asynchronous operation of certificate enrollment.  This in turn
   provides architectural flexibility where to ultimately authenticate
   and authorize certification requests while retaining full-strength
   integrity and authenticity of certification requests.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-ietf-anima-brski-ae-06"/>
   
</reference>


<reference anchor="I-D.ietf-anima-brski-prm">
   <front>
      <title>BRSKI with Pledge in Responder Mode (BRSKI-PRM)</title>
      <author fullname="Steffen Fries" initials="S." surname="Fries">
         <organization>Siemens AG</organization>
      </author>
      <author fullname="Thomas Werner" initials="T." surname="Werner">
         <organization>Siemens AG</organization>
      </author>
      <author fullname="Eliot Lear" initials="E." surname="Lear">
         <organization>Cisco Systems</organization>
      </author>
      <author fullname="Michael Richardson" initials="M." surname="Richardson">
         <organization>Sandelman Software Works</organization>
      </author>
      <date day="23" month="October" year="2023"/>
      <abstract>
	 <t>   This document defines enhancements to Bootstrapping a Remote Secure
   Key Infrastructure (BRSKI, RFC8995) to enable bootstrapping in
   domains featuring no or only limited connectivity between a pledge
   and the domain registrar.  It specifically changes the interaction
   model from a pledge-initiated mode, as used in BRSKI, to a pledge-
   responding mode, where the pledge is in server role.  For this, BRSKI
   with Pledge in Responder Mode (BRSKI-PRM) introduces a new component,
   the registrar-agent, which facilitates the communication between
   pledge and registrar during the bootstrapping phase.  To establish
   the trust relation between pledge and registrar, BRSKI-PRM relies on
   object security rather than transport security.  The approach defined
   here is agnostic to the enrollment protocol that connects the domain
   registrar to the domain CA.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-ietf-anima-brski-prm-10"/>
   
</reference>


<reference anchor="I-D.ietf-anima-constrained-voucher">
   <front>
      <title>Constrained Bootstrapping Remote Secure Key Infrastructure (BRSKI)</title>
      <author fullname="Michael Richardson" initials="M." surname="Richardson">
         <organization>Sandelman Software Works</organization>
      </author>
      <author fullname="Peter Van der Stok" initials="P." surname="Van der Stok">
         <organization>vanderstok consultancy</organization>
      </author>
      <author fullname="Panos Kampanakis" initials="P." surname="Kampanakis">
         <organization>Cisco Systems</organization>
      </author>
      <author fullname="Esko Dijk" initials="E." surname="Dijk">
         <organization>IoTconsultancy.nl</organization>
      </author>
      <date day="7" month="July" year="2023"/>
      <abstract>
	 <t>   This document defines the Constrained Bootstrapping Remote Secure Key
   Infrastructure (Constrained BRSKI) protocol, which provides a
   solution for secure zero-touch bootstrapping of resource-constrained
   (IoT) devices into the network of a domain owner.  This protocol is
   designed for constrained networks, which may have limited data
   throughput or may experience frequent packet loss.  Constrained BRSKI
   is a variant of the BRSKI protocol, which uses an artifact signed by
   the device manufacturer called the &quot;voucher&quot; which enables a new
   device and the owner&#x27;s network to mutually authenticate.  While the
   BRSKI voucher is typically encoded in JSON, Constrained BRSKI uses a
   compact CBOR-encoded voucher.  The BRSKI voucher is extended with new
   data types that allow for smaller voucher sizes.  The Enrollment over
   Secure Transport (EST) protocol, used in BRSKI, is replaced with EST-
   over-CoAPS; and HTTPS used in BRSKI is replaced with CoAPS.  This
   document Updates RFC 8366 and RFC 8995.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-ietf-anima-constrained-voucher-21"/>
   
</reference>


<reference anchor="I-D.ietf-anima-constrained-join-proxy">
   <front>
      <title>Constrained Join Proxy for Bootstrapping Protocols</title>
      <author fullname="Michael Richardson" initials="M." surname="Richardson">
         <organization>Sandelman Software Works</organization>
      </author>
      <author fullname="Peter Van der Stok" initials="P." surname="Van der Stok">
         <organization>vanderstok consultancy</organization>
      </author>
      <author fullname="Panos Kampanakis" initials="P." surname="Kampanakis">
         <organization>Cisco Systems</organization>
      </author>
      <date day="26" month="April" year="2023"/>
      <abstract>
	 <t>   This document extends the work of Bootstrapping Remote Secure Key
   Infrastructures (BRSKI) by replacing the Circuit-proxy between Pledge
   and Registrar by a stateless/stateful constrained Join Proxy.  The
   constrained Join Proxy is a mesh neighbor of the Pledge and can relay
   a DTLS session originating from a Pledge with only link-local
   addresses to a Registrar which is not a mesh neighbor of the Pledge.

   This document defines a protocol to securely assign a Pledge to a
   domain, represented by a Registrar, using an intermediary node
   between Pledge and Registrar.  This intermediary node is known as a
   &quot;constrained Join Proxy&quot;.  An enrolled Pledge can act as a
   constrained Join Proxy.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-ietf-anima-constrained-join-proxy-14"/>
   
</reference>


<reference anchor="I-D.ietf-anima-jws-voucher">
   <front>
      <title>JWS signed Voucher Artifacts for Bootstrapping Protocols</title>
      <author fullname="Thomas Werner" initials="T." surname="Werner">
         <organization>Siemens AG</organization>
      </author>
      <author fullname="Michael Richardson" initials="M." surname="Richardson">
         <organization>Sandelman Software Works</organization>
      </author>
      <date day="29" month="August" year="2023"/>
      <abstract>
	 <t>   [TODO: I-D.draft-ietf-anima-rfc8366bis] defines a digital artifact
   called voucher as a YANG-defined JSON document that is signed using a
   Cryptographic Message Syntax (CMS) structure.  This document
   introduces a variant of the voucher artifact in which CMS is replaced
   by the JSON Object Signing and Encryption (JOSE) mechanism described
   in RFC7515 to support deployments in which JOSE is preferred over
   CMS.

   In addition to explaining how the format is created, the
   &quot;application/voucher-jws+json&quot; media type is registered and examples
   are provided.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-ietf-anima-jws-voucher-09"/>
   
</reference>

<reference anchor="RFC7030">
  <front>
    <title>Enrollment over Secure Transport</title>
    <author fullname="M. Pritikin" initials="M." role="editor" surname="Pritikin"/>
    <author fullname="P. Yee" initials="P." role="editor" surname="Yee"/>
    <author fullname="D. Harkins" initials="D." role="editor" surname="Harkins"/>
    <date month="October" year="2013"/>
    <abstract>
      <t>This document profiles certificate enrollment for clients using Certificate Management over CMS (CMC) messages over a secure transport. This profile, called Enrollment over Secure Transport (EST), describes a simple, yet functional, certificate management protocol targeting Public Key Infrastructure (PKI) clients that need to acquire client certificates and associated Certification Authority (CA) certificates. It also supports client-generated public/private key pairs as well as key pairs generated by the CA.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="7030"/>
  <seriesInfo name="DOI" value="10.17487/RFC7030"/>
</reference>

<reference anchor="RFC8368">
  <front>
    <title>Using an Autonomic Control Plane for Stable Connectivity of Network Operations, Administration, and Maintenance (OAM)</title>
    <author fullname="T. Eckert" initials="T." role="editor" surname="Eckert"/>
    <author fullname="M. Behringer" initials="M." surname="Behringer"/>
    <date month="May" year="2018"/>
    <abstract>
      <t>Operations, Administration, and Maintenance (OAM), as per BCP 161, for data networks is often subject to the problem of circular dependencies when relying on connectivity provided by the network to be managed for the OAM purposes.</t>
      <t>Provisioning while bringing up devices and networks tends to be more difficult to automate than service provisioning later on. Changes in core network functions impacting reachability cannot be automated because of ongoing connectivity requirements for the OAM equipment itself, and widely used OAM protocols are not secure enough to be carried across the network without security concerns.</t>
      <t>This document describes how to integrate OAM processes with an autonomic control plane in order to provide stable and secure connectivity for those OAM processes. This connectivity is not subject to the aforementioned circular dependencies.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8368"/>
  <seriesInfo name="DOI" value="10.17487/RFC8368"/>
</reference>


<reference anchor="I-D.ietf-lamps-lightweight-cmp-profile">
   <front>
      <title>Lightweight Certificate Management Protocol (CMP) Profile</title>
      <author fullname="Hendrik Brockhaus" initials="H." surname="Brockhaus">
         <organization>Siemens</organization>
      </author>
      <author fullname="David von Oheimb" initials="D." surname="von Oheimb">
         <organization>Siemens</organization>
      </author>
      <author fullname="Steffen Fries" initials="S." surname="Fries">
         <organization>Siemens AG</organization>
      </author>
      <date day="17" month="February" year="2023"/>
      <abstract>
	 <t>   This document aims at simple, interoperable, and automated PKI
   management operations covering typical use cases of industrial and
   IoT scenarios.  This is achieved by profiling the Certificate
   Management Protocol (CMP), the related Certificate Request Message
   Format (CRMF), and HTTP-based or CoAP-based transfer in a succinct
   but sufficiently detailed and self-contained way.  To make secure
   certificate management for simple scenarios and constrained devices
   as lightweight as possible, only the most crucial types of operations
   and options are specified as mandatory.  More specialized or complex
   use cases are supported with optional features.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-ietf-lamps-lightweight-cmp-profile-21"/>
   
</reference>


<reference anchor="I-D.ietf-dnssd-srp">
   <front>
      <title>Service Registration Protocol for DNS-Based Service Discovery</title>
      <author fullname="Ted Lemon" initials="T." surname="Lemon">
         <organization>Apple Inc.</organization>
      </author>
      <author fullname="Stuart Cheshire" initials="S." surname="Cheshire">
         <organization>Apple Inc.</organization>
      </author>
      <date day="4" month="August" year="2023"/>
      <abstract>
	 <t>   The Service Registration Protocol for DNS-Based Service Discovery
   uses the standard DNS Update mechanism to enable DNS-Based Service
   Discovery using only unicast packets.  This makes it possible to
   deploy DNS Service Discovery without multicast, which greatly
   improves scalability and improves performance on networks where
   multicast service is not an optimal choice, particularly IEEE 802.11
   (Wi-Fi) and IEEE 802.15.4 networks.  DNS-SD Service registration uses
   public keys and SIG(0) to allow services to defend their
   registrations.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-ietf-dnssd-srp-23"/>
   
</reference>

<reference anchor="RFC2119">
  <front>
    <title>Key words for use in RFCs to Indicate Requirement Levels</title>
    <author fullname="S. Bradner" initials="S." surname="Bradner"/>
    <date month="March" year="1997"/>
    <abstract>
      <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="14"/>
  <seriesInfo name="RFC" value="2119"/>
  <seriesInfo name="DOI" value="10.17487/RFC2119"/>
</reference>

<reference anchor="RFC8174">
  <front>
    <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
    <author fullname="B. Leiba" initials="B." surname="Leiba"/>
    <date month="May" year="2017"/>
    <abstract>
      <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="14"/>
  <seriesInfo name="RFC" value="8174"/>
  <seriesInfo name="DOI" value="10.17487/RFC8174"/>
</reference>




    </references>

    <references title='Informative References'>



<reference anchor="RFC5988">
  <front>
    <title>Web Linking</title>
    <author fullname="M. Nottingham" initials="M." surname="Nottingham"/>
    <date month="October" year="2010"/>
    <abstract>
      <t>This document specifies relation types for Web links, and defines a registry for them. It also defines the use of such links in HTTP headers with the Link header field. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="5988"/>
  <seriesInfo name="DOI" value="10.17487/RFC5988"/>
</reference>

<reference anchor="RFC7252">
  <front>
    <title>The Constrained Application Protocol (CoAP)</title>
    <author fullname="Z. Shelby" initials="Z." surname="Shelby"/>
    <author fullname="K. Hartke" initials="K." surname="Hartke"/>
    <author fullname="C. Bormann" initials="C." surname="Bormann"/>
    <date month="June" year="2014"/>
    <abstract>
      <t>The Constrained Application Protocol (CoAP) is a specialized web transfer protocol for use with constrained nodes and constrained (e.g., low-power, lossy) networks. The nodes often have 8-bit microcontrollers with small amounts of ROM and RAM, while constrained networks such as IPv6 over Low-Power Wireless Personal Area Networks (6LoWPANs) often have high packet error rates and a typical throughput of 10s of kbit/s. The protocol is designed for machine- to-machine (M2M) applications such as smart energy and building automation.</t>
      <t>CoAP provides a request/response interaction model between application endpoints, supports built-in discovery of services and resources, and includes key concepts of the Web such as URIs and Internet media types. CoAP is designed to easily interface with HTTP for integration with the Web while meeting specialized requirements such as multicast support, very low overhead, and simplicity for constrained environments.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="7252"/>
  <seriesInfo name="DOI" value="10.17487/RFC7252"/>
</reference>

<reference anchor="RFC8894">
  <front>
    <title>Simple Certificate Enrolment Protocol</title>
    <author fullname="P. Gutmann" initials="P." surname="Gutmann"/>
    <date month="September" year="2020"/>
    <abstract>
      <t>This document specifies the Simple Certificate Enrolment Protocol (SCEP), a PKI protocol that leverages existing technology by using Cryptographic Message Syntax (CMS, formerly known as PKCS #7) and PKCS #10 over HTTP. SCEP is the evolution of the enrolment protocol sponsored by Cisco Systems, which enjoys wide support in both client and server implementations, as well as being relied upon by numerous other industry standards that work with certificates.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8894"/>
  <seriesInfo name="DOI" value="10.17487/RFC8894"/>
</reference>


<reference anchor="I-D.eckert-anima-grasp-dnssd">
   <front>
      <title>DNS-SD Compatible Service Discovery in GeneRic Autonomic Signaling Protocol (GRASP)</title>
      <author fullname="Toerless Eckert" initials="T. T." surname="Eckert">
         <organization>Futurewei Technologies USA
      Inc.</organization>
      </author>
      <author fullname="Mohamed Boucadair" initials="M." surname="Boucadair">
         <organization>Orange</organization>
      </author>
      <author fullname="Christian Jacquenet" initials="C." surname="Jacquenet">
         <organization>Orange</organization>
      </author>
      <author fullname="Michael H. Behringer" initials="M. H." surname="Behringer">
         </author>
      <date day="10" month="July" year="2023"/>
      <abstract>
	 <t>   DNS Service Discovery (DNS-SD) defines a framework for applications
   to announce and discover services.  This includes service names,
   service instance names, common parameters for selecting a service
   instance (weight or priority) as well as other service-specific
   parameters.  For the specific case of autonomic networks, GeneRic
   Autonomic Signaling Protocol (GRASP) intends to be used for service
   discovery in addition to the setup of basic connectivity.
   Reinventing advanced service discovery for GRASP with a similar set
   of features as DNS-SD would result in duplicated work.  To avoid
   that, this document defines how to use GRASP to announce and discover
   services relying upon DNS-SD features while maintaining the intended
   simplicity of GRASP.  To that aim, the document defines name
   discovery and schemes for reusable elements in GRASP objectives.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-eckert-anima-grasp-dnssd-05"/>
   
</reference>




    </references>


<?line 1040?>

<section anchor="discovery-for-constrained-brski"><name>Discovery for constrained BRSKI</name>

<t>This appendix section is intended to describe the current issues with <xref target="cBRSKI"/> and <xref target="cPROXY"/> as of 08/2023, which
make both drafts incompatible with this document. It will be removed if/when those issues will be fixed.</t>

<section anchor="current-constrained-text-for-grasp"><name>Current constrained text for GRASP</name>

<t>The following is the current encodings from <xref target="cBRSKI"/>.</t>

<t><list style="symbols">
  <t>The transport-proto is IPPROTO_UDP</t>
  <t>the objective is AN_join_registrar, identical to <xref target="BRSKI"/>.</t>
  <t>the objective name is "BRSKI_RJP".</t>
</list></t>

<t>Here is an example M_FLOOD announcing the Registrar on example port 5685, which is a port number chosen by the Registrar.</t>

<figure title="cBRSKI Fig 5: Example of Registrar announcement message" anchor="cbrski-fig5"><artwork align="left"><![CDATA[
[M_FLOOD, 51804231, h'fda379a6f6ee00000200000064000001', 180000,
[["AN_join_registrar", 4, 255, "BRSKI_RJP"],
[O_IPv6_LOCATOR,
h'fda379a6f6ee00000200000064000001', IPPROTO_UDP, 5685]]]
]]></artwork></figure>

<t>Most Registrars will announce both a JPY-stateless and stateful ports, and may also announce an HTTPS/TLS service:</t>

<figure anchor="cbrski-fig6"><artwork align="left"><![CDATA[
[M_FLOOD, 51840231, h'fda379a6f6ee00000200000064000001', 180000,
[["AN_join_registrar", 4, 255, ""],
 [O_IPv6_LOCATOR,
  h'fda379a6f6ee00000200000064000001', IPPROTO_TCP, 8443],
 ["AN_join_registrar", 4, 255, "BRSKI_JP"],
 [O_IPv6_LOCATOR,
  h'fda379a6f6ee00000200000064000001', IPPROTO_UDP, 5684],
 ["AN_join_registrar", 4, 255, "BRSKI_RJP"],
 [O_IPv6_LOCATOR,
  h'fda379a6f6ee00000200000064000001', IPPROTO_UDP, 5685]]]
]]></artwork></figure>

<t>The following is the current text from <xref target="cPROXY"/>.</t>

<t><list style="symbols">
  <t>The transport-proto is IPPROTO_UDP</t>
  <t>the objective is AN_join_registrar, identical to <xref target="BRSKI"/>.</t>
  <t>the objective name is "BRSKI_RJP".</t>
</list></t>

<t>Here is an example M_FLOOD announcing the Registrar on example port 5685, which is a port number chosen by the Registrar.</t>

<figure title="Example of Registrar announcement message" align="left" anchor="cproxy-rjp"><artwork><![CDATA[
   [M_FLOOD, 51804231, h'fda379a6f6ee00000200000064000001', 180000,
   [["AN_join_registrar", 4, 255, "BRSKI_RJP"],
    [O_IPv6_LOCATOR,
     h'fda379a6f6ee00000200000064000001', IPPROTO_UDP, 5685]]]
]]></artwork></figure>

<t>Most Registrars will announce both a JPY-stateless and stateful ports, and may also announce an HTTPS/TLS service:</t>

<figure title="Example of Registrar announcing two services" align="left" anchor="cproxy-rjp-example"><artwork><![CDATA[
   [M_FLOOD, 51840231, h'fda379a6f6ee00000200000064000001', 180000,
   [["AN_join_registrar", 4, 255, ""],
    [O_IPv6_LOCATOR,
     h'fda379a6f6ee00000200000064000001', IPPROTO_TCP, 8443],
    ["AN_join_registrar", 4, 255, "BRSKI_JP"],
    [O_IPv6_LOCATOR,
     h'fda379a6f6ee00000200000064000001', IPPROTO_UDP, 5684],
    ["AN_join_registrar", 4, 255, "BRSKI_RJP"],
    [O_IPv6_LOCATOR,
     h'fda379a6f6ee00000200000064000001', IPPROTO_UDP, 5685]]]
]]></artwork></figure>

<section anchor="issues-and-proposed-change"><name>Issues and proposed change</name>

<t>One goal of this document is to define variations such that proxies can deal with existing
and future variations. This only works for variations for which proxies would need to perform
specific processing other than passing on data between pledge and registrar.</t>

<t>Changes in protocol that require specific new behavior of proxies must therefore not be
variations signaled via the objective-value field of GRASP objectives.</t>

<t>In result, this document recommends the following changes to the encoding for <xref target="cBRSKI"/> and <xref target="cPROXY"/>.</t>

<figure title="Proposed Encoding of registrar announcements" align="left" anchor="new-example"><artwork><![CDATA[
[M_FLOOD, 51840231, h'fda379a6f6ee00000200000064000001', 180000,
[["AN_join_registrar", 4, 255, ""],
 [O_IPv6_LOCATOR,
  h'fda379a6f6ee00000200000064000001', IPPROTO_TCP, 8443],
 ["AN_join_registrar", 4, 255, ""],
 [O_IPv6_LOCATOR,
  h'fda379a6f6ee00000200000064000001', IPPROTO_UDP, 5684],
 ["AN_join_registrar_rjp", 4, 255, ""],
 [O_IPv6_LOCATOR,
  h'fda379a6f6ee00000200000064000001', IPPROTO_UDP, 5685]]]
]]></artwork></figure>

<t>In summary:</t>

<t><list style="symbols">
  <t>Circuit proxy operation is indicted with objective-name "AN_join_registrar" and IPPROTO_UDP.
The default for AN_join_registrar/UDP is the use of COAPs and CBOR encoded voucher. For this
default, the objective-value is "".</t>
  <t>Stateless JPY proxy operations is indicated with objective-name "AN_join_registrar_rjp" and IPPROTO_UDP.
The default for AN_join_registrar/UDP is the use of COAPs and CBOR encoded voucher. For this
default, the objective-value is "".</t>
</list></t>

</section>
</section>
</section>

    <section anchor="contributors" numbered="false" toc="include" removeInRFC="false">
        <name>Contributors</name>
    <contact initials="T." surname="Werner" fullname="Thomas Werner">
      <organization>Siemens AG</organization>
      <address>
        <postal>
          <country>Germany</country>
        </postal>
        <email>thomas-werner@siemens.com</email>
        <uri>https://www.siemens.com/</uri>
      </address>
    </contact>
    <contact initials="S." surname="Fries" fullname="Steffen Fries">
      <organization>Siemens AG</organization>
      <address>
        <postal>
          <country>Germany</country>
        </postal>
        <email>steffen.fries@siemens.com</email>
        <uri>https://www.siemens.com/</uri>
      </address>
    </contact>
    <contact initials="H." surname="Brockhaus" fullname="Hendrik Brockhaus">
      <organization>Siemens AG</organization>
      <address>
        <postal>
          <country>Germany</country>
        </postal>
        <email>hendrik.brockhaus@siemens.com</email>
        <uri>https://www.siemens.com/</uri>
      </address>
    </contact>
    <contact initials="M." surname="Richardson" fullname="Michael Richardson">
      <organization></organization>
      <address>
        <postal>
          <country>Canada</country>
        </postal>
        <phone>+41 44 878 9200</phone>
        <email>mcr+ietf@sandelman.org</email>
      </address>
    </contact>
    </section>

  </back>

<!-- ##markdown-source:
H4sIAAAAAAAAA919a3PbRpbod/wKLFN1I2VJ+u3Y2pnJKJIyUca2tJKczFSS
SkFkU0JMAlwAlKyRdX/L/S33l93z7D4NgLLkSeZurbc2I5JAP06fPu/HaDRK
JuU0L8620lUzG71IkiZv5m4r/Xw3ryflhauu0llZpV8fHf91P73Iqjxr8rKo
P0+y09PKXWzxL6OpPp1My0mRLWCEaZXNmpGbvHNVM8qKfJGNTqv6XR6eHT18
lNRNVkx/yeZlAa801col+bKiv+rm8cOHLx8+TurV6SKva5j25GoJT+3vnXyT
ZJXLttKDpat4QSkMk77OiuzMLVzRJJewo+03+6+3k3eX8ErRuKpwzWgXF5VM
smYrrZsp7L2oXVGvapl7mjUwweOHj58ky3wrSdOmnAAsrhxsOE0n5WKZTZrw
RX21qNysNl+UVRN/A7spyiaf5W4KXxYlPdVUeRgmWzXnZbWVjNK8gBdPxuke
wQweZECelK6au7oO31clHpGb5k1Zwceygs1+s2pWlbt0efr2eBu+1PPx39MG
VkVTXW3JI26R5XPYeeP+PKnHs2w1njpdxu44vSiL/1Wc1sv/ODh3+eLUr2c3
u8inPb/SMo5zhH+dbv/FrEG+5K07B1s/aJpy9G12XoyOAPnS57i4vIGVvV4V
+eSc1jpFNHzx6MsnLz+3a/+LqxZZcRXWP8X1jGE945KW8ueapxvDecFTqyrf
Ss+bZllvPXhweXk5Nj8/0O3ujdPd/Nd3fo979btSv6F97ZcniCyrOeDr5Gpc
zMP8Dp4dT+HZP+dl03oIMQxO+3TV8BHLiZ6Xi6xOf0CcrPr31gWmnha9O7qk
d++5VZ79uHGzmSvSb6rc1fecveZ3xzN895Nm/9YV0yp/l35dlZN359nqvis4
5/fHp/r+J63iNSBZ5ubpEf5vNa3Lwi5jB+jININvludElwb//vRR+vRp+uLL
F+lLoEqDsJzFpPr33DWzP9dAgNwcVj+GpSdJUcJOmvzCIRU5+mbn2eMXD+XP
589f+j+/fP44/PlE/nzx0j8Afz4Nfz7DP/dHu2OcMaKpmVv707Ja9PyGeNpU
WV646eiiXE3OXfWRp34t8wIGK99f9Tz462Vth4Hlfvnwid/Ek+cvonfm2WJZ
j+b52XkDhAn+O5osljj2LJ/HG5kWdT0d1dVyK0nyYtYG6ssXL3S6x88Uki9e
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
SVPPgvUAAA==

-->

</rfc>

