<?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.18 (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-15" 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 new endpoints for the Domain Registrar and pledge, and 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 Key Infrastructure (e.g., 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 signed data objects, the voucher artifacts as defined in <xref target="RFC8995"/>.
In response to a voucher-request, the Manufacturer Authorized Signing Authority (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 artifact.</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>defines additional endpoints for the domain registrar and new endpoints for the pledge to enable responder mode.</t>
  <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 additional artifacts for the exchanges between a pledge acting as server, the Registrar-Agent acting as client, and the domain registrar acting as server toward the Registrar-Agent.</t>
  <t>allows the application of Registrar-Agent credentials to establish TLS connections to the domain registrar; these are different from the pledge IDevID credentials.</t>
  <t>also enables the usage of alternative transports, both IP-based and non-IP, between the pledge and the domain registrar via the Registrar-Agent;
security is addressed at the application layer through object security with an additional signature wrapping the exchanged artifacts.</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"/>.</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 a data 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>the certificate of the EE signed by its owner (e.g., CA).
For domain components, the EE certificate is signed by the domain owner.
For the pledge, the EE certificate is either the IDevID certificate signed by the manufacturer or the LDevID certificate signed by the domain owner or an application-specific EE certificate signed by the domain owner.</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>IDevID:</dt>
  <dd>
    <t>An Initial Device Identifier X.509 certificate installed by the vendor on new equipment.
This is a term from 802.1AR <xref target="IEEE-802.1AR"/>.</t>
  </dd>
  <dt>LDevID:</dt>
  <dd>
    <t>A Local Device Identifier X.509 certificate installed by the owner of the equipment.
This is a term from 802.1AR <xref target="IEEE-802.1AR"/>.</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 via the Registrar-Agent.</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 signature-wrapped voucher-request, signed by the pledge that sends it to the domain registrar via the Registrar-Agent.</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>RVR:</dt>
  <dd>
    <t>Registrar Voucher-Request is a signature-wrapped voucher-request, signed by the domain registrar that sends it to the MASA.
For BRSKI-PRM, it contains a copy of the original 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>BASE64(OCTETS):</dt>
  <dd>
    <t>Denotes the base64 encoding of an octet sequence using the character set defined in <xref section="4" sectionFormat="of" target="RFC4648"/> and without the inclusion of any line breaks, whitespace, or other additional characters.
Note that the base64 encoding of the empty octet sequence is the empty string.</t>
  </dd>
  <dt>BASE64URL(OCTETS):</dt>
  <dd>
    <t>Denotes the base64url encoding of an octet sequence, per <xref section="2" sectionFormat="of" target="RFC7515"/>.</t>
  </dd>
  <dt>UTF8(STRING):</dt>
  <dd>
    <t>Denotes the octet sequence 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 <spanx style="verb">base64encodedvalue==</spanx> 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 the assertion type <spanx style="verb">proximity</spanx> in the voucher, as the pledge was not in direct contact with the registrar for bootstrapping.
Therefore, a new assertion type 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 an artifact, 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 pledge IDevID credential.
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"/> 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 the 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, wrapped CA certificates, and 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="448" y="308">.</text>
<text x="128" y="324">.</text>
<text x="188" y="324">EE</text>
<text x="224" y="324">cert.</text>
<text x="356" y="324">EE</text>
<text x="392" 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 |  .
|        |<------>|            |<------>|           |  .
|        |     .  |   EE cert. |        |  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(S) in the context of this document.
Any other protocol can be used as long as it supports the exchange of the necessary artifacts.
This includes CoAP or protocol to be used over Bluetooth or NFC connections.
A pledge acting as server leads to the following differences compared to BRSKI <xref target="RFC8995"/>:  <list style="symbols">
      <t>The pledge no longer initiates bootstrapping, but is discovered and triggered by the Registrar-Agent as defined in <xref target="discovery_uc2_ppa"/>.</t>
      <t>The pledge offers additional endpoints as defined in <xref target="pledge_component"/>, 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 and signed by the Registrar-Agent as defined in <xref target="tpvr"/>.
This allows the registrar to identify with which Registrar-Agent the pledge was in contact (see <xref target="agt_prx"/>).</t>
      <t>The artifacts exchanged between the pledge and the registrar via the Registrar-Agent are authenticated self-contained objects (i.e., signature-wrapped artifacts).</t>
    </list></t>
  <t>Registrar-Agent: Is a new component defined in <xref target="agent_component"/> that provides a store and forward communication path to exchange data objects between the pledge and the domain registrar.
This is for situations in which the domain registrar is not directly reachable by the pledge, which may be due to a different technology stacks or due to missing connectivity.
A Registrar-Agent acting as client leads to the following new aspects:  <list style="symbols">
      <t>The order of exchanges in the BRSKI-PRM call flow is different from that in BRSKI <xref target="RFC8995"/>, as the Registrar-Agent can trigger one or more pledges and collects the PVR and PER artifacts simultaneously as defined in <xref target="exchanges"/>.
This enables bulk bootstrapping of several devices.</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 EE certificates that are both signed by the domain owner.</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).
However, there are also differences compared to BRSKI <xref target="RFC8995"/>:  <list style="symbols">
      <t>A BRSKI-PRM domain registrar does not interact with a pledge directly, but through the Registrar-Agent as defined in <xref target="exchanges"/>.</t>
      <t>A BRSKI-PRM domain registrar offers additional endpoints as defined in <xref target="registrar_component"/> to support the signature-wrapped artifacts used by BRSKI-PRM.</t>
    </list></t>
  <t>Vendor services: Encompass MASA and Ownership Tracker and are used as defined in <xref target="RFC8995"/>.
A MASA responsible for pledges that implement BRSKI-PRM is expected to support BRSKI-PRM extensions:  <list style="symbols">
      <t>The default format for voucher artifacts (incl. voucher-request) is JWS-signed JSON as defined in <xref target="I-D.ietf-anima-jws-voucher"/>.</t>
      <t>The Agent Proximity Assertion (see <xref target="agt_prx"/>) requires additional validation steps as defined in <xref target="masa_interaction"/>.</t>
    </list></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="448" viewBox="0 0 448 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 the voucher that the registrar communicated via the Registrar-Agent as defined in <xref target="exchanges"/> and not directly to the pledge.
It is therefore a different assertion than "network proximity", which is defined in <xref section="3" sectionFormat="of" target="RFC8995"/>.
Hence, <xref target="I-D.ietf-anima-rfc8366bis"/> defines the additional assertion type <spanx style="verb">agent-proximity</spanx>.
This assertion type can be verified by the registrar and MASA during BRSKI-PRM voucher-request processing.</t>

<t>In BRSKI, the pledge verifies POP of the registrar end-entity (EE) credentials via the TLS handshake and pins that public key as the <spanx style="verb">proximity-registrar-cert</spanx> 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 session is considered provisional until the pledge receives the voucher to verify POI.</t>

<t>In contrast, in BRSKI-PRM the pledge has no direct connection to the registrar and <bcp14>MUST</bcp14> accept the supplied registrar EE certificate provisionally until it receives the voucher as described in <xref target="voucher"/> to verify both POP and POI.
The provisional registrar EE certificate is used for the object security along the authenticated self-contained objects that in BRSKI-PRM replace the direct TLS connection to the registrar available in BRSKI <xref target="RFC8995"/>.
See also <xref section="5" sectionFormat="of" target="RFC8995"/> on "provisional state".</t>

<t>For the Agent Proximity Assertion, the Registrar-Agent EE certificate and registrar EE certificate must be signed by the same domain owner, i.e., <bcp14>MUST</bcp14> possess a common domain trust anchor in their certificate chain.
Akin to the Network Proximity Assertion in BRSKI <xref target="RFC8995"/>, the Agent Proximity Assertion provides pledge proximity evidence to the MASA.
But additionally, the Agent Proximity Assertion allows the domain registrar to be sure that the PVR supplied by the Registrar-Agent was in fact collected by the Registrar-Agent to which the registrar is connected by utilizing an agent-signed data object.</t>

</section>
</section>
<section anchor="system-components"><name>System Components</name>

<section anchor="agent_component"><name>Registrar-Agent</name>

<t>The Registrar-Agent is a new component in BRSKI-PRM that provides a store and forward communication path with secure message passing between pledges in responder mode and the domain registrar.
It uses its own end-entity (EE) certificate and corresponding credentials (i.e., private key) for TLS client authentication and for signing agent-signed data objects.</t>

<t>The Registrar-Agent EE certificate <bcp14>MUST</bcp14> include a SubjectKeyIdentifier as defined in <xref section="4.2.1.2" sectionFormat="of" target="RFC5280"/>, which is used as a reference within agent-signed data objects as defined in <xref target="jws-asd"/>.
Note that this is an additional requirement for issuing the Registrar-Agent EE certificate.
<xref target="RFC8995"/> has a similar requirement for the registrar EE certificate.</t>

<t>The SubjectKeyIdentifier is used in favor of providing the complete Registrar-Agent EE certificate in agent-signed data objects to accommodate also constrained environments and reduce bandwidth needed for communication with the pledge.
In addition, it follows the recommendation from BRSKI to use SubjectKeyIdentifier in favor of a certificate fingerprint to avoid additional computations.</t>

<t>The provisioning of the Registrar-Agent EE certificate is out of scope for this document, but may be done using its own BRSKI run or by other means such as configuration.
It is <bcp14>RECOMMENDED</bcp14> to use short lived Registrar-Agent EE certificates in the range of days or weeks as outlined in <xref target="sec_cons_reg-agt"/>.</t>

<t>Further, the Registrar-Agent requires the registrar EE certificate to provide it to the pledge.
It <bcp14>MAY</bcp14> use the certificate verified during server authentication within an initial TLS session with the registrar;
in this case, the Registrar-Agent <bcp14>MUST</bcp14> possess the domain trust anchor (i.e., CA certificate) for the registrar EE certificate to verify the certificate chain.
Alternatively, the registrar EE certificate <bcp14>MAY</bcp14> be provided via configuration or a repository.
The registrar IP address or hostname is provided either by configuration or by using the discovery mechanism defined in <xref target="RFC8995"/> (see <xref target="discovery_uc2_reg"/>).</t>

<t>In addition to the certificates, the Registrar-Agent is provided with the product-serial-number(s) of the pledge(s) to be bootstrapped.
This is necessary to allow for the discovery of pledges 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 (out-of-band) 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 data record.</t>

<t>In summary, the following information <bcp14>MUST</bcp14> be available at the Registrar-Agent before the interaction with a pledge:</t>

<t><list style="symbols">
  <t>Registrar-Agent EE certificate and corresponding private key: own operational credentials to authenticate and sign agent-signed data</t>
  <t>Registrar EE certificate: certificate of the domain registrar to be provided to the pledge</t>
  <t>Serial number(s): product-serial-number(s) of pledge(s) to be bootstrapped; used 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 manufacturer/vendor to validate the IDevID certificate on returned PVR or in case of optional TLS usage for pledge communication (see <xref target="pledgehttps"/>).
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>While the Registrar-Agent requires the IP address of the domain registrar to initiate a TLS session, a separate discovery of the registrar is likely not needed and a configuration of the domain registrar IP address or hostname is assumed.
Registrar-Agent and registrar are domain components that already have a trust relation, as a Registrar-Agent acts as representative of the domain registrar towards the pledge or may even be collocated with the domain registrar.
Further, 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"/>.</t>

<t>Moreover, 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 identification of registrars with an enhanced feature set (like the support of BRSKI-PRM), and hence 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.
For further discussion, see <xref target="I-D.ietf-anima-brski-discovery"/>.</t>

</section>
<section anchor="discovery_uc2_ppa"><name>Discovery of the Pledge</name>

<t>The discovery of the pledge by the 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, is discussed in <xref target="I-D.ietf-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 section="9" sectionFormat="of" target="RFC6762"/> 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 Service Instance Name based on device local information (manufacturer/vendor name and serial number), which results in <spanx style="verb">&lt;product-serial-number&gt;._brski-pledge._tcp.local</spanx>.
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>Note that this goes against the naming recommendation of <xref target="RFC6763"/>.
The <spanx style="verb">_brski-pledge._tcp</spanx> service, however, targets machine-to-machine discovery.</t>

<t>In the absence of a more general discovery as defined in <xref target="I-D.ietf-anima-brski-discovery"/> the Registrar-Agent <bcp14>MUST</bcp14> use</t>

<t><list style="symbols">
  <t><spanx style="verb">&lt;product-serial-number&gt;._brski-pledge._tcp.local</spanx>, to discover a specific pledge, e.g., when connected to a local network.</t>
  <t><spanx style="verb">_brski-pledge._tcp.local</spanx> 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 its 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_component"><name>Pledge in Responder Mode</name>

<t>In BRSKI-PRM, 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 <spanx style="verb">/.well-known/brski/</spanx> URI path, except for the <bcp14>OPTIONAL</bcp14> endpoint "qps".
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>HTTP(S) uses the Host header field (or :authority in HTTP/2) to allow for name-based virtual hosting as explained in <xref section="7.2" sectionFormat="of" target="RFC9110"/>.
This header field is mandatory, and so a compliant HTTP(S) client is going to insert it, which may be just an IP address.
The pledge <bcp14>MUST</bcp14> respond to all requests regardless of the Host header field provided by the client (i.e., ignore it).
Note that there is no requirement for the pledge to operate its BRSKI-PRM service on port 80 or port 443, so there is no reason for name-based virtual hosting.</t>

<t>For instance, when the Registrar-Agent reaches out to the "tpvr" endpoint on a pledge in responder mode with the full URI <spanx style="verb">http://pledge.example.com/.well-known/brski/tpvr</spanx>, it sets the Host header field to <spanx style="verb">pledge.example.com</spanx> and the absolute path <spanx style="verb">/.well-known/brski/tpbr</spanx>.
In practice, however, the pledge is usually known by a <spanx style="verb">.local</spanx> hostname or only 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 objects between the pledge and the domain registrar, the binding of the pledge identity to the voucher-requests is provided by the wrapping signature employing the pledge IDevID credential.
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 anchor="registrar_component"><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 <spanx style="verb">/.well-known/brski/</spanx> Well-Known URI path.
These endpoints accommodate for the authenticated self-contained objects used by BRSKI-PRM to provide Pledge Enroll-Request (PER) artifacts and signature-wrapped CA certificates via the Registrar-Agent.</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>Obtain CA Certificates</c>
      <c><xref target="obtain_cacerts"/></c>
</texttable>

<t>The registrar possesses its own EE certificate and corresponding private key for authenticating and signing.
It <bcp14>MUST</bcp14> use the same certificate/credentials for authentication in the TLS session with a Registrar-Agent and for signing artifacts for that Registrar-Agent and its pledges (see <xref target="rcv_artifact"/>).
Overall, this may have operational implications when the registrar is part of a scalable framework as described in <xref section="1.3.1" sectionFormat="of" target="I-D.richardson-anima-registrar-considerations"/>.</t>

<t>According to <xref section="5.3" sectionFormat="of" target="RFC8995"/>, the domain registrar performs the pledge authorization for bootstrapping within its domain based on the Pledge Voucher-Request.
For this, it <bcp14>MUST</bcp14> possess the IDevID trust anchor(s) (i.e., root or issuing CA certificate(s)) of the pledge vendor(s)/manufacturer(s).
This behavior is retained in BRSKI-PRM.</t>

<t>In its role as EST server <xref target="RFC7030"/>, the domain registrar <bcp14>MUST</bcp14> also possess the domain CA certificates as defined in <xref section="5.9" sectionFormat="of" target="RFC8995"/>.</t>

<t>Finally, the domain registrar <bcp14>MUST</bcp14> possess the Registrar-Agent EE certificate(s) to validate agent-signed data and to provide it to the MASA.
The registrar <bcp14>MAY</bcp14> use the certificate verified during client authentication within the TLS sessions with the Registrar-Agent;
in this case, the registrar <bcp14>MUST</bcp14> possess the domain trust anchor (i.e., domain CA certificate) for the Registrar-Agent EE certificate to verify the certificate chain.
Alternatively, the Registrar-Agent EE certificate(s) <bcp14>MAY</bcp14> be provided via configuration or a repository.</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 credentials for client authentication during the TLS session establishment and 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 Registrar-Agent EE certificate, which allows the domain registrar to explicitly detect already in the TLS session establishment, that the connecting client is a Registrar-Agent.</t>

<t>The registrar <bcp14>MAY</bcp14> be restricted by configuration, if it accepts every Registrar-Agent, which can authenticate with a domain issued certificate or only explicitly authorized ones.</t>

<t>Note that using an EE certificate for TLS client authentication of the Registrar-Agent is a deviation from <xref target="RFC8995"/>, in which the pledge IDevID certificate is used to perform TLS client authentication.</t>

</section>
</section>
<section anchor="masa"><name>MASA</name>

<t>The Manufacturer Authorized Signing Authority (MASA) is a vendor service that generates and signs voucher artifacts for pledges by the same vendor.
When these pledges support BRSKI-PRM, the MASA needs to implement the following functionality in addition to BRSKI <xref target="RFC8995"/>.</t>

<t>A MASA for pledges in responder mode <bcp14>MUST</bcp14> support the voucher format defined in <xref target="I-D.ietf-anima-jws-voucher"></xref> to parse and process JWS-signed voucher-request artifacts and generate JWS-signed voucher artifacts.</t>

<t>Further, a MASA for pledges in responder mode <bcp14>MUST</bcp14> support the Agent Proximity Assertion (see <xref target="agt_prx"/>) through the validation steps defined in <xref target="masa_interaction"/> based on the Pledge Voucher-Request (PVR) and Registrar Voucher-Request (RVR) artifact fields defined in <xref target="pvr_artifact"/> and <xref target="rvr_artifact"/>, resp.</t>

</section>
</section>
<section anchor="exchanges"><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(S) 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 authenticated self-contained objects that are not bound to a specific transport security and stay the same along the communication path from the pledge via the Registrar-Agent to the registrar.
<xref target="I-D.ietf-anima-rfc8366bis"/> defines CMS-signed JSON structures as format for artifacts representing authenticated self-contained objects.
This specification utilizes JWS-signed JSON structures as default format for BRSKI-PRM.
Other specifications may define alternative formats for representing authenticated self-contained objects such as COSE-signed CBOR structures.</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="1904" width="576" viewBox="0 0 576 1904" 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,800" fill="none" stroke="black"/>
<path d="M 16,864 L 16,960" fill="none" stroke="black"/>
<path d="M 16,1024 L 16,1072" fill="none" stroke="black"/>
<path d="M 16,1136 L 16,1200" fill="none" stroke="black"/>
<path d="M 16,1264 L 16,1312" fill="none" stroke="black"/>
<path d="M 16,1376 L 16,1440" fill="none" stroke="black"/>
<path d="M 16,1504 L 16,1632" fill="none" stroke="black"/>
<path d="M 16,1696 L 16,1744" fill="none" stroke="black"/>
<path d="M 16,1808 L 16,1872" 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,800" fill="none" stroke="black"/>
<path d="M 168,864 L 168,960" fill="none" stroke="black"/>
<path d="M 168,1024 L 168,1072" fill="none" stroke="black"/>
<path d="M 168,1136 L 168,1200" fill="none" stroke="black"/>
<path d="M 168,1264 L 168,1312" fill="none" stroke="black"/>
<path d="M 168,1376 L 168,1440" fill="none" stroke="black"/>
<path d="M 168,1504 L 168,1632" fill="none" stroke="black"/>
<path d="M 168,1696 L 168,1744" fill="none" stroke="black"/>
<path d="M 168,1808 L 168,1872" 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,544" fill="none" stroke="black"/>
<path d="M 312,592 L 312,624" fill="none" stroke="black"/>
<path d="M 312,656 L 312,800" fill="none" stroke="black"/>
<path d="M 312,864 L 312,960" fill="none" stroke="black"/>
<path d="M 312,1024 L 312,1072" fill="none" stroke="black"/>
<path d="M 312,1136 L 312,1200" fill="none" stroke="black"/>
<path d="M 312,1264 L 312,1312" fill="none" stroke="black"/>
<path d="M 312,1376 L 312,1440" fill="none" stroke="black"/>
<path d="M 312,1504 L 312,1600" fill="none" stroke="black"/>
<path d="M 312,1696 L 312,1744" fill="none" stroke="black"/>
<path d="M 312,1808 L 312,1872" 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,664" fill="none" stroke="black"/>
<path d="M 456,784 L 456,800" fill="none" stroke="black"/>
<path d="M 456,864 L 456,960" fill="none" stroke="black"/>
<path d="M 456,1024 L 456,1072" fill="none" stroke="black"/>
<path d="M 456,1136 L 456,1200" fill="none" stroke="black"/>
<path d="M 456,1264 L 456,1312" fill="none" stroke="black"/>
<path d="M 456,1376 L 456,1440" fill="none" stroke="black"/>
<path d="M 456,1504 L 456,1544" fill="none" stroke="black"/>
<path d="M 456,1600 L 456,1632" fill="none" stroke="black"/>
<path d="M 456,1696 L 456,1744" fill="none" stroke="black"/>
<path d="M 456,1808 L 456,1872" 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,704" fill="none" stroke="black"/>
<path d="M 560,752 L 560,800" fill="none" stroke="black"/>
<path d="M 560,864 L 560,960" fill="none" stroke="black"/>
<path d="M 560,1024 L 560,1072" fill="none" stroke="black"/>
<path d="M 560,1136 L 560,1200" fill="none" stroke="black"/>
<path d="M 560,1264 L 560,1312" fill="none" stroke="black"/>
<path d="M 560,1376 L 560,1440" fill="none" stroke="black"/>
<path d="M 560,1504 L 560,1632" fill="none" stroke="black"/>
<path d="M 560,1696 L 560,1744" fill="none" stroke="black"/>
<path d="M 560,1808 L 560,1872" 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,608 L 224,608" fill="none" stroke="black"/>
<path d="M 256,608 L 304,608" fill="none" stroke="black"/>
<path d="M 320,672 L 416,672" fill="none" stroke="black"/>
<path d="M 456,672 L 552,672" fill="none" stroke="black"/>
<path d="M 320,688 L 424,688" fill="none" stroke="black"/>
<path d="M 456,688 L 552,688" fill="none" stroke="black"/>
<path d="M 320,768 L 408,768" fill="none" stroke="black"/>
<path d="M 472,768 L 552,768" fill="none" stroke="black"/>
<path d="M 176,784 L 208,784" fill="none" stroke="black"/>
<path d="M 280,784 L 304,784" fill="none" stroke="black"/>
<path d="M 176,880 L 216,880" fill="none" stroke="black"/>
<path d="M 256,880 L 304,880" fill="none" stroke="black"/>
<path d="M 176,896 L 224,896" fill="none" stroke="black"/>
<path d="M 256,896 L 304,896" fill="none" stroke="black"/>
<path d="M 320,912 L 344,912" fill="none" stroke="black"/>
<path d="M 424,912 L 448,912" fill="none" stroke="black"/>
<path d="M 320,928 L 336,928" fill="none" stroke="black"/>
<path d="M 176,944 L 192,944" fill="none" stroke="black"/>
<path d="M 288,944 L 304,944" fill="none" stroke="black"/>
<path d="M 176,1040 L 216,1040" fill="none" stroke="black"/>
<path d="M 256,1040 L 304,1040" fill="none" stroke="black"/>
<path d="M 176,1056 L 208,1056" fill="none" stroke="black"/>
<path d="M 272,1056 L 304,1056" fill="none" stroke="black"/>
<path d="M 24,1152 L 56,1152" fill="none" stroke="black"/>
<path d="M 128,1152 L 160,1152" fill="none" stroke="black"/>
<path d="M 24,1168 L 64,1168" fill="none" stroke="black"/>
<path d="M 136,1168 L 160,1168" fill="none" stroke="black"/>
<path d="M 24,1184 L 64,1184" fill="none" stroke="black"/>
<path d="M 128,1184 L 160,1184" fill="none" stroke="black"/>
<path d="M 24,1280 L 56,1280" fill="none" stroke="black"/>
<path d="M 128,1280 L 160,1280" fill="none" stroke="black"/>
<path d="M 24,1296 L 64,1296" fill="none" stroke="black"/>
<path d="M 128,1296 L 160,1296" fill="none" stroke="black"/>
<path d="M 24,1392 L 56,1392" fill="none" stroke="black"/>
<path d="M 128,1392 L 160,1392" fill="none" stroke="black"/>
<path d="M 24,1408 L 48,1408" fill="none" stroke="black"/>
<path d="M 144,1408 L 160,1408" fill="none" stroke="black"/>
<path d="M 24,1424 L 56,1424" fill="none" stroke="black"/>
<path d="M 120,1424 L 160,1424" fill="none" stroke="black"/>
<path d="M 176,1520 L 216,1520" fill="none" stroke="black"/>
<path d="M 256,1520 L 304,1520" fill="none" stroke="black"/>
<path d="M 176,1536 L 208,1536" fill="none" stroke="black"/>
<path d="M 272,1536 L 304,1536" fill="none" stroke="black"/>
<path d="M 320,1552 L 416,1552" fill="none" stroke="black"/>
<path d="M 456,1552 L 552,1552" fill="none" stroke="black"/>
<path d="M 320,1568 L 352,1568" fill="none" stroke="black"/>
<path d="M 520,1568 L 552,1568" fill="none" stroke="black"/>
<path d="M 320,1584 L 368,1584" fill="none" stroke="black"/>
<path d="M 504,1584 L 552,1584" fill="none" stroke="black"/>
<path d="M 176,1712 L 216,1712" fill="none" stroke="black"/>
<path d="M 256,1712 L 304,1712" fill="none" stroke="black"/>
<path d="M 176,1728 L 208,1728" fill="none" stroke="black"/>
<path d="M 272,1728 L 304,1728" fill="none" stroke="black"/>
<path d="M 24,1824 L 56,1824" fill="none" stroke="black"/>
<path d="M 128,1824 L 160,1824" fill="none" stroke="black"/>
<path d="M 24,1840 L 64,1840" fill="none" stroke="black"/>
<path d="M 128,1840 L 160,1840" fill="none" stroke="black"/>
<path d="M 24,1856 L 64,1856" fill="none" stroke="black"/>
<path d="M 128,1856 L 160,1856" fill="none" stroke="black"/>
<polygon class="arrowhead" points="560,1568 548,1562.4 548,1573.6" fill="black" transform="rotate(0,552,1568)"/>
<polygon class="arrowhead" points="560,1552 548,1546.4 548,1557.6" fill="black" transform="rotate(0,552,1552)"/>
<polygon class="arrowhead" points="560,688 548,682.4 548,693.6" fill="black" transform="rotate(0,552,688)"/>
<polygon class="arrowhead" points="560,672 548,666.4 548,677.6" fill="black" transform="rotate(0,552,672)"/>
<polygon class="arrowhead" points="456,912 444,906.4 444,917.6" fill="black" transform="rotate(0,448,912)"/>
<polygon class="arrowhead" points="328,1584 316,1578.4 316,1589.6" fill="black" transform="rotate(180,320,1584)"/>
<polygon class="arrowhead" points="328,1552 316,1546.4 316,1557.6" fill="black" transform="rotate(180,320,1552)"/>
<polygon class="arrowhead" points="328,928 316,922.4 316,933.6" fill="black" transform="rotate(180,320,928)"/>
<polygon class="arrowhead" points="328,768 316,762.4 316,773.6" fill="black" transform="rotate(180,320,768)"/>
<polygon class="arrowhead" points="328,672 316,666.4 316,677.6" fill="black" transform="rotate(180,320,672)"/>
<polygon class="arrowhead" points="312,1728 300,1722.4 300,1733.6" fill="black" transform="rotate(0,304,1728)"/>
<polygon class="arrowhead" points="312,1712 300,1706.4 300,1717.6" fill="black" transform="rotate(0,304,1712)"/>
<polygon class="arrowhead" points="312,1536 300,1530.4 300,1541.6" fill="black" transform="rotate(0,304,1536)"/>
<polygon class="arrowhead" points="312,1520 300,1514.4 300,1525.6" fill="black" transform="rotate(0,304,1520)"/>
<polygon class="arrowhead" points="312,1040 300,1034.4 300,1045.6" fill="black" transform="rotate(0,304,1040)"/>
<polygon class="arrowhead" points="312,896 300,890.4 300,901.6" fill="black" transform="rotate(0,304,896)"/>
<polygon class="arrowhead" points="312,880 300,874.4 300,885.6" fill="black" transform="rotate(0,304,880)"/>
<polygon class="arrowhead" points="312,608 300,602.4 300,613.6" fill="black" transform="rotate(0,304,608)"/>
<polygon class="arrowhead" points="312,528 300,522.4 300,533.6" fill="black" transform="rotate(0,304,528)"/>
<polygon class="arrowhead" points="184,1712 172,1706.4 172,1717.6" fill="black" transform="rotate(180,176,1712)"/>
<polygon class="arrowhead" points="184,1520 172,1514.4 172,1525.6" fill="black" transform="rotate(180,176,1520)"/>
<polygon class="arrowhead" points="184,1056 172,1050.4 172,1061.6" fill="black" transform="rotate(180,176,1056)"/>
<polygon class="arrowhead" points="184,1040 172,1034.4 172,1045.6" fill="black" transform="rotate(180,176,1040)"/>
<polygon class="arrowhead" points="184,944 172,938.4 172,949.6" fill="black" transform="rotate(180,176,944)"/>
<polygon class="arrowhead" points="184,880 172,874.4 172,885.6" fill="black" transform="rotate(180,176,880)"/>
<polygon class="arrowhead" points="184,784 172,778.4 172,789.6" fill="black" transform="rotate(180,176,784)"/>
<polygon class="arrowhead" points="184,528 172,522.4 172,533.6" fill="black" transform="rotate(180,176,528)"/>
<polygon class="arrowhead" points="168,1856 156,1850.4 156,1861.6" fill="black" transform="rotate(0,160,1856)"/>
<polygon class="arrowhead" points="168,1824 156,1818.4 156,1829.6" fill="black" transform="rotate(0,160,1824)"/>
<polygon class="arrowhead" points="168,1424 156,1418.4 156,1429.6" fill="black" transform="rotate(0,160,1424)"/>
<polygon class="arrowhead" points="168,1392 156,1386.4 156,1397.6" fill="black" transform="rotate(0,160,1392)"/>
<polygon class="arrowhead" points="168,1280 156,1274.4 156,1285.6" fill="black" transform="rotate(0,160,1280)"/>
<polygon class="arrowhead" points="168,1184 156,1178.4 156,1189.6" fill="black" transform="rotate(0,160,1184)"/>
<polygon class="arrowhead" points="168,1152 156,1146.4 156,1157.6" fill="black" transform="rotate(0,160,1152)"/>
<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,1840 20,1834.4 20,1845.6" fill="black" transform="rotate(180,24,1840)"/>
<polygon class="arrowhead" points="32,1824 20,1818.4 20,1829.6" fill="black" transform="rotate(180,24,1824)"/>
<polygon class="arrowhead" points="32,1408 20,1402.4 20,1413.6" fill="black" transform="rotate(180,24,1408)"/>
<polygon class="arrowhead" points="32,1392 20,1386.4 20,1397.6" fill="black" transform="rotate(180,24,1392)"/>
<polygon class="arrowhead" points="32,1296 20,1290.4 20,1301.6" fill="black" transform="rotate(180,24,1296)"/>
<polygon class="arrowhead" points="32,1280 20,1274.4 20,1285.6" fill="black" transform="rotate(180,24,1280)"/>
<polygon class="arrowhead" points="32,1168 20,1162.4 20,1173.6" fill="black" transform="rotate(180,24,1168)"/>
<polygon class="arrowhead" points="32,1152 20,1146.4 20,1157.6" fill="black" transform="rotate(180,24,1152)"/>
<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="432" y="52">Key</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">Infra.</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="332" y="484">MASA</text>
<text x="404" 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="564">[Registrar-Agent</text>
<text x="308" y="580">authenticated&amp;authorized?]</text>
<text x="240" y="612">PVR</text>
<text x="280" y="644">[accept</text>
<text x="348" y="644">device?]</text>
<text x="436" y="676">mTLS</text>
<text x="440" y="692">RVR</text>
<text x="456" y="708">~</text>
<text x="460" y="724">[extract</text>
<text x="536" y="724">DomainID]</text>
<text x="456" y="740">[update</text>
<text x="532" y="740">audit-log]</text>
<text x="456" y="756">~</text>
<text x="440" y="772">Voucher</text>
<text x="244" y="788">Voucher'</text>
<text x="16" y="820">~</text>
<text x="168" y="820">~</text>
<text x="312" y="820">~</text>
<text x="456" y="820">~</text>
<text x="560" y="820">~</text>
<text x="16" y="836">(4)</text>
<text x="60" y="836">Supply</text>
<text x="104" y="836">PER</text>
<text x="132" y="836">to</text>
<text x="184" y="836">Registrar</text>
<text x="268" y="836">(including</text>
<text x="328" y="836">Key</text>
<text x="404" y="836">Infrastructure</text>
<text x="516" y="836">interaction)</text>
<text x="16" y="852">~</text>
<text x="168" y="852">~</text>
<text x="312" y="852">~</text>
<text x="456" y="852">~</text>
<text x="560" y="852">~</text>
<text x="236" y="884">mTLS</text>
<text x="240" y="900">PER</text>
<text x="384" y="916">[Request]</text>
<text x="396" y="932">[Certificate]-</text>
<text x="240" y="948">Enroll-Resp</text>
<text x="16" y="980">~</text>
<text x="168" y="980">~</text>
<text x="312" y="980">~</text>
<text x="456" y="980">~</text>
<text x="560" y="980">~</text>
<text x="16" y="996">(5)</text>
<text x="60" y="996">Obtain</text>
<text x="100" y="996">CA</text>
<text x="164" y="996">Certificates</text>
<text x="16" y="1012">~</text>
<text x="168" y="1012">~</text>
<text x="312" y="1012">~</text>
<text x="456" y="1012">~</text>
<text x="560" y="1012">~</text>
<text x="236" y="1044">mTLS</text>
<text x="240" y="1060">caCerts</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="16" y="1108">(6)</text>
<text x="60" y="1108">Supply</text>
<text x="120" y="1108">Voucher</text>
<text x="164" y="1108">to</text>
<text x="204" y="1108">Pledge</text>
<text x="16" y="1124">~</text>
<text x="168" y="1124">~</text>
<text x="312" y="1124">~</text>
<text x="456" y="1124">~</text>
<text x="560" y="1124">~</text>
<text x="76" y="1156">opt.</text>
<text x="112" y="1156">TLS</text>
<text x="100" y="1172">Voucher'</text>
<text x="96" y="1188">vStatus</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="16" y="1236">(7)</text>
<text x="60" y="1236">Supply</text>
<text x="100" y="1236">CA</text>
<text x="164" y="1236">Certificates</text>
<text x="228" y="1236">to</text>
<text x="268" y="1236">Pledge</text>
<text x="16" y="1252">~</text>
<text x="168" y="1252">~</text>
<text x="312" y="1252">~</text>
<text x="456" y="1252">~</text>
<text x="560" y="1252">~</text>
<text x="76" y="1284">opt.</text>
<text x="112" y="1284">TLS</text>
<text x="96" y="1300">caCerts</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="16" y="1348">(8)</text>
<text x="60" y="1348">Supply</text>
<text x="152" y="1348">Enroll-Response</text>
<text x="228" y="1348">to</text>
<text x="268" y="1348">Pledge</text>
<text x="16" y="1364">~</text>
<text x="168" y="1364">~</text>
<text x="312" y="1364">~</text>
<text x="456" y="1364">~</text>
<text x="560" y="1364">~</text>
<text x="76" y="1396">opt.</text>
<text x="112" y="1396">TLS</text>
<text x="96" y="1412">Enroll-Resp</text>
<text x="88" y="1428">eStatus</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="16" y="1476">(9)</text>
<text x="64" y="1476">Voucher</text>
<text x="124" y="1476">Status</text>
<text x="192" y="1476">Telemetry</text>
<text x="276" y="1476">(including</text>
<text x="352" y="1476">backend</text>
<text x="436" y="1476">interaction)</text>
<text x="16" y="1492">~</text>
<text x="168" y="1492">~</text>
<text x="312" y="1492">~</text>
<text x="456" y="1492">~</text>
<text x="560" y="1492">~</text>
<text x="236" y="1524">mTLS</text>
<text x="240" y="1540">vStatus</text>
<text x="436" y="1556">mTLS</text>
<text x="368" y="1572">req</text>
<text x="412" y="1572">device</text>
<text x="480" y="1572">audit-log</text>
<text x="396" y="1588">device</text>
<text x="464" y="1588">audit-log</text>
<text x="264" y="1620">[verify</text>
<text x="340" y="1620">audit-log]</text>
<text x="312" y="1636">|</text>
<text x="16" y="1652">~</text>
<text x="168" y="1652">~</text>
<text x="312" y="1652">~</text>
<text x="456" y="1652">~</text>
<text x="560" y="1652">~</text>
<text x="20" y="1668">(10)</text>
<text x="68" y="1668">Enroll</text>
<text x="124" y="1668">Status</text>
<text x="192" y="1668">Telemetry</text>
<text x="16" y="1684">~</text>
<text x="168" y="1684">~</text>
<text x="312" y="1684">~</text>
<text x="456" y="1684">~</text>
<text x="560" y="1684">~</text>
<text x="236" y="1716">mTLS</text>
<text x="240" y="1732">eStatus</text>
<text x="16" y="1764">~</text>
<text x="168" y="1764">~</text>
<text x="312" y="1764">~</text>
<text x="456" y="1764">~</text>
<text x="560" y="1764">~</text>
<text x="20" y="1780">(11)</text>
<text x="64" y="1780">Query</text>
<text x="116" y="1780">Pledge</text>
<text x="172" y="1780">Status</text>
<text x="16" y="1796">~</text>
<text x="168" y="1796">~</text>
<text x="312" y="1796">~</text>
<text x="456" y="1796">~</text>
<text x="560" y="1796">~</text>
<text x="76" y="1828">opt.</text>
<text x="112" y="1828">TLS</text>
<text x="96" y="1844">tStatus</text>
<text x="96" y="1860">pStatus</text>
<text x="16" y="1892">~</text>
<text x="168" y="1892">~</text>
<text x="312" y="1892">~</text>
<text x="456" y="1892">~</text>
<text x="560" y="1892">~</text>
</g>
</svg>
</artwork><artwork  type="ascii-art" align="center"><![CDATA[
+--------+    +------------+    +-----------+    +--------+    +------+
| Pledge |    | Registrar- |    |  Domain   |    |  Key   |    | MASA |
|        |    |   Agent    |    | Registrar |    | Infra. |    |      |
+--------+    +------------+    +-----------+    +--------+    +------+
 |                  |                 |                 |   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 MASA interaction)
 ~                  ~                 ~                 ~            ~
 |                  |                 |                 |            |
 |                  |<-----mTLS------>|                 |            |
 |                  |                 |                 |            |
 |                  |         [Registrar-Agent          |            |
 |                  |    authenticated&authorized?]     |            |
 |                  |                 |                 |            |
 |                  |-------PVR------>|                 |            |
 |                  |                 |                 |            |
 |                  |          [accept device?]         |            |
 |                  |                 |                 |            |
 |                  |                 |<------------mTLS------------>|
 |                  |                 |--------------RVR------------>|
 |                  |                 |                 ~            |
 |                  |                 |              [extract DomainID]
 |                  |                 |              [update audit-log]
 |                  |                 |                 ~            |
 |                  |                 |<-----------Voucher-----------|
 |                  |<----Voucher''---|                 |            |
 |                  |                 |                 |            |
 ~                  ~                 ~                 ~            ~
(4) Supply PER to Registrar (including Key Infrastructure interaction)
 ~                  ~                 ~                 ~            ~
 |                  |                 |                 |            |
 |                  |<---((mTLS))---->|                 |            |
 |                  |-------PER------>|                 |            |
 |                  |                 |----[Request]--->|            |
 |                  |                 |<--[Certificate]-|            |
 |                  |<--Enroll-Resp---|                 |            |
 |                  |                 |                 |            |
 ~                  ~                 ~                 ~            ~
(5) Obtain CA Certificates
 ~                  ~                 ~                 ~            ~
 |                  |                 |                 |            |
 |                  |<----(mTLS)----->|                 |            |
 |                  |<----caCerts-----|                 |            |
 |                  |                 |                 |            |
 ~                  ~                 ~                 ~            ~
(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_artifact"/>, 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="obtain_cacerts"/> describes the retrieval 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 CA certificate exchange initiated by the Registrar-Agent to the pledge.</t>
  <t><xref target="enroll_response"/> describes the Enroll-Response exchange initiated by the Registrar-Agent to the pledge (containing a new pledge EE certificate) 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>The Registrar-Agent <bcp14>MUST</bcp14> begin the sequence of exchanges by sending the Pledge Voucher-Request Trigger (tPVR).
This assumes that the Registrar-Agent has already discovered the pledge, for instance as described in <xref target="discovery_uc2_ppa"/> 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="432" y="52">Key</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">Infra.</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   |    |  Key   |    | MASA |
|        |    |   Agent    |    | Registrar |    | Infra. |    |      |
+--------+    +------------+    +-----------+    +--------+    +------+
 |                  |                 |                 |   Internet |
 ~                  ~                 ~                 ~            ~
(1) Trigger Pledge Voucher-Request
 ~                  ~                 ~                 ~            ~
 |                  |                 |                 |            |
 |<----opt. TLS---->|                 |                 |            |
 |<------tPVR-------|                 |                 |            |
 |--------PVR------>|                 |                 |            |
 |                  |                 |                 |            |
 ~                  ~                 ~                 ~            ~
]]></artwork></artset></figure>

<t>The Registrar-Agent <bcp14>SHALL</bcp14> trigger the pledge to create a PVR via HTTP(S) POST to the pledge endpoint at <spanx style="verb">/.well-known/brski/tpvr</spanx>.
The request body <bcp14>MUST</bcp14> contain the JSON-based Pledge Voucher-Request Trigger (tPVR) artifact as defined in <xref target="tpvr_artifact"/>.
In the request header, the Content-Type field <bcp14>MUST</bcp14> be set to <spanx style="verb">application/json</spanx> and the Accept field <bcp14>SHOULD</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>Upon receiving a valid tPVR, the pledge <bcp14>MUST</bcp14> reply with the PVR artifact as defined in <xref target="pvr_artifact"/> in the body of an HTTP 200 OK response.
In the response header, the Content-Type field <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>Note that the pledge provisionally accepts the registrar EE certificate contained in the tPVR until it receives the voucher (see <xref target="agt_prx"/>).</t>

<t>If the pledge is unable to create the PVR, it <bcp14>SHOULD</bcp14> respond with an HTTP error status code to the Registrar-Agent.
The following client error status codes <bcp14>SHOULD</bcp14> be used:</t>

<t><list style="symbols">
  <t>400 Bad Request: if the pledge detects 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 Content-Type request header field 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/voucher-jws+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>

<t>The pledge <bcp14>MAY</bcp14> use the response body to signal success/failure details to the service technician operating the Registrar-Agent.</t>

<section anchor="tpvr_artifact"><name>Request Artifact: Pledge Voucher-Request Trigger (tPVR)</name>

<t>The Pledge Voucher-Request Trigger (tPVR) artifact <bcp14>SHALL</bcp14> be an unsigned data object, providing the necessary parameters for generating the Pledge Voucher-Request (PVR) artifact such that the Agent Proximity Assertion can be verified by registrar and MASA:
the registrar EE certificate and an agent-signed data object containing the product-serial-number and a timestamp.
The artifact is unsigned because at the time of receiving the tPVR, the pledge could not verify any signature.</t>

<t>For the JSON-based format used by this specification, the tPVR artifact <bcp14>SHALL</bcp14> be a UTF-8 encoded JSON document <xref target="RFC8259"/> that conforms with the CDDL <xref target="RFC8610"/> data model defined in <xref target="tpvr_CDDL_def"/>:</t>

<figure title="CDDL for Pledge Voucher-Request Trigger (pledgevoucherrequesttrigger)" 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 <spanx style="verb">agent-provided-proximity-registrar-cert</spanx> member <bcp14>SHALL</bcp14> contain the base64-encoded registrar EE certificate in X.509 v3 (DER) format.
The <spanx style="verb">agent-signed-data</spanx> member <bcp14>SHALL</bcp14> contain the base64-encoded JWS Agent-Signed Data as defined in <xref target="jws-asd"/>.
<xref target="tpvr_example"/> summarizes the serialization the JSON tPVR artifact:</t>

<figure title="tPVR Representation in JSON" anchor="tpvr_example"><artwork align="left"><![CDATA[
{
  "agent-provided-proximity-registrar-cert": "base64encodedvalue==",
  "agent-signed-data": BASE64(UTF8(JWS Agent-Signed Data))
}
]]></artwork></figure>

<section anchor="jws-asd"><name>JWS Agent-Signed Data</name>

<t>To enable alternative formats, the YANG module in <xref target="I-D.ietf-anima-rfc8366bis"/> defines the leaf <spanx style="verb">agent-signed-data</spanx> as binary.
For the JWS-signed JSON format used by this specification, the <spanx style="verb">agent-signed-data</spanx> leaf <bcp14>SHALL</bcp14> be a UTF-8 encoded JWS structure in "General JWS JSON Serialization Syntax" as defined in <xref section="7.2.1" sectionFormat="of" target="RFC7515"/> signing the JSON Agent-Signed Data defined in <xref target="prm-asd"/>.
<xref target="asd_representation"/> summarizes this JWS structure for the <spanx style="verb">agent-signed-data</spanx> member of the tPVR artifact:</t>

<figure title="JWS Agent-Signed Data in General JWS JSON Serialization Syntax" anchor="asd_representation"><artwork align="left"><![CDATA[
{
  "payload": BASE64URL(UTF8(JSON Agent-Signed Data)),
  "signatures": [
    {
      "protected": BASE64URL(UTF8(JWS Protected Header)),
      "signature": BASE64URL(JWS Signature)
    }
  ]
}
]]></artwork></figure>

<t>The JSON Agent-Signed Data <bcp14>MUST</bcp14> be UTF-8 encoded to become the octet-based JWS Payload defined in <xref target="RFC7515"/>.
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"/>.
The octets of the UTF-8 representation of the JWS Protected Header are base64url-encoded to become the string value of the <spanx style="verb">protected</spanx> member.
The generated JWS Signature is base64url-encoded to become the string value of the <spanx style="verb">signature</spanx> member.</t>

<section anchor="prm-asd"><name>JSON Agent-Signed Data</name>

<t>The JSON Agent-Signed Data <bcp14>SHALL</bcp14> be a JSON document <xref target="RFC8259"/> that <bcp14>MUST</bcp14> conform with the CDDL <xref target="RFC8610"/> data model defined in <xref target="prmasd_CDDL_def"/>:</t>

<figure title="CDDL for JSON Agent-Signed Data (prmasd)" anchor="prmasd_CDDL_def"><artwork type="cddl" align="left"><![CDATA[
  prmasd = {
    "created-on": tdate,
    "serial-number": text
  }
]]></artwork></figure>

<t>The <spanx style="verb">created-on</spanx> member <bcp14>SHALL</bcp14> contain the current date and time at tPVR creation as standard date/time string as defined in <xref section="5.6" sectionFormat="of" target="RFC3339"/>.</t>

<t>The <spanx style="verb">serial-number</spanx> member <bcp14>SHALL</bcp14> contain the product-serial-number of the pledge with which the Registrar-Agent assumes to communicate as string.
The format <bcp14>MUST</bcp14> correspond to the X520SerialNumber field of IDevID certificates.</t>

<t><xref target="prmasd_payload"/> below shows an example for the JSON Agent-Signed Data:</t>

<figure title="JSON Agent-Signed Data Example" anchor="prmasd_payload"><artwork type="json" align="left"><![CDATA[
{
  "created-on": "2021-04-16T00:00:01.000Z",
  "serial-number": "vendor-pledge4711"
}
]]></artwork></figure>

</section>
<section anchor="jws-protected-header"><name>JWS Protected Header</name>

<t>The JWS Protected Header of the <spanx style="verb">agent-signed-data</spanx> member <bcp14>MUST</bcp14> contain the following standard Header Parameters as defined in <xref target="RFC7515"/>:</t>

<t><list style="symbols">
  <t><spanx style="verb">alg</spanx>: <bcp14>SHALL</bcp14> contain the 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>: <bcp14>SHALL</bcp14> contain the base64-encoded OCTET STRING value of the SubjectKeyIdentifier of the Registrar-Agent EE certificate as described in <xref target="agent_component"/></t>
</list></t>

<t><xref target="asd_header"/> below shows an example for this JWS Protected Header:</t>

<figure title="JWS Protected Header Example for " anchor="asd_header"><artwork align="left"><![CDATA[
{
  "alg": "ES256",
  "kid": "base64encodedvalue=="
}
]]></artwork></figure>

</section>
<section anchor="jws-signature"><name>JWS Signature</name>

<t>The Registrar-Agent <bcp14>MUST</bcp14> sign the <spanx style="verb">agent-signed-data</spanx> member using its EE credentials.
The JWS Signature is generated over the JWS Protected Header and the JWS Payload as described in <xref section="5.1" sectionFormat="of" target="RFC7515"/>.</t>

</section>
</section>
</section>
<section anchor="pvr_artifact"><name>Response Artifact: Pledge Voucher-Request (PVR)</name>

<t>The Pledge Voucher-Request (PVR) artifact <bcp14>SHALL</bcp14> be an authenticated self-contained object signed by the pledge, containing an extended Voucher-Request artifact based on <xref section="5.2" sectionFormat="of" target="RFC8995"/>.
The BRSKI-PRM related enhancements of the <spanx style="verb">ietf-voucher-request</spanx> YANG module are defined in <xref target="I-D.ietf-anima-rfc8366bis"/>.</t>

<t>For the JWS-signed JSON format used by this specification, the PVR artifact <bcp14>MUST</bcp14> be a JWS Voucher structure as defined in <xref target="I-D.ietf-anima-jws-voucher"/>, which <bcp14>MUST</bcp14> contain the JSON PVR Data defined in <xref target="pvr_data"/> in the JWS Payload.
<xref target="pvr_representation"/> summarizes the serialization of the JWS-signed JSON PVR artifact:</t>

<figure title="PVR Representation in General JWS JSON Serialization Syntax" anchor="pvr_representation"><artwork align="left"><![CDATA[
{
  "payload": BASE64URL(UTF8(JSON PVR Data)),
  "signatures": [
    {
      "protected": BASE64URL(UTF8(JWS Protected Header)),
      "signature": BASE64URL(JWS Signature)
    }
  ]
}
]]></artwork></figure>

<section anchor="pvr_data"><name>JSON PVR Data</name>

<t>The JSON PVR Data <bcp14>MUST</bcp14> contain the following fields of the <spanx style="verb">ietf-voucher-request</spanx> YANG module as defined in <xref target="I-D.ietf-anima-rfc8366bis"/>;
note that this makes optional leaves in the YANG definition mandatory for the PVR artifact:</t>

<t><list style="symbols">
  <t><spanx style="verb">created-on</spanx>: <bcp14>SHALL</bcp14> contain the current date and time at PVR creation as standard date/time string as defined in <xref section="5.6" sectionFormat="of" target="RFC3339"/>;
if the pledge does not have synchronized time, it <bcp14>SHALL</bcp14> use the <spanx style="verb">created-on</spanx> value from the JSON Agent-Signed Data received with the tPVR artifact and <bcp14>SHOULD</bcp14> advance that value based on its local clock to reflect the PVR creation time</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 product-serial-number in the X520SerialNumber field of the pledge IDevID certificate as string as defined in <xref section="2.3.1" sectionFormat="of" target="RFC8995"/></t>
  <t><spanx style="verb">assertion</spanx>: <bcp14>SHALL</bcp14> contain the assertion type <spanx style="verb">agent-proximity</spanx> to indicate the pledge request (different from BRSKI <xref target="RFC8995"/>)</t>
  <t><spanx style="verb">agent-provided-proximity-registrar-cert</spanx>: <bcp14>SHALL</bcp14> contain the base64-encoded registrar EE certificate provided in the tPVR by the Registrar-Agent;
enables the registrar and MASA to verify the Agent Proximity Assertion</t>
  <t><spanx style="verb">agent-signed-data</spanx>: <bcp14>SHALL</bcp14> contain the same value as the <spanx style="verb">agent-signed-data</spanx> member in the tPVR provided by the Registrar-Agent;
enables the registrar and MASA to verify the Agent Proximity Assertion;
also enables the registrar to log which Registrar-Agent was in contact with the pledge</t>
</list></t>

<t><xref target="pvr_data_example"/> below shows an example for the JSON PVR Data:</t>

<figure title="JSON PVR Data Example" anchor="pvr_data_example"><artwork type="json" align="left"><![CDATA[
{
  "ietf-voucher-request:voucher": {
     "created-on": "2021-04-16T00:00:02.000Z",
     "nonce": "eDs++/FuDHGUnRxN3E14CQ==",
     "serial-number": "vendor-pledge4711",
     "assertion": "agent-proximity",
     "agent-provided-proximity-registrar-cert": "base64encodedvalue==",
     "agent-signed-data": "base64encodedvalue=="
  }
}
]]></artwork></figure>

</section>
<section anchor="jws-protected-header-1"><name>JWS Protected Header</name>

<t>The JWS Protected Header <bcp14>MUST</bcp14> follow the definitions of <xref section="3.3" sectionFormat="of" target="I-D.ietf-anima-jws-voucher"/>.
If the certificate chain is not included in the <spanx style="verb">x5c</spanx> Header Parameter, it <bcp14>MUST</bcp14> be available at the domain registrar for verification of the pledge IDevID certificate.</t>

</section>
<section anchor="jws-signature-1"><name>JWS Signature</name>

<t>The pledge <bcp14>MUST</bcp14> sign the PVR artifact using its IDevID credential following the definitions of <xref section="3.4" sectionFormat="of" target="I-D.ietf-anima-jws-voucher"/>.</t>

</section>
</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 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="432" y="52">Key</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">Infra.</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   |    |  Key   |    | MASA |
|        |    |   Agent    |    | Registrar |    | Infra. |    |      |
+--------+    +------------+    +-----------+    +--------+    +------+
 |                  |                 |                 |   Internet |
 ~                  ~                 ~                 ~            ~
(2) Trigger Pledge Enroll-Request
 ~                  ~                 ~                 ~            ~
 |                  |                 |                 |            |
 |<----opt. TLS---->|                 |                 |            |
 |<------tPER-------|                 |                 |            |
 |--------PER------>|                 |                 |            |
 |                  |                 |                 |            |
 ~                  ~                 ~                 ~            ~
]]></artwork></artset></figure>

<t>The Registrar-Agent <bcp14>SHALL</bcp14> trigger the pledge to create the PER via HTTP(S) POST to the pledge endpoint at <spanx style="verb">/.well-known/brski/tper</spanx>.
The request body <bcp14>MUST</bcp14> contain the JSON-based Pledge Enroll-Request Trigger (tPER) artifact as defined in <xref target="tper_artifact"/>.
In the request header, the Content-Type field <bcp14>MUST</bcp14> be set to <spanx style="verb">application/json</spanx> and the Accept field <bcp14>SHOULD</bcp14> be set to <spanx style="verb">application/jose+json</spanx>.</t>

<t>Upon receiving a valid tPER, the pledge <bcp14>MUST</bcp14> reply with the PER artifact as defined in <xref target="per_artifact"/> in the body of an HTTP 200 OK response.
In the response header, the Content-Type field <bcp14>MUST</bcp14> be 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 status code to the Registrar-Agent.
The following client error status codes <bcp14>MAY</bcp14> be used:</t>

<t><list style="symbols">
  <t>400 Bad Request: if the pledge detects 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, 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>

<t>The pledge <bcp14>MAY</bcp14> use the response body to signal success/failure details to the service technician operating the Registrar-Agent.</t>

<section anchor="tper_artifact"><name>Request Artifact: Pledge Enroll-Request Trigger (tPER)</name>

<t>The Pledge Enroll-Request Trigger (tPVR) artifact <bcp14>SHALL</bcp14> be an unsigned data object, providing enrollment parameters.
This document specifies only the basic parameter for a generic, device-related LDevID 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 Key Infrastructure.</t>

<t>The Pledge Enroll-Request Trigger (tPER) artifact <bcp14>MAY</bcp14> be used to provide additional enrollment parameters such as CSR attributes.
How to provide and use such additional data is out of scope for this specification.</t>

<t>For the JSON-based format used by this specification, the tPER artifact <bcp14>MUST</bcp14> be a UTF-8 encoded JSON document <xref target="RFC8259"/> that conforms with the CDDL <xref target="RFC8610"/> data model defined in <xref target="tper_CDDL_def"/>:</t>

<figure title="CDDL for Pledge Enroll-Request Trigger (pledgeenrollrequesttrigger)" anchor="tper_CDDL_def"><artwork type="cddl" align="left"><![CDATA[
pledgeenrollrequesttrigger = {
        "enroll-type": $enroll-type
}

$enroll-type /= "enroll-generic-cert"
]]></artwork></figure>

<t>The <spanx style="verb">enroll-type</spanx> member allows for specifying which type of certificate is to be enrolled.
As shown in <xref target="tper_CDDL_def"/>, BRSKI-PRM only defines the enumeration value <spanx style="verb">enroll-generic-cert</spanx> for the enrollment of the generic, device-related LDevID certificate.
Other specifications using this artifact may define further enum values, e.g., to bootstrap application-related EE certificates with additional CSR attributes.</t>

</section>
<section anchor="per_artifact"><name>Response Artifact: Pledge Enroll-Request (PER)</name>

<t>The Pledge Enroll-Request (PER) artifact <bcp14>SHALL</bcp14> be an authenticated self-contained object signed by the pledge, containing a PKCS#10 Certificate Signing Request (CSR) <xref target="RFC2986"/>.
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 of the pledge, POI is provided.</t>

<t>For the JWS-signed JSON format used by this specification, the PER artifact <bcp14>MUST</bcp14> use the "General JWS JSON Serialization Syntax" defined in <xref section="7.2.1" sectionFormat="of" target="RFC7515"/>, which <bcp14>MUST</bcp14> contain the JSON CSR Data defined in <xref target="per_data"/> in the JWS Payload.
<xref target="per_representation"/> summarizes the serialization of the JWS-signed JSON PER artifact:</t>

<figure title="PER Representation in General JWS JSON Serialization Syntax" anchor="per_representation"><artwork align="left"><![CDATA[
{
  "payload": BASE64URL(UTF8(JSON CSR Data)),
  "signatures": [
    {
      "protected": BASE64URL(UTF8(JWS Protected Header)),
      "signature": BASE64URL(JWS Signature)
    }
  ]
}
]]></artwork></figure>

<t>The JSON CSR Data <bcp14>MUST</bcp14> be UTF-8 encoded to become the octet-based JWS Payload defined in <xref target="RFC7515"/>.
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"/>.
The octets of the UTF-8 representation of the JWS Protected Header are base64url-encoded to become the string value of the <spanx style="verb">protected</spanx> member.
The generated JWS Signature is base64url-encoded to become the string value of the <spanx style="verb">signature</spanx> member.</t>

<section anchor="per_data"><name>JSON CSR Data</name>

<t>The JSON CSR Data <bcp14>SHALL</bcp14> be a JSON document <xref target="RFC8259"/> that <bcp14>MUST</bcp14> conform with the data model described by the <spanx style="verb">csr-grouping</spanx> of the <spanx style="verb">ietf-ztp-types</spanx> YANG module defined in <xref section="3.2" sectionFormat="of" target="I-D.ietf-netconf-sztp-csr"/> and <bcp14>MUST</bcp14> be encoded using the rules defined in <xref target="RFC7951"/>.
Note that <xref target="I-D.ietf-netconf-sztp-csr"/> also allows for inclusion of CSRs in different formats used by CMP and CMC.
For PKCS#10 CSRs as used in BRSKI and BRSKI-PRM, the <spanx style="verb">p10-csr</spanx> case of the <spanx style="verb">csr-grouping</spanx> <bcp14>MUST</bcp14> be used.</t>

<t><xref target="csr_example"/> below shows an example for the JSON CSR Data:</t>

<figure title="JSON CSR Data Example" anchor="csr_example"><artwork align="left"><![CDATA[
{
  "ietf-ztp-types": {
     "p10-csr": "base64encodedvalue=="
   }
}
]]></artwork></figure>

</section>
<section anchor="jws-protected-header-2"><name>JWS Protected Header</name>

<t>The JWS Protected Header of the PER artifact <bcp14>MUST</bcp14> contain the following standard Header Parameters as defined in <xref target="RFC7515"/>:</t>

<t><list style="symbols">
  <t><spanx style="verb">alg</spanx>: <bcp14>SHALL</bcp14> contain the 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>: <bcp14>SHALL</bcp14> contain the base64-encoded pledge EE certificate used to sign the PER artifact;
it <bcp14>SHOULD</bcp14> also contain the certificate chain for this certificate;
if the certificate chain is not included in the <spanx style="verb">x5c</spanx> Header Parameter, it <bcp14>MUST</bcp14> be available at the domain registrar for verification</t>
  <t><spanx style="verb">crit</spanx>: <bcp14>SHALL</bcp14> indicate the extension Header Parameter <spanx style="verb">created-on</spanx> to ensure that it must be understood and validated by the receiver as defined in <xref section="4.1.11" sectionFormat="of" target="RFC7515"/></t>
</list></t>

<t>In addition, the JWS Protected Header of the PER artifact <bcp14>MUST</bcp14> contain the following extension Header Parameter:</t>

<t><list style="symbols">
  <t><spanx style="verb">created-on</spanx>: <bcp14>SHALL</bcp14> contain the current date and time at PER creation as standard date/time string as defined in <xref section="5.6" sectionFormat="of" target="RFC3339"/>;
if the pledge does not have synchronized time, it <bcp14>SHALL</bcp14> use the <spanx style="verb">created-on</spanx> value from the JSON Agent-Signed Data received with the tPVR artifact and <bcp14>SHOULD</bcp14> advance that value based on its local clock to reflect the PER creation time</t>
</list></t>

<t>The new protected Header Parameter <spanx style="verb">created-on</spanx> is introduced to reflect freshness of the PER.
It allows the registrar to verify the timely correlation between the PER artifact and previous exchanges, i.e., <spanx style="verb">created-on</spanx> of PER &gt;= <spanx style="verb">created-on</spanx> of PVR &gt;= <spanx style="verb">created-on</spanx> of PVR trigger.
The registrar <bcp14>MAY</bcp14> consider to ignore any but the newest PER artifact 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><xref target="per_header"/> below shows an example for this JWS Protected Header:</t>

<figure title="JWS Protected Header Example within PER" anchor="per_header"><artwork align="left"><![CDATA[
{
  "alg": "ES256",
  "x5c": [
    "base64encodedvalue==",
    "base64encodedvalue=="
  ],
  "crit": ["created-on"],
  "created-on": "2022-09-13T00:00:02.000Z"
}
]]></artwork></figure>

</section>
<section anchor="jws-signature-2"><name>JWS Signature</name>

<t>The pledge <bcp14>MUST</bcp14> sign the PER artifact using its IDevID credential.
The JWS Signature is generated over the JWS Protected Header and the JWS Payload as described in <xref section="5.1" sectionFormat="of" target="RFC7515"/>.</t>

<t>While BRSKI-PRM targets the initial enrollment, re-enrollment can be supported in a similar way.
In this case, the pledge <bcp14>MAY</bcp14> use its current, potentially application-related EE credential instead of its IDevID credential to sign the PER artifact.
The issuing CA can associate the re-enrollment request with the pledge based on the previously issued and still valid EE certificate.
Note that a pledge that does not have synchronized time needs to advance the last known current date and time based on its local clock over a longer period, which also requires persisting the local clock advancements across reboots.</t>

</section>
</section>
</section>
<section anchor="pvr"><name>Supply PVR to Registrar (including MASA interaction)</name>

<t>Once the Registrar-Agent has acquired one or more PVR and PER object pairs, it starts the interaction with the domain registrar.
Collecting multiple pairs allows bulk bootstrapping of several pledges using the same session with the registrar.</t>

<t>The Registrar-Agent <bcp14>MUST</bcp14> establish a TLS session to the registrar with mutual authentication.
In contrast to BRSKI <xref target="RFC8995"/>, the TLS client authentication uses the Registrar-Agent EE certificate instead of the pledge IDevID certificate.
Consequently, the domain registrar can distinguish BRSKI (pledge-initiator-mode) from BRSKI-PRM (pledge-responder-mode).</t>

<t>The registrar <bcp14>SHOULD</bcp14> verify the TLS client authentication of the Registrar-Agent, in particular if the TLS session is used to obtain the Registrar-Agent EE certificate (see <xref target="registrar_component"/>).
Note that authentication and authorization is of the pledge verified during the TLS session based on the signatures inside the PVR artifact.</t>

<t>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><xref target="exchangesfig_uc2_3"/> shows 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="480" width="576" viewBox="0 0 576 480" 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,448" 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,448" 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,192" fill="none" stroke="black"/>
<path d="M 312,240 L 312,272" fill="none" stroke="black"/>
<path d="M 312,304 L 312,448" 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,312" fill="none" stroke="black"/>
<path d="M 456,432 L 456,448" 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,352" fill="none" stroke="black"/>
<path d="M 560,400 L 560,448" 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,256 L 224,256" fill="none" stroke="black"/>
<path d="M 256,256 L 304,256" fill="none" stroke="black"/>
<path d="M 320,320 L 416,320" fill="none" stroke="black"/>
<path d="M 456,320 L 552,320" fill="none" stroke="black"/>
<path d="M 320,336 L 424,336" fill="none" stroke="black"/>
<path d="M 456,336 L 552,336" fill="none" stroke="black"/>
<path d="M 320,416 L 408,416" fill="none" stroke="black"/>
<path d="M 472,416 L 552,416" fill="none" stroke="black"/>
<path d="M 176,432 L 208,432" fill="none" stroke="black"/>
<path d="M 280,432 L 304,432" fill="none" stroke="black"/>
<polygon class="arrowhead" points="560,336 548,330.4 548,341.6" fill="black" transform="rotate(0,552,336)"/>
<polygon class="arrowhead" points="560,320 548,314.4 548,325.6" fill="black" transform="rotate(0,552,320)"/>
<polygon class="arrowhead" points="328,416 316,410.4 316,421.6" fill="black" transform="rotate(180,320,416)"/>
<polygon class="arrowhead" points="328,320 316,314.4 316,325.6" fill="black" transform="rotate(180,320,320)"/>
<polygon class="arrowhead" points="312,256 300,250.4 300,261.6" fill="black" transform="rotate(0,304,256)"/>
<polygon class="arrowhead" points="312,176 300,170.4 300,181.6" fill="black" transform="rotate(0,304,176)"/>
<polygon class="arrowhead" points="184,432 172,426.4 172,437.6" fill="black" transform="rotate(180,176,432)"/>
<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="432" y="52">Key</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">Infra.</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="212">[Registrar-Agent</text>
<text x="308" y="228">authenticated&amp;authorized?]</text>
<text x="240" y="260">PVR</text>
<text x="280" y="292">[accept</text>
<text x="348" y="292">device?]</text>
<text x="436" y="324">mTLS</text>
<text x="440" y="340">RVR</text>
<text x="456" y="356">~</text>
<text x="460" y="372">[extract</text>
<text x="536" y="372">DomainID]</text>
<text x="456" y="388">[update</text>
<text x="532" y="388">audit-log]</text>
<text x="456" y="404">~</text>
<text x="440" y="420">Voucher</text>
<text x="244" y="436">Voucher'</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>
</g>
</svg>
</artwork><artwork  type="ascii-art" align="center"><![CDATA[
+--------+    +------------+    +-----------+    +--------+    +------+
| Pledge |    | Registrar- |    |  Domain   |    |  Key   |    | MASA |
|        |    |   Agent    |    | Registrar |    | Infra. |    |      |
+--------+    +------------+    +-----------+    +--------+    +------+
 |                  |                 |                 |   Internet |
 ~                  ~                 ~                 ~            ~
(3) Supply PVR to Registrar (including backend interaction)
 ~                  ~                 ~                 ~            ~
 |                  |                 |                 |            |
 |                  |<-----mTLS------>|                 |            |
 |                  |                 |                 |            |
 |                  |         [Registrar-Agent          |            |
 |                  |    authenticated&authorized?]     |            |
 |                  |                 |                 |            |
 |                  |-------PVR------>|                 |            |
 |                  |                 |                 |            |
 |                  |          [accept device?]         |            |
 |                  |                 |                 |            |
 |                  |                 |<------------mTLS------------>|
 |                  |                 |--------------RVR------------>|
 |                  |                 |                 ~            |
 |                  |                 |              [extract DomainID]
 |                  |                 |              [update audit-log]
 |                  |                 |                 ~            |
 |                  |                 |<-----------Voucher-----------|
 |                  |<----Voucher''---|                 |            |
 |                  |                 |                 |            |
 ~                  ~                 ~                 ~            ~
]]></artwork></artset></figure>

<t>As a first step of the interaction with the domain registrar, the Registrar-Agent <bcp14>SHALL</bcp14> supply the PVR artifact(s) to the registrar via HTTP-over-TLS POST to the registrar endpoint at <spanx style="verb">/.well-known/brski/requestvoucher</spanx>.
Note that this is the same endpoint as for BRSKI described in <xref section="5.2" sectionFormat="of" target="RFC8995"/>.
The request body <bcp14>MUST</bcp14> contain one previously acquired PVR artifact as defined in <xref target="pvr_artifact"/>.
In the request header, the Content-Type field <bcp14>MUST</bcp14> be set to <spanx style="verb">application/voucher-jws+json</spanx> and the Accept field <bcp14>SHOULD</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>Upon receiving a PVR artifact, the registrar accepts or declines the request to join the domain.
For this, it <bcp14>MUST</bcp14> perform pledge authorization as defined in <xref section="5.3" sectionFormat="of" target="RFC8995"/>.
Due to the Registrar-Agent in the middle, the registrar <bcp14>MUST</bcp14> verify in addition that</t>

<t><list style="symbols">
  <t>the <spanx style="verb">agent-provided-proximity-registrar-cert</spanx> field of the PVR contains a registrar EE certificate signed by the same domain owner as the registrar EE certificate used to sign the RVR;
note that this check allows for installations with multiple domain registrars and for registrar EE certificate renewal between exchanges with the Registrar-Agent (see <xref target="arch_nomadic"/>);
in many installations with a single registrar the contained certificate is identical to the signing certificate</t>
  <t>the <spanx style="verb">agent-signed-data</spanx> field of the PVR is signed with the private key corresponding to the Registrar-Agent EE certificate as known by the registrar (see <xref target="registrar_component"/>);
this is done via the SubjectKeyIdentifier of the certificate in the <spanx style="verb">kid</spanx> Header Parameter of the JWS Protected Header of the <spanx style="verb">agent-signed-data</spanx> field.</t>
  <t>the product-serial-number inside the <spanx style="verb">agent-signed-data</spanx> is equal to the <spanx style="verb">serial-number</spanx> field of the PVR as well as the X520SerialNumber field of the pledge IDevID certificate, which is contained in the JWS Protected Header of the PVR.</t>
  <t>the Registrar-Agent EE certificate is still valid;
this is necessary to avoid that a rogue Registrar-Agent generates <spanx style="verb">agent-signed-data</spanx> objects to onboard arbitrary pledges at a later point in time, see also <xref target="sec_cons_reg-agt"/>.</t>
</list></t>

<t>If the registrar is unable to process the request or validate the PVR, it <bcp14>MUST</bcp14> respond with an HTTP client error status code to the Registrar-Agent.
The following client error status codes <bcp14>SHOULD</bcp14> be used:</t>

<t><list style="symbols">
  <t>400 Bad Request: if the registrar detects an error in the format of the request</t>
  <t>403 Forbidden: if the registrar detected that one or more security related fields are not valid or if the pledge-provided information could not be used with automated allowance</t>
  <t>406 Not Acceptable: if the Accept request header field indicates a type that is unknown or unsupported</t>
  <t>415 Unsupported Media Type: if the Content-Type request header field indicates a type that is unknown or unsupported</t>
</list></t>

<t>Otherwise, the registrar converts the PVR artifact to an Registrar Voucher-Request (RVR) artifact (see <xref target="rvr_artifact"/>) and starts the backend interaction with the MASA.</t>

<t>Optionally, the domain registrar <bcp14>MAY</bcp14> respond with an HTTP 202 Accepted response status code to the Registrar-Agent at this point following <xref section="5.6" sectionFormat="of" target="RFC8995"/>, while the rules defined for the pledge also apply to the Registrar-Agent;
in this case, the registrar still continues with the MASA interaction to provide the Voucher artifact to the retry request.</t>

<t>The registrar <bcp14>MAY</bcp14> use the response body to signal success/failure details to the service technician operating the Registrar-Agent.</t>

<section anchor="masa_interaction"><name>MASA Interaction</name>

<t>The domain registrar <bcp14>MUST</bcp14> establish a TLS session with mutual authentication to the MASA of the pledge according to <xref section="5.4" sectionFormat="of" target="RFC8995"/>.
It requests the voucher from the MASA according to <xref section="5.5" sectionFormat="of" target="RFC8995"/> via HTTP-over-TLS POST to the MASA endpoint at <spanx style="verb">/.well-known/brski/requestvoucher</spanx>.
The request body <bcp14>MUST</bcp14> contain the RVR artifact as defined in <xref target="rvr_artifact"/>.
In the request header, the Content-Type field and the Accept field <bcp14>MUST</bcp14> be set to the same media type as the incoming PVR artifact.
For the default format used in this specification, this is <spanx style="verb">application/voucher-jws+json</spanx> as defined in <xref target="I-D.ietf-anima-jws-voucher"/>.</t>

<t>The assumption is that a pledge typically supports a single artifact format and creates the PVR in the supported format;
to ensure that the pledge is able to process the voucher, the registrar requests this format via the HTTP Accept header field when requesting the voucher.
Further, the RVR artifact and the PVR artifact inside should also use the same format to limit the number of required format encoders.
Note that BRSKI-PRM allows for alternative formats such as CMS-signed JSON as used in BRSKI <xref target="RFC8995"/> or COSE-signed CBOR for constrained environments, when defined by other specifications.
Overall, a MASA responsible for BRSKI-PRM capable pledges <bcp14>MUST</bcp14> support the same formats as supported by those pledges.</t>

<t>Once the MASA receives the RVR artifact, it <bcp14>MUST</bcp14> perform the verification as described in <xref section="5.5" sectionFormat="of" target="RFC8995"/>.
Depending on policy, the MASA <bcp14>MAY</bcp14> chose the type of assertion to perform.
For the Agent Proximity Assertion of BRSKI-PRM (see <xref target="agt_prx"/>), the MASA <bcp14>MUST</bcp14> skip the verification described in <xref section="5.5.5" sectionFormat="of" target="RFC8995"/> and instead <bcp14>MUST</bcp14> verify for the PVR contained in the <spanx style="verb">prior-signed-voucher-request</spanx> field of the RVR that</t>

<t><list style="symbols">
  <t>the <spanx style="verb">agent-provided-proximity-registrar-cert</spanx> field contains an EE certificate that signed by the same domain owner as the EE certificate/credentials used to sign the RVR;
note that this check allows for installations with multiple domain registrars and for registrar EE certificate renewal while PVRs are collected by the Registrar-Agent</t>
  <t>the registrar EE certificate in the <spanx style="verb">agent-provided-proximity-registrar-cert</spanx> field and the Registrar-Agent EE certificate in the <spanx style="verb">agent-sign-cert</spanx> field of the RVR are signed by the same domain owner.</t>
  <t>the <spanx style="verb">agent-signed-data</spanx> field is signed with the credentials corresponding to the Registrar-Agent EE certificate in the <spanx style="verb">agent-sign-cert</spanx> field of the RVR;
this is done via the SubjectKeyIdentifier of the certificate in the <spanx style="verb">kid</spanx> Header Parameter of the JWS Protected Header in the <spanx style="verb">agent-signed-data</spanx> field.</t>
  <t>the product-serial-number inside the <spanx style="verb">agent-signed-data</spanx> is equal to the <spanx style="verb">serial-number</spanx> field of PVR and the <spanx style="verb">serial-number</spanx> field of the RVR as well as the X520SerialNumber field of the pledge IDevID certificate, which is contained in the JWS Protected Header of the PVR.</t>
</list></t>

<t>If the <spanx style="verb">agent-sign-cert</spanx> field in the RVR is not set, the MASA <bcp14>MAY</bcp14> state a lower level assertion value instead of failing the verification, e.g., "logged" or "verified".</t>

<t>If the verification fails, the MASA <bcp14>SHOULD</bcp14> respond with an HTTP client error status code to the registrar.
The client error status codes are kept the same as defined in <xref section="5.6" sectionFormat="of" target="RFC8995"/>:</t>

<t><list style="symbols">
  <t>403 Forbidden: if the voucher-request is not signed correctly or is stale or if the pledge has another outstanding voucher that cannot be overridden</t>
  <t>404 Not Found: if the request is for a device that is not known to the MASA</t>
  <t>406 Not Acceptable: if a voucher of the desired type or that uses the desired algorithms (as indicated by the "Accept" header fields and algorithms used in the signature) cannot be issued as such because the MASA knows the pledge cannot process that type</t>
  <t>415 Unsupported Media Type: if the request uses an artifact format or Accept header value that is not supported by the MASA</t>
</list></t>

<t>Otherwise, the MASA creates a Voucher artifact as defined in <xref target="voucher_artifact"/> and updates the audit-log as described in <xref section="5.5" sectionFormat="of" target="RFC8995"/>.
The Voucher is then supplied to the registrar within the body of an HTTP 200 OK response according to <xref section="5.6" sectionFormat="of" target="RFC8995"/>.
In the response header, the Content-Type field <bcp14>MUST</bcp14> be set to the media type of the incoming RVR artifact.
For the default format used in this specification, this is <spanx style="verb">application/voucher-jws+json</spanx> as defined in <xref target="I-D.ietf-anima-jws-voucher"/>.</t>

</section>
<section anchor="supply-voucher-to-registrar-agent"><name>Supply Voucher to Registrar-Agent</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"/>.
It then countersigns the Voucher for delivery to the pledge via the Registrar-Agent.</t>

<t>The registrar <bcp14>MUST</bcp14> reply to the Registrar-Agent with the Registrar-Countersigned Voucher artifact (Voucher') as defined in <xref target="rcv_artifact"/> in the body of an HTTP 200 OK response.
In the response header, the Content-Type field <bcp14>MUST</bcp14> be set to the media type of the incoming PVR artifact.
For the default format used in this specification, this is <spanx style="verb">application/voucher-jws+json</spanx> as defined in <xref target="I-D.ietf-anima-jws-voucher"/>.</t>

<t>If the domain registrar is unable to return the Voucher, it <bcp14>MUST</bcp14> respond with an HTTP server error status code to the Registrar-Agent.
The following server error status codes <bcp14>SHOULD</bcp14> be used:</t>

<t><list style="symbols">
  <t>500 Internal Server Error: if both Registrar-Agent request and MASA response are valid, but the registrar still failed to return the Voucher, e.g., due to missing configuration or a program failure</t>
  <t>502 Bad Gateway: if the registrar received an invalid response from the MASA</t>
  <t>503 Service Unavailable: if a simple retry of the Registrar-Agent request might lead to a successful response;
this error response <bcp14>SHOULD</bcp14> include the <spanx style="verb">Retry-After</spanx> response header field with an appropriate value</t>
  <t>504 Gateway Timeout: if the backend request to the MASA timed out</t>
</list></t>

</section>
<section anchor="request-artifact-pledge-voucher-request-pvr"><name>Request Artifact: Pledge Voucher-Request (PVR)</name>

<t>Identical to the PVR artifact received from the pledge as defined in <xref target="pvr_artifact"/>.
The Registrar-Agent <bcp14>MUST NOT</bcp14> modify PVRs.</t>

</section>
<section anchor="rvr_artifact"><name>Backend Request Artifact: Registrar Voucher-Request (RVR)</name>

<t>The Registrar Voucher-Request (RVR) artifact <bcp14>SHALL</bcp14> be an extended Voucher-Request artifact based on <xref section="5.5" sectionFormat="of" target="RFC8995"/>.
The BRSKI-PRM related enhancements of the <spanx style="verb">ietf-voucher-request</spanx> YANG module are defined in <xref target="I-D.ietf-anima-rfc8366bis"/>.</t>

<t>For the JWS-signed JSON format used by this specification, the RVR artifact <bcp14>MUST</bcp14> be a JWS Voucher structure as defined in <xref target="I-D.ietf-anima-jws-voucher"/>, which <bcp14>MUST</bcp14> contain the JSON RVR Data defined in <xref target="rvr_data"/> in the JWS Payload.
<xref target="rvr_representation"/> summarizes the serialization of the JWS-signed JSON RVR artifact:</t>

<figure title="RVR Representation in General JWS JSON Serialization Syntax" anchor="rvr_representation"><artwork align="left"><![CDATA[
{
  "payload": BASE64URL(UTF8(JSON RVR Data)),
  "signatures": [
    {
      "protected": BASE64URL(UTF8(JWS Protected Header)),
      "signature": BASE64URL(JWS Signature)
    }
  ]
}
]]></artwork></figure>

<section anchor="rvr_data"><name>JSON RVR Data</name>

<t>The JSON RVR Data <bcp14>MUST</bcp14> contain the following fields of the <spanx style="verb">ietf-voucher-request</spanx> YANG module as defined in <xref target="I-D.ietf-anima-rfc8366bis"/>;
note that this makes optional leaves in the YANG definition mandatory for the RVR artifact:</t>

<t><list style="symbols">
  <t><spanx style="verb">created-on</spanx>: <bcp14>SHALL</bcp14> contain the current date and time at RVR creation as standard date/time string as defined in <xref section="5.6" sectionFormat="of" target="RFC3339"/></t>
  <t><spanx style="verb">nonce</spanx>: <bcp14>SHALL</bcp14> contain a copy of the <spanx style="verb">nonce</spanx> field from the JSON PVR Data
the registrar provides this information to assure successful verification of Registrar-Agent proximity based on the agent-signed-data</t>
  <t><spanx style="verb">serial-number</spanx>: <bcp14>SHALL</bcp14> contain the product-serial-number of the pledge;
note the required verification by the registrar defined in <xref target="pvr"/></t>
  <t><spanx style="verb">idevid-issuer</spanx>: <bcp14>SHALL</bcp14> contain the issuer value from the pledge IDevID certificate obtained from the PVR JWS Protected Header <spanx style="verb">x5c</spanx> field</t>
  <t><spanx style="verb">prior-signed-voucher-request</spanx>: <bcp14>SHALL</bcp14> contain the PVR artifact as received from the Registrar-Agent, see <xref target="tpvr"/></t>
</list></t>

<t>As BRSKI-PRM uses the Agent Proximity Assertion (see <xref target="agt_prx"/>), the JSON RVR Data <bcp14>MUST</bcp14> also contain the following fields:</t>

<t><list style="symbols">
  <t><spanx style="verb">assertion</spanx>: <bcp14>SHALL</bcp14> contain the value <spanx style="verb">agent-proximity</spanx> to indicate successful verification of the Agent Proximity Assertion (see <xref target="agt_prx"/>) by the registrar</t>
  <t><spanx style="verb">agent-sign-cert</spanx>: <bcp14>SHALL</bcp14> be a JSON array that contains the base64-encoded Registrar-Agent EE certificate as possessed by the registrar (see <xref target="registrar_component"/>) as the first item;
subsequent items <bcp14>MUST</bcp14> contain the corresponding certificate chain for verification at the MASA;
the field is used for verification of the <spanx style="verb">agent-signed-data</spanx> field of the contained PVR</t>
</list></t>

<t>Note that the <spanx style="verb">ietf-voucher-request</spanx> YANG module defines the leaf <spanx style="verb">agent-sign-cert</spanx> as binary;
this specification refines it as a JSON array structure similar to the <spanx style="verb">x5c</spanx> Header Parameter defined in <xref section="4.1.6" sectionFormat="of" target="RFC7515"/>.</t>

<t><xref target="rvr_data_example"/> below shows an example for the JSON RVR Data:</t>

<figure title="JSON RVR Data Example" anchor="rvr_data_example"><artwork type="json" align="left"><![CDATA[
{
  "ietf-voucher-request:voucher": {
     "created-on": "2022-01-04T02:37:39.235Z",
     "nonce": "eDs++/FuDHGUnRxN3E14CQ==",
     "serial-number": "vendor-pledge4711",
     "idevid-issuer": "base64encodedvalue==",
     "prior-signed-voucher-request": "base64encodedvalue==",
     "assertion": "agent-proximity",
     "agent-sign-cert": [
       "base64encodedvalue==",
       "base64encodedvalue==",
       "..."
     ]
  }
}
]]></artwork></figure>

</section>
<section anchor="jws-protected-header-3"><name>JWS Protected Header</name>

<t>The JWS Protected Header <bcp14>MUST</bcp14> follow the definitions of <xref section="3.3" sectionFormat="of" target="I-D.ietf-anima-jws-voucher"/>.
However, the <spanx style="verb">x5c</spanx> Header Parameter <bcp14>MUST</bcp14> also contain the certificate chain for verification at the MASA.</t>

</section>
<section anchor="jws-signature-3"><name>JWS Signature</name>

<t>The domain registrar <bcp14>MUST</bcp14> sign the RVR artifact using its EE credentials following the definitions of <xref section="3.4" sectionFormat="of" target="I-D.ietf-anima-jws-voucher"/>.</t>

</section>
</section>
<section anchor="voucher_artifact"><name>Backend Response Artifact: Voucher</name>

<t>The Voucher artifact is defined in <xref section="5.6" sectionFormat="of" target="RFC8995"/> (cf. "voucher response").
The only difference for BRSKI-PRM is that the <spanx style="verb">assertion</spanx> field <bcp14>MAY</bcp14> contain the value <spanx style="verb">agent-proximity</spanx> as defined in <xref target="I-D.ietf-anima-rfc8366bis"/>, when the Agent-Proximity Assertion (see <xref target="agt_prx"/>) is performed by the MASA.</t>

<t>For the JWS-signed JSON format used by this specification, the Voucher artifact <bcp14>MUST</bcp14> be a JWS Voucher structure as defined in <xref target="I-D.ietf-anima-jws-voucher"/>.
It contains JSON Voucher Data in the JWS Payload, for which an example is given in <xref target="voucher_data_example"/>:</t>

<figure title="JSON RVR Data Example" anchor="voucher_data_example"><artwork type="json" align="left"><![CDATA[
{
  "ietf-voucher:voucher": {
    "created-on": "2022-01-04T00:00:02.000Z",
    "nonce": "base64encodedvalue==",
    "assertion": "agent-proximity",
    "pinned-domain-cert": "base64encodedvalue==",
    "serial-number": "vendor-pledge4711"
  }
}
]]></artwork></figure>

</section>
<section anchor="rcv_artifact"><name>Response Artifact: Registrar-Countersigned Voucher</name>

<t>The Registrar-Countersigned Voucher (Voucher') artifact <bcp14>SHALL</bcp14> be an extended Voucher artifact based on <xref section="5.6" sectionFormat="of" target="RFC8995"/> using the format defined in <xref target="voucher_artifact"/>.</t>

<t>For BRSKi-PRM, the domain registrar <bcp14>MUST</bcp14> add an additional JWS Protected Header and JWS Signature to the MASA-provided Voucher.
<xref target="rcv_representation"/> summarizes the serialization of the JWS-signed JSON Voucher' artifact:</t>

<figure title="Voucher' Representation in General JWS JSON Serialization Syntax" anchor="rcv_representation"><artwork align="left"><![CDATA[
{
  "payload": BASE64URL(JSON Voucher Data),
  "signatures": [
    {
      "protected": BASE64URL(UTF8(JWS Protected Header (MASA))),
      "signature": BASE64URL(JWS Signature (MASA))
    },
    {
      "protected": BASE64URL(UTF8(JWS Protected Header (Registrar))),
      "signature": BASE64URL(JWS Signature (Registrar))
    }
  ]
}
]]></artwork></figure>

<t>In BRSKI <xref target="RFC8995"/>, the registrar proves possession of its credential through the server authentication within the TLS session with the pledge.
While the pledge cannot verify the registrar certificate at the time of TLS session establishment, it can verify the TLS server certificate through the certificate in the <spanx style="verb">pinned-domain-cert</spanx> field upon receiving the Voucher artifact (see <xref section="5.6.2" sectionFormat="of" target="RFC8995"/>).</t>

<t>In BRSKI-PRM with the Registrar-Agent mediating all communication, this second signature provides verification and POP of the private key for the registrar EE certificate provided in the initial tPVR artifact from the Registrar-Agent (see <xref target="tpvr_artifact"/>).</t>

<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 (i.e., pinned domain certificate).</t>

<section anchor="json-voucher-data"><name>JSON Voucher Data</name>

<t>As provided by the MASA inside the JWS Payload.
The domain registrar <bcp14>MUST NOT</bcp14> modify the JWS Payload.</t>

</section>
<section anchor="jws-protected-header-registrar"><name>JWS Protected Header (Registrar)</name>

<t>The registrar-added JWS Protected Header (Registrar) <bcp14>MUST</bcp14> contain the following standard Header Parameters as defined in <xref target="RFC7515"/>:</t>

<t><list style="symbols">
  <t><spanx style="verb">alg</spanx>: <bcp14>SHALL</bcp14> contain the 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>: <bcp14>SHALL</bcp14> contain the base64-encoded registrar EE certificate used to sign the voucher as well as the certificate chain up to (but not including) the pinned domain certificate (the initial domain trust anchor);
the pinned domain certificate is already contained in the JSON Voucher Data</t>
</list></t>

<t>Note that for many installations with a single registrar credential, the registrar EE certificate is pinned.</t>

</section>
<section anchor="jws-signature-registrar"><name>JWS Signature (Registrar)</name>

<t>The signature is created by signing the registrar-added JWS Protected Header (Registrar) and the original JWS Payload produced by the MASA as described in <xref section="5.1" sectionFormat="of" target="RFC7515"/>.
The registrar <bcp14>MUST</bcp14> use its EE credentials to sign.</t>

<t>Note that the credentials need to be the same as used for server authentication in the TLS session with the Registrar-Agent receiving this artifact (see <xref target="registrar_component"/>).</t>

</section>
</section>
</section>
<section anchor="per"><name>Supply PER to Registrar (including Key Infrastructure interaction)</name>

<t>After receiving the Voucher artifact, the Registrar-Agent sends the PER to the domain registrar within the same TLS session.</t>

<t>In case the TLS session to the registrar is already closed, the Registrar-Agent establishes a new session as described in <xref target="pvr"/>.
The registrar is able to correlate the PVR and PER artifacts based on the signatures and the contained product-serial-number.
Note that 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.
Note that "Request" and "Certificate" do not denote BRSKI-PRM defined artifacts, but are data objects depending on the certificate management protocol used by the domain Key Infrastructure.</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="288" width="576" viewBox="0 0 576 288" 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,256" 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,256" 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,256" 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,256" 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,256" 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 344,208" fill="none" stroke="black"/>
<path d="M 424,208 L 448,208" fill="none" stroke="black"/>
<path d="M 320,224 L 336,224" fill="none" stroke="black"/>
<path d="M 176,240 L 192,240" fill="none" stroke="black"/>
<path d="M 288,240 L 304,240" fill="none" stroke="black"/>
<polygon class="arrowhead" points="456,208 444,202.4 444,213.6" fill="black" transform="rotate(0,448,208)"/>
<polygon class="arrowhead" points="328,224 316,218.4 316,229.6" fill="black" transform="rotate(180,320,224)"/>
<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,240 172,234.4 172,245.6" fill="black" transform="rotate(180,176,240)"/>
<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="432" y="52">Key</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">Infra.</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="328" y="132">Key</text>
<text x="404" y="132">Infrastructure</text>
<text x="516" 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="384" y="212">[Request]</text>
<text x="396" y="228">[Certificate]-</text>
<text x="240" y="244">Enroll-Resp</text>
<text x="16" y="276">~</text>
<text x="168" y="276">~</text>
<text x="312" y="276">~</text>
<text x="456" y="276">~</text>
<text x="560" y="276">~</text>
</g>
</svg>
</artwork><artwork  type="ascii-art" align="center"><![CDATA[
+--------+    +------------+    +-----------+    +--------+    +------+
| Pledge |    | Registrar- |    |  Domain   |    |  Key   |    | MASA |
|        |    |   Agent    |    | Registrar |    | Infra. |    |      |
+--------+    +------------+    +-----------+    +--------+    +------+
 |                  |                 |                 |   Internet |
 ~                  ~                 ~                 ~            ~
(4) Supply PER to Registrar (including Key Infrastructure interaction)
 ~                  ~                 ~                 ~            ~
 |                  |                 |                 |            |
 |                  |<----(mTLS)----->|                 |            |
 |                  |-------PER------>|                 |            |
 |                  |                 |----[Request]--->|            |
 |                  |                 |<--[Certificate]-|            |
 |                  |<--Enroll-Resp---|                 |            |
 |                  |                 |                 |            |
 ~                  ~                 ~                 ~            ~
]]></artwork></artset></figure>

<t>As a second step of the interaction with the domain registrar, the Registrar-Agent <bcp14>SHALL</bcp14> supply the PER artifact(s) to the registrar via HTTP-over-TLS POST to the registrar endpoint at <spanx style="verb">/.well-known/brski/requestenroll</spanx>.
The request body <bcp14>MUST</bcp14> contain one previously acquired PER artifact as defined in <xref target="per_artifact"/>.
In the request header, the Content-Type field <bcp14>MUST</bcp14> be set to <spanx style="verb">application/jose+json</spanx> and the Accept field <bcp14>SHOULD</bcp14> be set to <spanx style="verb">application/jose+json</spanx>.</t>

<t>Note that this is different from the EST <xref target="RFC7030"/> endpoint used in BRSKI, as the PER artifact is signature-wrapped.
Hence, upon receiving a PER artifact, the registrar <bcp14>MUST</bcp14> verify that</t>

<t><list style="symbols">
  <t>the PER was signed signed with the private key corresponding to the pledge EE certificate, which is contained in the JWS Protected Header of the PER.</t>
  <t>the pledge identified by its EE certificate is accepted to join the domain after successful validation of the corresponding PVR.</t>
</list></t>

<t>If the registrar is unable to process the request or validate the PER, it <bcp14>MUST</bcp14> respond with an HTTP client error status code to the Registrar-Agent.
The following client error status codes <bcp14>SHOULD</bcp14> be used:</t>

<t><list style="symbols">
  <t>400 Bad Request: if the registrar detects an error in the format of the request</t>
  <t>401 Unauthorized: if the signature of the PER cannot be verified</t>
  <t>404 Not Found: if the PER is for a device that is not known to the registrar</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 PER uses an artifact format that is not supported by the registrar, e.g., a type other than <spanx style="verb">application/jose+json</spanx></t>
</list></t>

<t>Otherwise, the registrar extracts the PKCS#10 Certificate Signing Request (CSR) inside the PER (see <xref target="per_artifact"/>) and uses the CSR to request a new pledge EE certificate from the domain Key Infrastructure.
The exact interaction and exchanged data objects depends on the certificate management protocol used by the Key Infrastructure, and is out of scope for this document.</t>

<t>A successful interaction with the Key Infrastructure will result in a pledge EE certificate singed by the domain owner (e.g., LDevID certificate).
The registrar <bcp14>MUST</bcp14> reply to the Registrar-Agent with the Enroll-Response (Enroll-Resp) as defined in <xref target="er_artifact"/> in the body of an HTTP 200 OK response.
In the response header, the Content-Type field <bcp14>MUST</bcp14> be set to <spanx style="verb">application/pkcs7-mime</spanx>.</t>

<t>If the domain registrar is unable to return the Enroll-Resp, it <bcp14>MUST</bcp14> respond with an HTTP server error status code to the Registrar-Agent.
The following server error status codes <bcp14>SHOULD</bcp14> be used:</t>

<t><list style="symbols">
  <t>500 Internal Server Error: if the Key Infrastructure response is valid, but the registrar still failed to return the Enroll-Resp, e.g., due to missing configuration or a program failure</t>
  <t>502 Bad Gateway: if the registrar received an invalid response from the Key Infrastructure</t>
  <t>503 Service Unavailable: if a simple retry of the Registrar-Agent request might lead to a successful response; this error response <bcp14>SHOULD</bcp14> include the Retry-After response header field with an appropriate value</t>
  <t>504 Gateway Timeout: if the backend request to the Key Infrastructure timed out</t>
</list></t>

<t>Note that while BRSKI-PRM targets the initial enrollment, re-enrollment may be supported in a similar way with the exception that the current, potentially application-related pledge EE certificate is used instead of the IDevID certificate to sign the PER artifact (see also <xref target="tper"/>).
Hence, there is no verification whether the pledge is accepted to join the domain, as the still valid EE certificate signed by the domain owner identifies the pledge as already accepted component of the domain.</t>

<section anchor="request-artifact-pledge-enroll-request-per"><name>Request Artifact: Pledge Enroll-Request (PER)</name>

<t>Identical to the PER artifact defined in <xref target="per_artifact"/>.
The Registrar-Agent <bcp14>MUST NOT</bcp14> modify PERs received from pledges.</t>

</section>
<section anchor="er_artifact"><name>Response Artifact: Registrar Enroll-Response (Enroll-Resp)</name>

<t>The Enroll-Response (Enroll-Resp) artifact <bcp14>SHALL</bcp14> be an authenticated self-contained object signed by the domain owner, containing a pledge EE certificate.</t>

<t>For this specification, the Enroll-Resp artifact <bcp14>MUST</bcp14> be a certs-only CMC Simple PKI Response (PKCS#7) as defined in <xref section="4.1" sectionFormat="of" target="RFC5272"/> (following EST <xref target="RFC7030"/>).
Note that it only contains the pledge EE certificate, but not the certificate chain.
The chain is provided with the CA certificates.</t>

</section>
</section>
<section anchor="obtain_cacerts"><name>Obtain CA Certificates</name>

<t>The pinned domain certificate in the voucher is only the initial trust anchor for only the domain registrar.
To fully trust the domain and also to verify its own EE certificate, the pledge also needs the corresponding domain CA certificate(s).
A bag of CA certificates signed by the registrar will allow the pledge to verify the authorization to install the received CA certificate(s) through the pinned domain certificate in the voucher.</t>

<t>Note that this is a deviation from EST <xref target="RFC7030"/> used in BRSKI <xref target="RFC8995"/>.</t>

<t>The Registrar-Agent obtains this artifact within the same TLS session.
In case the TLS session to the registrar is already closed, the Registrar-Agent establishes a new session as described in <xref target="pvr"/>.
The CA certificates do not need to be correlated to a specific voucher or Enroll-Response; they only need to be fresh.</t>

<t><xref target="exchangesfig_uc2_5"/> shows the acquisition of the CA certificate(s) and the following subsections describe the corresponding artifact.</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="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,176 300,170.4 300,181.6" fill="black" transform="rotate(0,304,176)"/>
<polygon class="arrowhead" points="184,192 172,186.4 172,197.6" fill="black" transform="rotate(180,176,192)"/>
<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="432" y="52">Key</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">Infra.</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="60" y="132">Obtain</text>
<text x="100" y="132">CA</text>
<text x="164" 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="240" 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   |    |  Key   |    | MASA |
|        |    |   Agent    |    | Registrar |    | Infra. |    |      |
+--------+    +------------+    +-----------+    +--------+    +------+
 |                  |                 |                 |   Internet |
 ~                  ~                 ~                 ~            ~
(5) Obtain CA Certificates
 ~                  ~                 ~                 ~            ~
 |                  |                 |                 |            |
 |                  |<----(mTLS)----->|                 |            |
 |                  |<----caCerts-----|                 |            |
 |                  |                 |                 |            |
 ~                  ~                 ~                 ~            ~
]]></artwork></artset></figure>

<t>As a third step of the interaction with the domain registrar, the Registrar-Agent <bcp14>SHALL</bcp14> obtain the CA-Certificates artifact from the registrar via HTTP-over-TLS GET to the registrar endpoint at <spanx style="verb">/.well-known/brski/wrappedcacerts</spanx>.
In the request header, the Accept field <bcp14>SHOULD</bcp14> be set to <spanx style="verb">application/jose+json</spanx>.</t>

<t>Upon receiving a GET request at <spanx style="verb">/.well-known/brski/wrappedcacerts</spanx>, the domain registrar <bcp14>MUST</bcp14> reply with the CA-Certificates artifact as defined in <xref target="cacerts_artifact"/> in the body of an HTTP 200 OK response.
In the response header, the Content-Type field <bcp14>MUST</bcp14> be set to <spanx style="verb">application/jose+json</spanx>.</t>

<section anchor="request-no-artifact"><name>Request (no artifact)</name>

<t>In this exchange, the request is a result of the HTTP(S) default transport for this specification.
There is no artifact provided to the registrar.</t>

</section>
<section anchor="cacerts_artifact"><name>Response Artifact: CA-Certificates (caCerts)</name>

<t>The CA-Certificates (caCerts) artifact <bcp14>SHALL</bcp14> be an authenticated self-contained object signed by the registrar, containing the domain trust anchors and the certificate chain for the pledge domain EE certificate, i.e., the root CA certificate(s) and possibly intermediate certificate(s) as described in <xref section="4.1.3" sectionFormat="of" target="RFC7030"/>.</t>

<t>For the JWS-signed JSON format used by this specification, the caCerts artifact <bcp14>MUST</bcp14> use the "General JWS JSON Serialization Syntax" defined in <xref section="7.2.1" sectionFormat="of" target="RFC7515"/>, which <bcp14>MUST</bcp14> contain the JSON CA Data defined in <xref target="cacerts_data"/> in the JWS Payload.</t>

<t><xref target="cacerts_representation"/> summarizes the serialization of the JWS-signed JSON caCerts artifact:</t>

<figure title="Voucher' Representation in General JWS JSON Serialization Syntax" anchor="cacerts_representation"><artwork align="left"><![CDATA[
{
  "payload": BASE64URL(UTF8(JSON CA Data)),
  "signatures": [
    {
      "protected": BASE64URL(UTF8(JWS Protected Header)),
      "signature": BASE64URL(JWS Signature)
    }
  ]
}
]]></artwork></figure>

<t>The JSON CA Data <bcp14>MUST</bcp14> be UTF-8 encoded to become the octet-based JWS Payload defined in <xref target="RFC7515"/>.
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"/>.
The octets of the UTF-8 representation of the JWS Protected Header are base64url-encoded to become the string value of the <spanx style="verb">protected</spanx> member.
The generated JWS Signature is base64url-encoded to become the string value of the <spanx style="verb">signature</spanx> member.</t>

<section anchor="cacerts_data"><name>JSON CA Data</name>

<t>The JSON CA Data <bcp14>SHALL</bcp14> be a JSON document <xref target="RFC8259"/> that <bcp14>MUST</bcp14> conform with the CDDL <xref target="RFC8610"/> data model defined in <xref target="cacerts_CDDL_def"/>:</t>

<figure title="CDDL for JSON CA Data (cacerts)" anchor="cacerts_CDDL_def"><artwork type="cddl" align="left"><![CDATA[
cacerts = {
        "x5bag": bytes / [+ bytes]
}
]]></artwork></figure>

<t>The <spanx style="verb">x5bag</spanx> member <bcp14>MUST</bcp14> follow the definition of the <spanx style="verb">x5bag</spanx> COSE Header Parameter in <xref section="2" sectionFormat="of" target="RFC9360"/>.
It is either a single X.509 v3 certificate or an array of at least two X.509 v3 certificates in DER format.
For JSON syntax, the octet-based certificates <bcp14>MUST</bcp14> be base64-encoded.
It <bcp14>SHALL</bcp14> contain one or more domain CA (root or issuing) certificates.</t>

<t>Note that as per <xref target="RFC8995"/>, the domain registrar acts as EST server, and hence is expected to possess the CA certificates applicable for the domain and can thus deliver them to the pledge (see <xref target="registrar_component"/>).</t>

<t><xref target="cacerts_data_example"/> below shows an example for the JSON CA Data:</t>

<figure title="JSON CA Data Example" anchor="cacerts_data_example"><artwork align="left"><![CDATA[
{
  "x5bag": [
    "base64encodedvalue==",
    "base64encodedvalue=="
  ]
}
]]></artwork></figure>

</section>
<section anchor="jws-protected-header-4"><name>JWS Protected Header</name>

<t>The JWS Protected Header of the caCerts artifact <bcp14>MUST</bcp14> contain the following standard Header Parameters as defined in <xref target="RFC7515"/>:</t>

<t><list style="symbols">
  <t><spanx style="verb">alg</spanx>: <bcp14>SHALL</bcp14> contain the 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>: <bcp14>SHALL</bcp14> contain the base64-encoded registrar EE certificate used to sign the caCerts artifact as well as the certificate chain up to (but not including) the pinned domain certificate</t>
</list></t>

<t><xref target="cacerts_header"/> below shows an example for this JWS Protected Header:</t>

<figure title="JWS Protected Header Example within PER" anchor="cacerts_header"><artwork align="left"><![CDATA[
{
  "alg": "ES256",
  "x5c": [
    "base64encodedvalue==",
    "base64encodedvalue=="
  ]
}
]]></artwork></figure>

</section>
<section anchor="jws-signature-4"><name>JWS Signature</name>

<t>The registrar <bcp14>MUST</bcp14> sign the caCerts artifact using its EE credentials.
The JWS Signature is generated over the JWS Protected Header and the JWS Payload as described in <xref section="5.1" sectionFormat="of" target="RFC7515"/>.</t>

</section>
</section>
</section>
<section anchor="voucher"><name>Supply Voucher to Pledge</name>

<t>Once the Registrar-Agent has acquired the following three bootstrapping artifacts, it can supply them to the pledge starting with the Voucher':</t>

<t><list style="symbols">
  <t>Voucher': voucher countersigned by the registrar (from MASA via Registrar)</t>
  <t>Enroll-Resp: pledge EE certificate signed by the domain owner (from Key Infrastructure via registrar)</t>
  <t>caCerts: domain trust anchors (from Key Infrastructure via Registrar)</t>
</list></t>

<t>Reconnecting to the pledge might require to re-discover the pledge as described in <xref target="discovery_uc2_ppa"/>.
The Registrar-Agent <bcp14>MAY</bcp14> stored information from the first connection with the pledge to optimize.</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_6"/> shows the provisioning of the voucher to the pledge and 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 136,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="432" y="52">Key</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">Infra.</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="100" 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   |    |  Key   |    | MASA |
|        |    |   Agent    |    | Registrar |    | Infra. |    |      |
+--------+    +------------+    +-----------+    +--------+    +------+
 |                  |                 |                 |   Internet |
 ~                  ~                 ~                 ~            ~
(6) Supply Voucher to Pledge
 ~                  ~                 ~                 ~            ~
 |                  |                 |                 |            |
 |<----opt. TLS---->|                 |                 |            |
 |<-----Voucher''---|                 |                 |            |
 |------vStatus---->|                 |                 |            |
 |                  |                 |                 |            |
 ~                  ~                 ~                 ~            ~
]]></artwork></artset></figure>

<t>The Registrar-Agent <bcp14>SHALL</bcp14> supply the voucher to the pledge via HTTP(S) POST to the pledge endpoint at <spanx style="verb">/.well-known/brski/svr</spanx>.
The request body <bcp14>MUST</bcp14> contain the Registrar-Countersigned Voucher (Voucher') artifact previously acquired from the domain registrar as defined in <xref target="rcv_artifact"/>.
In the request header, the Content-Type field <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"></xref> and the Accept field <bcp14>SHOULD</bcp14> be set to <spanx style="verb">application/jose+json</spanx>.</t>

<t>Upon receiving the voucher, the pledge <bcp14>SHALL</bcp14> perform the signature verification in the following order:</t>

<t><list style="numbers" type="1">
  <t>Verify the MASA signature as described in <xref section="5.6.1" sectionFormat="of" target="RFC8995"/> against the pre-installed manufacturer trust anchor (e.g., IDevID).</t>
  <t>Provisionally install the initial domain trust anchor contained in the <spanx style="verb">pinned-domain-cert</spanx> field of the voucher.</t>
  <t>Validate the registrar EE certificate received in the <spanx style="verb">agent-provided-proximity-registrar-cert</spanx> field of the previously received tPVR artifact using the pinned domain certificate;
this terminates the "provisional state" for the object security within the authenticated self-contained objects that in BRSKI-PRM replace the direct TLS connection to the registrar in BRSKI <xref target="RFC8995"/> (see <xref target="agt_prx"/>).</t>
  <t>Verify registrar signature of the Voucher' artifact similar as described in <xref section="5.6.1" sectionFormat="of" target="RFC8995"/>, but use the pinned domain certificate instead of the MASA certificate for the verification.</t>
</list></t>

<t>If all steps above complete successfully, the pledge <bcp14>SHALL</bcp14> terminate the "provisional state" for the initial domain trust anchor (i.e., the pinned domain certificate).</t>

<t>A nonceless voucher <bcp14>MAY</bcp14> be accepted as in <xref target="RFC8995"/> if allowed by the pledge implementation of the manufacturer.</t>

<t>After voucher validation and verification, the pledge needs to reply with a status telemetry message as defined in <xref section="5.7" sectionFormat="of" target="RFC8995"/>.
The pledge <bcp14>MUST</bcp14> generate the Voucher Status (vStatus) artifact as defined in <xref target="vstatus_artifact"/> and <bcp14>MUST</bcp14> provide it to the Registrar-Agent in the body of an HTTP 200 OK response.
In the response header, the Content-Type field <bcp14>MUST</bcp14> be set to <spanx style="verb">application/jose+json</spanx>.</t>

<t>If the pledge is unable to validate or verify the voucher, it <bcp14>MUST</bcp14> report the reason in the corresponding field of the Voucher Status.</t>

<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"/>.
It <bcp14>MAY</bcp14> resend the voucher depending on the Pledge status following the same procedure.</t>

<section anchor="request-artifact-registrar-countersigned-voucher"><name>Request Artifact: Registrar-Countersigned Voucher</name>

<t>Identical to the Registrar-Countersigned Voucher (Voucher') artifact received from the registrar as defined in <xref target="rcv_artifact"/>.
The Registrar-Agent <bcp14>MUST NOT</bcp14> modify countersigned vouchers.</t>

</section>
<section anchor="vstatus_artifact"><name>Response Artifact: Voucher Status (vStatus)</name>

<t>The Voucher Status (vStatus) artifact <bcp14>SHALL</bcp14> be an authenticated self-contained object signed by the pledge, containing status telemetry as defined in <xref section="5.7" sectionFormat="of" target="RFC8995"/>.</t>

<t>For the JWS-signed JSON format used by this specification, the vStatus artifact <bcp14>MUST</bcp14> use the "General JWS JSON Serialization Syntax" defined in <xref section="7.2.1" sectionFormat="of" target="RFC7515"/>, which <bcp14>MUST</bcp14> contain the JSON Voucher Status Data defined in <xref target="vstatus_data"/> in the JWS Payload.
<xref target="vstatus_representation"/> summarizes the serialization of the JWS-signed JSON vStatus artifact:</t>

<figure title="vStatus Representation in General JWS JSON Serialization Syntax" anchor="vstatus_representation"><artwork align="left"><![CDATA[
{
  "payload": BASE64URL(UTF8(JSON Voucher Status Data)),
  "signatures": [
    {
      "protected": BASE64URL(UTF8(JWS Protected Header)),
      "signature": BASE64URL(JWS Signature)
    }
  ]
}
]]></artwork></figure>

<t>The JSON Status Data <bcp14>MUST</bcp14> be UTF-8 encoded to become the octet-based JWS Payload defined in <xref target="RFC7515"/>.
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"/>.
The octets of the UTF-8 representation of the JWS Protected Header are base64url-encoded to become the string value of the <spanx style="verb">protected</spanx> member.
The generated JWS Signature is base64url-encoded to become the string value of the <spanx style="verb">signature</spanx> member.</t>

<section anchor="vstatus_data"><name>JSON Voucher Status Data</name>

<t>The JSON Status Data <bcp14>SHALL</bcp14> be a JSON document <xref target="RFC8259"/> that <bcp14>MUST</bcp14> conform with the <spanx style="verb">voucherstatus-post</spanx> CDDL <xref target="RFC8610"/> data model defined in <xref section="5.7" sectionFormat="of" target="RFC8995"/>:</t>

<t><list style="symbols">
  <t><spanx style="verb">version</spanx>: contains a version number for the format and semantics of the other fields;
this specification assumes version <spanx style="verb">1</spanx> just like BRSKI <xref target="RFC8995"/></t>
  <t><spanx style="verb">status</spanx>: contains the boolean value <spanx style="verb">true</spanx> in case of success and <spanx style="verb">false</spanx> in case of failure</t>
  <t><spanx style="verb">reason</spanx>: contains a human-readable message;
<bcp14>SHOULD NOT</bcp14> provide information beneficial to an attacker</t>
  <t><spanx style="verb">reason-context</spanx>: contains a JSON object that provides additional information specific to a failure;
in contrast to <xref section="5.7" sectionFormat="of" target="RFC8995"/>, <bcp14>MUST</bcp14> be provided;
<bcp14>SHOULD NOT</bcp14> provide information beneficial to an attacker</t>
</list></t>

<t>BRSKI-PRM implementations utilize the <spanx style="verb">reason-context</spanx> field to provide a distinguishable token, which enables the registrar to detect status artifacts provided to the wrong endpoint.
For vStatus artifacts, the JSON object in the <spanx style="verb">reason-context</spanx> field <bcp14>MUST</bcp14> contain the member <spanx style="verb">pvs-details</spanx>.</t>

<t><xref target="vstatus_data_example_success"/> below shows an example for the JSON Voucher Status Data in case of success and <xref target="vstatus_data_example_error"/> in case of failure:</t>

<figure title="JSON Voucher Status Data Success Example" anchor="vstatus_data_example_success"><artwork type="json" align="left"><![CDATA[
{
  "version": 1,
  "status": true,
  "reason": "Voucher successfully processed.",
  "reason-context": {
    "pvs-details": "Current date 5/23/2024"
  }
}
]]></artwork></figure>

<figure title="JSON Voucher Status Data Failure Example" anchor="vstatus_data_example_error"><artwork type="json" align="left"><![CDATA[
{
  "version": 1,
  "status": false,
  "reason": "Failed to authenticate MASA certificate.",
  "reason-context": {
    "pvs-details": "Current date 1/1/1970 < valid from 1/1/2023"
  }
}
]]></artwork></figure>

</section>
<section anchor="jws-protected-header-5"><name>JWS Protected Header</name>

<t>The JWS Protected Header of the vStatus artifact <bcp14>MUST</bcp14> contain the following standard Header Parameters as defined in <xref target="RFC7515"/>:</t>

<t><list style="symbols">
  <t><spanx style="verb">alg</spanx>: <bcp14>SHALL</bcp14> contain the 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>: <bcp14>SHALL</bcp14> contain the base64-encoded pledge IDevID certificate used to sign the vStatus artifact;
it <bcp14>SHOULD</bcp14> also contain the certificate chain for this certificate;
if the certificate chain is not included in the <spanx style="verb">x5c</spanx> Header Parameter, it <bcp14>MUST</bcp14> be available at the domain registrar for verification</t>
</list></t>

<t><xref target="vstatus_header"/> below shows an example for this JWS Protected Header:</t>

<figure title="JWS Protected Header Example within vStatus" anchor="vstatus_header"><artwork type="json" align="left"><![CDATA[
{
  "alg": "ES256",
  "x5c": [
    "base64encodedvalue==",
    "base64encodedvalue=="
  ]
}
]]></artwork></figure>

</section>
<section anchor="jws-signature-5"><name>JWS Signature</name>

<t>The plege <bcp14>MUST</bcp14> sign the vStatus artifact using its IDevID credential.
The JWS Signature is generated over the JWS Protected Header and the JWS Payload as described in <xref section="5.1" sectionFormat="of" target="RFC7515"/>.</t>

</section>
</section>
</section>
<section anchor="cacerts"><name>Supply CA Certificates to Pledge</name>

<t>Before supplying the pledge EE certificate, the Registrar-Agent supplies the domain CA certificates to the pledge, so the pledge can verify its EE certficate in the next exchange.
As the CA certificate provisioning is crucial from a security perspective, this exchange <bcp14>SHOULD</bcp14> only be done, if supplying the voucher in the previous exchange (<xref target="voucher"/>) has been successfully processed by pledge as reflected in the vStatus artifact.</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_7"/> shows the provisioning of the CA certificates to the pledge and 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="432" y="52">Key</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">Infra.</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   |    |  Key   |    | MASA |
|        |    |   Agent    |    | Registrar |    | Infra. |    |      |
+--------+    +------------+    +-----------+    +--------+    +------+
 |                  |                 |                 |   Internet |
 ~                  ~                 ~                 ~            ~
(7) Supply CA Certificates to Pledge
 ~                  ~                 ~                 ~            ~
 |                  |                 |                 |            |
 |<----opt. TLS---->|                 |                 |            |
 |<-----caCerts-----|                 |                 |            |
 |                  |                 |                 |            |
 ~                  ~                 ~                 ~            ~
]]></artwork></artset></figure>

<t>The Registrar-Agent <bcp14>SHALL</bcp14> provide the bag of CA certificates requested from and signed by the registrar to the pledge by HTTP(S) POST to the pledge endpoint at <spanx style="verb">/.well-known/brski/scac</spanx>.
The request body <bcp14>MUST</bcp14> contain the caCerts artifact as defined in <xref target="cacerts_artifact"/>.
In the request header, the Content-Type field <bcp14>MUST</bcp14> be set to <spanx style="verb">application/jose+json</spanx>.</t>

<t>Upon receiving valid caCerts artifact, the pledge <bcp14>MUST</bcp14> first verify the signature of the registrar using the initial trust anchor (pinned domain certificate).
In the case of success, the pledge <bcp14>MUST</bcp14> install the contained CA certificates as trust anchors as described in <xref section="4.1.3" sectionFormat="of" target="RFC7030"/>.
This includes the verification of all intermediate CA certificates (i.e., not self-signed CA certificates).</t>

<t>If the pledge is unable to process the caCerts, it <bcp14>SHOULD</bcp14> respond with an HTTP error status code to the Registrar-Agent.
The following client error status codes <bcp14>SHOULD</bcp14> be used:</t>

<t><list style="symbols">
  <t>400 Bad Request: if the pledge detects an error in the format of the request</t>
  <t>401 Unauthorized: if the signature of the registrar cannot be verified against the installed initial trust anchor (pinned domain certificate)</t>
  <t>403 Forbidden: if one of the intermediate CA certificates cannot be verified against the available trust anchors (e.g., self-signed CA certificates)</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/jose+json</spanx></t>
</list></t>

<t>Otherwise, if processing completes successfully, the pledge <bcp14>SHOULD</bcp14> reply with HTTP 200 OK without a response body.
The pledge <bcp14>MAY</bcp14> use the response body to signal success/failure details to the service technician operating the Registrar-Agent.</t>

<section anchor="request-artifact-ca-certificates-cacerts"><name>Request Artifact: CA-Certificates (caCerts)</name>

<t>Identical to the CA-Certificates (caCerts) artifact received from the registrar as defined in <xref target="cacerts_artifact"/>.
The Registrar-Agent <bcp14>MUST NOT</bcp14> modify CA-Certificates artifacts.</t>

</section>
<section anchor="response-no-artifact"><name>Response (no artifact)</name>

<t>In this exchange, the response is a result of the HTTP(S) default transport for this specification.
There is no artifact provided to the Registrar-Agent.</t>

</section>
</section>
<section anchor="enroll_response"><name>Supply Enroll-Response to Pledge</name>

<t>After supplying the CA certificates, the Registrar-Agent supplies the pledge EE certificate to the pledge.</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_8"/> shows the provisioning of the domain-owner signed EE certificate to the pledge and 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="432" y="52">Key</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">Infra.</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   |    |  Key   |    | MASA |
|        |    |   Agent    |    | Registrar |    | Infra. |    |      |
+--------+    +------------+    +-----------+    +--------+    +------+
 |                  |                 |                 |   Internet |
 ~                  ~                 ~                 ~            ~
(8) Supply Enroll-Response to Pledge
 ~                  ~                 ~                 ~            ~
 |                  |                 |                 |            |
 |<----opt. TLS---->|                 |                 |            |
 |<---Enroll-Resp---|                 |                 |            |
 |-----eStatus----->|                 |                 |            |
 |                  |                 |                 |            |
 ~                  ~                 ~                 ~            ~
]]></artwork></artset></figure>

<t>The Registrar-Agent <bcp14>SHALL</bcp14> send the domain-owner signed EE certificate to the pledge by HTTP(S) POST to the pledge endpoint at <spanx style="verb">/.well-known/brski/ser</spanx>.
The request body <bcp14>MUST</bcp14> contain the Enroll-Response (Enroll-Resp) artifact previously acquired from the domain registrar as defined in <xref target="er_artifact"/>.
In the request header, the Content-Type field <bcp14>MUST</bcp14> be set to <spanx style="verb">application/pkcs7-mime</spanx> and the Accept field <bcp14>SHOULD</bcp14> be set to <spanx style="verb">application/jose+json</spanx>.</t>

<t>Upon reception, the pledge <bcp14>SHALL</bcp14> verify the received EE certificate using the installed trust anchors.
After Enroll-Resp validation and verification, the pledge needs to reply with a status telemetry message as defined in <xref section="5.9.4" sectionFormat="of" target="RFC8995"/>.
The pledge <bcp14>MUST</bcp14> generate the Enroll Status (eStatus) artifact as defined in <xref target="estatus_artifact"/> and <bcp14>MUST</bcp14> provide it to the Registrar-Agent in the body of an HTTP 200 OK response.
In the response header, the Content-Type field <bcp14>MUST</bcp14> be set to <spanx style="verb">application/jose+json</spanx>.</t>

<t>If the pledge is unable to validate or verify the Enroll-Response, it <bcp14>MUST</bcp14> report the reason in the corresponding field of the Enroll Status.</t>

<section anchor="request-artifact-enroll-response-enroll-resp"><name>Request Artifact: Enroll-Response (Enroll-Resp)</name>

<t>Identical to the Enroll-Response (Enroll-Resp) artifact received from the registrar as defined in <xref target="er_artifact"/>.
The Registrar-Agent <bcp14>MUST NOT</bcp14> modify Enroll-Response artifacts.</t>

</section>
<section anchor="estatus_artifact"><name>Response Artifact: Enroll Status (eStatus)</name>

<t>The Enroll Status (eStatus) artifact <bcp14>SHALL</bcp14> be an authenticated self-contained object signed by the pledge, containing status telemetry as defined in <xref section="5.9.4" sectionFormat="of" target="RFC8995"/>.</t>

<t>For the JWS-signed JSON format used by this specification, the eStatus artifact <bcp14>MUST</bcp14> use the "General JWS JSON Serialization Syntax" defined in <xref section="7.2.1" sectionFormat="of" target="RFC7515"/>, which <bcp14>MUST</bcp14> contain the JSON Enroll Status Data defined in <xref target="estatus_data"/> in the JWS Payload.
<xref target="estatus_representation"/> summarizes the serialization of the JWS-signed JSON eStatus artifact:</t>

<figure title="eStatus Representation in General JWS JSON Serialization Syntax" anchor="estatus_representation"><artwork align="left"><![CDATA[
{
  "payload": BASE64URL(UTF8(JSON Enroll Status Data)),
  "signatures": [
    {
      "protected": BASE64URL(UTF8(JWS Protected Header)),
      "signature": BASE64URL(JWS Signature)
    }
  ]
}
]]></artwork></figure>

<t>The JSON Enroll Status Data <bcp14>MUST</bcp14> be UTF-8 encoded to become the octet-based JWS Payload defined in <xref target="RFC7515"/>.
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"/>.
The octets of the UTF-8 representation of the JWS Protected Header are base64url-encoded to become the string value of the <spanx style="verb">protected</spanx> member.
The generated JWS Signature is base64url-encoded to become the string value of the <spanx style="verb">signature</spanx> member.</t>

<section anchor="estatus_data"><name>JSON Enroll Status Data</name>

<t>The JSON Status Data <bcp14>SHALL</bcp14> be a JSON document <xref target="RFC8259"/> that <bcp14>MUST</bcp14> conform with the <spanx style="verb">enrollstatus-post</spanx> CDDL <xref target="RFC8610"/> data model defined in <xref section="5.9.4" sectionFormat="of" target="RFC8995"/>.
The members are the same as for the JSON Voucher Status Data and follow the same definitions as given in <xref target="vstatus_data"/> (incl. making <spanx style="verb">reason-context</spanx> mandatory).</t>

<t>BRSKI-PRM implementations again utilize the <spanx style="verb">reason-context</spanx> field to provide a distinguishable token.
For eStatus artifacts, the JSON object in the <spanx style="verb">reason-context</spanx> field <bcp14>MUST</bcp14> contain the member <spanx style="verb">pes-details</spanx>.</t>

<t><xref target="estatus_data_example_success"/> below shows an example for the JSON Enroll Status Data in case of success and <xref target="estatus_data_example_error"/> in case of failure:</t>

<figure title="JSON Enroll Status Data Success Example" anchor="estatus_data_example_success"><artwork type="json" align="left"><![CDATA[
{
  "version": 1,
  "status": true,
  "reason": "Enroll-Response successfully processed.",
  "reason-context": {
    "pes-details": "Success"
  }
}
]]></artwork></figure>

<figure title="JSON Enroll Status Data Failure Example" anchor="estatus_data_example_error"><artwork type="json" align="left"><![CDATA[
{
  "version": 1,
  "status": false,
  "reason": "Enroll-Response could not be verified.",
  "reason-context": {
    "pes-details": "No matching trust anchor"
  }
}
]]></artwork></figure>

</section>
<section anchor="jws-protected-header-6"><name>JWS Protected Header</name>

<t>The JWS Protected Header of the eStatus artifact <bcp14>MUST</bcp14> contain the following standard Header Parameters as defined in <xref target="RFC7515"/>:</t>

<t><list style="symbols">
  <t><spanx style="verb">alg</spanx>: <bcp14>SHALL</bcp14> contain the 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>: <bcp14>SHALL</bcp14> contain the base64-encoded pledge EE certificate used to sign the eStatus artifact;
it <bcp14>SHOULD</bcp14> also contain the certificate chain for this certificate;
if the certificate chain is not included in the <spanx style="verb">x5c</spanx> Header Parameter, it <bcp14>MUST</bcp14> be available at the domain registrar for verification</t>
</list></t>

<t><xref target="estatus_header"/> below shows an example for this JWS Protected Header:</t>

<figure title="JWS Protected Header Example within eStatus" anchor="estatus_header"><artwork type="json" align="left"><![CDATA[
{
  "alg": "ES256",
  "x5c": [
    "base64encodedvalue==",
    "base64encodedvalue=="
  ]
}
]]></artwork></figure>

</section>
<section anchor="jws-signature-6"><name>JWS Signature</name>

<t>If the pledge verified the received EE certificate successfully, it <bcp14>MUST</bcp14> sign the eStatus artifact using its new EE credentials.
In failure case, the pledge <bcp14>MUST</bcp14> sign it using its IDevID credentials.
The JWS Signature is generated over the JWS Protected Header and the JWS Payload as described in <xref section="5.1" sectionFormat="of" target="RFC7515"/>.</t>

</section>
</section>
</section>
<section anchor="vstatus"><name>Voucher Status Telemetry (including MASA interaction)</name>

<t>Once the Registrar-Agent has collected both status artifacts from one or more pledges, it <bcp14>SHALL</bcp14> provide the status information to the domain registrar for further processing, beginning with the voucher status telemetry.</t>

<t>In case the TLS session to the registrar is closed, the Registrar-Agent establishes a new session as described in <xref target="pvr"/>.</t>

<t><xref target="exchangesfig_uc2_9"/> shows the provisioning of the voucher status information from the pledge(s) to the registrar and the following subsections describe the corresponding artifact and MASA interaction.</t>

<figure title="Voucher Status telemetry exchange" anchor="exchangesfig_uc2_9"><artset><artwork  type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="320" width="576" viewBox="0 0 576 320" 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,288" 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,288" 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,256" 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,288" 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,288" 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="432" y="52">Key</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">Infra.</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="480" y="228">audit-log</text>
<text x="396" y="244">device</text>
<text x="464" y="244">audit-log</text>
<text x="264" y="276">[verify</text>
<text x="340" y="276">audit-log]</text>
<text x="312" y="292">|</text>
<text x="16" y="308">~</text>
<text x="168" y="308">~</text>
<text x="312" y="308">~</text>
<text x="456" y="308">~</text>
<text x="560" y="308">~</text>
</g>
</svg>
</artwork><artwork  type="ascii-art" align="center"><![CDATA[
+--------+    +------------+    +-----------+    +--------+    +------+
| Pledge |    | Registrar- |    |  Domain   |    |  Key   |    | MASA |
|        |    |   Agent    |    | Registrar |    | Infra. |    |      |
+--------+    +------------+    +-----------+    +--------+    +------+
 |                  |                 |                 |   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>First, the Registrar-Agent <bcp14>SHALL</bcp14> supply the voucher status telemetry to the registrar via HTTP-over-TLS POST to the registrar endpoint at <spanx style="verb">/.well-known/brski/voucher_status</spanx>.
The request body <bcp14>MUST</bcp14> contain one previously acquired vStatus artifact as defined in <xref target="vstatus_artifact"/>.
In the request header, the Content-Type field <bcp14>MUST</bcp14> be set to <spanx style="verb">application/jose+json</spanx>.</t>

<t>Upon receiving a vStatus artifact, the registrar <bcp14>MUST</bcp14> process it as described in <xref section="5.7" sectionFormat="of" target="RFC8995"/>.
Due to the Registrar-Agent in the middle, the registrar <bcp14>MUST</bcp14> in addition verify the signature of the vStatus and that it belongs to an accepted device of the domain based on the <spanx style="verb">serial-number</spanx> field of the IDevID certificate contained in the JWS Protected Header of the vStatus.</t>

<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 an HTTP error status code.
The registrar <bcp14>MAY</bcp14> use the response body to signal success/failure details to the service technician operating the Registrar-Agent.</t>

<t>The registrar <bcp14>SHOULD</bcp14> proceed with the audit-log request to the MASA as in BRSKI described in <xref section="5.8" sectionFormat="of" target="RFC8995"/>.</t>

<section anchor="request-artifact-voucher-status-vstatus"><name>Request Artifact: Voucher Status (vStatus)</name>

<t>Identical to the Voucher Status (vStatus) artifact received from the pledge as defined in <xref target="vstatus_artifact"/>.
The Registrar-Agent <bcp14>MUST NOT</bcp14> modify vStatus artifacts.</t>

</section>
<section anchor="response-no-artifact-1"><name>Response (no artifact)</name>

<t>In this exchange, the response is a result of the HTTP(S) default transport for this specification.
There is no artifact provided to the Registrar-Agent.</t>

</section>
</section>
<section anchor="estatus"><name>Enroll Status Telemetry</name>

<t>The Registrar-Agent <bcp14>SHALL</bcp14> complete the sequence of exchanges for bootstrapping with providing the enroll status telemetry to the domain registrar.
This status indicates whether the pledge could process the Enroll-Response (pledge EE certificate signed by the domain owner) and holds the corresponding private key.</t>

<t>In case the TLS session to the registrar is already closed, the Registrar-Agent establishes a new session as described in <xref target="pvr"/>.</t>

<t><xref target="exchangesfig_uc2_10"/> shows the provisioning of the enroll status information from the pledge(s) to the registrar and the following subsections describe the corresponding artifact.</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="432" y="52">Key</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">Infra.</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   |    |  Key   |    | MASA |
|        |    |   Agent    |    | Registrar |    | Infra. |    |      |
+--------+    +------------+    +-----------+    +--------+    +------+
 |                  |                 |                 |   Internet |
 ~                  ~                 ~                 ~            ~
(10) Enroll Status Telemetry
 ~                  ~                 ~                 ~            ~
 |                  |                 |                 |            |
 |                  |<---((mTLS))---->|                 |            |
 |                  |-----eStatus---->|                 |            |
 |                  |                 |                 |            |
 ~                  ~                 ~                 ~            ~
]]></artwork></artset></figure>

<t>Second, the Registrar-Agent <bcp14>SHALL</bcp14> supply the enroll status telemetry to the registrar via HTTP-over-TLS POST to the registrar endpoint at <spanx style="verb">/.well-known/brski/enrollstatus</spanx>.
The request body <bcp14>MUST</bcp14> contain one previously acquired eStatus artifact as defined in <xref target="estatus_artifact"/>.
In the request header, the Content-Type field <bcp14>MUST</bcp14> be set to <spanx style="verb">application/jose+json</spanx>.</t>

<t>Upon receiving an eStatus artifact, the registrar <bcp14>MUST</bcp14> process it as described in <xref section="5.9.4" sectionFormat="of" target="RFC8995"/>.
Due to the Registrar-Agent in the middle, instead of the BRSKI TLS session with the pledge, the registrar <bcp14>MUST</bcp14> verify the signature of the eStatus artifact and that it belongs to an accepted device of the domain based on the <spanx style="verb">serial-number</spanx> field of the EE certificate contained in the JWS Protected Header of the eStatus.
Note that if the Enroll Status indicates success, the eStatus artifact is signed with the new pledge EE credentials;
if it indicates failure, the pledge was unable to process the supplied EE certificate and therefore signed with its IDevID credentials.</t>

<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 <bcp14>MAY</bcp14> fail with an HTTP 404 client error status code.
The registrar <bcp14>MAY</bcp14> use the response body to signal success/failure details to the service technician operating the Registrar-Agent.</t>

<t>If the eStatus indicates failure, 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 pledge EE certificate.
An example case for the registrar revoking the issued certificate is when the pledge was not able to verify the received EE certificate and therefore did not accept it for installation.</t>

<section anchor="request-artifact-enroll-status-estatus"><name>Request Artifact: Enroll Status (eStatus)</name>

<t>Identical to the Enroll Status (eStatus) artifact received from the pledge as defined in <xref target="estatus_artifact"/>.
The Registrar-Agent <bcp14>MUST NOT</bcp14> modify eStatus artifacts.</t>

</section>
<section anchor="response-no-artifact-2"><name>Response (no artifact)</name>

<t>In this exchange, the response is a result of the HTTP(S) default transport for this specification.
There is no artifact provided to the Registrar-Agent.</t>

</section>
</section>
<section anchor="query"><name>Query Pledge Status</name>

<t>The following assumes that a Registrar-Agent <bcp14>MAY</bcp14> need to query the overall status of a pledge.
This information can be useful to solve errors, when the pledge was not able to connect to the target domain during bootstrapping.
A pledge <bcp14>MAY</bcp14> omit the dedicated endpoint for the Query Pledge Status operation (see <xref target="pledge_component"/>).</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_11"/> shows the query and response for the overall pledge status and the following subsections describe the corresponding artifacts.</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="432" y="52">Key</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">Infra.</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   |    |  Key   |    | MASA |
|        |    |   Agent    |    | Registrar |    | Infra. |    |      |
+--------+    +------------+    +-----------+    +--------+    +------+
 |                  |                 |                 |   Internet |
 ~                  ~                 ~                 ~            ~
(11) Query Pledge Status
 ~                  ~                 ~                 ~            ~
 |                  |                 |                 |            |
 |<----opt. TLS---->|                 |                 |            |
 |<-----tStatus-----|                 |                 |            |
 |------pStatus---->|                 |                 |            |
 |                  |                 |                 |            |
 ~                  ~                 ~                 ~            ~
]]></artwork></artset></figure>

<t>The Registrar-Agent <bcp14>SHALL</bcp14> query the pledge via HTTP(S) POST to the pledge endpoint at <spanx style="verb">/.well-known/brski/qps</spanx>.
The request body <bcp14>MUST</bcp14> contain the Status Trigger (tStatus) artifact as defined in <xref target="tstatus_artifact"/>.
In the request header, the Content-Type field <bcp14>MUST</bcp14> be set to <spanx style="verb">application/jose+json</spanx> and the Accept field <bcp14>SHOULD</bcp14> be set to <spanx style="verb">application/jose+json</spanx>.</t>

<t>If the pledge implements the Query Pledge Status endpoint, it <bcp14>MUST</bcp14> first verify the signature of the tStatus artifact using its trust anchors.
If the pledge does not possess any domain trust anchor yet, it <bcp14>MAY</bcp14> skip the signature verification and choose to reply without it.
In the case of success, it <bcp14>MUST</bcp14> reply with the Pledge Status (pStatus) artifact as defined in <xref target="pstatus_artifact"/> in the body of an HTTP 200 OK response.
In the response header, the Content-Type field <bcp14>MUST</bcp14> be set to <spanx style="verb">application/jose+json</spanx>.</t>

<t>If the pledge is unable to create the pStatus artifact, the pledge <bcp14>SHOULD</bcp14> respond with an HTTP error status code to the Registrar-Agent.
The following client error status codes <bcp14>SHOULD</bcp14> be used:</t>

<t><list style="symbols">
  <t>400 Bad Request: if the pledge detects an error in the format of the request</t>
  <t>401 Unauthorized: if the signature of the Registrar-Agent cannot be verified using the installed trust anchors</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/jose+json</spanx></t>
</list></t>

<t>The pledge <bcp14>MAY</bcp14> use the response body to signal failure details to the service technician operating the Registrar-Agent.</t>

<section anchor="tstatus_artifact"><name>Request Artifact: Status Trigger (tStatus)</name>

<t>The Status Query (tStatus) artifact <bcp14>SHALL</bcp14> be an authenticated self-contained object signed by the pledge, providing status query parameters.</t>

<t>For the JWS-signed JSON format used by this specification, the tStatus artifact <bcp14>MUST</bcp14> use the "General JWS JSON Serialization Syntax" defined in <xref section="7.2.1" sectionFormat="of" target="RFC7515"/>, which <bcp14>MUST</bcp14> contain the JSON Status Trigger Data defined in <xref target="tstatus_data"/> in the JWS Payload.
<xref target="tstatus_representation"/> summarizes the serialization of the JWS-signed JSON PER artifact:</t>

<figure title="tStatus Representation in General JWS JSON Serialization Syntax" anchor="tstatus_representation"><artwork align="left"><![CDATA[
{
  "payload": BASE64URL(UTF8(JSON Status Trigger Data)),
  "signatures": [
    {
      "protected": BASE64URL(UTF8(JWS Protected Header)),
      "signature": BASE64URL(JWS Signature)
    }
  ]
}
]]></artwork></figure>

<t>The JSON Status Trigger Data <bcp14>MUST</bcp14> be UTF-8 encoded to become the octet-based JWS Payload defined in <xref target="RFC7515"/>.
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"/>.
The octets of the UTF-8 representation of the JWS Protected Header are base64url-encoded to become the string value of the <spanx style="verb">protected</spanx> member.
The generated JWS Signature is base64url-encoded to become the string value of the <spanx style="verb">signature</spanx> member.</t>

<section anchor="tstatus_data"><name>JSON Status Trigger Data</name>

<t>The JSON Status Trigger Data <bcp14>SHALL</bcp14> be a JSON document <xref target="RFC8259"/> that <bcp14>MUST</bcp14> conform with the CDDL <xref target="RFC8610"/> data model defined in <xref target="stat_req_def"/>:</t>

<figure title="CDDL for JSON Status Trigger Data (statustrigger)" anchor="stat_req_def"><artwork type="cddl" align="left"><![CDATA[
  statustrigger = {
      "version": uint,
      "serial-number": text,
      "created-on": tdate,
      "status-type": $status-type
  }

  $status-type /= "bootstrap"
  $status-type /= "operation"
]]></artwork></figure>

<t>The <spanx style="verb">version</spanx> member 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 <spanx style="verb">version</spanx> <bcp14>SHALL</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">serial-number</spanx> member <bcp14>SHALL</bcp14> contain the product-serial-number corresponding to the X520SerialNumber field of the pledge IDevID certificate;
it can be correlated with the product-serial-number in the signing certificate contained in the JWS Protected Header of the Pledge Status response artifact.</t>

<t>The <spanx style="verb">created-on</spanx> member <bcp14>SHALL</bcp14> contain the current date and time at tStatus creation as standard date/time string as defined in <xref section="5.6" sectionFormat="of" target="RFC3339"/>;
it can be used as reference time for the corresponding Pledge Status response artifact after correlating via the product-serial-number;
note that pledges may not have synchronized time to provide the created-on date and time on their own.</t>

<t>The <spanx style="verb">status-type</spanx> allows for specifying which status information is to be returned.
As shown in <xref target="stat_req_def"/>, BRSKI-PRM defines two enumeration values:</t>

<t><list style="symbols">
  <t><spanx style="verb">bootstrap</spanx> to query current status information regarding the bootstrapping status (e.g., voucher processing and enrollment of the pledge into a domain)</t>
  <t><spanx style="verb">operation</spanx> to query current status information regarding the operational status (e.g., utilization of the bootstrapped EE credentials in communication with other peers)</t>
</list></t>

<t>Other specifications using this artifact may define further enumeration values, e.g., to query application-related status.</t>

<t><xref target="stat_req_data"/> below shows an example for the JSON Status Trigger Data using the status type <spanx style="verb">bootstrap</spanx>:</t>

<figure title="JSON Status Trigger Data Example" anchor="stat_req_data"><artwork type="json" align="left"><![CDATA[
{
  "version": 1,
  "created-on": "2022-08-12T02:37:39.235Z",
  "serial-number": "vendor-pledge4711",
  "status-type": "bootstrap"
}
]]></artwork></figure>

</section>
<section anchor="jws-protected-header-7"><name>JWS Protected Header</name>

<t>The JWS Protected Header of the tStatus artifact <bcp14>MUST</bcp14> contain the following standard Header Parameters as defined in <xref target="RFC7515"/>:</t>

<t><list style="symbols">
  <t><spanx style="verb">alg</spanx>: <bcp14>SHALL</bcp14> contain the 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>: <bcp14>SHALL</bcp14> contain the base64-encoded Registrar-Agent EE certificate used to sign the tStatus artifact as well as the certificate chain</t>
</list></t>

<t><xref target="tstatus_header"/> below shows an example for this JWS Protected Header:</t>

<figure title="JWS Protected Header Example within tStatus" anchor="tstatus_header"><artwork type="json" align="left"><![CDATA[
{
  "alg": "ES256",
  "x5c": [
    "base64encodedvalue==",
    "base64encodedvalue=="
  ]
}
]]></artwork></figure>

</section>
<section anchor="jws-signature-7"><name>JWS Signature</name>

<t>The Registrar-Agent <bcp14>MUST</bcp14> sign the tStatus artifact using its EE credentials.
The JWS Signature is generated over the JWS Protected Header and the JWS Payload as described in <xref section="5.1" sectionFormat="of" target="RFC7515"/>.</t>

</section>
</section>
<section anchor="pstatus_artifact"><name>Response Artifact: Pledge Status (pStatus)</name>

<t>The Pledge Status (pStatus) artifact <bcp14>SHALL</bcp14> be an authenticated self-contained object signed by the pledge, containing status telemetry information.
The exact content depends on the Status Trigger parameter <spanx style="verb">status-type</spanx>.</t>

<t>For the JWS-signed JSON format used by this specification, the pStatus artifact <bcp14>MUST</bcp14> use the "General JWS JSON Serialization Syntax" defined in <xref section="7.2.1" sectionFormat="of" target="RFC7515"/>, which <bcp14>MUST</bcp14> contain the JSON Pledge Status Data defined in <xref target="pstatus_data"/> in the JWS Payload.
<xref target="pstatus_representation"/> summarizes the serialization of the JWS-signed JSON PER artifact:</t>

<figure title="pStatus Representation in General JWS JSON Serialization Syntax" anchor="pstatus_representation"><artwork align="left"><![CDATA[
{
  "payload": BASE64URL(UTF8(JSON Pledge Status Data)),
  "signatures": [
    {
      "protected": BASE64URL(UTF8(JWS Protected Header)),
      "signature": BASE64URL(JWS Signature)
    }
  ]
}
]]></artwork></figure>

<t>The JSON Pledge Status Data <bcp14>MUST</bcp14> be UTF-8 encoded to become the octet-based JWS Payload defined in <xref target="RFC7515"/>.
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"/>.
The octets of the UTF-8 representation of the JWS Protected Header are base64url-encoded to become the string value of the <spanx style="verb">protected</spanx> member.
The generated JWS Signature is base64url-encoded to become the string value of the <spanx style="verb">signature</spanx> member.</t>

<section anchor="pstatus_data"><name>JSON Pledge Status Data</name>

<t>The JSON Pledge Status Data <bcp14>SHALL</bcp14> be a JSON document <xref target="RFC8259"/> that <bcp14>MUST</bcp14> conform with the CDDL <xref target="RFC8610"/> data model defined in <xref target="stat_res_def"/>, which has the same members as the <spanx style="verb">voucherstatus-post</spanx> CDDL defined in <xref section="5.7" sectionFormat="of" target="RFC8995"/> and the  <spanx style="verb">enrollstatus-post</spanx> CDDL defined in <xref section="5.9.4" sectionFormat="of" target="RFC8995"/>.</t>

<figure title="CDDL for JSON Pledge Status Data (pledgestatus)" anchor="stat_res_def"><artwork type="cddl" align="left"><![CDATA[
  pledgestatus = {
    "version": uint,
    "status": bool,
    ?"reason" : text,
    "reason-context": { * $$arbitrary-map }
  }
]]></artwork></figure>

<t>The <spanx style="verb">version</spanx> member follows the definition in <xref target="tstatus_data"/> (same as in JSON Status Query Data).</t>

<t>The <spanx style="verb">reason</spanx> and <spanx style="verb">reason-context</spanx> members follow the definitions in <xref target="vstatus_data"/>, i.e., in contrast to <xref target="RFC8995"/>, <spanx style="verb">reason-context</spanx> <bcp14>MUST</bcp14> be provided.</t>

<t>The new pStatus artifact also utilizes the <spanx style="verb">reason-context</spanx> field to provide a distinguishable token.
For pStatus artifacts, the JSON object in the <spanx style="verb">reason-context</spanx> field <bcp14>MUST</bcp14> contain either the</t>

<t><list style="symbols">
  <t><spanx style="verb">pbs-details</spanx> member for status information corresponding to the status-type <spanx style="verb">bootstrap</spanx>, or the</t>
  <t><spanx style="verb">pos-details</spanx> member for status information corresponding to the status-type <spanx style="verb">operation</spanx> (see <xref target="tstatus_data"/>)</t>
</list></t>

<t>Other documents may add additional <spanx style="verb">reason-context</spanx> members correlating to other <spanx style="verb">statustrigger</spanx> status-types or to include further status information.</t>

<t>For the <spanx style="verb">pbs-details</spanx> member, the following values with the given semantics are defined, while additional information <bcp14>MAY</bcp14> be provided in the top-level <spanx style="verb">reason</spanx> member:</t>

<t><list style="symbols">
  <t><spanx style="verb">factory-default</spanx>: Pledge has not been bootstrapped.
The pledge signs the response message using its IDevID certificate/credentials.</t>
  <t><spanx style="verb">voucher-success</spanx>: Pledge processed the voucher exchange successfully.
The pledge signs the response message using its IDevID certificate/credentials.</t>
  <t><spanx style="verb">voucher-error</spanx>: Pledge voucher processing terminated with error.
Additional information may be provided in the <spanx style="verb">reason</spanx> or <spanx style="verb">reason-context</spanx> members.
The pledge signs the response message using its IDevID certificate/credentials.</t>
  <t><spanx style="verb">enroll-success</spanx>: Pledge processed the enrollment exchange successfully.
Additional information may be provided in the <spanx style="verb">reason</spanx> or <spanx style="verb">reason-context</spanx> members.
The pledge signs the response message using its domain-owner signed EE certificate/credentials.</t>
  <t><spanx style="verb">enroll-error</spanx>: Pledge enrollment-response processing terminated with error.
Additional information may be provided in the <spanx style="verb">reason</spanx> or <spanx style="verb">reason-context</spanx> members.
The pledge signs the response message using its IDevID certificate/credentials.</t>
</list></t>

<t>The <spanx style="verb">pbs-details</spanx> values <bcp14>SHALL</bcp14> be cumulative in the sense that <spanx style="verb">enroll-success</spanx> and <spanx style="verb">enroll-error</spanx> imply <spanx style="verb">voucher-success</spanx>.
<xref target="stat_example_bootstrap"/> below provides an example for bootstrap status information in the JSON Pledge Status Data:</t>

<figure title="status-bootstrap JSON Pledge Status Data Example" anchor="stat_example_bootstrap"><artwork type="json" align="left"><![CDATA[
{
  "version": 1,
  "status": true,
  "reason": "Pledge processed enrollment exchange successfully.",
  "reason-context": {
    "pbs-details": "Pledge processed enrollment exchange successfully."
  }
}
]]></artwork></figure>

<t>For the <spanx style="verb">pos-details</spanx> member, the following values with the given semantics are defined, while additional information <bcp14>MAY</bcp14> be provided in the top-level <spanx style="verb">reason</spanx> member:</t>

<t><list style="symbols">
  <t><spanx style="verb">connect-success</spanx>: Pledge could successfully establish a connection to another peer.
The pledge signs the response message using its domain-owner signed EE certificate/credentials.</t>
  <t><spanx style="verb">connect-error</spanx>: Pledge connection establishment terminated with error.
The pledge signs the response message using its domain-owner signed EE certificate/credentials.</t>
</list></t>

<t><xref target="stat_example_operation"/> below provides an example for operational status information in the JSON Pledge Status Data:</t>

<figure title="status-operation JSON Pledge Status Data Example" anchor="stat_example_operation"><artwork type="json" align="left"><![CDATA[
{
  "version": 1,
  "status": "connect-error",
  "reason": "TLS certificate could not be verified.",
  "reason-context": {
    "connect-error" : "Connection establishment terminated with error."
  }
}
]]></artwork></figure>

</section>
<section anchor="jws-protected-header-8"><name>JWS Protected Header</name>

<t>The JWS Protected Header of the pStatus artifact <bcp14>MUST</bcp14> contain the following standard Header Parameters as defined in <xref target="RFC7515"/>:</t>

<t><list style="symbols">
  <t><spanx style="verb">alg</spanx>: <bcp14>SHALL</bcp14> contain the 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>: <bcp14>SHALL</bcp14> contain the base64-encoded pledge EE certificate used to sign the pStatus artifact;
it <bcp14>SHOULD</bcp14> also contain the certificate chain for this certificate;
if the certificate chain is not included in the x5c Header Parameter, it <bcp14>MUST</bcp14> be available at the Registrar-Agent for verification</t>
</list></t>

<t><xref target="pstatus_header"/> below shows an example for this JWS Protected Header:</t>

<figure title="JWS Protected Header Example within pStatus" anchor="pstatus_header"><artwork type="json" align="left"><![CDATA[
{
  "alg": "ES256",
  "x5c": [
    "base64encodedvalue==",
    "base64encodedvalue=="
  ]
}
]]></artwork></figure>

</section>
<section anchor="jws-signature-8"><name>JWS Signature</name>

<t>The pledge <bcp14>MUST</bcp14> sign the tStatus artifact using its IDevID or domain-owner signed EE credentials according its bootstrapping status as defined in <xref target="pstatus_data"/>.
The JWS Signature is generated over the JWS Protected Header and the JWS Payload as described in <xref section="5.1" sectionFormat="of" target="RFC7515"/>.</t>

</section>
</section>
</section>
</section>
<section anchor="log_hints"><name>Logging Considerations</name>

<t>The registrar <bcp14>SHOULD</bcp14> log certain events to provide an audit trail for the onboarding of pledges into its domain.
This audit trail may support the root cause analysis in case of device or system failures.
The logging <bcp14>SHOULD</bcp14> include the identity of the pledge, the identity of the Registrar-Agent that was interacting with the pledge, and relevant artifact fields, in particular telemetry information:</t>

<t><list style="symbols">
  <t>PVR received from Registrar-Agent</t>
  <t>Acceptance of a pledge into the domain</t>
  <t>Voucher provided to Registrar-Agent</t>
  <t>PER received from Registrar-Agent</t>
  <t>Pledge EE certificate requested</t>
  <t>Pledge EE certificate received from Domain CA</t>
  <t>Pledge EE certificate provided to Registrar-Agent</t>
  <t>CA Certificates provided to Registrar-Agent</t>
  <t>Voucher Status received from Registrar-Agent</t>
  <t>Enroll Status received from Registrar-Agent</t>
  <t>Pledge Status received from Registrar-Agent</t>
  <t>Pledge EE certificate revoked</t>
</list></t>

<t>For log analysis the following may be considered:</t>

<t><list style="symbols">
  <t>The registrar knows which Registrar-Agent collected which PVR from the included agent-signed-data object.</t>
  <t>The registrar always knows the connecting Registrar-Agent from the TLS client authentication using the Registrar-Agent EE certificate and can log it accordingly.</t>
  <t>The telemetry information from the pledge can be correlated to the voucher through the product-serial-number in EE certificate contained in the JWS Protected Header of the status artifacts and the product-serial-number contained in the voucher. By this it can also be related to the PER.</t>
</list></t>

<t>With this, it can for instance be analyzed if multiple Registrar-Agents are involved in bootstrapping devices.
In addition, within the domain it can be analyzed, if the onboarding involved different registrar-agents or if different registrars have been used.</t>

</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_uri">
      <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>Obtain 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 credentials 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 EE certificate associated with the commissioning device instead of an EE 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 not encrypted.
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 <spanx style="verb">proximity-registrar-cert</spanx> field in the PVR matches its own registrar EE 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 pledge IDevID certificate. (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 Registrar-Agent EE 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 Registrar-Agent EE 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 Registrar-Agent EE certificate may have been acquired by a prior BRSKI run for the Registrar-Agent, if an IDevID is available on Registrar-Agent.
Alternatively, the Registrar-Agent EE 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 Registrar-Agent EE 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 Registrar-Agent EE 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 Registrar-Agent EE 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 query the Service Type in combination with the product-serial-number of a specific pledge, e.g., in the Service Instance Name or Service Subtype.
The pledge reacts on this if its product-serial-number is part of the query 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 an 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.
Another special thanks for the detailed Shepherad review and connected discussions to Matthias Kovatsch.
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='References' anchor="sec-combined-references">

    <references title='Normative References' anchor="sec-normative-references">



<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="RFC5280">
  <front>
    <title>Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile</title>
    <author fullname="D. Cooper" initials="D." surname="Cooper"/>
    <author fullname="S. Santesson" initials="S." surname="Santesson"/>
    <author fullname="S. Farrell" initials="S." surname="Farrell"/>
    <author fullname="S. Boeyen" initials="S." surname="Boeyen"/>
    <author fullname="R. Housley" initials="R." surname="Housley"/>
    <author fullname="W. Polk" initials="W." surname="Polk"/>
    <date month="May" year="2008"/>
    <abstract>
      <t>This memo profiles the X.509 v3 certificate and X.509 v2 certificate revocation list (CRL) for use in the Internet. An overview of this approach and model is provided as an introduction. The X.509 v3 certificate format is described in detail, with additional information regarding the format and semantics of Internet name forms. Standard certificate extensions are described and two Internet-specific extensions are defined. A set of required certificate extensions is specified. The X.509 v2 CRL format is described in detail along with standard and Internet-specific extensions. An algorithm for X.509 certification path validation is described. An ASN.1 module and examples are provided in the appendices. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="5280"/>
  <seriesInfo name="DOI" value="10.17487/RFC5280"/>
</reference>

<reference anchor="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="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="8" month="July" 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-12"/>
   
</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>

<reference anchor="RFC7951">
  <front>
    <title>JSON Encoding of Data Modeled with YANG</title>
    <author fullname="L. Lhotka" initials="L." surname="Lhotka"/>
    <date month="August" year="2016"/>
    <abstract>
      <t>This document defines encoding rules for representing configuration data, state data, parameters of Remote Procedure Call (RPC) operations or actions, and notifications defined using YANG as JavaScript Object Notation (JSON) text.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="7951"/>
  <seriesInfo name="DOI" value="10.17487/RFC7951"/>
</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="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="5" month="July" 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-12"/>
   
</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.ietf-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="Esko Dijk" initials="E." surname="Dijk">
         <organization>IoTconsultancy.nl</organization>
      </author>
      <date day="25" month="July" year="2024"/>
      <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-ietf-anima-brski-discovery-04"/>
   
</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="RFC4648">
  <front>
    <title>The Base16, Base32, and Base64 Data Encodings</title>
    <author fullname="S. Josefsson" initials="S." surname="Josefsson"/>
    <date month="October" year="2006"/>
    <abstract>
      <t>This document describes the commonly used base 64, base 32, and base 16 encoding schemes. It also discusses the use of line-feeds in encoded data, use of padding in encoded data, use of non-alphabet characters in encoded data, use of different encoding alphabets, and canonical encodings. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="4648"/>
  <seriesInfo name="DOI" value="10.17487/RFC4648"/>
</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>

</references>


<?line 2747?>

<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 two main 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 not help as there is no previous relationship between the Registrar-Agent and the pledge.</t>
  <t>The pledge can use its IDevID certificate to authenticate itself, but <xref target="RFC9525"/> DNS-ID methods do not apply, as the pledge does not have a FQDN, and hence cannot be identified by DNS name.  Instead a new mechanism is required, which authenticates the X520SerialNumber DN attribute that must be present in every IDevID.</t>
</list></t>

<t>If the Registrar-Agent has a pre-configured 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 scanable QR codes may help automate this in some cases.</t>

<t>The CA used to sign the IDevID will be a manufacturer private PKI as described in <xref section="4.1" sectionFormat="of" 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 its own certificate chain verification against a store of manufacturer trust anchors.
In the Android ecosystem this involves 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>Also note that an Extended Key Usage (EKU) for TLS WWW Server authentication cannot be expected in the pledge IDevID certificate.
IDevID certificates are intended to be widely useable and EKU does not support that use.</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 14 -&gt; IETF draft 15:</t>

<t><list style="symbols">
  <t>issue #134: editorial clarifications on references to <xref target="I-D.ietf-anima-brski-discovery"/> in <xref target="discovery_uc2_reg"/> and  <xref target="discovery_uc2_ppa"/></t>
</list></t>

<t>From IETF draft 13 -&gt; IETF draft 14:</t>

<t><list style="symbols">
  <t>Update of the examples in <xref target="examples"/> to align with the defined prototypes</t>
  <t>Changes incorporated based on Shepherd review PR #133:
  <list style="symbols">
      <t>Terminology alignment and clarification throughout the document to use terms more consistently</t>
      <t>Restructuring of <xref target="exchanges"/> for protocol steps to align to the general approach: Overview, data description, CDDL description (if necessary), JWS Header an Signature. This lead to some movement of text between existing and new subsections.</t>
      <t>Inclusion of new section on logging hints <xref target="log_hints"/> to give recommendations on which events to be logged for auditing</t>
      <t>Alignment of pledge status response data across <xref target="vstatus_data"/>, <xref target="estatus_data"/>, and <xref target="pstatus_data"/>.</t>
      <t>Included MASA component in description of affected components in <xref target="system-components"/></t>
      <t>Moved host header field handling from <xref target="pledgehttps"/> to <xref target="pledge_component"/> as generally applicable</t>
      <t>Updated status artifacts (vStatus, eStatus, pStatus) to align with BRSKI CDDL definition, but made reason-context mandatory  to have distinguishable objects for the registrar-agent</t>
      <t>Correction of terminology of local host name vs. service instance name in <xref target="discovery_uc2_ppa"/></t>
    </list></t>
  <t>Update of informative references and nits</t>
</list></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 <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_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>
</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_component"/></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_component"/></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_artifact"/></t>
  <t>issue #124, determination of pinned domain certificate done as in RFC 8995 included in <xref target="voucher_artifact"/></t>
  <t>issue #125, remove strength comparison of voucher assertions in <xref target="agt_prx"/> and <xref target="exchanges"/></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 Registrar-Agent EE 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="obtain_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="vstatus_data_example_error"/></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="estatus_data_example_error"/></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_example_bootstrap"/></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_component"/></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_component"/> 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"/>.</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
SubjectKeyIdentifier 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"/>.</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"/>.</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:
H4sIAAAAAAAAA+y9+X4bx7E/+j+eYkKdzzUZAxAX7Y6T0BQV60RbSNo++fn6
ikNgSE4EYJCZAWVG9nmW+yz3yW6tvU0PFpKSZVtKPgkJYnq6q6ura/lWVa/X
69R5PcoeJV8dHP79afI2r8+TV6NseJYl+SQ5yKppMRlmZfK8GGbJOn2p9+rg
+UYnPTkpswt5Dj/qDIvBJB3DUMMyPa17eVaf9tJJPk57J2X1Ju9Ny3Fv624n
LbP0UfJympVpnReTKkknw+R5OknPsnE2qTtvzx4luy+ePt9NvvtbZ5jWMOD2
5vadTlXDF1+no2ICn9TlLOvk05J+qurtzc2Hm9udanYyzqsKRj26nMK3nu4f
PfHHW/TyQVo/Sqp62JnmjzpJUheDR8lnl1n1GfwyKMbTdFDbD6rLcZmdVs4H
RVn7n8AUJ0Wdn+bZED6cFPStusztMOmsPi/KR50e0BsePOwnT8o8q+B7TMzD
Ojs9zSbm06KE9RzmON0q2f0bfKI7IR/yG7IM3vCyrove1+n5pHeQT86Se7iI
vL58lDyfTfLBOa1pCO/47MHW/Z2HvMbZpC7hG3/LynE6uYSPsnGaj5AoNI/+
Kc7jrxW/qw80ga/MyvxRcl7X0+rR7dtv377tO3++rSs76iffZeUkK83Sjs6L
cVrZT3+ppdU0j95bmsdVlrbfT55lqV3Y/igvav2IVrWXV4MiObwEKo7dZRzA
XOscfkurKkvum1V8l45GeZWNRtnELGXv696Dnc077lIO4bz+JytHwMXw8fSc
zsba53e2kjt3kgf3HyQP4WSs2ZWOYEp/HeBcaHky/ed9mkdaDqtiYhbxHD/K
Rsle8FfeJXhjNgIyJofFaf0WjlXyXVG+qeyrxoPycxQBf630q/1B6hJU6en8
+XZnUMDC8pNZ7RwJoO7j/F9vLHWrN4V+QpN5WhzBc9VsBBJicNmfjOwsMvhu
fwjf/SvsSPClnrJhARTMqirZH7zJylpHfTKrZ2X2NssdRqmzvw6q/mk66w8z
h3p/Ly7SuiKuE9qldX2eA287f/G4+3BwDiP/h7lcRidqvZEH+pOs7lxkk1mG
cuisLGZTEWN4LFCqJvzUO/rlr/hwH17xM34bhPjs5BF/rff27HYghTuTAk5A
nV/Q2AdP9u5u3982Pz7YlB/v3b+3bX/ckR/vb+7oF+7f3borPz64t7VpfzSf
PnyoPz7cuUdfeNp73Hduhn+9rXoXxWxwnpXeX2H1sFunveo/9bQ3qMrIo+Xp
4MHOvXsnefWok09OgyVtP3xwT37cubf9UGdxd1sndG/7zpauY/uuLvTB5h2z
jjub9/XH+w+37ZL0Cw83zWMPt8zyH27vPIjMlomfZvqn0hypXjae9bJ02ism
JwV8BOKs9fkhHt2LDI4+fmN/f7/3YHO7v7V7gL/DdcVXOf4hkT8kh9kA2Dh5
nF3kgyx5OoRbDq+jkh7Qywd/7slhmlQwzKzOkuIUBFk2wNsqHdFFyb8WIGDh
sEzO8kmWlRU9rPf01oPe5j36pMrwosCN4eF5viiQeWIoko3u0EtPUAbCreiu
47Nd+dR+MXlVFnApF6PkJZDhIs/efua8/3laDs5RW9imD5kn9PWvHj+xkhy+
n+LQcOD7enRuj0EkA/Vvb23t3IYHYQHpqLpdjfJhVvXgQ9mK2RTfBtslm4I6
U29KOlMvn/RK1Zl6YxDbju6zuYlSYDJN63NZZlqe4SWwprPCE41LADa2s8IP
bo+rs9tVmsIct8qHs+LOj//8z+Tl4PTB3f3LN5sH57P67sMHt9dc4q0NQDjD
f2Ga+MYEJBItF7SzYgpaU3p6mg/+wo/wxqOyhLIFvpAPJ9XQn6ShXHaRjQpQ
oPryTboJYbx8grSDUzsBJukNid/gUs3LDIXr6NKb3C4/i2zJo8H1xk8m8mRi
n3Qm+beiOBtlLQy2JrQbwmLXnFs7O+krVZGg8Ptt4JGdTfPvj7dvYnXyBCmk
pyibr0K/tKzzAQx5u8JzC7pAD0b3SHcof2Bd/UVWv4WL15yL6n0Ra2cb5PrO
w537y9IqvpJOr9dL9LR3OkfneZWA4TBD7Ru2/hRkSpVkk3O4pEkjr0AHT74q
ihqfmE5R10vBLBkXIKBEtP09uwSpdQoqFJB+gJe2GCpdvYM2cJBskp6MsuTE
GwtsnCEof3CRJ6dZCs/ih5MC6AcHZ3SZjPJxXgONZOPzCyT8CdA8A5U8TfjU
k2yszzMZKimzM1Lpyn7naZ1U02wAEhdkKIwHQn9yBivEb+cTEDFABbBDEhQV
o+S0LMZmVJAleZ2n+Hb8azcBdWJWwW/wBlkerMp8W8QOzp+//hbu1IxeJLME
SsOjwAkgOZOyGGX9zhNYJygqVXdV8w8nXxbDGR7USfYWiDucFjlu1ykNCRcO
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
sG1dCr7o5LV6kWncEQkdGyGNzkCjXcgXaGpcNTLpm39lWN1DyWUP4hxaDdye
G2TY52NOmJPhaRSBNplMSPz2bfqmiM32Chz3NEi4s7MD0sylHKl0XFU9Kwmz
RkOqG9jfsAWLlqaRuhkkysFiaN2MLzoTE9aVlKdknF6S5X+eXsDCLsFMKosJ
GmI8L8d3TtMz5A2Ix4HpvEScmmFdK7iOOX7HmDxWZKkKIWuUEaRXXvFVBYsG
sQAkphL76EmfxGR712n/y3sCz78tQAEBUSHxA7rlKs5RNRL22EZUlCsisymz
s7Q0kEEfU1hpxIzsKMW4O7VCkUaM6SCp5R8zuGGw7xP7WrAy6rER71eZmnk4
HQUT45x9Tzux65AQpI2Bc/ep8Xg2UW8OHXM2D6cZyLkNqY7qmyWVMcFzxypB
HuNdMYpbc2PUEjWLduzPngqbSvHXLgOwQbFM/n7sErQ+A71E8KJ1OGRxZr53
+69tb25v9zYf9La2jza3H+3cf7TzsL+9c/f/cAZsqEbAYJNhUfaYH+7c39pa
c1LcVW1wVYKfY9c+rkTu/daVSg5s6zV/jdTyuCF67dTyjyGz/CqJ5aGralGG
eYN8MCt0olP57/NIhnjHsZV/ZUnb/rRXSdqur5C03Qo8aKe99ZmHCdh6Cn6h
zOmW4mVtjvF3txoecKbHQk/6+y9e5txgTFZgVhhI1GFpP10p3C0QZsaD5qsY
13enhY73X9Cd5u9R05umWzvXm6Zf+iW9ac2FfKTOtDixVD4pa7w3Z1pkwz/5
0n7jvrTInluhHbrSIl/+4J60Sq0tFl3nop5QJTJT1qwSx0pbr+Plehqb+7K9
HNsK5S9dx59YvkxH9ftFvX62zhS2KebP/qKVphLXBRgpJJX8Mfmv/0rLkxw1
j8veOJ2SzGlq75XjtPvMd9pF9nzdnf7GXLnScNmxDi598YyDLBqeWdeqdPBH
16DgmBmJcTXzpfEyt2hu1JUTrnB8da5rLlKprptwv5k87H/sgq4b7wk7IMvk
CGzeUK6xYpPUsBNmvV4Ru/AN1ytil+UShM3I6Jme2Dp2diOjtVai3j7XfexY
td2EdSV6RXGDr3D8FwKU9FnLOA5UWrEPKh0O3RbZrYzkOrvg9eyROPYc2cfu
hCpaZ6G+anPbNdfm6I8xoncDM5a9FlaYculF665Oy0wlFMlLLMkVbwEuWFWD
KhZeqYtpb5RdZCN7xHgmbAwjoxUgWATLfGwMgXNB7lKDR9fH0wfx4wTv8W7S
7ttiVGhh72YBKWuA3vZMoj8aQd8TAI+diO0niS9Rz5hB3LrFsd7z1AiJYicW
cdJhI6R8Yh3a9ATOaje+Z8iykT0zOwWM1MbC72mtfEsu2gXHEdm6ER/Hkhd3
M2gjQbDbdsk987rfzs7zHfz/l/fu3W0jSb7g//oUvO5zduw+khogRdmqvjN3
RYrgQwIk4pEgMbrHCxKQAAIgYQIUHzX93TciM/EkZbvaNTuz59ap7rJJMJEZ
GY9fREZGVPQV10w5OgQ1u0GN+ZbfmQFwnfBzgDrfMDNeoSTNVtwfC/plFoXN
Cl3myiYPRnEqHcWj8idPxv6/6wf/WqHUI6H4oUD8oFDorFIo9J8Yvl5C9DRF
M3zILVvx+Xs48Ud1RAtTd2z8/7uZOn735Fi3sRILlWK3eZkCgGz8d7zqgb0s
ji/+P1JI2cRrGqk0r3y6lEXe1UX/2XOtS3IO4n4oySdOnP5TZPlDhZYfamKN
V36qR8t/vOZv9QXg3n3o/rF9+r4oFxeZqqJcfP7PivIvnNucjnj+H3tu85MF
getU+y8rCAzL+oPlgOtnIaeqAWcRqP+fHSxVp/1HDpbif/Jg6aj27g/OkziW
W63f1c+lE3g7v4OOPz2Zc/DejQfmaP+Xn1cB4RoPq9dXnDGoUry0veZZAr//
JVy9fgXap1mVp6Mr9JgihYJAQyJv7KpMKR6zZJXC8AqvHxa3KJezFU+HgNlk
OS40yaIwi/xybPn3COp5TjwzrUDuxtzGox8bLNs+8ZNyzf6sQgPs3T5J3ShL
cudnhCFfNF9JFnrAgX26v+m+mgZyfvK7uqxSvL6lMTle7bRcTzgbid0uBTSF
KXg5E9I4U0KjajF+OAePYH36QI7q7Cei1m5812YDz/AbFLzull1JaaGBPkpt
eJAU/nZ+b/p4ODxg+tErn04q6Lx7+neeKI/Lr6Z2b999/vsz7d42Kp1lv/90
rXbcj5ZYvYj/kwT5Y08fEQcLIzjMJ0Cxy1m+CgC45zvnoszvA1WFl+U6suOB
ows7eVlu9j3yWF5MIDdtNj7LTx4v6HkEC6FeHr3LDrf2PuGvpHaT4zWY65Gd
y95DkSK771Q62kYVViQC/SB9g15sAwWEpPLTQlFj9ITN8aRcHRVOOM6l5IKT
xadSb73avP4gu/JXyr0c5eLmN93fySatjc0netno8EN1nudIIRBN3qusCyQc
7ILJNJbPrvrh43k9C1QlM65yMQUR8FC0CVMfbXVtU5jX6S/fsIoBnVDVRDIV
zarmZ87oeZ5JkmunRpGZmb31PINhJWOSv8fxX2jeZlrw4YXN5oOLeDn1QMKS
K2k8FrFkZhuHt8rtsWH0YR5fgdLULpbTnVHL+Wu3LpV0FFb6OskqT/BCRqWL
uBn59mdn9Ad+UmhN3B536dm1kvrgSy8piHIAtbEBTRzvno5nqMPkQ2F9ivlk
91Yx0/I/ADnAA5r7GrFb/f/RuKP4gVZrOL4ZTf/BO/9Zbux/nP3HRe2fow9O
/FN+BosMZEtlqhXewLv2osmhd1MzlVKexb/rg6EGgOZ/0zoFWxZD583I4evH
GYUm/PN6L+1TQ6TxW/UNWUILV8vcUFxkV9xODuF+d4i8wmQ+wtEQSWUSBS1y
pbPK9NO7tEiACqeGqNOgNNTREO7pWZzoo/zeEN/ipDoEO5usXjOos1ZliH/N
/qH+AxU8eiH062btZ/7DScbPY8PgM/yDi9ydomHqBwWGCrhiCZc0jyZ7I4Oh
yaz71PwHS/wBmtO/lof47a9/bdAL9Dw79H/O1v8Gj+h51RrU6yswqx+TT/hs
Oo/5I7cJNaB0hGFP6zf+p+8mr/+376Yvl6v167/xx/A6KabzfP+pksjik2jg
OhVdq7oR5pVrWMXJpXU+aJEOeABsCH70VJ5+Lt04WL4fVCM+8fIsVaVIK/0w
tyXkiVr8uXlVedYuetAMYlbrpcgOR9N0eSblPTrYQDZmg9G2K1leRwnm4AgU
6jCckjLbWEpNKQU787I0J9BXvEqZcxdiyn2p+FBo791SEaysFM2pMjSMEWj6
Jy2ymvtjVNpWvAoOXzliHeYzpbR0D4VI5aTuny96U78yzsAhr1DFM7X5Tfbj
12S3/jP8xSfEzlxx3LLfWyTpnfCASkEYCg0zv696OR6LSmUBGKxkAEozqYei
eWknnD/FIdQg4rTBfjEeYM7fEfhLktXcr958wZ/5SVbFljuHpdKCPzfKD29E
s4Ez7/Vt5Ts45zfXDmn13xJ35WD61MorXkreOSXbiXf5I6v2xdniqLBigi/D
l2SRhThE+mNhghO0TjYsLwLm4vgJ1h1GPQHbboN3Bs7rxdReNew0xf4e68ZH
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
umw0TFp/PWVlJ7EkJK3QhRX3aF2qWpdQ1loJyfGk3Z/nxdp6t0/ALam3cnit
s7W9bcSbWejP81Yx+6zWnOeGMbIaeyddc3FVlRXYg2V5fvyHGnSdNdmRU6m7
KG2pUTSeLhOoXp4aHnPDF1YBkpXQu2k3sQIjFieF3/LFZUug1RfP+SKOGjrQ
Cl52QxrfKYwaHu3mCFPCb2duWeRgi7HWLHbAo5eiWdcs1h4kl79yXedzfu25
PH02jUm7KbBQjsLqst4pWLh/7cOi+K3gCKvBU+Fj3Q9Yc+n1npPo/WKtHq1I
Cj+7AE5mKtPJy+JWmilV67J+TD6dM93JHioXKKUtLdxdnJV8TlyX9xTK+qgW
XQdo1X4mDJko88qPdlGdN2sBVlRExbLPEfZAY6X0aLlTXF72k9p0WDddeLHH
W5ex5hcJ9uICkUhO19PGqWJ3+NObwC9xf/Q28LJPRZuprbeiFVrpgksrpfRd
R7meZb1WsHIvb8WK5FzyQnK8AQOvEWynpzfhsqxxEpguLU87VhtzKuW0ijqV
yU26ilitaNbwO1lFvAoh11rd27ysdN6JjkvX1g9DWue8WoSWqm0YEquZv1/6
9Ir1T/9ftD7oOn25SJvp+vUitXer5SraX5SHvLCXc2+1TrJCq/yv3DBgOTd4
FZ3NEnmbsnupOjHXSqY7o1PiP+YyBZTGcp5MZHhzOrrvSQRDxB52Wim60rHq
7LTw7pF2Yj0BeQVnOpeirV5RW/b2aZhU1HLeGcdmvePKliMvhswrJ+MU+DJY
eeys/CmlSn0CvPzBm8u1f9b/otI9mTaFKA9WErMkxaLgNaFhdc0zMvIy627j
dumssQqwO1/xEvacpWgf4aSRdyyYw6+BydYNHceRae3T9W9MZstLAEZ3Q6R8
roKLsuYJbyI9T6lOZnaBWRZkUroWrKaK/aZo/6Ro9cZ5nEEdZEw/5a1KWVsa
1iBmE6aMU3OTnnW6b3wEbQUMbLOFUirgd//4BxY9vcVa6cu8FgOWK92lrLMi
tgc1aGT9Y+/e+ES5Fk2/aZq0/DUimqrJLcwG05XuT/T/ODv+LOsYneYdHmeo
OBwXlgrbQVUC0g5mVViyotYzax5zSRGsj6xA4U0XuyrBs/+OAf0eIOIVbF6M
XYmwmic2EfjfAFphI7967Ef/oEgSfok/xi4WoPS6oIWKstlnZxKai2FPlxrO
2n5JG+JV4+LfKh+0ac8yejjT+IvYuvqt4dJ3o+6fh3bBvrSA+TrruJqwQpe1
IsSsxWxWvX2PBaJRNeUffN3Mm9h7g1faPfoqjm346uzEvFv1eV/ReRuxU2oo
l1fmpG/NC3f+g0IUdB6KCvCseLDDUDVWWE5gtGwLAJmt1rBZDDhmpap5JdW8
kOqTigRr/QZ+0l8buotKZBWuXvfsVVEGrCpEbPBG7FlfvByNcnWGRVsS1lqM
1rrGTtMgivQV4D/xUsq8WDkucc6mDGtE7s99BPhdnBTL5oaT41jUBuuVPfd+
azy+YZl4d3vOijk7RX/e80b37u6h/EnjI3aucrHUi73eAxbBQy/eBR7L3+a9
FljTohDtPho3NHyoJphPATuFtVszOOruaMln5hIgUKNVsrMWZrjsIcLkhFeG
p09wFQ7/ArlpIzIPu4QDPeDvX+mf2Z6/Ynn0vBdrwcXMQtEGcwmXXhzJ5V1X
NuiOLl/p22/zvcx7FmQNofPzQ0o6e75eJTiHN/b1V/wUa/HALtU+waX+/ntc
+bS0VlQp9DSy6BJICwMXG4HqHswe1V/5Q5zrmY24KD7+xz/o0PIKy/l4aIA9
tmesnRO2kgjzir0wrZJX/A8m5Oyjr/mQKL1lp6jUtJe+igmlk9EJ6xW90A4I
H99YE8nzhpv9IWZ/+FQTUdZrhnPgC7XkyJLoUkQwee6vXWSVgJmXh4oUx6GW
mZUSf934icca0PB+KJnPWxQSor076MS7zPRl7aZKIg1/xbLVISMgehiNt+Qy
bz3jZ+0g6DcndB5TbI2KxsobGFAmzfUqFQQfK3sfKcFmXQm2qBK8o9YBmJeF
X+D1GRb8kGVN3vI9+O29YsNZ9/ePKZaD+kDJRA+0wYozB6dowwVPnJfsPC8Y
FYf2nDlhuG1nBRuU92qZVhgZ4UBNmPhhOXZDYg2sEs4p2bF99nekE/tzfpL/
6bL0Wso8yWqzph1KHbfcoItxG1ZpZwJPsTog2TJcO0ONS8EklsmuThpkgrbM
pn9MYyy5z/RImtJmEczBcjkWBZpVW+7R5nZ8Ryqt2mqzL3iVbtIFo0jeFDh/
+1d8+isICkpmuRI1ncMmna+KXju0kZgfNW6VoXzbMPtAcJcq4HIlcJjjLXgb
YUO8OW80hebVWUk35VX8OSXg/dliuBliPX/xbbbzxppMMIjpXGQtZvMSXccd
/Wh3nLzRcU+lTS8rKA25bgmWZQ9QGRw42s5oju0rTyEHsS40zRJywMrdlXr6
DNW+hNjU06Ul6pm1R3hwm/fzqkMB6hQ1Gx+fNiHGMJlIAThofvp71kUNKPJb
RaXkKOE876GA7XNprXeXzSXrk8tBwt8ZDuRiiGFQVDC822ge9WGrxC9wK//O
unW6rLlJpknpMpFpOG2BmLSrQrll1ylaCnVaimX0+BmYhaOdLLjJ9HiuC09U
cC+KtfOIHXp3mU97AjheltCq0DrnLohDEU/julH3uQrzxhlqy7tZd6tRPhob
zRrB2Dy8UTJsrINVKWb5++9zGwdA+1rMqPnlt6JlOqwmV5rgetsOaJg8pvpe
7yu6bns993w8vwN9joihCBWyDgBIXqQfKw1PcahYRvHCed6BGB7FoFhmqYqt
oKYKqUJB+9eisaLLYhrFk/WqfuWZ+uBmYvcmSoVsLzZLGtnIjRrNUWo3vwil
ZxI/dcvyAF853I45G+asZqtkauYIhMAvCm4rmmsV82ZdhsJc4zNWuysz40kW
qwxcDFdqWvU9ipww/Of50gqSwHz66q321KA9X7FxRNELsZgjTKXoIpj3QaDb
zhtylJXUscQKN3WJFd6X2J8TU9Y0k7P4cROmlw1N3SvG4n2G8g4O2LAP9CXt
ikKn9BOSftM6/947Mc4HHIOdcJNVuMmsNO08htNlhH5vd2oKJX/Pr+sR+sZT
akK4Lr2ndPxFqY0iCBqYup+NE93jOGLKZ0Tfwr0O7ljnPkflrSK8Ne/6hK2h
j1BNpW93Ra8JpQkXAAAmxU90Mstc8i8KYPMdCc5f0DzPTI8f8gOfdzqklXuF
lXuM2iyCnLMzh0cI1Movgi3u5s9saPgI/alSi+fsOIy9hzItjLR+K+Oc8ohX
57Q1L6qyXLXH/nJZNEKttFbFwKdNR6Wpmzc37TJv416y97/ztnZm8xA2uMtX
bPFHe777CXt1fpqHbWuYtWdG5TX9Gq93BYsUwYOa7aDQhHfRzilEFTZtrsPW
9E4kA5UnHdZBC8MjFcUmlSlB1RjrifYRVOnta/rpRIOTei/EH723sWvPcBj4
j/16ojHLTetaoCvecARI3Zw8dATqsnLK3rnVetdXhvrwEcMdeZDj0wld+6Wm
a4Wbsq79IpSk77R/SF3farzou02N8wZB5RAJVXal14ql12agoOiGGK1SPFTA
v1NXCCn+laFxGpkoDdQsqYD8XDs7mS65zbyvXuHugJYKfuYYnVudyiRB7txv
F6DVi8BJXaS/tCqE5e4YD7JQN42ulMWQEd1fFDCuNMrnsiksdx4sWZvTh1Yn
Fc2XL6Xxzoujftogp/hB3ii87EriKRJ3Gxg56+cKtLsnjdwXLZrThmxoOj02
yifP31nqBFyYVPEIrJcsM56XlI9LaONy9MtmRTNUnk6QuWm5N8ihYILHE4h4
Iub9lOLKdApJjhHyBrFm/6Hb+Mi8eR5Y5/wPY1BbRw8bUXO62Hhb5In5+Ofm
p1L3KTT+1Rhq2dYlJSo0f2sEGDjPV+4uHdbuFsUhN/KaWrU1v//O2pl+PWHd
b65+K1O25PJ95O0gaeyIDeA6n0q/bJd/mcsYP4CoIo3kREvl0kjXv+X6Ldfz
L/4rVTYtdjZKY134R9rXHK3Sd7BMaejPv+VwlokGHqaE9jLvTpm/kL+NhYp4
7+bITzAyXB3y5rdMEdVxFxoeF7bRqTbczWxc2V5WEZZQdsQAplDLnl0BKUMm
qua+8m++uuv1CkcqDyWWhipQ10v5zfmEUhe7naUUQxeKgwUs0sb3a6vXN1EU
gDvRgdlROaI5C9wBAN7km5X8LORs/5Ag7vcIUhrpc2mkbACcUZl3wCFZ5Xku
7+BR4QsuD/1Qh2JGbqV5QX4WGM6jKfS8g7bDrWLa8ubwCvf1kGIJiPJwX6n3
N4+tcYx04gWwB4DQ4ckPWUJb4O4bW0AVtJni6VcyNA0f5nTM221XR2/9Vtiu
Wog/HzPmjWU/IBhcrfcXjvtig6b7wJHpiUmDCqr0j8TxKjabwTrs6cdzwWot
YktjtX9xLG4rECIUeSWwpCwLjbroNb+OG75qj3La4JJTpfQwWP90Xg4LiaD8
eu/5OWgxIvC3Xvla4hwhn+4ymx03lQBjEaw/ESMTPtdR4BeKAnOD+LNmMEkx
1WAVYw4PezA3pZ/K47346yStxQaQdvUYpZ1kIV7mZ2DY6Es7M7AsHPwKQGkz
O7Go6/qiPtNF0ZmWD/dt5pvYec/ZTC9WogDor6ABQb5m0y0n5qELgI4Ra657
Xgqg0ma2lZFoJH3zWupHWX1vOXRW+jhvGgFEwSKpWfYZOFQYurBf13aEMpBE
8EacfXEknh8RnTigEdp1Ml3XTqmzZKm8IysG1hnbXgMATTxsn525XhwWZ4iE
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

-->

</rfc>

