<?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.17 (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-13" 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="2024"/>

    <area>Operations and Management</area>
    <workgroup>ANIMA WG</workgroup>
    

    <abstract>


<?line 131?>

<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 139?>

<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 domain, which may be associated to a specific installation location.
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 Authorized Signing Authority (MASA).
The MASA issues the voucher and provides it via the domain registrar to the pledge.
<xref target="I-D.ietf-anima-rfc8366bis"/> specifies the format of the voucher artifacts including 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 externally and at a specific time 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 domain 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 domain 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 that is 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 the latter 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 performs pre-processing of the wrapping signature before actually using EST as defined in <xref target="RFC7030"/>.</t>

<t>There may be pledges that 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 section="1.2" sectionFormat="of" target="RFC8995"/>.
The following terms are defined in addition:</t>

<dl>
  <dt>authenticated self-contained object:</dt>
  <dd>
    <t>Describes an object, which is cryptographically bound to the end entity (EE) 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, as defined in <xref target="RFC9483"/>.
Typically a device or service that owns a public-private key pair for which it manages a public key certificate.</t>
  </dd>
  <dt>EE certificate:</dt>
  <dd>
    <t>Either IDevID certificate or LDevID certificate of the EE.</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 <xref target="RFC8615"/>.</t>
  </dd>
  <dt>mTLS:</dt>
  <dd>
    <t>mutual Transport Layer Security.</t>
  </dd>
  <dt>PER:</dt>
  <dd>
    <t>Pledge Enroll-Request is a signature wrapped CSR, signed by the pledge that requests enrollment to a domain.</t>
  </dd>
  <dt>POI:</dt>
  <dd>
    <t>Proof-of-Identity, as defined in <xref target="RFC5272"/>.</t>
  </dd>
  <dt>POP:</dt>
  <dd>
    <t>Proof-of-Possession (of a private key), 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 Enroll-Request is the CSR of a PER sent to the CA by the domain registrar (in its role as PKI 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 uses the following encoding notations in the given JWS-signed artifact examples:</t>

<dl>
  <dt>BASE64URL(OCTETS):</dt>
  <dd>
    <t>Denotes the base64url encoding of OCTETS, per <xref section="2" sectionFormat="of" target="RFC7515"/>.</t>
  </dd>
  <dt>UTF8(STRING):</dt>
  <dd>
    <t>Denotes the octets of the UTF-8 <xref target="RFC3629"/> representation of STRING, per <xref section="1" sectionFormat="of" target="RFC7515"/>.</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>

</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="RFC9525"/> 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 {#agt_prx} 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 Enroll-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 Vouchers 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>Enroll-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 (BRSKI-PRM), 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 usually based on JSON Web Signature (JWS) <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 based on COSE <xref target="RFC9052"/>.</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.
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 Wi-Fi without giving up their cellular network 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="center"><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="308" y="52">Services</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="196" y="324">EE</text>
<text x="228" y="324">cert</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="260" y="452">Customer</text>
<text x="324" y="452">Domain</text>
</g>
</svg>
</artwork><artwork  type="ascii-art" align="center"><![CDATA[
                         +---------------------------+
    ..... Drop Ship .....| Vendor Services           |
    :                    +---------------+-----------+
    :                    | 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)  |  .
|        |     .  |    EE cert |        |           |  .
|        |     .  +------------+        +-----+-----+  .
| IDevID |     .                              |        .
|        |     .           +------------------+-----+  .
+--------+     .           | Key Infrastructure     |  .
               .           | (e.g., PKI CA)         |  .
               .           +------------------------+  .
               .........................................
                            Customer Domain
]]></artwork></artset></figure>

<t><xref target="uc2figure"/> shows the relations between the following main components:</t>

<t><list style="symbols">
  <t>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 the following differences compared to BRSKI:  <list style="symbols">
      <t>The pledge is discovered by the Registrar-Agent as defined in {#discovery_uc2_ppa}.</t>
      <t>The pledge offers additional endpoints as defined in <xref target="pledge_ep"/>, so that the Registrar-Agent can request data required for bootstrapping the pledge.</t>
      <t>The pledge includes additional data in the PVR, which is provided by the Registrar-Agent in the voucher-request trigger as defined in <xref target="tpvr"/>.
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 from those in BRSKI <xref target="RFC8995"/>, as the PVR and PER are collected simultaneously 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 acts as a broker 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.  <list style="symbols">
      <t>The Registrar-Agent triggers one or more pledges to create bootstrapping artifacts such as the voucher-request and the Enroll-Request.
It can then perform a (bulk) bootstrapping based on the collected data.</t>
      <t>The Registrar-Agent is expected to possess information about the domain registrar: the registrar EE certificate, LDevID(CA) certificate, and IP address, either by configuration or by using the discovery mechanism defined in <xref target="RFC8995"/>.</t>
      <t>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 domain registrar.</t>
      <t>The trust assumption between the Registrar-Agent and the domain registrar may be based on an LDevID, which is provided by the PKI responsible for the customer domain.</t>
      <t>The Registrar-Agent may be realized as stand-alone component supporting nomadic activities of a service technician moving between different installation sites.</t>
      <t>Alternatively, the Registrar-Agent may also be realized as co-located functionality for a registrar, to support pledges in responder mode.</t>
    </list></t>
  <t>Join Proxy (not shown): Has the 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 fulfills the same functionality regarding the bootstrapping of the pledge in a customer domain by facilitating the communication of the pledge with the MASA service and the domain key infrastructure (PKI).
In contrast to <xref target="RFC8995"/>, a BRSKI-PRM domain registrar does not interact with a pledge directly, but through the Registrar-Agent.</t>
  <t>Vendor Services: Encompass MASA and Ownership Tracker and 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 Assertion {#agt_prx}.</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="center"><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="308" y="52">Services</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="132" y="228">Installation</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="260" y="484">Customer</text>
<text x="324" y="484">Domain</text>
</g>
</svg>
</artwork><artwork  type="ascii-art" align="center"><![CDATA[
                         +---------------------------+
    ..... Drop Ship .....| Vendor Services           |
    :                    +---------------------------+
    :                                         ^
........................................      |
.   v                                  .      |
. +--------+           .-.-.-.-.-.-.-. .      |
. |        |           : Registrar-  : .      |
. | Pledge |<--------->: Agent       : .      |
. +--------+ L2 or L3  :-.-.-.-.-.-.-: .      |
.          connectivity   ^            .      |
..........................!.............      |
   Pledge Installation    !                   |
   Location               ! Nomadic           |
                          ! connectivity      |
                          !                   |
               ...........!...................|.........
               .          v                   v        .
               .  .-.-.-.-.-.-.-.       +-----------+  .
               .  : Registrar-  :       | Domain    |  .
               .  : Agent       :<----->| Registrar |  .
               .  :-.-.-.-.-.-.-:       +-----+-----+  .
               .                              |        .
               .           +------------------+-----+  .
               .           | Key Infrastructure     |  .
               .           | (e.g., PKI CA)         |  .
               .           +------------------------+  .
               .........................................
                            Customer Domain
]]></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 installation location and the domain registrar are required.</t>

<t><list style="numbers" type="1">
  <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 installation location: retrieve information about available pledges (IDevID), collect request objects (i.e., Pledge Voucher-Requests and Pledge Enroll-Requests using the BRSKI-PRM approach described in <xref target="tpvr"/> and <xref target="tper"/>.</t>
  <t>Connectivity to domain registrar, submit collected request information of pledges, retrieve response objects (i.e., Voucher and Enroll-Response) using the BRSKI-PRM approach described in <xref target="pvr"/> and <xref target="per"/>.</t>
  <t>Connectivity to pledge installation location, provide retrieved objects to the pledges to enroll pledges and collect status using the BRSKI-PRM approach described in <xref target="voucher"/>, <xref target="cacerts"/>, and <xref target="enroll_response"/>.</t>
  <t>Connectivity to domain registrar, submit Voucher Status and Enrollment Status using the BRSKI-PRM approach described in <xref target="vstatus"/> and <xref target="estatus"/>.</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="co-located-registrar-agent-and-domain-registrar"><name>Co-located Registrar-Agent and Domain 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="center"><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="252" y="324">Customer</text>
<text x="316" y="324">Domain</text>
</g>
</svg>
</artwork><artwork  type="ascii-art" align="center"><![CDATA[
                         +---------------------------+
    ..... Drop Ship .....| Vendor Service            |
    :                    +---------------------------+
    :                                         ^
    :                                         |
    :          ...............................|.........
    :          .                              v        .
    v          .          +-------------------------+  .
 +--------+    .          |..............           |  .   
 |        |    .          |. Registrar- . Domain    |  .
 | Pledge |<------------->|. Agent      . Registrar |  .
 +--------+ L2 or L3      |..............           |  .   
            connectivity  +-------------------+-----+  .
               .                              |        .
               .           +------------------+-----+  .
               .           | Key Infrastructure     |  .
               .           +------------------------+  .
               .........................................
                            Customer Domain
]]></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 than "proximity", which is defined in <xref section="4" sectionFormat="of" target="RFC8366"/>.
Agent-proximity is defined as additional assertion type in <xref target="I-D.ietf-anima-rfc8366bis"/>.
This assertion 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 <bcp14>MUST</bcp14> accept the registrar certificate provisionally until it receives the voucher as described in <xref target="voucher"/>.
In a similar fashion, the pledge <bcp14>MUST</bcp14> accept the Registrar-Agent EE certificate provisionally.
See also <xref section="5" sectionFormat="of" target="RFC8995"/> on "provisional state".</t>

<t>For agent-proximity, the EE certificate of the Registrar-Agent <bcp14>MUST</bcp14> be an LDevID certificate signed by the domain owner.
Akin to the proximity assertion in the BRSKI case, the agent-proximity provides pledge proximity evidence to the MASA.
But additionally, agent-proximity allows the domain 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>The provisioning of the Registrar-Agent LDevID certificate 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>

</section>
</section>
<section anchor="system-components"><name>System Components</name>

<section anchor="domain-registrar"><name>Domain Registrar</name>

<t>In BRSKI-PRM, the domain registrar provides the endpoints already specified in <xref target="RFC8995"/> (derived from EST <xref target="RFC7030"/>) where suitable.
In addition, it <bcp14>MUST</bcp14> provide the endpoints defined in <xref target="registrar_ep_table"/> within the BRSKI-defined "/.well-known/brski/" URI path.
These endpoints accommodate for the signature-wrapped objects used by BRSKI-PRM for the Pledge Enroll-Request (PER) and the provisioning of CA certificates.</t>

<texttable title="Additional Well-Known Endpoints on a BRSKI-PRM Registrar" anchor="registrar_ep_table">
      <ttcol align='left'>Endpoint</ttcol>
      <ttcol align='left'>Operation</ttcol>
      <ttcol align='left'>Exchange and Artifacts</ttcol>
      <c>requestenroll</c>
      <c>Supply PER to Registrar</c>
      <c><xref target="per"/></c>
      <c>wrappedcacerts</c>
      <c>Request CA Certificates</c>
      <c><xref target="req_cacerts"/></c>
</texttable>

<t>According to <xref section="5.3" sectionFormat="of" target="RFC8995"/>, the domain registrar performs the pledge authorization for bootstrapping within his domain based on the Pledge Voucher-Request.
This behavior is retained in BRSKI-PRM.</t>

<t>The domain registrar <bcp14>MUST</bcp14> possess and trust the IDevID (root or issuing) CA certificate
of the pledge vendor/manufacturer.</t>

<t>Further, the domain registrar <bcp14>MUST</bcp14> have its own EE credentials.</t>

<section anchor="domain-registrar-with-combined-functionality"><name>Domain Registrar with Combined Functionality</name>

<t>A registrar with combined BRSKI and BRSKI-PRM functionality <bcp14>MAY</bcp14> detect if the bootstrapping is performed by the pledge directly (BRSKI case) or by a Registrar-Agent (BRSKI-PRM case) based on the utilized credential for client authentication during the TLS session establishment and switch switch the operational mode from BRSKI to BRSKI-PRM.</t>

<t>This may be supported by a specific naming in the SAN (subject alternative name) component of the EE certificate of the Registrar-Agent.</t>

<t>Alternatively, this may be supported by using an LDevID certificate signed by the domain owner for the client authentication of the Registrar-Agent.
Using an LDevID certificate also allows the registrar to verify that a Registrar-Agent is authorized to perform the bootstrapping of a pledge.
See also agent-proximity assertion in <xref target="agt_prx"/>.</t>

<t>Using an LDevID certificate for TLS client authentication of the Registrar-Agent is a deviation from <xref target="RFC8995"/>, in which the IDevID credential of the pledge is used to perform TLS client authentication.</t>

</section>
</section>
<section anchor="registrar-agent"><name>Registrar-Agent</name>

<t>The Registrar-Agent is a new component in BRSKI-PRM that provides a secure message passing service between pledges in responder mode and the domain registrar.</t>

<t>It requires the EE certificate of the domain registrar for TLS server authentication when establishing a TLS session with the domain registrar and to provide the registrar EE certificate to the pledge for creating the Pledge Voucher-Request (PVR).</t>

<t>The Registrar-Agent uses its own EE certificate for TLS client authentication when establishing a TLS session with the domain registrar and for signing agent-signed data.
This EE 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="tpvr"/>.</t>

<t>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"/> has a similar requirement.
In BRSKI-PRM, the SKID is used in favor of providing the complete EE certificate of the Registrar-Agent to accommodate also constrained 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>In addition to the EE certificates, 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, where the product serial number would be initialized from the 12N B005 Product Serial Number.</t>

<t>In summary, the following information <bcp14>MUST</bcp14> be available at the Registrar-Agent before interaction with a pledge:</t>

<t><list style="symbols">
  <t>Domain registrar EE certificate: certificate of the domain registrar to be provided to the pledge.</t>
  <t>Registrar-Agent EE certificate and corresponding private key: own operational key pair to sign agent-signed-data.</t>
  <t>Serial number(s): product serial number(s) of pledge(s) to be bootstrapped for discovery.</t>
</list></t>

<t>Further, the Registrar-Agent <bcp14>SHOULD</bcp14> have synchronized time.</t>

<t>Finally, the Registrar-Agent <bcp14>MAY</bcp14> possess the IDevID (root or issuing) CA certificate of the pledge vendor/manufacturer to validate the 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.</t>

<section anchor="discovery_uc2_reg"><name>Discovery of the Registrar</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 <xref section="4" sectionFormat="of" target="RFC8995"/> and the <xref section="A.2" sectionFormat="of" 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 the Pledge</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>"&lt;product-serial-number&gt;._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="pledge_ep"><name>Pledge in Responder Mode</name>

<t>The pledge is triggered by the Registrar-Agent to create the PVR and PER.
It is also 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.</t>

<t>To enable interaction as responder with the Registrar-Agent, pledges in responder mode <bcp14>MUST</bcp14> act as servers and <bcp14>MUST</bcp14> provide the endpoints defined in <xref target="pledge_ep_table"/> within the BRSKI-defined "/.well-known/brski/" URI path.
The endpoints are defined with short names to also accommodate for resource-constrained devices.</t>

<texttable title="Well-Known Endpoints on a Pledge in Responder Mode" anchor="pledge_ep_table">
      <ttcol align='left'>Endpoint</ttcol>
      <ttcol align='left'>Operation</ttcol>
      <ttcol align='left'>Exchange and Artifacts</ttcol>
      <c>tpvr</c>
      <c>Trigger Pledge Voucher-Request</c>
      <c><xref target="tpvr"/></c>
      <c>tper</c>
      <c>Trigger Pledge Enroll-Request</c>
      <c><xref target="tper"/></c>
      <c>svr</c>
      <c>Supply Voucher to Pledge</c>
      <c><xref target="voucher"/></c>
      <c>scac</c>
      <c>Supply CA Certificates to Pledge</c>
      <c><xref target="cacerts"/></c>
      <c>ser</c>
      <c>Supply Enroll-Response to Pledge</c>
      <c><xref target="enroll_response"/></c>
      <c>qps</c>
      <c>Query Pledge Status</c>
      <c><xref target="query"/></c>
</texttable>

<t><xref section="7.2" sectionFormat="of" target="RFC9110"/> makes the Host header field mandatory, so it will always be present.
The pledge <bcp14>MUST</bcp14> respond to all queries regardless of the Host header field provided by the client.</t>

<t>For instance, when the Registrar-Agent reaches out to the "tpvr" endpoint on a pledge in responder mode with the full URI "http://pledge.example.com/.well-known/brski/tpvr", it sets the Host header field to "pledge.example.com" and the absolute path "/.well-known/brski/tpbr".
In practice, however, the pledge often is only known by its IP address as returned by a discovery protocol, which will be included in the Host header field.</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 IDevID of the pledge.
Hence, pledges <bcp14>MUST</bcp14> have an Initial Device Identifier (IDevID) installed in them at the factory.</t>

<section anchor="pledge-with-combined-functionality"><name>Pledge with Combined Functionality</name>

<t>Pledges <bcp14>MAY</bcp14> support both initiator and 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 Enroll-Request (PER) or to provide an Enroll-Response can be used for further certificates.</t>

</section>
</section>
</section>
<section anchor="exchanges_uc2"><name>Exchanges and Artifacts</name>

<t>The interaction of the pledge with the Registrar-Agent may be accomplished using different transports (i.e., protocols and/or network technologies).
This specification utilizes HTTP as default transport.
Other specifications may define alternative transports such as CoAP, Bluetooth Low Energy (BLE), or Near Field Communication (NFC).
These transports may differ from and are independent of the ones used between the Registrar-Agent and the registrar.</t>

<t>Transport independence is realized through data objects that are not bound to specific transport security and stay the same along the communication path from the pledge via the Registrar-Agent to the registrar.
Therefore, authenticated self-contained artifacts (e.g., JWS-signed JSON structures or COSE-signed CBOR structures) are used for the data exchanges between the pledge and the registrar via the Registrar-Agent.</t>

<t><xref target="exchangesfig_uc2_all"/> provides an overview of the exchanges detailed in the following subsections.</t>

<figure title="Overview pledge-responder-mode exchanges" anchor="exchangesfig_uc2_all"><artset><artwork  type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="1856" width="576" viewBox="0 0 576 1856" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
<path d="M 8,32 L 8,80" fill="none" stroke="black"/>
<path d="M 16,88 L 16,192" fill="none" stroke="black"/>
<path d="M 16,256 L 16,320" fill="none" stroke="black"/>
<path d="M 16,384 L 16,448" fill="none" stroke="black"/>
<path d="M 16,512 L 16,736" fill="none" stroke="black"/>
<path d="M 16,800 L 16,912" fill="none" stroke="black"/>
<path d="M 16,976 L 16,1040" fill="none" stroke="black"/>
<path d="M 16,1104 L 16,1168" fill="none" stroke="black"/>
<path d="M 16,1232 L 16,1280" fill="none" stroke="black"/>
<path d="M 16,1344 L 16,1408" fill="none" stroke="black"/>
<path d="M 16,1472 L 16,1584" fill="none" stroke="black"/>
<path d="M 16,1648 L 16,1696" fill="none" stroke="black"/>
<path d="M 16,1760 L 16,1824" fill="none" stroke="black"/>
<path d="M 80,32 L 80,80" fill="none" stroke="black"/>
<path d="M 120,32 L 120,80" fill="none" stroke="black"/>
<path d="M 168,88 L 168,192" fill="none" stroke="black"/>
<path d="M 168,256 L 168,320" fill="none" stroke="black"/>
<path d="M 168,384 L 168,448" fill="none" stroke="black"/>
<path d="M 168,512 L 168,736" fill="none" stroke="black"/>
<path d="M 168,800 L 168,912" fill="none" stroke="black"/>
<path d="M 168,976 L 168,1040" fill="none" stroke="black"/>
<path d="M 168,1104 L 168,1168" fill="none" stroke="black"/>
<path d="M 168,1232 L 168,1280" fill="none" stroke="black"/>
<path d="M 168,1344 L 168,1408" fill="none" stroke="black"/>
<path d="M 168,1472 L 168,1584" fill="none" stroke="black"/>
<path d="M 168,1648 L 168,1696" fill="none" stroke="black"/>
<path d="M 168,1760 L 168,1824" fill="none" stroke="black"/>
<path d="M 224,32 L 224,80" fill="none" stroke="black"/>
<path d="M 264,32 L 264,80" fill="none" stroke="black"/>
<path d="M 312,88 L 312,192" fill="none" stroke="black"/>
<path d="M 312,256 L 312,320" fill="none" stroke="black"/>
<path d="M 312,384 L 312,448" fill="none" stroke="black"/>
<path d="M 312,512 L 312,528" fill="none" stroke="black"/>
<path d="M 312,624 L 312,736" fill="none" stroke="black"/>
<path d="M 312,800 L 312,912" fill="none" stroke="black"/>
<path d="M 312,976 L 312,1040" fill="none" stroke="black"/>
<path d="M 312,1104 L 312,1168" fill="none" stroke="black"/>
<path d="M 312,1232 L 312,1280" fill="none" stroke="black"/>
<path d="M 312,1344 L 312,1408" fill="none" stroke="black"/>
<path d="M 312,1472 L 312,1552" fill="none" stroke="black"/>
<path d="M 312,1648 L 312,1696" fill="none" stroke="black"/>
<path d="M 312,1760 L 312,1824" fill="none" stroke="black"/>
<path d="M 360,32 L 360,80" fill="none" stroke="black"/>
<path d="M 400,32 L 400,80" fill="none" stroke="black"/>
<path d="M 456,88 L 456,192" fill="none" stroke="black"/>
<path d="M 456,256 L 456,320" fill="none" stroke="black"/>
<path d="M 456,384 L 456,448" fill="none" stroke="black"/>
<path d="M 456,512 L 456,632" fill="none" stroke="black"/>
<path d="M 456,720 L 456,736" fill="none" stroke="black"/>
<path d="M 456,800 L 456,912" fill="none" stroke="black"/>
<path d="M 456,976 L 456,1040" fill="none" stroke="black"/>
<path d="M 456,1104 L 456,1168" fill="none" stroke="black"/>
<path d="M 456,1232 L 456,1280" fill="none" stroke="black"/>
<path d="M 456,1344 L 456,1408" fill="none" stroke="black"/>
<path d="M 456,1472 L 456,1512" fill="none" stroke="black"/>
<path d="M 456,1568 L 456,1584" fill="none" stroke="black"/>
<path d="M 456,1648 L 456,1696" fill="none" stroke="black"/>
<path d="M 456,1760 L 456,1824" fill="none" stroke="black"/>
<path d="M 472,32 L 472,80" fill="none" stroke="black"/>
<path d="M 512,32 L 512,80" fill="none" stroke="black"/>
<path d="M 560,88 L 560,192" fill="none" stroke="black"/>
<path d="M 560,256 L 560,320" fill="none" stroke="black"/>
<path d="M 560,384 L 560,448" fill="none" stroke="black"/>
<path d="M 560,512 L 560,656" fill="none" stroke="black"/>
<path d="M 560,704 L 560,736" fill="none" stroke="black"/>
<path d="M 560,800 L 560,912" fill="none" stroke="black"/>
<path d="M 560,976 L 560,1040" fill="none" stroke="black"/>
<path d="M 560,1104 L 560,1168" fill="none" stroke="black"/>
<path d="M 560,1232 L 560,1280" fill="none" stroke="black"/>
<path d="M 560,1344 L 560,1408" fill="none" stroke="black"/>
<path d="M 560,1472 L 560,1584" fill="none" stroke="black"/>
<path d="M 560,1648 L 560,1696" fill="none" stroke="black"/>
<path d="M 560,1760 L 560,1824" fill="none" stroke="black"/>
<path d="M 568,32 L 568,80" fill="none" stroke="black"/>
<path d="M 8,32 L 80,32" fill="none" stroke="black"/>
<path d="M 120,32 L 224,32" fill="none" stroke="black"/>
<path d="M 264,32 L 360,32" fill="none" stroke="black"/>
<path d="M 400,32 L 472,32" fill="none" stroke="black"/>
<path d="M 512,32 L 568,32" fill="none" stroke="black"/>
<path d="M 8,80 L 80,80" fill="none" stroke="black"/>
<path d="M 120,80 L 224,80" fill="none" stroke="black"/>
<path d="M 264,80 L 360,80" fill="none" stroke="black"/>
<path d="M 400,80 L 472,80" fill="none" stroke="black"/>
<path d="M 512,80 L 568,80" fill="none" stroke="black"/>
<path d="M 24,160 L 160,160" fill="none" stroke="black"/>
<path d="M 24,176 L 160,176" fill="none" stroke="black"/>
<path d="M 24,272 L 56,272" fill="none" stroke="black"/>
<path d="M 128,272 L 160,272" fill="none" stroke="black"/>
<path d="M 24,288 L 72,288" fill="none" stroke="black"/>
<path d="M 112,288 L 160,288" fill="none" stroke="black"/>
<path d="M 24,304 L 80,304" fill="none" stroke="black"/>
<path d="M 112,304 L 160,304" fill="none" stroke="black"/>
<path d="M 24,400 L 56,400" fill="none" stroke="black"/>
<path d="M 128,400 L 160,400" fill="none" stroke="black"/>
<path d="M 24,416 L 72,416" fill="none" stroke="black"/>
<path d="M 112,416 L 160,416" fill="none" stroke="black"/>
<path d="M 24,432 L 80,432" fill="none" stroke="black"/>
<path d="M 112,432 L 160,432" fill="none" stroke="black"/>
<path d="M 176,528 L 216,528" fill="none" stroke="black"/>
<path d="M 256,528 L 304,528" fill="none" stroke="black"/>
<path d="M 176,576 L 224,576" fill="none" stroke="black"/>
<path d="M 256,576 L 304,576" fill="none" stroke="black"/>
<path d="M 320,640 L 416,640" fill="none" stroke="black"/>
<path d="M 456,640 L 552,640" fill="none" stroke="black"/>
<path d="M 320,656 L 424,656" fill="none" stroke="black"/>
<path d="M 456,656 L 552,656" fill="none" stroke="black"/>
<path d="M 320,704 L 408,704" fill="none" stroke="black"/>
<path d="M 472,704 L 552,704" fill="none" stroke="black"/>
<path d="M 176,720 L 208,720" fill="none" stroke="black"/>
<path d="M 272,720 L 304,720" fill="none" stroke="black"/>
<path d="M 176,816 L 216,816" fill="none" stroke="black"/>
<path d="M 256,816 L 304,816" fill="none" stroke="black"/>
<path d="M 176,832 L 224,832" fill="none" stroke="black"/>
<path d="M 256,832 L 304,832" fill="none" stroke="black"/>
<path d="M 320,848 L 360,848" fill="none" stroke="black"/>
<path d="M 400,848 L 448,848" fill="none" stroke="black"/>
<path d="M 320,864 L 368,864" fill="none" stroke="black"/>
<path d="M 400,864 L 448,864" fill="none" stroke="black"/>
<path d="M 320,880 L 336,880" fill="none" stroke="black"/>
<path d="M 432,880 L 448,880" fill="none" stroke="black"/>
<path d="M 176,896 L 192,896" fill="none" stroke="black"/>
<path d="M 288,896 L 304,896" fill="none" stroke="black"/>
<path d="M 176,992 L 216,992" fill="none" stroke="black"/>
<path d="M 256,992 L 304,992" fill="none" stroke="black"/>
<path d="M 176,1008 L 192,1008" fill="none" stroke="black"/>
<path d="M 280,1008 L 304,1008" fill="none" stroke="black"/>
<path d="M 176,1024 L 192,1024" fill="none" stroke="black"/>
<path d="M 288,1024 L 304,1024" fill="none" stroke="black"/>
<path d="M 24,1120 L 56,1120" fill="none" stroke="black"/>
<path d="M 128,1120 L 160,1120" fill="none" stroke="black"/>
<path d="M 24,1136 L 64,1136" fill="none" stroke="black"/>
<path d="M 128,1136 L 160,1136" fill="none" stroke="black"/>
<path d="M 24,1152 L 64,1152" fill="none" stroke="black"/>
<path d="M 128,1152 L 160,1152" fill="none" stroke="black"/>
<path d="M 24,1248 L 56,1248" fill="none" stroke="black"/>
<path d="M 128,1248 L 160,1248" fill="none" stroke="black"/>
<path d="M 24,1264 L 64,1264" fill="none" stroke="black"/>
<path d="M 128,1264 L 160,1264" fill="none" stroke="black"/>
<path d="M 24,1360 L 56,1360" fill="none" stroke="black"/>
<path d="M 128,1360 L 160,1360" fill="none" stroke="black"/>
<path d="M 24,1376 L 48,1376" fill="none" stroke="black"/>
<path d="M 144,1376 L 160,1376" fill="none" stroke="black"/>
<path d="M 24,1392 L 56,1392" fill="none" stroke="black"/>
<path d="M 120,1392 L 160,1392" fill="none" stroke="black"/>
<path d="M 176,1488 L 216,1488" fill="none" stroke="black"/>
<path d="M 256,1488 L 304,1488" fill="none" stroke="black"/>
<path d="M 176,1504 L 208,1504" fill="none" stroke="black"/>
<path d="M 272,1504 L 304,1504" fill="none" stroke="black"/>
<path d="M 320,1520 L 416,1520" fill="none" stroke="black"/>
<path d="M 456,1520 L 552,1520" fill="none" stroke="black"/>
<path d="M 320,1536 L 352,1536" fill="none" stroke="black"/>
<path d="M 520,1536 L 552,1536" fill="none" stroke="black"/>
<path d="M 320,1552 L 368,1552" fill="none" stroke="black"/>
<path d="M 504,1552 L 552,1552" fill="none" stroke="black"/>
<path d="M 176,1664 L 216,1664" fill="none" stroke="black"/>
<path d="M 256,1664 L 304,1664" fill="none" stroke="black"/>
<path d="M 176,1680 L 208,1680" fill="none" stroke="black"/>
<path d="M 272,1680 L 304,1680" fill="none" stroke="black"/>
<path d="M 24,1776 L 56,1776" fill="none" stroke="black"/>
<path d="M 128,1776 L 160,1776" fill="none" stroke="black"/>
<path d="M 24,1792 L 64,1792" fill="none" stroke="black"/>
<path d="M 128,1792 L 160,1792" fill="none" stroke="black"/>
<path d="M 24,1808 L 64,1808" fill="none" stroke="black"/>
<path d="M 128,1808 L 160,1808" fill="none" stroke="black"/>
<polygon class="arrowhead" points="560,1536 548,1530.4 548,1541.6" fill="black" transform="rotate(0,552,1536)"/>
<polygon class="arrowhead" points="560,1520 548,1514.4 548,1525.6" fill="black" transform="rotate(0,552,1520)"/>
<polygon class="arrowhead" points="560,656 548,650.4 548,661.6" fill="black" transform="rotate(0,552,656)"/>
<polygon class="arrowhead" points="560,640 548,634.4 548,645.6" fill="black" transform="rotate(0,552,640)"/>
<polygon class="arrowhead" points="456,864 444,858.4 444,869.6" fill="black" transform="rotate(0,448,864)"/>
<polygon class="arrowhead" points="456,848 444,842.4 444,853.6" fill="black" transform="rotate(0,448,848)"/>
<polygon class="arrowhead" points="328,1552 316,1546.4 316,1557.6" fill="black" transform="rotate(180,320,1552)"/>
<polygon class="arrowhead" points="328,1520 316,1514.4 316,1525.6" fill="black" transform="rotate(180,320,1520)"/>
<polygon class="arrowhead" points="328,880 316,874.4 316,885.6" fill="black" transform="rotate(180,320,880)"/>
<polygon class="arrowhead" points="328,848 316,842.4 316,853.6" fill="black" transform="rotate(180,320,848)"/>
<polygon class="arrowhead" points="328,704 316,698.4 316,709.6" fill="black" transform="rotate(180,320,704)"/>
<polygon class="arrowhead" points="328,640 316,634.4 316,645.6" fill="black" transform="rotate(180,320,640)"/>
<polygon class="arrowhead" points="312,1680 300,1674.4 300,1685.6" fill="black" transform="rotate(0,304,1680)"/>
<polygon class="arrowhead" points="312,1664 300,1658.4 300,1669.6" fill="black" transform="rotate(0,304,1664)"/>
<polygon class="arrowhead" points="312,1504 300,1498.4 300,1509.6" fill="black" transform="rotate(0,304,1504)"/>
<polygon class="arrowhead" points="312,1488 300,1482.4 300,1493.6" fill="black" transform="rotate(0,304,1488)"/>
<polygon class="arrowhead" points="312,1008 300,1002.4 300,1013.6" fill="black" transform="rotate(0,304,1008)"/>
<polygon class="arrowhead" points="312,992 300,986.4 300,997.6" fill="black" transform="rotate(0,304,992)"/>
<polygon class="arrowhead" points="312,832 300,826.4 300,837.6" fill="black" transform="rotate(0,304,832)"/>
<polygon class="arrowhead" points="312,816 300,810.4 300,821.6" fill="black" transform="rotate(0,304,816)"/>
<polygon class="arrowhead" points="312,576 300,570.4 300,581.6" fill="black" transform="rotate(0,304,576)"/>
<polygon class="arrowhead" points="312,528 300,522.4 300,533.6" fill="black" transform="rotate(0,304,528)"/>
<polygon class="arrowhead" points="184,1664 172,1658.4 172,1669.6" fill="black" transform="rotate(180,176,1664)"/>
<polygon class="arrowhead" points="184,1488 172,1482.4 172,1493.6" fill="black" transform="rotate(180,176,1488)"/>
<polygon class="arrowhead" points="184,1024 172,1018.4 172,1029.6" fill="black" transform="rotate(180,176,1024)"/>
<polygon class="arrowhead" points="184,992 172,986.4 172,997.6" fill="black" transform="rotate(180,176,992)"/>
<polygon class="arrowhead" points="184,896 172,890.4 172,901.6" fill="black" transform="rotate(180,176,896)"/>
<polygon class="arrowhead" points="184,816 172,810.4 172,821.6" fill="black" transform="rotate(180,176,816)"/>
<polygon class="arrowhead" points="184,720 172,714.4 172,725.6" fill="black" transform="rotate(180,176,720)"/>
<polygon class="arrowhead" points="184,528 172,522.4 172,533.6" fill="black" transform="rotate(180,176,528)"/>
<polygon class="arrowhead" points="168,1808 156,1802.4 156,1813.6" fill="black" transform="rotate(0,160,1808)"/>
<polygon class="arrowhead" points="168,1776 156,1770.4 156,1781.6" fill="black" transform="rotate(0,160,1776)"/>
<polygon class="arrowhead" points="168,1392 156,1386.4 156,1397.6" fill="black" transform="rotate(0,160,1392)"/>
<polygon class="arrowhead" points="168,1360 156,1354.4 156,1365.6" fill="black" transform="rotate(0,160,1360)"/>
<polygon class="arrowhead" points="168,1248 156,1242.4 156,1253.6" fill="black" transform="rotate(0,160,1248)"/>
<polygon class="arrowhead" points="168,1152 156,1146.4 156,1157.6" fill="black" transform="rotate(0,160,1152)"/>
<polygon class="arrowhead" points="168,1120 156,1114.4 156,1125.6" fill="black" transform="rotate(0,160,1120)"/>
<polygon class="arrowhead" points="168,432 156,426.4 156,437.6" fill="black" transform="rotate(0,160,432)"/>
<polygon class="arrowhead" points="168,400 156,394.4 156,405.6" fill="black" transform="rotate(0,160,400)"/>
<polygon class="arrowhead" points="168,304 156,298.4 156,309.6" fill="black" transform="rotate(0,160,304)"/>
<polygon class="arrowhead" points="168,272 156,266.4 156,277.6" fill="black" transform="rotate(0,160,272)"/>
<polygon class="arrowhead" points="168,176 156,170.4 156,181.6" fill="black" transform="rotate(0,160,176)"/>
<polygon class="arrowhead" points="32,1792 20,1786.4 20,1797.6" fill="black" transform="rotate(180,24,1792)"/>
<polygon class="arrowhead" points="32,1776 20,1770.4 20,1781.6" fill="black" transform="rotate(180,24,1776)"/>
<polygon class="arrowhead" points="32,1376 20,1370.4 20,1381.6" fill="black" transform="rotate(180,24,1376)"/>
<polygon class="arrowhead" points="32,1360 20,1354.4 20,1365.6" fill="black" transform="rotate(180,24,1360)"/>
<polygon class="arrowhead" points="32,1264 20,1258.4 20,1269.6" fill="black" transform="rotate(180,24,1264)"/>
<polygon class="arrowhead" points="32,1248 20,1242.4 20,1253.6" fill="black" transform="rotate(180,24,1248)"/>
<polygon class="arrowhead" points="32,1136 20,1130.4 20,1141.6" fill="black" transform="rotate(180,24,1136)"/>
<polygon class="arrowhead" points="32,1120 20,1114.4 20,1125.6" fill="black" transform="rotate(180,24,1120)"/>
<polygon class="arrowhead" points="32,416 20,410.4 20,421.6" fill="black" transform="rotate(180,24,416)"/>
<polygon class="arrowhead" points="32,400 20,394.4 20,405.6" fill="black" transform="rotate(180,24,400)"/>
<polygon class="arrowhead" points="32,288 20,282.4 20,293.6" fill="black" transform="rotate(180,24,288)"/>
<polygon class="arrowhead" points="32,272 20,266.4 20,277.6" fill="black" transform="rotate(180,24,272)"/>
<polygon class="arrowhead" points="32,160 20,154.4 20,165.6" fill="black" transform="rotate(180,24,160)"/>
<g class="text">
<text x="44" y="52">Pledge</text>
<text x="172" y="52">Registrar-</text>
<text x="308" y="52">Domain</text>
<text x="436" y="52">Domain</text>
<text x="540" y="52">MASA</text>
<text x="168" y="68">Agent</text>
<text x="312" y="68">Registrar</text>
<text x="436" y="68">CA</text>
<text x="516" y="100">Internet</text>
<text x="92" y="116">discover</text>
<text x="92" y="132">pledge</text>
<text x="68" y="148">mDNS</text>
<text x="112" y="148">query</text>
<text x="16" y="212">~</text>
<text x="168" y="212">~</text>
<text x="312" y="212">~</text>
<text x="456" y="212">~</text>
<text x="560" y="212">~</text>
<text x="16" y="228">(1)</text>
<text x="64" y="228">Trigger</text>
<text x="124" y="228">Pledge</text>
<text x="216" y="228">Voucher-Request</text>
<text x="16" y="244">~</text>
<text x="168" y="244">~</text>
<text x="312" y="244">~</text>
<text x="456" y="244">~</text>
<text x="560" y="244">~</text>
<text x="76" y="276">opt.</text>
<text x="112" y="276">TLS</text>
<text x="92" y="292">tPVR</text>
<text x="96" y="308">PVR</text>
<text x="16" y="340">~</text>
<text x="168" y="340">~</text>
<text x="312" y="340">~</text>
<text x="456" y="340">~</text>
<text x="560" y="340">~</text>
<text x="16" y="356">(2)</text>
<text x="64" y="356">Trigger</text>
<text x="124" y="356">Pledge</text>
<text x="212" y="356">Enroll-Request</text>
<text x="16" y="372">~</text>
<text x="168" y="372">~</text>
<text x="312" y="372">~</text>
<text x="456" y="372">~</text>
<text x="560" y="372">~</text>
<text x="76" y="404">opt.</text>
<text x="112" y="404">TLS</text>
<text x="92" y="420">tPER</text>
<text x="96" y="436">PER</text>
<text x="16" y="468">~</text>
<text x="168" y="468">~</text>
<text x="312" y="468">~</text>
<text x="456" y="468">~</text>
<text x="560" y="468">~</text>
<text x="16" y="484">(3)</text>
<text x="60" y="484">Supply</text>
<text x="104" y="484">PVR</text>
<text x="132" y="484">to</text>
<text x="184" y="484">Registrar</text>
<text x="268" y="484">(including</text>
<text x="344" y="484">backend</text>
<text x="428" y="484">interaction)</text>
<text x="16" y="500">~</text>
<text x="168" y="500">~</text>
<text x="312" y="500">~</text>
<text x="456" y="500">~</text>
<text x="560" y="500">~</text>
<text x="236" y="532">mTLS</text>
<text x="308" y="548">[Registrar-Agent</text>
<text x="308" y="564">authenticated&amp;authorized?]</text>
<text x="240" y="580">PVR</text>
<text x="312" y="580">|</text>
<text x="280" y="596">[accept</text>
<text x="348" y="596">device?]</text>
<text x="284" y="612">[contact</text>
<text x="352" y="612">vendor]</text>
<text x="436" y="644">mTLS</text>
<text x="440" y="660">RVR</text>
<text x="460" y="676">[extract</text>
<text x="536" y="676">DomainID]</text>
<text x="456" y="692">[update</text>
<text x="512" y="692">audit</text>
<text x="556" y="692">log]</text>
<text x="440" y="708">Voucher</text>
<text x="240" y="724">Voucher</text>
<text x="16" y="756">~</text>
<text x="168" y="756">~</text>
<text x="312" y="756">~</text>
<text x="456" y="756">~</text>
<text x="560" y="756">~</text>
<text x="16" y="772">(4)</text>
<text x="60" y="772">Supply</text>
<text x="104" y="772">PER</text>
<text x="132" y="772">to</text>
<text x="184" y="772">Registrar</text>
<text x="268" y="772">(including</text>
<text x="344" y="772">backend</text>
<text x="428" y="772">interaction)</text>
<text x="16" y="788">~</text>
<text x="168" y="788">~</text>
<text x="312" y="788">~</text>
<text x="456" y="788">~</text>
<text x="560" y="788">~</text>
<text x="236" y="820">mTLS</text>
<text x="240" y="836">PER</text>
<text x="380" y="852">mTLS</text>
<text x="384" y="868">RER</text>
<text x="384" y="884">Enroll-Resp</text>
<text x="240" y="900">Enroll-Resp</text>
<text x="16" y="932">~</text>
<text x="168" y="932">~</text>
<text x="312" y="932">~</text>
<text x="456" y="932">~</text>
<text x="560" y="932">~</text>
<text x="16" y="948">(5)</text>
<text x="64" y="948">Request</text>
<text x="108" y="948">CA</text>
<text x="172" y="948">Certificates</text>
<text x="16" y="964">~</text>
<text x="168" y="964">~</text>
<text x="312" y="964">~</text>
<text x="456" y="964">~</text>
<text x="560" y="964">~</text>
<text x="236" y="996">mTLS</text>
<text x="236" y="1012">cACert-Req</text>
<text x="240" y="1028">cACert-Resp</text>
<text x="16" y="1060">~</text>
<text x="168" y="1060">~</text>
<text x="312" y="1060">~</text>
<text x="456" y="1060">~</text>
<text x="560" y="1060">~</text>
<text x="16" y="1076">(6)</text>
<text x="60" y="1076">Supply</text>
<text x="120" y="1076">Voucher</text>
<text x="164" y="1076">to</text>
<text x="204" y="1076">Pledge</text>
<text x="16" y="1092">~</text>
<text x="168" y="1092">~</text>
<text x="312" y="1092">~</text>
<text x="456" y="1092">~</text>
<text x="560" y="1092">~</text>
<text x="76" y="1124">opt.</text>
<text x="112" y="1124">TLS</text>
<text x="96" y="1140">Voucher</text>
<text x="96" y="1156">vStatus</text>
<text x="16" y="1188">~</text>
<text x="168" y="1188">~</text>
<text x="312" y="1188">~</text>
<text x="456" y="1188">~</text>
<text x="560" y="1188">~</text>
<text x="16" y="1204">(7)</text>
<text x="60" y="1204">Supply</text>
<text x="100" y="1204">CA</text>
<text x="164" y="1204">Certificates</text>
<text x="228" y="1204">to</text>
<text x="268" y="1204">Pledge</text>
<text x="16" y="1220">~</text>
<text x="168" y="1220">~</text>
<text x="312" y="1220">~</text>
<text x="456" y="1220">~</text>
<text x="560" y="1220">~</text>
<text x="76" y="1252">opt.</text>
<text x="112" y="1252">TLS</text>
<text x="96" y="1268">cACerts</text>
<text x="16" y="1300">~</text>
<text x="168" y="1300">~</text>
<text x="312" y="1300">~</text>
<text x="456" y="1300">~</text>
<text x="560" y="1300">~</text>
<text x="16" y="1316">(8)</text>
<text x="60" y="1316">Supply</text>
<text x="152" y="1316">Enroll-Response</text>
<text x="228" y="1316">to</text>
<text x="268" y="1316">Pledge</text>
<text x="16" y="1332">~</text>
<text x="168" y="1332">~</text>
<text x="312" y="1332">~</text>
<text x="456" y="1332">~</text>
<text x="560" y="1332">~</text>
<text x="76" y="1364">opt.</text>
<text x="112" y="1364">TLS</text>
<text x="96" y="1380">Enroll-Resp</text>
<text x="88" y="1396">eStatus</text>
<text x="16" y="1428">~</text>
<text x="168" y="1428">~</text>
<text x="312" y="1428">~</text>
<text x="456" y="1428">~</text>
<text x="560" y="1428">~</text>
<text x="16" y="1444">(9)</text>
<text x="64" y="1444">Voucher</text>
<text x="124" y="1444">Status</text>
<text x="192" y="1444">Telemetry</text>
<text x="276" y="1444">(including</text>
<text x="352" y="1444">backend</text>
<text x="436" y="1444">interaction)</text>
<text x="16" y="1460">~</text>
<text x="168" y="1460">~</text>
<text x="312" y="1460">~</text>
<text x="456" y="1460">~</text>
<text x="560" y="1460">~</text>
<text x="236" y="1492">mTLS</text>
<text x="240" y="1508">vStatus</text>
<text x="436" y="1524">mTLS</text>
<text x="368" y="1540">req</text>
<text x="412" y="1540">device</text>
<text x="464" y="1540">audit</text>
<text x="504" y="1540">log</text>
<text x="396" y="1556">device</text>
<text x="448" y="1556">audit</text>
<text x="488" y="1556">log</text>
<text x="264" y="1572">[verify</text>
<text x="320" y="1572">audit</text>
<text x="364" y="1572">log]</text>
<text x="312" y="1588">|</text>
<text x="16" y="1604">~</text>
<text x="168" y="1604">~</text>
<text x="312" y="1604">~</text>
<text x="456" y="1604">~</text>
<text x="560" y="1604">~</text>
<text x="20" y="1620">(10)</text>
<text x="68" y="1620">Enroll</text>
<text x="124" y="1620">Status</text>
<text x="192" y="1620">Telemetry</text>
<text x="16" y="1636">~</text>
<text x="168" y="1636">~</text>
<text x="312" y="1636">~</text>
<text x="456" y="1636">~</text>
<text x="560" y="1636">~</text>
<text x="236" y="1668">mTLS</text>
<text x="240" y="1684">eStatus</text>
<text x="16" y="1716">~</text>
<text x="168" y="1716">~</text>
<text x="312" y="1716">~</text>
<text x="456" y="1716">~</text>
<text x="560" y="1716">~</text>
<text x="20" y="1732">(11)</text>
<text x="64" y="1732">Query</text>
<text x="116" y="1732">Pledge</text>
<text x="172" y="1732">Status</text>
<text x="16" y="1748">~</text>
<text x="168" y="1748">~</text>
<text x="312" y="1748">~</text>
<text x="456" y="1748">~</text>
<text x="560" y="1748">~</text>
<text x="76" y="1780">opt.</text>
<text x="112" y="1780">TLS</text>
<text x="96" y="1796">tStatus</text>
<text x="96" y="1812">pStatus</text>
<text x="16" y="1844">~</text>
<text x="168" y="1844">~</text>
<text x="312" y="1844">~</text>
<text x="456" y="1844">~</text>
<text x="560" y="1844">~</text>
</g>
</svg>
</artwork><artwork  type="ascii-art" align="center"><![CDATA[
+--------+    +------------+    +-----------+    +--------+    +------+
| Pledge |    | Registrar- |    |  Domain   |    | Domain |    | MASA |
|        |    |   Agent    |    | Registrar |    |   CA   |    |      |
+--------+    +------------+    +-----------+    +--------+    +------+
 |                  |                 |                 |   Internet |
 |     discover     |                 |                 |            |
 |      pledge      |                 |                 |            |
 |    mDNS query    |                 |                 |            |
 |<-----------------|                 |                 |            |
 |----------------->|                 |                 |            |
 |                  |                 |                 |            |
 ~                  ~                 ~                 ~            ~
(1) Trigger Pledge Voucher-Request
 ~                  ~                 ~                 ~            ~
 |                  |                 |                 |            |
 |<----opt. TLS---->|                 |                 |            |
 |<------tPVR-------|                 |                 |            |
 |--------PVR------>|                 |                 |            |
 |                  |                 |                 |            |
 ~                  ~                 ~                 ~            ~
(2) Trigger Pledge Enroll-Request
 ~                  ~                 ~                 ~            ~
 |                  |                 |                 |            |
 |<----opt. TLS---->|                 |                 |            |
 |<------tPER-------|                 |                 |            |
 |--------PER------>|                 |                 |            |
 |                  |                 |                 |            |
 ~                  ~                 ~                 ~            ~
(3) Supply PVR to Registrar (including backend interaction)
 ~                  ~                 ~                 ~            ~
 |                  |                 |                 |            |
 |                  |<-----mTLS------>|                 |            |
 |                  |         [Registrar-Agent          |            |
 |                  |    authenticated&authorized?]     |            |
 |                  |-------PVR------>|                 |            |
 |                  |          [accept device?]         |            |
 |                  |          [contact vendor]         |            |
 |                  |                 |                 |            |
 |                  |                 |<------------mTLS------------>|
 |                  |                 |--------------RVR------------>|
 |                  |                 |              [extract DomainID]
 |                  |                 |              [update audit log]
 |                  |                 |<-----------Voucher-----------|
 |                  |<----Voucher-----|                 |            |
 |                  |                 |                 |            |
 ~                  ~                 ~                 ~            ~
(4) Supply PER to Registrar (including backend interaction)
 ~                  ~                 ~                 ~            ~
 |                  |                 |                 |            |
 |                  |<----(mTLS)----->|                 |            |
 |                  |-------PER------>|                 |            |
 |                  |                 |<-----mTLS------>|            |
 |                  |                 |-------RER------>|            |
 |                  |                 |<--Enroll-Resp---|            |
 |                  |<--Enroll-Resp---|                 |            |
 |                  |                 |                 |            |
 ~                  ~                 ~                 ~            ~
(5) Request CA Certificates
 ~                  ~                 ~                 ~            ~
 |                  |                 |                 |            |
 |                  |<----(mTLS)----->|                 |            |
 |                  |---cACert-Req--->|                 |            |
 |                  |<--cACert-Resp---|                 |            |
 |                  |                 |                 |            |
 ~                  ~                 ~                 ~            ~
(6) Supply Voucher to Pledge
 ~                  ~                 ~                 ~            ~
 |                  |                 |                 |            |
 |<----opt. TLS---->|                 |                 |            |
 |<-----Voucher-----|                 |                 |            |
 |------vStatus---->|                 |                 |            |
 |                  |                 |                 |            |
 ~                  ~                 ~                 ~            ~
(7) Supply CA Certificates to Pledge
 ~                  ~                 ~                 ~            ~
 |                  |                 |                 |            |
 |<----opt. TLS---->|                 |                 |            |
 |<-----cACerts-----|                 |                 |            |
 |                  |                 |                 |            |
 ~                  ~                 ~                 ~            ~
(8) Supply Enroll-Response to Pledge
 ~                  ~                 ~                 ~            ~
 |                  |                 |                 |            |
 |<----opt. TLS---->|                 |                 |            |
 |<---Enroll-Resp---|                 |                 |            |
 |-----eStatus----->|                 |                 |            |
 |                  |                 |                 |            |
 ~                  ~                 ~                 ~            ~
(9) Voucher Status Telemetry (including backend interaction)
 ~                  ~                 ~                 ~            ~
 |                  |                 |                 |            |
 |                  |<----(mTLS)----->|                 |            |
 |                  |-----vStatus---->|                 |            |
 |                  |                 |<-----------(mTLS)----------->|
 |                  |                 |-----req device audit log---->|
 |                  |                 |<------device audit log-------|
 |                  |        [verify audit log]         |            |
 |                  |                 |                 |            |
 ~                  ~                 ~                 ~            ~
(10) Enroll Status Telemetry
 ~                  ~                 ~                 ~            ~
 |                  |                 |                 |            |
 |                  |<----(mTLS)----->|                 |            |
 |                  |-----eStatus---->|                 |            |
 |                  |                 |                 |            |
 ~                  ~                 ~                 ~            ~
(11) Query Pledge Status
 ~                  ~                 ~                 ~            ~
 |                  |                 |                 |            |
 |<----opt. TLS---->|                 |                 |            |
 |<-----tStatus-----|                 |                 |            |
 |------pStatus---->|                 |                 |            |
 |                  |                 |                 |            |
 ~                  ~                 ~                 ~            ~
]]></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" type="1">
  <t><xref target="tpvr"/> describes the acquisition exchange for the Pledge Voucher-Request initiated by the Registrar-Agent to the pledge.</t>
  <t><xref target="tper"/> describes the acquisition exchange for the Pledge Enroll-Request initiated by the Registrar-Agent to the pledge.</t>
  <t><xref target="pvr"/> describes the issuing exchange for the Voucher initiated by the Registrar-Agent to the registrar, including the interaction of the registrar with the MASA using the RVR <xref target="rvr-proc"/>, as well as the artifact processing by these entities.</t>
  <t><xref target="per"/> describes the enroll exchange initiated by the Registrar-Agent to the registrar including the interaction of the registrar with the CA using the PER as well as the artifact processing by these entities.</t>
  <t><xref target="req_cacerts"/> describes the retrival exchange for the optional CA certificate provisioning to the pledge initiated by the Registrar-Agent to the CA.</t>
  <t><xref target="voucher"/> describes the Voucher exchange initiated by the Registrar-Agent to the pledge and the returned status information.</t>
  <t><xref target="cacerts"/> describes the certificate provisioning exchange initiated by the Registrar-Agent to the pledge.</t>
  <t><xref target="enroll_response"/> describes the Enroll-Response exchange (containing the LDevID (Pledge) certificate) initiated by the Registrar-Agent to the pledge and the returned status information.</t>
  <t><xref target="vstatus"/> describes the Voucher status telemetry exchange initiated by the Registrar-Agent to the registrar, including the interaction of the registrar with the MASA.</t>
  <t><xref target="estatus"/> describes the Enroll Status telemetry exchange initiated by the Registrar-Agent to the registrar.</t>
  <t><xref target="query"/> describes the Pledge Status exchange about the general bootstrapping state initiated by the Registrar-Agent to the pledge.</t>
</list></t>

<section anchor="tpvr"><name>Trigger Pledge Voucher-Request</name>

<t>This exchange 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>Optionally, TLS <bcp14>MAY</bcp14> be used to provide privacy for this exchange between the Registrar-Agent and the pledge, see <xref target="pledgehttps"/>.</t>

<t><xref target="exchangesfig_uc2_1"/> shows the acquisition of the Pledge Voucher-Request (PVR) and the following subsections describe the corresponding artifacts.</t>

<figure title="PVR acquisition exchange" anchor="exchangesfig_uc2_1"><artset><artwork  type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="256" width="576" viewBox="0 0 576 256" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
<path d="M 8,32 L 8,80" fill="none" stroke="black"/>
<path d="M 16,160 L 16,224" fill="none" stroke="black"/>
<path d="M 80,32 L 80,80" fill="none" stroke="black"/>
<path d="M 120,32 L 120,80" fill="none" stroke="black"/>
<path d="M 168,160 L 168,224" fill="none" stroke="black"/>
<path d="M 224,32 L 224,80" fill="none" stroke="black"/>
<path d="M 264,32 L 264,80" fill="none" stroke="black"/>
<path d="M 312,160 L 312,224" fill="none" stroke="black"/>
<path d="M 360,32 L 360,80" fill="none" stroke="black"/>
<path d="M 400,32 L 400,80" fill="none" stroke="black"/>
<path d="M 456,160 L 456,224" fill="none" stroke="black"/>
<path d="M 472,32 L 472,80" fill="none" stroke="black"/>
<path d="M 512,32 L 512,80" fill="none" stroke="black"/>
<path d="M 560,160 L 560,224" fill="none" stroke="black"/>
<path d="M 568,32 L 568,80" fill="none" stroke="black"/>
<path d="M 8,32 L 80,32" fill="none" stroke="black"/>
<path d="M 120,32 L 224,32" fill="none" stroke="black"/>
<path d="M 264,32 L 360,32" fill="none" stroke="black"/>
<path d="M 400,32 L 472,32" fill="none" stroke="black"/>
<path d="M 512,32 L 568,32" fill="none" stroke="black"/>
<path d="M 8,80 L 80,80" fill="none" stroke="black"/>
<path d="M 120,80 L 224,80" fill="none" stroke="black"/>
<path d="M 264,80 L 360,80" fill="none" stroke="black"/>
<path d="M 400,80 L 472,80" fill="none" stroke="black"/>
<path d="M 512,80 L 568,80" fill="none" stroke="black"/>
<path d="M 24,176 L 56,176" fill="none" stroke="black"/>
<path d="M 128,176 L 160,176" fill="none" stroke="black"/>
<path d="M 24,192 L 72,192" fill="none" stroke="black"/>
<path d="M 112,192 L 160,192" fill="none" stroke="black"/>
<path d="M 24,208 L 80,208" fill="none" stroke="black"/>
<path d="M 112,208 L 160,208" fill="none" stroke="black"/>
<polygon class="arrowhead" points="168,208 156,202.4 156,213.6" fill="black" transform="rotate(0,160,208)"/>
<polygon class="arrowhead" points="168,176 156,170.4 156,181.6" fill="black" transform="rotate(0,160,176)"/>
<polygon class="arrowhead" points="32,192 20,186.4 20,197.6" fill="black" transform="rotate(180,24,192)"/>
<polygon class="arrowhead" points="32,176 20,170.4 20,181.6" fill="black" transform="rotate(180,24,176)"/>
<g class="text">
<text x="44" y="52">Pledge</text>
<text x="172" y="52">Registrar-</text>
<text x="308" y="52">Domain</text>
<text x="436" y="52">Domain</text>
<text x="540" y="52">MASA</text>
<text x="168" y="68">Agent</text>
<text x="312" y="68">Registrar</text>
<text x="436" y="68">CA</text>
<text x="16" y="100">|</text>
<text x="168" y="100">|</text>
<text x="312" y="100">|</text>
<text x="456" y="100">|</text>
<text x="516" y="100">Internet</text>
<text x="560" y="100">|</text>
<text x="16" y="116">~</text>
<text x="168" y="116">~</text>
<text x="312" y="116">~</text>
<text x="456" y="116">~</text>
<text x="560" y="116">~</text>
<text x="16" y="132">(1)</text>
<text x="64" y="132">Trigger</text>
<text x="124" y="132">Pledge</text>
<text x="216" y="132">Voucher-Request</text>
<text x="16" y="148">~</text>
<text x="168" y="148">~</text>
<text x="312" y="148">~</text>
<text x="456" y="148">~</text>
<text x="560" y="148">~</text>
<text x="76" y="180">opt.</text>
<text x="112" y="180">TLS</text>
<text x="92" y="196">tPVR</text>
<text x="96" y="212">PVR</text>
<text x="16" y="244">~</text>
<text x="168" y="244">~</text>
<text x="312" y="244">~</text>
<text x="456" y="244">~</text>
<text x="560" y="244">~</text>
</g>
</svg>
</artwork><artwork  type="ascii-art" align="center"><![CDATA[
+--------+    +------------+    +-----------+    +--------+    +------+
| Pledge |    | Registrar- |    |  Domain   |    | Domain |    | MASA |
|        |    |   Agent    |    | Registrar |    |   CA   |    |      |
+--------+    +------------+    +-----------+    +--------+    +------+
 |                  |                 |                 |   Internet |
 ~                  ~                 ~                 ~            ~
(1) Trigger Pledge Voucher-Request
 ~                  ~                 ~                 ~            ~
 |                  |                 |                 |            |
 |<----opt. TLS---->|                 |                 |            |
 |<------tPVR-------|                 |                 |            |
 |--------PVR------>|                 |                 |            |
 |                  |                 |                 |            |
 ~                  ~                 ~                 ~            ~
]]></artwork></artset></figure>

<t>The Registrar-Agent triggers the pledge to create the PVR via HTTP POST on the well-known pledge endpoint <spanx style="verb">/.well-known/brski/tpvr</spanx>.
The request body <bcp14>MUST</bcp14> contain the JSON-based Pledge Voucher-Request Trigger (tPVR) artifact.
The request header <bcp14>MUST</bcp14> set the Content-Type field to <spanx style="verb">application/json</spanx>.</t>

<t>Upon receiving a valid tPVR, the pledge <bcp14>MUST</bcp14> reply with the PVR artifact in the body of a 200 OK response.
The Content-Type field header of the response <bcp14>MUST</bcp14> be set to <spanx style="verb">application/voucher-jws+json</spanx> as defined in <xref target="I-D.ietf-anima-jws-voucher"/>.</t>

<t>If the pledge is unable to create the PVR, it <bcp14>SHOULD</bcp14> respond with an HTTP error code. 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>406 Not Acceptable: if the Accept request header field indicates a type that is unknown or unsupported, e.g., a type other than <spanx style="verb">application/jose+json</spanx>.</t>
  <t>415 Unsupported Media Type: if the Content-Type request header field indicates a type that is unknown or unsupported, e.g., a type other than <spanx style="verb">application/json</spanx>.</t>
</list></t>

<section anchor="request-artifact-pledge-voucher-request-trigger-tpvr"><name>Request Artifact: Pledge Voucher-Request Trigger (tPVR)</name>

<t>The Pledge Voucher-Request Trigger (tPVR) artifact is an unsigned JSON structure providing the trigger parameters.
The following CDDL <xref target="RFC8610"/> explains the Pledge Voucher-Request Trigger structure.</t>

<figure title="CDDL for Pledge Voucher-Request Trigger" anchor="tpvr_CDDL_def"><artwork type="cddl" align="left"><![CDATA[
  pledgevoucherrequesttrigger = {
    "agent-provided-proximity-registrar-cert": bytes,
    "agent-signed-data": bytes
  }
]]></artwork></figure>

<t>The fields contained in the <spanx style="verb">pledgevoucherrequesttrigger</spanx> are:</t>

<t><list style="symbols">
  <t><spanx style="verb">agent-provided-proximity-registrar-cert</spanx>: X.509 v3 certificate structure of the domain registrar EE certificate (base64-encoded value); 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</t>
  <t><spanx style="verb">agent-signed-data</spanx>: base64-encoded JWS structure containing the SubjectKeyIdentifier of the EE (RegAgt) certificate and signing Data including the creation date and serial number of the pledge. Note that <xref target="I-D.ietf-anima-rfc8366bis"/> defines an opaque binary element for agent-signed data, for which the structure is defined in BRSKI-PRM.</t>
</list></t>

<figure title="JWS structure for the agent-signed-data member in General JWS Serialization syntax" anchor="asd"><artwork align="left"><![CDATA[
{
  "payload": BASE64URL(UTF8(prmasd)),
  "signatures": [
    {
      "protected": BASE64URL(UTF8(JWS Protected Header)),
      "signature": BASE64URL(JWS Signature)
    }
  ]
}
]]></artwork></figure>

<t>The BRSKI-PRM Agent Signed Data structure <bcp14>MUST</bcp14> be encoded in JSON as defined in <xref target="RFC8259"/> following the CDDL definition <xref target="prmasd_CDDL_def"/>.
The JWS Payload is further base64url-encoded to become the string value of the <spanx style="verb">payload</spanx> member as described in <xref section="3.2" sectionFormat="of" target="RFC7515"/>.</t>

<t>The following CDDL <xref target="RFC8610"/> explains the BRSKI-PRM Agent Signed Data structure.</t>

<figure title="CDDL for BRSKI-PRM Agent Signed Data" anchor="prmasd_CDDL_def"><artwork type="cddl" align="left"><![CDATA[
  prmasd = {
    "created": tdate,
    "serial-number": text
  }
]]></artwork></figure>

<t>The fields contained in the <spanx style="verb">prmasd</spanx> are:</t>

<t><list style="symbols">
  <t><spanx style="verb">created-on</spanx>: creation date and time as standard date/time string as defined in <xref target="RFC3339"/></t>
  <t><spanx style="verb">serial-number</spanx>: product-serial-number in the X520SerialNumber field of the IDevID certificate of the pledge as string as defined in <xref section="2.3.1" sectionFormat="of" target="RFC8995"/></t>
</list></t>

<t><xref target="prmasd_payload"/> below shows an example for unsigned BRSKI-PRM Agent Signed Data in JSON syntax.</t>

<figure title="Data example for prmasd" anchor="prmasd_payload"><artwork align="left"><![CDATA[
{
  "created-on": "2021-04-16T00:00:01.000Z",
  "serial-number": "callee4711"
}
]]></artwork></figure>

<t>The JWS Protected Header of the <spanx style="verb">agent-signed-data</spanx> JWS structure <bcp14>MUST</bcp14> contain the following parameters (see <xref target="asd_header"/> for an example):</t>

<t><list style="symbols">
  <t><spanx style="verb">alg</spanx>: algorithm type used to create the signature, e.g., <spanx style="verb">ES256</spanx> as defined in <xref section="4.1.1" sectionFormat="of" target="RFC7515"/></t>
  <t><spanx style="verb">kid</spanx>: base64-encoded bytes of the SubjectKeyIdentifier (the "KeyIdentifier" OCTET STRING value) of the EE (RegAgt) certificate.</t>
</list></t>

<figure title="Protected Header example inside agent-signed-data" anchor="asd_header"><artwork align="left"><![CDATA[
{
  "alg": "ES256",
  "kid": "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.
Hence, the tPVR is an unsigned artifact and the pledge only accepts the registrar LDevID certificate provisionally until it receives the voucher as described in <xref target="voucher"/>.</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>

</section>
<section anchor="response-artifact-pledge-voucher-request-pvr"><name>Response Artifact: Pledge Voucher-Request (PVR)</name>

<t>The Pledge Voucher-Request (PVR) artifact is a JWS Voucher Request as defined in <xref target="I-D.ietf-anima-jws-voucher"/>.
Its unsigned data <bcp14>SHALL</bcp14> be constructed similar to the Voucher-Request artifact defined in <xref target="RFC8995"/>.
It will contain additional data provided by the Registrar-Agent as specified in the following.</t>

<t>The payload of the PVR <bcp14>MUST</bcp14> contain the following parameters as part of the ietf-voucher-request:voucher as defined in <xref target="I-D.ietf-anima-rfc8366bis"/> and thus makes optional leaves in the YANG definition mandatory:</t>

<t><list style="symbols">
  <t><spanx style="verb">created-on</spanx>: <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><spanx style="verb">nonce</spanx>: <bcp14>SHALL</bcp14> contain a cryptographically strong pseudo-random number.</t>
  <t><spanx style="verb">serial-number</spanx>: <bcp14>SHALL</bcp14> contain the pledge product-serial-number as X520SerialNumber.</t>
  <t><spanx style="verb">assertion</spanx>: <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 data is extended with two additional parameters that <bcp14>MUST</bcp14> be included:</t>

<t><list style="symbols">
  <t><spanx style="verb">agent-provided-proximity-registrar-cert</spanx>: base64-encoded registrar EE certificate (provided in tPVR by the Registrar-Agent); enables the registrar to verify that it is the desired registrar for handling the PVR</t>
  <t><spanx style="verb">agent-signed-data</spanx>: base64-encoded agent-signed-data (provided in tPVR by the Registrar-Agent); enables the registrar to verify and log, which Registrar-Agent was in contact with the pledge, when verifying the PVR</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_example"><artwork align="left"><![CDATA[
# The PVR in General JWS Serialization syntax
{
  "payload": BASE64URL(UTF8(ietf-voucher-request:voucher)),
  "signatures": [
    {
      "protected": BASE64URL(UTF8(JWS Protected Header)),
      "signature": BASE64URL(JWS Signature)
    }
  ]
}

# Example: Decoded Payload "ietf-voucher-request:voucher"
  representation in JSON syntax
{
  "ietf-voucher-request: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",
    "typ": "voucher-jws+json",
    "x5c": [
      "base64encodedvalue==",
      "base64encodedvalue=="
    ]
}
]]></artwork></figure>

</section>
</section>
<section anchor="tper"><name>Trigger Pledge Enroll-Request</name>

<t>Once the Registrar-Agent has received the PVR it can trigger the pledge to generate a Pledge Enroll-Request (PER).</t>

<t>Optionally, TLS <bcp14>MAY</bcp14> be used to provide privacy for this exchange between the Registrar-Agent and the pledge, see <xref target="pledgehttps"/>.</t>

<t><xref target="exchangesfig_uc2_2"/> shows the the acquisition of the PER and the following subsections describe the corresponding artifacts.</t>

<figure title="PER acquisition exchange" anchor="exchangesfig_uc2_2"><artset><artwork  type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="256" width="576" viewBox="0 0 576 256" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
<path d="M 8,32 L 8,80" fill="none" stroke="black"/>
<path d="M 16,160 L 16,224" fill="none" stroke="black"/>
<path d="M 80,32 L 80,80" fill="none" stroke="black"/>
<path d="M 120,32 L 120,80" fill="none" stroke="black"/>
<path d="M 168,160 L 168,224" fill="none" stroke="black"/>
<path d="M 224,32 L 224,80" fill="none" stroke="black"/>
<path d="M 264,32 L 264,80" fill="none" stroke="black"/>
<path d="M 312,160 L 312,224" fill="none" stroke="black"/>
<path d="M 360,32 L 360,80" fill="none" stroke="black"/>
<path d="M 400,32 L 400,80" fill="none" stroke="black"/>
<path d="M 456,160 L 456,224" fill="none" stroke="black"/>
<path d="M 472,32 L 472,80" fill="none" stroke="black"/>
<path d="M 512,32 L 512,80" fill="none" stroke="black"/>
<path d="M 560,160 L 560,224" fill="none" stroke="black"/>
<path d="M 568,32 L 568,80" fill="none" stroke="black"/>
<path d="M 8,32 L 80,32" fill="none" stroke="black"/>
<path d="M 120,32 L 224,32" fill="none" stroke="black"/>
<path d="M 264,32 L 360,32" fill="none" stroke="black"/>
<path d="M 400,32 L 472,32" fill="none" stroke="black"/>
<path d="M 512,32 L 568,32" fill="none" stroke="black"/>
<path d="M 8,80 L 80,80" fill="none" stroke="black"/>
<path d="M 120,80 L 224,80" fill="none" stroke="black"/>
<path d="M 264,80 L 360,80" fill="none" stroke="black"/>
<path d="M 400,80 L 472,80" fill="none" stroke="black"/>
<path d="M 512,80 L 568,80" fill="none" stroke="black"/>
<path d="M 24,176 L 56,176" fill="none" stroke="black"/>
<path d="M 128,176 L 160,176" fill="none" stroke="black"/>
<path d="M 24,192 L 72,192" fill="none" stroke="black"/>
<path d="M 112,192 L 160,192" fill="none" stroke="black"/>
<path d="M 24,208 L 80,208" fill="none" stroke="black"/>
<path d="M 112,208 L 160,208" fill="none" stroke="black"/>
<polygon class="arrowhead" points="168,208 156,202.4 156,213.6" fill="black" transform="rotate(0,160,208)"/>
<polygon class="arrowhead" points="168,176 156,170.4 156,181.6" fill="black" transform="rotate(0,160,176)"/>
<polygon class="arrowhead" points="32,192 20,186.4 20,197.6" fill="black" transform="rotate(180,24,192)"/>
<polygon class="arrowhead" points="32,176 20,170.4 20,181.6" fill="black" transform="rotate(180,24,176)"/>
<g class="text">
<text x="44" y="52">Pledge</text>
<text x="172" y="52">Registrar-</text>
<text x="308" y="52">Domain</text>
<text x="436" y="52">Domain</text>
<text x="540" y="52">MASA</text>
<text x="168" y="68">Agent</text>
<text x="312" y="68">Registrar</text>
<text x="436" y="68">CA</text>
<text x="16" y="100">|</text>
<text x="168" y="100">|</text>
<text x="312" y="100">|</text>
<text x="456" y="100">|</text>
<text x="516" y="100">Internet</text>
<text x="560" y="100">|</text>
<text x="16" y="116">~</text>
<text x="168" y="116">~</text>
<text x="312" y="116">~</text>
<text x="456" y="116">~</text>
<text x="560" y="116">~</text>
<text x="16" y="132">(2)</text>
<text x="64" y="132">Trigger</text>
<text x="124" y="132">Pledge</text>
<text x="212" y="132">Enroll-Request</text>
<text x="16" y="148">~</text>
<text x="168" y="148">~</text>
<text x="312" y="148">~</text>
<text x="456" y="148">~</text>
<text x="560" y="148">~</text>
<text x="76" y="180">opt.</text>
<text x="112" y="180">TLS</text>
<text x="92" y="196">tPER</text>
<text x="96" y="212">PER</text>
<text x="16" y="244">~</text>
<text x="168" y="244">~</text>
<text x="312" y="244">~</text>
<text x="456" y="244">~</text>
<text x="560" y="244">~</text>
</g>
</svg>
</artwork><artwork  type="ascii-art" align="center"><![CDATA[
+--------+    +------------+    +-----------+    +--------+    +------+
| Pledge |    | Registrar- |    |  Domain   |    | Domain |    | MASA |
|        |    |   Agent    |    | Registrar |    |   CA   |    |      |
+--------+    +------------+    +-----------+    +--------+    +------+
 |                  |                 |                 |   Internet |
 ~                  ~                 ~                 ~            ~
(2) Trigger Pledge Enroll-Request
 ~                  ~                 ~                 ~            ~
 |                  |                 |                 |            |
 |<----opt. TLS---->|                 |                 |            |
 |<------tPER-------|                 |                 |            |
 |--------PER------>|                 |                 |            |
 |                  |                 |                 |            |
 ~                  ~                 ~                 ~            ~
]]></artwork></artset></figure>

<t>The Registrar-Agent triggers the pledge to create the PER via HTTP POST on the well-known pledge endpoint <spanx style="verb">/.well-known/brski/tper</spanx>.
As the initial enrollment aims to request a generic certificate, no certificate attributes are provided to the pledge.
To avoid an empty request body an artifact is provided containing the description of the requested operation.</t>

<t>Upon receiving a valid tPER, the pledge <bcp14>MUST</bcp14> reply with the PER artifact in the body of a 200 OK response.
The response header <bcp14>MUST</bcp14> have the Content-Type field set to <spanx style="verb">application/jose+json</spanx>.</t>

<t>If the pledge is unable to create the PER, it <bcp14>SHOULD</bcp14> respond with an HTTP error code. 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.</t>
  <t>406 Not Acceptable: if the Accept request header field 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 Content-Type request header field indicates a type that is unknown or unsupported, e.g., a type other than <spanx style="verb">application/json</spanx>.</t>
</list></t>

<section anchor="request-artifact-pledge-enroll-request-trigger-tper"><name>Request Artifact: Pledge Enroll-Request Trigger (tPER)</name>

<t>This document specifies the trigger for 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.</t>

<t>The Pledge Enroll-Request Trigger (tPVR) artifact is an unsigned JSON structure providing the trigger parameters (tPER-data).
The following CDDL <xref target="RFC8610"/> explains the Pledge Enroll-Request Trigger structure.</t>

<figure title="CDDL for Pledge Enroll-Request Trigger" anchor="tper_CDDL_def"><artwork type="cddl" align="left"><![CDATA[
pledgeenrollrequesttrigger = {
        "enroll-type": $enroll-type
}

$enroll-type /= "enroll-generic-cert"
]]></artwork></figure>

<t>The enroll-type  allows for specifying arbitrary indications, which type of certificate is to be enrolled.
BRSKI enris an enum, identifying what is being enrolled.
As shown in <xref target="tper_CDDL_def"/>, BRSKI-PRM defines only "enroll-generic-cert" for the enrollment of the generic LDevID certificate.
Other specifications using this mechanism may define further values, e.g., to bootstrap application related certificates, e.g., indicated by a value "enroll-app-cert".</t>

<t>The Pledge Enroll-Request Trigger (tPER) artifact <bcp14>MUST</bcp14> be encoded in JSON as defined in <xref target="RFC8259"/> following the CDDL definition <xref target="tper_CDDL_def"/>.</t>

<t>The Pledge Enroll-Request Trigger (tPER) artifact <bcp14>MAY</bcp14> be used to provide additional data, like CSR attributes.
How to provide and use such additional data is out of scope for this specification.</t>

</section>
<section anchor="per-resp-artifact"><name>Response Artifact: Pledge Enroll-Request (PER)</name>

<t>The Pledge Enroll-Request (PER) artifact is a JWS-signed PKCS#10 Certificate Signing Request (CSR) utilizing the csr-grouping of the <spanx style="verb">ietf-ztp-types</spanx> YANG module as defined in <xref target="I-D.ietf-netconf-sztp-csr"/>.
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.</t>

<t>The pledge constructs the Pledge Enroll-Request (PER) artifact as a JWS structure containing the PKCS#10 request wrapped in ietf-ztp-types YANG structrue as JWS payload.
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 and <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>A successful enrollment will result in a generic LDevID certificate for the pledge in the new domain.
This generic LDevID certificate can be used to request further (application specific) LDevID certificates if necessary for operation.
The Registrar-Agent <bcp14>SHALL</bcp14> use the enrollment endpoint <spanx style="verb">requestenroll</spanx> specified in this document to provide the Pledge Enroll-Request artifact to the Registrar.</t>

<t>The JWS Protected Header of the PER <bcp14>MUST</bcp14> contain the following parameters as defined in <xref target="RFC7515"/>:</t>

<t><list style="symbols">
  <t><spanx style="verb">alg</spanx>: algorithm type used to create the signature, e.g., <spanx style="verb">ES256</spanx> as defined in <xref section="4.1.1" sectionFormat="of" target="RFC7515"/></t>
  <t><spanx style="verb">x5c</spanx>: 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 body of the Pledge Enroll-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><list style="symbols">
  <t><spanx style="verb">p10-csr</spanx>: 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_example"><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 <xref section="4.1.11" sectionFormat="of" 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.
If the pledge does not have synchronized time, it used the created-on time from the agent-signed-data during the creation of the PVR and should advance that value for use in PER creation.
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="pvr"><name>Supply PVR to Registrar (including backend interaction)</name>

<t>Similar to BRSKI "requestvoucher" endpoint in <xref section="5.2" sectionFormat="of" target="RFC8995"/>.</t>

<t>The Registrar-Agent has acquired one or more PVR and PER object pairs</t>

<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>

<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><xref target="exchangesfig_uc2_3"/> shows the exchanges for the Voucher Request processing and the following subsections describe the corresponding artifacts.</t>

<figure title="Voucher issuing exchange" anchor="exchangesfig_uc2_3"><artset><artwork  type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="416" width="576" viewBox="0 0 576 416" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
<path d="M 8,32 L 8,80" fill="none" stroke="black"/>
<path d="M 16,160 L 16,384" fill="none" stroke="black"/>
<path d="M 80,32 L 80,80" fill="none" stroke="black"/>
<path d="M 120,32 L 120,80" fill="none" stroke="black"/>
<path d="M 168,160 L 168,384" fill="none" stroke="black"/>
<path d="M 224,32 L 224,80" fill="none" stroke="black"/>
<path d="M 264,32 L 264,80" fill="none" stroke="black"/>
<path d="M 312,160 L 312,176" fill="none" stroke="black"/>
<path d="M 312,272 L 312,384" fill="none" stroke="black"/>
<path d="M 360,32 L 360,80" fill="none" stroke="black"/>
<path d="M 400,32 L 400,80" fill="none" stroke="black"/>
<path d="M 456,160 L 456,280" fill="none" stroke="black"/>
<path d="M 456,368 L 456,384" fill="none" stroke="black"/>
<path d="M 472,32 L 472,80" fill="none" stroke="black"/>
<path d="M 512,32 L 512,80" fill="none" stroke="black"/>
<path d="M 560,160 L 560,304" fill="none" stroke="black"/>
<path d="M 560,352 L 560,384" fill="none" stroke="black"/>
<path d="M 568,32 L 568,80" fill="none" stroke="black"/>
<path d="M 8,32 L 80,32" fill="none" stroke="black"/>
<path d="M 120,32 L 224,32" fill="none" stroke="black"/>
<path d="M 264,32 L 360,32" fill="none" stroke="black"/>
<path d="M 400,32 L 472,32" fill="none" stroke="black"/>
<path d="M 512,32 L 568,32" fill="none" stroke="black"/>
<path d="M 8,80 L 80,80" fill="none" stroke="black"/>
<path d="M 120,80 L 224,80" fill="none" stroke="black"/>
<path d="M 264,80 L 360,80" fill="none" stroke="black"/>
<path d="M 400,80 L 472,80" fill="none" stroke="black"/>
<path d="M 512,80 L 568,80" fill="none" stroke="black"/>
<path d="M 176,176 L 216,176" fill="none" stroke="black"/>
<path d="M 256,176 L 304,176" fill="none" stroke="black"/>
<path d="M 176,224 L 224,224" fill="none" stroke="black"/>
<path d="M 256,224 L 304,224" fill="none" stroke="black"/>
<path d="M 320,288 L 416,288" fill="none" stroke="black"/>
<path d="M 456,288 L 552,288" fill="none" stroke="black"/>
<path d="M 320,304 L 424,304" fill="none" stroke="black"/>
<path d="M 456,304 L 552,304" fill="none" stroke="black"/>
<path d="M 320,352 L 408,352" fill="none" stroke="black"/>
<path d="M 472,352 L 552,352" fill="none" stroke="black"/>
<path d="M 176,368 L 208,368" fill="none" stroke="black"/>
<path d="M 272,368 L 304,368" fill="none" stroke="black"/>
<polygon class="arrowhead" points="560,304 548,298.4 548,309.6" fill="black" transform="rotate(0,552,304)"/>
<polygon class="arrowhead" points="560,288 548,282.4 548,293.6" fill="black" transform="rotate(0,552,288)"/>
<polygon class="arrowhead" points="328,352 316,346.4 316,357.6" fill="black" transform="rotate(180,320,352)"/>
<polygon class="arrowhead" points="328,288 316,282.4 316,293.6" fill="black" transform="rotate(180,320,288)"/>
<polygon class="arrowhead" points="312,224 300,218.4 300,229.6" fill="black" transform="rotate(0,304,224)"/>
<polygon class="arrowhead" points="312,176 300,170.4 300,181.6" fill="black" transform="rotate(0,304,176)"/>
<polygon class="arrowhead" points="184,368 172,362.4 172,373.6" fill="black" transform="rotate(180,176,368)"/>
<polygon class="arrowhead" points="184,176 172,170.4 172,181.6" fill="black" transform="rotate(180,176,176)"/>
<g class="text">
<text x="44" y="52">Pledge</text>
<text x="172" y="52">Registrar-</text>
<text x="308" y="52">Domain</text>
<text x="436" y="52">Domain</text>
<text x="540" y="52">MASA</text>
<text x="168" y="68">Agent</text>
<text x="312" y="68">Registrar</text>
<text x="436" y="68">CA</text>
<text x="16" y="100">|</text>
<text x="168" y="100">|</text>
<text x="312" y="100">|</text>
<text x="456" y="100">|</text>
<text x="516" y="100">Internet</text>
<text x="560" y="100">|</text>
<text x="16" y="116">~</text>
<text x="168" y="116">~</text>
<text x="312" y="116">~</text>
<text x="456" y="116">~</text>
<text x="560" y="116">~</text>
<text x="16" y="132">(3)</text>
<text x="60" y="132">Supply</text>
<text x="104" y="132">PVR</text>
<text x="132" y="132">to</text>
<text x="184" y="132">Registrar</text>
<text x="268" y="132">(including</text>
<text x="344" y="132">backend</text>
<text x="428" y="132">interaction)</text>
<text x="16" y="148">~</text>
<text x="168" y="148">~</text>
<text x="312" y="148">~</text>
<text x="456" y="148">~</text>
<text x="560" y="148">~</text>
<text x="236" y="180">mTLS</text>
<text x="308" y="196">[Registrar-Agent</text>
<text x="308" y="212">authenticated&amp;authorized?]</text>
<text x="240" y="228">PVR</text>
<text x="312" y="228">|</text>
<text x="280" y="244">[accept</text>
<text x="348" y="244">device?]</text>
<text x="284" y="260">[contact</text>
<text x="352" y="260">vendor]</text>
<text x="436" y="292">mTLS</text>
<text x="440" y="308">RVR</text>
<text x="460" y="324">[extract</text>
<text x="536" y="324">DomainID]</text>
<text x="456" y="340">[update</text>
<text x="512" y="340">audit</text>
<text x="556" y="340">log]</text>
<text x="440" y="356">Voucher</text>
<text x="240" y="372">Voucher</text>
<text x="16" y="404">~</text>
<text x="168" y="404">~</text>
<text x="312" y="404">~</text>
<text x="456" y="404">~</text>
<text x="560" y="404">~</text>
</g>
</svg>
</artwork><artwork  type="ascii-art" align="center"><![CDATA[
+--------+    +------------+    +-----------+    +--------+    +------+
| Pledge |    | Registrar- |    |  Domain   |    | Domain |    | MASA |
|        |    |   Agent    |    | Registrar |    |   CA   |    |      |
+--------+    +------------+    +-----------+    +--------+    +------+
 |                  |                 |                 |   Internet |
 ~                  ~                 ~                 ~            ~
(3) Supply PVR to Registrar (including backend interaction)
 ~                  ~                 ~                 ~            ~
 |                  |                 |                 |            |
 |                  |<-----mTLS------>|                 |            |
 |                  |         [Registrar-Agent          |            |
 |                  |    authenticated&authorized?]     |            |
 |                  |-------PVR------>|                 |            |
 |                  |          [accept device?]         |            |
 |                  |          [contact vendor]         |            |
 |                  |                 |                 |            |
 |                  |                 |<------------mTLS------------>|
 |                  |                 |--------------RVR------------>|
 |                  |                 |              [extract DomainID]
 |                  |                 |              [update audit log]
 |                  |                 |<-----------Voucher-----------|
 |                  |<----Voucher-----|                 |            |
 |                  |                 |                 |            |
 ~                  ~                 ~                 ~            ~
]]></artwork></artset></figure>

<t>The HTTP request Content-Type header field for JSON-in-JWS PVR is: <spanx style="verb">application/voucher-jws+json</spanx> (see <xref target="tpvr"/> 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.</t>

<t>The HTTP 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"/> if no content negotiation is used.</t>

<section anchor="request-artifact-pledge-voucher-request-pvr"><name>Request Artifact: Pledge Voucher-Request (PVR)</name>

<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>After receiving the PVR from Registrar-Agent, the registrar <bcp14>SHALL</bcp14> perform the verification as defined in <xref section="5.3" sectionFormat="of" 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 or if the pledge-provided information could not be used with automated allowance.</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 section="5.3" sectionFormat="of" target="RFC8995"/> followed by obtaining a voucher from the pledge's MASA according to <xref section="5.4" sectionFormat="of" target="RFC8995"/> with the modifications described below in <xref target="rvr-proc"/>.</t>

</section>
<section anchor="rvr-proc"><name>Supply RVR to MASA (backend interaction)</name>

<t>The registrar needs to convert the PVR to an RVR and supply it to the MASA.</t>

<t>If the MASA address/URI is learned from the IDevID MASA URI extension (<xref section="2.3" sectionFormat="of" target="RFC8995"/>), 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>idevid-issuer: issuer value from the pledge IDevID certificate</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="tpvr"/></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(UTF8(ietf-voucher-request:voucher)),
  "signatures": [
    {
      "protected": BASE64URL(UTF8(JWS Protected Header)),
      "signature": BASE64URL(JWS Signature)
    }
  ]
}

# Example: Decoded payload "ietf-voucher-request:voucher"
  representation in JSON syntax
{
  "ietf-voucher-request:voucher": {
     "created-on": "2022-01-04T02:37:39.235Z",
     "nonce": "eDs++/FuDHGUnRxN3E14CQ==",
         "idevid-issuer": "base64encodedvalue==",
     "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="RFC9052"/> 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 <xref section="5.5" sectionFormat="of" 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 <xref section="5.6" sectionFormat="of" target="RFC8995"/> and comprise the codes: 403, 404, 406, and 415.</t>

<t>The registrar provides the EE certificate of the Registrar-Agent identified by the SubjectKeyIdentifier (SKID) in the header of the "agent-signed-data" from the PVR in its RVR (see also <xref target="rvr-proc"/>).</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-cert" leaf and may assert the PVR as "verified" or "logged".</t>

<t>In addition, the MASA may 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 certificate of the Registrar-Agent 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 response status codes as described in <xref section="5.6" sectionFormat="of" target="RFC8995"/>.
When successful, the Voucher will then be supplied via the registrar to the Registrar-Agent.</t>

</section>
<section anchor="exchanges_uc2_2_vc"><name>Issue Voucher by MASA (backend interaction)</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(UTF8(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 <xref section="5.5" sectionFormat="of" target="RFC8995"/>.
The MASA returns the voucher-response (voucher) to the registrar.</t>

</section>
<section anchor="exchanges_uc2_2_vs"><name>Supply Voucher to Registrar (backend interaction)</name>

<t>After receiving the voucher from the MASA, the registrar <bcp14>SHOULD</bcp14> evaluate it for transparency and logging purposes as outlined in <xref section="5.6" sectionFormat="of" target="RFC8995"/>.
The registrar then prepares the artifact to be provided via the registrar-agent to the pledge as described in the following section <xref target="exchanges_uc2_2_reg_signed_voucher"/>.</t>

</section>
<section anchor="exchanges_uc2_2_reg_signed_voucher"><name>Response Artifact: Registrar countersigned Voucher</name>
<t>The registrar <bcp14>MUST</bcp14> add an additional signature to the MASA provided voucher using its registrar EE credentials.
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 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 (of the Registrar) that the pledge received in the trigger for the PVR (see <xref target="tpvr_CDDL_def"/>).</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",
  "typ": "voucher-jws+json",
  "x5c": [
    "base64encodedvalue==",
    "base64encodedvalue=="
  ]
}

# 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 as explicit authorization of the registrar to install the contained trust anchor.
The registrar returns the voucher to the Registrar-Agent.</t>

</section>
</section>
<section anchor="per"><name>Supply PER to Registrar (including backend interaction)</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 <xref section="5.2" sectionFormat="of" 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.</t>

<t><xref target="exchangesfig_uc2_4"/> depicts exchanges for the PER request handling and the following subsections describe the corresponding artifacts.</t>

<figure title="Enroll exchange" anchor="exchangesfig_uc2_4"><artset><artwork  type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="304" width="576" viewBox="0 0 576 304" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
<path d="M 8,32 L 8,80" fill="none" stroke="black"/>
<path d="M 16,160 L 16,272" fill="none" stroke="black"/>
<path d="M 80,32 L 80,80" fill="none" stroke="black"/>
<path d="M 120,32 L 120,80" fill="none" stroke="black"/>
<path d="M 168,160 L 168,272" fill="none" stroke="black"/>
<path d="M 224,32 L 224,80" fill="none" stroke="black"/>
<path d="M 264,32 L 264,80" fill="none" stroke="black"/>
<path d="M 312,160 L 312,272" fill="none" stroke="black"/>
<path d="M 360,32 L 360,80" fill="none" stroke="black"/>
<path d="M 400,32 L 400,80" fill="none" stroke="black"/>
<path d="M 456,160 L 456,272" fill="none" stroke="black"/>
<path d="M 472,32 L 472,80" fill="none" stroke="black"/>
<path d="M 512,32 L 512,80" fill="none" stroke="black"/>
<path d="M 560,160 L 560,272" fill="none" stroke="black"/>
<path d="M 568,32 L 568,80" fill="none" stroke="black"/>
<path d="M 8,32 L 80,32" fill="none" stroke="black"/>
<path d="M 120,32 L 224,32" fill="none" stroke="black"/>
<path d="M 264,32 L 360,32" fill="none" stroke="black"/>
<path d="M 400,32 L 472,32" fill="none" stroke="black"/>
<path d="M 512,32 L 568,32" fill="none" stroke="black"/>
<path d="M 8,80 L 80,80" fill="none" stroke="black"/>
<path d="M 120,80 L 224,80" fill="none" stroke="black"/>
<path d="M 264,80 L 360,80" fill="none" stroke="black"/>
<path d="M 400,80 L 472,80" fill="none" stroke="black"/>
<path d="M 512,80 L 568,80" fill="none" stroke="black"/>
<path d="M 176,176 L 216,176" fill="none" stroke="black"/>
<path d="M 256,176 L 304,176" fill="none" stroke="black"/>
<path d="M 176,192 L 224,192" fill="none" stroke="black"/>
<path d="M 256,192 L 304,192" fill="none" stroke="black"/>
<path d="M 320,208 L 360,208" fill="none" stroke="black"/>
<path d="M 400,208 L 448,208" fill="none" stroke="black"/>
<path d="M 320,224 L 368,224" fill="none" stroke="black"/>
<path d="M 400,224 L 448,224" fill="none" stroke="black"/>
<path d="M 320,240 L 336,240" fill="none" stroke="black"/>
<path d="M 432,240 L 448,240" fill="none" stroke="black"/>
<path d="M 176,256 L 192,256" fill="none" stroke="black"/>
<path d="M 288,256 L 304,256" fill="none" stroke="black"/>
<polygon class="arrowhead" points="456,224 444,218.4 444,229.6" fill="black" transform="rotate(0,448,224)"/>
<polygon class="arrowhead" points="456,208 444,202.4 444,213.6" fill="black" transform="rotate(0,448,208)"/>
<polygon class="arrowhead" points="328,240 316,234.4 316,245.6" fill="black" transform="rotate(180,320,240)"/>
<polygon class="arrowhead" points="328,208 316,202.4 316,213.6" fill="black" transform="rotate(180,320,208)"/>
<polygon class="arrowhead" points="312,192 300,186.4 300,197.6" fill="black" transform="rotate(0,304,192)"/>
<polygon class="arrowhead" points="312,176 300,170.4 300,181.6" fill="black" transform="rotate(0,304,176)"/>
<polygon class="arrowhead" points="184,256 172,250.4 172,261.6" fill="black" transform="rotate(180,176,256)"/>
<polygon class="arrowhead" points="184,176 172,170.4 172,181.6" fill="black" transform="rotate(180,176,176)"/>
<g class="text">
<text x="44" y="52">Pledge</text>
<text x="172" y="52">Registrar-</text>
<text x="308" y="52">Domain</text>
<text x="436" y="52">Domain</text>
<text x="540" y="52">MASA</text>
<text x="168" y="68">Agent</text>
<text x="312" y="68">Registrar</text>
<text x="436" y="68">CA</text>
<text x="16" y="100">|</text>
<text x="168" y="100">|</text>
<text x="312" y="100">|</text>
<text x="456" y="100">|</text>
<text x="516" y="100">Internet</text>
<text x="560" y="100">|</text>
<text x="16" y="116">~</text>
<text x="168" y="116">~</text>
<text x="312" y="116">~</text>
<text x="456" y="116">~</text>
<text x="560" y="116">~</text>
<text x="16" y="132">(4)</text>
<text x="60" y="132">Supply</text>
<text x="104" y="132">PER</text>
<text x="132" y="132">to</text>
<text x="184" y="132">Registrar</text>
<text x="268" y="132">(including</text>
<text x="344" y="132">backend</text>
<text x="428" y="132">interaction)</text>
<text x="16" y="148">~</text>
<text x="168" y="148">~</text>
<text x="312" y="148">~</text>
<text x="456" y="148">~</text>
<text x="560" y="148">~</text>
<text x="236" y="180">mTLS</text>
<text x="240" y="196">PER</text>
<text x="380" y="212">mTLS</text>
<text x="384" y="228">RER</text>
<text x="384" y="244">Enroll-Resp</text>
<text x="240" y="260">Enroll-Resp</text>
<text x="16" y="292">~</text>
<text x="168" y="292">~</text>
<text x="312" y="292">~</text>
<text x="456" y="292">~</text>
<text x="560" y="292">~</text>
</g>
</svg>
</artwork><artwork  type="ascii-art" align="center"><![CDATA[
+--------+    +------------+    +-----------+    +--------+    +------+
| Pledge |    | Registrar- |    |  Domain   |    | Domain |    | MASA |
|        |    |   Agent    |    | Registrar |    |   CA   |    |      |
+--------+    +------------+    +-----------+    +--------+    +------+
 |                  |                 |                 |   Internet |
 ~                  ~                 ~                 ~            ~
(4) Supply PER to Registrar (including backend interaction)
 ~                  ~                 ~                 ~            ~
 |                  |                 |                 |            |
 |                  |<----(mTLS)----->|                 |            |
 |                  |-------PER------>|                 |            |
 |                  |                 |<-----mTLS------>|            |
 |                  |                 |-------RER------>|            |
 |                  |                 |<--Enroll-Resp---|            |
 |                  |<--Enroll-Resp---|                 |            |
 |                  |                 |                 |            |
 ~                  ~                 ~                 ~            ~
]]></artwork></artset></figure>

<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="pvr"/>.</t>

<section anchor="request-artifact-pledge-enroll-request-per"><name>Request Artifact: Pledge Enroll-Request (PER)</name>

<t>As specified in <xref target="tper"/> 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_example"/>.</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 Registrar-Agent <bcp14>SHALL</bcp14> send the PER to the registrar by HTTP POST to the endpoint: "/.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>
</list></t>

</section>
<section anchor="enroll-pledge-by-domain-ca-backend-interaction"><name>Enroll Pledge by Domain CA (backend interaction)</name>

<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 Enroll-Request with the corresponding domain CA.
It creates a Registrar Enroll-Request (RER) by utilizing the protocol expected by the domain CA.</t>

<t>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.</t>

<t>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>

</section>
<section anchor="response-artifact-enroll-response-enroll-resp"><name>Response Artifact: Enroll-Response (Enroll-Resp)</name>

<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>

<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="tper"/>).</t>

</section>
</section>
<section anchor="req_cacerts"><name>Request CA Certificates</name>

<t>As the pledge will verify it own 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><xref target="exchangesfig_uc2_5"/> shows the request and provisioning of CA certificates in the infrastructure.
The following subsections describe the corresponding artifacts.</t>

<figure title="CA certificates retrieval exchange" anchor="exchangesfig_uc2_5"><artset><artwork  type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="256" width="576" viewBox="0 0 576 256" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
<path d="M 8,32 L 8,80" fill="none" stroke="black"/>
<path d="M 16,160 L 16,224" fill="none" stroke="black"/>
<path d="M 80,32 L 80,80" fill="none" stroke="black"/>
<path d="M 120,32 L 120,80" fill="none" stroke="black"/>
<path d="M 168,160 L 168,224" fill="none" stroke="black"/>
<path d="M 224,32 L 224,80" fill="none" stroke="black"/>
<path d="M 264,32 L 264,80" fill="none" stroke="black"/>
<path d="M 312,160 L 312,224" fill="none" stroke="black"/>
<path d="M 360,32 L 360,80" fill="none" stroke="black"/>
<path d="M 400,32 L 400,80" fill="none" stroke="black"/>
<path d="M 456,160 L 456,224" fill="none" stroke="black"/>
<path d="M 472,32 L 472,80" fill="none" stroke="black"/>
<path d="M 512,32 L 512,80" fill="none" stroke="black"/>
<path d="M 560,160 L 560,224" fill="none" stroke="black"/>
<path d="M 568,32 L 568,80" fill="none" stroke="black"/>
<path d="M 8,32 L 80,32" fill="none" stroke="black"/>
<path d="M 120,32 L 224,32" fill="none" stroke="black"/>
<path d="M 264,32 L 360,32" fill="none" stroke="black"/>
<path d="M 400,32 L 472,32" fill="none" stroke="black"/>
<path d="M 512,32 L 568,32" fill="none" stroke="black"/>
<path d="M 8,80 L 80,80" fill="none" stroke="black"/>
<path d="M 120,80 L 224,80" fill="none" stroke="black"/>
<path d="M 264,80 L 360,80" fill="none" stroke="black"/>
<path d="M 400,80 L 472,80" fill="none" stroke="black"/>
<path d="M 512,80 L 568,80" fill="none" stroke="black"/>
<path d="M 176,176 L 216,176" fill="none" stroke="black"/>
<path d="M 256,176 L 304,176" fill="none" stroke="black"/>
<path d="M 176,192 L 192,192" fill="none" stroke="black"/>
<path d="M 280,192 L 304,192" fill="none" stroke="black"/>
<path d="M 176,208 L 192,208" fill="none" stroke="black"/>
<path d="M 288,208 L 304,208" fill="none" stroke="black"/>
<polygon class="arrowhead" points="312,192 300,186.4 300,197.6" fill="black" transform="rotate(0,304,192)"/>
<polygon class="arrowhead" points="312,176 300,170.4 300,181.6" fill="black" transform="rotate(0,304,176)"/>
<polygon class="arrowhead" points="184,208 172,202.4 172,213.6" fill="black" transform="rotate(180,176,208)"/>
<polygon class="arrowhead" points="184,176 172,170.4 172,181.6" fill="black" transform="rotate(180,176,176)"/>
<g class="text">
<text x="44" y="52">Pledge</text>
<text x="172" y="52">Registrar-</text>
<text x="308" y="52">Domain</text>
<text x="436" y="52">Domain</text>
<text x="540" y="52">MASA</text>
<text x="168" y="68">Agent</text>
<text x="312" y="68">Registrar</text>
<text x="436" y="68">CA</text>
<text x="16" y="100">|</text>
<text x="168" y="100">|</text>
<text x="312" y="100">|</text>
<text x="456" y="100">|</text>
<text x="516" y="100">Internet</text>
<text x="560" y="100">|</text>
<text x="16" y="116">~</text>
<text x="168" y="116">~</text>
<text x="312" y="116">~</text>
<text x="456" y="116">~</text>
<text x="560" y="116">~</text>
<text x="16" y="132">(5)</text>
<text x="64" y="132">Request</text>
<text x="108" y="132">CA</text>
<text x="172" y="132">Certificates</text>
<text x="16" y="148">~</text>
<text x="168" y="148">~</text>
<text x="312" y="148">~</text>
<text x="456" y="148">~</text>
<text x="560" y="148">~</text>
<text x="236" y="180">mTLS</text>
<text x="236" y="196">cACert-Req</text>
<text x="240" y="212">cACert-Resp</text>
<text x="16" y="244">~</text>
<text x="168" y="244">~</text>
<text x="312" y="244">~</text>
<text x="456" y="244">~</text>
<text x="560" y="244">~</text>
</g>
</svg>
</artwork><artwork  type="ascii-art" align="center"><![CDATA[
+--------+    +------------+    +-----------+    +--------+    +------+
| Pledge |    | Registrar- |    |  Domain   |    | Domain |    | MASA |
|        |    |   Agent    |    | Registrar |    |   CA   |    |      |
+--------+    +------------+    +-----------+    +--------+    +------+
 |                  |                 |                 |   Internet |
 ~                  ~                 ~                 ~            ~
(5) Request CA Certificates
 ~                  ~                 ~                 ~            ~
 |                  |                 |                 |            |
 |                  |<----(mTLS)----->|                 |            |
 |                  |---cACert-Req--->|                 |            |
 |                  |<--cACert-Resp---|                 |            |
 |                  |                 |                 |            |
 ~                  ~                 ~                 ~            ~
]]></artwork></artset></figure>

<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="pvr"/>.</t>

<section anchor="request-artifact-cacert-request-cacert-req"><name>Request Artifact: cACert-Request (cACert-Req)</name>

<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>

</section>
<section anchor="response-artifact-cacert-response-cacert-resp"><name>Response Artifact: cACert-Response (cACert-Resp)</name>

<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="voucher"><name>Supply Voucher to 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="pvr"/>:</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="tpvr"/>.</t>
</list></t>

<t>The Registrar-Agent <bcp14>MAY</bcp14> optionally use TLS to protect the communication as outlined in <xref target="tpvr"/>.</t>

<t>The Registrar-Agent provides the information via distinct pledge endpoints as following.
<xref target="exchangesfig_uc2_6"/> shows the provisioning of the voucher to the pledge.
The following subsections describe the corresponding artifacts.</t>

<figure title="Voucher exchange" anchor="exchangesfig_uc2_6"><artset><artwork  type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="256" width="576" viewBox="0 0 576 256" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
<path d="M 8,32 L 8,80" fill="none" stroke="black"/>
<path d="M 16,160 L 16,224" fill="none" stroke="black"/>
<path d="M 80,32 L 80,80" fill="none" stroke="black"/>
<path d="M 120,32 L 120,80" fill="none" stroke="black"/>
<path d="M 168,160 L 168,224" fill="none" stroke="black"/>
<path d="M 224,32 L 224,80" fill="none" stroke="black"/>
<path d="M 264,32 L 264,80" fill="none" stroke="black"/>
<path d="M 312,160 L 312,224" fill="none" stroke="black"/>
<path d="M 360,32 L 360,80" fill="none" stroke="black"/>
<path d="M 400,32 L 400,80" fill="none" stroke="black"/>
<path d="M 456,160 L 456,224" fill="none" stroke="black"/>
<path d="M 472,32 L 472,80" fill="none" stroke="black"/>
<path d="M 512,32 L 512,80" fill="none" stroke="black"/>
<path d="M 560,160 L 560,224" fill="none" stroke="black"/>
<path d="M 568,32 L 568,80" fill="none" stroke="black"/>
<path d="M 8,32 L 80,32" fill="none" stroke="black"/>
<path d="M 120,32 L 224,32" fill="none" stroke="black"/>
<path d="M 264,32 L 360,32" fill="none" stroke="black"/>
<path d="M 400,32 L 472,32" fill="none" stroke="black"/>
<path d="M 512,32 L 568,32" fill="none" stroke="black"/>
<path d="M 8,80 L 80,80" fill="none" stroke="black"/>
<path d="M 120,80 L 224,80" fill="none" stroke="black"/>
<path d="M 264,80 L 360,80" fill="none" stroke="black"/>
<path d="M 400,80 L 472,80" fill="none" stroke="black"/>
<path d="M 512,80 L 568,80" fill="none" stroke="black"/>
<path d="M 24,176 L 56,176" fill="none" stroke="black"/>
<path d="M 128,176 L 160,176" fill="none" stroke="black"/>
<path d="M 24,192 L 64,192" fill="none" stroke="black"/>
<path d="M 128,192 L 160,192" fill="none" stroke="black"/>
<path d="M 24,208 L 64,208" fill="none" stroke="black"/>
<path d="M 128,208 L 160,208" fill="none" stroke="black"/>
<polygon class="arrowhead" points="168,208 156,202.4 156,213.6" fill="black" transform="rotate(0,160,208)"/>
<polygon class="arrowhead" points="168,176 156,170.4 156,181.6" fill="black" transform="rotate(0,160,176)"/>
<polygon class="arrowhead" points="32,192 20,186.4 20,197.6" fill="black" transform="rotate(180,24,192)"/>
<polygon class="arrowhead" points="32,176 20,170.4 20,181.6" fill="black" transform="rotate(180,24,176)"/>
<g class="text">
<text x="44" y="52">Pledge</text>
<text x="172" y="52">Registrar-</text>
<text x="308" y="52">Domain</text>
<text x="436" y="52">Domain</text>
<text x="540" y="52">MASA</text>
<text x="168" y="68">Agent</text>
<text x="312" y="68">Registrar</text>
<text x="436" y="68">CA</text>
<text x="16" y="100">|</text>
<text x="168" y="100">|</text>
<text x="312" y="100">|</text>
<text x="456" y="100">|</text>
<text x="516" y="100">Internet</text>
<text x="560" y="100">|</text>
<text x="16" y="116">~</text>
<text x="168" y="116">~</text>
<text x="312" y="116">~</text>
<text x="456" y="116">~</text>
<text x="560" y="116">~</text>
<text x="16" y="132">(6)</text>
<text x="60" y="132">Supply</text>
<text x="120" y="132">Voucher</text>
<text x="164" y="132">to</text>
<text x="204" y="132">Pledge</text>
<text x="16" y="148">~</text>
<text x="168" y="148">~</text>
<text x="312" y="148">~</text>
<text x="456" y="148">~</text>
<text x="560" y="148">~</text>
<text x="76" y="180">opt.</text>
<text x="112" y="180">TLS</text>
<text x="96" y="196">Voucher</text>
<text x="96" y="212">vStatus</text>
<text x="16" y="244">~</text>
<text x="168" y="244">~</text>
<text x="312" y="244">~</text>
<text x="456" y="244">~</text>
<text x="560" y="244">~</text>
</g>
</svg>
</artwork><artwork  type="ascii-art" align="center"><![CDATA[
+--------+    +------------+    +-----------+    +--------+    +------+
| Pledge |    | Registrar- |    |  Domain   |    | Domain |    | MASA |
|        |    |   Agent    |    | Registrar |    |   CA   |    |      |
+--------+    +------------+    +-----------+    +--------+    +------+
 |                  |                 |                 |   Internet |
 ~                  ~                 ~                 ~            ~
(6) Supply Voucher to Pledge
 ~                  ~                 ~                 ~            ~
 |                  |                 |                 |            |
 |<----opt. TLS---->|                 |                 |            |
 |<-----Voucher-----|                 |                 |            |
 |------vStatus---->|                 |                 |            |
 |                  |                 |                 |            |
 ~                  ~                 ~                 ~            ~
]]></artwork></artset></figure>

<section anchor="request-artifact-voucher"><name>Request Artifact: Voucher</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" type="1">
  <t>Verify MASA signature as described in <xref section="5.6.1" sectionFormat="of" 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 <xref section="5.6.1" sectionFormat="of" 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="response-artifact-voucher-status-vstatus"><name>Response Artifact: Voucher Status (vStatus)</name>

<t>After voucher verification and validation the pledge <bcp14>MUST</bcp14> reply with a status telemetry message as defined in <xref section="5.7" sectionFormat="of" 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.
The reason-context is an arbitrary JSON object that may provide additional information specific to a failure.
The content of this field is not subject to standardization, but examples are provided in <xref target="vstat"/>.</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="query"/> and <bcp14>MAY</bcp14> resent the voucher depending on the Pledge status following the procedure described in <xref target="voucher"/>.</t>

</section>
</section>
<section anchor="cacerts"><name>Supply CA Certificates to Pledge</name>

<t><xref target="exchangesfig_uc2_7"/> shows the provisioning of the CA certificates acquired by the pledge-agent to the pledge.
The following subsections describe the corresponding artifacts.</t>

<figure title="Certificate provisioning exchange" anchor="exchangesfig_uc2_7"><artset><artwork  type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="240" width="576" viewBox="0 0 576 240" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
<path d="M 8,32 L 8,80" fill="none" stroke="black"/>
<path d="M 16,160 L 16,208" fill="none" stroke="black"/>
<path d="M 80,32 L 80,80" fill="none" stroke="black"/>
<path d="M 120,32 L 120,80" fill="none" stroke="black"/>
<path d="M 168,160 L 168,208" fill="none" stroke="black"/>
<path d="M 224,32 L 224,80" fill="none" stroke="black"/>
<path d="M 264,32 L 264,80" fill="none" stroke="black"/>
<path d="M 312,160 L 312,208" fill="none" stroke="black"/>
<path d="M 360,32 L 360,80" fill="none" stroke="black"/>
<path d="M 400,32 L 400,80" fill="none" stroke="black"/>
<path d="M 456,160 L 456,208" fill="none" stroke="black"/>
<path d="M 472,32 L 472,80" fill="none" stroke="black"/>
<path d="M 512,32 L 512,80" fill="none" stroke="black"/>
<path d="M 560,160 L 560,208" fill="none" stroke="black"/>
<path d="M 568,32 L 568,80" fill="none" stroke="black"/>
<path d="M 8,32 L 80,32" fill="none" stroke="black"/>
<path d="M 120,32 L 224,32" fill="none" stroke="black"/>
<path d="M 264,32 L 360,32" fill="none" stroke="black"/>
<path d="M 400,32 L 472,32" fill="none" stroke="black"/>
<path d="M 512,32 L 568,32" fill="none" stroke="black"/>
<path d="M 8,80 L 80,80" fill="none" stroke="black"/>
<path d="M 120,80 L 224,80" fill="none" stroke="black"/>
<path d="M 264,80 L 360,80" fill="none" stroke="black"/>
<path d="M 400,80 L 472,80" fill="none" stroke="black"/>
<path d="M 512,80 L 568,80" fill="none" stroke="black"/>
<path d="M 24,176 L 56,176" fill="none" stroke="black"/>
<path d="M 128,176 L 160,176" fill="none" stroke="black"/>
<path d="M 24,192 L 64,192" fill="none" stroke="black"/>
<path d="M 128,192 L 160,192" fill="none" stroke="black"/>
<polygon class="arrowhead" points="168,176 156,170.4 156,181.6" fill="black" transform="rotate(0,160,176)"/>
<polygon class="arrowhead" points="32,192 20,186.4 20,197.6" fill="black" transform="rotate(180,24,192)"/>
<polygon class="arrowhead" points="32,176 20,170.4 20,181.6" fill="black" transform="rotate(180,24,176)"/>
<g class="text">
<text x="44" y="52">Pledge</text>
<text x="172" y="52">Registrar-</text>
<text x="308" y="52">Domain</text>
<text x="436" y="52">Domain</text>
<text x="540" y="52">MASA</text>
<text x="168" y="68">Agent</text>
<text x="312" y="68">Registrar</text>
<text x="436" y="68">CA</text>
<text x="16" y="100">|</text>
<text x="168" y="100">|</text>
<text x="312" y="100">|</text>
<text x="456" y="100">|</text>
<text x="516" y="100">Internet</text>
<text x="560" y="100">|</text>
<text x="16" y="116">~</text>
<text x="168" y="116">~</text>
<text x="312" y="116">~</text>
<text x="456" y="116">~</text>
<text x="560" y="116">~</text>
<text x="16" y="132">(7)</text>
<text x="60" y="132">Supply</text>
<text x="100" y="132">CA</text>
<text x="164" y="132">Certificates</text>
<text x="228" y="132">to</text>
<text x="268" y="132">Pledge</text>
<text x="16" y="148">~</text>
<text x="168" y="148">~</text>
<text x="312" y="148">~</text>
<text x="456" y="148">~</text>
<text x="560" y="148">~</text>
<text x="76" y="180">opt.</text>
<text x="112" y="180">TLS</text>
<text x="96" y="196">cACerts</text>
<text x="16" y="228">~</text>
<text x="168" y="228">~</text>
<text x="312" y="228">~</text>
<text x="456" y="228">~</text>
<text x="560" y="228">~</text>
</g>
</svg>
</artwork><artwork  type="ascii-art" align="center"><![CDATA[
+--------+    +------------+    +-----------+    +--------+    +------+
| Pledge |    | Registrar- |    |  Domain   |    | Domain |    | MASA |
|        |    |   Agent    |    | Registrar |    |   CA   |    |      |
+--------+    +------------+    +-----------+    +--------+    +------+
 |                  |                 |                 |   Internet |
 ~                  ~                 ~                 ~            ~
(7) Supply CA Certificates to Pledge
 ~                  ~                 ~                 ~            ~
 |                  |                 |                 |            |
 |<----opt. TLS---->|                 |                 |            |
 |<-----cACerts-----|                 |                 |            |
 |                  |                 |                 |            |
 ~                  ~                 ~                 ~            ~
]]></artwork></artset></figure>

<section anchor="request-artifact"><name>Request Artifact:</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>

</section>
<section anchor="response-no-artifact"><name>Response (no artifact)</name>

<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" type="1">
  <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 received wrapped CA certificate object using the domain certificate contained in the voucher. If the validation of the signature fails, the pledge <bcp14>SHOULD</bcp14> reply with a 403 Forbidden. It signals that the object could not be verified and 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"/>.</t>
</list></t>

<t>In case of success, the pledge <bcp14>SHOULD</bcp14> reply with HTTP 200 OK without a response body.</t>

</section>
</section>
<section anchor="enroll_response"><name>Supply Enroll-Response to Pledge</name>

<t><xref target="exchangesfig_uc2_8"/> shows the supply of the Enroll-Response to the pledge.
The following subsections describe the corresponding artifacts.</t>

<figure title="Enroll-Response exchange" anchor="exchangesfig_uc2_8"><artset><artwork  type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="256" width="576" viewBox="0 0 576 256" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
<path d="M 8,32 L 8,80" fill="none" stroke="black"/>
<path d="M 16,160 L 16,224" fill="none" stroke="black"/>
<path d="M 80,32 L 80,80" fill="none" stroke="black"/>
<path d="M 120,32 L 120,80" fill="none" stroke="black"/>
<path d="M 168,160 L 168,224" fill="none" stroke="black"/>
<path d="M 224,32 L 224,80" fill="none" stroke="black"/>
<path d="M 264,32 L 264,80" fill="none" stroke="black"/>
<path d="M 312,160 L 312,224" fill="none" stroke="black"/>
<path d="M 360,32 L 360,80" fill="none" stroke="black"/>
<path d="M 400,32 L 400,80" fill="none" stroke="black"/>
<path d="M 456,160 L 456,224" fill="none" stroke="black"/>
<path d="M 472,32 L 472,80" fill="none" stroke="black"/>
<path d="M 512,32 L 512,80" fill="none" stroke="black"/>
<path d="M 560,160 L 560,224" fill="none" stroke="black"/>
<path d="M 568,32 L 568,80" fill="none" stroke="black"/>
<path d="M 8,32 L 80,32" fill="none" stroke="black"/>
<path d="M 120,32 L 224,32" fill="none" stroke="black"/>
<path d="M 264,32 L 360,32" fill="none" stroke="black"/>
<path d="M 400,32 L 472,32" fill="none" stroke="black"/>
<path d="M 512,32 L 568,32" fill="none" stroke="black"/>
<path d="M 8,80 L 80,80" fill="none" stroke="black"/>
<path d="M 120,80 L 224,80" fill="none" stroke="black"/>
<path d="M 264,80 L 360,80" fill="none" stroke="black"/>
<path d="M 400,80 L 472,80" fill="none" stroke="black"/>
<path d="M 512,80 L 568,80" fill="none" stroke="black"/>
<path d="M 24,176 L 56,176" fill="none" stroke="black"/>
<path d="M 128,176 L 160,176" fill="none" stroke="black"/>
<path d="M 24,192 L 48,192" fill="none" stroke="black"/>
<path d="M 144,192 L 160,192" fill="none" stroke="black"/>
<path d="M 24,208 L 56,208" fill="none" stroke="black"/>
<path d="M 120,208 L 160,208" fill="none" stroke="black"/>
<polygon class="arrowhead" points="168,208 156,202.4 156,213.6" fill="black" transform="rotate(0,160,208)"/>
<polygon class="arrowhead" points="168,176 156,170.4 156,181.6" fill="black" transform="rotate(0,160,176)"/>
<polygon class="arrowhead" points="32,192 20,186.4 20,197.6" fill="black" transform="rotate(180,24,192)"/>
<polygon class="arrowhead" points="32,176 20,170.4 20,181.6" fill="black" transform="rotate(180,24,176)"/>
<g class="text">
<text x="44" y="52">Pledge</text>
<text x="172" y="52">Registrar-</text>
<text x="308" y="52">Domain</text>
<text x="436" y="52">Domain</text>
<text x="540" y="52">MASA</text>
<text x="168" y="68">Agent</text>
<text x="312" y="68">Registrar</text>
<text x="436" y="68">CA</text>
<text x="16" y="100">|</text>
<text x="168" y="100">|</text>
<text x="312" y="100">|</text>
<text x="456" y="100">|</text>
<text x="516" y="100">Internet</text>
<text x="560" y="100">|</text>
<text x="16" y="116">~</text>
<text x="168" y="116">~</text>
<text x="312" y="116">~</text>
<text x="456" y="116">~</text>
<text x="560" y="116">~</text>
<text x="16" y="132">(8)</text>
<text x="60" y="132">Supply</text>
<text x="152" y="132">Enroll-Response</text>
<text x="228" y="132">to</text>
<text x="268" y="132">Pledge</text>
<text x="16" y="148">~</text>
<text x="168" y="148">~</text>
<text x="312" y="148">~</text>
<text x="456" y="148">~</text>
<text x="560" y="148">~</text>
<text x="76" y="180">opt.</text>
<text x="112" y="180">TLS</text>
<text x="96" y="196">Enroll-Resp</text>
<text x="88" y="212">eStatus</text>
<text x="16" y="244">~</text>
<text x="168" y="244">~</text>
<text x="312" y="244">~</text>
<text x="456" y="244">~</text>
<text x="560" y="244">~</text>
</g>
</svg>
</artwork><artwork  type="ascii-art" align="center"><![CDATA[
+--------+    +------------+    +-----------+    +--------+    +------+
| Pledge |    | Registrar- |    |  Domain   |    | Domain |    | MASA |
|        |    |   Agent    |    | Registrar |    |   CA   |    |      |
+--------+    +------------+    +-----------+    +--------+    +------+
 |                  |                 |                 |   Internet |
 ~                  ~                 ~                 ~            ~
(8) Supply Enroll-Response to Pledge
 ~                  ~                 ~                 ~            ~
 |                  |                 |                 |            |
 |<----opt. TLS---->|                 |                 |            |
 |<---Enroll-Resp---|                 |                 |            |
 |-----eStatus----->|                 |                 |            |
 |                  |                 |                 |            |
 ~                  ~                 ~                 ~            ~
]]></artwork></artset></figure>

<section anchor="request-artifact-enroll-response-enroll-resp"><name>Request Artifact: Enroll-Response (Enroll-Resp)</name>

<t>The Registrar-Agent <bcp14>SHALL</bcp14> send the Enroll-Response to the pledge by HTTP(S) POST to the endpoint: "/.well-known/brski/ser".</t>

<t>The 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="response-artifact-enroll-status-estatus"><name>Response Artifact: Enroll Status (eStatus)</name>

<t>After enrollment processing the pledge <bcp14>MUST</bcp14> reply with a enrollment status telemetry message as defined in <xref section="5.9.4" sectionFormat="of" target="RFC8995"/>.
The enroll-status is also a signed object in BRSKI-PRM and results in form of JSON-in-JWS here.
If the pledge verified the received LDevID certificate successfully it <bcp14>SHALL</bcp14> sign the enroll-status using its new LDevID credentials as shown in <xref target="estat"/>.
In failure case, the pledge <bcp14>SHALL</bcp14> use its IDevID credentials.
<xref section="5.9.4" sectionFormat="of" target="RFC8995"/> specifies the enrollment status telemetry message with two optional fields for "reason" and "reason-context".
In BRSKI-PRM the optional fields are mandated to have a clear distinction between other status messages and <bcp14>MUST</bcp14> be provided therefore.
The reason-context is an arbitrary JSON object that provides additional information specific to a failure.
The content of this field is not subject to standardization, but examples are provided in <xref target="estat"/>.</t>

<t>The following CDDL <xref target="RFC8610"/> explains enroll-status response structure.
It is similar as defined in <xref section="5.9.4" sectionFormat="of" target="RFC8995"/> with the optional fields set to mandatory as described above.</t>

<figure title="CDDL for pledge-enrollment-status response" anchor="e_stat_res_def"><artwork type="cddl" align="left"><![CDATA[
enrollstatus-trigger = {
    "version": uint,
    "status": bool,
    "reason": text,
    "reason-context" : { * $$arbitrary-map }
  }
]]></artwork></figure>

<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": "Enroll-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": "Enroll-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>
<section anchor="vstatus"><name>Voucher Status Telemetry (including backend interaction)</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="pvr"/>:</t>

<t><list style="symbols">
  <t>Registrar-Agent: obtained voucher status (vStatus) and enroll status (eStatus) from pledge.</t>
</list></t>

<figure><artset><artwork  type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="304" width="576" viewBox="0 0 576 304" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
<path d="M 8,32 L 8,80" fill="none" stroke="black"/>
<path d="M 16,160 L 16,272" fill="none" stroke="black"/>
<path d="M 80,32 L 80,80" fill="none" stroke="black"/>
<path d="M 120,32 L 120,80" fill="none" stroke="black"/>
<path d="M 168,160 L 168,272" fill="none" stroke="black"/>
<path d="M 224,32 L 224,80" fill="none" stroke="black"/>
<path d="M 264,32 L 264,80" fill="none" stroke="black"/>
<path d="M 312,160 L 312,240" fill="none" stroke="black"/>
<path d="M 360,32 L 360,80" fill="none" stroke="black"/>
<path d="M 400,32 L 400,80" fill="none" stroke="black"/>
<path d="M 456,160 L 456,200" fill="none" stroke="black"/>
<path d="M 456,256 L 456,272" fill="none" stroke="black"/>
<path d="M 472,32 L 472,80" fill="none" stroke="black"/>
<path d="M 512,32 L 512,80" fill="none" stroke="black"/>
<path d="M 560,160 L 560,272" fill="none" stroke="black"/>
<path d="M 568,32 L 568,80" fill="none" stroke="black"/>
<path d="M 8,32 L 80,32" fill="none" stroke="black"/>
<path d="M 120,32 L 224,32" fill="none" stroke="black"/>
<path d="M 264,32 L 360,32" fill="none" stroke="black"/>
<path d="M 400,32 L 472,32" fill="none" stroke="black"/>
<path d="M 512,32 L 568,32" fill="none" stroke="black"/>
<path d="M 8,80 L 80,80" fill="none" stroke="black"/>
<path d="M 120,80 L 224,80" fill="none" stroke="black"/>
<path d="M 264,80 L 360,80" fill="none" stroke="black"/>
<path d="M 400,80 L 472,80" fill="none" stroke="black"/>
<path d="M 512,80 L 568,80" fill="none" stroke="black"/>
<path d="M 176,176 L 216,176" fill="none" stroke="black"/>
<path d="M 256,176 L 304,176" fill="none" stroke="black"/>
<path d="M 176,192 L 208,192" fill="none" stroke="black"/>
<path d="M 272,192 L 304,192" fill="none" stroke="black"/>
<path d="M 320,208 L 416,208" fill="none" stroke="black"/>
<path d="M 456,208 L 552,208" fill="none" stroke="black"/>
<path d="M 320,224 L 352,224" fill="none" stroke="black"/>
<path d="M 520,224 L 552,224" fill="none" stroke="black"/>
<path d="M 320,240 L 368,240" fill="none" stroke="black"/>
<path d="M 504,240 L 552,240" fill="none" stroke="black"/>
<polygon class="arrowhead" points="560,224 548,218.4 548,229.6" fill="black" transform="rotate(0,552,224)"/>
<polygon class="arrowhead" points="560,208 548,202.4 548,213.6" fill="black" transform="rotate(0,552,208)"/>
<polygon class="arrowhead" points="328,240 316,234.4 316,245.6" fill="black" transform="rotate(180,320,240)"/>
<polygon class="arrowhead" points="328,208 316,202.4 316,213.6" fill="black" transform="rotate(180,320,208)"/>
<polygon class="arrowhead" points="312,192 300,186.4 300,197.6" fill="black" transform="rotate(0,304,192)"/>
<polygon class="arrowhead" points="312,176 300,170.4 300,181.6" fill="black" transform="rotate(0,304,176)"/>
<polygon class="arrowhead" points="184,176 172,170.4 172,181.6" fill="black" transform="rotate(180,176,176)"/>
<g class="text">
<text x="44" y="52">Pledge</text>
<text x="172" y="52">Registrar-</text>
<text x="308" y="52">Domain</text>
<text x="436" y="52">Domain</text>
<text x="540" y="52">MASA</text>
<text x="168" y="68">Agent</text>
<text x="312" y="68">Registrar</text>
<text x="436" y="68">CA</text>
<text x="16" y="100">|</text>
<text x="168" y="100">|</text>
<text x="312" y="100">|</text>
<text x="456" y="100">|</text>
<text x="516" y="100">Internet</text>
<text x="560" y="100">|</text>
<text x="16" y="116">~</text>
<text x="168" y="116">~</text>
<text x="312" y="116">~</text>
<text x="456" y="116">~</text>
<text x="560" y="116">~</text>
<text x="16" y="132">(9)</text>
<text x="64" y="132">Voucher</text>
<text x="124" y="132">Status</text>
<text x="192" y="132">Telemetry</text>
<text x="276" y="132">(including</text>
<text x="352" y="132">backend</text>
<text x="436" y="132">interaction)</text>
<text x="16" y="148">~</text>
<text x="168" y="148">~</text>
<text x="312" y="148">~</text>
<text x="456" y="148">~</text>
<text x="560" y="148">~</text>
<text x="236" y="180">mTLS</text>
<text x="240" y="196">vStatus</text>
<text x="436" y="212">mTLS</text>
<text x="368" y="228">req</text>
<text x="412" y="228">device</text>
<text x="464" y="228">audit</text>
<text x="504" y="228">log</text>
<text x="396" y="244">device</text>
<text x="448" y="244">audit</text>
<text x="488" y="244">log</text>
<text x="264" y="260">[verify</text>
<text x="320" y="260">audit</text>
<text x="364" y="260">log]</text>
<text x="312" y="276">|</text>
<text x="16" y="292">~</text>
<text x="168" y="292">~</text>
<text x="312" y="292">~</text>
<text x="456" y="292">~</text>
<text x="560" y="292">~</text>
</g>
</svg>
</artwork><artwork  type="ascii-art"><![CDATA[
+--------+    +------------+    +-----------+    +--------+    +------+
| Pledge |    | Registrar- |    |  Domain   |    | Domain |    | MASA |
|        |    |   Agent    |    | Registrar |    |   CA   |    |      |
+--------+    +------------+    +-----------+    +--------+    +------+
 |                  |                 |                 |   Internet |
 ~                  ~                 ~                 ~            ~
(9) Voucher Status Telemetry (including backend interaction)
 ~                  ~                 ~                 ~            ~
 |                  |                 |                 |            |
 |                  |<----(mTLS)----->|                 |            |
 |                  |-----vStatus---->|                 |            |
 |                  |                 |<-----------(mTLS)----------->|
 |                  |                 |-----req device audit log---->|
 |                  |                 |<------device audit log-------|
 |                  |        [verify audit log]         |            |
 |                  |                 |                 |            |
 ~                  ~                 ~                 ~            ~
]]></artwork></artset></figure>
<t>{: #exchangesfig_uc2_9 title="Voucher Status telemetry exchange" artwork-align="center"}~~~~ aasvg</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="pvr"/>.</t>

<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>

<section anchor="request-artifact-voucher-status-vstatus"><name>Request Artifact: Voucher Status (vStatus)</name>

<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 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>

</section>
<section anchor="response-no-artifact-1"><name>Response (no artifact)</name>

<t>According to <xref section="5.7" sectionFormat="of" target="RFC8995"/>, the registrar <bcp14>SHOULD</bcp14> respond with an HTTP 200 OK without a response body in the success case or fail with HTTP 4xx/5xx status codes.
The Registrar-Agent may use the response status code 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 <xref section="5.8" sectionFormat="of" target="RFC8995"/>.</t>

</section>
</section>
<section anchor="estatus"><name>Enroll Status Telemetry</name>

<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>

<figure title="Enroll Status telemetry exchange" anchor="exchangesfig_uc2_10"><artset><artwork  type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="240" width="576" viewBox="0 0 576 240" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
<path d="M 8,32 L 8,80" fill="none" stroke="black"/>
<path d="M 16,160 L 16,208" fill="none" stroke="black"/>
<path d="M 80,32 L 80,80" fill="none" stroke="black"/>
<path d="M 120,32 L 120,80" fill="none" stroke="black"/>
<path d="M 168,160 L 168,208" fill="none" stroke="black"/>
<path d="M 224,32 L 224,80" fill="none" stroke="black"/>
<path d="M 264,32 L 264,80" fill="none" stroke="black"/>
<path d="M 312,160 L 312,208" fill="none" stroke="black"/>
<path d="M 360,32 L 360,80" fill="none" stroke="black"/>
<path d="M 400,32 L 400,80" fill="none" stroke="black"/>
<path d="M 456,160 L 456,208" fill="none" stroke="black"/>
<path d="M 472,32 L 472,80" fill="none" stroke="black"/>
<path d="M 512,32 L 512,80" fill="none" stroke="black"/>
<path d="M 560,160 L 560,208" fill="none" stroke="black"/>
<path d="M 568,32 L 568,80" fill="none" stroke="black"/>
<path d="M 8,32 L 80,32" fill="none" stroke="black"/>
<path d="M 120,32 L 224,32" fill="none" stroke="black"/>
<path d="M 264,32 L 360,32" fill="none" stroke="black"/>
<path d="M 400,32 L 472,32" fill="none" stroke="black"/>
<path d="M 512,32 L 568,32" fill="none" stroke="black"/>
<path d="M 8,80 L 80,80" fill="none" stroke="black"/>
<path d="M 120,80 L 224,80" fill="none" stroke="black"/>
<path d="M 264,80 L 360,80" fill="none" stroke="black"/>
<path d="M 400,80 L 472,80" fill="none" stroke="black"/>
<path d="M 512,80 L 568,80" fill="none" stroke="black"/>
<path d="M 176,176 L 216,176" fill="none" stroke="black"/>
<path d="M 256,176 L 304,176" fill="none" stroke="black"/>
<path d="M 176,192 L 208,192" fill="none" stroke="black"/>
<path d="M 272,192 L 304,192" fill="none" stroke="black"/>
<polygon class="arrowhead" points="312,192 300,186.4 300,197.6" fill="black" transform="rotate(0,304,192)"/>
<polygon class="arrowhead" points="312,176 300,170.4 300,181.6" fill="black" transform="rotate(0,304,176)"/>
<polygon class="arrowhead" points="184,176 172,170.4 172,181.6" fill="black" transform="rotate(180,176,176)"/>
<g class="text">
<text x="44" y="52">Pledge</text>
<text x="172" y="52">Registrar-</text>
<text x="308" y="52">Domain</text>
<text x="436" y="52">Domain</text>
<text x="540" y="52">MASA</text>
<text x="168" y="68">Agent</text>
<text x="312" y="68">Registrar</text>
<text x="436" y="68">CA</text>
<text x="16" y="100">|</text>
<text x="168" y="100">|</text>
<text x="312" y="100">|</text>
<text x="456" y="100">|</text>
<text x="516" y="100">Internet</text>
<text x="560" y="100">|</text>
<text x="16" y="116">~</text>
<text x="168" y="116">~</text>
<text x="312" y="116">~</text>
<text x="456" y="116">~</text>
<text x="560" y="116">~</text>
<text x="20" y="132">(10)</text>
<text x="68" y="132">Enroll</text>
<text x="124" y="132">Status</text>
<text x="192" y="132">Telemetry</text>
<text x="16" y="148">~</text>
<text x="168" y="148">~</text>
<text x="312" y="148">~</text>
<text x="456" y="148">~</text>
<text x="560" y="148">~</text>
<text x="236" y="180">mTLS</text>
<text x="240" y="196">eStatus</text>
<text x="16" y="228">~</text>
<text x="168" y="228">~</text>
<text x="312" y="228">~</text>
<text x="456" y="228">~</text>
<text x="560" y="228">~</text>
</g>
</svg>
</artwork><artwork  type="ascii-art" align="center"><![CDATA[
+--------+    +------------+    +-----------+    +--------+    +------+
| Pledge |    | Registrar- |    |  Domain   |    | Domain |    | MASA |
|        |    |   Agent    |    | Registrar |    |   CA   |    |      |
+--------+    +------------+    +-----------+    +--------+    +------+
 |                  |                 |                 |   Internet |
 ~                  ~                 ~                 ~            ~
(10) Enroll Status Telemetry
 ~                  ~                 ~                 ~            ~
 |                  |                 |                 |            |
 |                  |<----(mTLS)----->|                 |            |
 |                  |-----eStatus---->|                 |            |
 |                  |                 |                 |            |
 ~                  ~                 ~                 ~            ~
]]></artwork></artset></figure>

<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="pvr"/>.</t>

<section anchor="request-artifact-enroll-status-estatus"><name>Request Artifact: Enroll Status (eStatus)</name>

<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 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 <xref section="5.9.4" sectionFormat="of" target="RFC8995"/>, and is replacing the pledges TLS client authentication by DevID credentials in <xref target="RFC8995"/>.</t>

</section>
<section anchor="response-no-artifact-2"><name>Response (no artifact)</name>

<t>According to <xref section="5.9.4" sectionFormat="of" target="RFC8995"/>, the registrar <bcp14>SHOULD</bcp14> respond with an HTTP 200 OK in the success case or fail with HTTP 4xx/5xx status codes.</t>

<t>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="query"><name>Query Pledge Status</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 the dedicated endpoint for the Query Pledge Status operation.</t>

<figure title="Pledge Status exchange" anchor="exchangesfig_uc2_11"><artset><artwork  type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="256" width="576" viewBox="0 0 576 256" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
<path d="M 8,32 L 8,80" fill="none" stroke="black"/>
<path d="M 16,160 L 16,224" fill="none" stroke="black"/>
<path d="M 80,32 L 80,80" fill="none" stroke="black"/>
<path d="M 120,32 L 120,80" fill="none" stroke="black"/>
<path d="M 168,160 L 168,224" fill="none" stroke="black"/>
<path d="M 224,32 L 224,80" fill="none" stroke="black"/>
<path d="M 264,32 L 264,80" fill="none" stroke="black"/>
<path d="M 312,160 L 312,224" fill="none" stroke="black"/>
<path d="M 360,32 L 360,80" fill="none" stroke="black"/>
<path d="M 400,32 L 400,80" fill="none" stroke="black"/>
<path d="M 456,160 L 456,224" fill="none" stroke="black"/>
<path d="M 472,32 L 472,80" fill="none" stroke="black"/>
<path d="M 512,32 L 512,80" fill="none" stroke="black"/>
<path d="M 560,160 L 560,224" fill="none" stroke="black"/>
<path d="M 568,32 L 568,80" fill="none" stroke="black"/>
<path d="M 8,32 L 80,32" fill="none" stroke="black"/>
<path d="M 120,32 L 224,32" fill="none" stroke="black"/>
<path d="M 264,32 L 360,32" fill="none" stroke="black"/>
<path d="M 400,32 L 472,32" fill="none" stroke="black"/>
<path d="M 512,32 L 568,32" fill="none" stroke="black"/>
<path d="M 8,80 L 80,80" fill="none" stroke="black"/>
<path d="M 120,80 L 224,80" fill="none" stroke="black"/>
<path d="M 264,80 L 360,80" fill="none" stroke="black"/>
<path d="M 400,80 L 472,80" fill="none" stroke="black"/>
<path d="M 512,80 L 568,80" fill="none" stroke="black"/>
<path d="M 24,176 L 56,176" fill="none" stroke="black"/>
<path d="M 128,176 L 160,176" fill="none" stroke="black"/>
<path d="M 24,192 L 64,192" fill="none" stroke="black"/>
<path d="M 128,192 L 160,192" fill="none" stroke="black"/>
<path d="M 24,208 L 64,208" fill="none" stroke="black"/>
<path d="M 128,208 L 160,208" fill="none" stroke="black"/>
<polygon class="arrowhead" points="168,208 156,202.4 156,213.6" fill="black" transform="rotate(0,160,208)"/>
<polygon class="arrowhead" points="168,176 156,170.4 156,181.6" fill="black" transform="rotate(0,160,176)"/>
<polygon class="arrowhead" points="32,192 20,186.4 20,197.6" fill="black" transform="rotate(180,24,192)"/>
<polygon class="arrowhead" points="32,176 20,170.4 20,181.6" fill="black" transform="rotate(180,24,176)"/>
<g class="text">
<text x="44" y="52">Pledge</text>
<text x="172" y="52">Registrar-</text>
<text x="308" y="52">Domain</text>
<text x="436" y="52">Domain</text>
<text x="540" y="52">MASA</text>
<text x="168" y="68">Agent</text>
<text x="312" y="68">Registrar</text>
<text x="436" y="68">CA</text>
<text x="16" y="100">|</text>
<text x="168" y="100">|</text>
<text x="312" y="100">|</text>
<text x="456" y="100">|</text>
<text x="516" y="100">Internet</text>
<text x="560" y="100">|</text>
<text x="16" y="116">~</text>
<text x="168" y="116">~</text>
<text x="312" y="116">~</text>
<text x="456" y="116">~</text>
<text x="560" y="116">~</text>
<text x="20" y="132">(11)</text>
<text x="64" y="132">Query</text>
<text x="116" y="132">Pledge</text>
<text x="172" y="132">Status</text>
<text x="16" y="148">~</text>
<text x="168" y="148">~</text>
<text x="312" y="148">~</text>
<text x="456" y="148">~</text>
<text x="560" y="148">~</text>
<text x="76" y="180">opt.</text>
<text x="112" y="180">TLS</text>
<text x="96" y="196">tStatus</text>
<text x="96" y="212">pStatus</text>
<text x="16" y="244">~</text>
<text x="168" y="244">~</text>
<text x="312" y="244">~</text>
<text x="456" y="244">~</text>
<text x="560" y="244">~</text>
</g>
</svg>
</artwork><artwork  type="ascii-art" align="center"><![CDATA[
+--------+    +------------+    +-----------+    +--------+    +------+
| Pledge |    | Registrar- |    |  Domain   |    | Domain |    | MASA |
|        |    |   Agent    |    | Registrar |    |   CA   |    |      |
+--------+    +------------+    +-----------+    +--------+    +------+
 |                  |                 |                 |   Internet |
 ~                  ~                 ~                 ~            ~
(11) Query Pledge Status
 ~                  ~                 ~                 ~            ~
 |                  |                 |                 |            |
 |<----opt. TLS---->|                 |                 |            |
 |<-----tStatus-----|                 |                 |            |
 |------pStatus---->|                 |                 |            |
 |                  |                 |                 |            |
 ~                  ~                 ~                 ~            ~
]]></artwork></artset></figure>

<t>The Registrar-Agent queries the Pledge Status via HTTP POST request on the well-known pledge endpoint <spanx style="verb">/.well-known/brski/qps</spanx>.
The request body <bcp14>MUST</bcp14> contain the JWS-signed Status Trigger (tStatus) artifact.
The request header <bcp14>MUST</bcp14> set the Content-Type field <spanx style="verb">application/jose+json</spanx>.</t>

<t>If the pledge provides the Query Pledge Status endpoint, it <bcp14>MUST</bcp14> reply to this request with the Pledge Status (pStatus) artifact in the body of a 200 OK response.
The response header <bcp14>MUST</bcp14> have the Content-Type field set to <spanx style="verb">application/jose+json</spanx>.</t>

<section anchor="request-artifact-status-trigger-tstatus"><name>Request Artifact: Status Trigger (tStatus)</name>

<t>The Status Query artifact is a JWS structure signing 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 following Concise Data Definition Language (CDDL) <xref target="RFC8610"/> defines the structure of the unsigned Status Query data (i.e., JWS payload):</t>

<figure title="CDDL for unsigned Status Trigger data (statustrigger)" anchor="stat_req_def"><artwork type="cddl" align="left"><![CDATA[
  statustrigger = {
      "version": uint,
      "created-on": tdate,
      "serial-number": text,
      "status-type": text
  }
]]></artwork></figure>

<t>The <spanx style="verb">version</spanx> field is included to permit significant changes to the pledge status artifacts in the future.
The format and semantics in this document follow the status telemetry definitions of <xref target="RFC8995"/>.
Hence, the version <bcp14>MUST</bcp14> be set to <spanx style="verb">1</spanx>.
A pledge (or Registrar-Agent) that receives a version larger than it knows about <bcp14>SHOULD</bcp14> log the contents and alert a human.</t>

<t>The <spanx style="verb">created-on</spanx> field contains a standard date/time string following <xref target="RFC3339"/>.</t>

<t>The <spanx style="verb">serial-number</spanx> field takes the product-serial-number corresponding to the X520SerialNumber field of the IDevID certificate of the pledge.</t>

<t>The <spanx style="verb">status-type</spanx> value defined for BRSKI-PRM Status Query is <spanx style="verb">bootstrap</spanx>.
This indicates the pledge to provide current status information regarding the bootstrapping status (voucher processing and enrollment of the pledge into the new domain).</t>

<t>As the Status Query artifact is defined generic, it may be used by other specifications to request further status information using other status types, 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_data"/> below shows an example for unsigned Status Query data in JSON syntax using status-type <spanx style="verb">bootstrap</spanx>.</t>

<figure title="Example of unsigned Status Query data in JSON syntax using status-type bootstrap for the Status Query artifact" anchor="stat_req_data"><artwork align="left"><![CDATA[
{
  "version": 1,
  "created-on": "2022-08-12T02:37:39.235Z",
  "serial-number": "pledge-callee4711",
  "status-type": "bootstrap"
}
]]></artwork></figure>

<t>The Status Query data <bcp14>MUST</bcp14> be signed by the Registrar-Agent using its private key corresponding to the EE (RegAgt) certificate.
When using a JWS signature, the Status Query artifact looks as shown in <xref target="stat_req"/> and the Content-Type response header <bcp14>MUST</bcp14> be set to <spanx style="verb">application/jose+json</spanx>:</t>

<figure title="Status Query Representation in General JWS JSON Serialization Syntax" anchor="stat_req"><artwork align="left"><![CDATA[
{
  "payload": BASE64URL(UTF8(status-query)),
  "signatures": [
    {
      "protected": BASE64URL(UTF8(JWS Protected Header)),
      "signature": BASE64URL(JWS Signature)
    }
  ]
}
]]></artwork></figure>

<t>For details on <spanx style="verb">JWS Protected Header</spanx> and <spanx style="verb">JWS Signature</spanx> see <xref target="I-D.ietf-anima-jws-voucher"/> or <xref target="RFC7515"/>.</t>

</section>
<section anchor="response-artifact-pledge-status-pstatus"><name>Response Artifact: Pledge Status (pStatus)</name>

<t>When the pledge receives a Status Query with status-type <spanx style="verb">bootstrap</spanx> it <bcp14>SHALL</bcp14> respond with previously collected telemetry information (see <xref target="vstatus"/> and <xref target="estatus"/>) in a single Pledge Status artifact.</t>

<t>The pledge-status response message is signed with IDevID or LDevID, depending on bootstrapping state of the pledge.</t>

<t>The following CDDL defines the structure of the Pledge Status (pStatus) data:</t>

<figure title="CDDL for unsigned Pledge Status data (pledgestatus)" anchor="stat_res_def"><artwork type="cddl" align="left"><![CDATA[
  pledgestatus = {
    "version": uint,
    "status":
      "factory-default" /
      "voucher-success" /
      "voucher-error" /
      "enroll-success" /
      "enroll-error" /
      "connect-success" /
      "connect-error",
    ?"reason" : text,
    ?"reason-context": { * $$arbitrary-map }
  }
]]></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><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>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.
The reason-context is an arbitrary JSON object that provides additional information specific to a failure.
The content of this field is not subject to standardization, but examples are provided in <xref target="stat_res"/>.</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(UTF8(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="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>

<texttable title="BRSKI Well-Known URIs Additions" anchor="iana_table">
      <ttcol align='left'>Path Segment</ttcol>
      <ttcol align='left'>Description</ttcol>
      <ttcol align='left'>Reference</ttcol>
      <c>requestenroll</c>
      <c>Supply PER to registrar</c>
      <c>[THISRFC]</c>
      <c>wrappedcacerts</c>
      <c>Request wrapped CA certificates</c>
      <c>[THISRFC]</c>
      <c>tpvr</c>
      <c>Trigger Pledge Voucher-Request</c>
      <c>[THISRFC]</c>
      <c>tper</c>
      <c>Trigger Pledge Enroll-Request</c>
      <c>[THISRFC]</c>
      <c>svr</c>
      <c>Supply Voucher to pledge</c>
      <c>[THISRFC]</c>
      <c>scac</c>
      <c>Supply CA certificates to pledge</c>
      <c>[THISRFC]</c>
      <c>ser</c>
      <c>Supply Enroll-Response to pledge</c>
      <c>[THISRFC]</c>
      <c>qps</c>
      <c>Query Pledge Status</c>
      <c>[THISRFC]</c>
</texttable>

</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="tpvr"/> 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 re-sending, 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>Mis-binding of a pledge by a faked domain registrar is countered as described in BRSKI security considerations <xref section="11.4" sectionFormat="of" target="RFC8995"/>.</t>

</section>
<section anchor="sec_cons_reg-agt"><name>Misuse of Registrar-Agent Credentials</name>

<t>Concerns of misuse 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 section="11.7" sectionFormat="of" target="RFC8995"/> (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 section="3.7" sectionFormat="of" target="RFC8407"/> (Security Considerations).</t>

</section>
</section>
<section anchor="acknowledgments"><name>Acknowledgments</name>

<t>We would like to thank the various reviewers, in particular Brian E. Carpenter, Charlie Kaufman (Early SECDIR review), Martin Björklund (Early YANGDOCTORS review), Marco Tiloca (Early IOTDIR review), 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, Christian Spindler, and Julian Krieger.
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.
Review comments in the context of a formal analysis of BRSKI-PRM have been provided by Marco Calipari.</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="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="18" month="June" year="2024"/>
      <abstract>
	 <t>   [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-10"/>
   
</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="4" month="March" year="2024"/>
      <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-11"/>
   
</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>

<reference anchor="RFC8259">
  <front>
    <title>The JavaScript Object Notation (JSON) Data Interchange Format</title>
    <author fullname="T. Bray" initials="T." role="editor" surname="Bray"/>
    <date month="December" year="2017"/>
    <abstract>
      <t>JavaScript Object Notation (JSON) is a lightweight, text-based, language-independent data interchange format. It was derived from the ECMAScript Programming Language Standard. JSON defines a small set of formatting rules for the portable representation of structured data.</t>
      <t>This document removes inconsistencies with other specifications of JSON, repairs specification errors, and offers experience-based interoperability guidance.</t>
    </abstract>
  </front>
  <seriesInfo name="STD" value="90"/>
  <seriesInfo name="RFC" value="8259"/>
  <seriesInfo name="DOI" value="10.17487/RFC8259"/>
</reference>

<reference anchor="RFC3339">
  <front>
    <title>Date and Time on the Internet: Timestamps</title>
    <author fullname="G. Klyne" initials="G." surname="Klyne"/>
    <author fullname="C. Newman" initials="C." surname="Newman"/>
    <date month="July" year="2002"/>
    <abstract>
      <t>This document defines a date and time format for use in Internet protocols that is a profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="3339"/>
  <seriesInfo name="DOI" value="10.17487/RFC3339"/>
</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="RFC3629">
  <front>
    <title>UTF-8, a transformation format of ISO 10646</title>
    <author fullname="F. Yergeau" initials="F." surname="Yergeau"/>
    <date month="November" year="2003"/>
    <abstract>
      <t>ISO/IEC 10646-1 defines a large character set called the Universal Character Set (UCS) which encompasses most of the world's writing systems. The originally proposed encodings of the UCS, however, were not compatible with many current applications and protocols, and this has led to the development of UTF-8, the object of this memo. UTF-8 has the characteristic of preserving the full US-ASCII range, providing compatibility with file systems, parsers and other software that rely on US-ASCII values but are transparent to other values. This memo obsoletes and replaces RFC 2279.</t>
    </abstract>
  </front>
  <seriesInfo name="STD" value="63"/>
  <seriesInfo name="RFC" value="3629"/>
  <seriesInfo name="DOI" value="10.17487/RFC3629"/>
</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="RFC9525">
  <front>
    <title>Service Identity in TLS</title>
    <author fullname="P. Saint-Andre" initials="P." surname="Saint-Andre"/>
    <author fullname="R. Salz" initials="R." surname="Salz"/>
    <date month="November" year="2023"/>
    <abstract>
      <t>Many application technologies enable secure communication between two entities by means of Transport Layer Security (TLS) with Internet Public Key Infrastructure using X.509 (PKIX) certificates. This document specifies procedures for representing and verifying the identity of application services in such interactions.</t>
      <t>This document obsoletes RFC 6125.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9525"/>
  <seriesInfo name="DOI" value="10.17487/RFC9525"/>
</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="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="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="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="3" month="June" year="2024"/>
      <abstract>
	 <t>   This document defines an enhancement of Bootstrapping Remote Secure
   Key Infrastructure (BRSKI, RFC 8995).  It supports alternative
   certificate enrollment protocols, such as CMP, that use authenticated
   self-contained signed objects for certification messages.

About This Document

   This note is to be removed before publishing as an RFC.

   Status information for this document may be found at
   https://datatracker.ietf.org/doc/draft-ietf-anima-brski-ae/.

   Source for this draft and an issue tracker can be found at
   https://github.com/anima-wg/anima-brski-ae.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-ietf-anima-brski-ae-11"/>
   
</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="RFC9483">
  <front>
    <title>Lightweight Certificate Management Protocol (CMP) Profile</title>
    <author fullname="H. Brockhaus" initials="H." surname="Brockhaus"/>
    <author fullname="D. von Oheimb" initials="D." surname="von Oheimb"/>
    <author fullname="S. Fries" initials="S." surname="Fries"/>
    <date month="November" year="2023"/>
    <abstract>
      <t>This document aims at simple, interoperable, and automated PKI management operations covering typical use cases of industrial and Internet of Things (IoT) scenarios. This is achieved by profiling the Certificate Management Protocol (CMP), the related Certificate Request Message Format (CRMF), and transfer based on HTTP or Constrained Application Protocol (CoAP) in a succinct but sufficiently detailed and self-contained way. To make secure certificate management for simple scenarios and constrained devices as lightweight as possible, only the most crucial types of operations and options are specified as mandatory. More specialized or complex use cases are supported with optional features.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9483"/>
  <seriesInfo name="DOI" value="10.17487/RFC9483"/>
</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="14" month="February" year="2024"/>
      <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-08"/>
   
</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="30" month="January" year="2024"/>
      <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-03"/>
   
</reference>




    </references>


<?line 2475?>

<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: 2973 bytes</t>

<figure title="Example Pledge-Voucher-Request - PVR" anchor="ExamplePledgeVoucherRequestfigure"><artwork align="left"><![CDATA[
=============== NOTE: '\' line wrapping per RFC 8792 ================

{
  "payload": "eyJpZXRmLXZvdWNoZXItcmVxdWVzdC1wcm06dm91Y2hlciI6eyJhc3\
NlcnRpb24iOiJhZ2VudC1wcm94aW1pdHkiLCJzZXJpYWwtbnVtYmVyIjoiMDEyMzQ1Nj\
c4OSIsIm5vbmNlIjoia2hOeUtwTXRoY2NpYTFyWHc0NC92UT09IiwiY3JlYXRlZC1vbi\
I6IjIwMjQtMDYtMjRUMDk6MDE6MjQuNTU2WiIsImFnZW50LXByb3ZpZGVkLXByb3hpbW\
l0eS1yZWdpc3RyYXItY2VydCI6Ik1JSUI0akNDQVlpZ0F3SUJBZ0lHQVhZNzJiYlpNQW\
9HQ0NxR1NNNDlCQU1DTURVeEV6QVJCZ05WQkFvTUNrMTVRblZ6YVc1bGMzTXhEVEFMQm\
dOVkJBY01CRk5wZEdVeER6QU5CZ05WQkFNTUJsUmxjM1JEUVRBZUZ3MHlNREV5TURjd0\
5qRTRNVEphRncwek1ERXlNRGN3TmpFNE1USmFNRDR4RXpBUkJnTlZCQW9NQ2sxNVFuVn\
phVzVsYzNNeERUQUxCZ05WQkFjTUJGTnBkR1V4R0RBV0JnTlZCQU1NRDBSdmJXRnBibE\
psWjJsemRISmhjakJaTUJNR0J5cUdTTTQ5QWdFR0NDcUdTTTQ5QXdFSEEwSUFCQmsxNk\
svaTc5b1JrSzVZYmVQZzhVU1I4L3VzMWRQVWlaSE10b2tTZHFLVzVmbldzQmQrcVJMN1\
dSZmZlV2t5Z2Vib0pmSWxsdXJjaTI1d25oaU9WQ0dqZXpCNU1CMEdBMVVkSlFRV01CUU\
dDQ3NHQVFVRkJ3TUJCZ2dyQmdFRkJRY0RIREFPQmdOVkhROEJBZjhFQkFNQ0I0QXdTQV\
lEVlIwUkJFRXdQNElkY21WbmFYTjBjbUZ5TFhSbGMzUXVjMmxsYldWdWN5MWlkQzV1Wl\
hTQ0huSmxaMmx6ZEhKaGNpMTBaWE4wTmk1emFXVnRaVzV6TFdKMExtNWxkREFLQmdncW\
hrak9QUVFEQWdOSUFEQkZBaUJ4bGRCaFpxMEV2NUpMMlByV0N0eVM2aERZVzF5Q08vUm\
F1YnBDN01hSURnSWhBTFNKYmdMbmdoYmJBZzBkY1dGVVZvL2dHTjAvand6SlowU2wyaD\
R4SVhrMSIsImFnZW50LXNpZ25lZC1kYXRhIjoiZXlKd1lYbHNiMkZrSWpvaVpYbEtjRn\
BZVW0xTVdGcDJaRmRPYjFwWVNYUmpiVlo0WkZkV2VtUkRNWGRqYlRBMldWZGtiR0p1VV\
hSak1teHVZbTFXYTB4WFVtaGtSMFZwVDI1emFWa3pTbXhaV0ZKc1drTXhkbUpwU1RaSm\
FrbDNUV3BKZEUxRWEzUk5ha3BWVFVSVk5rNUVUVFpPVkVGMVRWUkpNVmRwU1hOSmJrNX\
NZMjFzYUdKRE1YVmtWekZwV2xoSmFVOXBTWGROVkVsNlRrUlZNazU2WnpWSmJqRTVJaX\
dpYzJsbmJtRjBkWEpsY3lJNlczc2ljSEp2ZEdWamRHVmtJam9pWlhsS2NtRlhVV2xQYV\
VwVlZFZE5NMWRZYUV4V2JGWldaVzVLTTFKVVRsSlhWRlpEV2xaa2IyTXlNVVZOTW1NNV\
NXbDNhVmxYZUc1SmFtOXBVbFpOZVU1VVdXbG1VU0lzSW5OcFoyNWhkSFZ5WlNJNklrd3\
lZVEJsY3pWZkxXZHNZVjkwTjFVME1VbFJXRmxJU1RSQlMxVldVRkZmTTFSbGQxUTFiMF\
ZWWVVOdFVIQktaMmRyU0c1d09WTk1aVFZ1YWkxbldGbFRiMk5sT1RoeFFXSnROa0YwZF\
MxRlIxUkxZMDVSSW4xZGZRMEsifX0",
  "signatures": [
    {
      "protected": "eyJ4NWMiOlsiTUlJQitUQ0NBYUNnQXdJQkFnSUdBWG5WanNV\
NU1Bb0dDQ3FHU000OUJBTUNNRDB4Q3pBSkJnTlZCQVlUQWtGUk1SVXdFd1lEVlFRS0RB\
eEthVzVuU21sdVowTnZjbkF4RnpBVkJnTlZCQU1NRGtwcGJtZEthVzVuVkdWemRFTkJN\
Q0FYRFRJeE1EWXdOREExTkRZeE5Gb1lEems1T1RreE1qTXhNak0xT1RVNVdqQlNNUXN3\
Q1FZRFZRUUdFd0pCVVRFVk1CTUdBMVVFQ2d3TVNtbHVaMHBwYm1kRGIzSndNUk13RVFZ\
RFZRUUZFd293TVRJek5EVTJOemc1TVJjd0ZRWURWUVFEREE1S2FXNW5TbWx1WjBSbGRt\
bGpaVEJaTUJNR0J5cUdTTTQ5QWdFR0NDcUdTTTQ5QXdFSEEwSUFCQzc5bGlhUmNCalpj\
RUVYdzdyVWVhdnRHSkF1SDRwazRJNDJ2YUJNc1UxMWlMRENDTGtWaHRVVjIxbXZhS0N2\
TXgyWStTTWdROGZmd0wyM3ozVElWQldqZFRCek1Dc0dDQ3NHQVFVRkJ3RWdCQjhXSFcx\
aGMyRXRkR1Z6ZEM1emFXVnRaVzV6TFdKMExtNWxkRG81TkRRek1COEdBMVVkSXdRWU1C\
YUFGRlFMak56UC9TL2tvdWpRd2pnNUU1ZnZ3Y1liTUJNR0ExVWRKUVFNTUFvR0NDc0dB\
UVVGQndNQ01BNEdBMVVkRHdFQi93UUVBd0lIZ0RBS0JnZ3Foa2pPUFFRREFnTkhBREJF\
QWlCdTN3UkJMc0pNUDVzTTA3MEgrVUZyeU5VNmdLekxPUmNGeVJST2xxcUhpZ0lnWENt\
SkxUekVsdkQycG9LNmR4NmwxL3V5bVRuYlFERGZKbGF0dVgyUm9PRT0iXSwidHlwIjoi\
dm91Y2hlci1qd3MranNvbiIsImFsZyI6IkVTMjU2In0",
      "signature": "ntAgC7GT7xIDYcHBXoYej8uIUI6WR2Iv-7T1CaR-J6-xS60D\
iWS1-vfc5Uu5INZS1dyWZ4vVH6uaoPceRxNc8g"
    }
  ]
}
]]></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: 7533 bytes</t>

<figure title="Example Registrar-Voucher-Request - RVR" anchor="ExampleRegistrarVoucherRequestfigure"><artwork align="left"><![CDATA[
=============== NOTE: '\' line wrapping per RFC 8792 ================

{
  "payload": "eyJpZXRmLXZvdWNoZXItcmVxdWVzdC1wcm06dm91Y2hlciI6eyJhc3\
NlcnRpb24iOiJhZ2VudC1wcm94aW1pdHkiLCJzZXJpYWwtbnVtYmVyIjoiMDEyMzQ1Nj\
c4OSIsImlkZXZpZC1pc3N1ZXIiOiJCQmd3Rm9BVVZBdU0zTS85TCtTaTZORENPRGtUbC\
svQnhocz0iLCJub25jZSI6ImtoTnlLcE10aGNjaWExclh3NDQvdlE9PSIsInByaW9yLX\
NpZ25lZC12b3VjaGVyLXJlcXVlc3QiOiJleUp3WVhsc2IyRmtJam9pWlhsS2NGcFlVbT\
FNV0ZwMlpGZE9iMXBZU1hSamJWWjRaRmRXZW1SRE1YZGpiVEEyWkcwNU1Wa3lhR3hqYV\
VrMlpYbEthR016VG14amJsSndZakkwYVU5cFNtaGFNbFoxWkVNeGQyTnRPVFJoVnpGd1\
pFaHJhVXhEU25wYVdFcHdXVmQzZEdKdVZuUlpiVlo1U1dwdmFVMUVSWGxOZWxFeFRtcG\
pORTlUU1hOSmJUVjJZbTFPYkVscWIybGhNbWhQWlZWMGQxUllVbTlaTWs1d1dWUkdlVm\
RJWXpCT1F6a3lWVlF3T1VscGQybFpNMHBzV1ZoU2JGcERNWFppYVVrMlNXcEpkMDFxVV\
hSTlJGbDBUV3BTVlUxRWF6Wk5SRVUyVFdwUmRVNVVWVEpYYVVselNXMUdibHBYTlRCTV\
dFSjVZak5hY0ZwSFZtdE1XRUo1WWpOb2NHSlhiREJsVXpGNVdsZGtjR016VW5sWldFbD\
BXVEpXZVdSRFNUWkphekZLVTFWSk1HRnJUa1JSVm14d1dqQkdNMU5WU2tKYU1HeElVVl\
pvV2s1NlNtbFpiSEJPVVZjNVNGRXdUbmhTTVU1T1RrUnNRMUZWTVVSVVZWSldaVVZXTm\
xGV1NrTmFNRFZYVVd0R2RsUlZUbkpOVkZaU1lteGFObGxXWXpGaVIwMTZWRmhvUlZaRl\
JrMVJiV1JQVm10S1Fsa3dNVU5TYXpWM1drVmtWbVZGVWpaUlZUVkRXakExVjFGclJrNV\
VWVXB6VlcxNGFrMHhTa1ZWVmxKQ1dsVmFNMDFJYkU1U1JWWTFWRlZTYW1Rd05YRlNWRk\
pPVmtWd2FGSnVZM2RsYXpGRlVsaHNUbEpIVGpOVWJYQkdUa1V4VlZOdFJrNVNSRkkwVW\
xod1FsVnJTbTVVYkZwRFVWYzVUbEV5YzNoT1ZrWjFWbTV3YUZaNlZuTlplazVPWlVWU1\
ZWRlZlRU5hTURWWFVXdEdhbFJWU2tkVWJrSnJVakZXTkZJd1VrSldNRXB1Vkd4YVExRl\
ZNVTVTUkVKVFpHMUtXRkp1UW1saVJYQnpWMnBLYzJWdFVrbFRiV2hxWVd0S1lWUlZTaz\
VTTUVvMVkxVmtWRlJVVVRWUlYyUkdVakJPUkdOVlpGUlVWRkUxVVZoa1JsTkZSWGRUVl\
VaRFVXMXplRTVyYzNaaFZHTTFZakZLY2xONlZscFpiVlpSV25wb1ZsVXhTVFJNTTFaNl\
RWZFNVVlpYYkdGVFJURXdZakowVkZwSVJreFdlbFp0WW14a2VsRnRVWEpqVmtwTlRqRm\
tVMXB0V214V01uUTFXakpXYVdJd2NHMVRWM2h6WkZoS2FtRlVTVEZrTWpWdllWVTVWMU\
V3WkhGYVdIQkRUbFV4UTAxRlpFSk5WbFpyVTJ4R1VsWXdNVU5WVldSRVVUTk9TRkZXUm\
xaU2Ewb3pWRlZLUTFveVpIbFJiV1JHVW10S1Vsa3dVa2xTUlVaUVVXMWtUMVpyYUZKUF\
JVcENXbXBvUmxGclJrNVJNRWt3VVZoa1ZGRldiRVZXYkVsM1ZXdEtSbEpZWkZGT1JXeH\
JXVEl4VjJKdFJsbFVha0pxWWxWYU5WUkdhRk5pUjAxNlZWaFdhazF0ZUhOWmJHUlhaRm\
RPTlUxWGJHdFJlbFl4VjJ4b1ZGRXdhSFZUYlhoaFRXMTRObHBGYUV0aFIwNXdUVlJDWV\
ZkRk5IZFViV3N4WlcxR1dGWnVVbUZXZWxZMlZFWmtTMDFGZUhST1YzaHJVa1ZHVEZGdF\
pHNWpWMmh5WVdzNVVWVldSa1ZSVjJSUFUxVkdSVkZyV2tKaFZVbzBZa2RTUTJGR2NIaE\
5SVll5VGxWd1RVMXNRbmxXTUU0d1pWWk5NbUZGVWxwV2VrWTFVVEE0ZGxWdFJqRlpia0\
pFVGpBeGFGTlZVbTVUVjJoQ1ZFWk9TMWx0WkUxaWJXUnZXVzFLUWxwNlFtdFpNV1JIVm\
xaYWRrd3laRWhVYWtGMllXNWtObE5zYjNkVk1uZDVZVVJTTkZOV2FISk5VMGx6U1cxR2\
JscFhOVEJNV0U1d1dqSTFiRnBETVd0WldGSm9TV3B2YVZwWWJFdGtNV3haWWtoT2FVMX\
JXbkpUVjNCMllWWndXV0pGZEdwU2JrSmFWbGN3ZUZSV1pFZGpSRXBoVW0xU1VGbHFSbm\
RYVms1WlZXMXdhVlpzYnpCWGExcHJWakpXZEZWclVrNVhSMUp4V1d4U1FrMXNaRmRhUj\
NScFVqQndNVlpXYUZOaGF6RjBaVWhXV21KVVJsaFpWRUkwVjBaV2RHRkhkRk5OUmxwM1\
ZrUkpNV1Z0UmxkaE0zQlVZbGhvWVZZd1drdGpNV1J5VkZob2EySlZjSGRWTVZKaFUyMU\
djbUpFVGxWV00wSkxXa1ZWZUZKWFJYcFZhelZvWVROQ1YxWkdWbE5XYXpWeVRsVldWVl\
pHY0ZCV2ExWkhUVlpTVjFWcmNFNVdiVkozVlRGb1QxTnRTbkpPV0U1YVRXcEdlbGxWWk\
V0U1JURlpWbTEwVjJWclduZFdNbmh2VTIxR1ZrOVlRbFJYUjFKUFZtdFdjMDVzVW5KVm\
JGcE9ZWHBWTWxkdWNGZFRiVXB4VWxSV1NtRllaSEJaZWtwelltMUtkRkpxUW10WFJYQn\
pXVE5zU2s1c1kzcGpNbXhxVTBWd01scEZaRmRoYlZKSVZtMTBTbUZ0T1hCWGJHaHpVek\
pPZEZKc2FGWldNbmhSV1ZaV2QxWnNXa1phUlRWT1RWZFNXbGxWVmpSV01rcEhWMnhrWV\
ZaNlZreFVWRVpMVmxaU2MxTnNhRmRTYkhCRlZqSjRZV0V5U1hsVVdHeE9WbFphVDFSWE\
1VNU9WazVZWWtST2FGWnRlRmxhVldNeFUyMUdkRTlZUWxaaVJuQlBXbFpWTVZaV1pGaG\
lSekZXVlRCc2VsTlhOVTlqUm05NVRsZG9hMU5HV2pWWGJFNUtUbXRzY21RemJGcFdSVX\
B6V1ROd1YxcHJlRmhhU0U1YVZtcHJkMVJxUmxaTlJURldZa1pLV0ZKdGVFcFZNVkpUVV\
d4TmVGWnNaRlpTYTFwdFZGUkdVMkpIVVhoVlZFWnBUVVphVjFkV1ZrOWtSbFpKVVd0MF\
lVMXRVbmxWTUdNeFpEQTVWMVJyTVdGV1Jsb3hXVmRyZUdKc1pFZGlSbEpwVFdzMWMxUX\
hVbTlsUmtaWVUyNVNUMkV3V1hkYVJrMTRVbXhKZUZWcmVGcE5SRlpUVTFjMGVGcEhXbE\
pOUlhOcFpsZ3dJaXdpYzJsbmJtRjBkWEpsY3lJNlczc2ljSEp2ZEdWamRHVmtJam9pWl\
hsS05FNVhUV2xQYkhOcFZGVnNTbEZwZEZWUk1FNUNXVlZPYmxGWVpFcFJhMFp1VTFWa1\
FsZEhOVmRoYms1V1RsVXhRbUl3WkVSUk0wWklWVEF3TUU5VlNrSlVWVTVPVWtSQ05GRX\
pjRUpUYTBwdVZHeGFRMUZXYkZWUlYzUkhWV3N4VTFaWVpFWmtNV3hGVm14R1VsTXdVa0\
psUlhSb1ZucFdkVlV5TVhOa1ZtOTNWRzVhYW1KclJqUlNibkJDVm10S2JsUnNXa05SVl\
RGT1VrZDBkMk5IU25SYVJYUm9WbnBXZFZaclpGZGxiVkpHVkd0S1RsRXdSbGxTUmxKS1\
pVVXhSVmRZWkU5U1JVVjRWR3RTV21WRk5VZGlNV3hGWlcxek1WUXhVbkpsUlRGeFZGaG\
9UbUZyTUhoVU1WSldUbFprY1ZGc1RrNVZXRTR6VVRGR1dsSkdXbEpWVldSR1pEQndRMV\
pXVWtaV2F6RkRWRlZrUWsxV1ZrWlJNbVF6VkZaT2RHSklWbUZOU0VKM1dXMHhhMUpIU1\
hwVGJtUk9WV3N4TTFKV1JscFNSbHBTVlZWYVJtUXlPVE5VVmxKS1pXczFSVlpVU2s5bG\
JXTXhWRlpLYW1Rd1dsSlhWVkpYVlZaR1JWSkZSVEZUTWtaWVRsYzFWR0pYZURGWGFrSl\
RZa2RTZEdKSGNHRldSVXBoVkZWS1RsSXdTalZqVldSVVZGUlJOVkZYWkVaU01FNUVZMV\
ZrVkZSVVVUVlJXR1JHVTBWRmQxTlZSa05SZW1NMVlrZHNhRlZ0VGtOaGJIQnFVbFZXV1\
dSNlpIbFdWMVpvWkc1U1NGTnJSakZUUkZKM1lYcFNTazVFU2pKWlZVcE9ZekZWZUUxWG\
JFMVNSVTVFVkVkMFYyRklVbFpXYWtsNFlsaGFhRk13VGpKVVdHZDVWMU4wVkZSWFpGSl\
BSMXB0WkRCM2VVMHpiM3BXUld4WFVXeGtjVnBHVWtObGF6RkVZekJrUkZFelRraFJWa1\
pXVW10S00xSlhaRU5SYW1oWVUwWmplR0ZIVFhsU1dGSnJVakZhTmxwRlRURmxiVVpZVm\
01U1lWWjZWalpVUm1STFRVVjRkRTVYZUd0U1J6Z3hWR3RTVW1Wck1VTlBSV1JDVFZaV2\
ExTllaRkpYVlRGRFdWVkdSMUpzUmsxaGF6VTJWVU01VkV3eWRIWmtWM0JTWkRKd2JrNV\
ZWVEZhYmxveldURnNhVlJWU2s1U01FVjRWbGRTUzFWV1JrNVVWVVoyVWpCT1JHTXdaRU\
pWVmxaSFVXNWtUbEV3TVVKT1JXUkNUVlpXYTFKSVpFWlJhVGt6VlZWV1FtUXdiRWxhTU\
ZKQ1V6QktibG96Um05aE1uQlFWVVpHVWxKRlJtNVVhMmhDVWtWS1JsRlhiRU5rVkU0el\
ZXdEtUV013Y0U1VlJGWjZWRlJCTTAxRlozSldWVnA1WlZVMVZrNXRaRXhsYTNoUVZXMU\
9SMlZXU2xOVU1uaDRZMVZvY0Zvd2JHNVhSVTUwVTJ0NFZXVnJWbk5rYTFGNVkwYzVURT\
V0VWpST2JYZDRURE5XTldKV1VuVlpiRVpGVWtkYVMySkhSakJrVm1kNVZXMDVVRkpVTU\
dsWVUzZHBaRWhzZDBscWIybGtiVGt4V1RKb2JHTnBNWEZrTTAxeVlXNU9kbUpwU1hOSm\
JVWnpXbmxKTmtsclZsUk5hbFV5U1c0d0lpd2ljMmxuYm1GMGRYSmxJam9pYm5SQlowTT\
NSMVEzZUVsRVdXTklRbGh2V1dWcU9IVkpWVWsyVjFJeVNYWXROMVF4UTJGU0xVbzJMWG\
hUTmpCRWFWZFRNUzEyWm1NMVZYVTFTVTVhVXpGa2VWZGFOSFpXU0RaMVlXOVFZMlZTZU\
U1ak9HY2lmVjE5IiwiY3JlYXRlZC1vbiI6IjIwMjQtMDYtMjRUMDk6MDI6MTUuNTczWi\
IsImFnZW50LXNpZ24tY2VydCI6WyJNSUlCOWpDQ0FaMmdBd0lCQWdJRVl4WHM3VEFLQm\
dncWhrak9QUVFEQWpBK01STXdFUVlEVlFRS0RBcE5lVUoxYzJsdVpYTnpNUTB3Q3dZRF\
ZRUUhEQVJUYVhSbE1SZ3dGZ1lEVlFRRERBOVVaWE4wVUhWemFFMXZaR1ZzUTBFd0hoY0\
5Nakl3T1RBMU1USXpORFV6V2hjTk1qVXdPVEExTVRJek5EVXpXakJnTVFzd0NRWURWUV\
FHRXdKQlVURVNNQkFHQTFVRUNnd0pUWGxEYjIxd1lXNTVNUlV3RXdZRFZRUUxEQXhOZV\
ZOMVluTnBaR2xoY25reEpqQWtCZ05WQkFNTUhVMTVVMmwwWlZCMWMyaE5iMlJsYkZKbF\
oybHpkSEpoY2tGblpXNTBNRmt3RXdZSEtvWkl6ajBDQVFZSUtvWkl6ajBEQVFjRFFnQU\
V4aHZuYWtDSmVpZ3pqWkFVYU5adVAwMWUrUWxVY1E5UjJMSWs2UkI2dmtjdFdMS3BaWC\
85TGthNEdxckFWWmhhM3ZKcmhGc0l4OEdUQkhqWnZLMVd1Nk5uTUdVd0RnWURWUjBQQV\
FIL0JBUURBZ09JTUI4R0ExVWRJd1FZTUJhQUZHK2hQVzUxN1ovb3NSQ0ZUc2NlUDY4bj\
kzc2pNQjBHQTFVZERnUVdCQlJNdHp0akVwVlJUT3ZBVGRCamtGNWFHeVlQZURBVEJnTl\
ZIU1VFRERBS0JnZ3JCZ0VGQlFjREFqQUtCZ2dxaGtqT1BRUURBZ05IQURCRUFpQmJoRG\
pwbDJ2cWNONnBSVjRuZVU0dFFsWWFOTit4ZjNnSnUrMHBKblNBL1FJZ0ljcXpsZmhYaU\
Qxc0g3VTVQdUtwVVpzSWpkRjRSenhzQTZxSnRFTEQyUHM9Il19fQ",
  "signatures": [
    {
      "protected": "eyJ4NWMiOlsiTUlJQm96Q0NBVXFnQXdJQkFnSUdBVzBlTHVJ\
Rk1Bb0dDQ3FHU000OUJBTUNNRFV4RXpBUkJnTlZCQW9NQ2sxNVFuVnphVzVsYzNNeERU\
QUxCZ05WQkFjTUJGTnBkR1V4RHpBTkJnTlZCQU1NQmxSbGMzUkRRVEFlRncweE9UQTVN\
VEV3TWpNM016SmFGdzB5T1RBNU1URXdNak0zTXpKYU1GUXhFekFSQmdOVkJBb01DazE1\
UW5WemFXNWxjM014RFRBTEJnTlZCQWNNQkZOcGRHVXhMakFzQmdOVkJBTU1KVkpsWjJs\
emRISmhjaUJXYjNWamFHVnlJRkpsY1hWbGMzUWdVMmxuYm1sdVp5QkxaWGt3V1RBVEJn\
Y3Foa2pPUFFJQkJnZ3Foa2pPUFFNQkJ3TkNBQVQ2eFZ2QXZxVHoxWlVpdU5XaFhwUXNr\
YVB5N0FISFFMd1hpSjBpRUx0NnVOUGFuQU4wUW5XTVlPLzBDREVqSWtCUW9idzhZS3Fq\
dHhKSFZTR1RqOUtPb3ljd0pUQVRCZ05WSFNVRUREQUtCZ2dyQmdFRkJRY0RIREFPQmdO\
VkhROEJBZjhFQkFNQ0I0QXdDZ1lJS29aSXpqMEVBd0lEUndBd1JBSWdZcjJMZnFvYUNL\
REY0UkFjTW1KaStOQ1pxZFNpdVZ1Z0lTQTdPaEtScTNZQ0lEeG5QTU1ucFhBTVRyUEp1\
UFd5Y2VFUjExUHhIT24rMENwU0hpMnFncFdYIl0sInR5cCI6InZvdWNoZXItandzK2pz\
b24iLCJhbGciOiJFUzI1NiJ9",
      "signature": "_mcsO5vo0g2rFmBvTb-UsOWkEmhYNfQ5XmbuKHKH0ZLjea-7\
911BilAMdFORmT4vCzWKBSH6HSqtpIRcSSxx7Q"
    }
  ]
}
]]></artwork></figure>

</section>
<section anchor="example-voucher-from-masa-to-pledge-via-registrar-and-registrar-agent"><name>Example Voucher - 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-masa-issued-voucher-with-additional-registrar-signature-from-masa-to-pledge-via-registrar-and-registrar-agent"><name>Example Voucher, 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: 2994 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": "eyJpZXRmLXZvdWNoZXI6dm91Y2hlciI6eyJhc3NlcnRpb24iOiJhZ2\
VudC1wcm94aW1pdHkiLCJzZXJpYWwtbnVtYmVyIjoiMDEyMzQ1Njc4OSIsIm5vbmNlIj\
oia2hOeUtwTXRoY2NpYTFyWHc0NC92UT09IiwiY3JlYXRlZC1vbiI6IjIwMjQtMDYtMj\
RUMDk6MDI6MTYuMjQ0WiIsInBpbm5lZC1kb21haW4tY2VydCI6Ik1JSUJwRENDQVVtZ0\
F3SUJBZ0lHQVcwZUx1SCtNQW9HQ0NxR1NNNDlCQU1DTURVeEV6QVJCZ05WQkFvTUNrMT\
VRblZ6YVc1bGMzTXhEVEFMQmdOVkJBY01CRk5wZEdVeER6QU5CZ05WQkFNTUJsUmxjM1\
JEUVRBZUZ3MHhPVEE1TVRFd01qTTNNekphRncweU9UQTVNVEV3TWpNM016SmFNRFV4RX\
pBUkJnTlZCQW9NQ2sxNVFuVnphVzVsYzNNeERUQUxCZ05WQkFjTUJGTnBkR1V4RHpBTk\
JnTlZCQU1NQmxSbGMzUkRRVEJaTUJNR0J5cUdTTTQ5QWdFR0NDcUdTTTQ5QXdFSEEwSU\
FCT2t2a1RIdThRbFQzRkhKMVVhSTcrV3NIT2IwVVMzU0FMdEc1d3VLUURqaWV4MDYvU2\
NZNVBKaWJ2Z0hUQitGL1FUamdlbEhHeTFZS3B3Y05NY3NTeWFqUlRCRE1CSUdBMVVkRX\
dFQi93UUlNQVlCQWY4Q0FRRXdEZ1lEVlIwUEFRSC9CQVFEQWdJRU1CMEdBMVVkRGdRV0\
JCVG9aSU16UWRzRC9qLytnWC83Y0JKdWNIL1htakFLQmdncWhrak9QUVFEQWdOSkFEQk\
dBaUVBdHhRMytJTEdCUEl0U2g0YjlXWGhYTnVocVNQNkgrYi9MQy9mVllEalE2b0NJUU\
RHMnVSQ0hsVnEzeWhCNThUWE1VYnpIOCtPbGhXVXZPbFJEM1ZFcURkY1F3PT0ifX0",
  "signatures": [
    {
      "protected": "eyJ4NWMiOlsiTUlJQmt6Q0NBVGlnQXdJQkFnSUdBV0ZCakNr\
WU1Bb0dDQ3FHU000OUJBTUNNRDB4Q3pBSkJnTlZCQVlUQWtGUk1SVXdFd1lEVlFRS0RB\
eEthVzVuU21sdVowTnZjbkF4RnpBVkJnTlZCQU1NRGtwcGJtZEthVzVuVkdWemRFTkJN\
QjRYRFRFNE1ERXlPVEV3TlRJME1Gb1hEVEk0TURFeU9URXdOVEkwTUZvd1R6RUxNQWtH\
QTFVRUJoTUNRVkV4RlRBVEJnTlZCQW9NREVwcGJtZEthVzVuUTI5eWNERXBNQ2NHQTFV\
RUF3d2dTbWx1WjBwcGJtZERiM0p3SUZadmRXTm9aWElnVTJsbmJtbHVaeUJMWlhrd1dU\
QVRCZ2NxaGtqT1BRSUJCZ2dxaGtqT1BRTUJCd05DQUFTQzZiZUxBbWVxMVZ3NmlRclJz\
OFIwWlcrNGIxR1d5ZG1XczJHQU1GV3diaXRmMm5JWEgzT3FIS1Z1OHMyUnZpQkdOaXZP\
S0dCSEh0QmRpRkVaWnZiN294SXdFREFPQmdOVkhROEJBZjhFQkFNQ0I0QXdDZ1lJS29a\
SXpqMEVBd0lEU1FBd1JnSWhBSTRQWWJ4dHNzSFAyVkh4L3R6VW9RL1NzeWRMMzBEUUlO\
RXRjTjltQ1RYUEFpRUF2SWIzbytGTzNCVG5jTEZzYUpaUkFrZDd6T3Vzbi8vWktPYUVL\
YnNWRGlVPSJdLCJ0eXAiOiJ2b3VjaGVyLWp3cytqc29uIiwiYWxnIjoiRVMyNTYifQ",
      "signature": "SFtc2xqK8xN2KVqkYKJl7EUU8UJAai3VvCuK8LIfH8HZFvrr\
hqGiY8vK5cbQHQCjVcroFLn7IyhH708XAdstAQ"
    },
    {
      "protected": "eyJ4NWMiOlsiTUlJQjRqQ0NBWWlnQXdJQkFnSUdBWFk3MmJi\
Wk1Bb0dDQ3FHU000OUJBTUNNRFV4RXpBUkJnTlZCQW9NQ2sxNVFuVnphVzVsYzNNeERU\
QUxCZ05WQkFjTUJGTnBkR1V4RHpBTkJnTlZCQU1NQmxSbGMzUkRRVEFlRncweU1ERXlN\
RGN3TmpFNE1USmFGdzB6TURFeU1EY3dOakU0TVRKYU1ENHhFekFSQmdOVkJBb01DazE1\
UW5WemFXNWxjM014RFRBTEJnTlZCQWNNQkZOcGRHVXhHREFXQmdOVkJBTU1EMFJ2YldG\
cGJsSmxaMmx6ZEhKaGNqQlpNQk1HQnlxR1NNNDlBZ0VHQ0NxR1NNNDlBd0VIQTBJQUJC\
azE2Sy9pNzlvUmtLNVliZVBnOFVTUjgvdXMxZFBVaVpITXRva1NkcUtXNWZuV3NCZCtx\
Ukw3V1JmZmVXa3lnZWJvSmZJbGx1cmNpMjV3bmhpT1ZDR2plekI1TUIwR0ExVWRKUVFX\
TUJRR0NDc0dBUVVGQndNQkJnZ3JCZ0VGQlFjREhEQU9CZ05WSFE4QkFmOEVCQU1DQjRB\
d1NBWURWUjBSQkVFd1A0SWRjbVZuYVhOMGNtRnlMWFJsYzNRdWMybGxiV1Z1Y3kxaWRD\
NXVaWFNDSG5KbFoybHpkSEpoY2kxMFpYTjBOaTV6YVdWdFpXNXpMV0owTG01bGREQUtC\
Z2dxaGtqT1BRUURBZ05JQURCRkFpQnhsZEJoWnEwRXY1SkwyUHJXQ3R5UzZoRFlXMXlD\
Ty9SYXVicEM3TWFJRGdJaEFMU0piZ0xuZ2hiYkFnMGRjV0ZVVm8vZ0dOMC9qd3pKWjBT\
bDJoNHhJWGsxIl0sInR5cCI6InZvdWNoZXItandzK2pzb24iLCJhbGciOiJFUzI1NiJ9\
",
      "signature": "0Q7_a7L4ahn2vmfSxxkKg1xsOMMc8_D7B_Ilzqv5DKzCMkc7\
8YeeezDsuh4Z5JNVQUYHPp7LsK_AS_WH8TdVzA"
    }
  ]
}

]]></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" type="1">
  <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="RFC9525"/> 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" type="1">
  <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 12 -&gt; IETF draft 13:</t>

<t><list style="symbols">
  <t>Deleted figure in Section "Request Artifact: Pledge Voucher-Request Trigger (tPVR)" for JSON representation of tPVR, as it has been replaced by CDDL</t>
  <t>Updated reason-content description in status response messages (enroll-status, voucher-status, and status-response.</t>
  <t>Updated CDDL source code integration to allow for automatic verification</t>
  <t>Reordered description in section <xref target="pvr"/> in <xref target="tper"/> to better match the order of communication and artifact processing.</t>
  <t>Updated CDDL for the request-enroll trigger in <xref target="tper_CDDL_def"/> according to the outcome of the interim ANIMA WG meeting discussions on April 19, 2024</t>
  <t>Included statement in <xref target="per-resp-artifact"/> for using the advanced created-on time from the agent-signed-data also for the PER, when the pledge has no synchronized clock</t>
  <t>updates examples in Annex 1, 2, 4 to match prototypes</t>
  <t>updated RVR to contain idevid-issuer as described in RFC 8995 in <xref target="rvr-proc"/></t>
</list></t>

<t>From IETF draft 11 -&gt; IETF draft 12:</t>

<t><list style="symbols">
  <t>Updated acknowledgments to reflect early reviews</t>
  <t>Addressed Shepherd review part 2 (Pull Request #132); containing: terminology alignment, structural improvements of the document; deletion of leftovers from previous draft versions; change of definitions to CDDL, when no YANG is available</t>
</list></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="cacerts"/></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="cacerts"/></t>
  <t>issue #106, included additional text to elaborate more the registrar status handling in <xref target="vstatus"/> and <xref target="estatus"/></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="tpvr"/></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="tpvr"/></t>
  <t>issue #83, enhanced <xref target="tper"/> and <xref target="pvr"/> with note to re-enrollment</t>
  <t>issue #87, clarified available information at the Registrar-Agent in <xref target="tpvr"/></t>
  <t>issue #88, clarified, that the PVR in <xref target="tpvr"/> and PER in <xref target="tper"/> 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="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="req_cacerts"/></t>
  <t>issue #94: clarified terminology (possess vs. obtained)</t>
  <t>issue #95: clarified optional IDevID CA certificates on Registrar-Agent</t>
  <t>issue #96: updated exchangesfig_uc2_3 to correct to just one CA certificate provisioning</t>
  <t>issue #97: deleted format explanation in exchanges_uc2_3 as it may be misleading</t>
  <t>issue #99: motivated verification of second signature on voucher in <xref target="voucher"/></t>
  <t>issue #100: included negative example in <xref target="vstat"/></t>
  <t>issue #101: included handling if <xref target="voucher"/> voucher telemetry information has not been received by the Registrar-Agent</t>
  <t>issue #102: relaxed requirements for CA certs provisioning in <xref target="cacerts"/></t>
  <t>issue #105: included negative example in <xref target="estat"/></t>
  <t>issue #107: included example for certificate revocation in <xref target="estatus"/></t>
  <t>issue #108: renamed heading to Pledge-Status Request of <xref target="query"/></t>
  <t>issue #111: included pledge-status response processing for authenticated requests in <xref target="query"/></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="query"/></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="query"/>, 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="cacerts"/>; also added new required registrar endpoint (section <xref target="pvr"/> 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="pvr"/> and section <xref target="agt_prx"/>
The verification of multiple signatures is described in section <xref target="voucher"/></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="tpvr"/></t>
  <t>Removed open issue regarding handling of multiple CSRs and Enroll-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="pvr"/> and 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 Enroll-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 <xref target="tpvr"/>.</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="pvr"/>.</t>
  <t>Note added in <xref target="pvr"/> 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="pvr"/>. Also enhanced figure
<xref target="exchangesfig_uc2_all"/> 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="pvr"/>. Also
enhanced figure <xref target="exchangesfig_uc2_all"/> 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_all"/> (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 Pledge Enroll-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, meanwhile moved to <xref target="I-D.ietf-anima-rfc8366bis"/> 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="tpvr"/> 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>Siemens Schweiz AG</organization>
      <address>
        <email>ietf@kovatsch.net</email>
      </address>
    </contact>
    </section>

  </back>

<!-- ##markdown-source:
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
Gfj05f/3/27fl1nc2d5+ArMjU7r96D78goKT30ZijH+FNbteg7kq2EsCcwkL
Ngd9fdqQfGgu8FrDvYJ6xF9wZv59L/vn0/F8+/7v5AMccPChzlnwIc1Z95PO
wzyJiY8Sr3GzGXwezXTY3/1/C37XeTcf/vPvp7Als+H249//bi12Tnt7vRWV
RTZTuJOPWUvKtkc7eHSt5+SE3Ayq02MLrFSY51Vegc0VunLQ6hiiNpSX3uGy
t7aXPZOtQJYPf6xeNuj9uL6etxUYQ/MLcSqdghEx8U5IsC3hHeiHOTjYDAU+
W11wdMnrgQK2aWAqJrIlxSFjxC1ofee4f4yIEuHFIkovCJZTrN7Vxm89r0Gf
a/lcdtwPuAuf7uOInwYuCedJGqjnKPSBrD3t2HvYyAnafXizinLGwkm9mPAH
GR5qoGfl+YIRQ3RBYJvHR2FPCufZOnIeoYMD/M6Bm+JBR+r9HjXU+493cXPA
bF/PZY1U+8zID1vTjySg4USiPjRfgGI+Htr5mudlbW7REs1jxDX5r9PXwvk8
OLAfUG9L0hi69z925XniU16mgwNoTTVFml7S6L+fgo5zcnfte+0SNAnsyuWC
9t6Jc9g/R6srO3Zu+7WXB7Sa4uI5oIt6KOvIFnOkO8D6wQ4YqPfzNNDLaKGc
08W4AMnF7TzDL18c0kvrqjobwv9zZD61SwTEQIN6+eJl8NTLCr1kDdna5N0w
e2Lzhqa+tqMWr244bHX3keLmfKKNDCZtbqPMgKaxgXB6XqrFd0SnWPWp+BCj
FJurykaIqdCrxPs7z57uw9CmxTl5/+yWvHR4Puf9ga5gAANticDHCcMZv2lI
g/FaS6vqZNd5lDZ/yJWYMMxwqLyznO6Y2FzYJmwm9k3BTgymFwYps9dRFzdK
1vwxkIddeAlvP0JH+trR19FLb7O2wZL1+dfRT0+xTVQi5VLiNYaFr4txQXFl
Z/kbW99eqIvGud71Tixm42rCIdhWIJrS8jk0Ocv+9M3xULqonnnQ3nP0ADZw
ZX62f3zw8P5XR883Xjw9OTg53uQLEhpTDzFoqA/vL+qpfxPMO395gBq4ucDd
9Y3wJ1rNr04+f7xxfHJ0+OUfOi1X47ZAG5k3CXxz+FgEPGKRQMLVBahvuLbO
/8Itxa/d7rw2nDUX/kIUoxu8OBSrxXTiFoS+MK3QZMC1nuHFBm3zHAxpAkzo
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
nNbRDuuBV2s4YCGThfU1fgvix08sZO0+Mxw7jHW2MDBC8Gguemt9CL3r9ufa
cWT790ZLHbHFxpmGmEN1v4Iss8dhw8IqwHEs0SNjbUeu7h2h/5axgxGgD1jP
wyh+PDr2kvGitzHmjdBpxcmoFvWg04+TajQ3W3EVOsfxFkYHX+h5i5vYiYLE
rOobIwoYvjYYgS5sxyJXc1t1HZLnjmx2xaq9thP5xGUPlqXdM2YkZhQ4RhSD
c/aeV+0eLOgg7Pyj5UBJYhR9CLoEbLEfufZExSo2WAUba/GjC8lmzB+O2yqz
lehoOvXHibY66E4QmppbdyK9p4fR2oc9ilzW6mEVseOG+6Hb0V02D3fWXGP9
lorRoIkW+x72whxE/T2LfEitu8AcIVuDvW1ps772/cJ1HMYefY11B+EGsmQc
bAV7qdw4Vqh6THPVkRPuoU/aY80Ax9UTSzVWU00bmkvj0VNGOxej9PdG1N3b
4d7t3zHTdK72bts1+q1k9jxUPvypy2dkn690pz97jJKZZUe9wWxjw8I0Rra+
hA7pQZ8sTdtvOO264y05PW21MVZIO2kdW1GUR1gq2BvSyFeDWtwwUz3PInvg
bNp2qJoMuhZyBF2kGSY0+feLaWtDen9rV9XEZ6udtXTn41C7MpZxg4UFPd/e
7Cbt3saVz7PQd6DlNSvs6d8vBoo2MjSjN22pLWfoPxqt1t4KDXfaqrfH+N50
kaig4Bq//wF50b0Q0qoaTGf+j0Gk6/ZQx94OVM018K9tY5ZK3ARXaSxUm5bN
tbI2qPo1i+mbcYd5/U5jN1qoodHuHs2lr2N1NQMbB43CR3A1v3qDpzGnsN5i
Vu9xupioEAtYTBcih3+h/zBP1axqQ92pW2NnrzrzBvjE2Hy/GLdjD5z256zX
ETarHQX2QgdqjoF7DJuN/KN/YA4L/KXRMUNNNe+MnXc0evpdrzrC6BPV3kPH
942Wfme1N47XMRibd/fjoRuYil79fmENXw6OubEsxzce2+7CV3aHfm11ZK3I
GUSwXprRhNW/myhlW2U4fnMwD4amNtl/v/Da/YMxNGDFXViO/vuWov1Nxd4Z
GLH5mNrDoQ+Cqc3vFyNbaxuR1vfC+rXdvLEeqhvgydjwq/FSt23VXbq1kRrN
BN1ae+YY96A0cIz2yumm+OA6m7H2ALs2UNSGLr9hdHxtMLup2TZr+ErUdcGf
JpCGW9NWXjV+sjXNgBVbWmHQMFo9yN/AiZq+pddgVfsTJdbtO3a0rNtav/Wy
ZrZ7mNp1pi/8h2m4f8KetKesZ1rV/X5iB8B20dJp6dhpM9zbU+hRPxwcJu2b
B31hXOmL3R5Ioz5mxnYUgU/a7v24rSk+eznYi5snw1JmQ3M38zvRjuwTNG2G
ndUffq2/howCs3KrlrgHwpbM6s/tanepfDh7ifTDcnP70vzatr7uu3ejSacx
XI2m82/brt29doxq9/Xyq6U2PeOyd325N68V2M6ZY6qXr8+Tur2td3XXVP2D
4169ss711ls9TabGXp98e/lwvlSTdKqEkyNdKulRPc9eeGi2fF9SPHl56n1d
kivz7pXJkvvmrcerWVTMSnrryxkFXy5/DD4YpRsLH45up1PQRA7GW0ZwB/55
tfLTK9sicC8SmyerVTj1v1C96JOg6CYdLh8kPeG+PA3DCjdTDB94yQX3l7OK
9qc56FlxVJHskzrXeUys9HTl4wcxyQ+fsmYLy9VOpubCd6cGe9OsnVwh9fp9
hzZ1V9+sg5M4d3TLEyl84Q+6uOUuFWmeDHdw5XlTQouXQYn0yjNo8oGfO6dH
bSfT/JnvbEjf+Wu99v8j3zkK3SG82aYKv1VXMQcaFR6TXzMWNw0grYZvK0fL
/Fa3mhvLs1xYYf0JdtseN8mjGiyD1eSo0De342p97prQSovNylpGDxN4UvAk
5nAj9pMoqMH/ffWj1s0TfXnZOHjOzeGBUGmKzKvjGpt7bYaf9qLJkEWT2oDm
E03tuAZjl0yAAI0ypmxPtIiNLSBkHdh514/ittu6mfWHcGrhRHiLnuPMDULv
Q9dRTcK9bhvovdU6OOFkB7wD7B0FRi34wVHpGiOQBxAYinrN2uoVRkiABVwv
DHcjZtcnmg70ruljbbV3QqZP24ODtTSemNZbsWXc9uEjxprX6QUMPrldreMt
X5t0/CFbDI5Axvc+c7d2xD0I1Vb9nQ/s3beZ6bT3j66z16aasZm0McqjYUW2
xO82m/fIg3gawapMnO5h3A70sRPAXLlOn1BoRHSIPMtJVF/1gf/9iMFzMHoO
/FBL1a6xTgcYrWapGAGzBkrWgXjgBborG9h70oIXo8XxiBEV9OGkFYf9O20v
vBgr6rXHdw3yQSyAP/gg2rUT1k2D2Qem+Tt7QcgLmKQVjzBCMsUIfdufjTuN
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
0zUQX6nfDWzNGhzdGZRaY+ywPZz/mr6IjEnUOz5q3e8XcAYna71Nh1Z+3W2r
w8mx1wFF26zmzzyYh/6i3nNaL0erBtSnuupjp3+wl24MFn70wFamAlZumq1A
GSyM2AjhOC/dmV69uTKxm79z9aSI1b5f5GhN1Qit8UsbpmUMHKd35Xf0o6nd
HjDS1bB5o0wj9mqz3atd0+tua3fstwxQoQ4R99v646Oj3jEtGAycSAOa7QE3
v94r7lNf6dkwQX0KwZlRbGJnQ70WP/lDfYtRJw9q/GBVsUeaWe0dIfIxk6m0
I2e/JKNmsP5Bt0Yz6RCVMdkHxWrUo/XlJFHnP0Kv+qqPB4vauDFynh96/rej
z+67K1avTVfV0YvZtZb396PvF9Zrp2/vlN3+Zucftjqb66vbl4dDondfWq/R
JNo0drzjyTk0loEwgV7Oo7Ace51inD8DwD4LVDRLku3UzxCLKEWUV5TMYVJe
1+Pjfw24ffo/B7m9n+xZRG7Vm5ur/00Jn38AukF9/Q3Q7fvFf+Vy5GmQkK4e
5GHC0Ra/Uf48dIOY/g3QjdT6X4du3y96fwN0+37xx+IcP4dumMvfAN1A3b8B
utFVsb8O3Sjh869DN9Dlb4BumMvfAN0gAX8/dPuTEbmfY7jvF87/SVe45sZf
xnAYhWOwv4bhSHdpfxnDYS4U7fqLGO77BVDcX8Zw3y+A4v4yhsMoxYjb72C4
h5pxzZwb40HVwftGv39stCDdj6Du0Jhb82gzUI0RZDoGtaum0z3CsLatow4J
rs+tlnsc2bFnh9ravfOvrRo7jmffXp1w8zSy2QMA/1J3jHbEnsyeDyunTIe3
ZAfziwFOXJscNj8m1Zstt1fv4bvTqJupbSbV/Y/7b3u9es9+hKP7XvQVU/9m
9269WY29Nrf33x66z51vHVd7XUOMgh/t2ejb6319Mh50Bs05m6xX2sPya/cQ
dL4q34a3frK5TaNun/+MBM+NHyTBjlOWYEcLa/1FbwYJ/t8fU7fFdX9KbCld
+KeY+rWQWLU1qoETQ1uBxaSYekvv/A0x9Q44d1iIqbf6Wq86ivz29wtIbHJy
Tf3HgEonhGpnsIxS5ABkwYpIApzNugOr0RtANr9fYEZV83AT68fo1V5sHnQW
zVzWWD5qzLLnL6/+sL93tQbzWNwFVnr1VD2c2BvM3d3Cejbd5maPFYW7GlN7
C3fBhl4tWrpO79VcuL1xe69OFnrcn7PaeBHElureGVUg37CrWnZ3V7i+CPuI
fTHSC4zZ9cXw9KApaA3sGxljb11hPxePLcbxEXgJutpXwU3iAM0chAya/FYx
HWM+Zu52xILHflvfGMuo72g94g/Dd/qHMaUiQauManToYNzRVWpoEE2/M9v1
+7FWPFYM930tppICj57FgLh8oI94qA/jPlNgGdoKEJiI+3+/OHMc1uPHYaEW
D5ZB4rZ6K2fZ2hnDkWqGu4Pd6Q0HNaNuH92VoUXD/jDCXKzDjTkastmk1Qfe
0npAAj0P6M5W4pmr7LduNZiNIDf9tjGH5WNs8e3VVfzHPrCBX4vvod+BEMd3
vRV4sue0k/3vxfHfi+J/v3hHoyiDr796Xx+uvGBZfV08m/t9eP+i7pPHfn/y
7de7r41fu9Hxx2v97v7Y7IeTr98vvo2m0+nxLtkGV269p7OBPeo8xV8fkvtf
b81fnc43y2fH23Ic//dcRweOHHwjag/6Z73Iz3/EC3zX1fwHb6dySUUHL6ny
pKxUR1WJftYSIKvxL+5DBptNLIv7pIW/ysP+fnuB/CakaEXCS7l5so2IXNhi
SkXnZ8niy8XFU1qMKLtdGE4Pl97LeipqiMkrhdulP11HB/Lz0nZBVFms2N5Y
XkSkck30aLlMrLgGKtckRxDdbtN+T2k9qLQhe15qmc/jDEELxZrf6WciXN5s
IoW+LIVC8ycfki1+fd6yxsMPtvEq7W0sq5TJMWgZ+fq//GTb5JgLahWclRwv
9hEUJYrz6pqi3Bo1IFO/VG5Pq+XK9hyyTDovsjujFpK+aBXnr2hqXyoVh1cw
34iCkFSskdf9WvCOi1SwKt8gUWKRWhMRRZ7M+89ZHbXW7RMYZhOsfFnB0ttV
4u04mk2yXisHUQWOdwUnXhNf5IvO76qKyndYVDCLf9blCnSsfil2MSa+4j0o
qM7qmaripzWdZ5tkGj2LYoyimt1NvUrFEKlOKN5NFyMr14m2JV6pM3vWAYEX
7fIq2uBO51ebRfMo0SMjk6JiteO0nXVxRmLoYb2qiICMLrb5Tqfq9esZ5jlN
u6tTIXQuQ6IHAHZ1ysuYimW/Xws14PU+Y+qXJRWfn1WQLfUTKlc9/Zh8+iw0
YNrdPa/+yfs6TPdxWg85mU5lY520WWdeep+XrhcsnQqkrKvo5YVss+7wWblR
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
0KN5GK2QbFBUbxnhmqYhWKklcliNbPK+YNC3cUkZPBKXLKLKxlu/TCkJPj1+
zUPv/G4CFwFIw1vnQyT4p5on04GrUtbkm/M0ov6C33AQDslzpr+Lxz7nsMZp
Ap6invBxiizenBRn1zJFDH35DqM/n2hkuZKU+7NjjhJCxMJ4Cr9sbVnwCE9t
e8GZPhWEp8enN59PStD9HVk7OYT6QgRppKohizB/lpfpsj3a8ZxSsXFnLVGa
BzeNZmkaWDH/5wxLZ0SRG/+RkkFWSwyY8KXzix2Vp/um+Q9V4cuZcddFDPXp
i8gvn8wSmQyQni7TuyRzmW18b/fEZuUzy6s9yYiWPJ3Kz4grt0IUTmRH3PXg
SZDFs+mfCwI0w4RgpLh8N97OIl8Mzq9eFB2e9PKg3PztJknPllORzNfwHlW+
plRJGaqsEN6TfR46yizHzxd1KsQyF7y0krLAUliOp2cW1Nc/6gUNdsr1s+nm
+fK4iS95OrQ8mMEMxXPA+xVelIuuXK5Wz5f4dyIvMJzRn3wCnRV0TAjPg2cc
Z3G+iLyYQyGAUzyn4Kghu+MhVIs/Exepvly8wUbi8uGinLzBb26KP0qomp7t
ry/pJjANo83o1PNDKar5IYuG8IgbM/5pMOMiQ08/ayubXUrJAngnmBm/BAHf
7547yzQJXyW/PiNQbv4bMnvJdgzgLSKqpMHzFA8Mzw8Y+ErFGgpnYomMScbZ
3fdSy19pd1MVHc0Ws03pCKvyMXWOI2yosHKZ3083abyQs8g2/pLeNaEUbvox
v5X8JnlF2u40Z+RT5WNqOhShfm7TJDLOkFlWGI8jFI7iqetyetqTp7jyU0FM
p8BaX7IvXH0qAY38oCM/5DjNFhTpyeKCR9kJL4GfLB1Q3KiTEAdTnYR8hFMq
CNVAeOzB5JAiCYhgZ+wL1CPZ7ey8V3hyF5ViNl2aa+FFUZp9tJG1APLJ8Ox0
/Je+GNENRr6G1jvnyH96SZhRSaW9vdvx3trw5snq/ktro01fvgcB8wWnxwCl
+fGYJsVHYdXWa+9QvjCUe7FS5ZLElcJ2ubzx42ZuRcBy9EoaMU3teznE/GYk
fsf5BAi8U/BBHCFlF3gxVP7N5CSxs0zFj1lmJySuIswmR4eZU52GpaR240Ee
aNBtmtLBb0qT3fCWs4V3uX6eSFkUCDq/psLfBCLjSDb77qc3iqcUifWyMNvv
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
STP+/wFFN0FqvOYCAA==

-->

</rfc>

