<?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.7.2 (Ruby 2.7.4) -->


<!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-ietf-anima-brski-prm-11" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title abbrev="BRSKI-PRM">BRSKI with Pledge in Responder Mode (BRSKI-PRM)</title>

    <author initials="S." surname="Fries" fullname="Steffen Fries">
      <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>steffen.fries@siemens.com</email>
        <uri>https://www.siemens.com/</uri>
      </address>
    </author>
    <author initials="T." surname="Werner" fullname="Thomas Werner">
      <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>thomas-werner@siemens.com</email>
        <uri>https://www.siemens.com/</uri>
      </address>
    </author>
    <author initials="E." surname="Lear" fullname="Eliot Lear">
      <organization>Cisco Systems</organization>
      <address>
        <postal>
          <street>Richtistrasse 7</street>
          <city>Wallisellen</city>
          <code>CH-8304</code>
          <country>Switzerland</country>
        </postal>
        <phone>+41 44 878 9200</phone>
        <email>lear@cisco.com</email>
      </address>
    </author>
    <author initials="M." surname="Richardson" fullname="Michael C. Richardson">
      <organization>Sandelman Software Works</organization>
      <address>
        <email>mcr+ietf@sandelman.ca</email>
        <uri>http://www.sandelman.ca/</uri>
      </address>
    </author>

    <date year="2023"/>

    <area>Operations and Management</area>
    <workgroup>ANIMA WG</workgroup>
    

    <abstract>


<?line 130?>

<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>

    <note title="About This Document" removeInRFC="true">
      <t>
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ietf-anima-brski-prm/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/anima-wg/anima-brski-prm"/>.</t>
    </note>


  </front>

  <middle>


<?line 138?>

<section anchor="introduction"><name>Introduction</name>

<t>BRSKI as defined in <xref target="RFC8995"/> specifies a solution for secure zero-touch (automated) bootstrapping of devices (pledges) in a (customer site) domain.
This includes the discovery of the BRSKI registrar in the customer domain and the exchange of security information necessary to establish trust between a pledge and the domain.</t>

<t>Security information about the customer domain, specifically the customer domain certificate, are exchanged and authenticated utilizing voucher-request and voucher-response artifacts as defined in <xref target="RFC8995"/>.
Vouchers are signed objects from the Manufacturer's Authorized Signing Authority (MASA).
The MASA issues the voucher and provides it via the domain registrar to the pledge.
<xref target="RFC8366"/> specifies the format of the voucher artifacts.
<xref target="I-D.ietf-anima-rfc8366bis"/> further enhances the format of the voucher artifacts and also the voucher-request.</t>

<t>For the certificate enrollment of devices, BRSKI relies on EST <xref target="RFC7030"/> to request and distribute customer domain specific device certificates.
EST in turn relies for the authentication and authorization of the certification request on the credentials used by the underlying TLS between the EST client and the EST server.</t>

<t>BRSKI addresses scenarios in which the pledge initiates the bootstrapping acting as client (referred to as initiator mode by this document).
BRSKI with pledge in responder mode (BRSKI-PRM) defined in this document allows the pledge to act as server, so that it can be triggered to generate bootstrapping requests in the customer domain.
For this approach, this document:</t>

<t><list style="symbols">
  <t>introduces the Registrar-Agent as new component to facilitate the communication between the pledge and the domain registrar.
The Registrar-Agent may be implemented as an integrated functionality of a commissioning tool or be co-located with the registrar itself.
BRSKI-PRM supports the identification of the Registrar-Agent that was performing the bootstrapping allowing for accountability of the pledges installation, when the Registrar-Agent is a component used by an installer and not co-located with the registrar.</t>
  <t>specifies the interaction (data exchange and data objects) between a pledge acting as server, the Registrar-Agent acting as client, and the domain registrar.</t>
  <t>enables the usage of arbitrary transports between the pledge and the domain registrar via the Registrar-Agent; security is addressed at the application layer, and both IP-based and non-IP connectivity can be used between pledge and Registrar-Agent.</t>
  <t>allows the application of Registrar-Agent credentials to establish TLS connections to the domain registrar; these are different from the IDevID of the pledge.</t>
</list></t>

<t>The term endpoint used in the context of this document is equivalent to resource in HTTP <xref target="RFC9110"/> and CoAP <xref target="RFC7252"/>; it is not used to describe a device.
Endpoints are accessible via Well-Known URIs <xref target="RFC8615"/>.
For the interaction with the domain registrar, the Registrar-Agent will use existing BRSKI <xref target="RFC8995"/> endpoints as well as additional endpoints defined in this document.
To utilize the EST server endpoints on the domain registrar, the Registrar-Agent will act as client toward the registrar.</t>

<t>The Registrar-Agent also acts as a client when communicating with a pledge in responder mode.
Here, TLS with server-side, certificate-based authentication is only optionally supported.
If TLS is optionally used between the Registrar-Agent and the pledge, the Registrar-Agent needs to identify the pledge based on its product-serial-number rather than the hostname as this is not set in an IDevID certificate.</t>

<t>BRSKI-PRM is designed to rely on object security to support also for alternative transports for which TLS may not be available, e.g., Bluetooth or NFC.
This is achieved through an additional signature wrapping of the exchanged data objects involving the Registrar-Agent for transport.</t>

<t>To utilize EST <xref target="RFC7030"/> for enrollment, the domain registrar must perform the pre-processing of this wrapping signature before actually using EST as defined in <xref target="RFC7030"/>.</t>

<t>There may be pledges which can support both modes, initiator and responder mode.
In these cases BRSKI-PRM can be combined with BRSKI as defined in <xref target="RFC8995"/> or BRSKI-AE <xref target="I-D.ietf-anima-brski-ae"/> to allow for more bootstrapping flexibility.</t>

</section>
<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="RFC8995"/>, section 1.2.
The following terms are defined additionally:</t>

<dl>
  <dt>authenticated self-contained object:</dt>
  <dd>
    <t>Describes an object, which is cryptographically bound to the end entity (EE) certificate (IDevID certificate or LDEVID certificate).
The binding is assumed to be provided through a digital signature of the actual object using the corresponding private key of the certificate.</t>
  </dd>
  <dt>CA:</dt>
  <dd>
    <t>Certification Authority, issues certificates.</t>
  </dd>
  <dt>Commissioning tool:</dt>
  <dd>
    <t>Tool to interact with devices to provide configuration data.</t>
  </dd>
  <dt>CSR:</dt>
  <dd>
    <t>Certificate Signing Request.</t>
  </dd>
  <dt>EE:</dt>
  <dd>
    <t>End Entity.</t>
  </dd>
  <dt>endpoint:</dt>
  <dd>
    <t>term equivalent to resource in HTTP <xref target="RFC9110"/> and CoAP <xref target="RFC7252"/>.
Endpoints are accessible via .well-known URIs.</t>
  </dd>
  <dt>mTLS:</dt>
  <dd>
    <t>mutual Transport Layer Security.</t>
  </dd>
  <dt>on-site:</dt>
  <dd>
    <t>Describes a component or service or functionality available in the customer domain.</t>
  </dd>
  <dt>off-site:</dt>
  <dd>
    <t>Describes a component or service or functionality not available on-site.
It may be at a central site or an internet resident "cloud" service.
The on-site to off-site connection may also be temporary and, e.g., only available at times when workers are present on a construction side, for instance.</t>
  </dd>
  <dt>PER:</dt>
  <dd>
    <t>Pledge Enrollment-Request is a signature wrapped CSR, signed by the pledge that requests enrollment to a domain.</t>
  </dd>
  <dt>POP:</dt>
  <dd>
    <t>Proof-of-Possession (of a private key), as defined in <xref target="RFC5272"/>.</t>
  </dd>
  <dt>POI:</dt>
  <dd>
    <t>Proof-of-Identity, as defined in <xref target="RFC5272"/>.</t>
  </dd>
  <dt>PVR:</dt>
  <dd>
    <t>Pledge Voucher-Request is a request for a voucher sent to the domain registrar.
The PVR is signed by the Pledge.</t>
  </dd>
  <dt>RA:</dt>
  <dd>
    <t>Registration Authority, an optional system component to which a CA delegates certificate management functions such as authorization checks.
In BRSKI-PRM this is a functionality of the domain registrar, as in BRSKI <xref target="RFC8995"/>.</t>
  </dd>
  <dt>RER:</dt>
  <dd>
    <t>Registrar Enrollment-Request is the CSR of a PER sent to the CA by the domain registrar (RA).</t>
  </dd>
  <dt>RVR:</dt>
  <dd>
    <t>Registrar Voucher-Request is a request for a voucher signed by the domain registrar to the MASA.
It may contain the PVR received from the pledge.</t>
  </dd>
</dl>

<t>This document includes many examples that would contain many long sequences of base64 encoded objects with no content directly comprehensible to a human reader.
In order to keep those examples short, they use the token "base64encodedvalue==" as a placeholder for base64 data.
The full base64 data is included in the appendices of this document.</t>

<t>This protocol unavoidably has a mix of both base64 encoded data (as is normal for many JSON encoded protocols), and also BASE64URL encoded data, as specified by JWS.
The latter is indicated by a string like "BASE64URL(content-name)".</t>

</section>
<section anchor="scope-of-solution"><name>Scope of Solution</name>

<section anchor="sup-env"><name>Supported Environments and Use Case Examples</name>

<t>BRSKI-PRM is applicable to scenarios where pledges may have no direct connection to the domain registrar, may have no continuous connection, or require coordination of the pledge requests to be provided to a domain registrar.</t>

<t>This can be motivated by pledges deployed in environments not yet connected to the operational customer domain network, e.g., at a building construction site, or environments intentionally disconnected from the Internet, e.g., critical industrial facilities.
Another example is the assembly of electrical cabinets, which are prepared in advance before the installation at a customer domain.</t>

<section anchor="building-automation"><name>Building Automation</name>

<t>In building automation a typical use case exists where a detached building or the basement is equipped with sensors, actuators, and controllers, but with only limited or no connection to the central building management system.
This limited connectivity may exist during installation time or also during operation time.</t>

<t>During the installation, for instance, a service technician collects the device-specific information from the basement network and provides them to the central building management system.
This could be done using a laptop, common mobile device, or dedicated commissioning tool to transport the information.
The service technician may successively collect device-specific information in different parts of the building before connecting to the domain registrar for bulk bootstrapping.</t>

<t>A domain registrar may be part of the central building management system and already be operational in the installation network.
The central building management system can then provide operational parameters for the specific devices in the basement or other detached areas.
These operational parameters may comprise values and settings required in the operational phase of the sensors/actuators, among them a certificate issued by the operator to authenticate against other components and services.
These operational parameters are then provided to the devices in the basement facilitated by the service technician's laptop.
The Registrar-Agent, defined in this document, may be run on the technician's laptop to interact with pledges.</t>

</section>
<section anchor="infrastructure-isolation-policy"><name>Infrastructure Isolation Policy</name>

<t>This refers to any case in which the network infrastructure is normally isolated from the Internet as a matter of policy, most likely for security reasons.
In such a case, limited access to a domain registrar may be allowed in carefully controlled short periods of time, for example when a batch of new devices are deployed, but prohibited at other times.</t>

</section>
<section anchor="less-operational-security-in-the-target-domain"><name>Less Operational Security in the Target-Domain</name>

<t>The registration authority (RA) performing the authorization of a certificate request is a critical PKI component and therefore requires higher operational security than other components utilizing the issued certificates.
CAs may also require higher security in the registration procedures.
There may be situations in which the customer domain does not offer enough physical security to operate a RA/CA and therefore this service is transferred to a backend that offers a higher level of operational security.</t>

</section>
</section>
<section anchor="limitations"><name>Limitations</name>

<t>The mechanism described in this document presumes the ability of the pledge and the Registrar-Agent to communicate with another.
This may not be possible in constrained environments where, in particular, power must be conserved.
In these situations, it is anticipated that the transceiver will be powered down most of the time.
This presents a rendezvous problem: the pledge is unavailable for certain periods of time, and the Registrar-Agent is similarly presumed to be unavailable for certain periods of time.
To overcome this situation, the pledges may need to be powered on, either manually or by sending a trigger signal.</t>

</section>
</section>
<section anchor="req-sol"><name>Requirements Discussion and Mapping to Solution-Elements</name>

<t>Based on the intended target environment described in <xref target="sup-env"/>, the following requirements are derived to support bootstrapping of pledges in responder mode (acting as server):</t>

<t><list style="symbols">
  <t>To facilitate the communication between a pledge in responder mode and the registrar, additional functionality is needed either on the registrar or as a stand-alone component.
This new functionality is defined as Registrar-Agent and acts as an agent of the registrar to trigger the pledge to generate requests for voucher and enrollment.
These requests are then provided by the Registrar-Agent to the registrar.
This requires the definition of pledge endpoints to allow interaction with the Registrar-Agent.</t>
  <t>The security of communication between the Registrar-Agent and the pledge must not rely on Transport Layer Security (TLS) to enable application of BRSKI-PRM in environments, in which the communication between the Registrar-Agent and the pledge is done over other technologies like BTLE or NFC, which may not support TLS protected communication.
In addition, the pledge does not have a certificate that can easily be verified by <xref target="RFC6125"/> methods.</t>
  <t>The use of authenticated self-contained objects addresses both, the TLS challenges and the technology stack challenge.</t>
  <t>By contrast, the Registrar-Agent can be authenticated by the registrar as a component, acting on behalf of the registrar.
In addition the registrar must be able to verify, which Registrar-Agent was in direct contact with the pledge.</t>
  <t>It would be inaccurate for the voucher-request and voucher-response to use an assertion with value "proximity" in the voucher, as the pledge was not in direct contact with the registrar for bootstrapping.
Therefore, a new "agent-proximity" assertion value is necessary for distinguishing assertions the MASA can state.</t>
</list></t>

<t>At least the following properties are required for the voucher and enrollment processing:</t>

<t><list style="symbols">
  <t>POI: provides data-origin authentication of a data object, e.g., a voucher-request or an enrollment-request, utilizing an existing IDevID.
Certificate updates may utilize the certificate that is to be updated.</t>
  <t>POP: proves that an entity possesses and controls the private key corresponding to the public key contained in the certification request, typically by adding a signature computed using the private key to the certification request.</t>
</list></t>

<t>Solution examples based on existing technology are provided with the focus on existing IETF RFCs:</t>

<t><list style="symbols">
  <t>Voucher-requests and -responses as used in <xref target="RFC8995"/> already provide both, POP and POI, through a digital signature to protect the integrity of the voucher, while the corresponding signing certificate contains the identity of the signer.</t>
  <t>Certification requests are data structures containing the information from a requester for a CA to create a certificate.
The certification request format in BRSKI is PKCS#10 <xref target="RFC2986"/>.
In PKCS#10, the structure is signed to ensure integrity protection and POP of the private key of the requester that corresponds to the contained public key.
In the application examples, this POP alone is not sufficient.
A POI is also required for the certification request and therefore the certification request needs to be additionally bound to the existing credential of the pledge (IDevID).
This binding supports the authorization decision for the certification request and may be provided directly with the certification request.
While BRSKI uses the binding to TLS, BRSKI-PRM aims at an additional signature of the PKCS#10 using existing credentials on the pledge (IDevID). This allows the process to be independent of the selected transport.</t>
</list></t>

</section>
<section anchor="architecture"><name>Architecture</name>

<section anchor="overview"><name>Overview</name>

<t>For BRSKI with pledge in responder mode, the base system architecture defined in BRSKI <xref target="RFC8995"/> is enhanced to facilitate new use cases in which the pledge acts as server.
The responder mode allows delegated bootstrapping using a Registrar-Agent instead of a direct connection between the pledge and the domain registrar.</t>

<t>Necessary enhancements to support authenticated self-contained objects for certificate enrollment are kept at a minimum to enable reuse of already defined architecture elements and interactions.
The format of the bootstrapping objects produced or consumed by the pledge is based on JOSE <xref target="RFC7515"/> and further specified in <xref target="exchanges_uc2"/> to address the requirements stated in <xref target="req-sol"/> above.
In constrained environments it may be provided based on COSE <xref target="RFC9052"/> and <xref target="RFC9053"/>.</t>

<t>An abstract overview of the BRSKI-PRM protocol can be found on slide 8 of <xref target="BRSKI-PRM-abstract"/>.</t>

<t>To support mutual trust establishment between the domain registrar and pledges not directly connected to the customer domain, this document specifies the exchange of authenticated self-contained objects with the help of a Registrar-Agent.</t>

<t>This leads to extensions of the logical components in the BRSKI architecture as shown in <xref target="uc2figure"/>.</t>

<t>Note that the Join Proxy is not shown in the figure, having been replaced by Registrar-Agent.
In certain situations the Join Proxy may still be present and could be used by the Registrar-Agent to connect to the Registrar.
For example, a Registrar-Agent application on a smartphone often can connect to local wifi without giving up their LTE connection <xref target="androidnsd"/>, but only can make link-local connections.</t>

<t>The Registrar-Agent interacts with the pledge to transfer the required data objects for bootstrapping, which are then also exchanged between the Registrar-Agent and the domain registrar.
The addition of the Registrar-Agent influences the sequences of the data exchange between the pledge and the domain registrar described in <xref target="RFC8995"/>.
To enable reuse of BRSKI defined functionality as much as possible, BRSKI-PRM:</t>

<t><list style="symbols">
  <t>uses existing endpoints where the required functionality is provided.</t>
  <t>enhances existing endpoints with new supported media types, e.g., for JWS voucher.</t>
  <t>defines new endpoints where additional functionality is required, e.g., for wrapped certification request, CA certificates, or new status information.</t>
</list></t>

<figure title="BRSKI-PRM architecture overview using Registrar-Agent" anchor="uc2figure"><artset><artwork  type="svg" align="left"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="464" width="456" viewBox="0 0 456 464" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
<path d="M 8,240 L 8,384" fill="none" stroke="black"/>
<path d="M 80,240 L 80,384" fill="none" stroke="black"/>
<path d="M 152,240 L 152,336" fill="none" stroke="black"/>
<path d="M 208,32 L 208,144" fill="none" stroke="black"/>
<path d="M 224,368 L 224,416" fill="none" stroke="black"/>
<path d="M 256,240 L 256,336" fill="none" stroke="black"/>
<path d="M 328,240 L 328,336" fill="none" stroke="black"/>
<path d="M 336,64 L 336,144" fill="none" stroke="black"/>
<path d="M 376,152 L 376,232" fill="none" stroke="black"/>
<path d="M 376,336 L 376,368" fill="none" stroke="black"/>
<path d="M 424,240 L 424,336" fill="none" stroke="black"/>
<path d="M 424,368 L 424,416" fill="none" stroke="black"/>
<path d="M 432,32 L 432,144" fill="none" stroke="black"/>
<path d="M 208,32 L 432,32" fill="none" stroke="black"/>
<path d="M 208,64 L 432,64" fill="none" stroke="black"/>
<path d="M 208,144 L 432,144" fill="none" stroke="black"/>
<path d="M 8,240 L 80,240" fill="none" stroke="black"/>
<path d="M 152,240 L 256,240" fill="none" stroke="black"/>
<path d="M 328,240 L 424,240" fill="none" stroke="black"/>
<path d="M 88,304 L 144,304" fill="none" stroke="black"/>
<path d="M 264,304 L 320,304" fill="none" stroke="black"/>
<path d="M 152,336 L 256,336" fill="none" stroke="black"/>
<path d="M 328,336 L 424,336" fill="none" stroke="black"/>
<path d="M 224,368 L 424,368" fill="none" stroke="black"/>
<path d="M 8,384 L 80,384" fill="none" stroke="black"/>
<path d="M 224,416 L 424,416" fill="none" stroke="black"/>
<polygon class="arrowhead" points="384,232 372,226.4 372,237.6" fill="black" transform="rotate(90,376,232)"/>
<polygon class="arrowhead" points="384,152 372,146.4 372,157.6" fill="black" transform="rotate(270,376,152)"/>
<polygon class="arrowhead" points="328,304 316,298.4 316,309.6" fill="black" transform="rotate(0,320,304)"/>
<polygon class="arrowhead" points="272,304 260,298.4 260,309.6" fill="black" transform="rotate(180,264,304)"/>
<polygon class="arrowhead" points="152,304 140,298.4 140,309.6" fill="black" transform="rotate(0,144,304)"/>
<polygon class="arrowhead" points="96,304 84,298.4 84,309.6" fill="black" transform="rotate(180,88,304)"/>
<g class="text">
<text x="56" y="52">.....</text>
<text x="100" y="52">Drop</text>
<text x="140" y="52">Ship</text>
<text x="184" y="52">.....</text>
<text x="244" y="52">Vendor</text>
<text x="304" y="52">Service</text>
<text x="40" y="68">:</text>
<text x="40" y="84">:</text>
<text x="224" y="84">M</text>
<text x="280" y="84">anufacturer</text>
<text x="40" y="100">:</text>
<text x="224" y="100">A</text>
<text x="272" y="100">uthorized</text>
<text x="384" y="100">Ownership</text>
<text x="40" y="116">:</text>
<text x="224" y="116">S</text>
<text x="260" y="116">igning</text>
<text x="376" y="116">Tracker</text>
<text x="40" y="132">:</text>
<text x="224" y="132">A</text>
<text x="268" y="132">uthority</text>
<text x="40" y="148">:</text>
<text x="40" y="164">:</text>
<text x="40" y="180">:</text>
<text x="412" y="180">BRSKI-</text>
<text x="40" y="196">:</text>
<text x="404" y="196">MASA</text>
<text x="40" y="212">:</text>
<text x="248" y="212">...............................</text>
<text x="416" y="212">.........</text>
<text x="40" y="228">V</text>
<text x="128" y="228">.</text>
<text x="448" y="228">.</text>
<text x="128" y="244">.</text>
<text x="448" y="244">.</text>
<text x="128" y="260">.</text>
<text x="448" y="260">.</text>
<text x="44" y="276">Pledge</text>
<text x="116" y="276">BRSKI-</text>
<text x="204" y="276">Registrar-</text>
<text x="292" y="276">BRSKI-</text>
<text x="364" y="276">Domain</text>
<text x="448" y="276">.</text>
<text x="112" y="292">PRM</text>
<text x="184" y="292">Agent</text>
<text x="288" y="292">PRM</text>
<text x="376" y="292">Registrar</text>
<text x="448" y="292">.</text>
<text x="356" y="308">(PKI</text>
<text x="392" y="308">RA)</text>
<text x="448" y="308">.</text>
<text x="128" y="324">.</text>
<text x="220" y="324">LDevID</text>
<text x="448" y="324">.</text>
<text x="128" y="340">.</text>
<text x="448" y="340">.</text>
<text x="44" y="356">IDevID</text>
<text x="128" y="356">.</text>
<text x="448" y="356">.</text>
<text x="128" y="372">.</text>
<text x="448" y="372">.</text>
<text x="128" y="388">.</text>
<text x="248" y="388">Key</text>
<text x="324" y="388">Infrastructure</text>
<text x="448" y="388">.</text>
<text x="128" y="404">.</text>
<text x="260" y="404">(e.g.,</text>
<text x="304" y="404">PKI</text>
<text x="336" y="404">CA)</text>
<text x="448" y="404">.</text>
<text x="128" y="420">.</text>
<text x="448" y="420">.</text>
<text x="288" y="436">.........................................</text>
<text x="236" y="452">&quot;Domain&quot;</text>
<text x="316" y="452">Components</text>
</g>
</svg>
</artwork><artwork  type="ascii-art" align="left"><![CDATA[
                         +---------------------------+
    ..... Drop Ship .....| Vendor Service            |
    :                    +---------------+-----------+
    :                    | M anufacturer |           |
    :                    | A uthorized   | Ownership |
    :                    | S igning      | Tracker   |
    :                    | A uthority    |           |
    :                    +---------------+-----------+
    :                                         ^
    :                                         | BRSKI-
    :                                         | MASA
    :          ...............................|.........
    V          .                              v        .
+--------+     .  +------------+        +-----------+  .
|        |     .  |            |        |           |  .
| Pledge | BRSKI- | Registrar- | BRSKI- | Domain    |  .
|        |  PRM   | Agent      |  PRM   | Registrar |  .
|        |<------>|            |<------>| (PKI RA)  |  .
|        |     .  |     LDevID |        |           |  .
|        |     .  +------------+        +-----+-----+  .
| IDevID |     .                              |        .
|        |     .           +------------------+-----+  .
+--------+     .           | Key Infrastructure     |  .
               .           | (e.g., PKI CA)         |  .
               .           +------------------------+  .
               .........................................
                         "Domain" Components
]]></artwork></artset></figure>

<t><xref target="uc2figure"/> shows the relations between the following main components:</t>

<t><list style="symbols">
  <t>Pledge: The pledge is expected to respond with the necessary data objects for bootstrapping to the Registrar-Agent.
The protocol used between the pledge and the Registrar-Agent is assumed to be HTTP in the context of this document.
Any other protocols (including HTTPS) can be used as long as they support the exchange of the necessary data objects.
This includes CoAP or protocol to be used over Bluetooth or NFC connections
A pledge acting as a server during bootstrapping leads to some differences for BRSKI:  <list style="symbols">
      <t>Discovery of the pledge by the Registrar-Agent <bcp14>MUST</bcp14> be possible.</t>
      <t>As the Registrar-Agent <bcp14>MUST</bcp14> be able to request data objects for bootstrapping of the pledge, the pledge <bcp14>MUST</bcp14> offer corresponding endpoints as defined in <xref target="pledge_ep"/>.</t>
      <t>The Registrar-Agent <bcp14>MUST</bcp14> provide additional data to the pledge in the context of the voucher-request trigger, which the pledge <bcp14>MUST</bcp14> include into the PVR as defined in <xref target="pvrt"/> and <xref target="pvrr"/>.
This allows the registrar to identify, with which Registrar-Agent the pledge was in contact.</t>
      <t>The order of exchanges in the BRSKI-PRM call flow is different those in BRSKI <xref target="RFC8995"/>, as the PVR and PER are collected at once and provided to the registrar.
This enables bulk bootstrapping of several devices.</t>
      <t>The data objects utilized for the data exchange between the pledge and the registrar are self-contained authenticated objects (signature-wrapped objects).</t>
    </list></t>
  <t>Registrar-Agent: provides a store and forward communication path to exchange data objects between the pledge and the domain registrar.
The Registrar-Agent brokers in situations in which the domain registrar is not directly reachable by the pledge.
This may be due to a different technology stack or due to missing connectivity.
The Registrar-Agent triggers a pledge to create bootstrapping artifacts such as the voucher-request and the enrollment-request on one or multiple pledges.
It can then perform a (bulk) bootstrapping based on the collected data.
The Registrar-Agent is expected to possess information about the domain registrar: the registrar EE certificate, LDevID(CA) certificate, IP address, either by configuration or by using the discovery mechanism defined in <xref target="RFC8995"/>.
There is no trust assumption between the pledge and the Registrar-Agent as only authenticated self-contained objects are used, which are transported via the Registrar-Agent and provided either by the pledge or the registrar.
The trust assumption between the Registrar-Agent and the registrar is based on the LDevID of the Registrar-Agent, provided by the PKI responsible for the domain.
This allows the Registrar-Agent to authenticate towards the registrar, e.g., in a TLS handshake.
Based on this, the registrar is able to distinguish a pledge from a Registrar-Agent during the TLS session establishment and also to verify that this Registrar-Agent is authorized to perform the bootstrapping of the distinct pledge.
The Registrar-Agent may be realized as stand-alone component supporting nomadic activities of a service technician moving between different installation sites.
Contrary, the Registrar-Agent may also be realized as co-located functionality for a registrar, to support pledges in pledge-responder-mode.</t>
  <t>Join Proxy (not shown): same functionality as described in <xref target="RFC8995"/> if needed.
Note that a Registrar-Agent may use a join proxy to facilitate the TLS connection to the registrar, in the same way that a BRSKI pledge would use a join proxy. This is useful in cases where the Registrar-Agent does not have full IP connectivity via the domain network, or cases where it has no other means to locate the registrar on the network.</t>
  <t>Domain Registrar: In general, the domain registrar fulfills the same functionality regarding the bootstrapping of the pledge in a (customer site) domain by facilitating the communication of the pledge with the MASA service and the domain PKI service.
In contrast to <xref target="RFC8995"/>, the domain registrar does not interact with a pledge directly but through the Registrar-Agent.
A registrar with combined functionality of BRSKI and BRSKI-PRM detects if the bootstrapping is performed by the pledge directly (BRSKI case) or by the Registrar-Agent (BRSKI-PRM case) based on the utilized credential for authentication (either pledge’s IDevID or LDevID from Registrar-Agent), see also <xref target="exchanges_uc2_2"/>.</t>
  <t>The manufacturer provided components/services (MASA and Ownership tracker) are used as defined in <xref target="RFC8995"/>.
A MASA is able to support enrollment via Registrar-Agent without changes unless it checks the vouchers proximity indication, in which case it would need to be enhanced to support BRSKI-PRM to also accept the agent-proximity.</t>
</list></t>

</section>
<section anchor="arch_nomadic"><name>Nomadic connectivity</name>

<t>In one example instance of the PRM architecture as shown in <xref target="uc3figure"/>, there is no connectivity between the location in which the pledge is installed and the location of the domain registrar.
This is often the case in the aforementioned building automation use case (<xref target="building-automation"/>).</t>

<figure title="Registrar-Agent nomadic connectivity example" anchor="uc3figure"><artset><artwork  type="svg" align="left"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="496" width="456" viewBox="0 0 456 496" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
<path d="M 24,128 L 24,176" fill="none" stroke="black"/>
<path d="M 96,128 L 96,176" fill="none" stroke="black"/>
<path d="M 208,32 L 208,64" fill="none" stroke="black"/>
<path d="M 224,400 L 224,448" fill="none" stroke="black"/>
<path d="M 328,320 L 328,368" fill="none" stroke="black"/>
<path d="M 376,72 L 376,312" fill="none" stroke="black"/>
<path d="M 376,368 L 376,400" fill="none" stroke="black"/>
<path d="M 424,320 L 424,368" fill="none" stroke="black"/>
<path d="M 424,400 L 424,448" fill="none" stroke="black"/>
<path d="M 432,32 L 432,64" fill="none" stroke="black"/>
<path d="M 208,32 L 432,32" fill="none" stroke="black"/>
<path d="M 208,64 L 432,64" fill="none" stroke="black"/>
<path d="M 24,128 L 96,128" fill="none" stroke="black"/>
<path d="M 104,160 L 184,160" fill="none" stroke="black"/>
<path d="M 24,176 L 96,176" fill="none" stroke="black"/>
<path d="M 328,320 L 424,320" fill="none" stroke="black"/>
<path d="M 272,352 L 320,352" fill="none" stroke="black"/>
<path d="M 328,368 L 424,368" fill="none" stroke="black"/>
<path d="M 224,400 L 424,400" fill="none" stroke="black"/>
<path d="M 224,448 L 424,448" fill="none" stroke="black"/>
<polygon class="arrowhead" points="384,312 372,306.4 372,317.6" fill="black" transform="rotate(90,376,312)"/>
<polygon class="arrowhead" points="384,72 372,66.4 372,77.6" fill="black" transform="rotate(270,376,72)"/>
<polygon class="arrowhead" points="328,352 316,346.4 316,357.6" fill="black" transform="rotate(0,320,352)"/>
<polygon class="arrowhead" points="280,352 268,346.4 268,357.6" fill="black" transform="rotate(180,272,352)"/>
<polygon class="arrowhead" points="192,160 180,154.4 180,165.6" fill="black" transform="rotate(0,184,160)"/>
<polygon class="arrowhead" points="112,160 100,154.4 100,165.6" fill="black" transform="rotate(180,104,160)"/>
<g class="text">
<text x="56" y="52">.....</text>
<text x="100" y="52">Drop</text>
<text x="140" y="52">Ship</text>
<text x="184" y="52">.....</text>
<text x="244" y="52">Vendor</text>
<text x="304" y="52">Service</text>
<text x="40" y="68">:</text>
<text x="40" y="84">:</text>
<text x="164" y="100">........................................</text>
<text x="8" y="116">.</text>
<text x="40" y="116">v</text>
<text x="320" y="116">.</text>
<text x="8" y="132">.</text>
<text x="248" y="132">.-.-.-.-.-.-.-.</text>
<text x="320" y="132">.</text>
<text x="8" y="148">.</text>
<text x="192" y="148">:</text>
<text x="244" y="148">Registrar-</text>
<text x="304" y="148">:</text>
<text x="320" y="148">.</text>
<text x="8" y="164">.</text>
<text x="60" y="164">Pledge</text>
<text x="192" y="164">:</text>
<text x="224" y="164">Agent</text>
<text x="304" y="164">:</text>
<text x="320" y="164">.</text>
<text x="8" y="180">.</text>
<text x="116" y="180">L2</text>
<text x="140" y="180">or</text>
<text x="164" y="180">L3</text>
<text x="248" y="180">:-.-.-.-.-.-.-:</text>
<text x="320" y="180">.</text>
<text x="8" y="196">.</text>
<text x="140" y="196">connectivity</text>
<text x="216" y="196">^</text>
<text x="320" y="196">.</text>
<text x="164" y="212">..........................!.............</text>
<text x="52" y="228">Pledge</text>
<text x="112" y="228">install</text>
<text x="216" y="228">!</text>
<text x="60" y="244">location</text>
<text x="216" y="244">!</text>
<text x="256" y="244">Nomadic</text>
<text x="216" y="260">!</text>
<text x="276" y="260">connectivity</text>
<text x="216" y="276">!</text>
<text x="248" y="292">...........!...................</text>
<text x="416" y="292">.........</text>
<text x="128" y="308">.</text>
<text x="216" y="308">v</text>
<text x="448" y="308">.</text>
<text x="128" y="324">.</text>
<text x="208" y="324">.-.-.-.-.-.-.-.</text>
<text x="448" y="324">.</text>
<text x="128" y="340">.</text>
<text x="152" y="340">:</text>
<text x="204" y="340">Registrar-</text>
<text x="264" y="340">:</text>
<text x="364" y="340">Domain</text>
<text x="448" y="340">.</text>
<text x="128" y="356">.</text>
<text x="152" y="356">:</text>
<text x="184" y="356">Agent</text>
<text x="264" y="356">:</text>
<text x="376" y="356">Registrar</text>
<text x="448" y="356">.</text>
<text x="128" y="372">.</text>
<text x="208" y="372">:-.-.-.-.-.-.-:</text>
<text x="448" y="372">.</text>
<text x="128" y="388">.</text>
<text x="448" y="388">.</text>
<text x="128" y="404">.</text>
<text x="448" y="404">.</text>
<text x="128" y="420">.</text>
<text x="248" y="420">Key</text>
<text x="324" y="420">Infrastructure</text>
<text x="448" y="420">.</text>
<text x="128" y="436">.</text>
<text x="260" y="436">(e.g.,</text>
<text x="304" y="436">PKI</text>
<text x="336" y="436">CA)</text>
<text x="448" y="436">.</text>
<text x="128" y="452">.</text>
<text x="448" y="452">.</text>
<text x="288" y="468">.........................................</text>
<text x="236" y="484">&quot;Domain&quot;</text>
<text x="316" y="484">Components</text>
</g>
</svg>
</artwork><artwork  type="ascii-art" align="left"><![CDATA[
                         +---------------------------+
    ..... Drop Ship .....| Vendor Service            |
    :                    +---------------------------+
    :                                         ^
........................................      |
.   v                                  .      |
. +--------+           .-.-.-.-.-.-.-. .      |
. |        |           : Registrar-  : .      |
. | Pledge |<--------->: Agent       : .      |
. +--------+ L2 or L3  :-.-.-.-.-.-.-: .      |
.          connectivity   ^            .      |
..........................!.............      |
   Pledge install         !                   |
   location               ! Nomadic           |
                          ! connectivity      |
                          !                   |
               ...........!...................|.........
               .          v                   v        .
               .  .-.-.-.-.-.-.-.       +-----------+  .
               .  : Registrar-  :       | Domain    |  .
               .  : Agent       :<----->| Registrar |  .
               .  :-.-.-.-.-.-.-:       +-----+-----+  .
               .                              |        .
               .           +------------------+-----+  .
               .           | Key Infrastructure     |  .
               .           | (e.g., PKI CA)         |  .
               .           +------------------------+  .
               .........................................
                         "Domain" Components
]]></artwork></artset></figure>

<t>PRM enables support of this case through nomadic connectivity of the Registrar-Agent.
To perform enrollment in this setup, multiple round trips of the Registrar-Agent between the pledge install location and the domain registrar are required.</t>

<t><list style="numbers">
  <t>Connectivity to domain registrar: preparation tasks for pledge bootstrapping not part of the BRSKI-PRM protocol definition, like retrieval of list of pledges to enroll.</t>
  <t>Connectivity to pledge install location: retrieve information about available pledges (IDevID), collect request objects like voucher-requests and enrollment-requests using the BRSKI-PRM approach described in <xref target="exchanges_uc2_1"/>.</t>
  <t>Connectivity to domain registrar, submit collected pledges' request information, retrieve response objects as voucher and enrollment information using the BRSKI-PRM approach described in <xref target="exchanges_uc2_2"/>.</t>
  <t>Connectivity to pledge install location, provide retrieved objects to the pledge to enroll pledges and collect status using the BRSKI-PRM approach described in <xref target="exchanges_uc2_3"/>.</t>
  <t>Connectivity to domain registrar, submit voucher status and enrollment status using the BRSKI-PRM approach described in <xref target="exchanges_uc2_4"/>.</t>
</list></t>

<t>Variations of this setup include cases where the Registrar-Agent uses for example WiFi to connect to the pledge installation network, and mobile network connectivity to connect to the domain registrar.
Both connections may also be possible in a single location at the same time, based on installation building conditions.,</t>

</section>
<section anchor="registrar-agent-co-located-with-registrar"><name>Registrar-Agent co-located with registrar</name>

<t>Compared to <xref target="RFC8995"/> BRSKI, pledges supporting BRSKI-PRM can be completely passive and only need to react when being requested to react by a Registrar-Agent.
In <xref target="RFC8995"/>, pledges instead need to continuously request enrollment from a domain registrar, which may result in undesirable communications pattern and possible overload of a domain registrar.</t>

<figure title="Registrar-Agent integrated into Domain Registrar example" anchor="uc4figure"><artset><artwork  type="svg" align="left"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="352" width="472" viewBox="0 0 472 352" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
<path d="M 8,160 L 8,208" fill="none" stroke="black"/>
<path d="M 80,160 L 80,208" fill="none" stroke="black"/>
<path d="M 200,32 L 200,64" fill="none" stroke="black"/>
<path d="M 208,144 L 208,224" fill="none" stroke="black"/>
<path d="M 216,256 L 216,288" fill="none" stroke="black"/>
<path d="M 368,72 L 368,136" fill="none" stroke="black"/>
<path d="M 368,224 L 368,256" fill="none" stroke="black"/>
<path d="M 416,144 L 416,224" fill="none" stroke="black"/>
<path d="M 416,256 L 416,288" fill="none" stroke="black"/>
<path d="M 424,32 L 424,64" fill="none" stroke="black"/>
<path d="M 200,32 L 424,32" fill="none" stroke="black"/>
<path d="M 200,64 L 424,64" fill="none" stroke="black"/>
<path d="M 208,144 L 416,144" fill="none" stroke="black"/>
<path d="M 8,160 L 80,160" fill="none" stroke="black"/>
<path d="M 88,192 L 200,192" fill="none" stroke="black"/>
<path d="M 8,208 L 80,208" fill="none" stroke="black"/>
<path d="M 208,224 L 416,224" fill="none" stroke="black"/>
<path d="M 216,256 L 416,256" fill="none" stroke="black"/>
<path d="M 216,288 L 416,288" fill="none" stroke="black"/>
<polygon class="arrowhead" points="376,136 364,130.4 364,141.6" fill="black" transform="rotate(90,368,136)"/>
<polygon class="arrowhead" points="376,72 364,66.4 364,77.6" fill="black" transform="rotate(270,368,72)"/>
<polygon class="arrowhead" points="208,192 196,186.4 196,197.6" fill="black" transform="rotate(0,200,192)"/>
<polygon class="arrowhead" points="96,192 84,186.4 84,197.6" fill="black" transform="rotate(180,88,192)"/>
<g class="text">
<text x="48" y="52">.....</text>
<text x="92" y="52">Drop</text>
<text x="132" y="52">Ship</text>
<text x="176" y="52">.....</text>
<text x="236" y="52">Vendor</text>
<text x="296" y="52">Service</text>
<text x="32" y="68">:</text>
<text x="32" y="84">:</text>
<text x="32" y="100">:</text>
<text x="32" y="116">:</text>
<text x="240" y="116">...............................</text>
<text x="408" y="116">.........</text>
<text x="32" y="132">:</text>
<text x="120" y="132">.</text>
<text x="440" y="132">.</text>
<text x="32" y="148">v</text>
<text x="120" y="148">.</text>
<text x="440" y="148">.</text>
<text x="120" y="164">.</text>
<text x="268" y="164">..............</text>
<text x="440" y="164">.</text>
<text x="120" y="180">.</text>
<text x="216" y="180">.</text>
<text x="268" y="180">Registrar-</text>
<text x="320" y="180">.</text>
<text x="356" y="180">Domain</text>
<text x="440" y="180">.</text>
<text x="44" y="196">Pledge</text>
<text x="216" y="196">.</text>
<text x="248" y="196">Agent</text>
<text x="320" y="196">.</text>
<text x="368" y="196">Registrar</text>
<text x="440" y="196">.</text>
<text x="100" y="212">L2</text>
<text x="124" y="212">or</text>
<text x="148" y="212">L3</text>
<text x="268" y="212">..............</text>
<text x="440" y="212">.</text>
<text x="140" y="228">connectivity</text>
<text x="440" y="228">.</text>
<text x="120" y="244">.</text>
<text x="440" y="244">.</text>
<text x="120" y="260">.</text>
<text x="440" y="260">.</text>
<text x="120" y="276">.</text>
<text x="240" y="276">Key</text>
<text x="316" y="276">Infrastructure</text>
<text x="440" y="276">.</text>
<text x="120" y="292">.</text>
<text x="440" y="292">.</text>
<text x="280" y="308">.........................................</text>
<text x="228" y="324">&quot;Domain&quot;</text>
<text x="308" y="324">Components</text>
</g>
</svg>
</artwork><artwork  type="ascii-art" align="left"><![CDATA[
                         +---------------------------+
    ..... Drop Ship .....| Vendor Service            |
    :                    +---------------------------+
    :                                         ^
    :                                         |
    :          ...............................|.........
    :          .                              v        .
    v          .          +-------------------------+  .
 +--------+    .          |..............           |  .   
 |        |    .          |. Registrar- . Domain    |  .
 | Pledge |<------------->|. Agent      . Registrar |  .
 +--------+ L2 or L3      |..............           |  .   
            connectivity  +-------------------+-----+  .
               .                              |        .
               .           +------------------+-----+  .
               .           | Key Infrastructure     |  .
               .           +------------------------+  .
               .........................................
                         "Domain" Components
]]></artwork></artset></figure>

<t>The benefits of BRSKI-PRM can be achieved even without the operational complexity of standalone Registrar-Agents by integrating the necessary functionality of the Registrar-Agent as a module into the domain registrar as shown in <xref target="uc4figure"/> so that it can support the BRSKI-PRM communications to the pledge.</t>

</section>
<section anchor="agt_prx"><name>Agent-Proximity Assertion</name>

<t>"Agent-proximity" is a statement in the PVR and in the voucher, that the registrar certificate was provided via the Registrar-Agent as defined in <xref target="exchanges_uc2"/> and not directly to the pledge.
"Agent-proximity" is therefore a different assertion then "proximity", which is defined in section 4 of <xref target="RFC8366"/>.
"Agent-proximity" is defined as additional assertion type in <xref target="I-D.ietf-anima-rfc8366bis"/>.
This can be verified by the registrar and also by the MASA during the voucher-request processing.</t>

<t>In BRSKI, the pledge verifies POP of the registrar via the TLS handshake and pins that public key as the "proximity-registrar-cert" into the voucher request.
This allows the MASA to verify the proximity of the pledge and registrar, facilitating a decision to assign the pledge to that domain owner.
In BRSKI, the TLS connection is considered provisional until the pledge receives the voucher.</t>

<t>In contrast, in BRSKI-PRM, the pledge has no direct connection to the registrar and must take the Registrar-Agent LDevID provisionally.
The Registrar-Agent has included its LDevID, a certificate signed by the domain owner, into the PVR trigger message.
The Registrar-Agent identity is therefore included into the Pledge Voucher Request (PVR).</t>

<t>Akin to the BRSKI case, the pledge has provided proximity evidence to the MASA.
But additionally, this allows the Registrar to be sure that the PVR collected by the Registrar-Agent was in fact collected by the Registrar-Agent to which the Registrar is connected to.</t>

<t>In a similar fashion, the pledge accepts the registrar certificate provisionally until it receives the voucher as described in <xref target="exchanges_uc2_3"/>.
See also Section 5 of <xref target="RFC8995"/> on "PROVISIONAL accept of server cert".</t>

</section>
<section anchor="pledge_ep"><name>Behavior of Pledge in Pledge-Responder-Mode</name>

<t>The pledge is triggered by the Registrar-Agent to generate the PVR and PER.
It will also be triggered for processing of the responses and the generation of status information once the Registrar-Agent has received the responses from the registrar later in the process.
Due to the use of the Registrar-Agent, the interaction with the domain registrar is changed as shown in <xref target="exchangesfig_uc2_1"/>.
To enable interaction as responder with the Registrar-Agent, the pledge provides endpoints using the BRSKI defined endpoints based on the "/.well-known/brski" URI tree.</t>

<t>When the Registrar-Agent reaches out to a pledge, for instance with an example URI path "http://pledge.example/.well-known/brski/tpvr", it will in fact send a Host: header of "pledge.example", with a relative path of "/.well-known/brski/tpbr".
However in practice the pledge will often be known only by its IP address as returned by a discovery protocol, and that is what will be present in the Host: header.</t>

<t>The pledge <bcp14>MUST</bcp14> respond to all queries regardless of what Host: header is provided by the client.
<xref section="7.2" sectionFormat="comma" target="RFC9110"/> makes the Host: header mandatory, so it will always be present.</t>

<t>The following operations are defined for the <em>pledge</em> in this document, describing their endpoints and their corresponding URIs.
The endpoints are defined with short names to also accommodate for the constraint case.</t>

<texttable title="Endpoints on the pledge" anchor="eppfigure1">
      <ttcol align='left'>Operation</ttcol>
      <ttcol align='left'>Endpoint</ttcol>
      <ttcol align='left'>Details</ttcol>
      <c>Trigger pledge voucher-request creation - Returns PVR</c>
      <c>/tpvr</c>
      <c><xref target="exchanges_uc2_1"/></c>
      <c>Trigger pledge enrollment-request - Returns PER</c>
      <c>/tper</c>
      <c><xref target="exchanges_uc2_1"/></c>
      <c>Supply voucher to pledge - Returns pledge voucher-status</c>
      <c>/svr</c>
      <c><xref target="exchanges_uc2_3"/></c>
      <c>Supply enrollment-response to pledge - Returns pledge enrollment-status</c>
      <c>/ser</c>
      <c><xref target="exchanges_uc2_3"/></c>
      <c>Supply CA certs to pledge</c>
      <c>/scac</c>
      <c><xref target="exchanges_uc2_3"/></c>
      <c>Query status of pledge - Returns pledge-status</c>
      <c>/qps</c>
      <c><xref target="exchanges_uc2_5"/></c>
</texttable>

</section>
<section anchor="behavior-of-registrar-agent"><name>Behavior of Registrar-Agent</name>

<t>The Registrar-Agent as a new component provides a message passing service between the pledge and the domain registrar.
It facilitates the exchange of data between the pledge and the domain registrar, which are the voucher-request/response, the enrollment-request/response, as well as related telemetry and status information.</t>

<t>For the communication with the pledge the Registrar-Agent utilizes communication endpoints provided by the pledge.
The transport in this specification is based on HTTP but may also be done using other transport mechanisms.</t>

<t>The communication between the Registrar-Agent and the pledge <bcp14>MAY</bcp14> be protected using TLS as outlined in <xref target="exchanges_uc2_1"/>.
The details of doing TLS validation are <xref target="pledgehttps"/>.</t>

<t>For the communication with the registrar, the Registrar-Agent uses the endpoints of the domain registrar side already specified in <xref target="RFC8995"/> (derived from EST <xref target="RFC7030"/>) where suitable.
These endpoints do not expect signature wrapped-objects, which are used b BRSKI-PRM.
This specifically applies for the enrollment-request and the provisioning of CA certificates.
To accommodate the use of signature-wrapped object, the following additional endpoints are defined for the <em>registrar</em>.
Operations and their corresponding URIs:</t>

<texttable title="Additional endpoints on the registrar" anchor="eppfigure2">
      <ttcol align='left'>Operation</ttcol>
      <ttcol align='left'>Endpoint</ttcol>
      <ttcol align='left'>Details</ttcol>
      <c>Supply PER to registrar - Returns enrollment-response</c>
      <c>/requestenroll</c>
      <c><xref target="exchanges_uc2_2_per"/></c>
      <c>Request (wrapped) CA certificates - Returns wrapped CA Certificates</c>
      <c>/wrappedcacerts</c>
      <c><xref target="exchanges_uc2_2_wca"/></c>
</texttable>

<t>For authentication to the domain registrar, the Registrar-Agent uses its EE (RegAgt) certificate.
The provisioning of the Registrar-Agent LDevID is out of scope for this document, but may be done in advance using a separate BRSKI run or by other means like configuration.
It is recommended to use short lived Registrar-Agent LDevIDs in the range of days or weeks as outlined in <xref target="sec_cons_reg-agt"/>.</t>

<t>The Registrar-Agent will use its EE certificate when establishing a TLS session with the domain registrar for TLS client authentication.
The EE (RegAgt) certificate <bcp14>MUST</bcp14> include a SubjectKeyIdentifier (SKID), which is used as reference in the context of an agent-signed-data object as defined in <xref target="exchanges_uc2_1"/>.
Note that this is an additional requirement for issuing the certificate, as <xref target="IEEE-802.1AR"/> only requires the SKID to be included for intermediate CA certificates.
<xref target="RFC8995"/> makes a similar requirement.
In BRSKI-PRM, the SKID is used in favor of providing the complete EE (RegAgt) certificate to accommodate also constraint environments and reduce bandwidth needed for communication with the pledge.
In addition, it follows the recommendation from BRSKI to use SKID in favor of a certificate fingerprint to avoid additional computations.</t>

<t>Using an LDevID for TLS client authentication of the Registrar-Agent is a deviation from <xref target="RFC8995"/>, in which the pledge's IDevID credential is used to perform TLS client authentication.
The use of the EE (RegAgt) certificate allows the domain registrar to distinguish, if bootstrapping is initiated from a pledge or from a Registrar-Agent and to adopt different internal handling accordingly.
If a registrar detects a request that originates from a Registrar-Agent it is able to switch the operational mode from BRSKI to BRSKI-PRM.
This may be supported by a specific naming in the SAN (subject alternative name) component of the EE (RegAgt) certificate.
Alternatively, the domain may feature a CA specifically for issuing Registrar-Agent LDevID certificates.
This allows the registrar to detect Registrar-Agents based on the issuing CA.</t>

<t>As BRSKI-PRM uses authenticated self-contained data objects between the pledge and the domain registrar, the binding of the pledge identity to the requests is provided by the data object signature employing the pledge's IDevID.
The objects exchanged between the pledge and the domain registrar used in the context of this specifications are JOSE objects.</t>

<t>In addition to the EE (RegAgt) certificate, the Registrar-Agent is provided with the product-serial-number(s) of the pledge(s) to be bootstrapped.
This is necessary to allow the discovery of pledge(s) by the Registrar-Agent using DNS-SD with mDNS (see <xref target="discovery_uc2_ppa"/>)
The list may be provided by prior administrative means or the Registrar-Agent may get the information via an interaction with the pledge.
For instance, <xref target="RFC9238"/> describes scanning of a QR code, the product-serial-number would be initialized from the 12N B005 Product Serial Number.</t>

<t>According to <xref target="RFC8995"/> section 5.3, the domain registrar performs the pledge authorization for bootstrapping within his domain based on the pledge voucher-request object.
This behavior is retained also in BRSKI-PRM.</t>

<t>The following information <bcp14>MUST</bcp14> be available at the Registrar-Agent before interaction with a pledge:</t>

<t><list style="symbols">
  <t>EE (RegAgt) certificate and corresponding private key: own operational key pair (to sign agent-signed-data).</t>
  <t>Registrar EE certificate: certificate of the domain registrar (to be provided to the pledge).</t>
  <t>Serial-number(s): product-serial-number(s) of pledge(s) to be bootstrapped (to query discovery of specific pledges based on the product-serial-number).</t>
</list></t>

<section anchor="discovery_uc2_reg"><name>Discovery of Registrar by Registrar-Agent</name>

<t>As a Registrar-Agent acts as representative of the domain registrar towards the pledge or may even be collocated with the domain registrar, a separate discovery of the registrar is likely not needed as Registrar-Agent and registrar are domain components and have a trust relation.
Moreover, other communication (not part of this document) between the Registrar-Agent and the registrar is assumed, e.g., to exchange information about product-serial-number(s) of pledges to be discovered as outlined in <xref target="arch_nomadic"/>.
Moreover, as the standard discovery described in section 4 and the appendix A.2 of <xref target="RFC8995"/> does not support  of registrars with an enhanced feature set (like the support of BRSKI-PRM), this standard discovery is not applicable.</t>

<t>As a more general solution, the BRSKI discovery mechanism can be extended to provide upfront information on the capabilities of registrars, such as the mode of operation (pledge-responder-mode or registrar-responder-mode).
Defining discovery extensions is out of scope of this document.
This may be provided in <xref target="I-D.eckert-anima-brski-discovery"/>.</t>

</section>
<section anchor="discovery_uc2_ppa"><name>Discovery of Pledge by Registrar-Agent</name>

<t>The discovery of the pledge by Registrar-Agent in the context of this document describes the minimum discovery approach to be supported.
A more general discovery mechanism, also supporting GRASP besides DNS-SD with mDNS may be provided in <xref target="I-D.eckert-anima-brski-discovery"/>.</t>

<t>Discovery in BRSKI-PRM uses DNS-based Service Discovery <xref target="RFC6763"/> over Multicast DNS <xref target="RFC6762"/> to discover the pledge.
Note that <xref target="RFC6762"/> Section 9 provides support for conflict resolution in situations when an DNS-SD with mDNS responder receives a mDNS response with inconsistent data.
Note that <xref target="RFC8990"/> does not support conflict resolution of mDNS, which may be a limitation for its application.</t>

<t>The pledge constructs a local host name based on device local information (product-serial-number), which results in "product-serial-number._brski-pledge._tcp.local".
The product-serial-number composition is manufacturer dependent and may contain information regarding the manufacturer, the product type, and further information specific to the product instance. To allow distinction of pledges, the product-serial-number therefore needs to be sufficiently unique.</t>

<t>In the absence of a more general discovery as defined in <xref target="I-D.eckert-anima-brski-discovery"/> the Registrar-Agent <bcp14>MUST</bcp14>  use</t>

<t><list style="symbols">
  <t>"product-serial-number._brski-pledge._tcp.local", to discover a specific pledge, e.g., when connected to a local network.</t>
  <t>"_brski-pledge._tcp.local" to get a list of pledges to be bootstrapped.</t>
</list></t>

<t>A manufacturer may allow the pledge to react on DNS-SD with mDNS discovery without his product-serial-number contained. This allows a commissioning tool to discover pledges to be bootstrapped in the domain. The manufacturer support this functionality as outlined in <xref target="sec_cons_mDNS"/>.</t>

<t>Establishing network connectivity of the pledge is out of scope of this document but necessary to apply DNS-SD with mDNS.
For Ethernet it is provided by simply connecting the network cable.
For WiFi networks, connectivity can be provided by using a pre-agreed SSID for bootstrapping, e.g., as proposed in <xref target="I-D.richardson-emu-eap-onboarding"/>.
The same approach can be used by 6LoWPAN/mesh using a pre-agreed PAN ID.
How to gain network connectivity is out of scope of this document.</t>

</section>
</section>
<section anchor="behavior-of-pledge-with-combined-functionality"><name>Behavior of Pledge with Combined Functionality</name>

<t>Pledges <bcp14>MAY</bcp14> support both initiator or responder mode.</t>

<t>A pledge in initiator mode should listen for announcement messages as described in <xref section="4.1" sectionFormat="of" target="RFC8995"/>.
Upon discovery of a potential registrar, it initiates the bootstrapping to that registrar.
At the same time (so as to avoid the Slowloris-attack described in <xref target="RFC8995"/>), it <bcp14>SHOULD</bcp14> also respond to the triggers for responder mode described in this document.</t>

<t>Once a pledge with combined functionality has been bootstrapped, it <bcp14>MAY</bcp14> act as client for enrollment of further certificates needed, e.g., using the enrollment protocol of choice.
If it still acts as server, the defined BRSKI-PRM endpoints to trigger a pledge enrollment-request (PER) or to provide an enrollment-response can be used for further certificates.</t>

</section>
</section>
<section anchor="exchanges_uc2"><name>Bootstrapping Data Objects and Corresponding Exchanges</name>

<t>The interaction of the pledge with the Registrar-Agent may be accomplished using different transport means (protocols and/or network technologies).
This specification utilizes HTTP as transport.
Alternative transport channels may be CoAP, Bluetooth Low Energy (BLE), or Nearfield Communication (NFC).
These transport means may differ from, and are independent of, the ones used between the Registrar-Agent and the registrar.
Transport channel independence is realized by data objects, which are not bound to specific transport security and stay the same across the communication from the pledge via the Registrar-Agent to the registrar..
Therefore, authenticated self-contained objects (here: signature-wrapped objects) are applied for data exchanges between the pledge and the registrar.</t>

<t>The Registrar-Agent provides the domain registrar certificate (registrar LDevID certificate) to the pledge to be included in the PVR leaf "agent-provided-proximity-registrar-certificate".
This enables the registrar to verify that it is the desired registrar for handling the request.</t>

<t>The registrar certificate may be configured at the Registrar-Agent or may be fetched by the Registrar-Agent based on a prior TLS connection with this domain registrar.
In addition, the Registrar-Agent provides agent-signed-data containing the pledge product-serial-number, signed with the private key corresponding to the EE (RegAgt) certificate, as described in <xref target="exchanges_uc2_1"/>.
This enables the registrar to verify and log, which Registrar-Agent was in contact with the pledge, when verifying the PVR.</t>

<t>The registrar <bcp14>MUST</bcp14> provide the EE (RegAgt) certificate identified by the SubjectKeyIdentifier (SKID) in the header of the agent-signed-data from the PVR in its RVR (see also <xref target="pvr-proc-reg"/>.</t>

<t>The MASA in turn verifies the registrar LDevID certificate is included in the PVR (contained in the "prior-signed-voucher-request" field of RVR) in the "agent-provided-proximity-registrar-certificate" leaf and may assert the PVR as "verified" or "logged".</t>

<t>In addition, the MASA <bcp14>MAY</bcp14> issue the assertion "agent-proximity" as follows:
The MASA verifies the signature of the agent-signed-data contained in the prior-signed-voucher-request, based on the provided EE (RegAgt) certificate in the "agent-sign-cert" leaf of the RVR.
If both can be verified successfully, the MASA can assert "agent-proximity" in the voucher.
The assertion of "agent-proximity" is similar to the proximity assertion by the MASA when using BRSKI.
Note that the different assertions do not provide a metric of strength as the security properties are not comparable.</t>

<t>Depending on the MASA verification policy, it may also respond with a suitable 4xx or 5xx error status code as described in section 5.6 of <xref target="RFC8995"/>.
When successful, the voucher will then be supplied via the registrar to the Registrar-Agent.</t>

<t><xref target="exchangesfig_uc2_all"/> provides an overview of the exchanges detailed in the following sub sections.</t>

<figure title="Overview pledge-responder-mode exchanges" anchor="exchangesfig_uc2_all"><artset><artwork  type="svg" align="left"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="1088" width="560" viewBox="0 0 560 1088" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
<path d="M 8,32 L 8,96" fill="none" stroke="black"/>
<path d="M 32,104 L 32,208" fill="none" stroke="black"/>
<path d="M 32,248 L 32,336" fill="none" stroke="black"/>
<path d="M 32,392 L 32,592" fill="none" stroke="black"/>
<path d="M 32,632 L 32,712" fill="none" stroke="black"/>
<path d="M 32,728 L 32,752" fill="none" stroke="black"/>
<path d="M 32,808 L 32,896" fill="none" stroke="black"/>
<path d="M 32,952 L 32,1072" fill="none" stroke="black"/>
<path d="M 80,32 L 80,96" fill="none" stroke="black"/>
<path d="M 112,32 L 112,96" fill="none" stroke="black"/>
<path d="M 168,104 L 168,208" fill="none" stroke="black"/>
<path d="M 168,256 L 168,336" fill="none" stroke="black"/>
<path d="M 168,384 L 168,592" fill="none" stroke="black"/>
<path d="M 168,624 L 168,704" fill="none" stroke="black"/>
<path d="M 168,736 L 168,752" fill="none" stroke="black"/>
<path d="M 168,816 L 168,896" fill="none" stroke="black"/>
<path d="M 168,960 L 168,1072" fill="none" stroke="black"/>
<path d="M 208,32 L 208,96" fill="none" stroke="black"/>
<path d="M 240,32 L 240,96" fill="none" stroke="black"/>
<path d="M 312,104 L 312,208" fill="none" stroke="black"/>
<path d="M 312,256 L 312,336" fill="none" stroke="black"/>
<path d="M 312,512 L 312,592" fill="none" stroke="black"/>
<path d="M 312,640 L 312,704" fill="none" stroke="black"/>
<path d="M 312,736 L 312,752" fill="none" stroke="black"/>
<path d="M 312,816 L 312,896" fill="none" stroke="black"/>
<path d="M 312,960 L 312,1008" fill="none" stroke="black"/>
<path d="M 312,1040 L 312,1072" fill="none" stroke="black"/>
<path d="M 336,32 L 336,96" fill="none" stroke="black"/>
<path d="M 376,32 L 376,96" fill="none" stroke="black"/>
<path d="M 432,104 L 432,208" fill="none" stroke="black"/>
<path d="M 432,256 L 432,336" fill="none" stroke="black"/>
<path d="M 432,400 L 432,496" fill="none" stroke="black"/>
<path d="M 432,576 L 432,592" fill="none" stroke="black"/>
<path d="M 432,640 L 432,704" fill="none" stroke="black"/>
<path d="M 432,736 L 432,752" fill="none" stroke="black"/>
<path d="M 432,816 L 432,896" fill="none" stroke="black"/>
<path d="M 432,960 L 432,976" fill="none" stroke="black"/>
<path d="M 432,1040 L 432,1072" fill="none" stroke="black"/>
<path d="M 448,32 L 448,96" fill="none" stroke="black"/>
<path d="M 472,32 L 472,96" fill="none" stroke="black"/>
<path d="M 536,104 L 536,208" fill="none" stroke="black"/>
<path d="M 536,256 L 536,336" fill="none" stroke="black"/>
<path d="M 536,400 L 536,512" fill="none" stroke="black"/>
<path d="M 536,560 L 536,592" fill="none" stroke="black"/>
<path d="M 536,640 L 536,704" fill="none" stroke="black"/>
<path d="M 536,736 L 536,752" fill="none" stroke="black"/>
<path d="M 536,816 L 536,896" fill="none" stroke="black"/>
<path d="M 536,960 L 536,1008" fill="none" stroke="black"/>
<path d="M 536,1040 L 536,1072" fill="none" stroke="black"/>
<path d="M 552,32 L 552,96" fill="none" stroke="black"/>
<path d="M 8,32 L 80,32" fill="none" stroke="black"/>
<path d="M 112,32 L 208,32" fill="none" stroke="black"/>
<path d="M 240,32 L 336,32" fill="none" stroke="black"/>
<path d="M 376,32 L 448,32" fill="none" stroke="black"/>
<path d="M 472,32 L 552,32" fill="none" stroke="black"/>
<path d="M 8,96 L 80,96" fill="none" stroke="black"/>
<path d="M 112,96 L 208,96" fill="none" stroke="black"/>
<path d="M 240,96 L 336,96" fill="none" stroke="black"/>
<path d="M 376,96 L 448,96" fill="none" stroke="black"/>
<path d="M 472,96 L 552,96" fill="none" stroke="black"/>
<path d="M 40,176 L 160,176" fill="none" stroke="black"/>
<path d="M 40,192 L 160,192" fill="none" stroke="black"/>
<path d="M 40,256 L 56,256" fill="none" stroke="black"/>
<path d="M 136,256 L 160,256" fill="none" stroke="black"/>
<path d="M 40,272 L 80,272" fill="none" stroke="black"/>
<path d="M 136,272 L 160,272" fill="none" stroke="black"/>
<path d="M 40,288 L 80,288" fill="none" stroke="black"/>
<path d="M 128,288 L 160,288" fill="none" stroke="black"/>
<path d="M 40,320 L 80,320" fill="none" stroke="black"/>
<path d="M 136,320 L 160,320" fill="none" stroke="black"/>
<path d="M 40,336 L 80,336" fill="none" stroke="black"/>
<path d="M 128,336 L 160,336" fill="none" stroke="black"/>
<path d="M 176,400 L 216,400" fill="none" stroke="black"/>
<path d="M 264,400 L 304,400" fill="none" stroke="black"/>
<path d="M 176,448 L 208,448" fill="none" stroke="black"/>
<path d="M 256,448 L 304,448" fill="none" stroke="black"/>
<path d="M 320,512 L 408,512" fill="none" stroke="black"/>
<path d="M 456,512 L 528,512" fill="none" stroke="black"/>
<path d="M 320,560 L 392,560" fill="none" stroke="black"/>
<path d="M 472,560 L 528,560" fill="none" stroke="black"/>
<path d="M 176,576 L 200,576" fill="none" stroke="black"/>
<path d="M 280,576 L 304,576" fill="none" stroke="black"/>
<path d="M 176,640 L 216,640" fill="none" stroke="black"/>
<path d="M 264,640 L 304,640" fill="none" stroke="black"/>
<path d="M 320,656 L 344,656" fill="none" stroke="black"/>
<path d="M 392,656 L 424,656" fill="none" stroke="black"/>
<path d="M 320,672 L 344,672" fill="none" stroke="black"/>
<path d="M 400,672 L 424,672" fill="none" stroke="black"/>
<path d="M 176,688 L 192,688" fill="none" stroke="black"/>
<path d="M 288,688 L 304,688" fill="none" stroke="black"/>
<path d="M 288,736 L 304,736" fill="none" stroke="black"/>
<path d="M 176,752 L 192,752" fill="none" stroke="black"/>
<path d="M 40,816 L 56,816" fill="none" stroke="black"/>
<path d="M 136,816 L 160,816" fill="none" stroke="black"/>
<path d="M 40,832 L 64,832" fill="none" stroke="black"/>
<path d="M 144,832 L 160,832" fill="none" stroke="black"/>
<path d="M 40,848 L 64,848" fill="none" stroke="black"/>
<path d="M 144,848 L 160,848" fill="none" stroke="black"/>
<path d="M 40,864 L 64,864" fill="none" stroke="black"/>
<path d="M 144,864 L 160,864" fill="none" stroke="black"/>
<path d="M 40,880 L 56,880" fill="none" stroke="black"/>
<path d="M 40,896 L 56,896" fill="none" stroke="black"/>
<path d="M 136,896 L 160,896" fill="none" stroke="black"/>
<path d="M 176,960 L 224,960" fill="none" stroke="black"/>
<path d="M 272,960 L 304,960" fill="none" stroke="black"/>
<path d="M 176,976 L 200,976" fill="none" stroke="black"/>
<path d="M 288,976 L 304,976" fill="none" stroke="black"/>
<path d="M 320,992 L 336,992" fill="none" stroke="black"/>
<path d="M 512,992 L 528,992" fill="none" stroke="black"/>
<path d="M 320,1008 L 352,1008" fill="none" stroke="black"/>
<path d="M 504,1008 L 528,1008" fill="none" stroke="black"/>
<path d="M 176,1056 L 200,1056" fill="none" stroke="black"/>
<path d="M 280,1056 L 304,1056" fill="none" stroke="black"/>
<polygon class="arrowhead" points="536,992 524,986.4 524,997.6" fill="black" transform="rotate(0,528,992)"/>
<polygon class="arrowhead" points="536,512 524,506.4 524,517.6" fill="black" transform="rotate(0,528,512)"/>
<polygon class="arrowhead" points="432,656 420,650.4 420,661.6" fill="black" transform="rotate(0,424,656)"/>
<polygon class="arrowhead" points="328,1008 316,1002.4 316,1013.6" fill="black" transform="rotate(180,320,1008)"/>
<polygon class="arrowhead" points="328,672 316,666.4 316,677.6" fill="black" transform="rotate(180,320,672)"/>
<polygon class="arrowhead" points="328,560 316,554.4 316,565.6" fill="black" transform="rotate(180,320,560)"/>
<polygon class="arrowhead" points="312,1056 300,1050.4 300,1061.6" fill="black" transform="rotate(0,304,1056)"/>
<polygon class="arrowhead" points="312,976 300,970.4 300,981.6" fill="black" transform="rotate(0,304,976)"/>
<polygon class="arrowhead" points="312,960 300,954.4 300,965.6" fill="black" transform="rotate(0,304,960)"/>
<polygon class="arrowhead" points="312,736 300,730.4 300,741.6" fill="black" transform="rotate(0,304,736)"/>
<polygon class="arrowhead" points="312,640 300,634.4 300,645.6" fill="black" transform="rotate(0,304,640)"/>
<polygon class="arrowhead" points="312,448 300,442.4 300,453.6" fill="black" transform="rotate(0,304,448)"/>
<polygon class="arrowhead" points="312,400 300,394.4 300,405.6" fill="black" transform="rotate(0,304,400)"/>
<polygon class="arrowhead" points="184,960 172,954.4 172,965.6" fill="black" transform="rotate(180,176,960)"/>
<polygon class="arrowhead" points="184,752 172,746.4 172,757.6" fill="black" transform="rotate(180,176,752)"/>
<polygon class="arrowhead" points="184,688 172,682.4 172,693.6" fill="black" transform="rotate(180,176,688)"/>
<polygon class="arrowhead" points="184,576 172,570.4 172,581.6" fill="black" transform="rotate(180,176,576)"/>
<polygon class="arrowhead" points="184,400 172,394.4 172,405.6" fill="black" transform="rotate(180,176,400)"/>
<polygon class="arrowhead" points="168,896 156,890.4 156,901.6" fill="black" transform="rotate(0,160,896)"/>
<polygon class="arrowhead" points="168,848 156,842.4 156,853.6" fill="black" transform="rotate(0,160,848)"/>
<polygon class="arrowhead" points="168,816 156,810.4 156,821.6" fill="black" transform="rotate(0,160,816)"/>
<polygon class="arrowhead" points="168,336 156,330.4 156,341.6" fill="black" transform="rotate(0,160,336)"/>
<polygon class="arrowhead" points="168,288 156,282.4 156,293.6" fill="black" transform="rotate(0,160,288)"/>
<polygon class="arrowhead" points="168,256 156,250.4 156,261.6" fill="black" transform="rotate(0,160,256)"/>
<polygon class="arrowhead" points="168,192 156,186.4 156,197.6" fill="black" transform="rotate(0,160,192)"/>
<polygon class="arrowhead" points="48,880 36,874.4 36,885.6" fill="black" transform="rotate(180,40,880)"/>
<polygon class="arrowhead" points="48,864 36,858.4 36,869.6" fill="black" transform="rotate(180,40,864)"/>
<polygon class="arrowhead" points="48,832 36,826.4 36,837.6" fill="black" transform="rotate(180,40,832)"/>
<polygon class="arrowhead" points="48,816 36,810.4 36,821.6" fill="black" transform="rotate(180,40,816)"/>
<polygon class="arrowhead" points="48,320 36,314.4 36,325.6" fill="black" transform="rotate(180,40,320)"/>
<polygon class="arrowhead" points="48,272 36,266.4 36,277.6" fill="black" transform="rotate(180,40,272)"/>
<polygon class="arrowhead" points="48,256 36,250.4 36,261.6" fill="black" transform="rotate(180,40,256)"/>
<polygon class="arrowhead" points="48,176 36,170.4 36,181.6" fill="black" transform="rotate(180,40,176)"/>
<path class="jump" d="M 32,728 C 26,728 26,712 32,712" fill="none" stroke="black"/><circle cx="168" cy="384" r="6" class="opendot" fill="white" stroke="black"/>
<circle cx="168" cy="624" r="6" class="opendot" fill="white" stroke="black"/>
<g class="text">
<text x="44" y="52">Pledge</text>
<text x="164" y="52">Registrar-</text>
<text x="276" y="52">Domain</text>
<text x="412" y="52">Domain</text>
<text x="508" y="52">Vendor</text>
<text x="144" y="68">Agent</text>
<text x="288" y="68">Registrar</text>
<text x="396" y="68">CA</text>
<text x="512" y="68">Service</text>
<text x="156" y="84">(RegAgt)</text>
<text x="280" y="84">(JRC)</text>
<text x="508" y="84">(MASA)</text>
<text x="492" y="116">Internet</text>
<text x="92" y="132">discover</text>
<text x="92" y="148">pledge</text>
<text x="60" y="164">mDNS</text>
<text x="104" y="164">query</text>
<text x="40" y="244">(1)</text>
<text x="88" y="244">trigger</text>
<text x="136" y="244">PVR</text>
<text x="180" y="244">(tPVR)</text>
<text x="224" y="244">and</text>
<text x="256" y="244">PER</text>
<text x="300" y="244">(tPER)</text>
<text x="372" y="244">generation</text>
<text x="428" y="244">on</text>
<text x="468" y="244">pledge</text>
<text x="76" y="260">opt.</text>
<text x="112" y="260">TLS</text>
<text x="108" y="276">tPVR</text>
<text x="104" y="292">PVR</text>
<text x="108" y="324">tPER</text>
<text x="104" y="340">PER</text>
<text x="32" y="356">~</text>
<text x="168" y="356">~</text>
<text x="312" y="356">~</text>
<text x="432" y="356">~</text>
<text x="536" y="356">~</text>
<text x="40" y="388">(2)</text>
<text x="88" y="388">provide</text>
<text x="136" y="388">PVR</text>
<text x="160" y="388">t</text>
<text x="236" y="388">infrastructure</text>
<text x="240" y="404">TLS</text>
<text x="312" y="404">|</text>
<text x="276" y="420">[Reg-Agt</text>
<text x="368" y="420">authenticated</text>
<text x="264" y="436">and</text>
<text x="332" y="436">authorized?]</text>
<text x="232" y="452">PVR</text>
<text x="312" y="452">|</text>
<text x="276" y="468">[Reg-Agt</text>
<text x="364" y="468">authorized?]</text>
<text x="272" y="484">[accept</text>
<text x="340" y="484">device?]</text>
<text x="276" y="500">[contact</text>
<text x="344" y="500">vendor]</text>
<text x="432" y="516">RVR</text>
<text x="436" y="532">[extract</text>
<text x="512" y="532">DomainID]</text>
<text x="432" y="548">[update</text>
<text x="488" y="548">audit</text>
<text x="532" y="548">log]</text>
<text x="432" y="564">Voucher</text>
<text x="240" y="580">Voucher</text>
<text x="40" y="628">(2)</text>
<text x="88" y="628">provide</text>
<text x="136" y="628">PER</text>
<text x="160" y="628">t</text>
<text x="236" y="628">infrastructure</text>
<text x="240" y="644">PER</text>
<text x="368" y="660">CSR</text>
<text x="372" y="676">Cert</text>
<text x="240" y="692">Enroll-Resp</text>
<text x="44" y="724">2)</text>
<text x="80" y="724">query</text>
<text x="136" y="724">cACerts</text>
<text x="188" y="724">from</text>
<text x="268" y="724">infrastructure</text>
<text x="180" y="740">--</text>
<text x="236" y="740">cACert-Req</text>
<text x="256" y="756">cACert-Resp--</text>
<text x="32" y="772">~</text>
<text x="168" y="772">~</text>
<text x="312" y="772">~</text>
<text x="432" y="772">~</text>
<text x="536" y="772">~</text>
<text x="40" y="804">(3)</text>
<text x="88" y="804">provide</text>
<text x="152" y="804">voucher</text>
<text x="200" y="804">and</text>
<text x="264" y="804">certificate</text>
<text x="328" y="804">and</text>
<text x="376" y="804">collect</text>
<text x="436" y="804">status</text>
<text x="484" y="804">info</text>
<text x="76" y="820">opt.</text>
<text x="112" y="820">TLS</text>
<text x="104" y="836">Voucher</text>
<text x="104" y="852">vStatus</text>
<text x="104" y="868">cACerts</text>
<text x="112" y="884">Enroll-Resp--</text>
<text x="96" y="900">eStatus</text>
<text x="32" y="916">~</text>
<text x="168" y="916">~</text>
<text x="312" y="916">~</text>
<text x="432" y="916">~</text>
<text x="536" y="916">~</text>
<text x="40" y="948">(4)</text>
<text x="88" y="948">provide</text>
<text x="152" y="948">voucher</text>
<text x="212" y="948">status</text>
<text x="256" y="948">and</text>
<text x="300" y="948">enroll</text>
<text x="356" y="948">status</text>
<text x="396" y="948">to</text>
<text x="448" y="948">registrar</text>
<text x="248" y="964">TLS</text>
<text x="248" y="980">vStatus</text>
<text x="360" y="996">req</text>
<text x="404" y="996">device</text>
<text x="456" y="996">audit</text>
<text x="496" y="996">log</text>
<text x="388" y="1012">device</text>
<text x="440" y="1012">audit</text>
<text x="480" y="1012">log</text>
<text x="288" y="1028">[verify</text>
<text x="344" y="1028">audit</text>
<text x="388" y="1028">log]</text>
<text x="240" y="1060">eStatus</text>
</g>
</svg>
</artwork><artwork  type="ascii-art" align="left"><![CDATA[
+--------+   +-----------+   +-----------+    +--------+  +---------+
| Pledge |   | Registrar-|   | Domain    |    | Domain |  | Vendor  |
|        |   | Agent     |   | Registrar |    | CA     |  | Service |
|        |   | (RegAgt)  |   |  (JRC)    |    |        |  | (MASA)  |
+--------+   +-----------+   +-----------+    +--------+  +---------+
   |                |                 |              |   Internet |
   |   discover     |                 |              |            |
   |    pledge      |                 |              |            |
   | mDNS query     |                 |              |            |
   |<---------------|                 |              |            |
   |--------------->|                 |              |            |
   |                |                 |              |            |

   (1) trigger PVR (tPVR) and PER (tPER) generation on pledge
   |<--opt. TLS --->|                 |              |            |
   |<----- tPVR ----|                 |              |            |
   |------ PVR ---->|                 |              |            |
   |                |                 |              |            |
   |<----- tPER ----|                 |              |            |
   |------ PER ---->|                 |              |            |
   ~                ~                 ~              ~            ~

   (2) provide PVR to infrastructure
   |                |<----- TLS ----->|              |            |
   |                |         [Reg-Agt authenticated |            |
   |                |          and authorized?]      |            |
   |                |----- PVR ------>|              |            |
   |                |         [Reg-Agt authorized?]  |            |
   |                |         [accept device?]       |            |
   |                |         [contact vendor]       |            |
   |                |                 |------------ RVR --------->|
   |                |                 |           [extract DomainID]
   |                |                 |           [update audit log]
   |                |                 |<--------- Voucher --------|
   |                |<--- Voucher ----|              |            |
   |                |                 |              |            |

   (2) provide PER to infrastructure
   |                |------ PER ----->|              |            |
   |                |                 |---- CSR ---->|            |
   |                |                 |<--- Cert ----|            |
   |                |<--Enroll-Resp---|              |            |
   |                |                 |              |            |
   (2) query cACerts from infrastructure
   |                |-- cACert-Req -->|              |            |
   |                |<-- cACert-Resp--|              |            |
   ~                ~                 ~              ~            ~

   (3) provide voucher and certificate and collect status info
   |<--opt. TLS --->|                 |              |            |
   |<--- Voucher ---|                 |              |            |
   |---- vStatus -->|                 |              |            |
   |<--- cACerts ---|                 |              |            |
   |<--Enroll-Resp--|                 |              |            |
   |--- eStatus --->|                 |              |            |
   ~                ~                 ~              ~            ~

   (4) provide voucher status and enroll status to registrar
   |                |<------ TLS ---->|              |            |
   |                |----  vStatus -->|              |            |
   |                |                 |--- req device audit log-->|
   |                |                 |<---- device audit log ----|
   |                |           [verify audit log]
   |                |                 |              |            |
   |                |---- eStatus --->|              |            |
   |                |                 |              |            |
]]></artwork></artset></figure>

<t>The following sub sections split the interactions shown in <xref target="exchangesfig_uc2_all"/> between the different components into:</t>

<t><list style="numbers">
  <t><xref target="exchanges_uc2_1"/> describes the request object acquisition by the Registrar-Agent from pledge.</t>
  <t><xref target="exchanges_uc2_2"/> describes the request object processing initiated by the Registrar-Agent to the registrar and also the interaction of the registrar with the MASA and the domain CA including the response object processing by these entities.</t>
  <t><xref target="exchanges_uc2_3"/> describes the supply of response objects between the Registrar-Agent and the pledge including the status information.</t>
  <t><xref target="exchanges_uc2_5"/> describes the general status handling and addresses corresponding exchanges between the Registrar-Agent and the registrar.</t>
</list></t>

<section anchor="exchanges_uc2_1"><name>Request Objects Acquisition by Registrar-Agent from Pledge</name>

<t>The following description assumes that the Registrar-Agent has already discovered the pledge.
This may be done as described in <xref target="discovery_uc2_ppa"/> and <xref target="exchangesfig_uc2_all"/> based on DNS-SD or similar.</t>

<t>The focus is on the exchange of signature-wrapped objects using endpoints defined for the pledge in <xref target="pledge_ep"/>.</t>

<t>Preconditions:</t>

<t><list style="symbols">
  <t>Pledge: possesses IDevID</t>
  <t>Registrar-Agent:
  <list style="symbols">
      <t>possesses own credentials (EE (RegAgt) certificate and corresponding private key) for the registrar domain.</t>
      <t><bcp14>MAY</bcp14> possess the IDevID CA certificate of the pledge vendor/manufacturer to validate IDevID certificate on returned PVR or in case of TLS usage for pledge communication.
The distribution of IDevID CA certificates to the Registrar-Agent is out of scope of this document and may be done by a manual configuration.
In addition, the Registrar-Agent <bcp14>SHOULD</bcp14> know the product-serial-number(s) of the pledge(s) to be bootstrapped.
The Registrar-Agent <bcp14>MAY</bcp14> be provided with the product-serial-number(s) in different ways:
      <list style="symbols">
          <t>configured, e.g., as a list of pledges to be bootstrapped via QR code scanning</t>
          <t>discovered by using standard approaches like DNS-SD with mDNS as described in <xref target="discovery_uc2_ppa"/></t>
          <t>discovered by using a manufacturer specific approach, e.g., RF beacons.
If the product-serial-number(s) are not known in advance, the Registrar-Agent cannot perform a distinct triggering of pledges but and triggers  all pledges discovered .</t>
        </list></t>
    </list>
The Registrar-Agent <bcp14>SHOULD</bcp14> have synchronized time.</t>
  <t>Registrar (same as in BRSKI): possesses/trusts IDevID CA certificate and has own registrar EE credentials.</t>
</list></t>

<figure title="Request collection (Registrar-Agent - pledge)" anchor="exchangesfig_uc2_1"><artset><artwork  type="svg" align="left"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="352" width="520" viewBox="0 0 520 352" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
<path d="M 8,32 L 8,96" fill="none" stroke="black"/>
<path d="M 40,104 L 40,336" fill="none" stroke="black"/>
<path d="M 80,32 L 80,96" fill="none" stroke="black"/>
<path d="M 320,32 L 320,96" fill="none" stroke="black"/>
<path d="M 368,104 L 368,336" fill="none" stroke="black"/>
<path d="M 416,32 L 416,96" fill="none" stroke="black"/>
<path d="M 8,32 L 80,32" fill="none" stroke="black"/>
<path d="M 320,32 L 416,32" fill="none" stroke="black"/>
<path d="M 8,96 L 80,96" fill="none" stroke="black"/>
<path d="M 320,96 L 416,96" fill="none" stroke="black"/>
<path d="M 48,144 L 64,144" fill="none" stroke="black"/>
<path d="M 48,176 L 72,176" fill="none" stroke="black"/>
<path d="M 336,176 L 360,176" fill="none" stroke="black"/>
<path d="M 48,240 L 80,240" fill="none" stroke="black"/>
<path d="M 280,240 L 360,240" fill="none" stroke="black"/>
<path d="M 48,272 L 88,272" fill="none" stroke="black"/>
<path d="M 320,272 L 360,272" fill="none" stroke="black"/>
<path d="M 48,320 L 88,320" fill="none" stroke="black"/>
<path d="M 312,320 L 360,320" fill="none" stroke="black"/>
<polygon class="arrowhead" points="368,320 356,314.4 356,325.6" fill="black" transform="rotate(0,360,320)"/>
<polygon class="arrowhead" points="368,240 356,234.4 356,245.6" fill="black" transform="rotate(0,360,240)"/>
<polygon class="arrowhead" points="56,272 44,266.4 44,277.6" fill="black" transform="rotate(180,48,272)"/>
<polygon class="arrowhead" points="56,176 44,170.4 44,181.6" fill="black" transform="rotate(180,48,176)"/>
<polygon class="arrowhead" points="56,144 44,138.4 44,149.6" fill="black" transform="rotate(180,48,144)"/>
<g class="text">
<text x="44" y="52">Pledge</text>
<text x="372" y="52">Registrar-</text>
<text x="352" y="68">Agent</text>
<text x="364" y="84">(RegAgt)</text>
<text x="400" y="116">-create</text>
<text x="448" y="132">agent-signed-data</text>
<text x="108" y="148">optional</text>
<text x="184" y="148">establish</text>
<text x="240" y="148">TLS</text>
<text x="300" y="148">connection</text>
<text x="356" y="148">--</text>
<text x="112" y="180">trigger</text>
<text x="172" y="180">pledge</text>
<text x="264" y="180">voucher-request</text>
<text x="204" y="196">-agent-provided-proximity-registrar-cert</text>
<text x="116" y="212">-agent-signed-data</text>
<text x="116" y="244">pledge</text>
<text x="208" y="244">voucher-request</text>
<text x="396" y="244">-store</text>
<text x="440" y="244">PVR</text>
<text x="128" y="276">trigger</text>
<text x="236" y="276">enrollment-request</text>
<text x="128" y="292">(empty)</text>
<text x="124" y="324">pledge</text>
<text x="228" y="324">enrollment-request</text>
<text x="396" y="324">-store</text>
<text x="448" y="324">(PER)</text>
</g>
</svg>
</artwork><artwork  type="ascii-art" align="left"><![CDATA[
+--------+                             +-----------+
| Pledge |                             | Registrar-|
|        |                             | Agent     |
|        |                             | (RegAgt)  |
+--------+                             +-----------+
    |                                        |-create
    |                                        | agent-signed-data
    |<-- optional establish TLS connection --|
    |                                        |
    |<--- trigger pledge voucher-request ----|
    |-agent-provided-proximity-registrar-cert|
    |-agent-signed-data                      |
    |                                        |
    |----- pledge voucher-request ---------->|-store PVR
    |                                        |
    |<----- trigger enrollment-request ------|
    |       (empty)                          |
    |                                        |
    |------ pledge enrollment-request ------>|-store (PER)
    |                                        |
]]></artwork></artset></figure>

<t>TLS <bcp14>MAY</bcp14> be optionally used to provide privacy for the interaction between the Registrar-Agent and the pledge, see <xref target="pledgehttps"/>.</t>

<t>Note: The Registrar-Agent may trigger the pledge for the PVR or the PER or both. It is expected that this will be aligned with a service technician workflow, visiting and installing each pledge.</t>

<section anchor="pvrt"><name>Pledge-Voucher-Request (PVR) - Trigger</name>

<t>Triggering the pledge to create the PVR is done using HTTP POST on the defined pledge endpoint: "/.well-known/brski/tpvr"</t>

<t>The Registrar-Agent PVR trigger Content-Type header is: <spanx style="verb">application/json</spanx>.
Following parameters are provided in the JSON object:</t>

<t><list style="symbols">
  <t>agent-provided-proximity-registrar-cert: base64-encoded registrar EE TLS certificate.</t>
  <t>agent-signed-data: base64-encoded JSON-in-JWS object.</t>
</list></t>

<t>The trigger for the pledge to create a PVR is depicted in the following figure:</t>

<figure title="Representation of trigger to create PVR" anchor="pavrt"><artwork align="left"><![CDATA[
{
  "agent-provided-proximity-registrar-cert": "base64encodedvalue==",
  "agent-signed-data": "base64encodedvalue=="
}
]]></artwork></figure>

<t>Note that at the time of receiving the PVR trigger, the pledge cannot verify the registrar LDevID certificate and has no proof-of-possession of the corresponding private key for the certificate. The pledge therefore accepts the registrar LDevID certificate provisionally until it receives the voucher as described in <xref target="exchanges_uc2_3"/>.</t>

<t>The pledge will also be unable to verify the agent-signed-data itself as it does not possess the EE (RegAgt) certificate and the domain trust has not been established at this point of the communication.
Verification <bcp14>SHOULD</bcp14> be done, after the voucher has been received.</t>

<t>The agent-signed-data is a JSON-in-JWS object and contains the following information:</t>

<t>The header of the agent-signed-data contains:</t>

<t><list style="symbols">
  <t>alg: algorithm used for creating the object signature.</t>
  <t>kid: <bcp14>MUST</bcp14> contain the base64-encoded bytes of the SubjectKeyIdentifier (the "KeyIdentifier" OCTET STRING value) of the EE (RegAgt) certificate.</t>
</list></t>

<t>The body of the agent-signed-data contains an "ietf-voucher-request:agent-signed-data" element (defined in <xref target="I-D.ietf-anima-rfc8366bis"/>):</t>

<t><list style="symbols">
  <t>created-on: <bcp14>MUST</bcp14> contain the creation date and time in yang:date-and-time format.</t>
  <t>serial-number: <bcp14>MUST</bcp14> contain the product-serial-number as type string as defined in <xref target="RFC8995"/>, section 2.3.1.
The serial-number corresponds with the product-serial-number contained in the X520SerialNumber field of the IDevID certificate of the pledge.</t>
</list></t>

<figure title="Representation of agent-signed-data in General JWS Serialization syntax" anchor="asd"><artwork align="left"><![CDATA[
# The agent-signed-data in General JWS Serialization syntax
{
  "payload": "BASE64URL(ietf-voucher-request-prm:agent-signed-data)",
  "signatures": [
    {
      "protected": "BASE64URL(UTF8(JWS Protected Header))",
      "signature": BASE64URL(JWS Signature)
    }
  ]
}

# Example: Decoded payload representation in JSON syntax of
  "ietf-voucher-request-prm:agent-signed-data"

"ietf-voucher-request-prm:agent-signed-data": {
  "created-on": "2021-04-16T00:00:01.000Z",
  "serial-number": "callee4711"
}

# Example: Decoded "JWS Protected Header" representation
  in JSON syntax
{
  "alg": "ES256",
  "kid": "base64encodedvalue=="
}
]]></artwork></figure>

</section>
<section anchor="pvrr"><name>Pledge-Voucher-Request (PVR) - Response</name>

<t>Upon receiving the voucher-request trigger, the pledge <bcp14>SHALL</bcp14> construct the body of the PVR as defined in <xref target="RFC8995"/>.
It will contain additional information provided by the Registrar-Agent as specified in the following.
This PVR becomes a JSON-in-JWS object as defined in <xref target="I-D.ietf-anima-jws-voucher"/>.
If the pledge is unable to construct the PVR it <bcp14>SHOULD</bcp14> respond with a HTTP error code to the Registrar-Agent to indicate that it is not able to create the PVR.</t>

<t>The following client error responses <bcp14>MAY</bcp14> be used:</t>

<t><list style="symbols">
  <t>400 Bad Request: if the pledge detected an error in the format of the request, e.g. missing field, wrong data types, etc. or if the request is not valid JSON even though the PVR media type was set to <spanx style="verb">application/json</spanx>.</t>
  <t>403 Forbidden: if the pledge detected that one or more security parameters from the trigger message to create the PVR were not valid, e.g., the LDevID (Reg) certificate.</t>
</list></t>

<t>The header of the PVR <bcp14>SHALL</bcp14> contain the following parameters as defined in <xref target="RFC7515"/> to support JWS signing of the object:</t>

<t><list style="symbols">
  <t>alg: algorithm used for creating the object signature.</t>
  <t>x5c: contains the base64-encoded pledge IDevID certificate.
It <bcp14>MAY</bcp14> optionally contain the certificate chain for this certificate. If the certificate chain is not included it <bcp14>MUST</bcp14> be available at the registrar for verification of the IDevID certificate.</t>
</list></t>

<t>The payload of the PVR <bcp14>MUST</bcp14> contain the following parameters as part of the ietf-voucher-request-prm:voucher as defined in <xref target="RFC8995"/>:</t>

<t><list style="symbols">
  <t>created-on: <bcp14>SHALL</bcp14> contain the current date and time in yang:date-and-time format.
If the pledge does not have synchronized time, it <bcp14>SHALL</bcp14> use the created-on time from the agent-signed-data, received in the trigger to create a PVR.</t>
  <t>nonce: <bcp14>SHALL</bcp14> contain a cryptographically strong pseudo-random number.</t>
  <t>serial-number: <bcp14>SHALL</bcp14> contain the pledge product-serial-number as X520SerialNumber.</t>
  <t>assertion: <bcp14>SHALL</bcp14> contain the requested voucher assertion "agent-proximity" (different value as in RFC 8995)..</t>
</list></t>

<t>The ietf-voucher-request:voucher is extended with additional parameters:</t>

<t><list style="symbols">
  <t>agent-provided-proximity-registrar-cert: <bcp14>MUST</bcp14> be included and contains the base64-encoded registrar LDevID certificate (provided as PVR trigger parameter by the Registrar-Agent).</t>
  <t>agent-signed-data: <bcp14>MUST</bcp14> contain the base64-encoded agent-signed-data (as defined in <xref target="asd"/>) and provided as a PVR trigger parameter by the Registrar-Agent.</t>
</list></t>

<t>The enhancements of the YANG module for the ietf-voucher-request with these new leaves are defined in <xref target="I-D.ietf-anima-rfc8366bis"/>.</t>

<t>The PVR is signed using the pledge's IDevID credential contained as x5c parameter of the JOSE header.</t>

<figure title="Representation of PVR" anchor="pvr"><artwork align="left"><![CDATA[
# The PVR in General JWS Serialization syntax
{
  "payload": "BASE64URL(ietf-voucher-request-prm:voucher)",
  "signatures": [
    {
      "protected": "BASE64URL(UTF8(JWS Protected Header))",
      "signature": BASE64URL(JWS Signature)
    }
  ]
}

# Example: Decoded Payload "ietf-voucher-request-prm:voucher"
  representation in JSON syntax
"ietf-voucher-request-prm:voucher": {
   "created-on": "2021-04-16T00:00:02.000Z",
   "nonce": "eDs++/FuDHGUnRxN3E14CQ==",
   "serial-number": "callee4711",
   "assertion": "agent-proximity",
   "agent-provided-proximity-registrar-cert": "base64encodedvalue==",
   "agent-signed-data": "base64encodedvalue=="
}

# Example: Decoded "JWS Protected Header" representation
  in JSON syntax
{
    "alg": "ES256",
    "x5c": [
      "base64encodedvalue==",
      "base64encodedvalue=="
    ],
    "typ": "voucher-jws+json"
}
]]></artwork></figure>

<t>The PVR Media-Type is defined in <xref target="I-D.ietf-anima-jws-voucher"/> as <spanx style="verb">application/voucher-jws+json</spanx>.</t>

<t>The pledge <bcp14>MUST</bcp14> include this Media-Type header field indicating the included media type for the PVR.
The PVR is included by the registrar in its RCR as described in <xref target="exchanges_uc2_2"/>.</t>

</section>
<section anchor="pledge-enrollment-request-per-trigger"><name>Pledge-Enrollment-Request (PER) - Trigger</name>

<t>Once the Registrar-Agent has received the PVR it can trigger the pledge to generate a PER.
As in BRSKI the PER contains a PKCS#10, but additionally signed using the pledge's IDevID.
Note, as the initial enrollment aims to request a generic certificate, no certificate attributes are provided to the pledge.</t>

<t>Triggering the pledge to create the enrollment-request is done using HTTP POST on the defined pledge endpoint: "/.well-known/brski/tper"</t>

<t>The Registrar-Agent PER trigger Content-Type header is: <spanx style="verb">application/json</spanx> with an empty body by default.
Note that using HTTP POST allows for an empty body, but also to provide additional data, like CSR attributes or information about the enroll type "enroll-generic-cert" or "re-enroll-generic-cert".
The "enroll-generic-cert" case is shown in <xref target="raer"/>.</t>

<figure title="Example of trigger to create a PER" anchor="raer"><artwork align="left"><![CDATA[
{
  "enroll-type" : "enroll-generic-cert"
}
]]></artwork></figure>

<t>This document specifies the request of a generic certificate with no CSR attributes provided to the pledge.
If specific attributes in the certificate are required, they have to be inserted by the issuing RA/CA.
How the HTTP POST can be used to provide CSR attributes is out of scope for this specification.</t>

</section>
<section anchor="PER-response"><name>Pledge-Enrollment-Request (PER) - Response</name>

<t>In the following the enrollment is described as initial enrollment with an empty HTTP POST body.</t>

<t>Upon receiving the PER  trigger, the pledge <bcp14>SHALL</bcp14> construct the PER as authenticated self-contained object.
The CSR already assures POP of the private key corresponding to the contained public key.
In addition, based on the PER signature using the IDevID, POI is provided.
Here, a JOSE object is being created in which the body utilizes the YANG module ietf-ztp-types with the grouping for csr-grouping for the CSR as defined in <xref target="I-D.ietf-netconf-sztp-csr"/>.</t>

<t>Depending on the capability of the pledge, it constructs the pledge enrollment-request (PER) as plain PKCS#10.
Note, the focus in this use case is placed on PKCS#10 as PKCS#10 can be transmitted in different enrollment protocols in the infrastructure like EST, CMP, CMS, and SCEP.
If the pledge has already implemented an enrollment protocol, it may leverage that functionality for the creation of the CSR.
Note, <xref target="I-D.ietf-netconf-sztp-csr"/> also allows for inclusion of certification requests in different formats used by CMP or CMC.</t>

<t>The pledge <bcp14>MUST</bcp14> construct the PER as PKCS#10.
In BRSKI-PRM it <bcp14>MUST</bcp14> sign it additionally with its IDevID credentials to provide proof-of-identity bound to the PKCS#10 as described below.</t>

<t>If the pledge is unable to construct the PER it <bcp14>SHOULD</bcp14> respond with a HTTP 4xx/5xx error code to the Registrar-Agent to indicate that it is not able to create the PER.</t>

<t>The following 4xx client error codes <bcp14>MAY</bcp14> be used:</t>

<t><list style="symbols">
  <t>400 Bad Request: if the pledge detected an error in the format of the request or detected invalid JSON even though the PER media type was set to <spanx style="verb">application/json</spanx>.</t>
  <t>403 Forbidden: if the pledge detected that one or more security parameters (if provided) from the trigger message to create the PER are not valid.</t>
  <t>406 Not Acceptable: if the request's Accept header indicates a type that is unknown or unsupported. For example, a type other than <spanx style="verb">application/jose+json</spanx>.</t>
  <t>415 Unsupported Media Type: if the request's Content-Type header indicates a type that is unknown or unsupported. For example, a type other than 'application/json'.</t>
</list></t>

<t>A successful enrollment will result in a generic LDevID certificate for the pledge in the new domain, which can be used to request further (application specific) LDevID certificates if necessary for operation.
The Registrar-Agent <bcp14>SHALL</bcp14> use the endpoints specified in this document.</t>

<t><xref target="I-D.ietf-netconf-sztp-csr"/> considers PKCS#10 but also CMP and CMC as certification request format.
Note that the wrapping of the PER signature is only necessary for plain PKCS#10 as other request formats like CMP and CMS support the signature wrapping as part of their own certificate request format.</t>

<t>The Registrar-Agent enrollment-request Content-Type header for a signature-wrapped PKCS#10 is: <spanx style="verb">application/jose+json</spanx></t>

<t>The header of the pledge enrollment-request <bcp14>SHALL</bcp14> contain the following parameter as defined in <xref target="RFC7515"/>:</t>

<t><list style="symbols">
  <t>alg: algorithm used for creating the object signature.</t>
  <t>x5c: contains the base64-encoded pledge IDevID certificate.
It <bcp14>MAY</bcp14> optionally contain the certificate chain for this certificate. If the certificate chain is not included it <bcp14>MUST</bcp14> be available at the registrar for verification of the IDevID certificate.
The body of the pledge enrollment-request <bcp14>SHOULD</bcp14> contain a P10 parameter (for PKCS#10) as defined for ietf-ztp-types:p10-csr in <xref target="I-D.ietf-netconf-sztp-csr"/>:</t>
  <t>P10: contains the base64-encoded PKCS#10 of the pledge.</t>
</list></t>

<t>The JOSE object is signed using the pledge's IDevID credential, which corresponds to the certificate signaled in the JOSE header.</t>

<t>While BRSKI-PRM targets the initial enrollment, re-enrollment <bcp14>SHOULD</bcp14> be supported as described in a similar way as for enrollment in this document, if no other re-enrollment mechanism is supported.
Note that in this case the current LDevID credential is used instead of the IDevID credential to create the signature of the PKCS#10 request.</t>

<figure title="Representation of PER" anchor="per"><artwork align="left"><![CDATA[
# The PER in General JWS Serialization syntax
{
  "payload": "BASE64URL(ietf-ztp-types)",
  "signatures": [
    {
      "protected": "BASE64URL(UTF8(JWS Protected Header))",
      "signature": BASE64URL(JWS Signature)
    }
  ]
}

# Example: Decoded Payload "ietf-ztp-types" Representation
  in JSON Syntax
"ietf-ztp-types": {
  "p10-csr": "base64encodedvalue=="
}

# Example: Decoded "JWS Protected Header" Representation
  in JSON Syntax
{
  "alg": "ES256",
  "x5c": [
    "base64encodedvalue==",
    "base64encodedvalue=="
  ],
  "crit":["created-on"],
  "created-on": "2022-09-13T00:00:02.000Z"
}
]]></artwork></figure>

<t>With the collected PVR and PER, the Registrar-Agent starts the interaction with the domain registrar.</t>

<t>The new protected header field "created-on" is introduced to reflect freshness of the PER.
The field is marked critical "crit" to ensure that it must be understood and validated by the receiver (here the domain registrar) according to section 4.1.11 of <xref target="RFC7515"/>.
It allows the registrar to verify the timely correlation between the PER and previously exchanged messages, i.e., created-on of PER &gt;= created-on of PVR &gt;= created-on of PVR trigger.
The registrar <bcp14>MAY</bcp14> consider to ignore any but the newest PER from the same pledge in the case the registrar has at any point in time more than one pending PER from the pledge.</t>

<t>As the Registrar-Agent is intended to facilitate communication between the pledge and the domain registrar, a collection of requests from more than one pledge is possible.
This allows bulk bootstrapping of several pledges using the same connection between the Registrar-Agent and the domain registrar.</t>

</section>
</section>
<section anchor="exchanges_uc2_2"><name>Request Object Handling initiated by the Registrar-Agent on Registrar, MASA and Domain CA</name>

<t>The BRSKI-PRM bootstrapping exchanges between Registrar-Agent and domain registrar resemble the BRSKI exchanges between pledge and domain registrar (pledge-initiator-mode) with some deviations.</t>

<t>Preconditions:</t>

<t><list style="symbols">
  <t>Registrar-Agent: possesses its own credentials (EE (RegAgt) certificate and corresponding private key) of the domain.
In addition, it <bcp14>MAY</bcp14> possess the IDevID CA certificate of the pledge vendor/manufacturer to verify the pledge certificate in the received request messages.
It has the address of the domain registrar through configuration or by discovery, e.g., DNS-SD with mDNS.
The Registrar-Agent has acquired one or more PVR and PER objects.</t>
  <t>Registrar (same as in BRSKI): possesses the IDevID CA certificate of the pledge vendor/manufacturer and its own registrar EE credentials of the domain.</t>
  <t>MASA (same as in BRSKI): possesses its own vendor/manufacturer credentials (voucher signing key and certificate, TLS server certificate and private key) related to pledges IDevID and <bcp14>MAY</bcp14> possess the site-specific domain CA certificate.</t>
</list></t>

<figure title="Request processing between Registrar-Agent and bootstrapping services" anchor="exchangesfig_uc2_2"><artset><artwork  type="svg" align="left"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="624" width="504" viewBox="0 0 504 624" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
<path d="M 8,32 L 8,96" fill="none" stroke="black"/>
<path d="M 40,144 L 40,608" fill="none" stroke="black"/>
<path d="M 104,32 L 104,96" fill="none" stroke="black"/>
<path d="M 152,32 L 152,96" fill="none" stroke="black"/>
<path d="M 200,104 L 200,176" fill="none" stroke="black"/>
<path d="M 200,224 L 200,256" fill="none" stroke="black"/>
<path d="M 200,320 L 200,608" fill="none" stroke="black"/>
<path d="M 248,32 L 248,96" fill="none" stroke="black"/>
<path d="M 312,32 L 312,96" fill="none" stroke="black"/>
<path d="M 352,104 L 352,288" fill="none" stroke="black"/>
<path d="M 352,416 L 352,608" fill="none" stroke="black"/>
<path d="M 384,32 L 384,96" fill="none" stroke="black"/>
<path d="M 416,32 L 416,96" fill="none" stroke="black"/>
<path d="M 456,104 L 456,352" fill="none" stroke="black"/>
<path d="M 456,400 L 456,608" fill="none" stroke="black"/>
<path d="M 496,32 L 496,96" fill="none" stroke="black"/>
<path d="M 8,32 L 104,32" fill="none" stroke="black"/>
<path d="M 152,32 L 248,32" fill="none" stroke="black"/>
<path d="M 312,32 L 384,32" fill="none" stroke="black"/>
<path d="M 416,32 L 496,32" fill="none" stroke="black"/>
<path d="M 8,96 L 104,96" fill="none" stroke="black"/>
<path d="M 152,96 L 248,96" fill="none" stroke="black"/>
<path d="M 312,96 L 384,96" fill="none" stroke="black"/>
<path d="M 416,96 L 496,96" fill="none" stroke="black"/>
<path d="M 48,176 L 88,176" fill="none" stroke="black"/>
<path d="M 144,176 L 192,176" fill="none" stroke="black"/>
<path d="M 48,240 L 64,240" fill="none" stroke="black"/>
<path d="M 176,240 L 192,240" fill="none" stroke="black"/>
<path d="M 208,320 L 304,320" fill="none" stroke="black"/>
<path d="M 360,320 L 448,320" fill="none" stroke="black"/>
<path d="M 208,336 L 272,336" fill="none" stroke="black"/>
<path d="M 384,336 L 448,336" fill="none" stroke="black"/>
<path d="M 208,400 L 288,400" fill="none" stroke="black"/>
<path d="M 368,400 L 448,400" fill="none" stroke="black"/>
<path d="M 48,416 L 80,416" fill="none" stroke="black"/>
<path d="M 160,416 L 192,416" fill="none" stroke="black"/>
<path d="M 48,448 L 64,448" fill="none" stroke="black"/>
<path d="M 168,448 L 192,448" fill="none" stroke="black"/>
<path d="M 208,480 L 248,480" fill="none" stroke="black"/>
<path d="M 304,480 L 344,480" fill="none" stroke="black"/>
<path d="M 208,496 L 224,496" fill="none" stroke="black"/>
<path d="M 328,496 L 344,496" fill="none" stroke="black"/>
<path d="M 208,528 L 224,528" fill="none" stroke="black"/>
<path d="M 328,528 L 344,528" fill="none" stroke="black"/>
<path d="M 48,544 L 64,544" fill="none" stroke="black"/>
<path d="M 176,544 L 192,544" fill="none" stroke="black"/>
<path d="M 48,576 L 64,576" fill="none" stroke="black"/>
<path d="M 176,576 L 192,576" fill="none" stroke="black"/>
<path d="M 48,592 L 64,592" fill="none" stroke="black"/>
<path d="M 176,592 L 192,592" fill="none" stroke="black"/>
<polygon class="arrowhead" points="456,336 444,330.4 444,341.6" fill="black" transform="rotate(0,448,336)"/>
<polygon class="arrowhead" points="456,320 444,314.4 444,325.6" fill="black" transform="rotate(0,448,320)"/>
<polygon class="arrowhead" points="352,496 340,490.4 340,501.6" fill="black" transform="rotate(0,344,496)"/>
<polygon class="arrowhead" points="352,480 340,474.4 340,485.6" fill="black" transform="rotate(0,344,480)"/>
<polygon class="arrowhead" points="216,528 204,522.4 204,533.6" fill="black" transform="rotate(180,208,528)"/>
<polygon class="arrowhead" points="216,480 204,474.4 204,485.6" fill="black" transform="rotate(180,208,480)"/>
<polygon class="arrowhead" points="216,400 204,394.4 204,405.6" fill="black" transform="rotate(180,208,400)"/>
<polygon class="arrowhead" points="200,576 188,570.4 188,581.6" fill="black" transform="rotate(0,192,576)"/>
<polygon class="arrowhead" points="200,448 188,442.4 188,453.6" fill="black" transform="rotate(0,192,448)"/>
<polygon class="arrowhead" points="200,240 188,234.4 188,245.6" fill="black" transform="rotate(0,192,240)"/>
<polygon class="arrowhead" points="200,176 188,170.4 188,181.6" fill="black" transform="rotate(0,192,176)"/>
<polygon class="arrowhead" points="56,592 44,586.4 44,597.6" fill="black" transform="rotate(180,48,592)"/>
<polygon class="arrowhead" points="56,544 44,538.4 44,549.6" fill="black" transform="rotate(180,48,544)"/>
<polygon class="arrowhead" points="56,416 44,410.4 44,421.6" fill="black" transform="rotate(180,48,416)"/>
<polygon class="arrowhead" points="56,176 44,170.4 44,181.6" fill="black" transform="rotate(180,48,176)"/>
<g class="text">
<text x="60" y="52">Registrar-</text>
<text x="188" y="52">Domain</text>
<text x="348" y="52">Domain</text>
<text x="452" y="52">Vendor</text>
<text x="40" y="68">Agent</text>
<text x="200" y="68">Registrar</text>
<text x="332" y="68">CA</text>
<text x="456" y="68">Service</text>
<text x="52" y="84">(RegAgt)</text>
<text x="192" y="84">(JRC)</text>
<text x="452" y="84">(MASA)</text>
<text x="40" y="116">|</text>
<text x="412" y="116">Internet</text>
<text x="36" y="132">[voucher</text>
<text x="80" y="132">+</text>
<text x="136" y="132">enrollment]</text>
<text x="20" y="148">[PVR</text>
<text x="64" y="148">PER</text>
<text x="120" y="148">available</text>
<text x="168" y="148">]</text>
<text x="116" y="180">mTLS</text>
<text x="164" y="196">[Reg-Agt</text>
<text x="256" y="196">authenticated</text>
<text x="152" y="212">and</text>
<text x="220" y="212">authorized?]</text>
<text x="120" y="244">Voucher-Req</text>
<text x="120" y="260">(PVR)</text>
<text x="164" y="276">[Reg-Agt</text>
<text x="252" y="276">authorized?]</text>
<text x="160" y="292">[accept</text>
<text x="228" y="292">device?]</text>
<text x="164" y="308">[contact</text>
<text x="232" y="308">vendor]</text>
<text x="332" y="324">mTLS</text>
<text x="328" y="340">Voucher-Req</text>
<text x="328" y="356">(RVR)</text>
<text x="388" y="372">[extract</text>
<text x="464" y="372">DomainID]</text>
<text x="384" y="388">[update</text>
<text x="440" y="388">audit</text>
<text x="484" y="388">log]</text>
<text x="328" y="404">Voucher</text>
<text x="120" y="420">Voucher</text>
<text x="116" y="452">Enroll-Req</text>
<text x="112" y="468">(PER)</text>
<text x="276" y="484">mTLS</text>
<text x="276" y="500">Enroll-Req</text>
<text x="264" y="516">(RER)</text>
<text x="280" y="532">Enroll-Resp</text>
<text x="120" y="548">Enroll-Resp</text>
<text x="120" y="580">caCerts-Req</text>
<text x="120" y="596">caCerts-Res</text>
</g>
</svg>
</artwork><artwork  type="ascii-art" align="left"><![CDATA[
+-----------+     +-----------+       +--------+   +---------+
| Registrar-|     | Domain    |       | Domain |   | Vendor  |
| Agent     |     | Registrar |       | CA     |   | Service |
| (RegAgt)  |     |  (JRC)    |       |        |   | (MASA)  |
+-----------+     +-----------+       +--------+   +---------+
    |                   |                  |   Internet |
[voucher + enrollment]  |                  |            |
[PVR, PER available ]   |                  |            |
    |                   |                  |            |
    |<----- mTLS ------>|                  |            |
    |           [Reg-Agt authenticated     |            |
    |            and authorized?]          |            |
    |                   |                  |            |
    |--- Voucher-Req -->|                  |            |
    |       (PVR)       |                  |            |
    |           [Reg-Agt authorized?]      |            |
    |           [accept device?]           |            |
    |           [contact vendor]                        |
    |                   |------------- mTLS ----------->|
    |                   |--------- Voucher-Req -------->|
    |                   |             (RVR)             |
    |                   |                   [extract DomainID]
    |                   |                   [update audit log]
    |                   |<---------- Voucher -----------|
    |<---- Voucher -----|                  |            |
    |                   |                  |            |
    |--- Enroll-Req --->|                  |            |
    |      (PER)        |                  |            |
    |                   |<----- mTLS ----->|            |
    |                   |--- Enroll-Req -->|            |
    |                   |     (RER)        |            |
    |                   |<-- Enroll-Resp---|            |
    |<-- Enroll-Resp ---|                  |            |
    |                   |                  |            |
    |--- caCerts-Req -->|                  |            |
    |<-- caCerts-Res ---|                  |            |
    |                   |                  |            |
]]></artwork></artset></figure>

<t>The Registrar-Agent establishes a TLS connection to the registrar.
As already stated in <xref target="RFC8995"/>, the use of TLS 1.3 (or newer) is encouraged.
TLS 1.2 or newer is <bcp14>REQUIRED</bcp14> on the Registrar-Agent side.
TLS 1.3 (or newer) <bcp14>SHOULD</bcp14> be available on the registrar, but TLS 1.2 <bcp14>MAY</bcp14> be used.
TLS 1.3 (or newer) <bcp14>SHOULD</bcp14> be available on the MASA, but TLS 1.2 <bcp14>MAY</bcp14> be used.</t>

<section anchor="connection-establishment-registrar-agent-to-registrar"><name>Connection Establishment (Registrar-Agent to Registrar)</name>

<t>In contrast to BRSKI <xref target="RFC8995"/> TLS client authentication to the registrar is achieved by using Registrar-Agent EE credentials instead of pledge IDevID credentials.
Consequently BRSKI (pledge-initiator-mode) is distinguishable from BRSKI-PRM (pledge-responder-mode) by the registrar.
The registrar <bcp14>SHOULD</bcp14> verify that the Registrar-Agent is authorized to establish a connection to the registrar based on the TLS client authentication.
If the connection from Registrar-Agent to registrar is established, the authorization <bcp14>SHOULD</bcp14> be verified again based on agent-signed-data contained in the PVR.
This ensures that the pledge has been triggered by an authorized Registrar-Agent.</t>

<t>With BRSKI-PRM, the pledge generates PVR and PER as JSON-in-JWS objects and the Registrar-Agent forwards them to the registrar.
In <xref target="RFC8995"/>, the pledge generates PVR as CMS-signed JSON and PER as PKCS#10 or PKCS#7 according to <xref target="RFC7030"/> and inherited by <xref target="RFC8995"/>.</t>

<t>For BRSKI-PRM, the Registrar-Agent sends the PVR by HTTP POST to the same registrar endpoint as introduced by BRSKI: "/.well-
known/brski/requestvoucher", but with a Content-Type header field for JSON-in-JWS"</t>

<t>The Content-Type header field for JSON-in-JWS PVR is: <spanx style="verb">application/voucher-jws+json</spanx> (see <xref target="pvr"/> for the content definition), as defined in <xref target="I-D.ietf-anima-jws-voucher"/>.</t>

<t>The Registrar-Agent sets the Accept field in the request-header indicating the acceptable Content-Type for the voucher-response.
The voucher-response Content-Type header field is set to <spanx style="verb">application/voucher-jws+json</spanx> as defined in <xref target="I-D.ietf-anima-jws-voucher"/>.</t>

</section>
<section anchor="pvr-proc-reg"><name>Pledge-Voucher-Request (PVR) Processing by Registrar</name>

<t>After receiving the PVR from Registrar-Agent, the registrar <bcp14>SHALL</bcp14> perform the verification as defined in section 5.3 of <xref target="RFC8995"/>.
In addition, the registrar <bcp14>SHALL</bcp14> verify the following parameters from the PVR:</t>

<t><list style="symbols">
  <t>agent-provided-proximity-registrar-cert: <bcp14>MUST</bcp14> contain registrar's own registrar LDevID certificate to ensure the registrar in proximity of the Registrar-Agent is the desired registrar for this PVR.</t>
  <t>agent-signed-data: The registrar <bcp14>MUST</bcp14> verify that the Registrar-Agent provided data has been signed with the private key corresponding to the EE (RegAgt) certificate indicated in the "kid" JOSE header parameter.
The registrar <bcp14>MUST</bcp14> verify that the LDevID(ReAgt) certificate, corresponding to the signature, is still valid.
If the certificate is already expired, the registrar <bcp14>SHALL</bcp14> reject the request.
Validity of used signing certificates at the time of signing the agent-signed-data is necessary to avoid that a rogue Registrar-Agent generates agent-signed-data objects to onboard arbitrary pledges at a later point in time, see also <xref target="sec_cons_reg-agt"/>.
The registrar <bcp14>MUST</bcp14> fetch the EE (RegAgt) certificate, based on the provided SubjectKeyIdentifier (SKID) contained in the "kid" header parameter of the agent-signed-data, and perform this verification.
This requires, that the registrar has access to the EE (RegAgt) certificate data (including intermediate CA certificates if existent) based on the SKID.
Note, the registrar may have stored the EE (RegAgt) certificate if used during TLS establishment between Registrar-Agent and registrar or it may be provided via a repository.</t>
</list></t>

<t>If the registrar is unable to validate the PVR it <bcp14>SHOULD</bcp14> respond with a HTTP 4xx/5xx error code to the Registrar-Agent.</t>

<t>The following 4xx client error codes <bcp14>SHOULD</bcp14> be used:</t>

<t><list style="symbols">
  <t>403 Forbidden: if the registrar detected that one or more security related parameters are not valid.</t>
  <t>404 Not Found status code if the pledge provided information could not be used with automated allowance, as described in section 5.3 of <xref target="RFC8995"/>.</t>
  <t>406 Not Acceptable: if the Content-Type indicated by the Accept header is unknown or unsupported.</t>
</list></t>

<t>If the validation succeeds, the registrar performs pledge authorization according to <xref target="RFC8995"/>, Section 5.3 followed by obtaining a voucher from the pledge's MASA according to <xref target="RFC8995"/>, Section 5.4 with the modifications described below in <xref target="rvr-proc"/>.</t>

</section>
<section anchor="rvr-proc"><name>Registrar-Voucher-Request (RVR) Processing (Registrar to MASA)</name>

<t>If the MASA address/URI is learned from the <xref target="RFC8995"/> Section 2.3 IDevID MASA URI extension, then the MASA on that URI <bcp14>MUST</bcp14> support the procedures defined in this document if the PVR used JSON-JWS encoding.
If the MASA is only configured on the registrar, then a registrar supporting BRKSI-PRM and other voucher encoding formats (such as those in <xref target="RFC8995"/>) <bcp14>SHOULD</bcp14> support per-message-format MASA address/URI configuration for the same IDevID trust anchor."</t>

<t>The registrar <bcp14>SHALL</bcp14> construct the payload of the RVR as defined in <xref target="RFC8995"/>, Section 5.5.
The RVR encoding <bcp14>SHALL</bcp14> be JSON-in-JWS as defined in <xref target="I-D.ietf-anima-jws-voucher"/>.</t>

<t>The header of the RVR <bcp14>SHALL</bcp14> contain the following parameter as defined for JWS <xref target="RFC7515"/>:</t>

<t><list style="symbols">
  <t>alg: algorithm used to create the object signature</t>
  <t>x5c: base64-encoded registrar LDevID certificate(s)
(It optionally contains the certificate chain for this certificate)</t>
</list></t>

<t>The payload of the RVR <bcp14>MUST</bcp14> contain the following parameter as part of the voucher-request as defined in <xref target="RFC8995"/>:</t>

<t><list style="symbols">
  <t>created-on: current date and time in yang:date-and-time format of RVR creation</t>
  <t>nonce: copied from the PVR</t>
  <t>serial-number: product-serial-number of pledge.
The registrar <bcp14>MUST</bcp14> verify that the IDevID certificate subject serialNumber of the pledge (X520SerialNumber) matches the serial-number value in the PVR.
In addition, it <bcp14>MUST</bcp14> be equal to the serial-number value contained in the agent-signed data of PVR.</t>
  <t>assertion: voucher assertion requested by the pledge (agent-proximity).
The registrar provides this information to assure successful verification of Registrar-Agent proximity based on the agent-signed-data.</t>
  <t>prior-signed-voucher-request: PVR as received from Registrar-Agent, see <xref target="pvrr"/></t>
</list></t>

<t>The RVR <bcp14>MUST</bcp14> be extended with the following parameter, when the assertion "agent-proximity" is requested, as defined in <xref target="I-D.ietf-anima-rfc8366bis"/>:</t>

<t><list style="symbols">
  <t>agent-sign-cert: EE (RegAgt) certificate or the EE (RegAgt) certificate including certificate chain.
In the context of this document it is a JSON array of base64encoded certificate information and handled in the same way as x5c header objects.
If only a single object is contained in the x5c it <bcp14>MUST</bcp14> be the base64-encoded EE (RegAgt) certificate.
If multiple certificates are included in the x5c, the first <bcp14>MUST</bcp14> be the base64-encoded EE (RegAgt) certificate.</t>
</list></t>

<t>The MASA uses this information for verification that the Registrar-Agent is in proximity to the registrar to state the corresponding assertion "agent-proximity".</t>

<t>The object is signed using the registrar LDevID credentials, which corresponds to the certificate referenced in the JOSE header.</t>

<figure title="Representation of RVR" anchor="rvr"><artwork align="left"><![CDATA[
# The RVR in General JWS Serialization syntax
{
  "payload": "BASE64URL(ietf-voucher-request-prm:voucher)",
  "signatures": [
    {
      "protected": "BASE64URL(UTF8(JWS Protected Header))",
      "signature": BASE64URL(JWS Signature)
    }
  ]
}

# Example: Decoded payload "ietf-voucher-request-prm:voucher"
  representation in JSON syntax
"ietf-voucher-request-prm:voucher": {
   "created-on": "2022-01-04T02:37:39.235Z",
   "nonce": "eDs++/FuDHGUnRxN3E14CQ==",
   "serial-number": "callee4711",
   "assertion": "agent-proximity",
   "prior-signed-voucher-request": "base64encodedvalue==",
   "agent-sign-cert": [
     "base64encodedvalue==",
     "base64encodedvalue==",
     "..."
   ]
}

# Example: Decoded "JWS Protected Header" representation
  in JSON syntax
{
  "alg": "ES256",
  "x5c": [
    "base64encodedvalue==",
    "base64encodedvalue=="
  ],
  "typ": "voucher-jws+json"
}
]]></artwork></figure>

<t>The registrar <bcp14>SHALL</bcp14> send the RVR to the MASA endpoint by HTTP POST: "/.well-known/brski/requestvoucher"</t>

<t>The RVR Content-Type header field is defined in <xref target="I-D.ietf-anima-jws-voucher"/> as: <spanx style="verb">application/voucher-jws+json</spanx></t>

<t>The registrar <bcp14>SHOULD</bcp14> set the Accept header of the RVR indicating the desired media type for the voucher-response.
The media type is <spanx style="verb">application/voucher-jws+json</spanx> as defined in <xref target="I-D.ietf-anima-jws-voucher"/>.</t>

<t>This document uses the JSON-in-JWS format throughout the definition of exchanges and in the examples.
Nevertheless, alternative encodings of the voucher as used in BRSKI <xref target="RFC8995"/> with JSON-in-CMS or CBOR-in-COSE_Sign <xref target="RFC8152"/> for constraint environments are possible as well.
The assumption is that a pledge typically supports a single encoding variant and creates the PVR in the supported format.
To ensure that the pledge is able to process the voucher, the registrar <bcp14>MUST</bcp14> use the media type for Accept header in the RVR based on the media type used for the PVR.</t>

<t>Once the MASA receives the RVR it <bcp14>SHALL</bcp14> perform the verification as described in Section 5.5 in <xref target="RFC8995"/>.</t>

<t>In addition, the following processing <bcp14>SHALL</bcp14> be performed for PVR contained in RVR "prior-signed-voucher-request" field:</t>

<t><list style="symbols">
  <t>agent-provided-proximity-registrar-cert: The MASA <bcp14>MAY</bcp14> verify that this field contains the registrar LDevID certificate.
If so, it <bcp14>MUST</bcp14> correspond to the registrar LDevID credentials used to sign the RVR.
Note: Correspond here relates to the case that a single registrar LDevID certificate is used or that different registrar LDevID certificates are used, which are issued by the same CA.</t>
  <t>agent-signed-data: The MASA <bcp14>MAY</bcp14> verify this data to issue "agent-proximity" assertion.
If so, the agent-signed-data <bcp14>MUST</bcp14> contain the pledge product-serial-number, contained in the "serial-number" field of the PVR (from "prior-signed-voucher-request" field) and also in "serial-number" field of the RVR.
The EE (RegAgt) certificate to be used for signature verification is identified by the "kid" parameter of the JOSE header.
If the assertion "agent-proximity" is requested, the RVR <bcp14>MUST</bcp14> contain the corresponding EE (RegAgt) certificate data in the "agent-sign-cert" field of the RVR.
It <bcp14>MUST</bcp14> be verified by the MASA to the same domain CA as the registrar LDevID certificate.
If the "agent-sign-cert" field is not set, the MASA <bcp14>MAY</bcp14> state a lower level assertion value, e.g.: "logged" or "verified".
Note: Sub-CA certificate(s) <bcp14>MUST</bcp14> also be carried by "agent-sign-cert", in case the EE (RegAgt) certificate is issued by a sub-CA and not the domain CA known to the MASA.
As the "agent-sign-cert" field is defined as array (x5c), it can handle multiple certificates.</t>
</list></t>

<t>If validation fails, the MASA <bcp14>SHOULD</bcp14> respond with an HTTP 4xx client error status code to the registrar.
The HTTP error status codes are kept the same as defined in Section 5.6 of <xref target="RFC8995"/> and comprise the codes: 403, 404, 406, and 415.</t>

</section>
<section anchor="exchanges_uc2_2_vc"><name>Voucher Issuance by MASA</name>

<t>The MASA creates a voucher with Media-Type of <spanx style="verb">application/voucher-jws+json</spanx> as defined in <xref target="I-D.ietf-anima-jws-voucher"/>.
If the MASA detects that the Accept header of the PVR does not match <spanx style="verb">application/voucher-jws+json</spanx> it <bcp14>SHOULD</bcp14> respond with the HTTP status code "406 Not Acceptable" as the pledge will not be able to parse the response.
The voucher is according to <xref target="I-D.ietf-anima-rfc8366bis"/> but uses the new assertion value specified <xref target="agt_prx"/>.</t>

<t><xref target="MASA-vr"/> shows an example of the contents of a voucher.</t>

<figure title="Representation of MASA issued voucher" anchor="MASA-vr"><artwork align="left"><![CDATA[
# The MASA issued voucher in General JWS Serialization syntax
{
  "payload": "BASE64URL(ietf-voucher:voucher)",
  "signatures": [
    {
      "protected": "BASE64URL(UTF8(JWS Protected Header))",
      "signature": BASE64URL(JWS Signature)
    }
  ]
}

# Example: Decoded payload "ietf-voucher:voucher" representation
  in JSON syntax
"ietf-voucher:voucher": {
  "assertion": "agent-proximity",
  "serial-number": "callee4711",
  "nonce": "base64encodedvalue==",
  "created-on": "2022-01-04T00:00:02.000Z",
  "pinned-domain-cert": "base64encodedvalue=="
}

# Example: Decoded "JWS Protected Header" representation
  in JSON syntax
{
  "alg": "ES256",
  "x5c": [
    "base64encodedvalue==",
    "base64encodedvalue=="
  ],
  "typ": "voucher-jws+json"
}
]]></artwork></figure>

<t>The pinned-domain certificate to be put into the voucher is determined by the MASA as described in section 5.5 of <xref target="RFC8995"/>.
The MASA returns the voucher-response (voucher) to the registrar.</t>

</section>
<section anchor="exchanges_uc2_2_vs"><name>MASA issued Voucher Processing by Registrar</name>

<t>After receiving the voucher the registrar <bcp14>SHOULD</bcp14> evaluate it for transparency and logging purposes as outlined in Section 5.6 of <xref target="RFC8995"/>.
The registrar <bcp14>MUST</bcp14> add an additional signature to the MASA provided voucher using its registrar EE credentials.</t>

<t>The signature is created by signing the original "JWS Payload" produced by MASA and the registrar added "JWS Protected Header" using the registrar EE credentials (see <xref target="RFC7515"/>, Section 5.2 point 8.
The x5c component of the "JWS Protected Header" <bcp14>MUST</bcp14> contain the registrar EE certificate as well as potential subordinate CA certificates up to (but not including) the pinned domain certificate.
The pinned domain certificate is already contained in the voucher payload ("pinned-domain-cert").</t>

<t>(For many installations, with a single registrar credential, the registrar credential is what is pinned)</t>

<t>In <xref target="RFC8995"/>, the Registrar proved possession of the it's credential when the TLS session was setup.
While the pledge could not, at the time, validate the certificate truly belonged the registrar, it did validate that the certificate it was provided was able to authenticate the TLS connection.</t>

<t>In the BRSKI-PRM mode, with the Registrar-Agent mediating all communication, the Pledge has not as yet been able to witness that the intended Registrar really does possess the relevant private key.
This second signature provides for the same level of assurance to the pledge, and that it matches the public key that the pledge received in the trigger for the PVR (see <xref target="pavrt"/>).</t>

<t>The registrar <bcp14>MUST</bcp14> use the same registrar EE credentials used for authentication in the TLS handshake to authenticate towards the Registrar-Agent.
This has some operational implications when the registrar may be part of a scalable framework as described in <xref section="1.3.1" sectionFormat="comma" target="I-D.richardson-anima-registrar-considerations"/>.</t>

<t>The second signature <bcp14>MUST</bcp14> either be done with the private key associated with the registrar EE certificate provided to the Registrar-Agent, or the use of a certificate chain is necessary.
This ensures that the same registrar EE certificate can be used to verify the signature as transmitted in the voucher-request as also transferred in the PVR in the "agent-provided-proximity-registrar-cert".</t>

<t><xref target="MASA-REG-vr"/> below provides an example of the voucher with two signatures.</t>

<figure title="Representation of MASA issued voucher with additional registrar signature" anchor="MASA-REG-vr"><artwork align="left"><![CDATA[
# The MASA issued voucher with additional registrar signature in
  General JWS Serialization syntax
{
  "payload": "BASE64URL(ietf-voucher:voucher)",
  "signatures": [
    {
      "protected": "BASE64URL(UTF8(JWS Protected Header (MASA)))",
      "signature": BASE64URL(JWS Signature)
    },
    {
      "protected": "BASE64URL(UTF8(JWS Protected Header (Reg)))",
      "signature": BASE64URL(JWS Signature)
    }
  ]
}

# Example: Decoded payload "ietf-voucher:voucher" representation in
  JSON syntax
"ietf-voucher:voucher": {
   "assertion": "agent-proximity",
   "serial-number": "callee4711",
   "nonce": "base64encodedvalue==",
   "created-on": "2022-01-04T00:00:02.000Z",
   "pinned-domain-cert": "base64encodedvalue=="
}

# Example: Decoded "JWS Protected Header (MASA)" representation
  in JSON syntax
{
  "alg": "ES256",
  "x5c": [
    "base64encodedvalue==",
    "base64encodedvalue=="
  ],
  "typ": "voucher-jws+json"
}

# Example: Decoded "JWS Protected Header (Reg)" representation
  in JSON syntax
{
  "alg": "ES256",
  "x5c": [
    "base64encodedvalue==",
    "base64encodedvalue=="
  ]
}
]]></artwork></figure>

<t>Depending on the security policy of the operator, this signature can also be interpreted by the pledge as explicit authorization of the registrar to install the contained trust anchor.
The registrar sends the voucher to the Registrar-Agent.</t>

</section>
<section anchor="exchanges_uc2_2_per"><name>Pledge-Enrollment-Request (PER) Processing (Registrar-Agent to Registrar)</name>

<t>After receiving the voucher, the Registrar-Agent sends the PER to the registrar in the same HTTP-over-TLS connection. Which is similar to the PER processing described in Section 5.2 of <xref target="RFC8995"/>.
In case the PER cannot be send in the same HTTP-over-TLS connection the Registrar-Agent may send the PER in a new HTTP-over-TLS connection. The registrar is able to correlate the PVR and the PER based on the signatures and the contained product-serial-number information.
Note, this also addresses situations in which a nonceless voucher is used and may be pre-provisioned to the pledge.
As specified in <xref target="PER-response"/> deviating from BRSKI the PER is not a raw PKCS#10.
As the Registrar-Agent is involved in the exchange, the PKCS#10 is wrapped in a JWS object by the pledge and signed with pledge's IDevID to ensure proof-of-identity as outlined in <xref target="per"/>.</t>

<t>EST <xref target="RFC7030"/> standard endpoints (/simpleenroll, /simplereenroll, /serverkeygen, /cacerts) on the registrar cannot be used for BRSKI-PRM.
This is caused by the utilization of signature wrapped-objects in BRSKI-PRM.
As EST requires to sent a raw PKCS#10 request to e.g., "/.well-known/est/simpleenroll" endpoint, this document makes an enhancement by utilizing EST but with the exception to transport a signature wrapped PKCS#10 request.
Therefore a new endpoint for BRSKI-PRM on the registrar is defined as "/.well-known/brski/requestenroll"</t>

<t>The Content-Type header of PER is: <spanx style="verb">application/jose+json</spanx>.</t>

<t>This is a deviation from the Content-Type header values used in <xref target="RFC7030"/> and results in additional processing at the domain registrar (as EST server).
Note, the registrar is already aware that the bootstrapping is performed in a pledge-responder-mode due to the use of the EE (RegAgt) certificate for TLS and the provided PVR as JSON-in-JWS object.</t>

<t><list style="symbols">
  <t>If the registrar receives a PER with Content-Type header: <spanx style="verb">application/jose+json</spanx>, it <bcp14>MUST</bcp14> verify the wrapping signature using the certificate indicated in the JOSE header.</t>
  <t>The registrar verifies that the pledge's certificate (here IDevID), carried in "x5c" header field, is accepted to join the domain after successful validation of the PVR.</t>
  <t>If both succeed, the registrar utilizes the PKCS#10 request contained in the JWS object body as "P10" parameter of "ietf-sztp-csr:csr" for further processing of the enrollment-request with the corresponding domain CA.
It creates a registrar enrollment-request (RER) by utilizing the protocol expected by the domain CA.
The domain registrar may either directly forward the provided PKCS#10 request to the CA or provide additional information about attributes to be included by the CA into the requested LDevID certificate.
The approach of sending this information to the CA depends on the utilized certificate management protocol between the RA and the CA and is out of scope for this document.</t>
</list></t>

<t>Note while BRSKI-PRM targets the initial enrollment, re-enrollment may be supported in a similar way with the exception that the current LDevID certificate is used instead of the IDevID certificate to verify the wrapping signature of the PKCS#10 request (see also <xref target="PER-response"/>).</t>

<t>The Registrar-Agent <bcp14>SHALL</bcp14> send the PER to the registrar by HTTP POST to the endpoint: "/.well-known/brski/requestenroll"</t>

<t>The registrar <bcp14>SHOULD</bcp14> respond with an HTTP 200 OK in the success case or fail with HTTP 4xx/5xx status codes as defined by the HTTP standard.</t>

<t>A successful interaction with the domain CA will result in a pledge LDevID certificate, which is then forwarded by the registrar to the Registrar-Agent using the Content-Type header: <spanx style="verb">application/pkcs7-mime</spanx>.</t>

</section>
<section anchor="exchanges_uc2_2_wca"><name>Request Wrapped-CA-certificate(s) (Registrar-Agent to Registrar)</name>

<t>As the pledge will verify it own certificate LDevID certificate when received, it also needs the corresponding CA certificates.
This is done in EST <xref target="RFC7030"/> using the "/.well-known/est/cacerts" endpoint, which provides the CA certificates over a TLS protected connection.
BRSKI-PRM requires a signature wrapped CA certificate object, to avoid that the pledge can be provided with arbitrary CA certificates in an authorized way.
The registrar signed CA certificate object will allow the pledge to verify the authorization to install the received CA certificate(s).
As the CA certificate(s) are provided to the pledge after the voucher, the pledge has the required information (the domain certificate) to verify the wrapped CA certificate object.</t>

<t>To support Registrar-Agents requesting a signature wrapped CA certificate(s) object, a new endpoint for BRSKI-PRM is defined on the registrar: "/.well-known/brski/wrappedcacerts"</t>

<t>The Registrar-Agent <bcp14>SHALL</bcp14> requests the EST CA trust anchor database information (in form of CA certificates) by HTTP GET.</t>

<t>The Content-Type header of the response <bcp14>SHALL</bcp14> be: <spanx style="verb">application/jose+json</spanx>.</t>

<t>This is a deviation from the Content-Type header values used in EST <xref target="RFC7030"/> and results in additional processing at the domain registrar (as EST server).
The additional processing is to sign the CA certificate(s) information using the registrar LDevID credentials.
This results in a signed CA certificate(s) object (JSON-in-JWS), the CA certificates are provided as base64 encoded "x5bag" (see definition in <xref target="RFC9360"/>) in the JWS payload.</t>

<figure title="Representation of CA certificate(s) data with registrar signature" anchor="PCAC"><artwork align="left"><![CDATA[
# The CA certificates data with registrar signature in General JWS Serialization syntax
{
  "payload": "BASE64URL(certs)",
  "signatures": [
    {
      "protected": "BASE64URL(UTF8(JWS Protected Header))",
      "signature": BASE64URL(JWS Signature)
    }
  ]
}

# Example: Decoded payload "certs" representation in JSON syntax
{
  "x5bag": [
    "base64encodedvalue==",
    "base64encodedvalue=="
  ]
}


# Example: Decoded "JWS Protected Header" representation
  in JSON syntax
{
  "alg": "ES256",
  "x5c": [
    "base64encodedvalue==",
    "base64encodedvalue=="
  ]
}
]]></artwork></figure>

</section>
</section>
<section anchor="exchanges_uc2_3"><name>Response Objects supplied by the Registrar-Agent to the Pledge</name>

<t>It is assumed that the Registrar-Agent already obtained the bootstrapping response objects from the domain registrar and can supply them to the pledge:</t>

<t><list style="symbols">
  <t>voucher-response - Voucher (from MASA via Registrar)</t>
  <t>wrapped-CA-certificate(s)-response - CA certificates</t>
  <t>enrollment-response - LDevID (Pledge) certificate (from CA via registrar)</t>
</list></t>

<t>To deliver these response objects, the Registrar-Agent will re-connect to the pledge.
To contact the pledge, it may either discover the pledge as described in <xref target="discovery_uc2_ppa"/> or use stored information from the first contact with the pledge.</t>

<t>Preconditions in addition to <xref target="exchanges_uc2_2"/>:</t>

<t><list style="symbols">
  <t>Registrar-Agent: obtained voucher and LDevID certificate and optionally IDevID CA certificates.
The IDevID CA certificate is necessary, when the connection between the Registrar-Agent and the pledge is established using TLS to enable the Registrar-Agent to validate the pledges' IDevID certificate during the TLS handshake as described in <xref target="exchanges_uc2_1"/>.</t>
</list></t>

<figure title="Responses and status handling between pledge and Registrar-Agent" anchor="exchangesfig_uc2_3"><artset><artwork  type="svg" align="left"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="368" width="528" viewBox="0 0 528 368" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
<path d="M 8,32 L 8,96" fill="none" stroke="black"/>
<path d="M 40,104 L 40,336" fill="none" stroke="black"/>
<path d="M 80,32 L 80,96" fill="none" stroke="black"/>
<path d="M 280,32 L 280,96" fill="none" stroke="black"/>
<path d="M 328,144 L 328,336" fill="none" stroke="black"/>
<path d="M 376,32 L 376,96" fill="none" stroke="black"/>
<path d="M 8,32 L 80,32" fill="none" stroke="black"/>
<path d="M 280,32 L 376,32" fill="none" stroke="black"/>
<path d="M 8,96 L 80,96" fill="none" stroke="black"/>
<path d="M 280,96 L 376,96" fill="none" stroke="black"/>
<path d="M 48,160 L 88,160" fill="none" stroke="black"/>
<path d="M 296,160 L 320,160" fill="none" stroke="black"/>
<path d="M 48,192 L 104,192" fill="none" stroke="black"/>
<path d="M 240,192 L 320,192" fill="none" stroke="black"/>
<path d="M 48,224 L 112,224" fill="none" stroke="black"/>
<path d="M 248,224 L 320,224" fill="none" stroke="black"/>
<path d="M 48,256 L 72,256" fill="none" stroke="black"/>
<path d="M 296,256 L 320,256" fill="none" stroke="black"/>
<path d="M 48,288 L 72,288" fill="none" stroke="black"/>
<path d="M 304,288 L 320,288" fill="none" stroke="black"/>
<path d="M 48,320 L 112,320" fill="none" stroke="black"/>
<path d="M 240,320 L 320,320" fill="none" stroke="black"/>
<polygon class="arrowhead" points="328,320 316,314.4 316,325.6" fill="black" transform="rotate(0,320,320)"/>
<polygon class="arrowhead" points="328,224 316,218.4 316,229.6" fill="black" transform="rotate(0,320,224)"/>
<polygon class="arrowhead" points="56,288 44,282.4 44,293.6" fill="black" transform="rotate(180,48,288)"/>
<polygon class="arrowhead" points="56,256 44,250.4 44,261.6" fill="black" transform="rotate(180,48,256)"/>
<polygon class="arrowhead" points="56,192 44,186.4 44,197.6" fill="black" transform="rotate(180,48,192)"/>
<polygon class="arrowhead" points="56,160 44,154.4 44,165.6" fill="black" transform="rotate(180,48,160)"/>
<g class="text">
<text x="44" y="52">Pledge</text>
<text x="332" y="52">Registrar-</text>
<text x="312" y="68">Agent</text>
<text x="324" y="84">(RegAgt)</text>
<text x="284" y="116">[voucher</text>
<text x="336" y="116">and</text>
<text x="400" y="116">enrollment]</text>
<text x="292" y="132">[responses</text>
<text x="380" y="132">available]</text>
<text x="132" y="164">optional</text>
<text x="184" y="164">TLS</text>
<text x="244" y="164">connection</text>
<text x="140" y="196">supply</text>
<text x="200" y="196">voucher</text>
<text x="152" y="228">voucher</text>
<text x="212" y="228">status</text>
<text x="344" y="228">-</text>
<text x="376" y="228">store</text>
<text x="380" y="244">pledge</text>
<text x="440" y="244">voucher</text>
<text x="500" y="244">status</text>
<text x="108" y="260">supply</text>
<text x="168" y="260">CAcerts</text>
<text x="244" y="260">(optional)</text>
<text x="108" y="292">supply</text>
<text x="216" y="292">enrollment-response</text>
<text x="148" y="324">enroll</text>
<text x="204" y="324">status</text>
<text x="344" y="324">-</text>
<text x="376" y="324">store</text>
<text x="380" y="340">pledge</text>
<text x="436" y="340">enroll</text>
<text x="492" y="340">status</text>
</g>
</svg>
</artwork><artwork  type="ascii-art" align="left"><![CDATA[
+--------+                        +-----------+
| Pledge |                        | Registrar-|
|        |                        | Agent     |
|        |                        | (RegAgt)  |
+--------+                        +-----------+
    |                          [voucher and enrollment]
    |                          [responses available]
    |                                   |
    |<----- optional TLS connection ----|
    |                                   |
    |<------- supply voucher -----------|
    |                                   |
    |--------- voucher status --------->| - store
    |                                   |   pledge voucher status
    |<--- supply CAcerts (optional) ----|
    |                                   |
    |<--- supply enrollment-response ---|
    |                                   |
    |--------- enroll status ---------->| - store
    |                                   |   pledge enroll status

]]></artwork></artset></figure>

<t>The Registrar-Agent <bcp14>MAY</bcp14> optionally use TLS to protect the communication as outlined in <xref target="exchanges_uc2_1"/>.</t>

<t>The Registrar-Agent provides the information via distinct pledge endpoints as following.</t>

<section anchor="exchanges_uc2_3a"><name>Pledge: Voucher-Response Processing</name>

<t>The Registrar-Agent <bcp14>SHALL</bcp14> send the voucher-response to the pledge by HTTP POST to the endpoint: "/.well-known/brski/svr".</t>

<t>The Registrar-Agent voucher-response Content-Type header is <spanx style="verb">application/voucher-jws+json</spanx> and contains the voucher as provided by the MASA. An example is given in <xref target="MASA-vr"/> for a MASA  signed voucher and in <xref target="MASA-REG-vr"/> for the voucher with the additional signature of the registrar.</t>

<t>A nonceless voucher may be accepted as in <xref target="RFC8995"/> and may be allowed by a manufacture's pledge implementation.</t>

<t>To perform the validation of several signatures on the voucher object, the pledge <bcp14>SHALL</bcp14> perform the signature verification in the following order:</t>

<t><list style="numbers">
  <t>Verify MASA signature as described in Section 5.6.1 in <xref target="RFC8995"/>, against pre-installed manufacturer trust anchor (IDevID).</t>
  <t>Install trust anchor contained in the voucher ("pinned-domain-cert")  provisionally</t>
  <t>Validate the LDevID(Reg) certificate received in the agent-provided-proximity-registrar-cert in the pledge-voucher-request trigger request (in the field "agent-provided-proximity-registrar-cert")</t>
  <t>Verify registrar signature of the voucher similar as described in Section 5.6.1 in <xref target="RFC8995"/>, but take the registrar certificate instead of the MASA certificate for the verification</t>
</list></t>

<t>Step3 and step 4 have been introduced in BRSKI-PRM to enable verification of LDevID(Reg) certificate and also the proof-of-possession of the corresponding private key by the registrar, which is done in BRSKI based on the established TLS channel.
If all steps stated above have been performed successfully, the pledge <bcp14>SHALL</bcp14> terminate the "PROVISIONAL accept" state for the domain trust anchor and the registrar LDevID certificate.</t>

<t>If an error occurs during the verification and validation of the voucher, this <bcp14>SHALL</bcp14> be reported in the reason field of the pledge voucher status.</t>

</section>
<section anchor="exchanges_uc2_3b"><name>Pledge: Voucher Status Telemetry</name>

<t>After voucher verification and validation the pledge <bcp14>MUST</bcp14> reply with a status telemetry message as defined in Section 5.7 of <xref target="RFC8995"/>.
The pledge generates the voucher-status and provides it as signed JSON-in-JWS object in response to the Registrar-Agent.</t>

<t>The response has the Content-Type <spanx style="verb">application/jose+json</spanx> and is signed using the IDevID of the pledge as shown in <xref target="vstat"/>.
As the reason field is optional (see <xref target="RFC8995"/>), it <bcp14>MAY</bcp14> be omitted in case of success.</t>

<figure title="Representation of pledge voucher status telemetry" anchor="vstat"><artwork align="left"><![CDATA[
# The "pledge-voucher-status" telemetry in general JWS
  serialization syntax
{
  "payload": "BASE64URL(pledge-voucher-status)",
  "signatures": [
    {
      "protected": "BASE64URL(UTF8(JWS Protected Header))",
      "signature": BASE64URL(JWS Signature)
    }
  ]
}

# Example: Decoded payload "pledge-voucher-status" representation
  in JSON syntax for success case
{
  "version": 1,
  "status": true,
  "reason": "Voucher successfully processed",
  "reason-context": {
    "pvs-details": "JSON"
  }
}

# Example: Decoded payload "pledge-voucher-status" representation
  in JSON syntax for error case
{
  "version": 1,
  "status": false,
  "reason": "Failed to authenticate MASA certificate because
  it starts in the future (1/1/2023).",
  "reason-context": {
    "pvs-details": "Current date: 1/1/1970"
  }
}

# Example: Decoded "JWS Protected Header" representation
  in JSON syntax
{
  "alg": "ES256",
  "x5c": [
    "base64encodedvalue==",
    "base64encodedvalue=="
  ]
}
]]></artwork></figure>

<t>If the pledge did not did not provide voucher status telemetry information after processing the voucher, the Registrar-Agent <bcp14>MAY</bcp14> query the pledge status explicitly as described in <xref target="exchanges_uc2_5"/> and <bcp14>MAY</bcp14> resent the voucher depending on the Pledge status following the procedure described in <xref target="exchanges_uc2_3a"/>.</t>

</section>
<section anchor="exchanges_uc2_3c"><name>Pledge: Wrapped-CA-Certificate(s) Processing</name>

<t>The Registrar-Agent <bcp14>SHALL</bcp14> provide the set of CA certificates requested from the registrar to the pledge by HTTP POST to the endpoint: "/.well-known/brski/scac".</t>

<t>As the CA certificate provisioning is crucial from a security perspective, this provisioning <bcp14>SHOULD</bcp14> only be done, if the voucher-response has been successfully processed by pledge as reflected in the voucher status telemetry.</t>

<t>The CA certificates message has the Content-Type <spanx style="verb">application/jose+json</spanx> and is signed using the credential of the registrar as shown in <xref target="PCAC"/>.</t>

<t>The CA certificates are provided as base64 encoded "x5bag".
The pledge <bcp14>SHALL</bcp14> install the received CA certificates as trust anchor after successful verification of the registrar's signature.</t>

<t>The verification comprises the following steps the pledge <bcp14>MUST</bcp14> perform. Maintaining the order of versification steps as indicated allows to determine, which verification has already been passed:</t>

<t><list style="numbers">
  <t>Check content-type of the CA certificates message. If no Content-Type is contained in the HTTP header, the default Content-Type utilized in this document (JSON-in-JWS) is used. If the Content-Type of the response is in an unknown or unsupported format, the pledge <bcp14>SHOULD</bcp14> reply with a 415 Unsupported media type error code.</t>
  <t>Check the encoding of the payload. If the pledge detects errors in the encoding of the payload, it <bcp14>SHOULD</bcp14> reply with 400 Bad Request error code.</t>
  <t>Verify that the wrapped CA certificate object is signed using the registrar certificate against the pinned-domain certificate. This <bcp14>MAY</bcp14> be done by comparing the hash that is indicating the certificate used to sign the message is that of the pinned-domain certificate. If the validation against the pinned domain-certificate fails, the client <bcp14>SHOULD</bcp14> reply with a 401 Unauthorized error code. It signals that the authentication has failed and therefore the object was not accepted.</t>
  <t>Verify signature of the the received wrapped CA certificate object. If the validation of the signature fails, the pledge <bcp14>SHOULD</bcp14> reply with a 406 Not Acceptable. It signals that the object has not been accepted.</t>
  <t>If the received CA certificates are not self-signed, i.e., an intermediate CA certificate, verify them against an already installed trust anchor, as described in section 4.1.3 of <xref target="RFC7030"></xref>.</t>
</list></t>

</section>
<section anchor="pledge-enrollment-response-processing"><name>Pledge: Enrollment-Response Processing</name>

<t>The Registrar-Agent <bcp14>SHALL</bcp14> send the enroll-response to the pledge by HTTP POST to the endpoint: "/.well-known/brski/ser".</t>

<t>The Registrar-Agent enroll-response Content-Type header, when using EST <xref target="RFC7030"/> as enrollment protocol between the Registrar-Agent and the infrastructure is: <spanx style="verb">application/pkcs7-mime</spanx>.
Note: It only contains the LDevID certificate for the pledge, not the certificate chain.</t>

<t>Upon reception, the pledge <bcp14>SHALL</bcp14> verify the received LDevID certificate.
The pledge <bcp14>SHALL</bcp14> generate the enroll status and provide it in the response to the Registrar-Agent.
If the verification of the LDevID certificate succeeds, the status property <bcp14>SHALL</bcp14> be set to "status": true, otherwise to "status": false</t>

</section>
<section anchor="pledge-enrollment-status-telemetry"><name>Pledge: Enrollment-Status Telemetry</name>

<t>The pledge <bcp14>MUST</bcp14> reply with a status telemetry message as defined in Section 5.9.4 of <xref target="RFC8995"/>.
As for the other objects, the enroll-status is signed and results in a JSON-in-JWS object.
If the pledge verified the received LDevID certificate successfully it <bcp14>SHALL</bcp14> sign the response using its new LDevID credentials as shown in <xref target="estat"/>.
In the failure case, the pledge <bcp14>SHALL</bcp14> use the available IDevID credentials.
As the reason field is optional, it <bcp14>MAY</bcp14> be omitted in case of success.</t>

<t>The response has the Content-Type <spanx style="verb">application/jose+json</spanx>.</t>

<figure title="Representation of pledge enroll status telemetry" anchor="estat"><artwork align="left"><![CDATA[
# The "pledge-enroll-status" telemetry in General JWS Serialization
  syntax
{
  "payload": "BASE64URL(pledge-enroll-status)",
  "signatures": [
    {
      "protected": "BASE64URL(UTF8(JWS Protected Header))",
      "signature": BASE64URL(JWS Signature)
    }
  ]
}

# Example: Decoded payload "pledge-enroll-status" representation
  in JSON syntax for success case
{
  "version": 1,
  "status": true,
  "reason": "Enrollment response successfully processed",
  "reason-context": {
    "pes-details": "JSON"
  }
}

# Example: Decoded payload "pledge-voucher-status" representation
  in JSON syntax for error case
{
  "version": 1,
  "status": false,
  "reason": "Enrollment response could not be verified.",
  "reason-context": {
    "pes-details": "no matching trust anchor"
  }
}

# Example: Decoded "JWS Protected Header" representation
  in JSON syntax
{
  "alg": "ES256",
  "x5c": [
    "base64encodedvalue==",
    "base64encodedvalue=="
  ]
}
]]></artwork></figure>

<t>Once the Registrar-Agent has collected the information, it can connect to the registrar to provide it with the status responses.</t>

</section>
<section anchor="exchanges_uc2_4"><name>Telemetry Voucher Status and Enroll Status Handling (Registrar-Agent to Domain Registrar)</name>

<t>The following description requires that the Registrar-Agent has collected the status information from the pledge.
It <bcp14>SHALL</bcp14> provide the status information to the registrar for further processing.</t>

<t>Preconditions in addition to <xref target="exchanges_uc2_2"/>:</t>

<t><list style="symbols">
  <t>Registrar-Agent: obtained voucher status and enroll status from pledge.</t>
</list></t>

<figure title="Bootstrapping status handling" anchor="exchangesfig_uc2_4"><artset><artwork  type="svg" align="left"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="320" width="496" viewBox="0 0 496 320" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
<path d="M 8,32 L 8,96" fill="none" stroke="black"/>
<path d="M 40,160 L 40,304" fill="none" stroke="black"/>
<path d="M 104,32 L 104,96" fill="none" stroke="black"/>
<path d="M 176,32 L 176,96" fill="none" stroke="black"/>
<path d="M 224,104 L 224,240" fill="none" stroke="black"/>
<path d="M 224,272 L 224,304" fill="none" stroke="black"/>
<path d="M 272,32 L 272,96" fill="none" stroke="black"/>
<path d="M 304,32 L 304,96" fill="none" stroke="black"/>
<path d="M 344,104 L 344,208" fill="none" stroke="black"/>
<path d="M 344,272 L 344,304" fill="none" stroke="black"/>
<path d="M 376,32 L 376,96" fill="none" stroke="black"/>
<path d="M 408,32 L 408,96" fill="none" stroke="black"/>
<path d="M 448,104 L 448,240" fill="none" stroke="black"/>
<path d="M 448,272 L 448,304" fill="none" stroke="black"/>
<path d="M 488,32 L 488,96" fill="none" stroke="black"/>
<path d="M 8,32 L 104,32" fill="none" stroke="black"/>
<path d="M 176,32 L 272,32" fill="none" stroke="black"/>
<path d="M 304,32 L 376,32" fill="none" stroke="black"/>
<path d="M 408,32 L 488,32" fill="none" stroke="black"/>
<path d="M 8,96 L 104,96" fill="none" stroke="black"/>
<path d="M 176,96 L 272,96" fill="none" stroke="black"/>
<path d="M 304,96 L 376,96" fill="none" stroke="black"/>
<path d="M 408,96 L 488,96" fill="none" stroke="black"/>
<path d="M 48,176 L 104,176" fill="none" stroke="black"/>
<path d="M 160,176 L 216,176" fill="none" stroke="black"/>
<path d="M 48,208 L 64,208" fill="none" stroke="black"/>
<path d="M 200,208 L 216,208" fill="none" stroke="black"/>
<path d="M 232,224 L 248,224" fill="none" stroke="black"/>
<path d="M 424,224 L 440,224" fill="none" stroke="black"/>
<path d="M 232,240 L 264,240" fill="none" stroke="black"/>
<path d="M 416,240 L 440,240" fill="none" stroke="black"/>
<path d="M 48,288 L 64,288" fill="none" stroke="black"/>
<path d="M 192,288 L 216,288" fill="none" stroke="black"/>
<polygon class="arrowhead" points="448,224 436,218.4 436,229.6" fill="black" transform="rotate(0,440,224)"/>
<polygon class="arrowhead" points="240,240 228,234.4 228,245.6" fill="black" transform="rotate(180,232,240)"/>
<polygon class="arrowhead" points="224,288 212,282.4 212,293.6" fill="black" transform="rotate(0,216,288)"/>
<polygon class="arrowhead" points="224,208 212,202.4 212,213.6" fill="black" transform="rotate(0,216,208)"/>
<polygon class="arrowhead" points="224,176 212,170.4 212,181.6" fill="black" transform="rotate(0,216,176)"/>
<polygon class="arrowhead" points="56,176 44,170.4 44,181.6" fill="black" transform="rotate(180,48,176)"/>
<g class="text">
<text x="60" y="52">Registrar-</text>
<text x="212" y="52">Domain</text>
<text x="340" y="52">Domain</text>
<text x="444" y="52">Vendor</text>
<text x="40" y="68">Agent</text>
<text x="224" y="68">Registrar</text>
<text x="324" y="68">CA</text>
<text x="448" y="68">Service</text>
<text x="52" y="84">(RegAgt)</text>
<text x="216" y="84">(JRC)</text>
<text x="444" y="84">(MASA)</text>
<text x="40" y="116">|</text>
<text x="404" y="116">Internet</text>
<text x="36" y="132">[voucher</text>
<text x="80" y="132">+</text>
<text x="116" y="132">enroll</text>
<text x="152" y="132">]</text>
<text x="32" y="148">[status</text>
<text x="84" y="148">info</text>
<text x="148" y="148">available]</text>
<text x="132" y="180">mTLS</text>
<text x="104" y="212">Voucher</text>
<text x="164" y="212">Status</text>
<text x="300" y="228">req-device</text>
<text x="368" y="228">audit</text>
<text x="408" y="228">log</text>
<text x="300" y="244">device</text>
<text x="352" y="244">audit</text>
<text x="392" y="244">log</text>
<text x="184" y="260">[verify</text>
<text x="240" y="260">audit</text>
<text x="280" y="260">log</text>
<text x="304" y="260">]</text>
<text x="100" y="292">Enroll</text>
<text x="156" y="292">Status</text>
</g>
</svg>
</artwork><artwork  type="ascii-art" align="left"><![CDATA[
+-----------+        +-----------+   +--------+   +---------+
| Registrar-|        | Domain    |   | Domain |   | Vendor  |
| Agent     |        | Registrar |   | CA     |   | Service |
| (RegAgt)  |        |  (JRC)    |   |        |   | (MASA)  |
+-----------+        +-----------+   +--------+   +---------+
    |                      |              |   Internet |
[voucher + enroll ]        |              |            |
[status info available]    |              |            |
    |                      |              |            |
    |<------- mTLS ------->|              |            |
    |                      |              |            |
    |--- Voucher Status -->|              |            |
    |                      |--- req-device audit log-->|
    |                      |<---- device audit log ----|
    |              [verify audit log ]
    |                      |              |            |
    |--- Enroll Status --->|              |            |
    |                      |              |            |
]]></artwork></artset></figure>

<t>The Registrar-Agent <bcp14>MUST</bcp14> provide the collected pledge voucher status to the registrar.
This status indicates if the pledge could process the voucher successfully or not.</t>

<t>In case the TLS connection to the registrar is already closed, the Registrar-Agent opens a new TLS connection with the registrar as stated in <xref target="exchanges_uc2_2"/>.</t>

<t>The Registrar-Agent sends the pledge voucher status without modification to the registrar with an HTTP-over-TLS POST using the registrar endpoint "/.well-known/brski/voucher_status". The Content-Type header is kept as <spanx style="verb">application/jose+json</spanx> as described in <xref target="exchangesfig_uc2_3"/> and depicted in the example in <xref target="vstat"/>.</t>

<t>The registrar <bcp14>SHOULD</bcp14> log the transaction provided for a pledge via Registrar-Agent and include the identity of the Registrar-Agent in these logs. For log analysis the following may be considered:</t>

<t><list style="symbols">
  <t>The registrar knows the interacting Registrar-Agent from the authentication of the Registrar-Agent towards the registrar using LDevID (RegAgt) and can log it accordingly.</t>
  <t>The telemetry information from the pledge can be correlated to the voucher response provided from the registrar to the Registrar-Agent and further to the pledge.</t>
  <t>The telemetry information, when provided to the registrar is provided via the Registrar-Agent and can thus be correlated.</t>
</list></t>

<t>The registrar <bcp14>SHALL</bcp14> verify the signature of the pledge voucher status and validate that it belongs to an accepted device of the domain based on the contained "serial-number" in the IDevID certificate referenced in the header of the voucher status.</t>

<t>According to <xref target="RFC8995"/> Section 5.7, the registrar <bcp14>SHOULD</bcp14> respond with an HTTP 200 OK in the success case or fail with HTTP 4xx/5xx status codes as defined by the HTTP standard.
The Registrar-Agent may use the response to signal success / failure to the service technician operating the Registrar-Agent.
Within the server logs the server <bcp14>SHOULD</bcp14> capture this telemetry information.</t>

<t>The registrar <bcp14>SHOULD</bcp14> proceed with collecting and logging status information by requesting the MASA audit-log from the MASA service as described in Section 5.8 of <xref target="RFC8995"/>.</t>

<t>The Registrar-Agent <bcp14>MUST</bcp14> provide the pledge's enroll status to the registrar.
The status indicates the pledge could process the enroll-response (certificate) and holds the corresponding private key.</t>

<t>The Registrar-Agent sends the pledge enroll status without modification to the registrar with an HTTP-over-TLS POST using the registrar endpoint "/.well-known/brski/enrollstatus".
The Content-Type header is kept as <spanx style="verb">application/jose+json</spanx> as described in <xref target="exchangesfig_uc2_3"/> and depicted in the example in <xref target="estat"/>.</t>

<t>The registrar <bcp14>MUST</bcp14> verify the signature of the pledge enroll status.
Also, the registrar <bcp14>SHALL</bcp14> validate that the pledge is an accepted device of the domain based on the contained product-serial-number in the LDevID certificate referenced in the header of the enroll status.
The registrar <bcp14>SHOULD</bcp14> log this event.
In case the pledge enroll status indicates a failure, the pledge was unable to verify the received LDevID certificate and therefore signed the enroll status with its IDevID credential.
Note that the signature verification of the status information is an addition to the described handling in Section 5.9.4 of <xref target="RFC8995"/>, and is replacing the pledges TLS client authentication by DevID credentials in <xref target="RFC8995"></xref>.</t>

<t>According to <xref target="RFC8995"/> Section 5.9.4, the registrar <bcp14>SHOULD</bcp14> respond with an HTTP 200 OK in the success case or fail with HTTP 4xx/5xx status codes as defined by the HTTP standard.
Based on the failure case the registrar <bcp14>MAY</bcp14> decide that for security reasons the pledge is not allowed to reside in the domain. In this case the registrar <bcp14>MUST</bcp14> revoke the certificate.
An example case for the registrar revoking the issued LDevID for the pledge is when the pledge was not able to verify the received LDevID certificate and therefore did send a 406 (Not Acceptable) response.
In this case the registrar may revoke the LDevID certificate as the pledge did no accepted it for installation.</t>

<t>The Registrar-Agent may use the response to signal success / failure to the service technician operating the Registrar-Agent.
Within the server log the registrar <bcp14>SHOULD</bcp14> capture this telemetry information.</t>

</section>
</section>
<section anchor="exchanges_uc2_5"><name>Request Pledge-Status by Registrar-Agent from Pledge</name>

<t>The following assumes that a Registrar-Agent may need to query the status of a pledge.
This information may be useful to solve errors, when the pledge was not able to connect to the target domain during the bootstrapping.
The pledge <bcp14>MAY</bcp14> provide a dedicated endpoint to accept status-requests.</t>

<t>Preconditions:</t>

<t><list style="symbols">
  <t>Registrar-Agent: possesses LDevID (RegAgt), may have a list of product-serial-number(s) of pledges to be queried and a list of corresponding manufacturer trust anchors to be able to verify signatures performed with the IDevID credential.</t>
  <t>Pledge: may already possess domain credentials and LDevID(Pledge), or may not possess one or both of these.</t>
</list></t>

<figure title="Pledge-status handling between Registrar-Agent and pledge" anchor="exchangesfig_uc2_5"><artset><artwork  type="svg" align="left"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="192" width="360" viewBox="0 0 360 192" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
<path d="M 8,32 L 8,96" fill="none" stroke="black"/>
<path d="M 40,104 L 40,176" fill="none" stroke="black"/>
<path d="M 80,32 L 80,96" fill="none" stroke="black"/>
<path d="M 256,32 L 256,96" fill="none" stroke="black"/>
<path d="M 304,104 L 304,176" fill="none" stroke="black"/>
<path d="M 352,32 L 352,96" fill="none" stroke="black"/>
<path d="M 8,32 L 80,32" fill="none" stroke="black"/>
<path d="M 256,32 L 352,32" fill="none" stroke="black"/>
<path d="M 8,96 L 80,96" fill="none" stroke="black"/>
<path d="M 256,96 L 352,96" fill="none" stroke="black"/>
<path d="M 48,128 L 72,128" fill="none" stroke="black"/>
<path d="M 264,128 L 296,128" fill="none" stroke="black"/>
<path d="M 48,160 L 72,160" fill="none" stroke="black"/>
<path d="M 272,160 L 296,160" fill="none" stroke="black"/>
<polygon class="arrowhead" points="304,160 292,154.4 292,165.6" fill="black" transform="rotate(0,296,160)"/>
<polygon class="arrowhead" points="56,128 44,122.4 44,133.6" fill="black" transform="rotate(180,48,128)"/>
<g class="text">
<text x="44" y="52">Pledge</text>
<text x="308" y="52">Registrar-</text>
<text x="288" y="68">Agent</text>
<text x="300" y="84">(RegAgt)</text>
<text x="136" y="132">pledge-status</text>
<text x="224" y="132">request</text>
<text x="136" y="164">pledge-status</text>
<text x="228" y="164">response</text>
</g>
</svg>
</artwork><artwork  type="ascii-art" align="left"><![CDATA[
+--------+                     +-----------+
| Pledge |                     | Registrar-|
|        |                     | Agent     |
|        |                     | (RegAgt)  |
+--------+                     +-----------+
    |                                |
    |<--- pledge-status request -----|
    |                                |
    |---- pledge-status response --->|
    |                                |
]]></artwork></artset></figure>

<section anchor="exchanges_uc2_5a"><name>Pledge-Status - Request (Registrar-Agent to Pledge)</name>

<t>The Registrar-Agent requests the pledge-status via HTTP POST on the defined pledge endpoint: "/.well-known/brski/qps"</t>

<t>The Registrar-Agent Content-Type header for the pledge-status request is: <spanx style="verb">application/jose+json</spanx>.
It contains information on the requested status-type, the time and date the request is created, and the product serial-number of the pledge contacted as shown in <xref target="stat_req_def"/>.
The pledge-status request is signed by Registrar-Agent using the private key corresponding to the EE (RegAgt) certificate.</t>

<t>The following Concise Data Definition Language (CDDL) <xref target="RFC8610"/> explains the structure of the format for the pledge-status request. It is defined following the status telemetry definitions in BRSKI <xref target="RFC8995"/>.
Consequently, format and semantics of pledge-status requests below are for version 1.
The version field is included to permit significant changes to the pledge-status request and response in the future.
A pledge or a Registrar-Agent that receives a pledge-status request with a version larger than it knows about <bcp14>SHOULD</bcp14> log the contents and alert a human.</t>

<figure title="CDDL for pledge-status request" anchor="stat_req_def"><artwork align="left"><![CDATA[
<CODE BEGINS>
  status-request = {
      "version": uint,
      "created-on": tdate ttime,
      "serial-number": text,
      "status-type": text
  }
<CODE ENDS>
]]></artwork></figure>

<t>The status-type defined for BRSKI-PRM is "bootstrap".
This indicates the pledge to provide current status information regarding the bootstrapping status (voucher processing and enrollment of the pledge into the new domain).
As the pledge-status request is defined generic, it may be used by other specifications to request further status information, e.g., for onboarding to get further information about enrollment of application specific LDevIDs or other parameters.
This is out of scope for this specification.</t>

<t><xref target="stat_req"/> below shows an example for querying pledge-status using status-type bootstrap.</t>

<figure title="Example of Registrar-Agent request of pledge-status using status-type bootstrap" anchor="stat_req"><artwork align="left"><![CDATA[
# The Registrar-Agent request of "pledge-status" in general JWS
  serialization syntax
{
  "payload": "BASE64URL(status-request)",
  "signatures": [
    {
      "protected": "BASE64URL(UTF8(JWS Protected Header))",
      "signature": BASE64URL(JWS Signature)
    }
  ]
}

# Example: Decoded payload "status-request" representation
  in JSON syntax
{
  "version": 1,
  "created-on": "2022-08-12T02:37:39.235Z",
  "serial-number": "pledge-callee4711",
  "status-type": "bootstrap"
}

# Example: Decoded "JWS Protected Header" representation
  in JSON syntax
{
  "alg": "ES256",
  "x5c": [
    "base64encodedvalue==",
    "base64encodedvalue=="
  ]
}
]]></artwork></figure>

</section>
<section anchor="exchanges_uc2_5b"><name>Pledge-Status - Response (Pledge - Registrar-Agent)</name>

<t>If the pledge receives the pledge-status request with status-type "bootstrap" it <bcp14>SHALL</bcp14> react with a status response message based on the telemetry information described in <xref target="exchanges_uc2_3"/>.</t>

<t>The pledge-status response Content-Type header is <spanx style="verb">application/jose+json</spanx>.</t>

<t>The following CDDL explains the structure of the format for the status response, which is:</t>

<figure title="CDDL for pledge-status response" anchor="stat_res_def"><artwork align="left"><![CDATA[
<CODE BEGINS>
  status-response = {
    "version": uint,
    "status":
      "factory-default" /
      "voucher-success" /
      "voucher-error" /
      "enroll-success" /
      "enroll-error" /
      "connect-success" /
      "connect-error",
    ?"reason" : text,
    ?"reason-context": { $$arbitrary-map }
  }
<CODE ENDS>
]]></artwork></figure>

<t>Different cases for pledge bootstrapping status may occur, which <bcp14>SHOULD</bcp14> be reflected using the status enumeration.
This document specifies the status values in the context of the bootstrapping process and credential application.
Other documents may enhance the above enumeration to reflect further status information.</t>

<t>The pledge-status response message is signed with IDevID or LDevID, depending on bootstrapping state of the pledge.</t>

<t><list style="symbols">
  <t>"factory-default": Pledge has not been bootstrapped.
Additional information may be provided in the reason or reason-context.
The pledge signs the response message using its IDevID(Pledge).</t>
  <t>"voucher-success": Pledge processed the voucher exchange successfully.
Additional information may be provided in the reason or reason-context.
The pledge signs the response message using its IDevID(Pledge).</t>
  <t>"voucher-error": Pledge voucher processing terminated with error.
Additional information may be provided in the reason or reason-context.
The pledge signs the response message using its IDevID(Pledge).</t>
  <t>"enroll-success": Pledge has processed the enrollment exchange successfully.
Additional information may be provided in the reason or reason-context.
The pledge signs the response message using its LDevID(Pledge).</t>
  <t>"enroll-error": Pledge enrollment-response processing terminated with error.
Additional information may be provided in the reason or reason-context.
The pledge signs the response message using its IDevID(Pledge).</t>
</list></t>

<t>The reason and the reason-context <bcp14>SHOULD</bcp14> contain the telemetry information as described in <xref target="exchanges_uc2_3"/>.</t>

<t>As the pledge is assumed to utilize its bootstrapped credentials (LDevID) in communication with other peers, additional status information is provided for the connectivity to other peers, which may be helpful in analyzing potential error cases.</t>

<t><list style="symbols">
  <t>"connect-success": Pledge could successfully establish a connection to another peer.
Additional information may be provided in the reason or reason-context.
The pledge signs the response message using its LDevID(Pledge).</t>
  <t>"connect-error": Pledge connection establishment terminated with error.
Additional information may be provided in the reason or reason-context.
The pledge signs the response message using its LDevID(Pledge).</t>
</list></t>

<t>The pledge-status responses are cumulative in the sense that connect-success implies enroll-success, which in turn implies voucher-success.</t>

<t><xref target="stat_res"/> provides an example for the bootstrapping-status information.</t>

<figure title="Example of pledge-status response" anchor="stat_res"><artwork align="left"><![CDATA[
# The pledge "status-response" in General JWS Serialization syntax
{
  "payload": "BASE64URL(status-response)",
  "signatures": [
    {
      "protected": "BASE64URL(UTF8(JWS Protected Header))",
      "signature": BASE64URL(JWS Signature)
    }
  ]
}

# Example: Decoded payload "status-response" representation
  in JSON syntax
{
  "version": 1,
  "status": "enroll-success",
  "reason-context": {
    "additional" : "JSON"
  }
}

# Example: Decoded "JWS Protected Header" representation
  in JSON syntax
{
  "alg": "ES256",
  "x5c": [
    "base64encodedvalue==",
    "base64encodedvalue=="
  ],
  "typ": "jose+json
}
]]></artwork></figure>

<t><list style="symbols">
  <t>In case "factory-default" the pledge does not possess the domain certificate resp. the domain trust-anchor.
It will not be able to verify the signature of the Registrar-Agent in the bootstrapping-status request.</t>
  <t>In cases "vouchered" and "enrolled" the pledge already possesses the domain certificate (has domain trust-anchor) and can therefore validate the signature of the Registrar-Agent.
If validation of the JWS signature fails, the pledge <bcp14>SHOULD</bcp14> respond with the HTTP 403 Forbidden status code.</t>
  <t>The HTTP 406 Not Acceptable status code <bcp14>SHOULD</bcp14> be used, if the Accept header in the request indicates an unknown or unsupported format.</t>
  <t>The HTTP 415 Unsupported Media Type status code <bcp14>SHOULD</bcp14> be used, if the Content-Type of the request is an unknown or unsupported format.</t>
  <t>The HTTP 400 Bad Request status code <bcp14>SHOULD</bcp14> be used, if the Accept/Content-Type headers are correct but nevertheless the status-request cannot be correctly parsed.</t>
</list></t>

<t>The pledge <bcp14>SHOULD</bcp14> by default only respond to requests from nodes it can authenticate (such as registrar
agent), once the pledge is enrolled with CA certificates and a matching domain certificate.</t>

</section>
</section>
</section>
<section anchor="artifacts"><name>Artifacts</name>

<section anchor="voucher-request-prm-yang"><name>Voucher-Request Artifact</name>

<t><xref target="I-D.ietf-anima-rfc8366bis"/> extends the voucher-request as defined in <xref target="RFC8995"/> to include additional fields necessary for handling bootstrapping in the pledge-responder-mode.
These additional fields are defined in <xref target="exchanges_uc2_1"/> as:</t>

<t><list style="symbols">
  <t>agent-signed-data to provide a JSON encoded artifact from the involved Registrar-Agent, which allows the registrar to verify the Registrar-Agent's involvement</t>
  <t>agent-provided-proximity-registrar-cert to provide the registrar certificate visible to the Registrar-Agent, comparable to the registrar-proximity-certificate used in <xref target="RFC8995"/></t>
  <t>agent-signing certificate to optionally provide the Registrar-Agent signing certificate.</t>
</list></t>

<t>Examples for the application of these fields in the context of a PVR are provided in <xref target="exchanges_uc2_2"/>.</t>

</section>
</section>
<section anchor="iana-con"><name>IANA Considerations</name>

<t>This document requires the following IANA actions.</t>

<section anchor="brski-well-known-registry"><name>BRSKI .well-known Registry</name>

<t>IANA is requested to enhance the Registry entitled: "BRSKI Well-Known URIs" with the following endpoints:</t>

<figure><artwork align="left"><![CDATA[
 URI                Description                       Reference
 tpvr               create pledge voucher-request     [THISRFC]
 tper               create pledge enrollment-request  [THISRFC]
 svr                supply voucher-response           [THISRFC]
 ser                supply enrollment-response        [THISRFC]
 scac               supply CA certificates to pledge  [THISRFC]
 qps                query pledge status               [THISRFC]
 requestenroll      supply PER to registrar           [THISRFC]
 wrappedcacerts     request wrapped CA certificates   [THISRFC]

]]></artwork></figure>

</section>
<section anchor="dns-service-names"><name>DNS Service Names</name>

<t>IANA has registered the following service names:</t>

<t><strong>Service Name:</strong> brski-pledge<br />
<strong>Transport Protocol(s):</strong> tcp<br />
<strong>Assignee:</strong> IESG <eref target="mailto:iesg@ietf.org">iesg@ietf.org</eref><br />
<strong>Contact:</strong> IESG <eref target="mailto:iesg@ietf.org">iesg@ietf.org</eref><br />
<strong>Description:</strong> The Bootstrapping Remote Secure Key Infrastructure Pledge<br />
<strong>Reference:</strong> [THISRFC]</t>

</section>
</section>
<section anchor="privacy-considerations"><name>Privacy Considerations</name>

<t>In general, the privacy considerations of <xref target="RFC8995"/> apply for BRSKI-PRM also.
Further privacy aspects need to be considered for:</t>

<t><list style="symbols">
  <t>the introduction of the additional component Registrar-Agent</t>
  <t>potentially no transport layer security between Registrar-Agent and pledge</t>
</list></t>

<t><xref target="exchanges_uc2_1"/> describes to optional apply TLS to protect the communication between the Registrar-Agent and the pledge.
The following is therefore applicable to the communication without the TLS protection.</t>

<t>The credential used by the Registrar-Agent to sign the data for the pledge <bcp14>SHOULD NOT</bcp14> contain any personal information.
Therefore, it is recommended to use an LDevID certificate associated with the commissioning device instead of an LDevID certificate associated with the service technician operating the device.
This avoids revealing potentially included personal information to Registrar and MASA.</t>

<t>The communication between the pledge and the Registrar-Agent is performed over plain HTTP.
Therefore, it is subject to disclosure by a Dolev-Yao attacker (an "oppressive observer")<xref target="onpath"/>.
Depending on the requests and responses, the following information is disclosed.</t>

<t><list style="symbols">
  <t>the Pledge product-serial-number is contained in the trigger message for the PVR and in all responses from the pledge.
This information reveals the identity of the devices being bootstrapped and allows deduction of which products an operator is using in their environment.
As the communication between the pledge and the Registrar-Agent may be realized over wireless link, this information could easily be eavesdropped, if the wireless network is unencrypted.
Even if the wireless network is encrypted, if it uses a network-wide key, then layer-2 attacks (ARP/ND spoofing) could insert an on-path observer into the path.</t>
  <t>the Timestamp data could reveal the activation time of the device.</t>
  <t>the Status data of the device could reveal information about the current state of the device in the domain network.</t>
</list></t>

</section>
<section anchor="sec_cons"><name>Security Considerations</name>

<t>In general, the security considerations of <xref target="RFC8995"/> apply for BRSKI-PRM also.
Further security aspects are considered here related to:</t>

<t><list style="symbols">
  <t>the introduction of the additional component Registrar-Agent</t>
  <t>the reversal of the pledge communication direction (push mode, compared to BRSKI)</t>
  <t>no transport layer security between Registrar-Agent and pledge</t>
</list></t>

<section anchor="sec_cons-dos"><name>Denial of Service (DoS) Attack on Pledge</name>

<t>Disrupting the pledge behavior by a DoS attack may prevent the bootstrapping of the pledge to a new domain.
Because in BRSKI-PRM, the pledge responds to requests from real or illicit Registrar-Agents, pledges are more subject to DoS attacks from Registrar-Agents in BRSKI-PRM than they are from illicit registrars in <xref target="RFC8995"/>, where pledges do initiate the connections.</t>

<t>A DoS attack with a faked Registrar-Agent may block the bootstrapping of the pledge due changing state on the pledge (the pledge may produce a voucher-request, and refuse to produce another one).
One mitigation may be that the pledge does not limited the number of voucher-requests it creates until at least one has finished.
An alternative may be that the onboarding state may expire after a certain time, if no further interaction has happened.</t>

<t>In addition, the pledge may assume that repeated triggering for PVR are the result of a communication error with the Registrar-Agent.
In that case the pledge <bcp14>MAY</bcp14> simply resent the PVR previously sent.
Note that in case of resending, a contained nonce and also the contained agent-signed-data in the PVR would consequently be reused.</t>

</section>
<section anchor="misuse-of-acquired-pvr-and-per-by-registrar-agent"><name>Misuse of acquired PVR and PER by Registrar-Agent</name>

<t>A Registrar-Agent that uses previously requested PVR and PER for domain-A, may attempt to onboard the device into domain-B.  This can be detected by the domain registrar while PVR processing.
The domain registrar needs to verify that the "proximity-registrar-cert" field in the PVR matches its own registrar LDevID certificate.
In addition, the domain registrar needs to verify the association of the pledge to its domain based on the product-serial-number contained in the PVR and in the IDevID certificate of the pledge. (This is just part of the supply chain integration).
Moreover, the domain registrar verifies if the Registrar-Agent is authorized to interact with the pledge for voucher-requests and enroll-requests, based on the EE (RegAgt) certificate data contained in the PVR.</t>

<t>Misbinding of a pledge by a faked domain registrar is countered as described in BRSKI security considerations <xref target="RFC8995"/> (Section 11.4).</t>

</section>
<section anchor="sec_cons_reg-agt"><name>Misuse of Registrar-Agent Credentials</name>

<t>Concerns of misusage of a Registrar-Agent with a valid EE (RegAgt) certificate may be addressed by utilizing short-lived certificates (e.g., valid for a day) to authenticate the Registrar-Agent against the domain registrar.
The EE (RegAgt) certificate may have been acquired by a prior BRSKI run for the Registrar-Agent, if an IDevID is available on Registrar-Agent.
Alternatively, the EE (RegAgt) certificate may be acquired by a service technician from the domain PKI system in an authenticated way.</t>

<t>In addition it is required that the EE (RegAgt) certificate is valid for the complete bootstrapping phase.
This avoids that a Registrar-Agent could be misused to create arbitrary "agent-signed-data" objects to perform an authorized bootstrapping of a rogue pledge at a later point in time.
In this misuse "agent-signed-data" could be dated after the validity time of the EE (RegAgt) certificate, due to missing trusted timestamp in the Registrar-Agents signature.
To address this, the registrar <bcp14>SHOULD</bcp14> verify the certificate used to create the signature on "agent-signed-data".
Furthermore the registrar also verifies the EE (RegAgt) certificate used in the TLS handshake with the Registrar-Agent. If both certificates are verified successfully, the Registrar-Agent's signature can be considered as valid.</t>

</section>
<section anchor="sec_cons_mDNS"><name>Misuse of DNS-SD with mDNS to obtain list of pledges</name>

<t>To discover a specific pledge a Registrar-Agent may request the service name in combination with the product-serial-number of a specific pledge.
The pledge reacts on this if its product-serial-number is part of the request message.</t>

<t>If the Registrar-Agent performs DNS-based Service Discovery without a specific product-serial-number, all  pledges in the domain react if the functionality is supported.
This functionality enumerates and reveals the information of devices available in the domain.
The information about this is provided here as a feature to support the commissioning of devices.
A manufacturer may decide to support this feature only for devices not possessing a LDevID or to not support this feature at all, to avoid an enumeration in an operative domain.</t>

</section>
<section anchor="yang-module-security-considerations"><name>YANG Module Security Considerations</name>

<t>The enhanced voucher-request described in <xref target="I-D.ietf-anima-rfc8366bis"/> is based on <xref target="RFC8995"/>, but uses a different encoding based on <xref target="I-D.ietf-anima-jws-voucher"/>.
The security considerations as described in <xref target="RFC8995"/> Section 11.7 (Security Considerations) apply.</t>

<t>The YANG module specified in <xref target="I-D.ietf-anima-rfc8366bis"/> defines the schema for data that is subsequently encapsulated by a JOSE signed-data Content-type as described in <xref target="I-D.ietf-anima-jws-voucher"/>.
As such, all of the YANG-modeled data is protected against modification.</t>

<t>The use of YANG to define data structures via the <xref target="RFC8971"/> "structure" statement, is relatively
new and distinct from the traditional use of YANG to define an API accessed by network management protocols such as NETCONF <xref target="RFC6241"/> and RESTCONF <xref target="RFC8040"/>.
For this reason, these guidelines do not follow the template described by <xref target="RFC8407"/> Section 3.7 (Security Considerations Section).</t>

</section>
</section>
<section anchor="acknowledgments"><name>Acknowledgments</name>

<t>We would like to thank the various reviewers, in particular Brian E. Carpenter, Oskar Camenzind, Hendrik Brockhaus, and Ingo Wenda for their input and discussion on use cases and call flows.
Further review input was provided by Jesser Bouzid, Dominik Tacke, and Christian Spindler.
Special thanks to Esko Dijk for the in deep review and the improving proposals.
Support in PoC implementations and comments resulting from the implementation was provided by Hong Rui Li and He Peng Jia.</t>

</section>


  </middle>

  <back>


    <references title='Normative References' anchor="sec-normative-references">



<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="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="RFC7515">
  <front>
    <title>JSON Web Signature (JWS)</title>
    <author fullname="M. Jones" initials="M." surname="Jones"/>
    <author fullname="J. Bradley" initials="J." surname="Bradley"/>
    <author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
    <date month="May" year="2015"/>
    <abstract>
      <t>JSON Web Signature (JWS) represents content secured with digital signatures or Message Authentication Codes (MACs) using JSON-based data structures. Cryptographic algorithms and identifiers for use with this specification are described in the separate JSON Web Algorithms (JWA) specification and an IANA registry defined by that specification. Related encryption capabilities are described in the separate JSON Web Encryption (JWE) specification.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="7515"/>
  <seriesInfo name="DOI" value="10.17487/RFC7515"/>
</reference>

<reference anchor="RFC8040">
  <front>
    <title>RESTCONF Protocol</title>
    <author fullname="A. Bierman" initials="A." surname="Bierman"/>
    <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
    <author fullname="K. Watsen" initials="K." surname="Watsen"/>
    <date month="January" year="2017"/>
    <abstract>
      <t>This document describes an HTTP-based protocol that provides a programmatic interface for accessing data defined in YANG, using the datastore concepts defined in the Network Configuration Protocol (NETCONF).</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8040"/>
  <seriesInfo name="DOI" value="10.17487/RFC8040"/>
</reference>

<reference anchor="RFC8366">
  <front>
    <title>A Voucher Artifact for Bootstrapping Protocols</title>
    <author fullname="K. Watsen" initials="K." surname="Watsen"/>
    <author fullname="M. Richardson" initials="M." surname="Richardson"/>
    <author fullname="M. Pritikin" initials="M." surname="Pritikin"/>
    <author fullname="T. Eckert" initials="T." surname="Eckert"/>
    <date month="May" year="2018"/>
    <abstract>
      <t>This document defines a strategy to securely assign a pledge to an owner using an artifact signed, directly or indirectly, by the pledge's manufacturer. This artifact is known as a "voucher".</t>
      <t>This document defines an artifact format as a YANG-defined JSON document that has been signed using a Cryptographic Message Syntax (CMS) structure. Other YANG-derived formats are possible. The voucher artifact is normally generated by the pledge's manufacturer (i.e., the Manufacturer Authorized Signing Authority (MASA)).</t>
      <t>This document only defines the voucher artifact, leaving it to other documents to describe specialized protocols for accessing it.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8366"/>
  <seriesInfo name="DOI" value="10.17487/RFC8366"/>
</reference>

<reference anchor="RFC8610">
  <front>
    <title>Concise Data Definition Language (CDDL): A Notational Convention to Express Concise Binary Object Representation (CBOR) and JSON Data Structures</title>
    <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
    <author fullname="C. Vigano" initials="C." surname="Vigano"/>
    <author fullname="C. Bormann" initials="C." surname="Bormann"/>
    <date month="June" year="2019"/>
    <abstract>
      <t>This document proposes a notational convention to express Concise Binary Object Representation (CBOR) data structures (RFC 7049). Its main goal is to provide an easy and unambiguous way to express structures for protocol messages and data formats that use CBOR or JSON.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8610"/>
  <seriesInfo name="DOI" value="10.17487/RFC8610"/>
</reference>

<reference anchor="RFC8615">
  <front>
    <title>Well-Known Uniform Resource Identifiers (URIs)</title>
    <author fullname="M. Nottingham" initials="M." surname="Nottingham"/>
    <date month="May" year="2019"/>
    <abstract>
      <t>This memo defines a path prefix for "well-known locations", "/.well-known/", in selected Uniform Resource Identifier (URI) schemes.</t>
      <t>In doing so, it obsoletes RFC 5785 and updates the URI schemes defined in RFC 7230 to reserve that space. It also updates RFC 7595 to track URI schemes that support well-known URIs in their registry.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8615"/>
  <seriesInfo name="DOI" value="10.17487/RFC8615"/>
</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="RFC9360">
  <front>
    <title>CBOR Object Signing and Encryption (COSE): Header Parameters for Carrying and Referencing X.509 Certificates</title>
    <author fullname="J. Schaad" initials="J." surname="Schaad"/>
    <date month="February" year="2023"/>
    <abstract>
      <t>The CBOR Object Signing and Encryption (COSE) message structure uses references to keys in general. For some algorithms, additional properties are defined that carry parameters relating to keys as needed. The COSE Key structure is used for transporting keys outside of COSE messages. This document extends the way that keys can be identified and transported by providing attributes that refer to or contain X.509 certificates.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9360"/>
  <seriesInfo name="DOI" value="10.17487/RFC9360"/>
</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="I-D.ietf-netconf-sztp-csr">
   <front>
      <title>Conveying a Certificate Signing Request (CSR) in a Secure Zero Touch Provisioning (SZTP) Bootstrapping Request</title>
      <author fullname="Kent Watsen" initials="K." surname="Watsen">
         <organization>Watsen Networks</organization>
      </author>
      <author fullname="Russ Housley" initials="R." surname="Housley">
         <organization>Vigil Security, LLC</organization>
      </author>
      <author fullname="Sean Turner" initials="S." surname="Turner">
         <organization>sn3rd</organization>
      </author>
      <date day="2" month="March" year="2022"/>
      <abstract>
	 <t>   This draft extends the input to the &quot;get-bootstrapping-data&quot; RPC
   defined in RFC 8572 to include an optional certificate signing
   request (CSR), enabling a bootstrapping device to additionally obtain
   an identity certificate (e.g., an LDevID from IEEE 802.1AR) as part
   of the &quot;onboarding information&quot; response provided in the RPC-reply.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-ietf-netconf-sztp-csr-14"/>
   
</reference>


<reference anchor="I-D.ietf-anima-rfc8366bis">
   <front>
      <title>A Voucher Artifact for Bootstrapping Protocols</title>
      <author fullname="Kent Watsen" initials="K." surname="Watsen">
         <organization>Watsen Networks</organization>
      </author>
      <author fullname="Michael Richardson" initials="M." surname="Richardson">
         <organization>Sandelman Software</organization>
      </author>
      <author fullname="Max Pritikin" initials="M." surname="Pritikin">
         <organization>Cisco Systems</organization>
      </author>
      <author fullname="Toerless Eckert" initials="T. T." surname="Eckert">
         <organization>Futurewei Technologies Inc.</organization>
      </author>
      <author fullname="Qiufang Ma" initials="Q." surname="Ma">
         <organization>Huawei</organization>
      </author>
      <date day="22" month="August" year="2023"/>
      <abstract>
	 <t>   This document defines a strategy to securely assign a pledge to an
   owner using an artifact signed, directly or indirectly, by the
   pledge&#x27;s manufacturer.  This artifact is known as a &quot;voucher&quot;.

   This document defines an artifact format as a YANG-defined JSON or
   CBOR document that has been signed using a variety of cryptographic
   systems.

   The voucher artifact is normally generated by the pledge&#x27;s
   manufacturer (i.e., the Manufacturer Authorized Signing Authority
   (MASA)).

   This document updates RFC8366, merging a number of extensions into
   the YANG.  The RFC8995 voucher request is also merged into this
   document.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-ietf-anima-rfc8366bis-10"/>
   
</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' anchor="sec-informative-references">



<reference anchor="RFC2986">
  <front>
    <title>PKCS #10: Certification Request Syntax Specification Version 1.7</title>
    <author fullname="M. Nystrom" initials="M." surname="Nystrom"/>
    <author fullname="B. Kaliski" initials="B." surname="Kaliski"/>
    <date month="November" year="2000"/>
    <abstract>
      <t>This memo represents a republication of PKCS #10 v1.7 from RSA Laboratories' Public-Key Cryptography Standards (PKCS) series, and change control is retained within the PKCS process. The body of this document, except for the security considerations section, is taken directly from the PKCS #9 v2.0 or the PKCS #10 v1.7 document. This memo provides information for the Internet community.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="2986"/>
  <seriesInfo name="DOI" value="10.17487/RFC2986"/>
</reference>

<reference anchor="RFC5272">
  <front>
    <title>Certificate Management over CMS (CMC)</title>
    <author fullname="J. Schaad" initials="J." surname="Schaad"/>
    <author fullname="M. Myers" initials="M." surname="Myers"/>
    <date month="June" year="2008"/>
    <abstract>
      <t>This document defines the base syntax for CMC, a Certificate Management protocol using the Cryptographic Message Syntax (CMS). This protocol addresses two immediate needs within the Internet Public Key Infrastructure (PKI) community:</t>
      <t>1. The need for an interface to public key certification products and services based on CMS and PKCS #10 (Public Key Cryptography Standard), and</t>
      <t>2. The need for a PKI enrollment protocol for encryption only keys due to algorithm or hardware design.</t>
      <t>CMC also requires the use of the transport document and the requirements usage document along with this document for a full definition. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="5272"/>
  <seriesInfo name="DOI" value="10.17487/RFC5272"/>
</reference>

<reference anchor="RFC6125">
  <front>
    <title>Representation and Verification of Domain-Based Application Service Identity within Internet Public Key Infrastructure Using X.509 (PKIX) Certificates in the Context of Transport Layer Security (TLS)</title>
    <author fullname="P. Saint-Andre" initials="P." surname="Saint-Andre"/>
    <author fullname="J. Hodges" initials="J." surname="Hodges"/>
    <date month="March" year="2011"/>
    <abstract>
      <t>Many application technologies enable secure communication between two entities by means of Internet Public Key Infrastructure Using X.509 (PKIX) certificates in the context of Transport Layer Security (TLS). This document specifies procedures for representing and verifying the identity of application services in such interactions. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="6125"/>
  <seriesInfo name="DOI" value="10.17487/RFC6125"/>
</reference>

<reference anchor="RFC6241">
  <front>
    <title>Network Configuration Protocol (NETCONF)</title>
    <author fullname="R. Enns" initials="R." role="editor" surname="Enns"/>
    <author fullname="M. Bjorklund" initials="M." role="editor" surname="Bjorklund"/>
    <author fullname="J. Schoenwaelder" initials="J." role="editor" surname="Schoenwaelder"/>
    <author fullname="A. Bierman" initials="A." role="editor" surname="Bierman"/>
    <date month="June" year="2011"/>
    <abstract>
      <t>The Network Configuration Protocol (NETCONF) defined in this document provides mechanisms to install, manipulate, and delete the configuration of network devices. It uses an Extensible Markup Language (XML)-based data encoding for the configuration data as well as the protocol messages. The NETCONF protocol operations are realized as remote procedure calls (RPCs). This document obsoletes RFC 4741. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="6241"/>
  <seriesInfo name="DOI" value="10.17487/RFC6241"/>
</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="RFC8152">
  <front>
    <title>CBOR Object Signing and Encryption (COSE)</title>
    <author fullname="J. Schaad" initials="J." surname="Schaad"/>
    <date month="July" year="2017"/>
    <abstract>
      <t>Concise Binary Object Representation (CBOR) is a data format designed for small code size and small message size. There is a need for the ability to have basic security services defined for this data format. This document defines the CBOR Object Signing and Encryption (COSE) protocol. This specification describes how to create and process signatures, message authentication codes, and encryption using CBOR for serialization. This specification additionally describes how to represent cryptographic keys using CBOR.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8152"/>
  <seriesInfo name="DOI" value="10.17487/RFC8152"/>
</reference>

<reference anchor="RFC8407">
  <front>
    <title>Guidelines for Authors and Reviewers of Documents Containing YANG Data Models</title>
    <author fullname="A. Bierman" initials="A." surname="Bierman"/>
    <date month="October" year="2018"/>
    <abstract>
      <t>This memo provides guidelines for authors and reviewers of specifications containing YANG modules. Recommendations and procedures are defined, which are intended to increase interoperability and usability of Network Configuration Protocol (NETCONF) and RESTCONF protocol implementations that utilize YANG modules. This document obsoletes RFC 6087.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="216"/>
  <seriesInfo name="RFC" value="8407"/>
  <seriesInfo name="DOI" value="10.17487/RFC8407"/>
</reference>

<reference anchor="RFC8792">
  <front>
    <title>Handling Long Lines in Content of Internet-Drafts and RFCs</title>
    <author fullname="K. Watsen" initials="K." surname="Watsen"/>
    <author fullname="E. Auerswald" initials="E." surname="Auerswald"/>
    <author fullname="A. Farrel" initials="A." surname="Farrel"/>
    <author fullname="Q. Wu" initials="Q." surname="Wu"/>
    <date month="June" year="2020"/>
    <abstract>
      <t>This document defines two strategies for handling long lines in width-bounded text content. One strategy, called the "single backslash" strategy, is based on the historical use of a single backslash ('\') character to indicate where line-folding has occurred, with the continuation occurring with the first character that is not a space character (' ') on the next line. The second strategy, called the "double backslash" strategy, extends the first strategy by adding a second backslash character to identify where the continuation begins and is thereby able to handle cases not supported by the first strategy. Both strategies use a self-describing header enabling automated reconstitution of the original content.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8792"/>
  <seriesInfo name="DOI" value="10.17487/RFC8792"/>
</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="RFC9052">
  <front>
    <title>CBOR Object Signing and Encryption (COSE): Structures and Process</title>
    <author fullname="J. Schaad" initials="J." surname="Schaad"/>
    <date month="August" year="2022"/>
    <abstract>
      <t>Concise Binary Object Representation (CBOR) is a data format designed for small code size and small message size. There is a need to be able to define basic security services for this data format. This document defines the CBOR Object Signing and Encryption (COSE) protocol. This specification describes how to create and process signatures, message authentication codes, and encryption using CBOR for serialization. This specification additionally describes how to represent cryptographic keys using CBOR.</t>
      <t>This document, along with RFC 9053, obsoletes RFC 8152.</t>
    </abstract>
  </front>
  <seriesInfo name="STD" value="96"/>
  <seriesInfo name="RFC" value="9052"/>
  <seriesInfo name="DOI" value="10.17487/RFC9052"/>
</reference>

<reference anchor="RFC9053">
  <front>
    <title>CBOR Object Signing and Encryption (COSE): Initial Algorithms</title>
    <author fullname="J. Schaad" initials="J." surname="Schaad"/>
    <date month="August" year="2022"/>
    <abstract>
      <t>Concise Binary Object Representation (CBOR) is a data format designed for small code size and small message size. There is a need to be able to define basic security services for this data format. This document defines a set of algorithms that can be used with the CBOR Object Signing and Encryption (COSE) protocol (RFC 9052).</t>
      <t>This document, along with RFC 9052, obsoletes RFC 8152.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9053"/>
  <seriesInfo name="DOI" value="10.17487/RFC9053"/>
</reference>

<reference anchor="RFC9110">
  <front>
    <title>HTTP Semantics</title>
    <author fullname="R. Fielding" initials="R." role="editor" surname="Fielding"/>
    <author fullname="M. Nottingham" initials="M." role="editor" surname="Nottingham"/>
    <author fullname="J. Reschke" initials="J." role="editor" surname="Reschke"/>
    <date month="June" year="2022"/>
    <abstract>
      <t>The Hypertext Transfer Protocol (HTTP) is a stateless application-level protocol for distributed, collaborative, hypertext information systems. This document describes the overall architecture of HTTP, establishes common terminology, and defines aspects of the protocol that are shared by all versions. In this definition are core protocol elements, extensibility mechanisms, and the "http" and "https" Uniform Resource Identifier (URI) schemes.</t>
      <t>This document updates RFC 3864 and obsoletes RFCs 2818, 7231, 7232, 7233, 7235, 7538, 7615, 7694, and portions of 7230.</t>
    </abstract>
  </front>
  <seriesInfo name="STD" value="97"/>
  <seriesInfo name="RFC" value="9110"/>
  <seriesInfo name="DOI" value="10.17487/RFC9110"/>
</reference>

<reference anchor="RFC9238">
  <front>
    <title>Loading Manufacturer Usage Description (MUD) URLs from QR Codes</title>
    <author fullname="M. Richardson" initials="M." surname="Richardson"/>
    <author fullname="J. Latour" initials="J." surname="Latour"/>
    <author fullname="H. Habibi Gharakheili" initials="H." surname="Habibi Gharakheili"/>
    <date month="May" year="2022"/>
    <abstract>
      <t>This informational document details a protocol to load Manufacturer Usage Description (MUD) definitions from RFC 8520 for devices that do not have them integrated.</t>
      <t>This document is published to inform the Internet community of this mechanism to allow interoperability and to serve as a basis of other standards work if there is interest.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9238"/>
  <seriesInfo name="DOI" value="10.17487/RFC9238"/>
</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="17" month="November" 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-07"/>
   
</reference>


<reference anchor="I-D.richardson-emu-eap-onboarding">
   <front>
      <title>EAP defaults for devices that need to onboard</title>
      <author fullname="Alan DeKok" initials="A." surname="DeKok">
         <organization>FreeRADIUS</organization>
      </author>
      <author fullname="Michael Richardson" initials="M." surname="Richardson">
         <organization>Sandelman Software Works</organization>
      </author>
      <date day="2" month="April" year="2023"/>
      <abstract>
	 <t>   This document describes a method by which an unconfigured device can
   use EAP to join a network on which further device onboarding, network
   attestation or other remediation can be done.  While RFC 5216
   supports EAP-TLS without a client certificate, that document defines
   no method by which unauthenticated EAP-TLS can be used.  This draft
   addresses that issue.  First, by defining the @eap.arpa domain, and
   second by showing how it can be used to provide quarantined network
   access for onboarding unauthenticated devices.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-richardson-emu-eap-onboarding-03"/>
   
</reference>


<reference anchor="I-D.eckert-anima-brski-discovery">
   <front>
      <title>Discovery for BRSKI variations</title>
      <author fullname="Toerless Eckert" initials="T. T." surname="Eckert">
         <organization>Futurewei USA</organization>
      </author>
      <author fullname="David von Oheimb" initials="D." surname="von Oheimb">
         <organization>Siemens AG</organization>
      </author>
      <author fullname="Esko Dijk" initials="E." surname="Dijk">
         <organization>IoTconsultancy.nl</organization>
      </author>
      <date day="23" month="October" year="2023"/>
      <abstract>
	 <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>
   <seriesInfo name="Internet-Draft" value="draft-eckert-anima-brski-discovery-01"/>
   
</reference>


<reference anchor="IEEE-802.1AR" >
  <front>
    <title>IEEE 802.1AR Secure Device Identifier</title>
    <author >
      <organization>Institute of Electrical and Electronics Engineers</organization>
    </author>
    <date year="2018" month="June"/>
  </front>
  <seriesInfo name="IEEE" value="802.1AR "/>
</reference>
<reference anchor="BRSKI-PRM-abstract" >
  <front>
    <title>Abstract BRSKI-PRM Protocol Overview</title>
    <author >
      <organization></organization>
    </author>
    <date year="2022" month="March"/>
  </front>
  <format type="PDF" target="https://datatracker.ietf.org/meeting/113/materials/slides-113-anima-update-on-brski-with-pledge-in-responder-mode-brski-prm-00"/>
</reference>
<reference anchor="onpath" target="https://mailarchive.ietf.org/arch/msg/saag/m1r9uo4xYznOcf85Eyk0Rhut598/">
  <front>
    <title>can an on-path attacker drop traffic?</title>
    <author >
      <organization></organization>
    </author>
    <date year="n.d."/>
  </front>
</reference>
<reference anchor="androidnsd" target="https://developer.android.com/training/connect-devices-wirelessly">
  <front>
    <title>Android Developer: Connect devices wirelessly</title>
    <author >
      <organization></organization>
    </author>
    <date year="n.d."/>
  </front>
  <seriesInfo name="archived at" value="https://web.archive.org/web/20230000000000*/https://developer.android.com/training/connect-devices-wirelessly"/>
</reference>
<reference anchor="androidtrustfail" target="https://developer.android.com/training/articles/security-ssl">
  <front>
    <title>Security with Network Protocols</title>
    <author >
      <organization></organization>
    </author>
    <date year="n.d."/>
  </front>
  <seriesInfo name="archived at" value="https://web.archive.org/web/20230326153937/https://developer.android.com/training/articles/security-ssl"/>
</reference>



<reference anchor="I-D.richardson-anima-registrar-considerations">
   <front>
      <title>Operational Considerations for BRSKI Registrar</title>
      <author fullname="Michael Richardson" initials="M." surname="Richardson">
         <organization>Sandelman Software Works</organization>
      </author>
      <author fullname="Wei Pan" initials="W." surname="Pan">
         <organization>Huawei Technologies</organization>
      </author>
      <date day="11" month="May" year="2023"/>
      <abstract>
	 <t>   This document describes a number of operational modes that a BRSKI
   Registration Authority (Registrar) may take on.

   Each mode is defined, and then each mode is given a relevance within
   an over applicability of what kind of organization the Registrar is
   deployed into.  This document does not change any protocol
   mechanisms.

   This document includes operational advice about avoiding unwanted
   consequences.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-richardson-anima-registrar-considerations-07"/>
   
</reference>

<reference anchor="RFC8971">
  <front>
    <title>Bidirectional Forwarding Detection (BFD) for Virtual eXtensible Local Area Network (VXLAN)</title>
    <author fullname="S. Pallagatti" initials="S." role="editor" surname="Pallagatti"/>
    <author fullname="G. Mirsky" initials="G." role="editor" surname="Mirsky"/>
    <author fullname="S. Paragiri" initials="S." surname="Paragiri"/>
    <author fullname="V. Govindan" initials="V." surname="Govindan"/>
    <author fullname="M. Mudigonda" initials="M." surname="Mudigonda"/>
    <date month="December" year="2020"/>
    <abstract>
      <t>This document describes the use of the Bidirectional Forwarding Detection (BFD) protocol in point-to-point Virtual eXtensible Local Area Network (VXLAN) tunnels used to form an overlay network.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8971"/>
  <seriesInfo name="DOI" value="10.17487/RFC8971"/>
</reference>


<reference anchor="I-D.irtf-t2trg-taxonomy-manufacturer-anchors">
   <front>
      <title>A Taxonomy of operational security considerations for manufacturer installed keys and Trust Anchors</title>
      <author fullname="Michael Richardson" initials="M." surname="Richardson">
         <organization>Sandelman Software Works</organization>
      </author>
      <date day="6" month="August" year="2023"/>
      <abstract>
	 <t>   This document provides a taxonomy of methods used by manufacturers of
   silicon and devices to secure private keys and public trust anchors.
   This deals with two related activities: how trust anchors and private
   keys are installed into devices during manufacturing, and how the
   related manufacturer held private keys are secured against
   disclosure.

   This document does not evaluate the different mechanisms, but rather
   just serves to name them in a consistent manner in order to aid in
   communication.

   RFCEDITOR: please remove this paragraph.  This work is occurring in
   https://github.com/mcr/idevid-security-considerations

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-irtf-t2trg-taxonomy-manufacturer-anchors-02"/>
   
</reference>




    </references>


<?line 2246?>

<section anchor="examples"><name>Examples</name>

<t>These examples are folded according to <xref target="RFC8792"/> Single Backslash rule.</t>

<section anchor="example-pledge-voucher-request-pvr-from-pledge-to-registrar-agent"><name>Example Pledge Voucher-Request - PVR (from Pledge to Registrar-Agent)</name>

<t>The following is an example request sent from a Pledge to the Registrar-Agent, in "General JWS JSON Serialization".
The message size of this PVR is: 4649 bytes</t>

<figure title="Example Pledge Voucher-Request - PVR" anchor="ExamplePledgeVoucherRequestfigure"><artwork align="left"><![CDATA[
=============== NOTE: '\' line wrapping per RFC 8792 ================

{
  "payload":
    "eyJpZXRmLXZvdWNoZXItcmVxdWVzdC1wcm06dm91Y2hlciI6eyJhc3NlcnRpb24\
iOiJhZ2VudC1wcm94aW1pdHkiLCJzZXJpYWwtbnVtYmVyIjoiMDEyMzQ1Njc4OSIsIm5\
vbmNlIjoiTDNJSjZocHRIQ0lRb054YWFiOUhXQT09IiwiY3JlYXRlZC1vbiI6IjIwMjI\
tMDQtMjZUMDU6MTY6MTcuNzA5WiIsImFnZW50LXByb3ZpZGVkLXByb3hpbWl0eS1yZWd\
pc3RyYXItY2VydCI6Ik1JSUI0akNDQVlpZ0F3SUJBZ0lHQVhZNzJiYlpNQW9HQ0NxR1N\
NNDlCQU1DTURVeEV6QVJCZ05WQkFvTUNrMTVRblZ6YVc1bGMzTXhEVEFMQmdOVkJBY01\
CRk5wZEdVeER6QU5CZ05WQkFNTUJsUmxjM1JEUVRBZUZ3MHlNREV5TURjd05qRTRNVEp\
hRncwek1ERXlNRGN3TmpFNE1USmFNRDR4RXpBUkJnTlZCQW9NQ2sxNVFuVnphVzVsYzN\
NeERUQUxCZ05WQkFjTUJGTnBkR1V4R0RBV0JnTlZCQU1NRDBSdmJXRnBibEpsWjJsemR\
ISmhjakJaTUJNR0J5cUdTTTQ5QWdFR0NDcUdTTTQ5QXdFSEEwSUFCQmsxNksvaTc5b1J\
rSzVZYmVQZzhVU1I4L3VzMWRQVWlaSE10b2tTZHFLVzVmbldzQmQrcVJMN1dSZmZlV2t\
5Z2Vib0pmSWxsdXJjaTI1d25oaU9WQ0dqZXpCNU1CMEdBMVVkSlFRV01CUUdDQ3NHQVF\
VRkJ3TUJCZ2dyQmdFRkJRY0RIREFPQmdOVkhROEJBZjhFQkFNQ0I0QXdTQVlEVlIwUkJ\
FRXdQNElkY21WbmFYTjBjbUZ5TFhSbGMzUXVjMmxsYldWdWN5MWlkQzV1WlhTQ0huSmx\
aMmx6ZEhKaGNpMTBaWE4wTmk1emFXVnRaVzV6TFdKMExtNWxkREFLQmdncWhrak9QUVF\
EQWdOSUFEQkZBaUJ4bGRCaFpxMEV2NUpMMlByV0N0eVM2aERZVzF5Q08vUmF1YnBDN01\
hSURnSWhBTFNKYmdMbmdoYmJBZzBkY1dGVVZvL2dHTjAvand6SlowU2wyaDR4SVhrMSI\
sImFnZW50LXNpZ25lZC1kYXRhIjoiZXlKd1lYbHNiMkZrSWpvaVpYbEtjRnBZVW0xTVd\
GcDJaRmRPYjFwWVNYUmpiVlo0WkZkV2VtUkRNWGRqYlRBMldWZGtiR0p1VVhSak1teHV\
ZbTFXYTB4WFVtaGtSMFZwVDI1emFWa3pTbXhaV0ZKc1drTXhkbUpwU1RaSmFrbDNUV3B\
KZEUxRVVYUk5hbHBWVFVSVk5rMUVZelpPUkVWMVRrUlJORmRwU1hOSmJrNXNZMjFzYUd\
KRE1YVmtWekZwV2xoSmFVOXBTWGROVkVsNlRrUlZNazU2WnpWSmJqRTVJaXdpYzJsbmJ\
tRjBkWEpsY3lJNlczc2ljSEp2ZEdWamRHVmtJam9pWlhsS2NtRlhVV2xQYVVwWlkwaHd\
jMVJWZERSaVNFSkNUbXBvYWxaVVZrZFZWVEZaVmxoYWRWTldVVEpWV0dNNVNXbDNhVmx\
YZUc1SmFtOXBVbFpOZVU1VVdXbG1VU0lzSW5OcFoyNWhkSFZ5WlNJNklrY3pWM2hHU0d\
WMFdGQTRiR3hTVmkwNWRXSnlURmxxU25aUllUWmZlUzFRYWxGWk5FNWhkMW81Y0ZKaGI\
yeE9TbTlFTm1SbFpXdHVTVjlGV0daemVWWlRZbmM0VTBONlRWcE1iakJoUVhWb2FVZFp\
UakJSSW4xZGZRPT0iLCJhZ2VudC1zaWduLWNlcnQiOlsiTUlJQjFEQ0NBWHFnQXdJQkF\
nSUVZbWQ0T1RBS0JnZ3Foa2pPUFFRREFqQStNUk13RVFZRFZRUUtEQXBOZVVKMWMybHV\
aWE56TVEwd0N3WURWUVFIREFSVGFYUmxNUmd3RmdZRFZRUUREQTlVWlhOMFVIVnphRTF\
2WkdWc1EwRXdIaGNOTWpJd05ESTJNRFEwTWpNeldoY05Nekl3TkRJMk1EUTBNak16V2p\
BOU1STXdFUVlEVlFRS0RBcE5lVUoxYzJsdVpYTnpNUTB3Q3dZRFZRUUhEQVJUYVhSbE1\
SY3dGUVlEVlFRRERBNVNaV2RwYzNSeVlYSkJaMlZ1ZERCWk1CTUdCeXFHU000OUFnRUd\
DQ3FHU000OUF3RUhBMElBQkd4bHJOZmozaVJiNy9CUW9kVys1WWlvT3poK2pJdHlxdVJ\
JTy9XejdZb1czaXdEYzNGeGV3TFZmekNyNU52RDEzWmFGYjdmcmFuK3Q5b3RZNVdMaEo\
2alp6QmxNQTRHQTFVZER3RUIvd1FFQXdJSGdEQWZCZ05WSFNNRUdEQVdnQlJ2b1QxdWR\
lMmY2TEVRaFU3SEhqK3ZKL2Q3SXpBZEJnTlZIUTRFRmdRVVhwemxNS3hscEE2OGNVNUZ\
RTVhVdm5JVDZRd3dFd1lEVlIwbEJBd3dDZ1lJS3dZQkJRVUhBd0l3Q2dZSUtvWkl6ajB\
FQXdJRFNBQXdSUUlnYzJ5NnhvT3RvUUJsSnNnbE9MMVZ4SEdvc1R5cEVxUmZ6MFF2NFp\
FUHY0d0NJUUNWeWIyRjl6VjNuOTUrb2xnZkZKZ1pUV0V6NGRTYUYzaHpSUWIzWnVCMjl\
RPT0iLCJNSUlCekRDQ0FYR2dBd0lCQWdJRVhYakhwREFLQmdncWhrak9QUVFEQWpBMU1\
STXdFUVlEVlFRS0RBcE5lVUoxYzJsdVpYTnpNUTB3Q3dZRFZRUUhEQVJUYVhSbE1ROHd\
EUVlEVlFRRERBWlVaWE4wUTBFd0hoY05NVGt3T1RFeE1UQXdPRE0yV2hjTk1qa3dPVEV\
4TVRBd09ETTJXakErTVJNd0VRWURWUVFLREFwTmVVSjFjMmx1WlhOek1RMHdDd1lEVlF\
RSERBUlRhWFJsTVJnd0ZnWURWUVFEREE5VVpYTjBVSFZ6YUUxdlpHVnNRMEV3V1RBVEJ\
nY3Foa2pPUFFJQkJnZ3Foa2pPUFFNQkJ3TkNBQVRsRzBmd1QzM29leloxdmtIUWJldGV\
ibWorQm9WK1pGc2pjZlF3MlRPa0pQaE9rT2ZBYnU5YlMxcVppOHlhRVY4b2VyS2wvNlp\
YYmZ4T21CanJScmNYbzJZd1pEQVNCZ05WSFJNQkFmOEVDREFHQVFIL0FnRUFNQTRHQTF\
VZER3RUIvd1FFQXdJQ0JEQWZCZ05WSFNNRUdEQVdnQlRvWklNelFkc0Qvai8rZ1gvN2N\
CSnVjSC9YbWpBZEJnTlZIUTRFRmdRVWI2RTliblh0bitpeEVJVk94eDQvcnlmM2V5TXd\
DZ1lJS29aSXpqMEVBd0lEU1FBd1JnSWhBUG5CMHcxTkN1cmhNeEp3d2ZqejdnRGlpeGt\
VWUxQU1o5ZU45a29oTlFVakFpRUF3NFk3bHR4V2lQd0t0MUo5bmp5ZkRObDVNdUVEQml\
teFIzQ1hvWktHUXJVPSJdfX0",
    "signatures":[{
      "protected":"eyJ4NWMiOlsiTUlJQitUQ0NBYUNnQXdJQkFnSUdBWG5WanNVN\
U1Bb0dDQ3FHU000OUJBTUNNRDB4Q3pBSkJnTlZCQVlUQWtGUk1SVXdFd1lEVlFRS0RBe\
EthVzVuU21sdVowTnZjbkF4RnpBVkJnTlZCQU1NRGtwcGJtZEthVzVuVkdWemRFTkJNQ\
0FYRFRJeE1EWXdOREExTkRZeE5Gb1lEems1T1RreE1qTXhNak0xT1RVNVdqQlNNUXN3Q\
1FZRFZRUUdFd0pCVVRFVk1CTUdBMVVFQ2d3TVNtbHVaMHBwYm1kRGIzSndNUk13RVFZR\
FZRUUZFd293TVRJek5EVTJOemc1TVJjd0ZRWURWUVFEREE1S2FXNW5TbWx1WjBSbGRtb\
GpaVEJaTUJNR0J5cUdTTTQ5QWdFR0NDcUdTTTQ5QXdFSEEwSUFCQzc5bGlhUmNCalpjR\
UVYdzdyVWVhdnRHSkF1SDRwazRJNDJ2YUJNc1UxMWlMRENDTGtWaHRVVjIxbXZhS0N2T\
XgyWStTTWdROGZmd0wyM3ozVElWQldqZFRCek1Dc0dDQ3NHQVFVRkJ3RWdCQjhXSFcxa\
GMyRXRkR1Z6ZEM1emFXVnRaVzV6TFdKMExtNWxkRG81TkRRek1COEdBMVVkSXdRWU1CY\
UFGRlFMak56UFwvU1wva291alF3amc1RTVmdndjWWJNQk1HQTFVZEpRUU1NQW9HQ0NzR\
0FRVUZCd01DTUE0R0ExVWREd0VCXC93UUVBd0lIZ0RBS0JnZ3Foa2pPUFFRREFnTkhBR\
EJFQWlCdTN3UkJMc0pNUDVzTTA3MEgrVUZyeU5VNmdLekxPUmNGeVJST2xxcUhpZ0lnW\
ENtSkxUekVsdkQycG9LNmR4NmwxXC91eW1UbmJRRERmSmxhdHVYMlJvT0U9Il0sImFsZ\
yI6IkVTMjU2In0",
      "signature":"Y_ohapnmvbwjLuUicOB7NAmbGM7igBfpUlkKUuSNdG-eDI4BQ\
yuXZ2aw93zZId45R7XxAK-12YKIx6qLjiPjMw"
  }]
}
]]></artwork></figure>

</section>
<section anchor="example-parboiled-registrar-voucher-request-rvr-from-registrar-to-masa"><name>Example Parboiled Registrar Voucher-Request - RVR (from Registrar to MASA)</name>

<t>The term parboiled refers to food which is partially cooked.  In <xref target="RFC8995"/>, the term refers to a Pledge voucher-request (PVR) which has
been received by the Registrar, and then has been processed by the Registrar ("cooked"), and is now being forwarded to the MASA.</t>

<t>The following is an example Registrar voucher-request (RVR) sent from the Registrar to the MASA, in "General JWS JSON Serialization".
Note that the previous PVR can be seen in the payload as "prior-signed-voucher-request".
The message size of this RVR is: 13257 bytes</t>

<figure title="Example Registrar Voucher-Request - RVR" anchor="ExampleRegistrarVoucherRequestfigure"><artwork align="left"><![CDATA[
=============== NOTE: '\' line wrapping per RFC 8792 ================

{
  "payload":
    "eyJpZXRmLXZvdWNoZXItcmVxdWVzdC1wcm06dm91Y2hlciI6eyJhc3NlcnRpb24\
iOiJhZ2VudC1wcm94aW1pdHkiLCJzZXJpYWwtbnVtYmVyIjoiY2FmZmUtOTg3NDUiLCJ\
ub25jZSI6ImM1VEVPb29NTE5hNEN4L1UrVExoQ3c9PSIsInByaW9yLXNpZ25lZC12b3V\
jaGVyLXJlcXVlc3QiOiJleUp3WVhsc2IyRmtJam9pWlhsS2NGcFlVbTFNV0ZwMlpGZE9\
iMXBZU1hSamJWWjRaRmRXZW1SRE1YZGpiVEEyWkcwNU1Wa3lhR3hqYVVrMlpYbEthR01\
6VG14amJsSndZakkwYVU5cFNtaGFNbFoxWkVNeGQyTnRPVFJoVnpGd1pFaHJhVXhEU25\
wYVdFcHdXVmQzZEdKdVZuUlpiVlo1U1dwdmFWa3lSbTFhYlZWMFQxUm5NMDVFVldsTVE\
wcDFZakkxYWxwVFNUWkpiVTB4VmtWV1VHSXlPVTVVUlRWb1RrVk9ORXd4VlhKV1JYaHZ\
VVE5qT1ZCVFNYTkpiVTU1V2xkR01GcFhVWFJpTWpScFQybEplVTFFU1hsTVZFRjVURlJ\
KZVZaRVFUTlBhazE2VDJwQk5FeHFSVFZPYkc5cFRFTkthRm95Vm5Wa1F6RjNZMjA1TW1\
GWFVteGFRekYzWTIwNU5HRlhNWEJrU0d0MFkyMVdibUZZVGpCamJVWjVURmRPYkdOdVV\
XbFBhVXBPVTFWc1JGSkdVa1JSTUVacFZESmtRbVF3YkVOUlYyUktVakJHV1ZkWVRuZFR\
WMVoyVkZWR2RsSXdUa1JqVldSVVZGUlJOVkZyUms1Uk1ERkhaRE5vUkdWclJrdFJiV1J\
QVm10S1FsZFdVa0poTUZwVFZGWktTbVF3VmtKWFZWSlhWVlpHVEZKRlJuTlViVlpXVkc\
1YWFWZEZTbTlaYlRWeVpVVmFWVkZXVWtOYU1EVlhVV3RHZWxSVlVrWk5WRlpXVFRGYWN\
GbDZTbk5oTWtaWVVtNXNiRlpGVmxGVVZVVjNVakJGZUZaVlZrTmtNMlJJVmtab2MxWkh\
SbGxWYlhoT1ZXdFdNMUpJWkZwU1JscFNWVlZTUlZGWGFFOWFWbHBQWTBkU1NGWnJVbEp\
XUlVac1VtNWpkMlZWTVVWU1dHeE9Va1pHTTFSdWNFcE5WVFZGWVVkR1IyUjZRalpVVlZ\
KR1pWVXhSVlZZWkU5bGEydDRWR3RTYjFsVk1VaFRXR2hFWld0R1MxRnRaRTlXYTBwQ1Y\
xWlNRbUV3V2xOVVZrcEtaREJXUWxkVlVsZFZWa1pNVWtWR2MxUnRWbFpVYmxwcFYwVkt\
iMWx0TlhKbFJWcEZVVlpPUTFvd05WZFJhMFo2VkZWTmQwMVVWbFpOTVZwd1dYcEtjMkV\
4YkZsVGFsWk9WVlJvTTFKR1JscFNSbHBTVlZWb1JWRldjRTlhVmxwUFkwZFNTRlpZYUV\
oU1JVWllVVzFrVDFaclNrSlVWVEZGVFVSRk1WWlVTbk5OUm5CWFUyMTRZVTF0ZURaYVJ\
XaExZVWRPY1ZGc2NFNVJhekZJVVc1c2VGSXhUazVPUkd4Q1dqQldTRkV3VG5oU01VNU9\
Ua1JzUW1Rd1ZrbFJWRUpLVVZWS1NsVklhRmhrVlRGSlVucG9TMVJIV2taVlJVVTFUMWh\
hZDAxdVZrbFNWVFZxVlROc2JWa3pWVE5VUjJSYVRraEJlRTVGUmtOT01GSk9XbFJGTkU\
xSVRrWmxSV1J4VkZOME0yTnJOVFJPTURVMVdWaE9lRXQ2Um5CTlJXUlVVVEZKTlU1VVV\
UTk5SRVp0VWpKV1dGUldSbWxqVjNCWVpXdEtZVlJWU1hkU01FVjRWbGRTUzFWV1JsaFV\
WVXBTVWpCT1JHTXdaRUpWVmxaSFVXNWtUbEZyU201YU0wcERXakJXUjFGc1JtcFNSV2h\
GVVZVNVExb3dOVmRUUmtVMFVXdEdiVTlGVmtOUlZURkVVV3BTUW1Rd2RFSlhWVkpYVld\
wQ1UxRnJUa1prTUdjd1UxZFNhVmRIZURaWlZtaFRZa2RPZEZadE5XaFhSVFIzV1RJeFI\
yVlZlSFJOVkZaYVRXcHNNRmt3WkVka1YxWlVUbGR3YVUxcVFqTlJNbVJhVTFWMGRsZHJ\
iRFpoYWtKR1VWaGtTbEpHVGtKUldHUlRWVlZzYjFGV1FqVlBXRnBOVTFkR01WVnJWbEp\
qYlhnMVlteGtNRlI2VmxOaVZYQXdZVmhTVW1GNlpFOVhSRkpMVlVoV2RWVklRazlVYXp\
BeFZWUnNRbUZWUm5sa1JVNTBWRVprWVZSVmJFMVdiRTEyVFZWc1JWbFhjR2xqTVU1Sll\
tNXdkbUpYYjNkV1F6a3paVmhKY21Nd2RFdGpRM1IxVFhwU1VsQlVNR2xNUTBwb1dqSld\
kV1JETVhwaFYyUjFXbGRSZEZwSFJqQlpVMGsyU1cxV05WTnVaRnBYUjNoNldXcEtSMkV\
3YkhGaU1teGhWMGQ0VEZrd1duZFhWbFowVFZVeFdGSnVRWGxYYTFwclZESkplR05HYkZ\
SWFJrcHhXV3hhWVU1R2NFZGFSbVJzWWxaS1JWUldhR3RoYlVwVlVWUktXRlp0VW5KWmE\
yUkxaRlpXV1ZWdGNFNWlXR2d4VjFjd2VGWXlSWGRsUm1oV1lsZG9jbFZxUWxkalJsRjV\
UbGh3YUZadGREWlZNakUwVjJ4a1IxTnVUbGhoTURFMFdrY3hTMk5HVGxWWGEzQm9ZVEo\
zZWxaR1pIZFNiVkpHVFZaV1UxZEdTazlXYTFwM1ZteFNWbFZyY0U5aGVrVXlWVlpTWVZ\
Sc1NrWlNha1pWVmxaS1ExcEVSbXRqUms1WlZHdHdhV0Y2Vm5wWFZFbDRZekpHU0ZOclV\
rNVhSbHB5Vm01d1IyTkdaSE5oUlhCb1ZsUnNkMVV5TVhkWGJGbDRZMGhTV0dKRk1UTlV\
iRlUxVWxac05sRnJPVlpOUnpneFYyMTRSbUZWZUVSVGJuQm9WakpTTVZkV2FGTk5WMDU\
wVm01d1NtRnVRbWxhV0d4TFpESk9kRTlVUW1GV01EUjNWMnhrVW1GVk9YQlRiWGhzVmx\
oQ2RsZFhkR3RoYlVaV1QxaENWR0V4Y0ZkYVYzUnlaVVpTZEdKRmNHcE5SM2d3V2tWb1E\
xbFdSWGRoZWtwVVZqTm9kbFZ0ZEhwbFZsWlpVMnhTYVdKclNrcFdhMVpUVVcxV2MxSnV\
VbFJpVlZwVlZXdGFjbVZzVFhwalJ6bFhUVlpHTmxkWWNFTmhiRWw1V1ROa1ZVMUdSak5\
aVm1SaFZXdHNjR1F5YkdwTmJYaDFXVzB4UjAxSFVsbFRiWGhLWVcwNWNGZEVRazlsYXp\
sV1QxWm9VMkpyY0dGWmJHTTFaV3hOZDA5WVZsSlhSMUpUVjFSR1YyRXhiM2RqUlZaWVV\
qRndUVmxzVWt0WFZUbFhVMnhXVjFJd05URlVSazE0WXpGUmQwNVdRbWxTZWxaMlZqSjB\
SazFGT1VaWGJYUlhZa2hCZDFReFVrOWhNbEY0Vld0d1YxWlVWbGRYUkVwaFYyczVWMWR\
1UWxkaVJHdzFWWHBPVDFaV1JuSmhSa3BRVmpOQ2Vsa3haSHBsVjBsNldUSnNiVlpxUlR\
WSmFYZHBXVmRrYkdKdVVYUmpNbXh1WW1reGFscFlTakJKYW5CaVNXc3hTbE5WVGt0U1J\
VNUVVVmRPZUZvd1JqTlRWVXBDV2pCc1JsZEhlSEZSTURGRlVWVjBRMW95WkhoaFIzUnh\
WREZDVWxWVlVrSmhhMHB6VkZaR2VtUXdUbEpYVlZKWFZWWkdTRkpZWkV0UmJGWlZVbFp\
PVGxGclJraFJWRVpXVWxWT2JtUXdjRlZYUjNoRldXcEplR1F4YkZoT1ZGWk9WV3hXTTF\
KWVpGcFNSbHBTVlZWNFJWRllhRTlhVmxwUFRWWnNkVlJ1UW1GU01uaHZXVEkxY21WRlV\
qWlJWVFZEV2pBMVYxRnJSbXBVVlVweVRWUldWazF0ZDNkWGJGSkdXVlV4UTFvd1pFSk5\
WbFpHVVZoa00xVnNVbGxpUmxKb1YwWktjMVpWYUZkbGJVWkdUVmhhWVZJeFducFZWRUp\
HWkRCb2Ixa3dOVTVoYTBZelZGZHdTazVGTVVWWk0zQk9aV3RGZDFZeWFHcFVhekUyVVZ\
oa1RtRnJhekJVVlZKcVpXc3hObEZVUWxoaGEwcDBWRlpHZW1Rd1RsSlhWVkpYVlZaR1N\
GSllaRXRSYkZaVlVsWk9UbEZyUmtoUlZFWldVbFZPYm1Rd2NGVlhSM2hGV1dwSmVHUXh\
iRmhPVkZaT1ZXeFdNMUpZWkZwU1JscFNWVlY0UlZGWWFFOWFWbHBQVFZac2RWUnVRbUZ\
TTW5odldUSTFjbVZGVWpaUlZUVkRXakExVjFGclJtcFVWVXB5VFZSV1ZrMXRkM2RYYkZ\
KR1dXc3hRMkV3WkVKTlZsWkdVVmhrTTFVeFVsbGlSbEpvVjBaS2MxWlZhRmRsYlVaR1R\
WaGFZVkl4V25wVlZtaERaREF4UjJFelpFWmtNV3hKVXpJNVlWTlljSEZOUlU1Q1ZWWnN\
TbE15T1dGVFdIQnhUVVZTUWxWWFRrVlZWMlJDVWxSWmQwMVZPSEppTW5CRVlUTktSVlZ\
1WXpOYU1Hd3lWMnRWTUdGVVRUQmFSMHB2VVROR2NGSjZaSEZpTWprelYyNUJNR1ZJV2p\
aU2JsSk5XbnBhVlZaNlFtOVViVkpKWkd4Q1JWVXhVbnBrVm1oVVpWWmpOV1JJU1hwUld\
HUkVZa2RhUkdJd1VsZFVia1pRWkhwc05WUldaekpVYlRWT1VqRldNMUpIWkZwU1JscFR\
UVVpDUWxWVlozWlJhMFpTVWtWR2JscFZSazVSYW1oSVVWUkdWbHBGYkROVlZteE9VVzF\
HUWxKcmJ6TlRTRkpVWkROQ1RWUklWbEJYYW1ScVlUQkdjMVZWYUZaTk1tUkNWRmRqZGx\
Ock1VTk5SV1JDVFZaV2ExSkhaRkpXTUVwRFZXMU9WVTVVVFRCaWF6RmFaR3hTYWxKdVV\
uSmFia295VGpOb1ZrNHdVbkJpVldoeFpXdEdWVkZ0WkU5V2EyaFVWbFZXUlZKRlJreFJ\
iV1J1WTJ0S2JsSlZXa05WVjA1RlVWZHdRbE13U201YU0wWnZZVEp3VUZWR1JsSlNSVVp\
1Vkd0c1FsSkZTa2RSVjJ4R1VWaENTMDR6YUhkVWJGWXlWVlZ3U0UxRk5XOVVSMGwyV2x\
oU2FVMXFRazFTUmxWNFRtMTRkMVV3YUZCT01rWnNZbnBDVjFkWVozZGxTR1JFVTFWRmN\
sUjZWWFpYVkZwRllVTjBhVkZxU1RSTmFsSXhZVmRHVUZWWFJsWlNSRnB1VVZVMWIxZFV\
iRmRTYlZGeVlXNUtlVmt3VmpKVGJsRnBURU5LVGxOVmJFUlNNVkpFVVRCR2FVc3laRUp\
rTUd4RFVWZGtTbEpXYUhOaGEwVjJaV3RHVEZGdFpHNWpWMmh5WVdzNVVWVldSa1ZSVjN\
CRFdUQXhVbU16WkVSVlZteEZWbXhHVWxJd1ZqTlRhMHBXVmtWV1ZGUlZTa0pTTUVWNFZ\
sVldSRm96WkV0V1JtaHpVa2RKZVUxWVpGcFdlbFV4VkZaS1ZtUXdWak5YVlZKWFZWWkd\
UVkpGUmpSVWJWWlhWR3BHV21Kck5YZFhhMlJ6WVVkT2RXRXphRVZsYTBaUFVXMWtUMVp\
yU2tKWk1ERkRZWHBGTVZaVVNuTk5SbkJWVWxaS1RsRlVhRWhSVkVaV1VsVkdNMlF3YkZ\
WWFIzaFZXVlpvVTJKR1JYZFNXR1JKWVVkT1QxUlhjRUprTURGeFUxUlNUbEpIVGpWVWJ\
uQldUbFprYjFrd05VNWxhMFl6VkZkd1NrNUZNVVZaTTJ4UFpXeFZNVll5Y0VOaVJURlN\
Zek5rUkZWV2JFVldiRVpTVWpCV00xTnJTbFpXUlZaVVZGVktRbEl3UlhoV1ZWWkVXak5\
rUzFaR2FITlNSMGw1VFZoa1dsWjZWVEZVVmtwV1pEQldNMWRWVWxkVlZrWk5Va1ZHTkZ\
SdFZsZFVha1phWW1zMWQxZHJaSE5oUjA1MVlUTm9SV1ZyUms5UmJXUlBWbXRLUWxrd01\
VTmhla1V4VmxSS2MwMUdjRlZTVjBaT1VXMWtTRkZVUmxaU1ZVWXpaREZLVlZkSGVGVlp\
WbWhUWWtaV1NWWnVjR2hTVkVZeVYydGtWMk14UlhkU1dHUllWa1ZHVlZGdFpHcGpWMmh\
5WVdzNVVWVlZiRU5SYldSdVkxZG9jbUZyT1ZGVlZURkRVVzVrVDFFd1JrSlZhM0JEVm0\
wNWVscEZkRE5YVlRVMFlWWkNORk5JV25CU2JrWk1aV3RTYzA5WFdqQlVTRlpPV1ZjeGQ\
xSnNSbXBYU0dONFRXcGthRlJ0T1ZOWmJrNUpUREJhVG1OdE1UWlJNRVpKVFhwak0wMTZ\
UbXBOYlRscFZVZE9jMlJzVG5sWFZVb3lUVVZPTUZZeFJqQlpWRnBvU3pKT2RrMXNiRE5\
YYTFKQ1ZUQktibFJzV2tsVmF6RkRVVmRaTkZKVlRrVlJWV1JDVlZWbmRsRlhaRVpSVlR\
GQ1RrVmtRazFXVm10U1NHUkdVV2s1TTFWVlZrSmtNR3hFVVd0U1FscHJTbTVVYkZwSlZ\
UQXhSbEl3VWtKV01tUkRWVmh3TkdWdVpIZFZia0pOWlZNNWVWUldWbHBsYlVadlRXNU5\
lRTB5VmxaUFYyUkhaV3RHYTFGdFpFOVdhMmhTVGtWV1Ixb3hSbFppYms1c1RWVjRSR0V\
6VGpGT1JGWjFaRWhzVWxFeFdrSmFSbEpzVVZWR05WSkVhSEprTUU1dVYxVnNUR0l4Y0V\
wbGJXOTNVbFZHTTFOVlVsUlJWVVl6Vld4R1NtRkZSa3BqTVd4eldsWndUR015Y0VkVWE\
wNTZVMnQwYkZWSGVFaFVWVVpOV2xoQ1YxcFViRVpVUkdSUFlqTlJNVTFVVmpObFJ6Rlh\
aRlZ3UTFGWGJFSlpNRlpPVmxaV2IxSldUbnBVUm1SUlRsaG9WRlZXVlhkWFNFWTJWbTV\
GTkZkWVduQlNha1pwVm0wNU5sSXpjRFJPV0hCUFdqSk9lbVI2TURsSmJERTVabEVpTEN\
KemFXZHVZWFIxY21WeklqcGJleUp3Y205MFpXTjBaV1FpT2lKbGVVbzBUbGROYVU5c2M\
ybFVWV3hLVVRCb2NWRXdUa0paTVU1dVVWaGtTbEZyUm01VFZXUkNWMGRvTUUxVVVucGl\
NREZDWWpCa1JGRXpSa2hWTURBd1QxVktRbFJWVGs1U1ZtdzBVVE53UWxOclNtNVViRnB\
EVVZac1ZWRlhkRTlUVlRGVFZGaGtSbFZXYkVWV2JFWlNVekJTUW1OR1VtaFdNVm93VjJ\
4ak1XVnJiRVpTYTJoT1ZWUm9NMUpHUmxwU1JscFNWVlY0UlZGV2NFUldhMDVEVWtaV1I\
xUllhRVpXUlVaUlVXMWtUMVpyU2tKVVZURkVVbXh3YzFsdE1WTmtiVTV5Vkd0S1RsRXd\
SbGxTUmxKS1pVVXhSVlJZYkU5aGEwVXhWRmR3U21WVk5WZGlNV3hGWlcxek1WUXhVbkp\
sUlRGeFZGaG9UbUZyTUhoVU1WSldUbFprY1ZGdGFFNVZXRTR6VVRGR1dsSkdXbEpWVld\
SR1pEQndSVlV3VWtaV1JURkRVbFZrUWsxV1ZrWlJNbVF6VXpGVmVXSkhlR2xXTVZveFd\
UTnNRMUZzU2paU1ZrSk9VVlJDU0ZGVVJsWlNWVTR6WkRCa1VtSkdSbTVWVkVaRFZrVXh\
VMVZZWkVaYU1XeEZWbXhHVWxKclZqTmtSM0JhVmpGd2RGZHNUWGRPVlRsRldYcENUMVp\
GVmxoVVZVcFNVakJGZUZaVlZrSmtNMlJQVmxWYWIxSkZNVFZPVlZwUFpXeFdNRlJXVWt\
Ka01VWlZVV3h3VGxGck1VaFJibXg0VWpGT1RrNUViRUphTUZaSVVUQk9lRkl4VGs1T1J\
HeENaREJXU1ZGVVFrcFJWVXBQVFVSb2NWWXdlSHBOUjBadlV6Qm9XbGR1Vm05aVZ6Rmp\
UREpqTkdScVVsaFRNR2d5VVZoU2FGcHNSazFSVTNSS1pGVXhUMkZITVc1aFZ6RllUakJ\
HVG1OdVJtOWlWMHBWVFRCc2FGVkZUalZoUnpGaFUxWk9kMVI2V20xaVUzTXlVMWhhWTB\
3eldrcGphM1J2VlZaU01WWnRPVXhoYldSYVVWaGtiV0ZyUm5aUmJXUnVZMnRLYmxKVld\
rTlZWMDVEVTFWR1Vsa3dVa05qU0ZKYVYwVTFiMVJHYUZOaVIwMTZWVmhXYWsxdGVITlp\
iR1JYWkZkT05VNVhjR2xOYWtFeVZERlNVazFGTVRaUlZsSkRXakExVjFOR1RsWlNWVkp\
GVVZWMFExb3laSGxSYldSR1VtdEtVbGt3VWtKV1JVWlFVVzFrVDFacmFGSlBSVXBDV21\
wb1JsRnJSazVSTUVrd1VWaGtUVlZXYkVWV2JFbDNWV3RLUkZkWVpFdFRWV3h3V2tWa2I\
ySkZlSFZYYlhocFlsWktNbGt5YXpGaGJHeFlUa2hXYVdKVWEzZFVSekV3WkZkSmVsa3p\
WbXRTTW1oM1dUTnJNVTFzYkZobFJFWmhWa1ZHVEZGdFpHNWpWMmh5WVdzNVVWVldSa1Z\
SVjJSUFUxVkdSVkZyV2tKaFZVazFVVzB4ZUZRemNIRlZWR2hzV1ZkamVWTnVVblprVmx\
KdlVsWm9lVm93T1VOWFZsRjNVWHBvWVdSRGREVlBWemxKVWtad1JWbHNVbEpUVjJoQ1Z\
HMXpNbVJIT1ZOaU1sWkVXVmMxYUZSWGNFNVdSWGgwWWxaV2RXSlhTbkphYWtKNldsaGF\
jbEV3YnpSTmJXc3hWbGhHY1ZWcldsZFZVMHBrVEVOS2FHSkhZMmxQYVVwR1ZYcEpNVTV\
wU2praUxDSnphV2R1WVhSMWNtVWlPaUphWTFwa1dYbzBiMUl3UjJKc09UWnFNWGxZWm5\
kdlRYZGxVVGt6VGpCdFNVUmxjVFkyVTBacWRFdG9lR1pSWjNJMGRUWkpOVEJKWldNMmE\
xWTJhSEV3YVcxdlptTlBhVGs0VW1OSVpXUmpNVzFuZHpCWVp5SjlYWDA9IiwiY3JlYXR\
lZC1vbiI6IjIwMjItMDItMjJUMDc6MzM6MjUuMDIwWiIsImFnZW50LXNpZ24tY2VydCI\
6WyJNSUlDSkRDQ0FjcWdBd0lCQWdJRVhsakNNREFLQmdncWhrak9QUVFEQWpCbE1Rc3d\
DUVlEVlFRR0V3SkJVVEVTTUJBR0ExVUVDZ3dKVFhsRGIyMXdZVzU1TVJVd0V3WURWUVF\
MREF4TmVWTjFZbk5wWkdsaGNua3hEekFOQmdOVkJBY01CazE1VTJsMFpURWFNQmdHQTF\
VRUF3d1JUWGxUYVhSbFVIVnphRTF2WkdWc1EwRXdIaGNOTWpBd01qSTRNRGN6TXpBMFd\
oY05NekF3TWpJNE1EY3pNekEwV2pCbU1Rc3dDUVlEVlFRR0V3SkJVVEVTTUJBR0ExVUV\
DZ3dKVFhsRGIyMXdZVzU1TVJVd0V3WURWUVFMREF4TmVWTjFZbk5wWkdsaGNua3hEekF\
OQmdOVkJBY01CazE1VTJsMFpURWJNQmtHQTFVRUF3d1NUWGxUYVhSbFVIVnphRTF2Wkd\
Wc1FYQndNRmt3RXdZSEtvWkl6ajBDQVFZSUtvWkl6ajBEQVFjRFFnQUU2MDFPK29qQ2t\
yRFJ3N2dJdlpFNGkzNGRiaENxaUc3am9vd1pwNHh2ekZ0TGc2VFcwaE5kSHZQRFNUc3V\
YU3lXOXRyM0F3Q2xmQ29EVk5xT3c5eU1YNk5uTUdVd0RnWURWUjBQQVFIL0JBUURBZ2V\
BTUI4R0ExVWRJd1FZTUJhQUZKN0h0U3dwTEx1T1o3Y2tBbFFIVTNnQU1nL0pNQjBHQTF\
VZERnUVdCQlJjVDUzNG5NWXZUY0Z0a2Zydjd4VTdEaW1IanpBVEJnTlZIU1VFRERBS0J\
nZ3JCZ0VGQlFjREFqQUtCZ2dxaGtqT1BRUURBZ05JQURCRkFpRUFwSjd4cE5VdlFKRzB\
OaExiL2V0YjIwTERVMTZscFNITzdhZW8wVll4MHh3Q0lBK081L1k2RGgrYkIyODI0dWl\
hT1FhVUQ2Z0FOaFk5VkZkK2pycmNFdkp0IiwiTUlJQ0dUQ0NBYitnQXdJQkFnSUVYbGp\
BL3pBS0JnZ3Foa2pPUFFRREFqQmNNUXN3Q1FZRFZRUUdFd0pCVVRFU01CQUdBMVVFQ2d\
3SlRYbERiMjF3WVc1NU1SVXdFd1lEVlFRTERBeE5lVk4xWW5OcFpHbGhjbmt4RHpBTkJ\
nTlZCQWNNQmsxNVUybDBaVEVSTUE4R0ExVUVBd3dJVFhsVGFYUmxRMEV3SGhjTk1qQXd\
Nakk0TURjeU56VTVXaGNOTXpBd01qSTRNRGN5TnpVNVdqQmxNUXN3Q1FZRFZRUUdFd0p\
CVVRFU01CQUdBMVVFQ2d3SlRYbERiMjF3WVc1NU1SVXdFd1lEVlFRTERBeE5lVk4xWW5\
OcFpHbGhjbmt4RHpBTkJnTlZCQWNNQmsxNVUybDBaVEVhTUJnR0ExVUVBd3dSVFhsVGF\
YUmxVSFZ6YUUxdlpHVnNRMEV3V1RBVEJnY3Foa2pPUFFJQkJnZ3Foa2pPUFFNQkJ3TkN\
BQVJKQlZvc2RLd1lOeGlQeEh2aUZxS3pEbDlmdEx1TWFtcEZRY1h3MTI3YU5vUmJzSC9\
GTXJtekNBSDM3NzMzYzJvYlBjbHZTcllCdjBDdFdRdGE2YStjbzJZd1pEQVNCZ05WSFJ\
NQkFmOEVDREFHQVFIL0FnRUFNQTRHQTFVZER3RUIvd1FFQXdJQ0JEQWZCZ05WSFNNRUd\
EQVdnQlF6eHp3cFJwTHkvck1VWXphaDJzMTNlVTlnRnpBZEJnTlZIUTRFRmdRVW5zZTF\
MQ2tzdTQ1bnR5UUNWQWRUZUFBeUQ4a3dDZ1lJS29aSXpqMEVBd0lEU0FBd1JRSWhBSXN\
ZbGVaS3NqRk5Dc0pLZVBsR01BTGVwVmU5RUw3Tm90NTE1d3htVnVKQkFpQWNFTVVVaEV\
Tc0xXUDV4U1FVMFhxelZxOFl2aUYxYlZvekd6eDV6Tmdjc3c9PSJdfX0",
  "signatures":[{
    "protected":"eyJ4NWMiOlsiTUlJQjhEQ0NBWmFnQXdJQkFnSUdBWEJoTUtZSU1\
Bb0dDQ3FHU000OUJBTUNNRnd4Q3pBSkJnTlZCQVlUQWtGUk1SSXdFQVlEVlFRS0RBbE5\
lVU52YlhCaGJua3hGVEFUQmdOVkJBc01ERTE1VTNWaWMybGthV0Z5ZVRFUE1BMEdBMVV\
FQnd3R1RYbFRhWFJsTVJFd0R3WURWUVFEREFoTmVWTnBkR1ZEUVRBZUZ3MHlNREF5TWp\
Bd05qQXlNak5hRncwek1EQXlNakF3TmpBeU1qTmFNSGt4Q3pBSkJnTlZCQVlUQWtGUk1\
SSXdFQVlEVlFRS0RBbE5lVU52YlhCaGJua3hGVEFUQmdOVkJBc01ERTE1VTNWaWMybGt\
hV0Z5ZVRFUE1BMEdBMVVFQnd3R1RYbFRhWFJsTVM0d0xBWURWUVFERENWU1pXZHBjM1J\
5WVhJZ1ZtOTFZMmhsY2lCU1pYRjFaWE4wSUZOcFoyNXBibWNnUzJWNU1Ga3dFd1lIS29\
aSXpqMENBUVlJS29aSXpqMERBUWNEUWdBRUJUVFwvc1JmTDlsSnVGbVwvY24zU2pHcWp\
QXC9xdnBrNytoSTIwOE5oVkRvR2hcLzdLUCt2TXpYeVFRQStqUjZrNnJhTTI4ZlwvbHV\
FK1h1aHVwN1Vmem05Q3FNbk1DVXdFd1lEVlIwbEJBd3dDZ1lJS3dZQkJRVUhBeHd3RGd\
ZRFZSMFBBUUhcL0JBUURBZ2VBTUFvR0NDcUdTTTQ5QkFNQ0EwZ0FNRVVDSUhOK3VBbUp\
ldVhlc1wveWQxd1M0Mlo0RFhKNEptMWErZzNYa1pnZjhUaGxuQWlFQXBVdTZzZnljRWt\
veDdSWlhtZitLOHc0cDZzUldyamExUVJwWTAyNjQxSFk9IiwiTUlJQjhEQ0NBWmVnQXd\
JQkFnSUdBWEJoTUtZQk1Bb0dDQ3FHU000OUJBTUNNRnd4Q3pBSkJnTlZCQVlUQWtGUk1\
SSXdFQVlEVlFRS0RBbE5lVU52YlhCaGJua3hGVEFUQmdOVkJBc01ERTE1VTNWaWMybGt\
hV0Z5ZVRFUE1BMEdBMVVFQnd3R1RYbFRhWFJsTVJFd0R3WURWUVFEREFoTmVWTnBkR1Z\
EUVRBZUZ3MHlNREF5TWpBd05qQXlNak5hRncwek1EQXlNakF3TmpBeU1qTmFNRnd4Q3p\
BSkJnTlZCQVlUQWtGUk1SSXdFQVlEVlFRS0RBbE5lVU52YlhCaGJua3hGVEFUQmdOVkJ\
Bc01ERTE1VTNWaWMybGthV0Z5ZVRFUE1BMEdBMVVFQnd3R1RYbFRhWFJsTVJFd0R3WUR\
WUVFEREFoTmVWTnBkR1ZEUVRCWk1CTUdCeXFHU000OUFnRUdDQ3FHU000OUF3RUhBMEl\
BQkluQ3VoV1ZzZ2NONzFvWmVzMUZHXC9xZFZnTVBva01wZlMyNzFcL2V5SWNcL29EVmJ\
NRkhDYmV2SjVMTTgxOTVOYVpLTlNvSFAzS3dMeXVCaDh2MncwOVp1alJUQkRNQklHQTF\
VZEV3RUJcL3dRSU1BWUJBZjhDQVFFd0RnWURWUjBQQVFIXC9CQVFEQWdJRU1CMEdBMVV\
kRGdRV0JCUXp4endwUnBMeVwvck1VWXphaDJzMTNlVTlnRnpBS0JnZ3Foa2pPUFFRREF\
nTkhBREJFQWlCZGJIU212YW9qaDBpZWtaSUtOVzhRMGxTbGI1K0RLTlFcL05LY1I3dWx\
6dGdJZ2RwejZiUkYyREZtcGlKb3JCMkd5VmE4YVdkd2xIc0RvRVdZY0k0UEdKYmc9Il0\
sImFsZyI6IkVTMjU2In0",
    "signature":"67t3n8zyEek4IM2Ko3Y_UvE1hzp794QFNTqG-HzTrBQtE4_4-yS\
yyFd3kP6YCn35YYJ7yK35d3styo_yoiPfKA"
  }]
}
]]></artwork></figure>

</section>
<section anchor="example-voucher-response-from-masa-to-pledge-via-registrar-and-registrar-agent"><name>Example Voucher-Response (from MASA to Pledge, via Registrar and Registrar-Agent)</name>

<t>The following is an example voucher-response from MASA to Pledge via Registrar and Registrar-Agent, in "General JWS JSON Serialization". The message size of this Voucher is: 1916 bytes</t>

<figure title="Example Voucher-Response from MASA" anchor="ExampleVoucherResponsefigure"><artwork align="left"><![CDATA[
=============== NOTE: '\' line wrapping per RFC 8792 ================

{
  "payload":"eyJpZXRmLXZvdWNoZXI6dm91Y2hlciI6eyJhc3NlcnRpb24iOiJhZ2V\
udC1wcm94aW1pdHkiLCJzZXJpYWwtbnVtYmVyIjoiMDEyMzQ1Njc4OSIsIm5vbmNlIjo\
iTDNJSjZocHRIQ0lRb054YWFiOUhXQT09IiwiY3JlYXRlZC1vbiI6IjIwMjItMDQtMjZ\
UMDU6MTY6MjguNzI2WiIsInBpbm5lZC1kb21haW4tY2VydCI6Ik1JSUJwRENDQVVtZ0F\
3SUJBZ0lHQVcwZUx1SCtNQW9HQ0NxR1NNNDlCQU1DTURVeEV6QVJCZ05WQkFvTUNrMTV\
RblZ6YVc1bGMzTXhEVEFMQmdOVkJBY01CRk5wZEdVeER6QU5CZ05WQkFNTUJsUmxjM1J\
EUVRBZUZ3MHhPVEE1TVRFd01qTTNNekphRncweU9UQTVNVEV3TWpNM016SmFNRFV4RXp\
BUkJnTlZCQW9NQ2sxNVFuVnphVzVsYzNNeERUQUxCZ05WQkFjTUJGTnBkR1V4RHpBTkJ\
nTlZCQU1NQmxSbGMzUkRRVEJaTUJNR0J5cUdTTTQ5QWdFR0NDcUdTTTQ5QXdFSEEwSUF\
CT2t2a1RIdThRbFQzRkhKMVVhSTcrV3NIT2IwVVMzU0FMdEc1d3VLUURqaWV4MDYvU2N\
ZNVBKaWJ2Z0hUQitGL1FUamdlbEhHeTFZS3B3Y05NY3NTeWFqUlRCRE1CSUdBMVVkRXd\
FQi93UUlNQVlCQWY4Q0FRRXdEZ1lEVlIwUEFRSC9CQVFEQWdJRU1CMEdBMVVkRGdRV0J\
CVG9aSU16UWRzRC9qLytnWC83Y0JKdWNIL1htakFLQmdncWhrak9QUVFEQWdOSkFEQkd\
BaUVBdHhRMytJTEdCUEl0U2g0YjlXWGhYTnVocVNQNkgrYi9MQy9mVllEalE2b0NJUUR\
HMnVSQ0hsVnEzeWhCNThUWE1VYnpIOCtPbGhXVXZPbFJEM1ZFcURkY1F3PT0ifX0",
  "signatures":[{
    "protected":"eyJ4NWMiOlsiTUlJQmt6Q0NBVGlnQXdJQkFnSUdBV0ZCakNrWU1\
Bb0dDQ3FHU000OUJBTUNNRDB4Q3pBSkJnTlZCQVlUQWtGUk1SVXdFd1lEVlFRS0RBeEt\
hVzVuU21sdVowTnZjbkF4RnpBVkJnTlZCQU1NRGtwcGJtZEthVzVuVkdWemRFTkJNQjR\
YRFRFNE1ERXlPVEV3TlRJME1Gb1hEVEk0TURFeU9URXdOVEkwTUZvd1R6RUxNQWtHQTF\
VRUJoTUNRVkV4RlRBVEJnTlZCQW9NREVwcGJtZEthVzVuUTI5eWNERXBNQ2NHQTFVRUF\
3d2dTbWx1WjBwcGJtZERiM0p3SUZadmRXTm9aWElnVTJsbmJtbHVaeUJMWlhrd1dUQVR\
CZ2NxaGtqT1BRSUJCZ2dxaGtqT1BRTUJCd05DQUFTQzZiZUxBbWVxMVZ3NmlRclJzOFI\
wWlcrNGIxR1d5ZG1XczJHQU1GV3diaXRmMm5JWEgzT3FIS1Z1OHMyUnZpQkdOaXZPS0d\
CSEh0QmRpRkVaWnZiN294SXdFREFPQmdOVkhROEJBZjhFQkFNQ0I0QXdDZ1lJS29aSXp\
qMEVBd0lEU1FBd1JnSWhBSTRQWWJ4dHNzSFAyVkh4XC90elVvUVwvU3N5ZEwzMERRSU5\
FdGNOOW1DVFhQQWlFQXZJYjNvK0ZPM0JUbmNMRnNhSlpSQWtkN3pPdXNuXC9cL1pLT2F\
FS2JzVkRpVT0iXSwiYWxnIjoiRVMyNTYifQ",
    "signature":"0TB5lr-cs1jqka2vNbQm3bBYWfLJd8zdVKIoV53eo2YgSITnKKY\
TvHMUw0wx9wdyuNVjNoAgLysNIgEvlcltBw"
  }]
}
]]></artwork></figure>

</section>
<section anchor="example-voucher-response-masa-issued-voucher-with-additional-registrar-signature-from-masa-to-pledge-via-registrar-and-registrar-agent"><name>Example Voucher-Response, MASA issued Voucher with additional Registrar signature (from MASA to Pledge, via Registrar and Registrar-Agent)</name>

<t>The following is an example voucher-response from MASA to Pledge via Registrar and Registrar-Agent, in "General JWS JSON Serialization".
The message size of this Voucher is: 3006 bytes</t>

<figure title="Example Voucher-Response from MASA, with additional Registrar signature" anchor="ExampleVoucherResponseWithRegSignfigure"><artwork align="left"><![CDATA[
=============== NOTE: '\' line wrapping per RFC 8792 ================

{
  "payload":"eyJpZXRmLXZvdWNoZXI6dm91Y2hlciI6eyJhc3NlcnRpb24iOiJhZ2V\
udC1wcm94aW1pdHkiLCJzZXJpYWwtbnVtYmVyIjoiMDEyMzQ1Njc4OSIsIm5vbmNlIjo\
iUUJiSXMxNTJzbkFvVzdSeVFMWENvZz09IiwiY3JlYXRlZC1vbiI6IjIwMjItMDktMjl\
UMDM6Mzc6MjYuMzgyWiIsInBpbm5lZC1kb21haW4tY2VydCI6Ik1JSUJwRENDQVVtZ0F\
3SUJBZ0lHQVcwZUx1SCtNQW9HQ0NxR1NNNDlCQU1DTURVeEV6QVJCZ05WQkFvTUNrMTV\
RblZ6YVc1bGMzTXhEVEFMQmdOVkJBY01CRk5wZEdVeER6QU5CZ05WQkFNTUJsUmxjM1J\
EUVRBZUZ3MHhPVEE1TVRFd01qTTNNekphRncweU9UQTVNVEV3TWpNM016SmFNRFV4RXp\
BUkJnTlZCQW9NQ2sxNVFuVnphVzVsYzNNeERUQUxCZ05WQkFjTUJGTnBkR1V4RHpBTkJ\
nTlZCQU1NQmxSbGMzUkRRVEJaTUJNR0J5cUdTTTQ5QWdFR0NDcUdTTTQ5QXdFSEEwSUF\
CT2t2a1RIdThRbFQzRkhKMVVhSTcrV3NIT2IwVVMzU0FMdEc1d3VLUURqaWV4MDYvU2N\
ZNVBKaWJ2Z0hUQitGL1FUamdlbEhHeTFZS3B3Y05NY3NTeWFqUlRCRE1CSUdBMVVkRXd\
FQi93UUlNQVlCQWY4Q0FRRXdEZ1lEVlIwUEFRSC9CQVFEQWdJRU1CMEdBMVVkRGdRV0J\
CVG9aSU16UWRzRC9qLytnWC83Y0JKdWNIL1htakFLQmdncWhrak9QUVFEQWdOSkFEQkd\
BaUVBdHhRMytJTEdCUEl0U2g0YjlXWGhYTnVocVNQNkgrYi9MQy9mVllEalE2b0NJUUR\
HMnVSQ0hsVnEzeWhCNThUWE1VYnpIOCtPbGhXVXZPbFJEM1ZFcURkY1F3PT0ifX0",
  "signatures":[{
    "protected":"eyJ4NWMiOlsiTUlJQmt6Q0NBVGlnQXdJQkFnSUdBV0ZCakNrWU1\
Bb0dDQ3FHU000OUJBTUNNRDB4Q3pBSkJnTlZCQVlUQWtGUk1SVXdFd1lEVlFRS0RBeEt\
hVzVuU21sdVowTnZjbkF4RnpBVkJnTlZCQU1NRGtwcGJtZEthVzVuVkdWemRFTkJNQjR\
YRFRFNE1ERXlPVEV3TlRJME1Gb1hEVEk0TURFeU9URXdOVEkwTUZvd1R6RUxNQWtHQTF\
VRUJoTUNRVkV4RlRBVEJnTlZCQW9NREVwcGJtZEthVzVuUTI5eWNERXBNQ2NHQTFVRUF\
3d2dTbWx1WjBwcGJtZERiM0p3SUZadmRXTm9aWElnVTJsbmJtbHVaeUJMWlhrd1dUQVR\
CZ2NxaGtqT1BRSUJCZ2dxaGtqT1BRTUJCd05DQUFTQzZiZUxBbWVxMVZ3NmlRclJzOFI\
wWlcrNGIxR1d5ZG1XczJHQU1GV3diaXRmMm5JWEgzT3FIS1Z1OHMyUnZpQkdOaXZPS0d\
CSEh0QmRpRkVaWnZiN294SXdFREFPQmdOVkhROEJBZjhFQkFNQ0I0QXdDZ1lJS29aSXp\
qMEVBd0lEU1FBd1JnSWhBSTRQWWJ4dHNzSFAyVkh4XC90elVvUVwvU3N5ZEwzMERRSU5\
FdGNOOW1DVFhQQWlFQXZJYjNvK0ZPM0JUbmNMRnNhSlpSQWtkN3pPdXNuXC9cL1pLT2F\
FS2JzVkRpVT0iXSwidHlwIjoidm91Y2hlci1qd3MranNvbiIsImFsZyI6IkVTMjU2In0\
",
    "signature":"ShqW8uFRkuAXIzjAhB4bolMMndcY7GYq3Kbo94yvGtjCaxEX3Hp\
6QXZUTEJ_kulQ1G7DnaU4igDPdUGtcV9Lkw"},{
    "protected":"eyJ4NWMiOlsiTUlJQjRqQ0NBWWlnQXdJQkFnSUdBWFk3MmJiWk1\
Bb0dDQ3FHU000OUJBTUNNRFV4RXpBUkJnTlZCQW9NQ2sxNVFuVnphVzVsYzNNeERUQUx\
CZ05WQkFjTUJGTnBkR1V4RHpBTkJnTlZCQU1NQmxSbGMzUkRRVEFlRncweU1ERXlNRGN\
3TmpFNE1USmFGdzB6TURFeU1EY3dOakU0TVRKYU1ENHhFekFSQmdOVkJBb01DazE1UW5\
WemFXNWxjM014RFRBTEJnTlZCQWNNQkZOcGRHVXhHREFXQmdOVkJBTU1EMFJ2YldGcGJ\
sSmxaMmx6ZEhKaGNqQlpNQk1HQnlxR1NNNDlBZ0VHQ0NxR1NNNDlBd0VIQTBJQUJCazE\
2S1wvaTc5b1JrSzVZYmVQZzhVU1I4XC91czFkUFVpWkhNdG9rU2RxS1c1Zm5Xc0JkK3F\
STDdXUmZmZVdreWdlYm9KZklsbHVyY2kyNXduaGlPVkNHamV6QjVNQjBHQTFVZEpRUVd\
NQlFHQ0NzR0FRVUZCd01CQmdnckJnRUZCUWNESERBT0JnTlZIUThCQWY4RUJBTUNCNEF\
3U0FZRFZSMFJCRUV3UDRJZGNtVm5hWE4wY21GeUxYUmxjM1F1YzJsbGJXVnVjeTFpZEM\
1dVpYU0NIbkpsWjJsemRISmhjaTEwWlhOME5pNXphV1Z0Wlc1ekxXSjBMbTVsZERBS0J\
nZ3Foa2pPUFFRREFnTklBREJGQWlCeGxkQmhacTBFdjVKTDJQcldDdHlTNmhEWVcxeUN\
PXC9SYXVicEM3TWFJRGdJaEFMU0piZ0xuZ2hiYkFnMGRjV0ZVVm9cL2dHTjBcL2p3ekp\
aMFNsMmg0eElYazEiXSwidHlwIjoidm91Y2hlci1qd3MranNvbiIsImFsZyI6IkVTMjU\
2In0",
    "signature":"N4oXV48V6umsHMKkhdSSmJYFtVb6agjD32uXpIlGx6qVE7Dh0-b\
qhRRyjnxp80IV_Fy1RAOXIIzs3Q8CnMgBgg"
  }]
}
]]></artwork></figure>

</section>
</section>
<section anchor="pledgehttps"><name>HTTP-over-TLS operations between Registrar-Agent and Pledge</name>

<t>The use of HTTP-over-TLS between Registrar-Agent and pledge has been identified as an optional mechanism.</t>

<t>Provided that the key-agreement in the underlying TLS protocol connection can be properly authenticated, the use of TLS provides privacy for the voucher and enrollment operations between the pledge and the Registrar-Agent.
The authenticity of the onboarding and enrollment is not dependant upon the security of the TLS connection.</t>

<t>The use of HTTP-over-TLS is not mandated by this document for a number of reasons:</t>

<t><list style="numbers">
  <t>A certificate is generally required in order to do TLS.  While there are other modes of authentication including PSK, various EAP methods and raw public key, they do no help as there is no previous relationship between the Registrar-Agent.</t>
  <t>The pledge can use it's IDevID certificate to authenticate itself, but <xref target="RFC6125"/> DNS-ID methods do not apply as the pledge does not have a FQDN.  Instead a new mechanism is required, which authenticates the X520SerialNumber DN attribute which must be present in every IDevID.</t>
</list></t>

<t>If the Registrar-Agent has a preconfigured list of which product-serial-number(s), from which manufacturers it expects to see, then it can attempt to match this pledge against a list of potential devices.</t>

<t>In many cases only the list of manufacturers is known ahead of time, so at most the Registrar-Agent can show the X520SerialNumber to the (human) operator who may then attempt to confirm that they are standing in front of a device with that product-serial-number.
The use of scannable QRcodes may help automate this in some cases.</t>

<t><list style="numbers">
  <t>The CA used to sign the IDevID will be a manufacturer private PKI as described in <xref section="4.1" sectionFormat="comma" target="I-D.irtf-t2trg-taxonomy-manufacturer-anchors"/>.
The anchors for this PKI will never be part of the public WebPKI anchors which are distributed with most smartphone operating systems.
A Registrar-Agent application will need to use different APIs in order to initiate an HTTPS connection without performing WebPKI verification.
The application will then have to do it's own certificate chain verification against a store of manufacturer trust anchors.
In the Android ecosystem this involved use of a customer TrustManager: many application developers do not create these correctly, and there is significant push to remove this option as it has repeatedly resulted in security failures. See <xref target="androidtrustfail"/></t>
  <t>The use of the Host: (or :authority in HTTP/2) is explained in <xref section="7.2" sectionFormat="comma" target="RFC9110"/>. This header is mandatory, and so a compliant HTTPS client is going to insert it.
But, the contents of this header will at best be an IP address that came from the discovery process.
The pledge <bcp14>MUST</bcp14> therefore ignore the Host: header when it processes requests, and the pledge <bcp14>MUST NOT</bcp14> do any kind of name-base virtual hosting using the IP address/port combination.
Note that there is no requirement for the pledge to operate it's BRSKI-PRM service on port 80 or port 443, so if there is no reason for name-based virtual hosting.</t>
  <t>Note that an Extended Key Usage (EKU) for TLS WWW Server authentication cannot be expected in the pledge's IDevID certificate.
IDevID certificates are intended to be widely useable and EKU does not support that use.</t>
</list></t>

</section>
<section anchor="app_history"><name>History of Changes [RFC Editor: please delete]</name>

<t>Proof of Concept Code available</t>

<t>From IETF draft 10 -&gt; IETF draft 11:</t>

<t><list style="symbols">
  <t>issue #79, clarified that BRSKI discovery in the context of BRSKI-PRM is not needed in <xref target="discovery_uc2_reg"/>.</t>
  <t>issue #103, removed step 6 in verification handling for the wrapped CA certificate provisioning as only applicable after enrollment <xref target="exchanges_uc2_3c"/></t>
  <t>issue #128: included notation of nomadic operation of the Registrar-Agent in <xref target="architecture"/>, including proposed text from PR #131</t>
  <t>issue #130, introduced DNS service discovery name for brski_pledge to enable discovery by the Registrar-Agent in <xref target="iana-con"/></t>
  <t>removed unused reference RFC 5280</t>
  <t>removed site terminology</t>
  <t>deleted duplicated text in <xref target="pledge_ep"/></t>
  <t>clarified registrar discovery and relation to BRSKI-Discovery in <xref target="discovery_uc2_reg"/></t>
  <t>clarified discovery of pledges by the Registrar-Agent in <xref target="discovery_uc2_ppa"/>, deleted reference to GRASP as handled in BRSKI-Discovery</t>
  <t>addressed comments from SECDIR early review</t>
</list></t>

<t>From IETF draft 09 -&gt; IETF draft 10:</t>

<t><list style="symbols">
  <t>issue #79, clarified discovery in the context of BRSKI-PRM and included information about future discovery enhancements in a separate draft in <xref target="discovery_uc2_reg"/>.</t>
  <t>issue #93, included information about conflict resolution in mDNS and GRASP in <xref target="discovery_uc2_ppa"/></t>
  <t>issue #103, included verification handling for the wrapped CA certificate provisioning in <xref target="exchanges_uc2_3c"/></t>
  <t>issue #106, included additional text to elaborate more the registrar status handling in <xref target="exchanges_uc2_4"/></t>
  <t>issue #116, enhanced DoS description in <xref target="sec_cons-dos"/></t>
  <t>issue #120, included statement regarding pledge host header processing in <xref target="pledge_ep"/></t>
  <t>issue #122, availability of product-serial-number information on registrar agent clarified in <xref target="exchanges_uc2_1"/></t>
  <t>issue #123, Clarified usage of alternative voucher formats in  <xref target="rvr-proc"/></t>
  <t>issue #124, determination of pinned domain certificate done as in RFC 8995 included in <xref target="exchanges_uc2_2_vc"/></t>
  <t>issue #125, remove strength comparison of voucher assertions in <xref target="agt_prx"/> and <xref target="exchanges_uc2"/></t>
  <t>issue #130, aligned the usage of site and domain throughout the document</t>
  <t>changed naming of registrar certificate from LDevID(RegAgt) to EE (RegAgt) certificate throughout the document</t>
  <t>change x5b to x5bag according to <xref target="RFC9360"/></t>
  <t>updated JSON examples -&gt; "signature": BASE64URL(JWS Signature)</t>
</list></t>

<t>From IETF draft 08 -&gt; IETF draft 09:</t>

<t><list style="symbols">
  <t>issue #80, enhanced <xref target="discovery_uc2_ppa"/> with clarification on the product-serial-number and the inclusion of GRASP</t>
  <t>issue #81, enhanced introduction with motivation for agent_signed_data</t>
  <t>issue #82, included optional TLS protection of the communication link between Registrar-Agent and pledge in the introduction <xref target="req-sol"/>, and <xref target="exchanges_uc2_1"/></t>
  <t>issue #83, enhanced <xref target="PER-response"/> and <xref target="exchanges_uc2_2_per"/> with note to re-enrollment</t>
  <t>issue #87, clarified available information at the Registrar-Agent in <xref target="exchanges_uc2_1"/></t>
  <t>issue #88, clarified, that the PVR in <xref target="pvrr"/> and PER in <xref target="PER-response"/> may contain the certificate chain. If not contained it <bcp14>MUST</bcp14> be available at the registrar.</t>
  <t>issue #91, clarified that a separate HTTP connection may also be used to provide the PER in <xref target="exchanges_uc2_2_per"/></t>
  <t>resolved remaining editorial issues discovered after WGLC (responded to on the mailing list in Reply 1 and Reply 2) resulting in more consistent descriptions</t>
  <t>issue #92: kept separate endpoint for wrapped CSR on registrar <xref target="exchanges_uc2_2_wca"/></t>
  <t>issue #94: clarified terminology (possess vs. obtained)</t>
  <t>issue #95: clarified optional IDevID CA certificates on Registrar-Agent <xref target="exchanges_uc2_3"/></t>
  <t>issue #96: updated <xref target="exchangesfig_uc2_3"/> to correct to just one CA certificate provisioning</t>
  <t>issue #97: deleted format explanation in <xref target="exchanges_uc2_3"/> as it may be misleading</t>
  <t>issue #99: motivated verification of second signature on voucher in <xref target="exchanges_uc2_3"/></t>
  <t>issue #100: included negative example in <xref target="vstat"/></t>
  <t>issue #101: included handling if <xref target="exchanges_uc2_3b"/> voucher telemetry information has not been received by the Registrar-Agent</t>
  <t>issue #102: relaxed requirements for CA certs provisioning in <xref target="exchanges_uc2_3c"/></t>
  <t>issue #105: included negative example in <xref target="estat"/></t>
  <t>issue #107: included example for certificate revocation in <xref target="exchanges_uc2_4"/></t>
  <t>issue #108: renamed heading to Pledge-Status Request of <xref target="exchanges_uc2_5a"/></t>
  <t>issue #111: included pledge-status response processing for authenticated requests in <xref target="exchanges_uc2_5b"/></t>
  <t>issue #112: added "Example key word in pledge-status response in <xref target="stat_res"/></t>
  <t>issue #113: enhanced description of status reply for "factory-default" in  <xref target="exchanges_uc2_5b"/></t>
  <t>issue #114: Consideration of optional TLS usage in Privacy Considerations</t>
  <t>issue #115: Consideration of optional TLS usage in Privacy Considerations to protect potentially privacy related information in the bootstrapping like status information, etc.</t>
  <t>issue #116: Enhanced DoS description and mitigation options in security consideration section</t>
  <t>updated references</t>
</list></t>

<t>From IETF draft 07 -&gt; IETF draft 08:</t>

<t><list style="symbols">
  <t>resolved editorial issues discovered after WGLC (still open issues remaining)</t>
  <t>resolved first comments from the Shepherd review as discussed in PR #85 on the ANIMA github</t>
</list></t>

<t>From IETF draft 06 -&gt; IETF draft 07:</t>

<t><list style="symbols">
  <t>WGLC resulted in a removal of the voucher enhancements completely from this document to RFC 8366bis, containing all enhancements and augmentations of the voucher, including the voucher-request as well as the tree diagrams</t>
  <t>smaller editorial corrections</t>
</list></t>

<t>From IETF draft 05 -&gt; IETF draft 06:</t>

<t><list style="symbols">
  <t>Update of list of reviewers</t>
  <t>Issue #67, shortened the pledge endpoints to prepare for constraint deployments</t>
  <t>Included table for new endpoints on the registrar in the overview of the Registrar-Agent</t>
  <t>addressed review comments from SECDIR early review (terminology clarifications, editorial improvements)</t>
  <t>addressed review comments from IOTDIR early review (terminology clarifications, editorial improvements)</t>
</list></t>

<t>From IETF draft 04 -&gt; IETF draft 05:</t>

<t><list style="symbols">
  <t>Restructured document to have a distinct section for the object flow and handling and shortened introduction, issue #72</t>
  <t>Added security considerations for using mDNS without a specific product-serial-number, issue #75</t>
  <t>Clarified pledge-status responses are cumulative, issue #73</t>
  <t>Removed agent-sign-cert from trigger data to save bandwidth and remove complexity through options, issue #70</t>
  <t>Changed terminology for LDevID(Reg) certificate to registrar LDevID certificate, as it does not need to be an LDevID, issue #66</t>
  <t>Added new protected header parameter (created-on) in PER to support freshness validation, issue #63</t>
  <t>Removed reference to CAB Forum as not needed for BRSKI-PRM specifically, issue #65</t>
  <t>Enhanced error codes in section 5.5.1, issue #39, #64</t>
  <t>Enhanced security considerations and privacy considerations, issue #59</t>
  <t>Issue #50 addressed by referring to the utilized enrollment protocol</t>
  <t>Issue #47 MASA verification of LDevID(RegAgt) to the same registrar LDevID certificate domain CA</t>
  <t>Reworked terminology of "enrollment object", "certification object", "enrollment request object", etc., issue #27</t>
  <t>Reworked all message representations to align with encoding</t>
  <t>Added explanation of MASA requiring domain CA cert in section 5.5.1 and section 5.5.2, issue #36</t>
  <t>Defined new endpoint for pledge bootstrapping status inquiry, issue #35 in section <xref target="exchanges_uc2_5"/>, IANA considerations and section <xref target="pledge_ep"/></t>
  <t>Included examples for several objects in section <xref target="examples"/> including message example sizes, issue #33</t>
  <t>PoP for private key to registrar certificate included as mandatory, issues #32 and #49</t>
  <t>Issue #31, clarified that combined pledge may act as client/server for further (re)enrollment</t>
  <t>Issue #42, clarified that Registrar needs to verify the status responses with and ensure that they match the audit log response from the MASA, otherwise it needs drop the pledge and revoke the certificate</t>
  <t>Issue #43, clarified that the pledge shall use the create time from the trigger message if the time has not been synchronized, yet.</t>
  <t>Several editorial changes and enhancements to increasing readability.</t>
</list></t>

<t>From IETF draft 03 -&gt; IETF draft 04:</t>

<t><list style="symbols">
  <t>In deep Review by Esko Dijk lead to issues #22-#61, which are bein stepwise integrated</t>
  <t>Simplified YANG definition by augmenting the voucher-request from RFC 8995 instead of redefining it.</t>
  <t>Added explanation for terminology "endpoint" used in this document, issue #16</t>
  <t>Added clarification that Registrar-Agent may collect PVR or PER or both in one run, issue #17</t>
  <t>Added a statement that nonceless voucher may be accepted, issue #18</t>
  <t>Simplified structure in section <xref target="sup-env"/>, issue #19</t>
  <t>Removed join proxy in <xref target="uc2figure"/> and added explanatory text, issue #20</t>
  <t>Added description of pledge-CAcerts endpoint plus further handling of providing a wrapped CA certs response to the pledge in section <xref target="exchanges_uc2_3"/>; also added new required registrar endpoint (section <xref target="exchanges_uc2_2"/> and IANA considerations) for the registrar to provide a wrapped CA certs response, issue #21</t>
  <t>utilized defined abbreviations in the document consistently, issue #22</t>
  <t>Reworked text on discovery according to issue #23 to clarify scope and handling</t>
  <t>Added several clarifications based on review comments</t>
</list></t>

<t>From IETF draft 02 -&gt; IETF draft 03:</t>

<t><list style="symbols">
  <t>Updated examples to state "base64encodedvalue==" for x5c occurrences</t>
  <t>Include link to SVG graphic as general overview</t>
  <t>Restructuring of section 5 to flatten hierarchy</t>
  <t>Enhanced requirements and motivation in <xref target="req-sol"/></t>
  <t>Several editorial improvements based on review comments</t>
</list></t>

<t>From IETF draft 01 -&gt; IETF draft 02:</t>

<t><list style="symbols">
  <t>Issue #15 included additional signature on voucher from registrar in section <xref target="exchanges_uc2_2"/> and section <xref target="agt_prx"/>
The verification of multiple signatures is described in section <xref target="exchanges_uc2_3"/></t>
  <t>Included representation for General JWS JSON Serialization for examples</t>
  <t>Included error responses from pledge if it is not able to create a pledge voucher-request or an enrollment request in section <xref target="exchanges_uc2_1"/></t>
  <t>Removed open issue regarding handling of multiple CSRs and enrollment responses during the bootstrapping as the initial target it the provisioning of a generic LDevID certificate. The defined endpoint on the pledge may also be used for management of further certificates.</t>
</list></t>

<t>From IETF draft 00 -&gt; IETF draft 01:</t>

<t><list style="symbols">
  <t>Issue #15 lead to the inclusion of an option for an additional signature of the registrar on the voucher received from the MASA before forwarding to the Registrar-Agent to support verification of POP of the registrars private key in section <xref target="exchanges_uc2_2"/> and <xref target="exchanges_uc2_3"/>.</t>
  <t>Based on issue #11, a new endpoint was defined for the registrar to enable delivery of the wrapped enrollment request from the pledge (in contrast to plain PKCS#10 in simple enroll).</t>
  <t>Decision on issue #8 to not provide an additional signature on the enrollment-response object by the registrar. As the enrollment response will only contain the generic LDevID certificate. This credential builds the base for further configuration outside the initial enrollment.</t>
  <t>Decision on issue #7 to not support multiple CSRs during the bootstrapping, as based on the generic LDevID certificate the pledge may enroll for further certificates.</t>
  <t>Closed open issue #5 regarding verification of ietf-ztp-types usage as verified
via a proof-of-concept in section {#exchanges_uc2_1}.</t>
  <t>Housekeeping: Removed already addressed open issues stated in the draft directly.</t>
  <t>Reworked text in from introduction to section pledge-responder-mode</t>
  <t>Fixed "serial-number" encoding in PVR/RVR</t>
  <t>Added prior-signed-voucher-request in the parameter description of the
registrar-voucher-request in <xref target="exchanges_uc2_2"/>.</t>
  <t>Note added in <xref target="exchanges_uc2_2"/> if sub-CAs are used, that the
corresponding information is to be provided to the MASA.</t>
  <t>Inclusion of limitation section (pledge sleeps and needs to be waked
up. Pledge is awake but Registrar-Agent is not available) (Issue #10).</t>
  <t>Assertion-type aligned with voucher in RFC8366bis, deleted related
open issues. (Issue #4)</t>
  <t>Included table for endpoints in <xref target="pledge_ep"/> for better readability.</t>
  <t>Included registrar authorization check for Registrar-Agent during
TLS handshake  in section <xref target="exchanges_uc2_2"/>. Also enhanced figure
<xref target="exchangesfig_uc2_2"/> with the authorization step on TLS level.</t>
  <t>Enhanced description of registrar authorization check for Registrar-Agent
based on the agent-signed-data in section <xref target="exchanges_uc2_2"/>. Also
enhanced figure <xref target="exchangesfig_uc2_2"/> with the authorization step
on pledge-voucher-request level.</t>
  <t>Changed agent-signed-cert to an array to allow for providing further
certificate information like the issuing CA cert for the LDevID(RegAgt)
certificate in case the registrar and the Registrar-Agent have different
issuing CAs in <xref target="exchangesfig_uc2_2"/> (issue #12).
This also required changes in the YANG module in <xref target="I-D.ietf-anima-rfc8366bis"/></t>
  <t>Addressed YANG warning (issue #1)</t>
  <t>Inclusion of examples for a trigger to create a pledge-voucher-request
and an enrollment-request.</t>
</list></t>

<t>From IETF draft-ietf-anima-brski-async-enroll-03 -&gt; IETF anima-brski-prm-00:</t>

<t><list style="symbols">
  <t>Moved UC2 related parts defining the pledge in responder mode from
draft-ietf-anima-brski-async-enroll-03 to this document
This required changes and adaptations in several sections to remove
the description and references to UC1.</t>
  <t>Addressed feedback for voucher-request enhancements from YANG doctor
early review in <xref target="voucher-request-prm-yang"/> as well as in the
security considerations (formerly named ietf-async-voucher-request).</t>
  <t>Renamed ietf-async-voucher-request to IETF-voucher-request-prm to
to allow better listing of voucher related extensions; aligned with
constraint voucher (#20)</t>
  <t>Utilized ietf-voucher-request-async instead of ietf-voucher-request
in voucher exchanges to utilize the enhanced voucher-request.</t>
  <t>Included changes from draft-ietf-netconf-sztp-csr-06 regarding the
YANG definition of csr-types into the enrollment request exchange.</t>
</list></t>

<t>From IETF draft 02 -&gt; IETF draft 03:</t>

<t><list style="symbols">
  <t>Housekeeping, deleted open issue regarding YANG voucher-request
in <xref target="exchanges_uc2_1"/> as voucher-request was
enhanced with additional leaf.</t>
  <t>Included open issues in YANG model in <xref target="architecture"/> regarding assertion
value agent-proximity and csr encapsulation using SZTP sub module).</t>
</list></t>

<t>From IETF draft 01 -&gt; IETF draft 02:</t>

<t><list style="symbols">
  <t>Defined call flow and objects for interactions in UC2. Object format
based on draft for JOSE signed voucher artifacts and aligned the
remaining objects with this approach in <xref target="exchanges_uc2"/>.</t>
  <t>Terminology change: issue #2 pledge-agent -&gt; Registrar-Agent to
better underline Registrar-Agent relation.</t>
  <t>Terminology change: issue #3 PULL/PUSH -&gt; pledge-initiator-mode
and pledge-responder-mode to better address the pledge operation.</t>
  <t>Communication approach between pledge and Registrar-Agent
changed by removing TLS-PSK (former section TLS establishment)
and associated references to other drafts in favor of relying on
higher layer exchange of signed data objects. These data objects
are included also in the pledge-voucher-request and lead to an
extension of the YANG module for the voucher-request (issue #12).</t>
  <t>Details on trust relationship between Registrar-Agent and
registrar (issue #4, #5, #9) included in <xref target="architecture"/>.</t>
  <t>Recommendation regarding short-lived certificates for
Registrar-Agent authentication towards registrar (issue #7) in
the security considerations.</t>
  <t>Introduction of reference to Registrar-Agent signing certificate using SKID
in Registrar-Agent signed data (issue #37).</t>
  <t>Enhanced objects in exchanges between pledge and Registrar-Agent
to allow the registrar to verify agent-proximity to the pledge
(issue #1) in <xref target="exchanges_uc2"/>.</t>
  <t>Details on trust relationship between Registrar-Agent and
pledge (issue #5) included in <xref target="architecture"/>.</t>
  <t>Split of use case 2 call flow into sub sections in <xref target="exchanges_uc2"/>.</t>
</list></t>

<t>From IETF draft 00 -&gt; IETF draft 01:</t>

<t><list style="symbols">
  <t>Update of scope in <xref target="sup-env"/> to include in
which the pledge acts as a server. This is one main motivation
for use case 2.</t>
  <t>Rework of use case 2 in <xref target="architecture"/> to consider the
transport between the pledge and the pledge-agent. Addressed is
the TLS channel establishment between the pledge-agent and the
pledge as well as the endpoint definition on the pledge.</t>
  <t>First description of exchanged object types (needs more work)</t>
  <t>Clarification in discovery options for enrollment endpoints at
the domain registrar based on well-known endpoints do not
result in additional /.well-known URIs. Update of the illustrative example.
Note that the change to /brski for the voucher related endpoints
has been taken over in the BRSKI main document.</t>
  <t>Updated references.</t>
  <t>Included Thomas Werner as additional author for the document.</t>
</list></t>

<t>From individual version 03 -&gt; IETF draft 00:</t>

<t><list style="symbols">
  <t>Inclusion of discovery options of enrollment endpoints at
the domain registrar based on well-known endpoints in
new section as replacement of section 5.1.3
in the individual draft. This is intended to support both use
cases in the document. An illustrative example is provided.</t>
  <t>Missing details provided for the description and call flow in
pledge-agent use case <xref target="architecture"/>, e.g. to
accommodate distribution of CA certificates.</t>
  <t>Updated CMP example in to use lightweight CMP instead of CMP, as the draft already provides
the necessary /.well-known endpoints.</t>
  <t>Requirements discussion moved to separate section in
<xref target="req-sol"/>. Shortened description of proof
of identity binding and mapping to existing protocols.</t>
  <t>Removal of copied call flows for voucher exchange and registrar
discovery flow from <xref target="RFC8995"/> in UC1 to avoid doubling or text or
inconsistencies.</t>
  <t>Reworked abstract and introduction to be more crisp regarding
the targeted solution. Several structural changes in the document
to have a better distinction between requirements, use case
description, and solution description as separate sections.
History moved to appendix.</t>
</list></t>

<t>From individual version 02 -&gt; 03:</t>

<t><list style="symbols">
  <t>Update of terminology from self-contained to authenticated
self-contained object to be consistent in the wording and to
underline the protection of the object with an existing
credential. Note that the naming of this object may be discussed.
An alternative name may be attestation object.</t>
  <t>Simplification of the architecture approach for the initial use
case having an offsite PKI.</t>
  <t>Introduction of a new use case utilizing authenticated
self-contain objects to onboard a pledge using a commissioning
tool containing a pledge-agent. This requires additional changes
in the BRSKI call flow sequence and led to changes in the
introduction, the application example,and also in the
related BRSKI-PRM call flow.</t>
</list></t>

<t>From individual version 01 -&gt; 02:</t>

<t><list style="symbols">
  <t>Update of introduction text to clearly relate to the usage of
IDevID and LDevID.</t>
  <t>Update of description of architecture elements and
changes to BRSKI in <xref target="architecture"/>.</t>
  <t>Enhanced consideration of existing enrollment protocols in the
context of mapping the requirements to existing solutions in
<xref target="req-sol"/>.</t>
</list></t>

<t>From individual version 00 -&gt; 01:</t>

<t><list style="symbols">
  <t>Update of examples, specifically for building automation as
well as two new application use cases in <xref target="sup-env"/>.</t>
  <t>Deletion of asynchronous interaction with MASA to not
complicate the use case. Note that the voucher exchange can
already be handled in an asynchronous manner and is therefore
not considered further. This resulted in removal of the
alternative path the MASA in Figure 1 and the associated
description in <xref target="architecture"/>.</t>
  <t>Enhancement of description of architecture elements and
changes to BRSKI in <xref target="architecture"/>.</t>
  <t>Consideration of existing enrollment protocols in the context
of mapping the requirements to existing solutions in <xref target="req-sol"/>.</t>
  <t>New section starting with the
mapping to existing enrollment protocols by collecting
boundary conditions.</t>
</list></t>

</section>

    <section anchor="contributors" numbered="false" toc="include" removeInRFC="false">
        <name>Contributors</name>
    <contact initials="E." surname="Dijk" fullname="Esko Dijk">
      <organization>IoTconsultancy.nl</organization>
      <address>
        <email>esko.dijk@iotconsultancy.nl</email>
      </address>
    </contact>
    <contact initials="T." surname="Eckert" fullname="Toerless Eckert">
      <organization>Futurewei</organization>
      <address>
        <email>tte@cs.fau.de</email>
      </address>
    </contact>
    <contact initials="M." surname="Kovatsch" fullname="Matthias Kovatsch">
      <organization></organization>
      <address>
        <email>ietf@kovatsch.net</email>
      </address>
    </contact>
    </section>

  </back>

<!-- ##markdown-source:
H4sIAAAAAAAAA+y961YkR5Yu+J+n8EZnLYEUEQnkRRJdN0SiElV5oQFJ00er
Ru1EOOCVQXiUuweISmWv8xrzb55lHmWeZPbVbJu5eUSQSnWVeg6lkiDC3e62
7/vbw+Fwoy3babGffXl69ufj7K5sr7OTaTG5KrJylp0WzbyaTYo6e1lNimyL
HhqenL7c3sgvLuriVt7DjzYm1XiW30BTkzq/bIdl0V4O81l5kw8v6uZNOZzX
N8Pd3Y28LvL97PW8qPO2rGZNls8m2ct8ll8VN8Ws3bi72s8OXh2/PMi+++PG
JG+hwb2dvccbTQsP/pBPqxl80taLYqOc1/Rb0+7t7Hyxs7fRLC5uyqaBVs/v
5/DU8dH5V2F7qzof5+1+1rSTjXm5v5FlbTXezz6+L5qP4Y9xdTPPx63/oLm/
qYvLxnxQ1W34CQxxVrXlZVlM4MNZRU+1dembyRftdVXvbwxhveHFs1H2VV0W
DTzHi3nWFpeXxcx9WtUwn7MSh9tkB3+ET3Qn5EPuoSigh9dtWw2/zq9nw9Ny
dpU9w0mU7f1+9nIxK8fXNKcJ9PHx57ufPf6C57iYtTU88ceivsln9/BRcZOX
U1wUGsfoEsfxh4b7GsGawCOLutzPrtt23uw/enR3dzcyXz/SmZ2Psu+KelbU
bmrn19VN3vhP/1FTa2kcwzsax/tM7WiUvShyP7GjaVm1+hHN6rBsxlV2dg+r
eGOncQpjbUv4K2+aIvvMzeK7fDotm2I6LWZuKodfDz9/vPPETuUM7uvfi3oK
pxg+nl/T3dj89Mlu9uRJ9vlnn2dfwM3Y9DOdwpD+MMax0PRk+C9HNI68njTV
zE3iJX5UTLPD6FveJeixmMIyZmfVZXsH1yr7rqrfNL6rm3H9KZKAPzT66Gic
2wXV9TRfP9oYVzCx8mLRmisBq/u8/Osbv7rNm0o/ocEcV+fwXrOYAoUY349m
Uz+KAp4dTeDZP8CORA8N9RhWsIJF02RH4zdF3WqrXy3aRV3cFaU5KG3xh3Ez
uswXo0nh3n+Zt+11CQf5z9Vt3jZ0+OQFWoA38vFoVrQbt8VsUSBpuaqrxVwo
E550JJQZv/WW/vgDvjyCobzDp4EuLy72+bHh3dWjiLBuzCo41G15S22ffnX4
7LNne/7Xx/LrZzuPd/TXp7tP5dfPd57op58/fvZMf322u+N/dc9+8YX++sXj
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
QJzt8M1PEg8/kNcKJN8R5wdOKTEBnvQ6PTpNMmji1cWbacWLckj2+mRzfNTv
vNHS8itvlXapRV5eHp9YvTX3Jj7M15uXm4mctzSw/jNNOm0MnrKZtL+7Tag+
7rt0jGqS8LcFXhUiaaoAvK7z+nr/9Dy/5sG/JqINav1+Ba5Dw/poDaux5bRb
QRyGv4R8fgSiDkxaWEuf/AcvTE2JMJ6ZCc739U56+GZI0hQ5biUzaaOjPko6
p7OIFw96vu34udq/6PHiIQ1+s6euhb3YVlma7fvpubbjPw3xVJuquX30cj61
fW65FCsHfIqih7VcDk16uz3ct0bxgaf7GmlfJk+qe0o1nfj+tAqrlAPZI8+T
1sdQamS6/MDpmkR8SnG2UoTtq/bfmwzhGe8vHwbi8n0rD1QxqGZrmcezAX/u
Kq40knLz1SDfyIefe6aL0xevhJDGnF44ajdBk4xPxlxne06jbx0y4xdpT8x1
zY8g8No+b7UT8IeRPnD/TMjOj3S2bphUjqdOtj+fZcINyvtqqNc6VjWL38tt
Vanzej87erU3/OLY9s/OpCy2Z7b3qhR3nYiMmmtCTfGv1ndetL7cbU+1Dk4P
G7zH214fMH/9pBZo3GdO6t4Swx9Vfq7eSeByyyu5nS4W/YIEqjMu9bEnDDuv
Nnuqcyx13a/t0/wcNEIIQbF9qjJ6nHVoE0u+bkedp0NX/LLg62n+XGRfqb8w
qWy4hhGaGz+vQ4ecqsB2e92crm04XvvtwVoqNTZz4fBSfDTbqolm+3TbPIr6
97//D74Gn2nD77fmA3Vp77xidNsqn8k52hWl1viTGQt6V7J9sAfg1qQz3x4F
bODrw5i/QXQiw6e8OCwXcHlRnakSC4nTkO3BxFAqhbmRumL9NqEpW60/fBG6
AslTOV3grs7ncpeH4Tw+QZEyvvRRZcrVDk01dsTgGY9ympXD4Kpmu8LnloJ2
fqKfpw9Vccj115COqRAm85toV1duXCclskVab2gGq7SmSBtKHBDCLuIdv62w
WHHPsgiheqDeGyK38qfrQbApYoqbPlxPtin+MoAHXCGeiD5cj+JVtFmk+PA6
TJPgaVsl1carx/W1i781+5oLSjQVT+VpKcOnumL9ii9ddXa1OlIKpfxOuzvn
FHg1xrqBXdACb8hMo6XFcNdPxwVGNFznixVGZNM+WzWaQbIh3cFsLLDQKKOL
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
3y0DBDgTdkxMXd3bc3Us3gkmZgvZCL17Txx3InePgDhSI82XzF289BdO6h1M
2S9DNbubg+DradRjudz1WJRG0n4cCkAvFvmekAqOHN15eUhXEauXYbb+m1cR
Ly4i3nwuO6svxwMCve5Yl+4Qq/zpPMticiw+33animH/UD+OjvamPy3l7p/d
jwcLMdhBiTrpw403WHV6nqd9Ptx1elFnWx7Wfx7Wi4fvd1/fvYjY3EH7lbuI
f3GB8JeuI56/WRcfrG4d0tU3ugZXXQP8wF9AvCxS9c89iPaqTOIbvfx1J792
Ge/63Ttz9WSre3O34s3//dfm3rox97Mbcqf7cd+u/pVH0U5Pon27+lceRTs9
ifbt6vwo2vLxyTiOJZ6zWvWLeV49qjSXxCRwuy+ePdN2dFd7ylgJ90yxZvPw
Wbjznb1oDcr2w2e/8uzZt6u/evjsV549u3BeyQOTZdGGo6A407YNI06Lynk5
t87UpmsQjPJMhi6IN/zZM4XRs2eA+r94+Oznz55dRs907zvfV891pab5T96p
R9xrS6UUiOY4shNzrkyPcCB3Or1BZYcb1jHGtjTeMYbWBUWP5BCxDLsHrfoR
uKyrD71nh56c8A3WvwtcTfKFxJkuSvVeVJwgj7K5nIxikFSr0+9Q7s3rGHbs
Kj+czByYsjiwqmg75XtxynRBd9MzA04csvG6UwFOYBbJfk0AHRmO/W13c3I2
FMmroLKOeOO45tEc3P64P5Qrd/AF/Wt3sKXxvZiUIBZv5D6jiZXSE2QYSz+g
qHwEt3IoNVuOBo6cCY70KHjLbOaqiWev2DpkxtRIHzfe4lafHm5zlmVykMnS
nD8cY1KufMWsqYC4fiUfYzcZGHbiuOAb3qoYTwblw1xNZmzmP8wVTdZFXwkd
M/VEpUMPx/zX47y8vCEWydTsIs4DsxkEqbFx34/z/pnHLWTOCf/Vxy3oGQd6
3IJeB6TXAh+42WSmpsuiOhfJUHl6RyGzgjJM8PPO5keozRvT2QMKyiZFTBwZ
hD6FmWTmKaXHzcyU2cUYHHvcixHnmLM+TNA4JVsBN5EUnR6rqL9hLnShAAz5
QZSbMwT1iLGyFaVr57nGn8uIHU0H16erK86UYUYDMLgmSWhVL/U1P9PLfWC8
w6mj2NOjvwCo9ecu2+vM7xh5ZoaZdpzQFaadm4UbQx0D5qKer4qz8KiNIFGV
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
DAe56r9RM/5vfE8Eb53RAgA=

-->

</rfc>

