<?xml version="1.0" encoding="UTF-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc version 1.6.37 (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-09" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title abbrev="BRSKI-PRM">BRSKI with Pledge in Responder Mode (BRSKI-PRM)</title>

    <author initials="S." surname="Fries" fullname="Steffen Fries">
      <organization abbrev="Siemens">Siemens AG</organization>
      <address>
        <postal>
          <street>Otto-Hahn-Ring 6</street>
          <city>Munich</city>
          <code>81739</code>
          <country>Germany</country>
        </postal>
        <email>steffen.fries@siemens.com</email>
        <uri>https://www.siemens.com/</uri>
      </address>
    </author>
    <author initials="T." surname="Werner" fullname="Thomas Werner">
      <organization abbrev="Siemens">Siemens AG</organization>
      <address>
        <postal>
          <street>Otto-Hahn-Ring 6</street>
          <city>Munich</city>
          <code>81739</code>
          <country>Germany</country>
        </postal>
        <email>thomas-werner@siemens.com</email>
        <uri>https://www.siemens.com/</uri>
      </address>
    </author>
    <author initials="E." surname="Lear" fullname="Eliot Lear">
      <organization>Cisco Systems</organization>
      <address>
        <postal>
          <street>Richtistrasse 7</street>
          <city>Wallisellen</city>
          <code>CH-8304</code>
          <country>Switzerland</country>
        </postal>
        <phone>+41 44 878 9200</phone>
        <email>lear@cisco.com</email>
      </address>
    </author>
    <author initials="M." surname="Richardson" fullname="Michael C. Richardson">
      <organization>Sandelman Software Works</organization>
      <address>
        <email>mcr+ietf@sandelman.ca</email>
        <uri>http://www.sandelman.ca/</uri>
      </address>
    </author>

    <date year="2023"/>

    <area>Operations and Management</area>
    <workgroup>ANIMA WG</workgroup>
    

    <abstract>


<?line 128?>

<t>This document defines enhancements to Bootstrapping a Remote Secure Key Infrastructure (BRSKI, RFC8995) to enable bootstrapping in domains featuring no or only limited connectivity between a pledge and the domain registrar.
It specifically changes the interaction model from a pledge-initiated mode, as used in BRSKI, to a pledge-responding mode, where the pledge is in server role.
For this, BRSKI with Pledge in Responder Mode (BRSKI-PRM) introduces a new component, the registrar-agent, which facilitates the communication between pledge and registrar during the bootstrapping phase.
To establish the trust relation between pledge and registrar, BRSKI-PRM relies on object security rather than transport security.
The approach defined here is agnostic to the enrollment protocol that connects the domain registrar to the domain CA.</t>



    </abstract>

    <note title="About This Document" removeInRFC="true">
      <t>
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ietf-anima-brski-prm/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/anima-wg/anima-brski-prm"/>.</t>
    </note>


  </front>

  <middle>


<?line 136?>

<section anchor="introduction"><name>Introduction</name>

<t>BRSKI as defined in <xref target="RFC8995"/> specifies a solution for secure zero-touch (automated) bootstrapping of devices (pledges) in a (customer) site domain.
This includes the discovery of the BRSKI registrar in the customer site/domain and the exchange of security information necessary to establish trust between a pledge and the domain.</t>

<t>Security information about the customer site/domain, specifically the customer site/domain certificate, are exchanged and authenticated utilizing voucher-request and voucher-response artifacts as defined in <xref target="RFC8995"/>.
Vouchers are signed objects from the Manufacturer's Authorized Signing Authority (MASA).
The MASA issues the voucher and provides it via the domain registrar to the pledge.
<xref target="RFC8366"/> specifies the format of the voucher artifacts.
<xref target="I-D.ietf-anima-rfc8366bis"/> further enhances the format of the voucher artifacts and also the voucher-request.</t>

<t>For the certificate enrollment of devices, BRSKI relies on EST <xref target="RFC7030"/> to request and distribute customer site/domain specific device certificates.
EST in turn relies for the authentication and authorization of the certification request on the credentials used by the underlying TLS between the EST client and the EST server.</t>

<t>BRSKI addresses scenarios in which the pledge initiates the bootstrapping acting as client (referred to as initiator mode by this document).
BRSKI with pledge in responder mode (BRSKI-PRM) defined in this document allows the pledge to act as server, so that it can be triggered to generate bootstrapping requests in the customer site/domain.
For this approach, this document:</t>

<t><list style="symbols">
  <t>introduces the registrar-agent as new component to facilitate the communication between the pledge and the domain registrar.
The registrar-agent may be implemented as an integrated functionality of a commissioning tool or be co-located with the registrar itself.
BRSKI-PRM supports the identification of the registrar-agent that was performing the bootstrapping allowing for accountability of the pledges installation, when the registrar-agent is a component used by an installer and not co-located with the registrar.</t>
  <t>specifies the interaction (data exchange and data objects) between a pledge acting as server, the registrar-agent acting as client, and the domain registrar.</t>
  <t>enables the usage of arbitrary transports between the pledge and the domain registrar via the registrar-agent; security is addressed at the application layer, and both IP-based and non-IP connectivity can be used between pledge and registrar-agent.</t>
  <t>allows the application of registrar-agent credentials to establish TLS connections to the domain registrar; these are different from the IDevID of the pledge.</t>
</list></t>

<t>The term endpoint used in the context of this document is equivalent to resource in HTTP <xref target="RFC9110"/> and CoAP <xref target="RFC7252"/>; it is not used to describe a device.
Endpoints are accessible via Well-Known URIs <xref target="RFC8615"/>.
For the interaction with the domain registrar, the registrar-agent will use existing BRSKI <xref target="RFC8995"/> endpoints as well as additional endpoints defined in this document.
To utilize the EST server endpoints on the domain registrar, the registrar-agent will act as client toward the registrar.</t>

<t>The registrar-agent also acts as a client when communicating with a pledge in responder mode.
Here, TLS with server-side, certificate-based authentication is only optionally supported.
If TLS is optionally used between the registrar-agent and the pledge, the registrar-agent needs to identify the pledge based on its product serial number rather than the hostname as this is not set in an IDevID certificate.</t>

<t>BRSKI-PRM is designed to rely on object security to support also for alternative transports for which TLS may not be available, e.g., Bluetooth or NFC.
This is achieved through an additional signature wrapping of the exchanged data objects involving the registrar-agent for transport.</t>

<t>To utilize EST <xref target="RFC7030"/> for enrollment, the domain registrar must perform the pre-processing of this wrapping signature before actually using EST as defined in <xref target="RFC7030"/>.</t>

<t>There may be pledges which can support both modes, initiator and responder mode.
In these cases BRSKI-PRM can be combined with BRSKI as defined in <xref target="RFC8995"/> or BRSKI-AE <xref target="I-D.ietf-anima-brski-ae"/> to allow for more bootstrapping flexibility.</t>

</section>
<section anchor="terminology"><name>Terminology</name>

<t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>

<?line -18?>

<t>This document relies on the terminology defined in <xref target="RFC8995"/>, section 1.2.
The following terms are defined additionally:</t>

<dl>
  <dt>authenticated self-contained object:</dt>
  <dd>
    <t>Describes an object, which is cryptographically bound to the end entity (EE) certificate (IDevID certificate or LDEVID certificate).
The binding is assumed to be provided through a digital signature of the actual object using the corresponding private key of the certificate.</t>
  </dd>
  <dt>CA:</dt>
  <dd>
    <t>Certification Authority, issues certificates.</t>
  </dd>
  <dt>Commissioning tool:</dt>
  <dd>
    <t>Tool to interact with devices to provide configuration data.</t>
  </dd>
  <dt>CSR:</dt>
  <dd>
    <t>Certificate Signing Request.</t>
  </dd>
  <dt>EE:</dt>
  <dd>
    <t>End Entity.</t>
  </dd>
  <dt>endpoint:</dt>
  <dd>
    <t>term equivalent to resource in HTTP <xref target="RFC9110"/> and CoAP <xref target="RFC7252"/>.
Endpoints are accessible via .well-known URIs.</t>
  </dd>
  <dt>mTLS:</dt>
  <dd>
    <t>mutual Transport Layer Security.</t>
  </dd>
  <dt>on-site:</dt>
  <dd>
    <t>Describes a component or service or functionality available in the customer site/domain.</t>
  </dd>
  <dt>off-site:</dt>
  <dd>
    <t>Describes a component or service or functionality not available on-site.
It may be at a central site or an internet resident "cloud" service.
The on-site to off-site connection may also be temporary and, e.g., only available at times when workers are present on a construction side, for instance.</t>
  </dd>
  <dt>PER:</dt>
  <dd>
    <t>Pledge Enrollment-Request is a signature wrapped CSR, signed by the pledge that requests enrollment to a domain.</t>
  </dd>
  <dt>POP:</dt>
  <dd>
    <t>Proof-of-Possession (of a private key), as defined in <xref target="RFC5272"/>.</t>
  </dd>
  <dt>POI:</dt>
  <dd>
    <t>Proof-of-Identity, as defined in <xref target="RFC5272"/>.</t>
  </dd>
  <dt>PVR:</dt>
  <dd>
    <t>Pledge Voucher-Request is a request for a voucher sent to the domain registrar.
The PVR is signed by the Pledge.</t>
  </dd>
  <dt>RA:</dt>
  <dd>
    <t>Registration Authority, an optional system component to which a CA delegates certificate management functions such as authorization checks.
In BRSKI-PRM this is a functionality of the domain registrar, as in BRSKI <xref target="RFC8995"/>.</t>
  </dd>
  <dt>RER:</dt>
  <dd>
    <t>Registrar Enrollment-Request is the CSR of a PER sent to the CA by the domain registrar (RA).</t>
  </dd>
  <dt>RVR:</dt>
  <dd>
    <t>Registrar Voucher-Request is a request for a voucher signed by the domain registrar to the MASA.
It may contain the PVR received from the pledge.</t>
  </dd>
</dl>

<t>This document includes many examples that would contain many long sequences of base64 encoded objects with no content directly comprehensible to a human reader.
In order to keep those examples short, they use the token "base64encodedvalue==" as a placeholder for base64 data.
The full base64 data is included in the appendices of this document.</t>

<t>This protocol unavoidably has a mix of both base64 encoded data (as is normal for many JSON encoded protocols), and also BASE64URL encoded data, as specified by JWS.
The latter is indicated by a string like "BASE64URL(content-name)".</t>

</section>
<section anchor="scope-of-solution"><name>Scope of Solution</name>

<section anchor="sup-env"><name>Supported Environments and Use Case Examples</name>

<t>BRSKI-PRM is applicable to scenarios where pledges may have no direct connection to the domain registrar, may have no continuous connection, or require coordination of the pledge requests to be provided to a domain registrar.</t>

<t>This can be motivated by pledges deployed in environments not yet connected to the operational customer site/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 site/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 site/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 availability of the pledge and the registrar-agent to communicate with another.
This may not be possible in constrained environments where, in particular, power must be conserved.
In these situations, it is anticipated that the transceiver will be powered down most of the time.
This presents a rendezvous problem: the pledge is unavailable for certain periods of time, and the registrar-agent is similarly presumed to be unavailable for certain periods of time.
To overcome this situation, the pledges may need to be powered on, either manually or by sending a trigger signal.</t>

</section>
</section>
<section anchor="req-sol"><name>Requirements Discussion and Mapping to Solution-Elements</name>

<t>Based on the intended target environment described in <xref target="sup-env"/>, the following requirements are derived to support bootstrapping of pledges in responder mode (acting as server):</t>

<t><list style="symbols">
  <t>To facilitate the communication between a pledge in responder mode and the registrar, additional functionality is needed either on the registrar or as a stand-alone component.
This new functionality is defined as registrar-agent and acts as an agent of the registrar to trigger the pledge to generate requests for voucher and enrollment.
These requests are then provided by the registrar-agent to the registrar.
This requires the definition of pledge endpoints to allow interaction with the registrar-agent.</t>
  <t>The security of communication between the registrar-agent and the pledge must not rely on Transport Layer Security (TLS) to enable application of BRSKI-PRM in environments, in which the communication between the registrar-agent and the pledge is done over other technologies like BTLE or NFC, which may not support TLS protected communication.
In addition, the pledge does not have a certificate that can easily be verified by <xref target="RFC6125"/> methods.</t>
  <t>The use of authenticated self-contained objects addresses both, the TLS challenges and the technology stack challenge.</t>
  <t>By contrast, the registrar-agent can be authenticated by the registrar as a component, acting on behalf of the registrar.
In addition the registrar must be able to verify, which registrar-agent was in direct contact with the pledge.</t>
  <t>It would be inaccurate for the voucher-request and voucher-response to use an assertion with value "proximity" in the voucher, as the pledge was not in direct contact with the registrar for bootstrapping.
Therefore, a new "agent-proximity" assertion value is necessary for distinguishing assertions the MASA can state.</t>
</list></t>

<t>At least the following properties are required for the voucher and enrollment processing:</t>

<t><list style="symbols">
  <t>POI: provides data-origin authentication of a data object, e.g., a voucher-request or an enrollment-request, utilizing an existing IDevID.
Certificate updates may utilize the certificate that is to be updated.</t>
  <t>POP: proves that an entity possesses and controls the private key corresponding to the public key contained in the certification request, typically by adding a signature computed using the private key to the certification request.</t>
</list></t>

<t>Solution examples based on existing technology are provided with the focus on existing IETF RFCs:</t>

<t><list style="symbols">
  <t>Voucher-requests and -responses as used in <xref target="RFC8995"/> already provide both, POP and POI, through a digital signature to protect the integrity of the voucher, while the corresponding signing certificate contains the identity of the signer.</t>
  <t>Certification requests are data structures containing the information from a requester for a CA to create a certificate.
The certification request format in BRSKI is PKCS#10 <xref target="RFC2986"/>.
In PKCS#10, the structure is signed to ensure integrity protection and POP of the private key of the requester that corresponds to the contained public key.
In the application examples, this POP alone is not sufficient.
A POI is also required for the certification request and therefore the certification request needs to be additionally bound to the existing credential of the pledge (IDevID).
This binding supports the authorization decision for the certification request and may be provided directly with the certification request.
While BRSKI uses the binding to TLS, BRSKI-PRM aims at an additional signature of the PKCS#10 using existing credentials on the pledge (IDevID). This allows the process to be independent of the selected transport.</t>
</list></t>

</section>
<section anchor="architecture"><name>Architectural Overview</name>

<t>For BRSKI with pledge in responder mode, the base system architecture defined in BRSKI <xref target="RFC8995"/> is enhanced to facilitate new use cases in which the pledge acts as server.
The responder mode allows delegated bootstrapping using a registrar-agent instead of a direct connection between the pledge and the domain registrar.</t>

<t>Necessary enhancements to support authenticated self-contained objects for certificate enrollment are kept at a minimum to enable reuse of already defined architecture elements and interactions.
The format of the bootstrapping objects produced or consumed by the pledge is based on JOSE <xref target="RFC7515"/> and further specified in <xref target="exchanges_uc2"/> to address the requirements stated in <xref target="req-sol"/> above.
In constrained environments it may be provided based on COSE <xref target="RFC9052"/> and <xref target="RFC9053"/>.</t>

<t>An abstract overview of the BRSKI-PRM protocol can be found on slide 8 of <xref target="BRSKI-PRM-abstract"/>.</t>

<t>To support mutual trust establishment between the domain registrar and pledges not directly connected to the customer site/domain, this document specifies the exchange of authenticated self-contained objects with the help of a registrar-agent.</t>

<t>This leads to extensions of the logical components in the BRSKI architecture as shown in <xref target="uc2figure"/>.</t>

<t>Note that the Join Proxy is not shown in the figure, having been replaced by the Registrar Agent.
The Join Proxy may still be present, and there <bcp14>MAY</bcp14> be some situations in which the Join Proxy can be used by the Registrar-Agent to connect to the Registrar.
For example, the Registrar-Agent application on a smartphone often can connect to local wifi without giving up their LTE connection <xref target="androidnsd"/>, but only can make link-local connections.</t>

<t>The registrar-agent interacts with the pledge to transfer the required data objects for bootstrapping, which are then also exchanged between the registrar-agent and the domain registrar.
The addition of the registrar-agent influences the sequences of the data exchange between the pledge and the domain registrar described in <xref target="RFC8995"/>.
To enable reuse of BRSKI defined functionality as much as possible, BRSKI-PRM:</t>

<t><list style="symbols">
  <t>uses existing endpoints where the required functionality is provided.</t>
  <t>enhances existing endpoints with new supported media types, e.g., for JWS voucher.</t>
  <t>defines new endpoints where additional functionality is required, e.g., for wrapped certification request, CA certificates, or new status information.</t>
</list></t>

<figure title="BRSKI-PRM architecture overview using registrar-agent" anchor="uc2figure"><artset><artwork  type="svg" align="left"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="480" width="456" viewBox="0 0 456 480" 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 40,48 L 40,232" 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,432" 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,432" 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 40,48 L 72,48" fill="none" stroke="black"/>
<path d="M 168,48 L 200,48" 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,432 L 424,432" 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)"/>
<polygon class="arrowhead" points="48,232 36,226.4 36,237.6" fill="black" transform="rotate(90,40,232)"/>
<g class="text">
<text x="100" y="52">Drop</text>
<text x="140" y="52">Ship</text>
<text x="244" y="52">Vendor</text>
<text x="304" y="52">Service</text>
<text x="224" y="84">M</text>
<text x="280" y="84">anufacturer</text>
<text x="224" y="100">A</text>
<text x="272" y="100">uthorized</text>
<text x="384" y="100">Ownership</text>
<text x="224" y="116">S</text>
<text x="260" y="116">igning</text>
<text x="376" y="116">Tracker</text>
<text x="224" y="132">A</text>
<text x="268" y="132">uthority</text>
<text x="412" y="180">BRSKI-</text>
<text x="404" y="196">MASA</text>
<text x="248" y="212">...............................</text>
<text x="416" y="212">.........</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">EST</text>
<text x="376" y="292">Registrar</text>
<text x="448" y="292">.</text>
<text x="356" y="308">(PKI</text>
<text x="392" y="308">RA)</text>
<text x="448" y="308">.</text>
<text x="128" y="324">.</text>
<text x="220" y="324">LDevID</text>
<text x="448" y="324">.</text>
<text x="128" y="340">.</text>
<text x="448" y="340">.</text>
<text x="44" y="356">IDevID</text>
<text x="128" y="356">.</text>
<text x="448" y="356">.</text>
<text x="128" y="372">.</text>
<text x="448" y="372">.</text>
<text x="128" y="388">.</text>
<text x="248" y="388">Key</text>
<text x="324" y="388">Infrastructure</text>
<text x="448" y="388">.</text>
<text x="128" y="404">.</text>
<text x="260" y="404">(e.g.,</text>
<text x="304" y="404">PKI</text>
<text x="368" y="404">Certificate</text>
<text x="448" y="404">.</text>
<text x="128" y="420">.</text>
<text x="332" y="420">Authority)</text>
<text x="448" y="420">.</text>
<text x="128" y="436">.</text>
<text x="448" y="436">.</text>
<text x="288" y="452">.........................................</text>
<text x="236" y="468">&quot;Domain&quot;</text>
<text x="316" y="468">Components</text>
</g>
</svg>
</artwork><artwork  type="ascii-art" align="left"><![CDATA[
                         +---------------------------+
    +---- Drop Ship -----| Vendor Service            |
    |                    +---------------+-----------+
    |                    | M anufacturer |           |
    |                    | A uthorized   | Ownership |
    |                    | S igning      | Tracker   |
    |                    | A uthority    |           |
    |                    +---------------+-----------+
    |                                         ^
    |                                         | BRSKI-
    |                                         | MASA
    |          ...............................|.........
    V          .                              v        .
+--------+     .  +------------+        +-----------+  .
|        |     .  |            |        |           |  .
| Pledge | BRSKI- | Registrar- | BRSKI- | Domain    |  .
|        |  PRM   | Agent      |  EST   | Registrar |  .
|        |<------>|            |<------>| (PKI RA)  |  .
|        |     .  |     LDevID |        |           |  .
|        |     .  +------------+        +-----+-----+  .
| IDevID |     .                              |        .
|        |     .           +------------------+-----+  .
+--------+     .           | Key Infrastructure     |  .
               .           | (e.g., PKI Certificate |  .
               .           |        Authority)      |  .
               .           +------------------------+  .
               .........................................
                         "Domain" Components
]]></artwork></artset></figure>

<t><xref target="uc2figure"/> shows the relations between the following main components:</t>

<t><list style="symbols">
  <t>Pledge: The pledge is expected to respond with the necessary data objects for bootstrapping to the registrar-agent.
The protocol used between the pledge and the registrar-agent is assumed to be HTTP in the context of this document.
Any other protocols (including HTTPS) can be used as long as they support the exchange of the necessary data objects.
This includes CoAP or protocol to be used over Bluetooth or NFC connections
A pledge acting as a server during bootstrapping leads to some differences for BRSKI:  <list style="symbols">
      <t>Discovery of the pledge by the registrar-agent <bcp14>MUST</bcp14> be possible.</t>
      <t>As the registrar-agent <bcp14>MUST</bcp14> be able to request data objects for bootstrapping of the pledge, the pledge <bcp14>MUST</bcp14> offer corresponding endpoints as defined in <xref target="pledge_ep"/>.</t>
      <t>The registrar-agent <bcp14>MUST</bcp14> provide additional data to the pledge in the context of the voucher-request trigger, which the pledge <bcp14>MUST</bcp14> include into the PVR as defined in <xref target="pvrt"/> and <xref target="pvrr"/>.
This allows the registrar to identify, with which registrar-agent the pledge was in contact.</t>
      <t>The order of exchanges in the BRSKI-PRM call flow is different those in BRSKI <xref target="RFC8995"/>, as the PVR and PER are collected at once and provided to the registrar.
This enables bulk bootstrapping of several devices.</t>
      <t>The data objects utilized for the data exchange between the pledge and the registrar are self-contained authenticated objects (signature-wrapped objects).</t>
    </list></t>
  <t>Registrar-agent: provides a store and forward communication path to exchange data objects between the pledge and the domain registrar.
The registrar-agent brokers in situations in which the domain registrar is not directly reachable by the pledge.
This may be due to a different technology stack or due to missing connectivity.
The registrar-agent triggers a pledge to create bootstrapping artifacts such as the voucher-request and the enrollment-request on one or multiple pledges.
It can then perform a (bulk) bootstrapping based on the collected data.
The registrar-agent is expected to possess information about the domain registrar: the registrar LDevID certificate, LDevID(CA) certificate, IP address, either by configuration or by using the discovery mechanism defined in <xref target="RFC8995"/>.
There is no trust assumption between the pledge and the registrar-agent as only authenticated self-contained objects are used, which are transported via the registrar-agent and provided either by the pledge or the registrar.
The trust assumption between the registrar-agent and the registrar is based on the LDevID of the registrar-agent, provided by the PKI responsible for the domain.
This allows the registrar-agent to authenticate towards the registrar, e.g., in a TLS handshake.
Based on this, the registrar is able to distinguish a pledge from a registrar-agent during the TLS session establishment and also to verify that this registrar-agent is authorized to perform the bootstrapping of the distinct pledge.</t>
  <t>Join Proxy (not shown): same functionality as described in <xref target="RFC8995"/> if needed.
Note that a registrar-agent may use a join proxy to facilitate the TLS connection to the registrar, in the same way that a BRSKI pledge would use a join proxy. This is useful in cases where the registrar-agent does not have full IP connectivity via the domain network, or cases where it has no other means to locate the registrar on the network.</t>
  <t>Domain Registrar: In general, the domain registrar fulfills the same functionality regarding the bootstrapping of the pledge in a (customer) site domain by facilitating the communication of the pledge with the MASA service and the domain PKI service.
In contrast to <xref target="RFC8995"/>, the domain registrar does not interact with a pledge directly but through the registrar-agent.
A registrar with combined functionality of BRSKI and BRSKI-PRM detects if the bootstrapping is performed by the pledge directly (BRSKI case) or by the registrar-agent (BRSKI-PRM case) based on the utilized credential for authentication (either pledge’s IDevID or LDevID from registrar-agent), see also <xref target="exchanges_uc2_2"/>.</t>
  <t>The manufacturer provided components/services (MASA and Ownership tracker) are used as defined in <xref target="RFC8995"/>.
A MASA is able to support enrollment via registrar-agent without changes unless it checks the vouchers proximity indication, in which case it would need to be enhanced to support BRSKI-PRM to also accept the agent-proximity.</t>
</list></t>

<section anchor="agt_prx"><name>Agent-Proximity Assertion</name>

<t>"Agent-proximity" is a statement in the PVR and in the voucher, that the registrar certificate was provided via the registrar-agent as defined in <xref target="exchanges_uc2"/> and not directly to the pledge.
"Agent-proximity" is therefore a weaker assertion then "proximity", which is defined in section 4 of <xref target="RFC8366"/>.
"agent-proximity" is defined as additional assertion type in <xref target="I-D.ietf-anima-rfc8366bis"/>.
This can be verified by the registrar and also by the MASA during the voucher-request processing.</t>

<t>In BRSKI, the pledge verifies POP of the registrar via the TLS handshake and pins that public key as the "proximity-registrar-cert" into the voucher request.
This allows the MASA to see the proximity of the pledge and registrar, facilitating a decision to assign the pledge to that domain owner.
In BRSKI, the TLS connection is considered provisional until the pledge receives the voucher.</t>

<t>In contrast, in BRSKI-PRM, the pledge has no direct connection to the registrar and must take the Registrar-Agent LDevID provisionally.
The registrar-agent has included its LDevID, a certificate signed by the domain owner, into the PVR trigger message.
The registrar-agent identity is therefore included into the Pledge Voucher Request (PVR).</t>

<t>Akin to the BRSKI case, the pledge has provided proximity evidence to the MASA.
But additionally, this allows the Registrar to be sure that the PVR collected by the Registrar-Agent was in fact collected by the Registrar-Agent to which the Registrar is connected to.</t>

<t>In a similar fashion, the pledge accepts the registrar certificate provisionally until it receives the voucher as described in <xref target="exchanges_uc2_3"/>.
See also Section 5 of <xref target="RFC8995"/> on "PROVISIONAL accept of server cert".</t>

</section>
<section anchor="pledge_ep"><name>Behavior of Pledge in Pledge-Responder-Mode</name>

<t>The pledge is triggered by the registrar-agent to generate the PVR and PER.
It will also be triggered for processing of the responses and the generation of status information once the registrar-agent has received the responses from the registrar later in the process.
Due to the use of the registrar-agent, the interaction with the domain registrar is changed as shown in <xref target="exchangesfig_uc2_1"/>.
To enable interaction as responder with the registrar-agent, the pledge provides endpoints using the BRSKI defined endpoints based on the "/.well-known/brski" URI tree.</t>

<t>The following endpoints are defined for the <em>pledge</em> in this document.
The endpoints are defined with short names to also accommodate for the constraint case.
The URI path begins with "http://pledge.example/.well-known/brski" followed by a path-suffix that indicates the intended operation.</t>

<t>Operations and their corresponding URIs:</t>

<texttable title="Endpoints on the pledge" anchor="eppfigure1">
      <ttcol align='left'>Operation</ttcol>
      <ttcol align='left'>Endpoint</ttcol>
      <ttcol align='left'>Details</ttcol>
      <c>Trigger pledge voucher-request creation - Returns PVR</c>
      <c>/tpvr</c>
      <c><xref target="exchanges_uc2_1"/></c>
      <c>Trigger pledge enrollment-request - Returns PER</c>
      <c>/tper</c>
      <c><xref target="exchanges_uc2_1"/></c>
      <c>Supply voucher to pledge - Returns pledge voucher-status</c>
      <c>/svr</c>
      <c><xref target="exchanges_uc2_3"/></c>
      <c>Supply enrollment-response to pledge - Returns pledge enrollment-status</c>
      <c>/ser</c>
      <c><xref target="exchanges_uc2_3"/></c>
      <c>Supply CA certs to pledge</c>
      <c>/scac</c>
      <c><xref target="exchanges_uc2_3"/></c>
      <c>Query status of pledge - Returns pledge-status</c>
      <c>/qps</c>
      <c><xref target="exchanges_uc2_5"/></c>
</texttable>

</section>
<section anchor="behavior-of-registrar-agent"><name>Behavior of Registrar-Agent</name>

<t>The registrar-agent as a new component provides a message passing service between the pledge and the domain registrar.
It facilitates the exchange of data between the pledge and the domain registrar, which are the voucher-request/response, the enrollment-request/response, as well as related telemetry and status information.</t>

<t>For the communication with the pledge the registrar-agent utilizes communication endpoints provided by the pledge.
The transport in this specification is based on HTTP but may also be done using other transport mechanisms.</t>

<t>The communication between the registrar-agent and the pledge <bcp14>MAY</bcp14> be protected using TLS as outlined in <xref target="exchanges_uc2_1"/>.
The details of doing TLS validation are <xref target="pledgehttps"/>.</t>

<t>For the communication with the registrar, the registrar-agent uses the endpoints of the domain registrar side already specified in <xref target="RFC8995"/> (derived from EST <xref target="RFC7030"/>) where suitable.
These endpoints do not expect signature wrapped-objects, which are used b BRSKI-PRM.
This specifically applies for the enrollment-request and the provisioning of CA certificates.
To accommodate the use of signature-wrapped object, the following additional endpoints are defined for the <em>registrar</em>.
Operations and their corresponding URIs:</t>

<texttable title="Additional endpoints on the registrar" anchor="eppfigure2">
      <ttcol align='left'>Operation</ttcol>
      <ttcol align='left'>Endpoint</ttcol>
      <ttcol align='left'>Details</ttcol>
      <c>Supply PER to registrar - Returns enrollment-response</c>
      <c>/requestenroll</c>
      <c><xref target="exchanges_uc2_2_per"/></c>
      <c>Request (wrapped) CA certificates - Returns wrapped CA Certificates</c>
      <c>/wrappedcacerts</c>
      <c><xref target="exchanges_uc2_2_wca"/></c>
</texttable>

<t>For authentication to the domain registrar, the registrar-agent uses its LDevID(RegAgt).
The provisioning of the registrar-agent LDevID is out of scope for this document, but may be done in advance using a separate BRSKI run or by other means like configuration.
It is recommended to use short lived registrar-agent LDevIDs in the range of days or weeks as outlined in <xref target="sec_cons_reg-agt"/>.</t>

<t>The registrar-agent will use its LDevID(RegAgt) when establishing a TLS session with the domain registrar for TLS client authentication.
The LDevID(RegAgt) certificate <bcp14>MUST</bcp14> include a SubjectKeyIdentifier (SKID), which is used as reference in the context of an agent-signed-data object as defined in <xref target="exchanges_uc2_1"/>.
Note that this is an additional requirement for issuing the certificate, as <xref target="IEEE-802.1AR"/> only requires the SKID to be included for intermediate CA certificates.
<xref target="RFC8995"/> makes a similar requirement.
In BRSKI-PRM, the SKID is used in favor of providing the complete LDEVID(RegAgt) certificate to accommodate also constraint environments and reduce bandwidth needed for communication with the pledge.
In addition, it follows the recommendation from BRSKI to use SKID in favor of a certificate fingerprint to avoid additional computations.</t>

<t>Using an LDevID for TLS client authentication of the registrar-agent is a deviation from <xref target="RFC8995"/>, in which the pledge's IDevID credential is used to perform TLS client authentication.
The use of the LDevID(RegAgt) allows the domain registrar to distinguish, if bootstrapping is initiated from a pledge or from a registrar-agent and to adopt different internal handling accordingly.
If a registrar detects a request that originates from a registrar-agent it is able to switch the operational mode from BRSKI to BRSKI-PRM.
This may be supported by a specific naming in the SAN (subject alternative name) component of the LDevID(RegAgt) certificate.
Alternatively, the domain may feature a CA specifically for issuing registrar-agent LDevID certificates.
This allows the registrar to detect registrar-agents based on the issuing CA.</t>

<t>As BRSKI-PRM uses authenticated self-contained data objects between the pledge and the domain registrar, the binding of the pledge identity to the requests is provided by the data object signature employing the pledge's IDevID.
The objects exchanged between the pledge and the domain registrar used in the context of this specifications are JOSE objects.</t>

<t>In addition to the LDevID(RegAgt), the registrar-agent is provided with the product-serial-number(s) of the pledge(s) to be bootstrapped.
This is necessary to allow the discovery of pledge(s) by the registrar-agent using mDNS (see <xref target="discovery_uc2_ppa"/>)
The list may be provided by prior administrative means or the registrar agent may get the information via an interaction with the pledge.
For instance, <xref target="RFC9238"/> describes scanning of a QR code, the product-serial-number would be initialized from the 12N B005 Product Serial Number.</t>

<t>According to <xref target="RFC8995"/> section 5.3, the domain registrar performs the pledge authorization for bootstrapping within his domain based on the pledge voucher-request object.
This behavior is retained also in BRSKI-PRM.</t>

<t>The following information <bcp14>MUST</bcp14> be available at the registrar-agent before interaction with a pledge:</t>

<t><list style="symbols">
  <t>LDevID(RegAgt): own operational key pair (to sign agent-signed-data).</t>
  <t>Registrar LDevID certificate: certificate of the domain registrar (to be provided to the pledge).</t>
  <t>Serial-number(s): product-serial-number(s) of pledge(s) to be bootstrapped (to query discover specific pledges based on the serial number).</t>
</list></t>

<section anchor="discovery_uc2_reg"><name>Discovery of Registrar by Registrar-Agent</name>

<t>The discovery of the domain registrar may be done as specified in <xref target="RFC8995"/> section 4 with the
deviation that it is done between the registrar-agent and the domain registrar.
Alternatively, the registrar-agent may be configured with the address of the domain registrar and the certificate of the domain registrar.</t>

</section>
<section anchor="discovery_uc2_ppa"><name>Discovery of Pledge by Registrar-Agent</name>

<t>The discovery of the pledge by registrar-agent should be done by using DNS-based Service Discovery <xref target="RFC6763"/> over Multicast DNS <xref target="RFC6762"/> to discover the pledge.
The pledge constructs a local host name based on device local information (product-serial-number), which results in "product-serial-number._brski-pledge._tcp.local".
The product-serial-number composition is vendor dependent and may contain information regarding the vendor, the product type, and further information specific to the product instance. To allow distinction of pledges, the product-serial-number therfore needs to be sufficiently unique.</t>

<t>The registrar-agent <bcp14>MAY</bcp14> use</t>

<t><list style="symbols">
  <t>"product-serial-number._brski-pledge._tcp.local", to discover a specific pledge, e.g., when connected to a local network.</t>
  <t>"_brski-pledge._tcp.local" to get a list of pledges to be bootstrapped.</t>
</list></t>

<t>A manufacturer may allow the pledge to react on mDNS discovery without his product-serial-number contained. This allows a commissioning tool to discover pledges to be bootstrapped in the domain. The manufacturer support this functionality as outlined in <xref target="sec_cons_mDNS"/>.</t>

<t>Establishing network connectivity of the pledge is out of scope of this document but necessary to apply 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>

<t>As an alternative discovery mechanism GRASP M_DISCOVERY multicast with M_RESPONSE, based on <xref target="RFC8990"/>, may be used.
The specification of this approach to discover a pledge from the registrar-agent is left for further study.</t>

</section>
</section>
<section anchor="behavior-of-pledge-with-combined-functionality"><name>Behavior of Pledge with Combined Functionality</name>

<t>Pledges <bcp14>MAY</bcp14> support both initiator or responder mode.</t>

<t>A pledge in initiator mode should listen for announcement messages as described in <xref section="4.1" sectionFormat="of" target="RFC8995"/>.
Upon discovery of a potential registrar, it initiates the bootstrapping to that registrar.
At the same time (so as to avoid the Slowloris-attack described in <xref target="RFC8995"/>), it <bcp14>SHOULD</bcp14> also respond to the triggers for responder mode described in this document.</t>

<t>Once a pledge with combined functionality has been bootstrapped, it <bcp14>MAY</bcp14> act as client for enrollment of further certificates needed, e.g., using the enrollment protocol of choice.
If it still acts as server, the defined BRSKI-PRM endpoints to trigger a pledge enrollment-request (PER) or to provide an enrollment-response can be used for further certificates.</t>

</section>
</section>
<section anchor="exchanges_uc2"><name>Bootstrapping Data Objects and Corresponding Exchanges</name>

<t>The interaction of the pledge with the registrar-agent may be accomplished using different transport means (protocols and/or network technologies).
This specification utilizes HTTP as transport.
Alternative transport channels may be CoAP, Bluetooth Low Energy (BLE), or Nearfield Communication (NFC).
These transport means may differ from, and are independent of, the ones used between the registrar-agent and the registrar.
Transport channel independence is realized by data objects, which are not bound to specific transport security and stay the same across the communication from the pledge via the registrar-agent to the registrar..
Therefore, authenticated self-contained objects (here: signature-wrapped objects) are applied for data exchanges between the pledge and the registrar.</t>

<t>The registrar-agent provides the domain registrar certificate (registrar LDevID certificate) to the pledge to be included in the PVR leaf "agent-provided-proximity-registrar-certificate".
This enables the registrar to verify that it is the desired registrar for handling the request.</t>

<t>The registrar certificate may be configured at the registrar-agent or may be fetched by the registrar-agent based on a prior TLS connection with this domain registrar.
In addition, the registrar-agent provides agent-signed-data containing the pledge product-serial-number, signed with the LDevID(RegAgt), as described in <xref target="exchanges_uc2_1"/>.
This enables the registrar to verify and log, which registrar-agent was in contact with the pledge, when verifying the PVR.</t>

<t>The registrar <bcp14>MUST</bcp14> provide the LDevID(RegAgt) certificate identified by the SubjectKeyIdentifier (SKID) in the header of the agent-signed-data from the PVR in its RVR (see also <contact fullname="pvr-proc-reg"/>.</t>

<t>The MASA in turn verifies the registrar LDevID certificate is included in the PVR (contained in the "prior-signed-voucher-request" field of RVR) in the "agent-provided-proximity-registrar-certificate" leaf and may assert the PVR as "verified" or "logged".</t>

<t>In addition, the MASA can issue the assertion "agent-proximity" as follows:
The MASA can verify the signature of the agent-signed-data contained in the prior-signed-voucher-request, based on the provided LDevID(RegAgt) certificate in the "agent-sign-cert" leaf of the RVR.
If both can be verified successfully, the MASA can assert "agent-proximity" in the voucher.
This agent-proximity is similar to the proximity assertion by the MASA when using BRSKI.
It is a stronger assertion than "logged", but it is weaker than the assertion "verified", which relies on ownership tracking.</t>

<t>Depending on the MASA verification policy, it may also respond with a suitable 4xx or 5xx error status code as described in section 5.6 of <xref target="RFC8995"/>.
When successful, the voucher will then be supplied via the registrar to the registrar-agent.</t>

<t><xref target="exchangesfig_uc2_all"/> provides an overview of the exchanges detailed in the following sub sections.</t>

<figure title="Overview pledge-responder-mode exchanges" anchor="exchangesfig_uc2_all"><artset><artwork  type="svg" align="left"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="1088" width="560" viewBox="0 0 560 1088" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
<path d="M 8,32 L 8,96" fill="none" stroke="black"/>
<path d="M 32,104 L 32,208" fill="none" stroke="black"/>
<path d="M 32,248 L 32,336" fill="none" stroke="black"/>
<path d="M 32,392 L 32,592" fill="none" stroke="black"/>
<path d="M 32,632 L 32,712" fill="none" stroke="black"/>
<path d="M 32,728 L 32,752" fill="none" stroke="black"/>
<path d="M 32,808 L 32,896" fill="none" stroke="black"/>
<path d="M 32,952 L 32,1072" fill="none" stroke="black"/>
<path d="M 80,32 L 80,96" fill="none" stroke="black"/>
<path d="M 112,32 L 112,96" fill="none" stroke="black"/>
<path d="M 168,104 L 168,208" fill="none" stroke="black"/>
<path d="M 168,256 L 168,336" fill="none" stroke="black"/>
<path d="M 168,384 L 168,592" fill="none" stroke="black"/>
<path d="M 168,624 L 168,704" fill="none" stroke="black"/>
<path d="M 168,736 L 168,752" fill="none" stroke="black"/>
<path d="M 168,816 L 168,896" fill="none" stroke="black"/>
<path d="M 168,960 L 168,1072" fill="none" stroke="black"/>
<path d="M 208,32 L 208,96" fill="none" stroke="black"/>
<path d="M 240,32 L 240,96" fill="none" stroke="black"/>
<path d="M 312,104 L 312,208" fill="none" stroke="black"/>
<path d="M 312,256 L 312,336" fill="none" stroke="black"/>
<path d="M 312,512 L 312,592" fill="none" stroke="black"/>
<path d="M 312,640 L 312,704" fill="none" stroke="black"/>
<path d="M 312,736 L 312,752" fill="none" stroke="black"/>
<path d="M 312,816 L 312,896" fill="none" stroke="black"/>
<path d="M 312,960 L 312,1008" fill="none" stroke="black"/>
<path d="M 312,1040 L 312,1072" fill="none" stroke="black"/>
<path d="M 336,32 L 336,96" fill="none" stroke="black"/>
<path d="M 376,32 L 376,96" fill="none" stroke="black"/>
<path d="M 432,104 L 432,208" fill="none" stroke="black"/>
<path d="M 432,256 L 432,336" fill="none" stroke="black"/>
<path d="M 432,400 L 432,496" fill="none" stroke="black"/>
<path d="M 432,576 L 432,592" fill="none" stroke="black"/>
<path d="M 432,640 L 432,704" fill="none" stroke="black"/>
<path d="M 432,736 L 432,752" fill="none" stroke="black"/>
<path d="M 432,816 L 432,896" fill="none" stroke="black"/>
<path d="M 432,960 L 432,976" fill="none" stroke="black"/>
<path d="M 432,1040 L 432,1072" fill="none" stroke="black"/>
<path d="M 448,32 L 448,96" fill="none" stroke="black"/>
<path d="M 472,32 L 472,96" fill="none" stroke="black"/>
<path d="M 536,104 L 536,208" fill="none" stroke="black"/>
<path d="M 536,256 L 536,336" fill="none" stroke="black"/>
<path d="M 536,400 L 536,512" fill="none" stroke="black"/>
<path d="M 536,560 L 536,592" fill="none" stroke="black"/>
<path d="M 536,640 L 536,704" fill="none" stroke="black"/>
<path d="M 536,736 L 536,752" fill="none" stroke="black"/>
<path d="M 536,816 L 536,896" fill="none" stroke="black"/>
<path d="M 536,960 L 536,1008" fill="none" stroke="black"/>
<path d="M 536,1040 L 536,1072" fill="none" stroke="black"/>
<path d="M 552,32 L 552,96" fill="none" stroke="black"/>
<path d="M 8,32 L 80,32" fill="none" stroke="black"/>
<path d="M 112,32 L 208,32" fill="none" stroke="black"/>
<path d="M 240,32 L 336,32" fill="none" stroke="black"/>
<path d="M 376,32 L 448,32" fill="none" stroke="black"/>
<path d="M 472,32 L 552,32" fill="none" stroke="black"/>
<path d="M 8,96 L 80,96" fill="none" stroke="black"/>
<path d="M 112,96 L 208,96" fill="none" stroke="black"/>
<path d="M 240,96 L 336,96" fill="none" stroke="black"/>
<path d="M 376,96 L 448,96" fill="none" stroke="black"/>
<path d="M 472,96 L 552,96" fill="none" stroke="black"/>
<path d="M 40,176 L 160,176" fill="none" stroke="black"/>
<path d="M 40,192 L 160,192" fill="none" stroke="black"/>
<path d="M 40,256 L 56,256" fill="none" stroke="black"/>
<path d="M 136,256 L 160,256" fill="none" stroke="black"/>
<path d="M 40,272 L 80,272" fill="none" stroke="black"/>
<path d="M 136,272 L 160,272" fill="none" stroke="black"/>
<path d="M 40,288 L 80,288" fill="none" stroke="black"/>
<path d="M 128,288 L 160,288" fill="none" stroke="black"/>
<path d="M 40,320 L 80,320" fill="none" stroke="black"/>
<path d="M 136,320 L 160,320" fill="none" stroke="black"/>
<path d="M 40,336 L 80,336" fill="none" stroke="black"/>
<path d="M 128,336 L 160,336" fill="none" stroke="black"/>
<path d="M 176,400 L 216,400" fill="none" stroke="black"/>
<path d="M 264,400 L 304,400" fill="none" stroke="black"/>
<path d="M 176,448 L 208,448" fill="none" stroke="black"/>
<path d="M 256,448 L 304,448" fill="none" stroke="black"/>
<path d="M 320,512 L 408,512" fill="none" stroke="black"/>
<path d="M 456,512 L 528,512" fill="none" stroke="black"/>
<path d="M 320,560 L 392,560" fill="none" stroke="black"/>
<path d="M 472,560 L 528,560" fill="none" stroke="black"/>
<path d="M 176,576 L 200,576" fill="none" stroke="black"/>
<path d="M 280,576 L 304,576" fill="none" stroke="black"/>
<path d="M 176,640 L 216,640" fill="none" stroke="black"/>
<path d="M 264,640 L 304,640" fill="none" stroke="black"/>
<path d="M 320,656 L 344,656" fill="none" stroke="black"/>
<path d="M 392,656 L 424,656" fill="none" stroke="black"/>
<path d="M 320,672 L 344,672" fill="none" stroke="black"/>
<path d="M 400,672 L 424,672" fill="none" stroke="black"/>
<path d="M 176,688 L 192,688" fill="none" stroke="black"/>
<path d="M 288,688 L 304,688" fill="none" stroke="black"/>
<path d="M 288,736 L 304,736" fill="none" stroke="black"/>
<path d="M 176,752 L 192,752" fill="none" stroke="black"/>
<path d="M 40,816 L 56,816" fill="none" stroke="black"/>
<path d="M 136,816 L 160,816" fill="none" stroke="black"/>
<path d="M 40,832 L 64,832" fill="none" stroke="black"/>
<path d="M 144,832 L 160,832" fill="none" stroke="black"/>
<path d="M 40,848 L 64,848" fill="none" stroke="black"/>
<path d="M 144,848 L 160,848" fill="none" stroke="black"/>
<path d="M 40,864 L 64,864" fill="none" stroke="black"/>
<path d="M 144,864 L 160,864" fill="none" stroke="black"/>
<path d="M 40,880 L 56,880" fill="none" stroke="black"/>
<path d="M 40,896 L 56,896" fill="none" stroke="black"/>
<path d="M 136,896 L 160,896" fill="none" stroke="black"/>
<path d="M 176,960 L 224,960" fill="none" stroke="black"/>
<path d="M 272,960 L 304,960" fill="none" stroke="black"/>
<path d="M 176,976 L 200,976" fill="none" stroke="black"/>
<path d="M 288,976 L 304,976" fill="none" stroke="black"/>
<path d="M 320,992 L 336,992" fill="none" stroke="black"/>
<path d="M 512,992 L 528,992" fill="none" stroke="black"/>
<path d="M 320,1008 L 352,1008" fill="none" stroke="black"/>
<path d="M 504,1008 L 528,1008" fill="none" stroke="black"/>
<path d="M 176,1056 L 200,1056" fill="none" stroke="black"/>
<path d="M 280,1056 L 304,1056" fill="none" stroke="black"/>
<polygon class="arrowhead" points="536,992 524,986.4 524,997.6" fill="black" transform="rotate(0,528,992)"/>
<polygon class="arrowhead" points="536,512 524,506.4 524,517.6" fill="black" transform="rotate(0,528,512)"/>
<polygon class="arrowhead" points="432,656 420,650.4 420,661.6" fill="black" transform="rotate(0,424,656)"/>
<polygon class="arrowhead" points="328,1008 316,1002.4 316,1013.6" fill="black" transform="rotate(180,320,1008)"/>
<polygon class="arrowhead" points="328,672 316,666.4 316,677.6" fill="black" transform="rotate(180,320,672)"/>
<polygon class="arrowhead" points="328,560 316,554.4 316,565.6" fill="black" transform="rotate(180,320,560)"/>
<polygon class="arrowhead" points="312,1056 300,1050.4 300,1061.6" fill="black" transform="rotate(0,304,1056)"/>
<polygon class="arrowhead" points="312,976 300,970.4 300,981.6" fill="black" transform="rotate(0,304,976)"/>
<polygon class="arrowhead" points="312,960 300,954.4 300,965.6" fill="black" transform="rotate(0,304,960)"/>
<polygon class="arrowhead" points="312,736 300,730.4 300,741.6" fill="black" transform="rotate(0,304,736)"/>
<polygon class="arrowhead" points="312,640 300,634.4 300,645.6" fill="black" transform="rotate(0,304,640)"/>
<polygon class="arrowhead" points="312,448 300,442.4 300,453.6" fill="black" transform="rotate(0,304,448)"/>
<polygon class="arrowhead" points="312,400 300,394.4 300,405.6" fill="black" transform="rotate(0,304,400)"/>
<polygon class="arrowhead" points="184,960 172,954.4 172,965.6" fill="black" transform="rotate(180,176,960)"/>
<polygon class="arrowhead" points="184,752 172,746.4 172,757.6" fill="black" transform="rotate(180,176,752)"/>
<polygon class="arrowhead" points="184,688 172,682.4 172,693.6" fill="black" transform="rotate(180,176,688)"/>
<polygon class="arrowhead" points="184,576 172,570.4 172,581.6" fill="black" transform="rotate(180,176,576)"/>
<polygon class="arrowhead" points="184,400 172,394.4 172,405.6" fill="black" transform="rotate(180,176,400)"/>
<polygon class="arrowhead" points="168,896 156,890.4 156,901.6" fill="black" transform="rotate(0,160,896)"/>
<polygon class="arrowhead" points="168,848 156,842.4 156,853.6" fill="black" transform="rotate(0,160,848)"/>
<polygon class="arrowhead" points="168,816 156,810.4 156,821.6" fill="black" transform="rotate(0,160,816)"/>
<polygon class="arrowhead" points="168,336 156,330.4 156,341.6" fill="black" transform="rotate(0,160,336)"/>
<polygon class="arrowhead" points="168,288 156,282.4 156,293.6" fill="black" transform="rotate(0,160,288)"/>
<polygon class="arrowhead" points="168,256 156,250.4 156,261.6" fill="black" transform="rotate(0,160,256)"/>
<polygon class="arrowhead" points="168,192 156,186.4 156,197.6" fill="black" transform="rotate(0,160,192)"/>
<polygon class="arrowhead" points="48,880 36,874.4 36,885.6" fill="black" transform="rotate(180,40,880)"/>
<polygon class="arrowhead" points="48,864 36,858.4 36,869.6" fill="black" transform="rotate(180,40,864)"/>
<polygon class="arrowhead" points="48,832 36,826.4 36,837.6" fill="black" transform="rotate(180,40,832)"/>
<polygon class="arrowhead" points="48,816 36,810.4 36,821.6" fill="black" transform="rotate(180,40,816)"/>
<polygon class="arrowhead" points="48,320 36,314.4 36,325.6" fill="black" transform="rotate(180,40,320)"/>
<polygon class="arrowhead" points="48,272 36,266.4 36,277.6" fill="black" transform="rotate(180,40,272)"/>
<polygon class="arrowhead" points="48,256 36,250.4 36,261.6" fill="black" transform="rotate(180,40,256)"/>
<polygon class="arrowhead" points="48,176 36,170.4 36,181.6" fill="black" transform="rotate(180,40,176)"/>
<path class="jump" d="M 32,728 C 26,728 26,712 32,712" fill="none" stroke="black"/><circle cx="168" cy="384" r="6" class="opendot" fill="white" stroke="black"/>
<circle cx="168" cy="624" r="6" class="opendot" fill="white" stroke="black"/>
<g class="text">
<text x="44" y="52">Pledge</text>
<text x="160" y="52">Registrar</text>
<text x="276" y="52">Domain</text>
<text x="412" y="52">Domain</text>
<text x="508" y="52">Vendor</text>
<text x="144" y="68">Agent</text>
<text x="288" y="68">Registrar</text>
<text x="396" y="68">CA</text>
<text x="512" y="68">Service</text>
<text x="156" y="84">(RegAgt)</text>
<text x="280" y="84">(JRC)</text>
<text x="508" y="84">(MASA)</text>
<text x="492" y="116">Internet</text>
<text x="92" y="132">discover</text>
<text x="92" y="148">pledge</text>
<text x="60" y="164">mDNS</text>
<text x="104" y="164">query</text>
<text x="40" y="244">(1)</text>
<text x="88" y="244">trigger</text>
<text x="136" y="244">PVR</text>
<text x="180" y="244">(tPVR)</text>
<text x="224" y="244">and</text>
<text x="256" y="244">PER</text>
<text x="300" y="244">(tPER)</text>
<text x="372" y="244">generation</text>
<text x="428" y="244">on</text>
<text x="468" y="244">pledge</text>
<text x="76" y="260">opt.</text>
<text x="112" y="260">TLS</text>
<text x="108" y="276">tPVR</text>
<text x="104" y="292">PVR</text>
<text x="108" y="324">tPER</text>
<text x="104" y="340">PER</text>
<text x="32" y="356">~</text>
<text x="168" y="356">~</text>
<text x="312" y="356">~</text>
<text x="432" y="356">~</text>
<text x="536" y="356">~</text>
<text x="40" y="388">(2)</text>
<text x="88" y="388">provide</text>
<text x="136" y="388">PVR</text>
<text x="160" y="388">t</text>
<text x="236" y="388">infrastructure</text>
<text x="240" y="404">TLS</text>
<text x="312" y="404">|</text>
<text x="276" y="420">[Reg-Agt</text>
<text x="368" y="420">authenticated</text>
<text x="264" y="436">and</text>
<text x="332" y="436">authorized?]</text>
<text x="232" y="452">PVR</text>
<text x="312" y="452">|</text>
<text x="276" y="468">[Reg-Agt</text>
<text x="364" y="468">authorized?]</text>
<text x="272" y="484">[accept</text>
<text x="340" y="484">device?]</text>
<text x="276" y="500">[contact</text>
<text x="344" y="500">vendor]</text>
<text x="432" y="516">RVR</text>
<text x="436" y="532">[extract</text>
<text x="512" y="532">DomainID]</text>
<text x="432" y="548">[update</text>
<text x="488" y="548">audit</text>
<text x="532" y="548">log]</text>
<text x="432" y="564">Voucher</text>
<text x="240" y="580">Voucher</text>
<text x="40" y="628">(2)</text>
<text x="88" y="628">provide</text>
<text x="136" y="628">PER</text>
<text x="160" y="628">t</text>
<text x="236" y="628">infrastructure</text>
<text x="240" y="644">PER</text>
<text x="368" y="660">CSR</text>
<text x="372" y="676">Cert</text>
<text x="240" y="692">Enroll-Resp</text>
<text x="44" y="724">2)</text>
<text x="80" y="724">query</text>
<text x="136" y="724">cACerts</text>
<text x="188" y="724">from</text>
<text x="268" y="724">infrastructure</text>
<text x="180" y="740">--</text>
<text x="236" y="740">cACert-Req</text>
<text x="256" y="756">cACert-Resp--</text>
<text x="32" y="772">~</text>
<text x="168" y="772">~</text>
<text x="312" y="772">~</text>
<text x="432" y="772">~</text>
<text x="536" y="772">~</text>
<text x="40" y="804">(3)</text>
<text x="88" y="804">provide</text>
<text x="152" y="804">voucher</text>
<text x="200" y="804">and</text>
<text x="264" y="804">certificate</text>
<text x="328" y="804">and</text>
<text x="376" y="804">collect</text>
<text x="436" y="804">status</text>
<text x="484" y="804">info</text>
<text x="76" y="820">opt.</text>
<text x="112" y="820">TLS</text>
<text x="104" y="836">Voucher</text>
<text x="104" y="852">vStatus</text>
<text x="104" y="868">cACerts</text>
<text x="112" y="884">Enroll-Resp--</text>
<text x="96" y="900">eStatus</text>
<text x="32" y="916">~</text>
<text x="168" y="916">~</text>
<text x="312" y="916">~</text>
<text x="432" y="916">~</text>
<text x="536" y="916">~</text>
<text x="40" y="948">(4)</text>
<text x="88" y="948">provide</text>
<text x="152" y="948">voucher</text>
<text x="212" y="948">status</text>
<text x="256" y="948">and</text>
<text x="300" y="948">enroll</text>
<text x="356" y="948">status</text>
<text x="396" y="948">to</text>
<text x="448" y="948">registrar</text>
<text x="248" y="964">TLS</text>
<text x="248" y="980">vStatus</text>
<text x="360" y="996">req</text>
<text x="404" y="996">device</text>
<text x="456" y="996">audit</text>
<text x="496" y="996">log</text>
<text x="388" y="1012">device</text>
<text x="440" y="1012">audit</text>
<text x="480" y="1012">log</text>
<text x="288" y="1028">[verify</text>
<text x="344" y="1028">audit</text>
<text x="388" y="1028">log]</text>
<text x="240" y="1060">eStatus</text>
</g>
</svg>
</artwork><artwork  type="ascii-art" align="left"><![CDATA[
+--------+   +-----------+   +-----------+    +--------+  +---------+
| Pledge |   | Registrar |   | Domain    |    | Domain |  | Vendor  |
|        |   | Agent     |   | Registrar |    | CA     |  | Service |
|        |   | (RegAgt)  |   |  (JRC)    |    |        |  | (MASA)  |
+--------+   +-----------+   +-----------+    +--------+  +---------+
   |                |                 |              |   Internet |
   |   discover     |                 |              |            |
   |    pledge      |                 |              |            |
   | mDNS query     |                 |              |            |
   |<---------------|                 |              |            |
   |--------------->|                 |              |            |
   |                |                 |              |            |

   (1) trigger PVR (tPVR) and PER (tPER) generation on pledge
   |<--opt. TLS --->|                 |              |            |
   |<----- tPVR ----|                 |              |            |
   |------ PVR ---->|                 |              |            |
   |                |                 |              |            |
   |<----- tPER ----|                 |              |            |
   |------ PER ---->|                 |              |            |
   ~                ~                 ~              ~            ~

   (2) provide PVR to infrastructure
   |                |<----- TLS ----->|              |            |
   |                |         [Reg-Agt authenticated |            |
   |                |          and authorized?]      |            |
   |                |----- PVR ------>|              |            |
   |                |         [Reg-Agt authorized?]  |            |
   |                |         [accept device?]       |            |
   |                |         [contact vendor]       |            |
   |                |                 |------------ RVR --------->|
   |                |                 |           [extract DomainID]
   |                |                 |           [update audit log]
   |                |                 |<--------- Voucher --------|
   |                |<--- Voucher ----|              |            |
   |                |                 |              |            |

   (2) provide PER to infrastructure
   |                |------ PER ----->|              |            |
   |                |                 |---- CSR ---->|            |
   |                |                 |<--- Cert ----|            |
   |                |<--Enroll-Resp---|              |            |
   |                |                 |              |            |
   (2) query cACerts from infrastructure
   |                |-- cACert-Req -->|              |            |
   |                |<-- cACert-Resp--|              |            |
   ~                ~                 ~              ~            ~

   (3) provide voucher and certificate and collect status info
   |<--opt. TLS --->|                 |              |            |
   |<--- Voucher ---|                 |              |            |
   |---- vStatus -->|                 |              |            |
   |<--- cACerts ---|                 |              |            |
   |<--Enroll-Resp--|                 |              |            |
   |--- eStatus --->|                 |              |            |
   ~                ~                 ~              ~            ~

   (4) provide voucher status and enroll status to registrar
   |                |<------ TLS ---->|              |            |
   |                |----  vStatus -->|              |            |
   |                |                 |--- req device audit log-->|
   |                |                 |<---- device audit log ----|
   |                |           [verify audit log]
   |                |                 |              |            |
   |                |---- eStatus --->|              |            |
   |                |                 |              |            |
]]></artwork></artset></figure>

<t>The following sub sections split the interactions shown in <xref target="exchangesfig_uc2_all"/> between the different components into:</t>

<t><list style="numbers">
  <t><xref target="exchanges_uc2_1"/> describes the request object acquisition by the registrar-agent from pledge.</t>
  <t><xref target="exchanges_uc2_2"/> describes the request object processing initiated by the registrar-agent to the registrar and also the interaction of the registrar with the MASA and the domain CA including the response object processing by these entities.</t>
  <t><xref target="exchanges_uc2_3"/> describes the supply of response objects between the registrar-agent and the pledge including the status information.</t>
  <t><xref target="exchanges_uc2_5"/> describes the general status handling and addresses corresponding exchanges between the registrar-agent and the registrar.</t>
</list></t>

<section anchor="exchanges_uc2_1"><name>Request Objects Acquisition by Registrar-Agent from Pledge</name>

<t>The following description assumes that the registrar-agent has already discovered the pledge.
This may be done as described in <xref target="discovery_uc2_ppa"/> and <xref target="exchangesfig_uc2_all"/> based on DNS-SD or similar.</t>

<t>The focus is on the exchange of signature-wrapped objects using endpoints defined for the pledge in <xref target="pledge_ep"/>.</t>

<t>Preconditions:</t>

<t><list style="symbols">
  <t>Pledge: possesses IDevID</t>
  <t>Registrar-agent:
  <list style="symbols">
      <t><bcp14>MAY</bcp14> handle/trusts pledges IDevID CA certificate to validate IDevID certificate on returned PVR or in case of TLS usage for pledge communication.
The distribution of IDevID CA certificates to the registrar-agent is out of scope of this document and may be done by a manual configuration.</t>
      <t>possesses own LDevID(RegAgt) credentials for the registrar domain (site).
In addition, the registrar-agent <bcp14>SHOULD</bcp14> know the product-serial-number(s) of the pledge(s) to be bootstrapped.
The registrar-agent <bcp14>MAY</bcp14> be provided with the product-serial-number(s) in different ways:
      <list style="symbols">
          <t>configured, e.g., as a list of pledges to be bootstrapped via QR code scanning</t>
          <t>discovered by using standard approaches like mDNS as described in <xref target="discovery_uc2_ppa"/></t>
          <t>discovered by using a vendor specific approach, e.g., RF beacons.
If the serial numbers are not known in advance, the registrar-agent cannot perform a distinct triggering of pledges but and triggers  all pledges discovered .</t>
        </list></t>
    </list>
The registrar-agent <bcp14>SHOULD</bcp14> have synchronized time.</t>
  <t>Registrar (same as in BRSKI): possesses/trusts IDevID CA certificate and has own registrar LDevID credentials.</t>
</list></t>

<figure title="Request collection (registrar-agent - pledge)" anchor="exchangesfig_uc2_1"><artset><artwork  type="svg" align="left"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="352" width="520" viewBox="0 0 520 352" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
<path d="M 8,32 L 8,96" fill="none" stroke="black"/>
<path d="M 40,104 L 40,336" fill="none" stroke="black"/>
<path d="M 80,32 L 80,96" fill="none" stroke="black"/>
<path d="M 320,32 L 320,96" fill="none" stroke="black"/>
<path d="M 368,104 L 368,336" fill="none" stroke="black"/>
<path d="M 416,32 L 416,96" fill="none" stroke="black"/>
<path d="M 8,32 L 80,32" fill="none" stroke="black"/>
<path d="M 320,32 L 416,32" fill="none" stroke="black"/>
<path d="M 8,96 L 80,96" fill="none" stroke="black"/>
<path d="M 320,96 L 416,96" fill="none" stroke="black"/>
<path d="M 48,144 L 64,144" fill="none" stroke="black"/>
<path d="M 48,176 L 72,176" fill="none" stroke="black"/>
<path d="M 336,176 L 360,176" fill="none" stroke="black"/>
<path d="M 48,240 L 80,240" fill="none" stroke="black"/>
<path d="M 280,240 L 360,240" fill="none" stroke="black"/>
<path d="M 48,272 L 88,272" fill="none" stroke="black"/>
<path d="M 320,272 L 360,272" fill="none" stroke="black"/>
<path d="M 48,320 L 88,320" fill="none" stroke="black"/>
<path d="M 312,320 L 360,320" fill="none" stroke="black"/>
<polygon class="arrowhead" points="368,320 356,314.4 356,325.6" fill="black" transform="rotate(0,360,320)"/>
<polygon class="arrowhead" points="368,240 356,234.4 356,245.6" fill="black" transform="rotate(0,360,240)"/>
<polygon class="arrowhead" points="56,272 44,266.4 44,277.6" fill="black" transform="rotate(180,48,272)"/>
<polygon class="arrowhead" points="56,176 44,170.4 44,181.6" fill="black" transform="rotate(180,48,176)"/>
<polygon class="arrowhead" points="56,144 44,138.4 44,149.6" fill="black" transform="rotate(180,48,144)"/>
<g class="text">
<text x="44" y="52">Pledge</text>
<text x="368" y="52">Registrar</text>
<text x="352" y="68">Agent</text>
<text x="364" y="84">(RegAgt)</text>
<text x="400" y="116">-create</text>
<text x="448" y="132">agent-signed-data</text>
<text x="108" y="148">optional</text>
<text x="184" y="148">establish</text>
<text x="240" y="148">TLS</text>
<text x="300" y="148">connection</text>
<text x="356" y="148">--</text>
<text x="112" y="180">trigger</text>
<text x="172" y="180">pledge</text>
<text x="264" y="180">voucher-request</text>
<text x="204" y="196">-agent-provided-proximity-registrar-cert</text>
<text x="116" y="212">-agent-signed-data</text>
<text x="116" y="244">pledge</text>
<text x="208" y="244">voucher-request</text>
<text x="396" y="244">-store</text>
<text x="440" y="244">PVR</text>
<text x="128" y="276">trigger</text>
<text x="236" y="276">enrollment-request</text>
<text x="128" y="292">(empty)</text>
<text x="124" y="324">pledge</text>
<text x="228" y="324">enrollment-request</text>
<text x="396" y="324">-store</text>
<text x="448" y="324">(PER)</text>
</g>
</svg>
</artwork><artwork  type="ascii-art" align="left"><![CDATA[
+--------+                             +-----------+
| Pledge |                             | Registrar |
|        |                             | Agent     |
|        |                             | (RegAgt)  |
+--------+                             +-----------+
    |                                        |-create
    |                                        | agent-signed-data
    |<-- optional establish TLS connection --|
    |                                        |
    |<--- trigger pledge voucher-request ----|
    |-agent-provided-proximity-registrar-cert|
    |-agent-signed-data                      |
    |                                        |
    |----- pledge voucher-request ---------->|-store PVR
    |                                        |
    |<----- trigger enrollment-request ------|
    |       (empty)                          |
    |                                        |
    |------ pledge enrollment-request ------>|-store (PER)
    |                                        |
]]></artwork></artset></figure>

<t>TLS <bcp14>MAY</bcp14> be optionally used to provide privacy for the interaction between the registrar-agent and the pledge, see <xref target="pledgehttps"/>.</t>

<t>Note: The registrar-agent may trigger the pledge for the PVR or the PER or both. It is expected that this will be aligned with a service technician workflow, visiting and installing each pledge.</t>

<section anchor="pvrt"><name>Pledge-Voucher-Request (PVR) - Trigger</name>

<t>Triggering the pledge to create the PVR is done using HTTP POST on the defined pledge endpoint: "/.well-known/brski/tpvr"</t>

<t>The registrar-agent PVR trigger Content-Type header is: <spanx style="verb">application/json</spanx>.
Following parameters are provided in the JSON object:</t>

<t><list style="symbols">
  <t>agent-provided-proximity-registrar-cert: base64-encoded registrar EE TLS certificate.</t>
  <t>agent-signed-data: base64-encoded JSON-in-JWS object.</t>
</list></t>

<t>The trigger for the pledge to create a PVR is depicted in the following figure:</t>

<figure title="Representation of trigger to create PVR" anchor="pavrt"><artwork align="left"><![CDATA[
{
  "agent-provided-proximity-registrar-cert": "base64encodedvalue==",
  "agent-signed-data": "base64encodedvalue=="
}
]]></artwork></figure>

<t>Note that at the time of receiving the PVR trigger, the pledge cannot verify the registrar LDevID certificate and has no proof-of-possession of the corresponding private key for the certificate. The pledge therefore accepts the registrar LDevID certificate provisionally until it receives the voucher as described in <xref target="exchanges_uc2_3"/>.</t>

<t>The pledge will also be unable to verify the agent-signed-data itself as it does not possess the LDevID(RegAgt) certificate and the domain trust has not been established at this point of the communication.
Verification <bcp14>SHOULD</bcp14> be done, after the voucher has been received.</t>

<t>The agent-signed-data is a JSON-in-JWS object and contains the following information:</t>

<t>The header of the agent-signed-data contains:</t>

<t><list style="symbols">
  <t>alg: algorithm used for creating the object signature.</t>
  <t>kid: <bcp14>MUST</bcp14> contain the base64-encoded bytes of the SubjectKeyIdentifier (the "KeyIdentifier" OCTET STRING value) of the LDevID(RegAgt) certificate.</t>
</list></t>

<t>The body of the agent-signed-data contains an "ietf-voucher-request:agent-signed-data" element (defined in <xref target="I-D.ietf-anima-rfc8366bis"/>):</t>

<t><list style="symbols">
  <t>created-on: <bcp14>MUST</bcp14> contain the creation date and time in yang:date-and-time format.</t>
  <t>serial-number: <bcp14>MUST</bcp14> contain the product-serial-number as type string as defined in <xref target="RFC8995"/>, section 2.3.1.
The serial-number corresponds with the product-serial-number contained in the X520SerialNumber field of the IDevID certificate of the pledge.</t>
</list></t>

<figure title="Representation of agent-signed-data in General JWS Serialization syntax" anchor="asd"><artwork align="left"><![CDATA[
# The agent-signed-data in General JWS Serialization syntax
{
  "payload": "BASE64URL(ietf-voucher-request-prm:agent-signed-data)",
  "signatures": [
    {
      "protected": "BASE64URL(UTF8(JWS Protected Header))",
      "signature": "base64encodedvalue=="
    }
  ]
}

# Example: Decoded payload representation in JSON syntax of
  "ietf-voucher-request-prm:agent-signed-data"

"ietf-voucher-request-prm:agent-signed-data": {
  "created-on": "2021-04-16T00:00:01.000Z",
  "serial-number": "callee4711"
}

# Example: Decoded "JWS Protected Header" representation
  in JSON syntax
{
  "alg": "ES256",
  "kid": "base64encodedvalue=="
}
]]></artwork></figure>

</section>
<section anchor="pvrr"><name>Pledge-Voucher-Request (PVR) - Response</name>

<t>Upon receiving the voucher-request trigger, the pledge <bcp14>SHALL</bcp14> construct the body of the PVR as defined in <xref target="RFC8995"/>.
It will contain additional information provided by the registrar-agent as specified in the following.
This PVR becomes a JSON-in-JWS object as defined in <xref target="I-D.ietf-anima-jws-voucher"/>.
If the pledge is unable to construct the PVR it <bcp14>SHOULD</bcp14> respond with a HTTP error code to the registrar-agent to indicate that it is not able to create the PVR.</t>

<t>The following client error responses <bcp14>MAY</bcp14> be used:</t>

<t><list style="symbols">
  <t>400 Bad Request: if the pledge detected an error in the format of the request, e.g. missing field, wrong data types, etc. or if the request is not valid JSON even though the PVR media type was set to <spanx style="verb">application/json</spanx>.</t>
  <t>403 Forbidden: if the pledge detected that one or more security parameters from the trigger message to create the PVR were not valid, e.g., the LDevID (Reg) certificate.</t>
</list></t>

<t>The header of the PVR <bcp14>SHALL</bcp14> contain the following parameters as defined in <xref target="RFC7515"/> to support JWS signing of the object:</t>

<t><list style="symbols">
  <t>alg: algorithm used for creating the object signature.</t>
  <t>x5c: contains the base64-encoded pledge IDevID certificate.
It <bcp14>MAY</bcp14> optionally contain the certificate chain for this certificate. If the certificate chain is not included it <bcp14>MUST</bcp14> be available at the registrar for verification of the IDevID certificate.</t>
</list></t>

<t>The payload of the PVR <bcp14>MUST</bcp14> contain the following parameters as part of the ietf-voucher-request-prm:voucher as defined in <xref target="RFC8995"/>:</t>

<t><list style="symbols">
  <t>created-on: <bcp14>SHALL</bcp14> contain the current date and time in yang:date-and-time format.
If the pledge does not have synchronized time, it <bcp14>SHALL</bcp14> use the created-on time from the agent-signed-data, received in the trigger to create a PVR.</t>
  <t>nonce: <bcp14>SHALL</bcp14> contain a cryptographically strong pseudo-random number.</t>
  <t>serial-number: <bcp14>SHALL</bcp14> contain the pledge product-serial-number as X520SerialNumber.</t>
  <t>assertion: <bcp14>SHALL</bcp14> contain the requested voucher assertion "agent-proximity" (different value as in RFC 8995)..</t>
</list></t>

<t>The ietf-voucher-request:voucher is extended with additional parameters:</t>

<t><list style="symbols">
  <t>agent-provided-proximity-registrar-cert: <bcp14>MUST</bcp14> be included and contains the base64-encoded registrar LDevID certificate (provided as PVR trigger parameter by the registrar-agent).</t>
  <t>agent-signed-data: <bcp14>MUST</bcp14> contain the base64-encoded agent-signed-data (as defined in <xref target="asd"/>) and provided as a PVR trigger parameter by the registrar-agent.</t>
</list></t>

<t>The enhancements of the YANG module for the ietf-voucher-request with these new leaves are defined in <xref target="I-D.ietf-anima-rfc8366bis"/>.</t>

<t>The PVR is signed using the pledge's IDevID credential contained as x5c parameter of the JOSE header.</t>

<figure title="Representation of PVR" anchor="pvr"><artwork align="left"><![CDATA[
# The PVR in General JWS Serialization syntax
{
  "payload": "BASE64URL(ietf-voucher-request-prm:voucher)",
  "signatures": [
    {
      "protected": "BASE64URL(UTF8(JWS Protected Header))",
      "signature": "base64encodedvalue=="
    }
  ]
}

# Example: Decoded Payload "ietf-voucher-request-prm:voucher"
  representation in JSON syntax
"ietf-voucher-request-prm:voucher": {
   "created-on": "2021-04-16T00:00:02.000Z",
   "nonce": "eDs++/FuDHGUnRxN3E14CQ==",
   "serial-number": "callee4711",
   "assertion": "agent-proximity",
   "agent-provided-proximity-registrar-cert": "base64encodedvalue==",
   "agent-signed-data": "base64encodedvalue=="
}

# Example: Decoded "JWS Protected Header" representation
  in JSON syntax
{
    "alg": "ES256",
    "x5c": [
      "base64encodedvalue==",
      "base64encodedvalue=="
    ],
    "typ": "voucher-jws+json"
}
]]></artwork></figure>

<t>The PVR Media-Type is defined in <xref target="I-D.ietf-anima-jws-voucher"/> as <spanx style="verb">application/voucher-jws+json</spanx>.</t>

<t>The pledge <bcp14>MUST</bcp14> include this Media-Type header field indicating the included media type for the PVR.
The PVR is included by the registrar in its RCR as described in <xref target="exchanges_uc2_2"/>.</t>

</section>
<section anchor="pledge-enrollment-request-per-trigger"><name>Pledge-Enrollment-Request (PER) - Trigger</name>

<t>Once the registrar-agent has received the PVR it can trigger the pledge to generate a PER.
As in BRSKI the PER contains a PKCS#10, but additionally signed using the pledge's IDevID.
Note, as the initial enrollment aims to request a generic certificate, no certificate attributes are provided to the pledge.</t>

<t>Triggering the pledge to create the enrollment-request is done using HTTP POST on the defined pledge endpoint: "/.well-known/brski/tper"</t>

<t>The registrar-agent PER trigger Content-Type header is: <spanx style="verb">application/json</spanx> with an empty body by default.
Note that using HTTP POST allows for an empty body, but also to provide additional data, like CSR attributes or information about the enroll type "enroll-generic-cert" or "re-enroll-generic-cert".
The "enroll-generic-cert" case is shown in <xref target="raer"/>.</t>

<figure title="Example of trigger to create a PER" anchor="raer"><artwork align="left"><![CDATA[
{
  "enroll-type" : "enroll-generic-cert"
}
]]></artwork></figure>

<t>This document specifies the request of a generic certificate with no CSR attributes provided to the pledge.
If specific attributes in the certificate are required, they have to be inserted by the issuing RA/CA.
How the HTTP POST can be used to provide CSR attributes is out of scope for this specification.</t>

</section>
<section anchor="PER-response"><name>Pledge-Enrollment-Request (PER) - Response</name>

<t>In the following the enrollment is described as initial enrollment with an empty HTTP POST body.</t>

<t>Upon receiving the PER  trigger, the pledge <bcp14>SHALL</bcp14> construct the PER as authenticated self-contained object.
The CSR already assures POP of the private key corresponding to the contained public key.
In addition, based on the PER signature using the IDevID, POI is provided.
Here, a JOSE object is being created in which the body utilizes the YANG module ietf-ztp-types with the grouping for csr-grouping for the CSR as defined in <xref target="I-D.ietf-netconf-sztp-csr"/>.</t>

<t>Depending on the capability of the pledge, it constructs the pledge enrollment-request (PER) as plain PKCS#10.
Note, the focus in this use case is placed on PKCS#10 as PKCS#10 can be transmitted in different enrollment protocols in the infrastructure like EST, CMP, CMS, and SCEP.
If the pledge has already implemented an enrollment protocol, it may leverage that functionality for the creation of the CSR.
Note, <xref target="I-D.ietf-netconf-sztp-csr"/> also allows for inclusion of certification requests in different formats used by CMP or CMC.</t>

<t>The pledge <bcp14>MUST</bcp14> construct the PER as PKCS#10.
In BRSKI-PRM it <bcp14>MUST</bcp14> sign it additionally with its IDevID credentials to provide proof-of-identity bound to the PKCS#10 as described below.</t>

<t>If the pledge is unable to construct the PER it <bcp14>SHOULD</bcp14> respond with a HTTP 4xx/5xx error code to the registrar-agent to indicate that it is not able to create the PER.</t>

<t>The following 4xx client error codes <bcp14>MAY</bcp14> be used:</t>

<t><list style="symbols">
  <t>400 Bad Request: if the pledge detected an error in the format of the request or detected invalid JSON even though the PER media type was set to <spanx style="verb">application/json</spanx>.</t>
  <t>403 Forbidden: if the pledge detected that one or more security parameters (if provided) from the trigger message to create the PER are not valid.</t>
  <t>406 Not Acceptable: if the request's Accept header indicates a type that is unknown or unsupported. For example, a type other than <spanx style="verb">application/jose+json</spanx>.</t>
  <t>415 Unsupported Media Type: if the request's Content-Type header indicates a type that is unknown or unsupported. For example, a type other than 'application/json'.</t>
</list></t>

<t>A successful enrollment will result in a generic LDevID certificate for the pledge in the new domain, which can be used to request further (application specific) LDevID certificates if necessary for operation.
The registrar-agent <bcp14>SHALL</bcp14> use the endpoints specified in this document.</t>

<t><xref target="I-D.ietf-netconf-sztp-csr"/> considers PKCS#10 but also CMP and CMC as certification request format.
Note that the wrapping of the PER signature is only necessary for plain PKCS#10 as other request formats like CMP and CMS support the signature wrapping as part of their own certificate request format.</t>

<t>The registrar-agent enrollment-request Content-Type header for a signature-wrapped PKCS#10 is: <spanx style="verb">application/jose+json</spanx></t>

<t>The header of the pledge enrollment-request <bcp14>SHALL</bcp14> contain the following parameter as defined in <xref target="RFC7515"/>:</t>

<t><list style="symbols">
  <t>alg: algorithm used for creating the object signature.</t>
  <t>x5c: contains the base64-encoded pledge IDevID certificate.
It <bcp14>MAY</bcp14> optionally contain the certificate chain for this certificate. If the certificate chain is not included it <bcp14>MUST</bcp14> be available at the registrar for verification of the IDevID certificate.
The body of the pledge enrollment-request <bcp14>SHOULD</bcp14> contain a P10 parameter (for PKCS#10) as defined for ietf-ztp-types:p10-csr in <xref target="I-D.ietf-netconf-sztp-csr"/>:</t>
  <t>P10: contains the base64-encoded PKCS#10 of the pledge.</t>
</list></t>

<t>The JOSE object is signed using the pledge's IDevID credential, which corresponds to the certificate signaled in the JOSE header.</t>

<t>While BRSKI-PRM targets the initial enrollment, re-enrollment <bcp14>SHOULD</bcp14> be supported as described in a similar way as for enrollment in this document, if no other re-enrollment mechanism is supported.
Note that in this case the current LDevID credential is used instead of the IDevID credential to create the signature of the PKCS#10 request.</t>

<figure title="Representation of PER" anchor="per"><artwork align="left"><![CDATA[
# The PER in General JWS Serialization syntax
{
  "payload": "BASE64URL(ietf-ztp-types)",
  "signatures": [
    {
      "protected": "BASE64URL(UTF8(JWS Protected Header))",
      "signature": "base64encodedvalue=="
    }
  ]
}

# Example: Decoded Payload "ietf-ztp-types" Representation
  in JSON Syntax
"ietf-ztp-types": {
  "p10-csr": "base64encodedvalue=="
}

# Example: Decoded "JWS Protected Header" Representation
  in JSON Syntax
{
  "alg": "ES256",
  "x5c": [
    "base64encodedvalue==",
    "base64encodedvalue=="
  ],
  "crit":["created-on"],
  "created-on": "2022-09-13T00:00:02.000Z"
}
]]></artwork></figure>

<t>With the collected PVR and PER, the registrar-agent starts the interaction with the domain registrar.</t>

<t>The new protected header field "created-on" is introduced to reflect freshness of the PER.
The field is marked critical "crit" to ensure that it must be understood and validated by the receiver (here the domain registrar) according to section 4.1.11 of <xref target="RFC7515"/>.
It allows the registrar to verify the timely correlation between the PER and previously exchanged messages, i.e., created-on of PER &gt;= created-on of PVR &gt;= created-on of PVR trigger.
The registrar <bcp14>MAY</bcp14> consider to ignore any but the newest PER from the same pledge in the case the registrar has at any point in time more than one pending PER from the pledge.</t>

<t>As the registrar-agent is intended to facilitate communication between the pledge and the domain registrar, a collection of requests from more than one pledge is possible.
This allows bulk bootstrapping of several pledges using the same connection between the registrar-agent and the domain registrar.</t>

</section>
</section>
<section anchor="exchanges_uc2_2"><name>Request Object Handling initiated by the Registrar-Agent on Registrar, MASA and Domain CA</name>

<t>The BRSKI-PRM bootstrapping exchanges between registrar-agent and domain registrar resemble the BRSKI exchanges between pledge and domain registrar (pledge-initiator-mode) with some deviations.</t>

<t>Preconditions:</t>

<t><list style="symbols">
  <t>Registrar-agent: possesses its own LDevID(RegAgt) credentials of the site domain.
In addition, it <bcp14>MAY</bcp14> possess the IDevID CA certificate of the pledge vendor/manufacturer to verify the pledge certificate in the received request messages.
It has the address of the domain registrar through configuration or by discovery, e.g., mDNS/DNSSD.
The registrar-agent has acquired one or more PVR and PER objects.</t>
  <t>Registrar (same as in BRSKI): possesses the IDevID CA certificate of the pledge vendor/manufacturer and its own registrar LDevID credentials of the site domain.</t>
  <t>MASA (same as in BRSKI): possesses its own vendor/manufacturer credentials (voucher signing key and certificate, TLS server certificate and private key) related to pledges IDevID and <bcp14>MAY</bcp14> possess the site-specific domain CA certificate.</t>
</list></t>

<figure title="Request processing between registrar-agent and bootstrapping services" anchor="exchangesfig_uc2_2"><artset><artwork  type="svg" align="left"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="624" width="504" viewBox="0 0 504 624" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
<path d="M 8,32 L 8,96" fill="none" stroke="black"/>
<path d="M 40,144 L 40,608" fill="none" stroke="black"/>
<path d="M 104,32 L 104,96" fill="none" stroke="black"/>
<path d="M 152,32 L 152,96" fill="none" stroke="black"/>
<path d="M 200,104 L 200,176" fill="none" stroke="black"/>
<path d="M 200,224 L 200,256" fill="none" stroke="black"/>
<path d="M 200,320 L 200,608" fill="none" stroke="black"/>
<path d="M 248,32 L 248,96" fill="none" stroke="black"/>
<path d="M 312,32 L 312,96" fill="none" stroke="black"/>
<path d="M 352,104 L 352,288" fill="none" stroke="black"/>
<path d="M 352,416 L 352,608" fill="none" stroke="black"/>
<path d="M 384,32 L 384,96" fill="none" stroke="black"/>
<path d="M 416,32 L 416,96" fill="none" stroke="black"/>
<path d="M 456,104 L 456,352" fill="none" stroke="black"/>
<path d="M 456,400 L 456,608" fill="none" stroke="black"/>
<path d="M 496,32 L 496,96" fill="none" stroke="black"/>
<path d="M 8,32 L 104,32" fill="none" stroke="black"/>
<path d="M 152,32 L 248,32" fill="none" stroke="black"/>
<path d="M 312,32 L 384,32" fill="none" stroke="black"/>
<path d="M 416,32 L 496,32" fill="none" stroke="black"/>
<path d="M 8,96 L 104,96" fill="none" stroke="black"/>
<path d="M 152,96 L 248,96" fill="none" stroke="black"/>
<path d="M 312,96 L 384,96" fill="none" stroke="black"/>
<path d="M 416,96 L 496,96" fill="none" stroke="black"/>
<path d="M 48,176 L 88,176" fill="none" stroke="black"/>
<path d="M 144,176 L 192,176" fill="none" stroke="black"/>
<path d="M 48,240 L 64,240" fill="none" stroke="black"/>
<path d="M 176,240 L 192,240" fill="none" stroke="black"/>
<path d="M 208,320 L 304,320" fill="none" stroke="black"/>
<path d="M 360,320 L 448,320" fill="none" stroke="black"/>
<path d="M 208,336 L 272,336" fill="none" stroke="black"/>
<path d="M 384,336 L 448,336" fill="none" stroke="black"/>
<path d="M 208,400 L 288,400" fill="none" stroke="black"/>
<path d="M 368,400 L 448,400" fill="none" stroke="black"/>
<path d="M 48,416 L 80,416" fill="none" stroke="black"/>
<path d="M 160,416 L 192,416" fill="none" stroke="black"/>
<path d="M 48,448 L 64,448" fill="none" stroke="black"/>
<path d="M 168,448 L 192,448" fill="none" stroke="black"/>
<path d="M 208,480 L 248,480" fill="none" stroke="black"/>
<path d="M 304,480 L 344,480" fill="none" stroke="black"/>
<path d="M 208,496 L 224,496" fill="none" stroke="black"/>
<path d="M 328,496 L 344,496" fill="none" stroke="black"/>
<path d="M 208,528 L 224,528" fill="none" stroke="black"/>
<path d="M 328,528 L 344,528" fill="none" stroke="black"/>
<path d="M 48,544 L 64,544" fill="none" stroke="black"/>
<path d="M 176,544 L 192,544" fill="none" stroke="black"/>
<path d="M 48,576 L 64,576" fill="none" stroke="black"/>
<path d="M 176,576 L 192,576" fill="none" stroke="black"/>
<path d="M 48,592 L 64,592" fill="none" stroke="black"/>
<path d="M 176,592 L 192,592" fill="none" stroke="black"/>
<polygon class="arrowhead" points="456,336 444,330.4 444,341.6" fill="black" transform="rotate(0,448,336)"/>
<polygon class="arrowhead" points="456,320 444,314.4 444,325.6" fill="black" transform="rotate(0,448,320)"/>
<polygon class="arrowhead" points="352,496 340,490.4 340,501.6" fill="black" transform="rotate(0,344,496)"/>
<polygon class="arrowhead" points="352,480 340,474.4 340,485.6" fill="black" transform="rotate(0,344,480)"/>
<polygon class="arrowhead" points="216,528 204,522.4 204,533.6" fill="black" transform="rotate(180,208,528)"/>
<polygon class="arrowhead" points="216,480 204,474.4 204,485.6" fill="black" transform="rotate(180,208,480)"/>
<polygon class="arrowhead" points="216,400 204,394.4 204,405.6" fill="black" transform="rotate(180,208,400)"/>
<polygon class="arrowhead" points="200,576 188,570.4 188,581.6" fill="black" transform="rotate(0,192,576)"/>
<polygon class="arrowhead" points="200,448 188,442.4 188,453.6" fill="black" transform="rotate(0,192,448)"/>
<polygon class="arrowhead" points="200,240 188,234.4 188,245.6" fill="black" transform="rotate(0,192,240)"/>
<polygon class="arrowhead" points="200,176 188,170.4 188,181.6" fill="black" transform="rotate(0,192,176)"/>
<polygon class="arrowhead" points="56,592 44,586.4 44,597.6" fill="black" transform="rotate(180,48,592)"/>
<polygon class="arrowhead" points="56,544 44,538.4 44,549.6" fill="black" transform="rotate(180,48,544)"/>
<polygon class="arrowhead" points="56,416 44,410.4 44,421.6" fill="black" transform="rotate(180,48,416)"/>
<polygon class="arrowhead" points="56,176 44,170.4 44,181.6" fill="black" transform="rotate(180,48,176)"/>
<g class="text">
<text x="60" y="52">Registrar-</text>
<text x="188" y="52">Domain</text>
<text x="348" y="52">Domain</text>
<text x="452" y="52">Vendor</text>
<text x="40" y="68">agent</text>
<text x="200" y="68">Registrar</text>
<text x="332" y="68">CA</text>
<text x="456" y="68">Service</text>
<text x="52" y="84">(RegAgt)</text>
<text x="192" y="84">(JRC)</text>
<text x="452" y="84">(MASA)</text>
<text x="40" y="116">|</text>
<text x="412" y="116">Internet</text>
<text x="36" y="132">[voucher</text>
<text x="80" y="132">+</text>
<text x="136" y="132">enrollment]</text>
<text x="20" y="148">[PVR</text>
<text x="64" y="148">PER</text>
<text x="120" y="148">available</text>
<text x="168" y="148">]</text>
<text x="116" y="180">mTLS</text>
<text x="164" y="196">[Reg-Agt</text>
<text x="256" y="196">authenticated</text>
<text x="152" y="212">and</text>
<text x="220" y="212">authorized?]</text>
<text x="120" y="244">Voucher-Req</text>
<text x="120" y="260">(PVR)</text>
<text x="164" y="276">[Reg-Agt</text>
<text x="252" y="276">authorized?]</text>
<text x="160" y="292">[accept</text>
<text x="228" y="292">device?]</text>
<text x="164" y="308">[contact</text>
<text x="232" y="308">vendor]</text>
<text x="332" y="324">mTLS</text>
<text x="328" y="340">Voucher-Req</text>
<text x="328" y="356">(RVR)</text>
<text x="388" y="372">[extract</text>
<text x="464" y="372">DomainID]</text>
<text x="384" y="388">[update</text>
<text x="440" y="388">audit</text>
<text x="484" y="388">log]</text>
<text x="328" y="404">Voucher</text>
<text x="120" y="420">Voucher</text>
<text x="116" y="452">Enroll-Req</text>
<text x="112" y="468">(PER)</text>
<text x="276" y="484">mTLS</text>
<text x="276" y="500">Enroll-Req</text>
<text x="264" y="516">(RER)</text>
<text x="280" y="532">Enroll-Resp</text>
<text x="120" y="548">Enroll-Resp</text>
<text x="120" y="580">caCerts-Req</text>
<text x="120" y="596">caCerts-Res</text>
</g>
</svg>
</artwork><artwork  type="ascii-art" align="left"><![CDATA[
+-----------+     +-----------+       +--------+   +---------+
| Registrar-|     | Domain    |       | Domain |   | Vendor  |
| agent     |     | Registrar |       | CA     |   | Service |
| (RegAgt)  |     |  (JRC)    |       |        |   | (MASA)  |
+-----------+     +-----------+       +--------+   +---------+
    |                   |                  |   Internet |
[voucher + enrollment]  |                  |            |
[PVR, PER available ]   |                  |            |
    |                   |                  |            |
    |<----- mTLS ------>|                  |            |
    |           [Reg-Agt authenticated     |            |
    |            and authorized?]          |            |
    |                   |                  |            |
    |--- Voucher-Req -->|                  |            |
    |       (PVR)       |                  |            |
    |           [Reg-Agt authorized?]      |            |
    |           [accept device?]           |            |
    |           [contact vendor]                        |
    |                   |------------- mTLS ----------->|
    |                   |--------- Voucher-Req -------->|
    |                   |             (RVR)             |
    |                   |                   [extract DomainID]
    |                   |                   [update audit log]
    |                   |<---------- Voucher -----------|
    |<---- Voucher -----|                  |            |
    |                   |                  |            |
    |--- Enroll-Req --->|                  |            |
    |      (PER)        |                  |            |
    |                   |<----- mTLS ----->|            |
    |                   |--- Enroll-Req -->|            |
    |                   |     (RER)        |            |
    |                   |<-- Enroll-Resp---|            |
    |<-- Enroll-Resp ---|                  |            |
    |                   |                  |            |
    |--- caCerts-Req -->|                  |            |
    |<-- caCerts-Res ---|                  |            |
    |                   |                  |            |
]]></artwork></artset></figure>

<t>The registrar-agent establishes a TLS connection to the registrar.
As already stated in <xref target="RFC8995"/>, the use of TLS 1.3 (or newer) is encouraged.
TLS 1.2 or newer is <bcp14>REQUIRED</bcp14> on the registrar-agent side.
TLS 1.3 (or newer) <bcp14>SHOULD</bcp14> be available on the registrar, but TLS 1.2 <bcp14>MAY</bcp14> be used.
TLS 1.3 (or newer) <bcp14>SHOULD</bcp14> be available on the MASA, but TLS 1.2 <bcp14>MAY</bcp14> be used.</t>

<section anchor="connection-establishment-registrar-agent-to-registrar"><name>Connection Establishment (Registrar-Agent to Registrar)</name>

<t>In contrast to BRSKI <xref target="RFC8995"/> TLS client authentication to the registrar is achieved by using registrar-agent LDevID(RegAgt) credentials instead of pledge IDevID credentials.
Consequently BRSKI (pledge-initiator-mode) is distinguishable from BRSKI-PRM (pledge-responder-mode) by the registrar.
The registrar <bcp14>SHOULD</bcp14> verify that the registrar-agent is authorized to establish a connection to the registrar by TLS client authentication using LDevID(RegAgt) credentials.
If the connection from registrar-agent to registrar is established, the authorization <bcp14>SHOULD</bcp14> be verified again based on agent-signed-data contained in the PVR.
This ensures that the pledge has been triggered by an authorized registrar-agent.</t>

<t>With BRSKI-PRM, the pledge generates PVR and PER as JSON-in-JWS objects and the registrar agent forwards them to the registrar.
In <xref target="RFC8995"/>, the pledge generates PVR as CMS-signed JSON and PER as PKCS#10 or PKCS#7 according to <xref target="RFC7030"/> and inherited by <xref target="RFC8995"/>.</t>

<t>For BRSKI-PRM, the registrar agent sends the PVR by HTTP POST to the same registrar endpoint as introduced by BRSKI: "/.well-
known/brski/requestvoucher", but with a Content-Type header field for JSON-in-JWS"</t>

<t>The Content-Type header field for JSON-in-JWS PVR is: <spanx style="verb">application/voucher-jws+json</spanx> (see <xref target="pvr"/> for the content definition), as defined in <xref target="I-D.ietf-anima-jws-voucher"/>.</t>

<t>The registrar-agent sets the Accept field in the request-header indicating the acceptable Content-Type for the voucher-response.
The voucher-response Content-Type header field is set to <spanx style="verb">application/voucher-jws+json</spanx> as defined in <xref target="I-D.ietf-anima-jws-voucher"/>.</t>

</section>
<section anchor="pvr-proc-reg"><name>Pledge-Voucher-Request (PVR) Processing by Registrar</name>

<t>After receiving the PVR from registrar-agent, the registrar <bcp14>SHALL</bcp14> perform the verification as defined in section 5.3 of <xref target="RFC8995"/>.
In addition, the registrar <bcp14>SHALL</bcp14> verify the following parameters from the PVR:</t>

<t><list style="symbols">
  <t>agent-provided-proximity-registrar-cert: <bcp14>MUST</bcp14> contain registrar's own registrar LDevID certificate to ensure the registrar in proximity of the registrar-agent is the desired registrar for this PVR.</t>
  <t>agent-signed-data: The registrar <bcp14>MUST</bcp14> verify that the agent provided data has been signed with the LDevID(RegAgt) credentials indicated in the "kid" JOSE header parameter.
The registrar <bcp14>MUST</bcp14> verify that the LDevID(ReAgt) certificate, corresponding to the signature, is still valid.
If the certificate is already expired, the registrar <bcp14>SHALL</bcp14> reject the request.
Validity of used signing certificates at the time of signing the agent-signed-data is necessary to avoid that a rogue registrar-agent generates agent-signed-data objects to onboard arbitrary pledges at a later point in time, see also <xref target="sec_cons_reg-agt"/>.
The registrar <bcp14>MUST</bcp14> fetch the LDevID(RegAgt) certificate, based on the provided SubjectKeyIdentifier (SKID) contained in the "kid" header parameter of the agent-signed-data, and perform this verification.
This requires, that the registrar has access to the LDevID(RegAgt) certificate data (including intermediate CA certificates if existent) based on the SKID.
Note, the registrar may have stored the LDevID(RegAgt) if used during TLS establishment between registrar-agent and registrar or it may be provided via a repository.</t>
</list></t>

<t>If the registrar is unable to validate the PVR it <bcp14>SHOULD</bcp14> respond with a HTTP 4xx/5xx error code to the registrar-agent.</t>

<t>The following 4xx client error codes <bcp14>SHOULD</bcp14> be used:</t>

<t><list style="symbols">
  <t>403 Forbidden: if the registrar detected that one or more security related parameters are not valid.</t>
  <t>404 Not Found status code if the pledge provided information could not be used with automated allowance, as described in section 5.3 of <xref target="RFC8995"/>.</t>
  <t>406 Not Acceptable: if the Content-Type indicated by the Accept header is unknown or unsupported.</t>
</list></t>

<t>If the validation succeeds, the registrar performs pledge authorization according to <xref target="RFC8995"/>, Section 5.3 followed by obtaining a voucher from the pledge's MASA according to <xref target="RFC8995"/>, Section 5.4 with the modifications described below in <xref target="rvr-proc"/>.</t>

</section>
<section anchor="rvr-proc"><name>Registrar-Voucher-Request (RVR) Processing (Registrar to MASA)</name>

<t>If the MASA address/URI is learned from the <xref target="RFC8995"/> Section 2.3 IDevID MASA URI extension, then the MASA on that URI <bcp14>MUST</bcp14> support the procedures defined in this document if the PVR used JSON-JWS encoding.
If the MASA is only configured on the registrar, then a registrar supporting BRKSI-PRM and other voucher encoding formats (such as those in <xref target="RFC8995"/>) <bcp14>SHOULD</bcp14> support per-message-format MASA address/URI configuration for the same IDevID trust anchor."</t>

<t>The registrar <bcp14>SHALL</bcp14> construct the payload of the RVR as defined in <xref target="RFC8995"/>, Section 5.5.
The RVR encoding <bcp14>SHALL</bcp14> be JSON-in-JWS as defined in <xref target="I-D.ietf-anima-jws-voucher"/>.</t>

<t>The header of the RVR <bcp14>SHALL</bcp14> contain the following parameter as defined for JWS <xref target="RFC7515"/>:</t>

<t><list style="symbols">
  <t>alg: algorithm used to create the object signature</t>
  <t>x5c: base64-encoded registrar LDevID certificate(s)
(It optionally contains the certificate chain for this certificate)</t>
</list></t>

<t>The payload of the RVR <bcp14>MUST</bcp14> contain the following parameter as part of the voucher-request as defined in <xref target="RFC8995"/>:</t>

<t><list style="symbols">
  <t>created-on: current date and time in yang:date-and-time format of RVR creation</t>
  <t>nonce: copied from the PVR</t>
  <t>serial-number: product-serial-number of pledge.
The registrar <bcp14>MUST</bcp14> verify that the IDevID certificate subject serialNumber of the pledge (X520SerialNumber) matches the serial-number value in the PVR.
In addition, it <bcp14>MUST</bcp14> be equal to the serial-number value contained in the agent-signed data of PVR.</t>
  <t>assertion: voucher assertion requested by the pledge (agent-proximity).
The registrar provides this information to assure successful verification of agent proximity based on the agent-signed-data.</t>
  <t>prior-signed-voucher-request: PVR as received from registrar-agent, see <xref target="pvrr"/></t>
</list></t>

<t>The RVR <bcp14>MUST</bcp14> be extended with the following parameter, when the assertion "agent-proximity" is requested, as defined in <xref target="I-D.ietf-anima-rfc8366bis"/>:</t>

<t><list style="symbols">
  <t>agent-sign-cert: LDevID(RegAgt) certificate or the LDevID(RegAgt) certificate including certificate chain.
In the context of this document it is a JSON array of base64encoded certificate information and handled in the same way as x5c header objects.
If only a single object is contained in the x5c it <bcp14>MUST</bcp14> be the base64-encoded LDevID(RegAgt) certificate.
If multiple certificates are included in the x5c, the first <bcp14>MUST</bcp14> be the base64-encoded LDevID(RegAgt) certificate.</t>
</list></t>

<t>The MASA uses this information for verification that the registrar-agent is in proximity to the registrar to state the corresponding assertion "agent-proximity".</t>

<t>The object is signed using the registrar LDevID credentials, which corresponds to the certificate referenced in the JOSE header.</t>

<figure title="Representation of RVR" anchor="rvr"><artwork align="left"><![CDATA[
# The RVR in General JWS Serialization syntax
{
  "payload": "BASE64URL(ietf-voucher-request-prm:voucher)",
  "signatures": [
    {
      "protected": "BASE64URL(UTF8(JWS Protected Header))",
      "signature": "base64encodedvalue=="
    }
  ]
}

# Example: Decoded payload "ietf-voucher-request-prm:voucher"
  representation in JSON syntax
"ietf-voucher-request-prm:voucher": {
   "created-on": "2022-01-04T02:37:39.235Z",
   "nonce": "eDs++/FuDHGUnRxN3E14CQ==",
   "serial-number": "callee4711",
   "assertion": "agent-proximity",
   "prior-signed-voucher-request": "base64encodedvalue==",
   "agent-sign-cert": [
     "base64encodedvalue==",
     "base64encodedvalue==",
     "..."
   ]
}

# Example: Decoded "JWS Protected Header" representation
  in JSON syntax
{
  "alg": "ES256",
  "x5c": [
    "base64encodedvalue==",
    "base64encodedvalue=="
  ],
  "typ": "voucher-jws+json"
}
]]></artwork></figure>

<t>The registrar <bcp14>SHALL</bcp14> send the RVR to the MASA endpoint by HTTP POST: "/.well-known/brski/requestvoucher"</t>

<t>The RVR Content-Type header field is defined in <xref target="I-D.ietf-anima-jws-voucher"/> as: <spanx style="verb">application/voucher-jws+json</spanx></t>

<t>The registrar <bcp14>SHOULD</bcp14> set the Accept header of the RVR indicating the desired media type for the voucher-response.
The media type is <spanx style="verb">application/voucher-jws+json</spanx> as defined in <xref target="I-D.ietf-anima-jws-voucher"/>.</t>

<t>Once the MASA receives the RVR it <bcp14>SHALL</bcp14> perform the verification as described in Section 5.5 in <xref target="RFC8995"/>.</t>

<t>In addition, the following processing <bcp14>SHALL</bcp14> be performed for PVR contained in RVR "prior-signed-voucher-request" field:</t>

<t><list style="symbols">
  <t>agent-provided-proximity-registrar-cert: The MASA <bcp14>MAY</bcp14> verify that this field contains the registrar LDevID certificate.
If so, it <bcp14>MUST</bcp14> correspond to the registrar LDevID credentials used to sign the RVR.
Note: Correspond here relates to the case that a single registrar LDevID certificate is used or that different registrar LDevID certificates are used, which are issued by the same CA.</t>
  <t>agent-signed-data: The MASA <bcp14>MAY</bcp14> verify this data to issue "agent-proximity" assertion.
If so, the agent-signed-data <bcp14>MUST</bcp14> contain the pledge product-serial-number, contained in the "serial-number" field of the PVR (from "prior-signed-voucher-request" field) and also in "serial-number" field of the RVR.
The LDevID(RegAgt) certificate to be used for signature verification is identified by the "kid" parameter of the JOSE header.
If the assertion "agent-proximity" is requested, the RVR <bcp14>MUST</bcp14> contain the corresponding LDevID(RegAgt) certificate data in the "agent-sign-cert" field of the RVR.
It <bcp14>MUST</bcp14> be verified by the MASA to the same domain CA as the registrar LDevID certificate.
If the "agent-sign-cert" field is not set, the MASA <bcp14>MAY</bcp14> state a lower level assertion value, e.g.: "logged" or "verified".
Note: Sub-CA certificate(s) <bcp14>MUST</bcp14> also be carried by "agent-sign-cert", in case the LDevID(RegAgt) certificate is issued by a sub-CA and not the domain CA known to the MASA.
As the "agent-sign-cert" field is defined as array (x5c), it can handle multiple certificates.</t>
</list></t>

<t>If validation fails, the MASA <bcp14>SHOULD</bcp14> respond with an HTTP 4xx client error status code to the registrar.
The HTTP error status codes are kept the same as defined in Section 5.6 of <xref target="RFC8995"/> and comprise the codes: 403, 404, 406, and 415.</t>

</section>
<section anchor="voucher-issuance-by-masa"><name>Voucher Issuance by MASA</name>

<t>The MASA creates a voucher with Media-Type of <spanx style="verb">application/voucher-jws+json</spanx> as defined in <xref target="I-D.ietf-anima-jws-voucher"/>.
If the MASA detects that the Accept header of the PVR does not match <spanx style="verb">application/voucher-jws+json</spanx> it <bcp14>SHOULD</bcp14> respond with the HTTP status code "406 Not Acceptable" as the pledge will not be able to parse the response.
The voucher is according to <xref target="I-D.ietf-anima-rfc8366bis"/> but uses the new assertion value specified <xref target="agt_prx"/>.</t>

<t><xref target="MASA-vr"/> shows an example of the contents of a voucher.</t>

<figure title="Representation of MASA issued voucher" anchor="MASA-vr"><artwork align="left"><![CDATA[
# The MASA issued voucher in General JWS Serialization syntax
{
  "payload": "BASE64URL(ietf-voucher:voucher)",
  "signatures": [
    {
      "protected": "BASE64URL(UTF8(JWS Protected Header))",
      "signature": "base64encodedvalue=="
    }
  ]
}

# Example: Decoded payload "ietf-voucher:voucher" representation
  in JSON syntax
"ietf-voucher:voucher": {
  "assertion": "agent-proximity",
  "serial-number": "callee4711",
  "nonce": "base64encodedvalue==",
  "created-on": "2022-01-04T00:00:02.000Z",
  "pinned-domain-cert": "base64encodedvalue=="
}

# Example: Decoded "JWS Protected Header" representation
  in JSON syntax
{
  "alg": "ES256",
  "x5c": [
    "base64encodedvalue==",
    "base64encodedvalue=="
  ],
  "typ": "voucher-jws+json"
}
]]></artwork></figure>

<t>The MASA returns the voucher-response (voucher) to the registrar.</t>

</section>
<section anchor="exchanges_uc2_2_vs"><name>MASA issued Voucher Processing by Registrar</name>

<t>After receiving the voucher the registrar <bcp14>SHOULD</bcp14> evaluate it for transparency and logging purposes as outlined in Section 5.6 of <xref target="RFC8995"/>.
The registrar <bcp14>MUST</bcp14> add an additional signature to the MASA provided voucher using its registrar credentials.</t>

<t>The signature is created by signing the original "JWS Payload" produced by MASA and the registrar added "JWS Protected Header" using the registrar LDevID credentials (see <xref target="RFC7515"/>, Section 5.2 point 8.
The x5c component of the "JWS Protected Header" <bcp14>MUST</bcp14> contain the registrar LDevID certificate as well as potential intermediate CA certificates up to the pinned domain certificate.
The pinned domain certificate is already contained in the voucher payload ("pinned-domain-cert").</t>

<t>This signature provides POP of the private key corresponding to the registrar LDevID certificate the pledge received in the trigger for the PVR (see <xref target="pavrt"/>).
The registrar <bcp14>MUST</bcp14> use the same registrar LDevID credentials used for authentication in the TLS handshake to authenticate towards the registrar-agent.
This ensures that the same registrar LDevID certificate can be used to verify the signature as transmitted in the voucher-request as also transferred in the PVR in the "agent-provided-proximity-registrar-cert".
<xref target="MASA-REG-vr"/> below provides an example of the voucher with two signatures.</t>

<figure title="Representation of MASA issued voucher with additional registrar signature" anchor="MASA-REG-vr"><artwork align="left"><![CDATA[
# The MASA issued voucher with additional registrar signature in
  General JWS Serialization syntax
{
  "payload": "BASE64URL(ietf-voucher:voucher)",
  "signatures": [
    {
      "protected": "BASE64URL(UTF8(JWS Protected Header (MASA)))",
      "signature": "base64encodedvalue=="
    },
    {
      "protected": "BASE64URL(UTF8(JWS Protected Header (Reg)))",
      "signature": "base64encodedvalue=="
    }
  ]
}

# Example: Decoded payload "ietf-voucher:voucher" representation in
  JSON syntax
"ietf-voucher:voucher": {
   "assertion": "agent-proximity",
   "serial-number": "callee4711",
   "nonce": "base64encodedvalue==",
   "created-on": "2022-01-04T00:00:02.000Z",
   "pinned-domain-cert": "base64encodedvalue=="
}

# Example: Decoded "JWS Protected Header (MASA)" representation
  in JSON syntax
{
  "alg": "ES256",
  "x5c": [
    "base64encodedvalue==",
    "base64encodedvalue=="
  ],
  "typ": "voucher-jws+json"
}

# Example: Decoded "JWS Protected Header (Reg)" representation
  in JSON syntax
{
  "alg": "ES256",
  "x5c": [
    "base64encodedvalue==",
    "base64encodedvalue=="
  ]
}
]]></artwork></figure>

<t>Depending on the security policy of the operator, this signature can also be interpreted by the pledge as explicit authorization of the registrar to install the contained trust anchor.
The registrar sends the voucher to the registrar-agent.</t>

</section>
<section anchor="exchanges_uc2_2_per"><name>Pledge-Enrollment-Request (PER) Processing (Registrar-Agent to Registrar)</name>

<t>After receiving the voucher, the registrar-agent sends the PER to the registrar in the same HTTP-over-TLS connection. Which is similar to the PER processing described in Section 5.2 of <xref target="RFC8995"/>.
In case the PER cannot be send in the same HTTP-over-TLS connection the registrar-agent may send the PER in a new HTTP-over-TLS connection. The registrar is able to correlate the PVR and the PER based on the signatures and the contained product-serial-number information.
Note, this also addresses situations in which a nonceless voucher is used and may be pre-provisioned to the pledge.
As specified in <xref target="PER-response"/> deviating from BRSKI the PER is not a raw PKCS#10.
As the registrar-agent is involved in the exchange, the PKCS#10 is wrapped in a JWS object by the pledge and signed with pledge's IDevID to ensure proof-of-identity as outlined in <xref target="per"/>.</t>

<t>EST <xref target="RFC7030"/> standard endpoints (/simpleenroll, /simplereenroll, /serverkeygen, /cacerts) on the registrar cannot be used for BRSKI-PRM.
This is caused by the utilization of signature wrapped-objects in BRSKI-PRM.
As EST requires to sent a raw PKCS#10 request to e.g., "/.well-known/est/simpleenroll" endpoint, this document makes an enhancement by utilizing EST but with the exception to transport a signature wrapped PKCS#10 request.
Therefore a new endpoint for BRSKI-PRM on the registrar is defined as "/.well-known/brski/requestenroll"</t>

<t>The Content-Type header of PER is: <spanx style="verb">application/jose+json</spanx>.</t>

<t>This is a deviation from the Content-Type header values used in <xref target="RFC7030"/> and results in additional processing at the domain registrar (as EST server).
Note, the registrar is already aware that the bootstrapping is performed in a pledge-responder-mode due to the use of the LDevID(RegAgt) certificate for TLS and the provided PVR as JSON-in-JWS object.</t>

<t><list style="symbols">
  <t>If the registrar receives a PER with Content-Type header: <spanx style="verb">application/jose+json</spanx>, it <bcp14>MUST</bcp14> verify the wrapping signature using the certificate indicated in the JOSE header.</t>
  <t>The registrar verifies that the pledge's certificate (here IDevID), carried in "x5c" header field, is accepted to join the domain after successful validation of the PVR.</t>
  <t>If both succeed, the registrar utilizes the PKCS#10 request contained in the JWS object body as "P10" parameter of "ietf-sztp-csr:csr" for further processing of the enrollment-request with the corresponding domain CA.
It creates a registrar enrollment-request (RER) by utilizing the protocol expected by the domain CA.
The domain registrar may either directly forward the provided PKCS#10 request to the CA or provide additional information about attributes to be included by the CA into the requested LDevID certificate.
The approach of sending this information to the CA depends on the utilized certificate management protocol between the RA and the CA and is out of scope for this document.</t>
</list></t>

<t>Note while BRSKI-PRM targets the initial enrollment, re-enrollment may be supported in a similar way with the exception that the current LDevID certificate is used instead of the IDevID certificate to verify the wrapping signature of the PKCS#10 request (see also <xref target="PER-response"/>).</t>

<t>The registrar-agent <bcp14>SHALL</bcp14> send the PER to the registrar by HTTP POST to the endpoint: "/.well-known/brski/requestenroll"</t>

<t>The registrar <bcp14>SHOULD</bcp14> respond with an HTTP 200 OK in the success case or fail with HTTP 4xx/5xx status codes as defined by the HTTP standard.</t>

<t>A successful interaction with the domain CA will result in a pledge LDevID certificate, which is then forwarded by the registrar to the registrar-agent using the Content-Type header: <spanx style="verb">application/pkcs7-mime</spanx>.</t>

</section>
<section anchor="exchanges_uc2_2_wca"><name>Request Wrapped-CA-certificate(s) (Registrar-Agent to Registrar)</name>

<t>As the pledge will verify it own certificate LDevID certificate when received, it also needs the corresponding CA certificates.
This is done in EST <xref target="RFC7030"/> using the "/.well-known/est/cacerts" endpoint, which provides the CA certificates over a TLS protected connection.
BRSKI-PRM requires a signature wrapped CA certificate object, to avoid that the pledge can be provided with arbitrary CA certificates in an authorized way.
The registrar signed CA certificate object will allow the pledge to verify the authorization to install the received CA certificate(s).
As the CA certificate(s) are provided to the pledge after the voucher, the pledge has the required information (the domain certificate) to verify the wrapped CA certificate object.</t>

<t>To support registrar-agents requesting a signature wrapped CA certificate(s) object, a new endpoint for BRSKI-PRM is defined on the registrar: "/.well-known/brski/wrappedcacerts"</t>

<t>The registrar-agent <bcp14>SHALL</bcp14> requests the EST CA trust anchor database information (in form of CA certificates) by HTTP GET.</t>

<t>The Content-Type header of the response <bcp14>SHALL</bcp14> be: <spanx style="verb">application/jose+json</spanx>.</t>

<t>This is a deviation from the Content-Type header values used in EST <xref target="RFC7030"/> and results in additional processing at the domain registrar (as EST server).
The additional processing is to sign the CA certificate(s) information using the registrar LDevID credentials.
This results in a signed CA certificate(s) object (JSON-in-JWS), the CA certificates are provided as base64 encoded "x5b" in the JWS payload.</t>

<figure title="Representation of CA certificate(s) data with registrar signature" anchor="PCAC"><artwork align="left"><![CDATA[
# The CA certificates data with registrar signature in General JWS Serialization syntax
{
  "payload": "BASE64URL(certs)",
  "signatures": [
    {
      "protected": "BASE64URL(UTF8(JWS Protected Header))",
      "signature": "base64encodedvalue=="
    }
  ]
}

# Example: Decoded payload "certs" representation in JSON syntax
{
  "x5b": [
    "base64encodedvalue==",
    "base64encodedvalue=="
  ]
}


# Example: Decoded "JWS Protected Header" representation
  in JSON syntax
{
  "alg": "ES256",
  "x5c": [
    "base64encodedvalue==",
    "base64encodedvalue=="
  ]
}
]]></artwork></figure>

</section>
</section>
<section anchor="exchanges_uc2_3"><name>Response Objects supplied by the Registrar-Agent to the Pledge</name>

<t>It is assumed that the registrar-agent already obtained the bootstrapping response objects from the domain registrar and can supply them to the pledge:</t>

<t><list style="symbols">
  <t>voucher-response - Voucher (from MASA via Registrar)</t>
  <t>wrapped-CA-certificate(s)-response - CA certificates</t>
  <t>enrollment-response - LDevID (Pledge) certificate (from CA via registrar)</t>
</list></t>

<t>To deliver these response objects, the registrar-agent will re-connect to the pledge.
To contact the pledge, it may either discover the pledge as described in <xref target="discovery_uc2_ppa"/> or use stored information from the first contact with the pledge.</t>

<t>Preconditions in addition to <xref target="exchanges_uc2_2"/>:</t>

<t><list style="symbols">
  <t>Registrar-agent: obtained voucher and LDevID certificate and optionally IDevID CA certificates.
The IDevID CA certificate is necessary, when the connection between the Registrar-agent and the pledge is established using TLS to enable the registrar-agent to validate the pledges' IDevID certificate during the TLS handshake as described in <xref target="exchanges_uc2_1"/>.</t>
</list></t>

<figure title="Responses and status handling between pledge and registrar-agent" anchor="exchangesfig_uc2_3"><artset><artwork  type="svg" align="left"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="368" width="528" viewBox="0 0 528 368" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
<path d="M 8,32 L 8,96" fill="none" stroke="black"/>
<path d="M 40,104 L 40,336" fill="none" stroke="black"/>
<path d="M 80,32 L 80,96" fill="none" stroke="black"/>
<path d="M 280,32 L 280,96" fill="none" stroke="black"/>
<path d="M 328,144 L 328,336" fill="none" stroke="black"/>
<path d="M 376,32 L 376,96" fill="none" stroke="black"/>
<path d="M 8,32 L 80,32" fill="none" stroke="black"/>
<path d="M 280,32 L 376,32" fill="none" stroke="black"/>
<path d="M 8,96 L 80,96" fill="none" stroke="black"/>
<path d="M 280,96 L 376,96" fill="none" stroke="black"/>
<path d="M 48,160 L 88,160" fill="none" stroke="black"/>
<path d="M 296,160 L 320,160" fill="none" stroke="black"/>
<path d="M 48,192 L 104,192" fill="none" stroke="black"/>
<path d="M 240,192 L 320,192" fill="none" stroke="black"/>
<path d="M 48,224 L 112,224" fill="none" stroke="black"/>
<path d="M 248,224 L 320,224" fill="none" stroke="black"/>
<path d="M 48,256 L 72,256" fill="none" stroke="black"/>
<path d="M 296,256 L 320,256" fill="none" stroke="black"/>
<path d="M 48,288 L 72,288" fill="none" stroke="black"/>
<path d="M 304,288 L 320,288" fill="none" stroke="black"/>
<path d="M 48,320 L 112,320" fill="none" stroke="black"/>
<path d="M 240,320 L 320,320" fill="none" stroke="black"/>
<polygon class="arrowhead" points="328,320 316,314.4 316,325.6" fill="black" transform="rotate(0,320,320)"/>
<polygon class="arrowhead" points="328,224 316,218.4 316,229.6" fill="black" transform="rotate(0,320,224)"/>
<polygon class="arrowhead" points="56,288 44,282.4 44,293.6" fill="black" transform="rotate(180,48,288)"/>
<polygon class="arrowhead" points="56,256 44,250.4 44,261.6" fill="black" transform="rotate(180,48,256)"/>
<polygon class="arrowhead" points="56,192 44,186.4 44,197.6" fill="black" transform="rotate(180,48,192)"/>
<polygon class="arrowhead" points="56,160 44,154.4 44,165.6" fill="black" transform="rotate(180,48,160)"/>
<g class="text">
<text x="44" y="52">Pledge</text>
<text x="332" y="52">Registrar-</text>
<text x="312" y="68">Agent</text>
<text x="324" y="84">(RegAgt)</text>
<text x="284" y="116">[voucher</text>
<text x="336" y="116">and</text>
<text x="400" y="116">enrollment]</text>
<text x="292" y="132">[responses</text>
<text x="380" y="132">available]</text>
<text x="132" y="164">optional</text>
<text x="184" y="164">TLS</text>
<text x="244" y="164">connection</text>
<text x="140" y="196">supply</text>
<text x="200" y="196">voucher</text>
<text x="152" y="228">voucher</text>
<text x="212" y="228">status</text>
<text x="344" y="228">-</text>
<text x="376" y="228">store</text>
<text x="380" y="244">pledge</text>
<text x="440" y="244">voucher</text>
<text x="500" y="244">status</text>
<text x="108" y="260">supply</text>
<text x="168" y="260">CAcerts</text>
<text x="244" y="260">(optional)</text>
<text x="108" y="292">supply</text>
<text x="216" y="292">enrollment-response</text>
<text x="148" y="324">enroll</text>
<text x="204" y="324">status</text>
<text x="344" y="324">-</text>
<text x="376" y="324">store</text>
<text x="380" y="340">pledge</text>
<text x="436" y="340">enroll</text>
<text x="492" y="340">status</text>
</g>
</svg>
</artwork><artwork  type="ascii-art" align="left"><![CDATA[
+--------+                        +-----------+
| Pledge |                        | Registrar-|
|        |                        | Agent     |
|        |                        | (RegAgt)  |
+--------+                        +-----------+
    |                          [voucher and enrollment]
    |                          [responses available]
    |                                   |
    |<----- optional TLS connection ----|
    |                                   |
    |<------- supply voucher -----------|
    |                                   |
    |--------- voucher status --------->| - store
    |                                   |   pledge voucher status
    |<--- supply CAcerts (optional) ----|
    |                                   |
    |<--- supply enrollment-response ---|
    |                                   |
    |--------- enroll status ---------->| - store
    |                                   |   pledge enroll status

]]></artwork></artset></figure>

<t>The registrar-agent <bcp14>MAY</bcp14> optionally use TLS to protect the communication as outlined in <xref target="exchanges_uc2_1"/>.</t>

<t>The registrar-agent provides the information via distinct pledge endpoints as following.</t>

<section anchor="exchanges_uc2_3a"><name>Pledge: Voucher-Response Processing</name>

<t>The registrar-agent <bcp14>SHALL</bcp14> send the voucher-response to the pledge by HTTP POST to the endpoint: "/.well-known/brski/svr".</t>

<t>The registrar-agent voucher-response Content-Type header is <spanx style="verb">application/voucher-jws+json</spanx> and contains the voucher as provided by the MASA. An example is given in <xref target="MASA-vr"/> for a MASA  signed voucher and in <xref target="MASA-REG-vr"/> for the voucher with the additional signature of the registrar.</t>

<t>A nonceless voucher may be accepted as in <xref target="RFC8995"/> and may be allowed by a manufacture's pledge implementation.</t>

<t>To perform the validation of several signatures on the voucher object, the pledge <bcp14>SHALL</bcp14> perform the signature verification in the following order:</t>

<t><list style="numbers">
  <t>Verify MASA signature as described in Section 5.6.1 in <xref target="RFC8995"/>, against pre-installed manufacturer trust anchor (IDevID).</t>
  <t>Install trust anchor contained in the voucher ("pinned-domain-cert")  provisionally</t>
  <t>Validate the LDevID(Reg) certificate received in the agent-provided-proximity-registrar-cert in the pledge-voucher-request trigger request (in the field "agent-provided-proximity-registrar-cert")</t>
  <t>Verify registrar signature of the voucher similar as described in Section 5.6.1 in <xref target="RFC8995"/>, but take the registrar certificate instead of the MASA certificate for the verification</t>
</list></t>

<t>Step3 and step 4 have been introduced in BRSKI-PRM to enable verification of LDevID(Reg) certificate and also the proof-of-possession of the corresponding private key by the registrar, which is done in BRSKI based on the established TLS channel.
If all steps stated above have been performed successfully, the pledge <bcp14>SHALL</bcp14> terminate the "PROVISIONAL accept" state for the domain trust anchor and the registrar LDevID certificate.</t>

<t>If an error occurs during the verification and validation of the voucher, this <bcp14>SHALL</bcp14> be reported in the reason field of the pledge voucher status.</t>

</section>
<section anchor="exchanges_uc2_3b"><name>Pledge: Voucher Status Telemetry</name>

<t>After voucher verification and validation the pledge <bcp14>MUST</bcp14> reply with a status telemetry message as defined in Section 5.7 of <xref target="RFC8995"/>.
The pledge generates the voucher-status and provides it as signed JSON-in-JWS object in response to the registrar-agent.</t>

<t>The response has the Content-Type <spanx style="verb">application/jose+json</spanx> and is signed using the IDevID of the pledge as shown in <xref target="vstat"/>.
As the reason field is optional (see <xref target="RFC8995"/>), it <bcp14>MAY</bcp14> be omitted in case of success.</t>

<figure title="Representation of pledge voucher status telemetry" anchor="vstat"><artwork align="left"><![CDATA[
# The "pledge-voucher-status" telemetry in general JWS
  serialization syntax
{
  "payload": "BASE64URL(pledge-voucher-status)",
  "signatures": [
    {
      "protected": "BASE64URL(UTF8(JWS Protected Header))",
      "signature": "base64encodedvalue=="
    }
  ]
}

# Example: Decoded payload "pledge-voucher-status" representation
  in JSON syntax for success case
{
  "version": 1,
  "status": true,
  "reason": "Voucher successfully processed",
  "reason-context": {
    "pvs-details": "JSON"
  }
}

# Example: Decoded payload "pledge-voucher-status" representation
  in JSON syntax for error case
{
  "version": 1,
  "status": false,
  "reason": "Failed to authenticate MASA certificate because
  it starts in the future (1/1/2023).",
  "reason-context": {
    "pvs-details": "Current date: 1/1/1970"
  }
}

# Example: Decoded "JWS Protected Header" representation
  in JSON syntax
{
  "alg": "ES256",
  "x5c": [
    "base64encodedvalue==",
    "base64encodedvalue=="
  ]
}
]]></artwork></figure>

<t>If the pledge did not did not provide voucher status telemetry information after processing the voucher, the registrar agent <bcp14>MAY</bcp14> query the pledge status explicitly as described in <xref target="exchanges_uc2_5"/> and <bcp14>MAY</bcp14> re-sent the voucher depending on the Pledge status following the procedure described in <xref target="exchanges_uc2_3a"/>.</t>

</section>
<section anchor="exchanges_uc2_3c"><name>Pledge: Wrapped-CA-Certificate(s) Processing</name>

<t>The registrar-agent <bcp14>SHALL</bcp14> provide the set of CA certificates requested from the registrar to the pledge by HTTP POST to the endpoint: "/.well-known/brski/scac".</t>

<t>As the CA certificate provisioning is crucial from a security perspective, this provisioning <bcp14>SHOULD</bcp14> only be done, if the voucher-response has been successfully processed by pledge as reflected in the voucher status telemetry.</t>

<t>The CA certificates message has the Content-Type <spanx style="verb">application/jose+json</spanx> and is signed using the credential of the registrar as shown in <xref target="PCAC"/>.</t>

<t>The CA certificates are provided as base64 encoded "x5b".
The pledge <bcp14>SHALL</bcp14> install the received CA certificates as trust anchor after successful verification of the registrar's signature.</t>

<t>The following 4xx client error codes <bcp14>SHOULD</bcp14> be used by the pledge:</t>

<t><list style="symbols">
  <t>403 Forbidden: if the validation of the wrapping signature or another security check fails.</t>
  <t>415 Unsupported Media Type: if the Content-Type of the request is in an unknown or unsupported format.</t>
  <t>400 Bad Request: if the pledge detects errors in the encoding of the payload.</t>
</list></t>

</section>
<section anchor="pledge-enrollment-response-processing"><name>Pledge: Enrollment-Response Processing</name>

<t>The registrar-agent <bcp14>SHALL</bcp14> send the enroll-response to the pledge by HTTP POST to the endpoint: "/.well-known/brski/ser".</t>

<t>The registrar-agent enroll-response Content-Type header, when using EST <xref target="RFC7030"/> as enrollment protocol between the registrar-agent and the infrastructure is: <spanx style="verb">application/pkcs7-mime</spanx>.
Note: It only contains the LDevID certificate for the pledge, not the certificate chain.</t>

<t>Upon reception, the pledge <bcp14>SHALL</bcp14> verify the received LDevID certificate.
The pledge <bcp14>SHALL</bcp14> generate the enroll status and provide it in the response to the registrar-agent.
If the verification of the LDevID certificate succeeds, the status property <bcp14>SHALL</bcp14> be set to "status": true, otherwise to "status": false</t>

</section>
<section anchor="pledge-enrollment-status-telemetry"><name>Pledge: Enrollment-Status Telemetry</name>

<t>The pledge <bcp14>MUST</bcp14> reply with a status telemetry message as defined in Section 5.9.4 of <xref target="RFC8995"/>.
As for the other objects, the enroll-status is signed and results in a JSON-in-JWS object.
If the pledge verified the received LDevID certificate successfully it <bcp14>SHALL</bcp14> sign the response using its new LDevID credentials as shown in <xref target="estat"/>.
In the failure case, the pledge <bcp14>SHALL</bcp14> use the available IDevID credentials.
As the reason field is optional, it <bcp14>MAY</bcp14> be omitted in case of success.</t>

<t>The response has the Content-Type <spanx style="verb">application/jose+json</spanx>.</t>

<figure title="Representation of pledge enroll status telemetry" anchor="estat"><artwork align="left"><![CDATA[
# The "pledge-enroll-status" telemetry in General JWS Serialization
  syntax
{
  "payload": "BASE64URL(pledge-enroll-status)",
  "signatures": [
    {
      "protected": "BASE64URL(UTF8(JWS Protected Header))",
      "signature": "base64encodedvalue=="
    }
  ]
}

# Example: Decoded payload "pledge-enroll-status" representation
  in JSON syntax for success case
{
  "version": 1,
  "status": true,
  "reason": "Enrollment response successfully processed",
  "reason-context": {
    "pes-details": "JSON"
  }
}

# Example: Decoded payload "pledge-voucher-status" representation
  in JSON syntax for error case
{
  "version": 1,
  "status": false,
  "reason": "Enrollment response could not be verified.",
  "reason-context": {
    "pes-details": "no matching trust anchor"
  }
}

# Example: Decoded "JWS Protected Header" representation
  in JSON syntax
{
  "alg": "ES256",
  "x5c": [
    "base64encodedvalue==",
    "base64encodedvalue=="
  ]
}
]]></artwork></figure>

<t>Once the registrar-agent has collected the information, it can connect to the registrar to provide it with the status responses.</t>

</section>
<section anchor="exchanges_uc2_4"><name>Telemetry Voucher Status and Enroll Status Handling (Registrar-Agent to Domain Registrar)</name>

<t>The following description requires that the registrar-agent has collected the status information from the pledge.
It <bcp14>SHALL</bcp14> provide the status information to the registrar for further processing.</t>

<t>Preconditions in addition to <xref target="exchanges_uc2_2"/>:</t>

<t><list style="symbols">
  <t>Registrar-agent: obtained voucher status and enroll status from pledge.</t>
</list></t>

<figure title="Bootstrapping status handling" anchor="exchangesfig_uc2_4"><artset><artwork  type="svg" align="left"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="320" width="496" viewBox="0 0 496 320" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
<path d="M 8,32 L 8,96" fill="none" stroke="black"/>
<path d="M 40,160 L 40,304" fill="none" stroke="black"/>
<path d="M 104,32 L 104,96" fill="none" stroke="black"/>
<path d="M 176,32 L 176,96" fill="none" stroke="black"/>
<path d="M 224,104 L 224,240" fill="none" stroke="black"/>
<path d="M 224,272 L 224,304" fill="none" stroke="black"/>
<path d="M 272,32 L 272,96" fill="none" stroke="black"/>
<path d="M 304,32 L 304,96" fill="none" stroke="black"/>
<path d="M 344,104 L 344,208" fill="none" stroke="black"/>
<path d="M 344,272 L 344,304" fill="none" stroke="black"/>
<path d="M 376,32 L 376,96" fill="none" stroke="black"/>
<path d="M 408,32 L 408,96" fill="none" stroke="black"/>
<path d="M 448,104 L 448,240" fill="none" stroke="black"/>
<path d="M 448,272 L 448,304" fill="none" stroke="black"/>
<path d="M 488,32 L 488,96" fill="none" stroke="black"/>
<path d="M 8,32 L 104,32" fill="none" stroke="black"/>
<path d="M 176,32 L 272,32" fill="none" stroke="black"/>
<path d="M 304,32 L 376,32" fill="none" stroke="black"/>
<path d="M 408,32 L 488,32" fill="none" stroke="black"/>
<path d="M 8,96 L 104,96" fill="none" stroke="black"/>
<path d="M 176,96 L 272,96" fill="none" stroke="black"/>
<path d="M 304,96 L 376,96" fill="none" stroke="black"/>
<path d="M 408,96 L 488,96" fill="none" stroke="black"/>
<path d="M 48,176 L 104,176" fill="none" stroke="black"/>
<path d="M 160,176 L 216,176" fill="none" stroke="black"/>
<path d="M 48,208 L 64,208" fill="none" stroke="black"/>
<path d="M 200,208 L 216,208" fill="none" stroke="black"/>
<path d="M 232,224 L 248,224" fill="none" stroke="black"/>
<path d="M 424,224 L 440,224" fill="none" stroke="black"/>
<path d="M 232,240 L 264,240" fill="none" stroke="black"/>
<path d="M 416,240 L 440,240" fill="none" stroke="black"/>
<path d="M 48,288 L 64,288" fill="none" stroke="black"/>
<path d="M 192,288 L 216,288" fill="none" stroke="black"/>
<polygon class="arrowhead" points="448,224 436,218.4 436,229.6" fill="black" transform="rotate(0,440,224)"/>
<polygon class="arrowhead" points="240,240 228,234.4 228,245.6" fill="black" transform="rotate(180,232,240)"/>
<polygon class="arrowhead" points="224,288 212,282.4 212,293.6" fill="black" transform="rotate(0,216,288)"/>
<polygon class="arrowhead" points="224,208 212,202.4 212,213.6" fill="black" transform="rotate(0,216,208)"/>
<polygon class="arrowhead" points="224,176 212,170.4 212,181.6" fill="black" transform="rotate(0,216,176)"/>
<polygon class="arrowhead" points="56,176 44,170.4 44,181.6" fill="black" transform="rotate(180,48,176)"/>
<g class="text">
<text x="56" y="52">Registrar</text>
<text x="212" y="52">Domain</text>
<text x="340" y="52">Domain</text>
<text x="444" y="52">Vendor</text>
<text x="40" y="68">Agent</text>
<text x="224" y="68">Registrar</text>
<text x="324" y="68">CA</text>
<text x="448" y="68">Service</text>
<text x="48" y="84">RegAgt)</text>
<text x="216" y="84">(JRC)</text>
<text x="444" y="84">(MASA)</text>
<text x="40" y="116">|</text>
<text x="404" y="116">Internet</text>
<text x="36" y="132">[voucher</text>
<text x="80" y="132">+</text>
<text x="116" y="132">enroll</text>
<text x="152" y="132">]</text>
<text x="32" y="148">[status</text>
<text x="84" y="148">info</text>
<text x="148" y="148">available]</text>
<text x="132" y="180">mTLS</text>
<text x="104" y="212">Voucher</text>
<text x="164" y="212">Status</text>
<text x="300" y="228">req-device</text>
<text x="368" y="228">audit</text>
<text x="408" y="228">log</text>
<text x="300" y="244">device</text>
<text x="352" y="244">audit</text>
<text x="392" y="244">log</text>
<text x="184" y="260">[verify</text>
<text x="240" y="260">audit</text>
<text x="280" y="260">log</text>
<text x="304" y="260">]</text>
<text x="100" y="292">Enroll</text>
<text x="156" y="292">Status</text>
</g>
</svg>
</artwork><artwork  type="ascii-art" align="left"><![CDATA[
+-----------+        +-----------+   +--------+   +---------+
| Registrar |        | Domain    |   | Domain |   | Vendor  |
| Agent     |        | Registrar |   | CA     |   | Service |
| RegAgt)   |        |  (JRC)    |   |        |   | (MASA)  |
+-----------+        +-----------+   +--------+   +---------+
    |                      |              |   Internet |
[voucher + enroll ]        |              |            |
[status info available]    |              |            |
    |                      |              |            |
    |<------- mTLS ------->|              |            |
    |                      |              |            |
    |--- Voucher Status -->|              |            |
    |                      |--- req-device audit log-->|
    |                      |<---- device audit log ----|
    |              [verify audit log ]
    |                      |              |            |
    |--- Enroll Status --->|              |            |
    |                      |              |            |
]]></artwork></artset></figure>

<t>The registrar-agent <bcp14>MUST</bcp14> provide the collected pledge voucher status to the registrar.
This status indicates if the pledge could process the voucher successfully or not.</t>

<t>In case the TLS connection to the registrar is already closed, the registrar-agent opens a new TLS connection with the registrar as stated in <xref target="exchanges_uc2_2"/>.</t>

<t>The registrar-agent sends the pledge voucher status without modification to the registrar with an HTTP-over-TLS POST using the registrar endpoint "/.well-known/brski/voucher_status". The Content-Type header is kept as <spanx style="verb">application/jose+json</spanx> as described in <xref target="exchangesfig_uc2_3"/> and depicted in the example in <xref target="vstat"/>.</t>

<t>The registrar <bcp14>SHALL</bcp14> verify the signature of the pledge voucher status and validate that it belongs to an accepted device of the domain based on the contained "serial-number" in the IDevID certificate referenced in the header of the voucher status.</t>

<t>According to <xref target="RFC8995"/> Section 5.7, the registrar <bcp14>SHOULD</bcp14> respond with an HTTP 200 OK in the success case or fail with HTTP 4xx/5xx status codes as defined by the HTTP standard.
The registrar-agent may use the response to signal success / failure to the service technician operating the registrar agent.
Within the server logs the server <bcp14>SHOULD</bcp14> capture this telemetry information.</t>

<t>The registrar <bcp14>SHOULD</bcp14> proceed with collecting and logging status information by requesting the MASA audit-log from the MASA service as described in Section 5.8 of <xref target="RFC8995"/>.</t>

<t>The registrar-agent <bcp14>MUST</bcp14> provide the pledge's enroll status to the registrar.
The status indicates the pledge could process the enroll-response (certificate) and holds the corresponding private key.</t>

<t>The registrar-agent sends the pledge enroll status without modification to the registrar with an HTTP-over-TLS POST using the registrar endpoint "/.well-known/brski/enrollstatus".
The Content-Type header is kept as <spanx style="verb">application/jose+json</spanx> as described in <xref target="exchangesfig_uc2_3"/> and depicted in the example in <xref target="estat"/>.</t>

<t>The registrar <bcp14>MUST</bcp14> verify the signature of the pledge enroll status.
Also, the registrar <bcp14>SHALL</bcp14> validate that the pledge is an accepted device of the domain based on the contained product-serial-number in the LDevID certificate referenced in the header of the enroll status.
The registrar <bcp14>SHOULD</bcp14> log this event.
In case the pledge enroll status indicates a failure, the pledge was unable to verify the received LDevID certificate and therefore signed the enroll status with its IDevID credential.
Note that the signature verification of the status information is an addition to the described handling in Section 5.9.4 of <xref target="RFC8995"/>, and is replacing the pledges TLS client authentication by DevID credentials in <xref target="RFC8995"></xref>.</t>

<t>According to <xref target="RFC8995"/> Section 5.9.4, the registrar <bcp14>SHOULD</bcp14> respond with an HTTP 200 OK in the success case or fail with HTTP 4xx/5xx status codes as defined by the HTTP standard.
Based on the failure case the registrar <bcp14>MAY</bcp14> decide that for security reasons the pledge is not allowed to reside in the domain. In this case the registrar <bcp14>MUST</bcp14> revoke the certificate.
An example case for the registrar revoking the issued LDevID for the pledge is when the pledge was not able to verify the received LDevID certificate and therefore did send a 406 (Not Acceptable) response. 
In this case the registrar may revoke the LDevID certificate as the pledge did no accepted it for installation.</t>

<t>The registrar-agent may use the response to signal success / failure to the service technician operating the registrar agent.
Within the server log the registrar <bcp14>SHOULD</bcp14> capture this telemetry information.</t>

</section>
</section>
<section anchor="exchanges_uc2_5"><name>Request Pledge-Status by Registrar-Agent from Pledge</name>

<t>The following assumes that a registrar-agent may need to query the status of a pledge.
This information may be useful to solve errors, when the pledge was not able to connect to the target domain during the bootstrapping.
The pledge <bcp14>MAY</bcp14> provide a dedicated endpoint to accept status-requests.</t>

<t>Preconditions:</t>

<t><list style="symbols">
  <t>Registrar-agent: possesses LDevID (RegAgt), may have a list of serial numbers of pledges to be queried and a list of corresponding manufacturer trust anchors to be able to verify signatures performed with the IDevID credential.</t>
  <t>Pledge: may already possess domain credentials and LDevID(Pledge), or may not possess one or both of these.</t>
</list></t>

<figure title="Pledge-status handling between registrar-agent and pledge" anchor="exchangesfig_uc2_5"><artset><artwork  type="svg" align="left"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="192" width="360" viewBox="0 0 360 192" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
<path d="M 8,32 L 8,96" fill="none" stroke="black"/>
<path d="M 40,104 L 40,176" fill="none" stroke="black"/>
<path d="M 80,32 L 80,96" fill="none" stroke="black"/>
<path d="M 256,32 L 256,96" fill="none" stroke="black"/>
<path d="M 304,104 L 304,176" fill="none" stroke="black"/>
<path d="M 352,32 L 352,96" fill="none" stroke="black"/>
<path d="M 8,32 L 80,32" fill="none" stroke="black"/>
<path d="M 256,32 L 352,32" fill="none" stroke="black"/>
<path d="M 8,96 L 80,96" fill="none" stroke="black"/>
<path d="M 256,96 L 352,96" fill="none" stroke="black"/>
<path d="M 48,128 L 72,128" fill="none" stroke="black"/>
<path d="M 264,128 L 296,128" fill="none" stroke="black"/>
<path d="M 48,160 L 72,160" fill="none" stroke="black"/>
<path d="M 272,160 L 296,160" fill="none" stroke="black"/>
<polygon class="arrowhead" points="304,160 292,154.4 292,165.6" fill="black" transform="rotate(0,296,160)"/>
<polygon class="arrowhead" points="56,128 44,122.4 44,133.6" fill="black" transform="rotate(180,48,128)"/>
<g class="text">
<text x="44" y="52">Pledge</text>
<text x="308" y="52">Registrar-</text>
<text x="288" y="68">Agent</text>
<text x="300" y="84">(RegAgt)</text>
<text x="136" y="132">pledge-status</text>
<text x="224" y="132">request</text>
<text x="136" y="164">pledge-status</text>
<text x="228" y="164">response</text>
</g>
</svg>
</artwork><artwork  type="ascii-art" align="left"><![CDATA[
+--------+                     +-----------+
| Pledge |                     | Registrar-|
|        |                     | Agent     |
|        |                     | (RegAgt)  |
+--------+                     +-----------+
    |                                |
    |<--- pledge-status request -----|
    |                                |
    |---- pledge-status response --->|
    |                                |
]]></artwork></artset></figure>

<section anchor="exchanges_uc2_5a"><name>Pledge-Status - Request (Registrar-Agent to Pledge)</name>

<t>The registrar-agent requests the pledge-status via HTTP POST on the defined pledge endpoint: "/.well-known/brski/qps"</t>

<t>The registrar-agent Content-Type header for the pledge-status request is: <spanx style="verb">application/jose+json</spanx>.
It contains information on the requested status-type, the time and date the request is created, and the product serial-number of the pledge contacted as shown in <xref target="stat_req_def"/>.
The pledge-status request is signed by registrar-agent using the LDevID(RegAgt) credential.</t>

<t>The following Concise Data Definition Language (CDDL) <xref target="RFC8610"/> explains the structure of the format for the pledge-status request. It is defined following the status telemetry definitions in BRSKI <xref target="RFC8995"/>.
Consequently, format and semantics of pledge-status requests below are for version 1.
The version field is included to permit significant changes to the pledge-status request and response in the future.
A pledge or a registrar-agent that receives a pledge-status request with a version larger than it knows about <bcp14>SHOULD</bcp14> log the contents and alert a human.</t>

<figure title="CDDL for pledge-status request" anchor="stat_req_def"><artwork align="left"><![CDATA[
<CODE BEGINS>
  status-request = {
      "version": uint,
      "created-on": tdate ttime,
      "serial-number": text,
      "status-type": text
  }
<CODE ENDS>
]]></artwork></figure>

<t>The status-type defined for BRSKI-PRM is "bootstrap".
This indicates the pledge to provide current status information regarding the bootstrapping status (voucher processing and enrollment of the pledge into the new domain).
As the pledge-status request is defined generic, it may be used by other specifications to request further status information, e.g., for onboarding to get further information about enrollment of application specific LDevIDs or other parameters.
This is out of scope for this specification.</t>

<t><xref target="stat_req"/> below shows an example for querying pledge-status using status-type bootstrap.</t>

<figure title="Example of registrar-agent request of pledge-status using status-type bootstrap" anchor="stat_req"><artwork align="left"><![CDATA[
# The registrar-agent request of "pledge-status" in general JWS
  serialization syntax
{
  "payload": "BASE64URL(status-request)",
  "signatures": [
    {
      "protected": "BASE64URL(UTF8(JWS Protected Header))",
      "signature": "base64encodedvalue=="
    }
  ]
}

# Example: Decoded payload "status-request" representation
  in JSON syntax
{
  "version": 1,
  "created-on": "2022-08-12T02:37:39.235Z",
  "serial-number": "pledge-callee4711",
  "status-type": "bootstrap"
}

# Example: Decoded "JWS Protected Header" representation
  in JSON syntax
{
  "alg": "ES256",
  "x5c": [
    "base64encodedvalue==",
    "base64encodedvalue=="
  ]
}
]]></artwork></figure>

</section>
<section anchor="exchanges_uc2_5b"><name>Pledge-Status - Response (Pledge - Registrar-Agent)</name>

<t>If the pledge receives the pledge-status request with status-type "bootstrap" it <bcp14>SHALL</bcp14> react with a status response message based on the telemetry information described in <xref target="exchanges_uc2_3"/>.</t>

<t>The pledge-status response Content-Type header is <spanx style="verb">application/jose+json</spanx>.</t>

<t>The following CDDL explains the structure of the format for the status response, which is:</t>

<figure title="CDDL for pledge-status response" anchor="stat_res_def"><artwork align="left"><![CDATA[
<CODE BEGINS>
  status-response = {
    "version": uint,
    "status":
      "factory-default" /
      "voucher-success" /
      "voucher-error" /
      "enroll-success" /
      "enroll-error" /
      "connect-success" /
      "connect-error",
    ?"reason" : text,
    ?"reason-context": { $$arbitrary-map }
  }
<CODE ENDS>
]]></artwork></figure>

<t>Different cases for pledge bootstrapping status may occur, which <bcp14>SHOULD</bcp14> be reflected using the status enumeration.
This document specifies the status values in the context of the bootstrapping process and credential application.
Other documents may enhance the above enumeration to reflect further status information.</t>

<t>The pledge-status response message is signed with IDevID or LDevID, depending on bootstrapping state of the pledge.</t>

<t><list style="symbols">
  <t>"factory-default": Pledge has not been bootstrapped.
Additional information may be provided in the reason or reason-context. 
The pledge signs the response message using its IDevID(Pledge).</t>
  <t>"voucher-success": Pledge processed the voucher exchange successfully.
Additional information may be provided in the reason or reason-context.
The pledge signs the response message using its IDevID(Pledge).</t>
  <t>"voucher-error": Pledge voucher processing terminated with error.
Additional information may be provided in the reason or reason-context.
The pledge signs the response message using its IDevID(Pledge).</t>
  <t>"enroll-success": Pledge has processed the enrollment exchange successfully.
Additional information may be provided in the reason or reason-context.
The pledge signs the response message using its LDevID(Pledge).</t>
  <t>"enroll-error": Pledge enrollment-response processing terminated with error.
Additional information may be provided in the reason or reason-context.
The pledge signs the response message using its IDevID(Pledge).</t>
</list></t>

<t>The reason and the reason-context <bcp14>SHOULD</bcp14> contain the telemetry information as described in <xref target="exchanges_uc2_3"/>.</t>

<t>As the pledge is assumed to utilize its bootstrapped credentials (LDevID) in communication with other peers, additional status information is provided for the connectivity to other peers, which may be helpful in analyzing potential error cases.</t>

<t><list style="symbols">
  <t>"connect-success": Pledge could successfully establish a connection to another peer.
Additional information may be provided in the reason or reason-context.
The pledge signs the response message using its LDevID(Pledge).</t>
  <t>"connect-error": Pledge connection establishment terminated with error.
Additional information may be provided in the reason or reason-context.
The pledge signs the response message using its LDevID(Pledge).</t>
</list></t>

<t>The pledge-status responses are cumulative in the sense that connect-success implies enroll-success, which in turn implies voucher-success.</t>

<t><xref target="stat_res"/> provides an example for the bootstrapping-status information.</t>

<figure title="Example of pledge-status response" anchor="stat_res"><artwork align="left"><![CDATA[
# The pledge "status-response" in General JWS Serialization syntax
{
  "payload": "BASE64URL(status-response)",
  "signatures": [
    {
      "protected": "BASE64URL(UTF8(JWS Protected Header))",
      "signature": "base64encodedvalue=="
    }
  ]
}

# Example: Decoded payload "status-response" representation
  in JSON syntax
{
  "version": 1,
  "status": "enroll-success",
  "reason-context": {
    "additional" : "JSON"
  }
}

# Example: Decoded "JWS Protected Header" representation
  in JSON syntax
{
  "alg": "ES256",
  "x5c": [
    "base64encodedvalue==",
    "base64encodedvalue=="
  ],
  "typ": "jose+json
}
]]></artwork></figure>

<t><list style="symbols">
  <t>In case "factory-default" the pledge does not possess the domain certificate resp. the domain trust-anchor.
It will not be able to verify the signature of the registrar-agent in the bootstrapping-status request.</t>
  <t>In cases "vouchered" and "enrolled" the pledge already possesses the domain certificate (has domain trust-anchor) and can therefore validate the signature of the registrar-agent.
If validation of the JWS signature fails, the pledge <bcp14>SHOULD</bcp14> respond with the HTTP 403 Forbidden status code.</t>
  <t>The HTTP 406 Not Acceptable status code <bcp14>SHOULD</bcp14> be used, if the Accept header in the request indicates an unknown or unsupported format.</t>
  <t>The HTTP 415 Unsupported Media Type status code <bcp14>SHOULD</bcp14> be used, if the Content-Type of the request is an unknown or unsupported format.</t>
  <t>The HTTP 400 Bad Request status code <bcp14>SHOULD</bcp14> be used, if the Accept/Content-Type headers are correct but nevertheless the status-request cannot be correctly parsed.</t>
</list></t>

<t>The pledge <bcp14>SHOULD</bcp14> by default only respond to requests from nodes it can authenticate (such as registrar
agent), once the pledge is enrolled with CA certificates and a matching domain certificate.</t>

</section>
</section>
</section>
<section anchor="artifacts"><name>Artifacts</name>

<section anchor="voucher-request-prm-yang"><name>Voucher-Request Artifact</name>

<t><xref target="I-D.ietf-anima-rfc8366bis"/> extends the voucher-request as defined in <xref target="RFC8995"/> to include additional fields necessary for handling bootstrapping in the pledge-responder-mode.
These additional fields are defined in <xref target="exchanges_uc2_1"/> as:</t>

<t><list style="symbols">
  <t>agent-signed-data to provide a JSON encoded artifact from the involved registrar-agent, which allows the registrar to verify the agent's involvement</t>
  <t>agent-provided-proximity-registrar-cert to provide the registrar certificate visible to the registrar-agent, comparable to the registrar-proximity-certificate used in <xref target="RFC8995"/></t>
  <t>agent-signing certificate to optionally provide the registrar agent signing certificate.</t>
</list></t>

<t>Examples for the application of these fields in the context of a PVR are provided in <xref target="exchanges_uc2_2"/>.</t>

</section>
</section>
<section anchor="iana-considerations"><name>IANA Considerations</name>

<t>This document requires the following IANA actions.</t>

<section anchor="brski-well-known-registry"><name>BRSKI .well-known Registry</name>

<t>IANA is requested to enhance the Registry entitled: "BRSKI Well-Known URIs" with the following endpoints:</t>

<figure><artwork align="left"><![CDATA[
 URI                Description                       Reference
 tpvr               create pledge voucher-request     [THISRFC]
 tper               create pledge enrollment-request  [THISRFC]
 svr                supply voucher-response           [THISRFC]
 ser                supply enrollment-response        [THISRFC]
 scac               supply CA certificates to pledge  [THISRFC]
 qps                query pledge status               [THISRFC]
 requestenroll      supply PER to registrar           [THISRFC]
 wrappedcacerts     request wrapped CA certificates   [THISRFC]

]]></artwork></figure>

</section>
</section>
<section anchor="privacy-considerations"><name>Privacy Considerations</name>

<t>In general, the privacy considerations of <xref target="RFC8995"/> apply for BRSKI-PRM also.
Further privacy aspects need to be considered for:</t>

<t><list style="symbols">
  <t>the introduction of the additional component registrar-agent</t>
  <t>potentially no transport layer security between registrar-agent and pledge</t>
</list></t>

<t><xref target="exchanges_uc2_1"/> describes to optional apply TLS to protect the communication between the registrar-agent and the pledge.
The following is therefore applicable to the communication without the TLS protection.</t>

<t>The credential used by the registrar-agent to sign the data for the pledge <bcp14>SHOULD NOT</bcp14> contain any personal information.
Therefore, it is recommended to use an LDevID certificate associated with the commissioning device instead of an LDevID certificate associated with the service technician operating the device.
This avoids revealing potentially included personal information to Registrar and MASA.</t>

<t>The communication between the pledge and the registrar-agent is performed over plain HTTP.
Therefore, it is subject to disclosure by a Dolev-Yao attacker (an "oppressive observer")<xref target="onpath"/>.
Depending on the requests and responses, the following information is disclosed.</t>

<t><list style="symbols">
  <t>the Pledge product-serial-number is contained in the trigger message for the PVR and in all responses from the pledge.
This information reveals the identity of the devices being bootstrapped and allows deduction of which products an operator is using in their environment.
As the communication between the pledge and the registrar-agent may be realized over wireless link, this information could easily be eavesdropped, if the wireless network is unencrypted.
Even if the wireless network is encrypted, if it uses a network-wide key, then layer-2 attacks (ARP/ND spoofing) could insert an on-path observer into the path.</t>
  <t>the Timestamp data could reveal the activation time of the device.</t>
  <t>the Status data of the device could reveal information about the current state of the device in the domain network.</t>
</list></t>

</section>
<section anchor="sec_cons"><name>Security Considerations</name>

<t>In general, the security considerations of <xref target="RFC8995"/> apply for BRSKI-PRM also.
Further security aspects are considered here related to:</t>

<t><list style="symbols">
  <t>the introduction of the additional component registrar-agent</t>
  <t>the reversal of the pledge communication direction (push mode, compared to BRSKI)</t>
  <t>no transport layer security between registrar-agent and pledge</t>
</list></t>

<section anchor="denial-of-service-dos-attack-on-pledge"><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.</t>

<t>A DoS attack with a faked registrar-agent may block the bootstrapping of the pledge due changing state on the pledge (the pledge may produce a voucher-request, and refuse to produce another one).
One mitigation may be that the pledge does not limited the number of voucher-requests it creates until at least one has finished.
An alternative may be that the onboarding state may expire after a certain time, if no further interaction has happened.</t>

<t>In addition, the pledge may assume that repeated triggering for PVR are the result of a communication error with the registrar-agent.
In that case the pledge <bcp14>MAY</bcp14> simply resent the PVR previously sent. 
Note that in case of resending, a contained nonce and also the contained agent-signed-data in the PVR would consequently be reused.</t>

</section>
<section anchor="misuse-of-acquired-pvr-and-per-by-registrar-agent"><name>Misuse of acquired PVR and PER by Registrar-Agent</name>

<t>A registrar-agent that uses previously requested PVR and PER for domain-A, may attempt to onboard the device into domain-B.  This can be detected by the domain registrar while PVR processing.
The domain registrar needs to verify that the "proximity-registrar-cert" field in the PVR matches its own registrar LDevID certificate.
In addition, the domain registrar needs to verify the association of the pledge to its domain based on the product-serial-number contained in the PVR and in the IDevID certificate of the pledge. (This is just part of the supply chain integration).
Moreover, the domain registrar verifies if the registrar-agent is authorized to interact with the pledge for voucher-requests and enroll-requests, based on the LDevID(RegAgt) certificate data contained in the PVR.</t>

<t>Misbinding of a pledge by a faked domain registrar is countered as described in BRSKI security considerations <xref target="RFC8995"/> (Section 11.4).</t>

</section>
<section anchor="sec_cons_reg-agt"><name>Misuse of Registrar-Agent Credentials</name>

<t>Concerns of misusage of a registrar-agent with a valid LDevID(RegAgt), may be addressed by utilizing short-lived certificates (e.g., valid for a day) to authenticate the registrar-agent against the domain registrar.
The LDevID(RegAgt) certificate may be acquired by a prior BRSKI run for the registrar-agent, if an IDevID is available on registrar-agent.
Alternatively, the LDevID 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 LDevID(RegAgt) certificate is valid for the complete bootstrapping phase.
This avoids that a registrar-agent could be misused to create arbitrary "agent-signed-data" objects to perform an authorized bootstrapping of a rogue pledge at a later point in time.
In this misuse "agent-signed-data" could be dated after the validity time of the LDevID(RegAgt) certificate, due to missing trusted timestamp in the registrar-agents signature.
To address this, the registrar <bcp14>SHOULD</bcp14> verify the certificate used to create the signature on "agent-signed-data".
Furthermore the registrar also verifies the LDevID(RegAgt) certificate used in the TLS handshake with the registrar-agent. If both certificates are verified successfully, the registrar-agent's signature can be considered as valid.</t>

</section>
<section anchor="sec_cons_mDNS"><name>Misuse of mDNS to obtain list of pledges</name>

<t>To discover a specific pledge a registrar-agent may request the service name in combination with the product-serial-number of a specific pledge.
The pledge reacts on this if its product-serial-number is part of the request message.</t>

<t>If the registrar-agent performs DNS-based Service Discovery without a specific product-serial-number, all  pledges in the domain react if the functionality is supported.
This functionality enumerates and reveals the information of devices available in the domain.
The information about this is provided here as a feature to support the commissioning of devices.
A manufacturer may decide to support this feature only for devices not possessing a LDevID or to not support this feature at all, to avoid an enumeration in an operative domain.</t>

</section>
<section anchor="yang-module-security-considerations"><name>YANG Module Security Considerations</name>

<t>The enhanced voucher-request described in <xref target="I-D.ietf-anima-rfc8366bis"/> is based on <xref target="RFC8995"/>, but uses a different encoding based on <xref target="I-D.ietf-anima-jws-voucher"/>.
The security considerations as described in <xref target="RFC8995"/> Section 11.7 (Security Considerations) apply.</t>

<t>The YANG module specified in <xref target="I-D.ietf-anima-rfc8366bis"/> defines the schema for data that is subsequently encapsulated by a JOSE signed-data Content-type as described in <xref target="I-D.ietf-anima-jws-voucher"/>.
As such, all of the YANG-modeled data is protected against modification.</t>

<t>The use of YANG to define data structures via the <xref target="RFC8971"/> "structure" statement, is relatively
new and distinct from the traditional use of YANG to define an API accessed by network management protocols such as NETCONF <xref target="RFC6241"/> and RESTCONF <xref target="RFC8040"/>.
For this reason, these guidelines do not follow the template described by <xref target="RFC8407"/> Section 3.7 (Security Considerations Section).</t>

</section>
</section>
<section anchor="acknowledgments"><name>Acknowledgments</name>

<t>We would like to thank the various reviewers, in particular Brian E. Carpenter, Oskar Camenzind, Hendrik Brockhaus, and Ingo Wenda for their input and discussion on use cases and call flows.
Further review input was provided by Jesser Bouzid, Dominik Tacke, and Christian Spindler.
Special thanks to Esko Dijk for the in deep review and the improving proposals.
Support in PoC implementations and comments resulting from the implementation was provided by Hong Rui Li and He Peng Jia.</t>

</section>


  </middle>

  <back>


    <references title='Normative References'>



<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="RFC8040">
  <front>
    <title>RESTCONF Protocol</title>
    <author fullname="A. Bierman" initials="A." surname="Bierman"/>
    <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
    <author fullname="K. Watsen" initials="K." surname="Watsen"/>
    <date month="January" year="2017"/>
    <abstract>
      <t>This document describes an HTTP-based protocol that provides a programmatic interface for accessing data defined in YANG, using the datastore concepts defined in the Network Configuration Protocol (NETCONF).</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8040"/>
  <seriesInfo name="DOI" value="10.17487/RFC8040"/>
</reference>

<reference anchor="RFC8366">
  <front>
    <title>A Voucher Artifact for Bootstrapping Protocols</title>
    <author fullname="K. Watsen" initials="K." surname="Watsen"/>
    <author fullname="M. Richardson" initials="M." surname="Richardson"/>
    <author fullname="M. Pritikin" initials="M." surname="Pritikin"/>
    <author fullname="T. Eckert" initials="T." surname="Eckert"/>
    <date month="May" year="2018"/>
    <abstract>
      <t>This document defines a strategy to securely assign a pledge to an owner using an artifact signed, directly or indirectly, by the pledge's manufacturer. This artifact is known as a "voucher".</t>
      <t>This document defines an artifact format as a YANG-defined JSON document that has been signed using a Cryptographic Message Syntax (CMS) structure. Other YANG-derived formats are possible. The voucher artifact is normally generated by the pledge's manufacturer (i.e., the Manufacturer Authorized Signing Authority (MASA)).</t>
      <t>This document only defines the voucher artifact, leaving it to other documents to describe specialized protocols for accessing it.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8366"/>
  <seriesInfo name="DOI" value="10.17487/RFC8366"/>
</reference>

<reference anchor="RFC8610">
  <front>
    <title>Concise Data Definition Language (CDDL): A Notational Convention to Express Concise Binary Object Representation (CBOR) and JSON Data Structures</title>
    <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
    <author fullname="C. Vigano" initials="C." surname="Vigano"/>
    <author fullname="C. Bormann" initials="C." surname="Bormann"/>
    <date month="June" year="2019"/>
    <abstract>
      <t>This document proposes a notational convention to express Concise Binary Object Representation (CBOR) data structures (RFC 7049). Its main goal is to provide an easy and unambiguous way to express structures for protocol messages and data formats that use CBOR or JSON.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8610"/>
  <seriesInfo name="DOI" value="10.17487/RFC8610"/>
</reference>

<reference anchor="RFC8615">
  <front>
    <title>Well-Known Uniform Resource Identifiers (URIs)</title>
    <author fullname="M. Nottingham" initials="M." surname="Nottingham"/>
    <date month="May" year="2019"/>
    <abstract>
      <t>This memo defines a path prefix for "well-known locations", "/.well-known/", in selected Uniform Resource Identifier (URI) schemes.</t>
      <t>In doing so, it obsoletes RFC 5785 and updates the URI schemes defined in RFC 7230 to reserve that space. It also updates RFC 7595 to track URI schemes that support well-known URIs in their registry.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8615"/>
  <seriesInfo name="DOI" value="10.17487/RFC8615"/>
</reference>

<reference anchor="RFC8995">
  <front>
    <title>Bootstrapping Remote Secure Key Infrastructure (BRSKI)</title>
    <author fullname="M. Pritikin" initials="M." surname="Pritikin"/>
    <author fullname="M. Richardson" initials="M." surname="Richardson"/>
    <author fullname="T. Eckert" initials="T." surname="Eckert"/>
    <author fullname="M. Behringer" initials="M." surname="Behringer"/>
    <author fullname="K. Watsen" initials="K." surname="Watsen"/>
    <date month="May" year="2021"/>
    <abstract>
      <t>This document specifies automated bootstrapping of an Autonomic Control Plane. To do this, a Secure Key Infrastructure is bootstrapped. This is done using manufacturer-installed X.509 certificates, in combination with a manufacturer's authorizing service, both online and offline. We call this process the Bootstrapping Remote Secure Key Infrastructure (BRSKI) protocol. Bootstrapping a new device can occur when using a routable address and a cloud service, only link-local connectivity, or limited/disconnected networks. Support for deployment models with less stringent security requirements is included. Bootstrapping is complete when the cryptographic identity of the new key infrastructure is successfully deployed to the device. The established secure connection can be used to deploy a locally issued certificate to the device as well.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8995"/>
  <seriesInfo name="DOI" value="10.17487/RFC8995"/>
</reference>


<reference anchor="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="22" month="February" year="2023"/>
      <abstract>
	 <t>   [RFC8366] 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-06"/>
   
</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="7" month="February" year="2023"/>
      <abstract>
	 <t>   This document defines a strategy to securely assign a pledge to an
   owner using an artifact signed, directly or indirectly, by the
   pledge&#x27;s manufacturer.  This artifact is known as a &quot;voucher&quot;.

   This document defines an artifact format as a YANG-defined JSON or
   CBOR document that has been signed using a variety of cryptographic
   systems.

   The voucher artifact is normally generated by the pledge&#x27;s
   manufacturer (i.e., the Manufacturer Authorized Signing Authority
   (MASA)).

   This document updates RFC8366, merging a number of extensions into
   the YANG.  The RFC8995 voucher request is also merged into this
   document.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-ietf-anima-rfc8366bis-07"/>
   
</reference>

<reference anchor="RFC2119">
  <front>
    <title>Key words for use in RFCs to Indicate Requirement Levels</title>
    <author fullname="S. Bradner" initials="S." surname="Bradner"/>
    <date month="March" year="1997"/>
    <abstract>
      <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="14"/>
  <seriesInfo name="RFC" value="2119"/>
  <seriesInfo name="DOI" value="10.17487/RFC2119"/>
</reference>

<reference anchor="RFC8174">
  <front>
    <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
    <author fullname="B. Leiba" initials="B." surname="Leiba"/>
    <date month="May" year="2017"/>
    <abstract>
      <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="14"/>
  <seriesInfo name="RFC" value="8174"/>
  <seriesInfo name="DOI" value="10.17487/RFC8174"/>
</reference>




    </references>

    <references title='Informative References'>



<reference anchor="RFC2986">
  <front>
    <title>PKCS #10: Certification Request Syntax Specification Version 1.7</title>
    <author fullname="M. Nystrom" initials="M." surname="Nystrom"/>
    <author fullname="B. Kaliski" initials="B." surname="Kaliski"/>
    <date month="November" year="2000"/>
    <abstract>
      <t>This memo represents a republication of PKCS #10 v1.7 from RSA Laboratories' Public-Key Cryptography Standards (PKCS) series, and change control is retained within the PKCS process. The body of this document, except for the security considerations section, is taken directly from the PKCS #9 v2.0 or the PKCS #10 v1.7 document. This memo provides information for the Internet community.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="2986"/>
  <seriesInfo name="DOI" value="10.17487/RFC2986"/>
</reference>

<reference anchor="RFC5272">
  <front>
    <title>Certificate Management over CMS (CMC)</title>
    <author fullname="J. Schaad" initials="J." surname="Schaad"/>
    <author fullname="M. Myers" initials="M." surname="Myers"/>
    <date month="June" year="2008"/>
    <abstract>
      <t>This document defines the base syntax for CMC, a Certificate Management protocol using the Cryptographic Message Syntax (CMS). This protocol addresses two immediate needs within the Internet Public Key Infrastructure (PKI) community:</t>
      <t>1. The need for an interface to public key certification products and services based on CMS and PKCS #10 (Public Key Cryptography Standard), and</t>
      <t>2. The need for a PKI enrollment protocol for encryption only keys due to algorithm or hardware design.</t>
      <t>CMC also requires the use of the transport document and the requirements usage document along with this document for a full definition. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="5272"/>
  <seriesInfo name="DOI" value="10.17487/RFC5272"/>
</reference>

<reference anchor="RFC6125">
  <front>
    <title>Representation and Verification of Domain-Based Application Service Identity within Internet Public Key Infrastructure Using X.509 (PKIX) Certificates in the Context of Transport Layer Security (TLS)</title>
    <author fullname="P. Saint-Andre" initials="P." surname="Saint-Andre"/>
    <author fullname="J. Hodges" initials="J." surname="Hodges"/>
    <date month="March" year="2011"/>
    <abstract>
      <t>Many application technologies enable secure communication between two entities by means of Internet Public Key Infrastructure Using X.509 (PKIX) certificates in the context of Transport Layer Security (TLS). This document specifies procedures for representing and verifying the identity of application services in such interactions. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="6125"/>
  <seriesInfo name="DOI" value="10.17487/RFC6125"/>
</reference>

<reference anchor="RFC6241">
  <front>
    <title>Network Configuration Protocol (NETCONF)</title>
    <author fullname="R. Enns" initials="R." role="editor" surname="Enns"/>
    <author fullname="M. Bjorklund" initials="M." role="editor" surname="Bjorklund"/>
    <author fullname="J. Schoenwaelder" initials="J." role="editor" surname="Schoenwaelder"/>
    <author fullname="A. Bierman" initials="A." role="editor" surname="Bierman"/>
    <date month="June" year="2011"/>
    <abstract>
      <t>The Network Configuration Protocol (NETCONF) defined in this document provides mechanisms to install, manipulate, and delete the configuration of network devices. It uses an Extensible Markup Language (XML)-based data encoding for the configuration data as well as the protocol messages. The NETCONF protocol operations are realized as remote procedure calls (RPCs). This document obsoletes RFC 4741. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="6241"/>
  <seriesInfo name="DOI" value="10.17487/RFC6241"/>
</reference>

<reference anchor="RFC7252">
  <front>
    <title>The Constrained Application Protocol (CoAP)</title>
    <author fullname="Z. Shelby" initials="Z." surname="Shelby"/>
    <author fullname="K. Hartke" initials="K." surname="Hartke"/>
    <author fullname="C. Bormann" initials="C." surname="Bormann"/>
    <date month="June" year="2014"/>
    <abstract>
      <t>The Constrained Application Protocol (CoAP) is a specialized web transfer protocol for use with constrained nodes and constrained (e.g., low-power, lossy) networks. The nodes often have 8-bit microcontrollers with small amounts of ROM and RAM, while constrained networks such as IPv6 over Low-Power Wireless Personal Area Networks (6LoWPANs) often have high packet error rates and a typical throughput of 10s of kbit/s. The protocol is designed for machine- to-machine (M2M) applications such as smart energy and building automation.</t>
      <t>CoAP provides a request/response interaction model between application endpoints, supports built-in discovery of services and resources, and includes key concepts of the Web such as URIs and Internet media types. CoAP is designed to easily interface with HTTP for integration with the Web while meeting specialized requirements such as multicast support, very low overhead, and simplicity for constrained environments.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="7252"/>
  <seriesInfo name="DOI" value="10.17487/RFC7252"/>
</reference>

<reference anchor="RFC8407">
  <front>
    <title>Guidelines for Authors and Reviewers of Documents Containing YANG Data Models</title>
    <author fullname="A. Bierman" initials="A." surname="Bierman"/>
    <date month="October" year="2018"/>
    <abstract>
      <t>This memo provides guidelines for authors and reviewers of specifications containing YANG modules. Recommendations and procedures are defined, which are intended to increase interoperability and usability of Network Configuration Protocol (NETCONF) and RESTCONF protocol implementations that utilize YANG modules. This document obsoletes RFC 6087.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="216"/>
  <seriesInfo name="RFC" value="8407"/>
  <seriesInfo name="DOI" value="10.17487/RFC8407"/>
</reference>

<reference anchor="RFC8792">
  <front>
    <title>Handling Long Lines in Content of Internet-Drafts and RFCs</title>
    <author fullname="K. Watsen" initials="K." surname="Watsen"/>
    <author fullname="E. Auerswald" initials="E." surname="Auerswald"/>
    <author fullname="A. Farrel" initials="A." surname="Farrel"/>
    <author fullname="Q. Wu" initials="Q." surname="Wu"/>
    <date month="June" year="2020"/>
    <abstract>
      <t>This document defines two strategies for handling long lines in width-bounded text content. One strategy, called the "single backslash" strategy, is based on the historical use of a single backslash ('\') character to indicate where line-folding has occurred, with the continuation occurring with the first character that is not a space character (' ') on the next line. The second strategy, called the "double backslash" strategy, extends the first strategy by adding a second backslash character to identify where the continuation begins and is thereby able to handle cases not supported by the first strategy. Both strategies use a self-describing header enabling automated reconstitution of the original content.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8792"/>
  <seriesInfo name="DOI" value="10.17487/RFC8792"/>
</reference>

<reference anchor="RFC8990">
  <front>
    <title>GeneRic Autonomic Signaling Protocol (GRASP)</title>
    <author fullname="C. Bormann" initials="C." surname="Bormann"/>
    <author fullname="B. Carpenter" initials="B." role="editor" surname="Carpenter"/>
    <author fullname="B. Liu" initials="B." role="editor" surname="Liu"/>
    <date month="May" year="2021"/>
    <abstract>
      <t>This document specifies the GeneRic Autonomic Signaling Protocol (GRASP), which enables autonomic nodes and Autonomic Service Agents to dynamically discover peers, to synchronize state with each other, and to negotiate parameter settings with each other. GRASP depends on an external security environment that is described elsewhere. The technical objectives and parameters for specific application scenarios are to be described in separate documents. Appendices briefly discuss requirements for the protocol and existing protocols with comparable features.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8990"/>
  <seriesInfo name="DOI" value="10.17487/RFC8990"/>
</reference>

<reference anchor="RFC9052">
  <front>
    <title>CBOR Object Signing and Encryption (COSE): Structures and Process</title>
    <author fullname="J. Schaad" initials="J." surname="Schaad"/>
    <date month="August" year="2022"/>
    <abstract>
      <t>Concise Binary Object Representation (CBOR) is a data format designed for small code size and small message size. There is a need to be able to define basic security services for this data format. This document defines the CBOR Object Signing and Encryption (COSE) protocol. This specification describes how to create and process signatures, message authentication codes, and encryption using CBOR for serialization. This specification additionally describes how to represent cryptographic keys using CBOR.</t>
      <t>This document, along with RFC 9053, obsoletes RFC 8152.</t>
    </abstract>
  </front>
  <seriesInfo name="STD" value="96"/>
  <seriesInfo name="RFC" value="9052"/>
  <seriesInfo name="DOI" value="10.17487/RFC9052"/>
</reference>

<reference anchor="RFC9053">
  <front>
    <title>CBOR Object Signing and Encryption (COSE): Initial Algorithms</title>
    <author fullname="J. Schaad" initials="J." surname="Schaad"/>
    <date month="August" year="2022"/>
    <abstract>
      <t>Concise Binary Object Representation (CBOR) is a data format designed for small code size and small message size. There is a need to be able to define basic security services for this data format. This document defines a set of algorithms that can be used with the CBOR Object Signing and Encryption (COSE) protocol (RFC 9052).</t>
      <t>This document, along with RFC 9052, obsoletes RFC 8152.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9053"/>
  <seriesInfo name="DOI" value="10.17487/RFC9053"/>
</reference>

<reference anchor="RFC9110">
  <front>
    <title>HTTP Semantics</title>
    <author fullname="R. Fielding" initials="R." role="editor" surname="Fielding"/>
    <author fullname="M. Nottingham" initials="M." role="editor" surname="Nottingham"/>
    <author fullname="J. Reschke" initials="J." role="editor" surname="Reschke"/>
    <date month="June" year="2022"/>
    <abstract>
      <t>The Hypertext Transfer Protocol (HTTP) is a stateless application-level protocol for distributed, collaborative, hypertext information systems. This document describes the overall architecture of HTTP, establishes common terminology, and defines aspects of the protocol that are shared by all versions. In this definition are core protocol elements, extensibility mechanisms, and the "http" and "https" Uniform Resource Identifier (URI) schemes.</t>
      <t>This document updates RFC 3864 and obsoletes RFCs 2818, 7231, 7232, 7233, 7235, 7538, 7615, 7694, and portions of 7230.</t>
    </abstract>
  </front>
  <seriesInfo name="STD" value="97"/>
  <seriesInfo name="RFC" value="9110"/>
  <seriesInfo name="DOI" value="10.17487/RFC9110"/>
</reference>

<reference anchor="RFC9238">
  <front>
    <title>Loading Manufacturer Usage Description (MUD) URLs from QR Codes</title>
    <author fullname="M. Richardson" initials="M." surname="Richardson"/>
    <author fullname="J. Latour" initials="J." surname="Latour"/>
    <author fullname="H. Habibi Gharakheili" initials="H." surname="Habibi Gharakheili"/>
    <date month="May" year="2022"/>
    <abstract>
      <t>This informational document details a protocol to load Manufacturer Usage Description (MUD) definitions from RFC 8520 for devices that do not have them integrated.</t>
      <t>This document is published to inform the Internet community of this mechanism to allow interoperability and to serve as a basis of other standards work if there is interest.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9238"/>
  <seriesInfo name="DOI" value="10.17487/RFC9238"/>
</reference>


<reference anchor="I-D.ietf-anima-brski-ae">
   <front>
      <title>BRSKI-AE: Alternative Enrollment Protocols in BRSKI</title>
      <author fullname="David von Oheimb" initials="D." surname="von Oheimb">
         <organization>Siemens AG</organization>
      </author>
      <author fullname="Steffen Fries" initials="S." surname="Fries">
         <organization>Siemens AG</organization>
      </author>
      <author fullname="Hendrik Brockhaus" initials="H." surname="Brockhaus">
         <organization>Siemens AG</organization>
      </author>
      <date day="28" month="June" year="2023"/>
      <abstract>
	 <t>   This document defines an enhancement of Bootstrapping Remote Secure
   Key Infrastructure (BRSKI, RFC 8995) that supports alternative
   certificate enrollment protocols, such as CMP.  This offers the
   following advantages.

   Using authenticated self-contained signed objects for certification
   requests and responses, their origin can be authenticated
   independently of message transfer.  This supports end-to-end
   authentication (proof of origin) also over multiple hops, as well as
   asynchronous operation of certificate enrollment.  This in turn
   provides architectural flexibility where to ultimately authenticate
   and authorize certification requests while retaining full-strength
   integrity and authenticity of certification requests.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-ietf-anima-brski-ae-05"/>
   
</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="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="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="22" month="January" year="2023"/>
      <abstract>
	 <t>   This document provides a taxonomy of methods used by manufacturers of
   silicon and devices to secure private keys and public trust anchors.
   This deals with two related activities: how trust anchors and private
   keys are installed into devices during manufacturing, and how the
   related manufacturer held private keys are secured against
   disclosure.

   This document does not evaluate the different mechanisms, but rather
   just serves to name them in a consistent manner in order to aid in
   communication.

   RFCEDITOR: please remove this paragraph.  This work is occurring in
   https://github.com/mcr/idevid-security-considerations

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-irtf-t2trg-taxonomy-manufacturer-anchors-00"/>
   
</reference>




    </references>


<?line 2114?>

<section anchor="examples"><name>Examples</name>

<t>These examples are folded according to <xref target="RFC8792"/> Single Backslash rule.</t>

<section anchor="example-pledge-voucher-request-pvr-from-pledge-to-registrar-agent"><name>Example Pledge Voucher-Request - PVR (from Pledge to Registrar-agent)</name>

<t>The following is an example request sent from a Pledge to the Registrar-agent, in "General JWS JSON Serialization".
The message size of this PVR is: 4649 bytes</t>

<figure title="Example Pledge Voucher-Request - PVR" anchor="ExamplePledgeVoucherRequestfigure"><artwork align="left"><![CDATA[
=============== NOTE: '\' line wrapping per RFC 8792 ================

{
  "payload":
    "eyJpZXRmLXZvdWNoZXItcmVxdWVzdC1wcm06dm91Y2hlciI6eyJhc3NlcnRpb24\
iOiJhZ2VudC1wcm94aW1pdHkiLCJzZXJpYWwtbnVtYmVyIjoiMDEyMzQ1Njc4OSIsIm5\
vbmNlIjoiTDNJSjZocHRIQ0lRb054YWFiOUhXQT09IiwiY3JlYXRlZC1vbiI6IjIwMjI\
tMDQtMjZUMDU6MTY6MTcuNzA5WiIsImFnZW50LXByb3ZpZGVkLXByb3hpbWl0eS1yZWd\
pc3RyYXItY2VydCI6Ik1JSUI0akNDQVlpZ0F3SUJBZ0lHQVhZNzJiYlpNQW9HQ0NxR1N\
NNDlCQU1DTURVeEV6QVJCZ05WQkFvTUNrMTVRblZ6YVc1bGMzTXhEVEFMQmdOVkJBY01\
CRk5wZEdVeER6QU5CZ05WQkFNTUJsUmxjM1JEUVRBZUZ3MHlNREV5TURjd05qRTRNVEp\
hRncwek1ERXlNRGN3TmpFNE1USmFNRDR4RXpBUkJnTlZCQW9NQ2sxNVFuVnphVzVsYzN\
NeERUQUxCZ05WQkFjTUJGTnBkR1V4R0RBV0JnTlZCQU1NRDBSdmJXRnBibEpsWjJsemR\
ISmhjakJaTUJNR0J5cUdTTTQ5QWdFR0NDcUdTTTQ5QXdFSEEwSUFCQmsxNksvaTc5b1J\
rSzVZYmVQZzhVU1I4L3VzMWRQVWlaSE10b2tTZHFLVzVmbldzQmQrcVJMN1dSZmZlV2t\
5Z2Vib0pmSWxsdXJjaTI1d25oaU9WQ0dqZXpCNU1CMEdBMVVkSlFRV01CUUdDQ3NHQVF\
VRkJ3TUJCZ2dyQmdFRkJRY0RIREFPQmdOVkhROEJBZjhFQkFNQ0I0QXdTQVlEVlIwUkJ\
FRXdQNElkY21WbmFYTjBjbUZ5TFhSbGMzUXVjMmxsYldWdWN5MWlkQzV1WlhTQ0huSmx\
aMmx6ZEhKaGNpMTBaWE4wTmk1emFXVnRaVzV6TFdKMExtNWxkREFLQmdncWhrak9QUVF\
EQWdOSUFEQkZBaUJ4bGRCaFpxMEV2NUpMMlByV0N0eVM2aERZVzF5Q08vUmF1YnBDN01\
hSURnSWhBTFNKYmdMbmdoYmJBZzBkY1dGVVZvL2dHTjAvand6SlowU2wyaDR4SVhrMSI\
sImFnZW50LXNpZ25lZC1kYXRhIjoiZXlKd1lYbHNiMkZrSWpvaVpYbEtjRnBZVW0xTVd\
GcDJaRmRPYjFwWVNYUmpiVlo0WkZkV2VtUkRNWGRqYlRBMldWZGtiR0p1VVhSak1teHV\
ZbTFXYTB4WFVtaGtSMFZwVDI1emFWa3pTbXhaV0ZKc1drTXhkbUpwU1RaSmFrbDNUV3B\
KZEUxRVVYUk5hbHBWVFVSVk5rMUVZelpPUkVWMVRrUlJORmRwU1hOSmJrNXNZMjFzYUd\
KRE1YVmtWekZwV2xoSmFVOXBTWGROVkVsNlRrUlZNazU2WnpWSmJqRTVJaXdpYzJsbmJ\
tRjBkWEpsY3lJNlczc2ljSEp2ZEdWamRHVmtJam9pWlhsS2NtRlhVV2xQYVVwWlkwaHd\
jMVJWZERSaVNFSkNUbXBvYWxaVVZrZFZWVEZaVmxoYWRWTldVVEpWV0dNNVNXbDNhVmx\
YZUc1SmFtOXBVbFpOZVU1VVdXbG1VU0lzSW5OcFoyNWhkSFZ5WlNJNklrY3pWM2hHU0d\
WMFdGQTRiR3hTVmkwNWRXSnlURmxxU25aUllUWmZlUzFRYWxGWk5FNWhkMW81Y0ZKaGI\
yeE9TbTlFTm1SbFpXdHVTVjlGV0daemVWWlRZbmM0VTBONlRWcE1iakJoUVhWb2FVZFp\
UakJSSW4xZGZRPT0iLCJhZ2VudC1zaWduLWNlcnQiOlsiTUlJQjFEQ0NBWHFnQXdJQkF\
nSUVZbWQ0T1RBS0JnZ3Foa2pPUFFRREFqQStNUk13RVFZRFZRUUtEQXBOZVVKMWMybHV\
aWE56TVEwd0N3WURWUVFIREFSVGFYUmxNUmd3RmdZRFZRUUREQTlVWlhOMFVIVnphRTF\
2WkdWc1EwRXdIaGNOTWpJd05ESTJNRFEwTWpNeldoY05Nekl3TkRJMk1EUTBNak16V2p\
BOU1STXdFUVlEVlFRS0RBcE5lVUoxYzJsdVpYTnpNUTB3Q3dZRFZRUUhEQVJUYVhSbE1\
SY3dGUVlEVlFRRERBNVNaV2RwYzNSeVlYSkJaMlZ1ZERCWk1CTUdCeXFHU000OUFnRUd\
DQ3FHU000OUF3RUhBMElBQkd4bHJOZmozaVJiNy9CUW9kVys1WWlvT3poK2pJdHlxdVJ\
JTy9XejdZb1czaXdEYzNGeGV3TFZmekNyNU52RDEzWmFGYjdmcmFuK3Q5b3RZNVdMaEo\
2alp6QmxNQTRHQTFVZER3RUIvd1FFQXdJSGdEQWZCZ05WSFNNRUdEQVdnQlJ2b1QxdWR\
lMmY2TEVRaFU3SEhqK3ZKL2Q3SXpBZEJnTlZIUTRFRmdRVVhwemxNS3hscEE2OGNVNUZ\
RTVhVdm5JVDZRd3dFd1lEVlIwbEJBd3dDZ1lJS3dZQkJRVUhBd0l3Q2dZSUtvWkl6ajB\
FQXdJRFNBQXdSUUlnYzJ5NnhvT3RvUUJsSnNnbE9MMVZ4SEdvc1R5cEVxUmZ6MFF2NFp\
FUHY0d0NJUUNWeWIyRjl6VjNuOTUrb2xnZkZKZ1pUV0V6NGRTYUYzaHpSUWIzWnVCMjl\
RPT0iLCJNSUlCekRDQ0FYR2dBd0lCQWdJRVhYakhwREFLQmdncWhrak9QUVFEQWpBMU1\
STXdFUVlEVlFRS0RBcE5lVUoxYzJsdVpYTnpNUTB3Q3dZRFZRUUhEQVJUYVhSbE1ROHd\
EUVlEVlFRRERBWlVaWE4wUTBFd0hoY05NVGt3T1RFeE1UQXdPRE0yV2hjTk1qa3dPVEV\
4TVRBd09ETTJXakErTVJNd0VRWURWUVFLREFwTmVVSjFjMmx1WlhOek1RMHdDd1lEVlF\
RSERBUlRhWFJsTVJnd0ZnWURWUVFEREE5VVpYTjBVSFZ6YUUxdlpHVnNRMEV3V1RBVEJ\
nY3Foa2pPUFFJQkJnZ3Foa2pPUFFNQkJ3TkNBQVRsRzBmd1QzM29leloxdmtIUWJldGV\
ibWorQm9WK1pGc2pjZlF3MlRPa0pQaE9rT2ZBYnU5YlMxcVppOHlhRVY4b2VyS2wvNlp\
YYmZ4T21CanJScmNYbzJZd1pEQVNCZ05WSFJNQkFmOEVDREFHQVFIL0FnRUFNQTRHQTF\
VZER3RUIvd1FFQXdJQ0JEQWZCZ05WSFNNRUdEQVdnQlRvWklNelFkc0Qvai8rZ1gvN2N\
CSnVjSC9YbWpBZEJnTlZIUTRFRmdRVWI2RTliblh0bitpeEVJVk94eDQvcnlmM2V5TXd\
DZ1lJS29aSXpqMEVBd0lEU1FBd1JnSWhBUG5CMHcxTkN1cmhNeEp3d2ZqejdnRGlpeGt\
VWUxQU1o5ZU45a29oTlFVakFpRUF3NFk3bHR4V2lQd0t0MUo5bmp5ZkRObDVNdUVEQml\
teFIzQ1hvWktHUXJVPSJdfX0",
    "signatures":[{
      "protected":"eyJ4NWMiOlsiTUlJQitUQ0NBYUNnQXdJQkFnSUdBWG5WanNVN\
U1Bb0dDQ3FHU000OUJBTUNNRDB4Q3pBSkJnTlZCQVlUQWtGUk1SVXdFd1lEVlFRS0RBe\
EthVzVuU21sdVowTnZjbkF4RnpBVkJnTlZCQU1NRGtwcGJtZEthVzVuVkdWemRFTkJNQ\
0FYRFRJeE1EWXdOREExTkRZeE5Gb1lEems1T1RreE1qTXhNak0xT1RVNVdqQlNNUXN3Q\
1FZRFZRUUdFd0pCVVRFVk1CTUdBMVVFQ2d3TVNtbHVaMHBwYm1kRGIzSndNUk13RVFZR\
FZRUUZFd293TVRJek5EVTJOemc1TVJjd0ZRWURWUVFEREE1S2FXNW5TbWx1WjBSbGRtb\
GpaVEJaTUJNR0J5cUdTTTQ5QWdFR0NDcUdTTTQ5QXdFSEEwSUFCQzc5bGlhUmNCalpjR\
UVYdzdyVWVhdnRHSkF1SDRwazRJNDJ2YUJNc1UxMWlMRENDTGtWaHRVVjIxbXZhS0N2T\
XgyWStTTWdROGZmd0wyM3ozVElWQldqZFRCek1Dc0dDQ3NHQVFVRkJ3RWdCQjhXSFcxa\
GMyRXRkR1Z6ZEM1emFXVnRaVzV6TFdKMExtNWxkRG81TkRRek1COEdBMVVkSXdRWU1CY\
UFGRlFMak56UFwvU1wva291alF3amc1RTVmdndjWWJNQk1HQTFVZEpRUU1NQW9HQ0NzR\
0FRVUZCd01DTUE0R0ExVWREd0VCXC93UUVBd0lIZ0RBS0JnZ3Foa2pPUFFRREFnTkhBR\
EJFQWlCdTN3UkJMc0pNUDVzTTA3MEgrVUZyeU5VNmdLekxPUmNGeVJST2xxcUhpZ0lnW\
ENtSkxUekVsdkQycG9LNmR4NmwxXC91eW1UbmJRRERmSmxhdHVYMlJvT0U9Il0sImFsZ\
yI6IkVTMjU2In0",
      "signature":"Y_ohapnmvbwjLuUicOB7NAmbGM7igBfpUlkKUuSNdG-eDI4BQ\
yuXZ2aw93zZId45R7XxAK-12YKIx6qLjiPjMw"
  }]
}
]]></artwork></figure>

</section>
<section anchor="example-parboiled-registrar-voucher-request-rvr-from-registrar-to-masa"><name>Example Parboiled Registrar Voucher-Request - RVR (from Registrar to MASA)</name>

<t>The term parboiled refers to food which is partially cooked.  In <xref target="RFC8995"/>, the term refers to a Pledge voucher-request (PVR) which has
been received by the Registrar, and then has been processed by the Registrar ("cooked"), and is now being forwarded to the MASA.</t>

<t>The following is an example Registrar voucher-request (RVR) sent from the Registrar to the MASA, in "General JWS JSON Serialization".
Note that the previous PVR can be seen in the payload as "prior-signed-voucher-request".
The message size of this RVR is: 13257 bytes</t>

<figure title="Example Registrar Voucher-Request - RVR" anchor="ExampleRegistrarVoucherRequestfigure"><artwork align="left"><![CDATA[
=============== NOTE: '\' line wrapping per RFC 8792 ================

{
  "payload":
    "eyJpZXRmLXZvdWNoZXItcmVxdWVzdC1wcm06dm91Y2hlciI6eyJhc3NlcnRpb24\
iOiJhZ2VudC1wcm94aW1pdHkiLCJzZXJpYWwtbnVtYmVyIjoiY2FmZmUtOTg3NDUiLCJ\
ub25jZSI6ImM1VEVPb29NTE5hNEN4L1UrVExoQ3c9PSIsInByaW9yLXNpZ25lZC12b3V\
jaGVyLXJlcXVlc3QiOiJleUp3WVhsc2IyRmtJam9pWlhsS2NGcFlVbTFNV0ZwMlpGZE9\
iMXBZU1hSamJWWjRaRmRXZW1SRE1YZGpiVEEyWkcwNU1Wa3lhR3hqYVVrMlpYbEthR01\
6VG14amJsSndZakkwYVU5cFNtaGFNbFoxWkVNeGQyTnRPVFJoVnpGd1pFaHJhVXhEU25\
wYVdFcHdXVmQzZEdKdVZuUlpiVlo1U1dwdmFWa3lSbTFhYlZWMFQxUm5NMDVFVldsTVE\
wcDFZakkxYWxwVFNUWkpiVTB4VmtWV1VHSXlPVTVVUlRWb1RrVk9ORXd4VlhKV1JYaHZ\
VVE5qT1ZCVFNYTkpiVTU1V2xkR01GcFhVWFJpTWpScFQybEplVTFFU1hsTVZFRjVURlJ\
KZVZaRVFUTlBhazE2VDJwQk5FeHFSVFZPYkc5cFRFTkthRm95Vm5Wa1F6RjNZMjA1TW1\
GWFVteGFRekYzWTIwNU5HRlhNWEJrU0d0MFkyMVdibUZZVGpCamJVWjVURmRPYkdOdVV\
XbFBhVXBPVTFWc1JGSkdVa1JSTUVacFZESmtRbVF3YkVOUlYyUktVakJHV1ZkWVRuZFR\
WMVoyVkZWR2RsSXdUa1JqVldSVVZGUlJOVkZyUms1Uk1ERkhaRE5vUkdWclJrdFJiV1J\
QVm10S1FsZFdVa0poTUZwVFZGWktTbVF3VmtKWFZWSlhWVlpHVEZKRlJuTlViVlpXVkc\
1YWFWZEZTbTlaYlRWeVpVVmFWVkZXVWtOYU1EVlhVV3RHZWxSVlVrWk5WRlpXVFRGYWN\
GbDZTbk5oTWtaWVVtNXNiRlpGVmxGVVZVVjNVakJGZUZaVlZrTmtNMlJJVmtab2MxWkh\
SbGxWYlhoT1ZXdFdNMUpJWkZwU1JscFNWVlZTUlZGWGFFOWFWbHBQWTBkU1NGWnJVbEp\
XUlVac1VtNWpkMlZWTVVWU1dHeE9Va1pHTTFSdWNFcE5WVFZGWVVkR1IyUjZRalpVVlZ\
KR1pWVXhSVlZZWkU5bGEydDRWR3RTYjFsVk1VaFRXR2hFWld0R1MxRnRaRTlXYTBwQ1Y\
xWlNRbUV3V2xOVVZrcEtaREJXUWxkVlVsZFZWa1pNVWtWR2MxUnRWbFpVYmxwcFYwVkt\
iMWx0TlhKbFJWcEZVVlpPUTFvd05WZFJhMFo2VkZWTmQwMVVWbFpOTVZwd1dYcEtjMkV\
4YkZsVGFsWk9WVlJvTTFKR1JscFNSbHBTVlZWb1JWRldjRTlhVmxwUFkwZFNTRlpZYUV\
oU1JVWllVVzFrVDFaclNrSlVWVEZGVFVSRk1WWlVTbk5OUm5CWFUyMTRZVTF0ZURaYVJ\
XaExZVWRPY1ZGc2NFNVJhekZJVVc1c2VGSXhUazVPUkd4Q1dqQldTRkV3VG5oU01VNU9\
Ua1JzUW1Rd1ZrbFJWRUpLVVZWS1NsVklhRmhrVlRGSlVucG9TMVJIV2taVlJVVTFUMWh\
hZDAxdVZrbFNWVFZxVlROc2JWa3pWVE5VUjJSYVRraEJlRTVGUmtOT01GSk9XbFJGTkU\
xSVRrWmxSV1J4VkZOME0yTnJOVFJPTURVMVdWaE9lRXQ2Um5CTlJXUlVVVEZKTlU1VVV\
UTk5SRVp0VWpKV1dGUldSbWxqVjNCWVpXdEtZVlJWU1hkU01FVjRWbGRTUzFWV1JsaFV\
WVXBTVWpCT1JHTXdaRUpWVmxaSFVXNWtUbEZyU201YU0wcERXakJXUjFGc1JtcFNSV2h\
GVVZVNVExb3dOVmRUUmtVMFVXdEdiVTlGVmtOUlZURkVVV3BTUW1Rd2RFSlhWVkpYVld\
wQ1UxRnJUa1prTUdjd1UxZFNhVmRIZURaWlZtaFRZa2RPZEZadE5XaFhSVFIzV1RJeFI\
yVlZlSFJOVkZaYVRXcHNNRmt3WkVka1YxWlVUbGR3YVUxcVFqTlJNbVJhVTFWMGRsZHJ\
iRFpoYWtKR1VWaGtTbEpHVGtKUldHUlRWVlZzYjFGV1FqVlBXRnBOVTFkR01WVnJWbEp\
qYlhnMVlteGtNRlI2VmxOaVZYQXdZVmhTVW1GNlpFOVhSRkpMVlVoV2RWVklRazlVYXp\
BeFZWUnNRbUZWUm5sa1JVNTBWRVprWVZSVmJFMVdiRTEyVFZWc1JWbFhjR2xqTVU1Sll\
tNXdkbUpYYjNkV1F6a3paVmhKY21Nd2RFdGpRM1IxVFhwU1VsQlVNR2xNUTBwb1dqSld\
kV1JETVhwaFYyUjFXbGRSZEZwSFJqQlpVMGsyU1cxV05WTnVaRnBYUjNoNldXcEtSMkV\
3YkhGaU1teGhWMGQ0VEZrd1duZFhWbFowVFZVeFdGSnVRWGxYYTFwclZESkplR05HYkZ\
SWFJrcHhXV3hhWVU1R2NFZGFSbVJzWWxaS1JWUldhR3RoYlVwVlVWUktXRlp0VW5KWmE\
yUkxaRlpXV1ZWdGNFNWlXR2d4VjFjd2VGWXlSWGRsUm1oV1lsZG9jbFZxUWxkalJsRjV\
UbGh3YUZadGREWlZNakUwVjJ4a1IxTnVUbGhoTURFMFdrY3hTMk5HVGxWWGEzQm9ZVEo\
zZWxaR1pIZFNiVkpHVFZaV1UxZEdTazlXYTFwM1ZteFNWbFZyY0U5aGVrVXlWVlpTWVZ\
Sc1NrWlNha1pWVmxaS1ExcEVSbXRqUms1WlZHdHdhV0Y2Vm5wWFZFbDRZekpHU0ZOclV\
rNVhSbHB5Vm01d1IyTkdaSE5oUlhCb1ZsUnNkMVV5TVhkWGJGbDRZMGhTV0dKRk1UTlV\
iRlUxVWxac05sRnJPVlpOUnpneFYyMTRSbUZWZUVSVGJuQm9WakpTTVZkV2FGTk5WMDU\
wVm01d1NtRnVRbWxhV0d4TFpESk9kRTlVUW1GV01EUjNWMnhrVW1GVk9YQlRiWGhzVmx\
oQ2RsZFhkR3RoYlVaV1QxaENWR0V4Y0ZkYVYzUnlaVVpTZEdKRmNHcE5SM2d3V2tWb1E\
xbFdSWGRoZWtwVVZqTm9kbFZ0ZEhwbFZsWlpVMnhTYVdKclNrcFdhMVpUVVcxV2MxSnV\
VbFJpVlZwVlZXdGFjbVZzVFhwalJ6bFhUVlpHTmxkWWNFTmhiRWw1V1ROa1ZVMUdSak5\
aVm1SaFZXdHNjR1F5YkdwTmJYaDFXVzB4UjAxSFVsbFRiWGhLWVcwNWNGZEVRazlsYXp\
sV1QxWm9VMkpyY0dGWmJHTTFaV3hOZDA5WVZsSlhSMUpUVjFSR1YyRXhiM2RqUlZaWVV\
qRndUVmxzVWt0WFZUbFhVMnhXVjFJd05URlVSazE0WXpGUmQwNVdRbWxTZWxaMlZqSjB\
SazFGT1VaWGJYUlhZa2hCZDFReFVrOWhNbEY0Vld0d1YxWlVWbGRYUkVwaFYyczVWMWR\
1UWxkaVJHdzFWWHBPVDFaV1JuSmhSa3BRVmpOQ2Vsa3haSHBsVjBsNldUSnNiVlpxUlR\
WSmFYZHBXVmRrYkdKdVVYUmpNbXh1WW1reGFscFlTakJKYW5CaVNXc3hTbE5WVGt0U1J\
VNUVVVmRPZUZvd1JqTlRWVXBDV2pCc1JsZEhlSEZSTURGRlVWVjBRMW95WkhoaFIzUnh\
WREZDVWxWVlVrSmhhMHB6VkZaR2VtUXdUbEpYVlZKWFZWWkdTRkpZWkV0UmJGWlZVbFp\
PVGxGclJraFJWRVpXVWxWT2JtUXdjRlZYUjNoRldXcEplR1F4YkZoT1ZGWk9WV3hXTTF\
KWVpGcFNSbHBTVlZWNFJWRllhRTlhVmxwUFRWWnNkVlJ1UW1GU01uaHZXVEkxY21WRlV\
qWlJWVFZEV2pBMVYxRnJSbXBVVlVweVRWUldWazF0ZDNkWGJGSkdXVlV4UTFvd1pFSk5\
WbFpHVVZoa00xVnNVbGxpUmxKb1YwWktjMVpWYUZkbGJVWkdUVmhhWVZJeFducFZWRUp\
HWkRCb2Ixa3dOVTVoYTBZelZGZHdTazVGTVVWWk0zQk9aV3RGZDFZeWFHcFVhekUyVVZ\
oa1RtRnJhekJVVlZKcVpXc3hObEZVUWxoaGEwcDBWRlpHZW1Rd1RsSlhWVkpYVlZaR1N\
GSllaRXRSYkZaVlVsWk9UbEZyUmtoUlZFWldVbFZPYm1Rd2NGVlhSM2hGV1dwSmVHUXh\
iRmhPVkZaT1ZXeFdNMUpZWkZwU1JscFNWVlY0UlZGWWFFOWFWbHBQVFZac2RWUnVRbUZ\
TTW5odldUSTFjbVZGVWpaUlZUVkRXakExVjFGclJtcFVWVXB5VFZSV1ZrMXRkM2RYYkZ\
KR1dXc3hRMkV3WkVKTlZsWkdVVmhrTTFVeFVsbGlSbEpvVjBaS2MxWlZhRmRsYlVaR1R\
WaGFZVkl4V25wVlZtaERaREF4UjJFelpFWmtNV3hKVXpJNVlWTlljSEZOUlU1Q1ZWWnN\
TbE15T1dGVFdIQnhUVVZTUWxWWFRrVlZWMlJDVWxSWmQwMVZPSEppTW5CRVlUTktSVlZ\
1WXpOYU1Hd3lWMnRWTUdGVVRUQmFSMHB2VVROR2NGSjZaSEZpTWprelYyNUJNR1ZJV2p\
aU2JsSk5XbnBhVlZaNlFtOVViVkpKWkd4Q1JWVXhVbnBrVm1oVVpWWmpOV1JJU1hwUld\
HUkVZa2RhUkdJd1VsZFVia1pRWkhwc05WUldaekpVYlRWT1VqRldNMUpIWkZwU1JscFR\
UVVpDUWxWVlozWlJhMFpTVWtWR2JscFZSazVSYW1oSVVWUkdWbHBGYkROVlZteE9VVzF\
HUWxKcmJ6TlRTRkpVWkROQ1RWUklWbEJYYW1ScVlUQkdjMVZWYUZaTk1tUkNWRmRqZGx\
Ock1VTk5SV1JDVFZaV2ExSkhaRkpXTUVwRFZXMU9WVTVVVFRCaWF6RmFaR3hTYWxKdVV\
uSmFia295VGpOb1ZrNHdVbkJpVldoeFpXdEdWVkZ0WkU5V2EyaFVWbFZXUlZKRlJreFJ\
iV1J1WTJ0S2JsSlZXa05WVjA1RlVWZHdRbE13U201YU0wWnZZVEp3VUZWR1JsSlNSVVp\
1Vkd0c1FsSkZTa2RSVjJ4R1VWaENTMDR6YUhkVWJGWXlWVlZ3U0UxRk5XOVVSMGwyV2x\
oU2FVMXFRazFTUmxWNFRtMTRkMVV3YUZCT01rWnNZbnBDVjFkWVozZGxTR1JFVTFWRmN\
sUjZWWFpYVkZwRllVTjBhVkZxU1RSTmFsSXhZVmRHVUZWWFJsWlNSRnB1VVZVMWIxZFV\
iRmRTYlZGeVlXNUtlVmt3VmpKVGJsRnBURU5LVGxOVmJFUlNNVkpFVVRCR2FVc3laRUp\
rTUd4RFVWZGtTbEpXYUhOaGEwVjJaV3RHVEZGdFpHNWpWMmh5WVdzNVVWVldSa1ZSVjN\
CRFdUQXhVbU16WkVSVlZteEZWbXhHVWxJd1ZqTlRhMHBXVmtWV1ZGUlZTa0pTTUVWNFZ\
sVldSRm96WkV0V1JtaHpVa2RKZVUxWVpGcFdlbFV4VkZaS1ZtUXdWak5YVlZKWFZWWkd\
UVkpGUmpSVWJWWlhWR3BHV21Kck5YZFhhMlJ6WVVkT2RXRXphRVZsYTBaUFVXMWtUMVp\
yU2tKWk1ERkRZWHBGTVZaVVNuTk5SbkJWVWxaS1RsRlVhRWhSVkVaV1VsVkdNMlF3YkZ\
WWFIzaFZXVlpvVTJKR1JYZFNXR1JKWVVkT1QxUlhjRUprTURGeFUxUlNUbEpIVGpWVWJ\
uQldUbFprYjFrd05VNWxhMFl6VkZkd1NrNUZNVVZaTTJ4UFpXeFZNVll5Y0VOaVJURlN\
Zek5rUkZWV2JFVldiRVpTVWpCV00xTnJTbFpXUlZaVVZGVktRbEl3UlhoV1ZWWkVXak5\
rUzFaR2FITlNSMGw1VFZoa1dsWjZWVEZVVmtwV1pEQldNMWRWVWxkVlZrWk5Va1ZHTkZ\
SdFZsZFVha1phWW1zMWQxZHJaSE5oUjA1MVlUTm9SV1ZyUms5UmJXUlBWbXRLUWxrd01\
VTmhla1V4VmxSS2MwMUdjRlZTVjBaT1VXMWtTRkZVUmxaU1ZVWXpaREZLVlZkSGVGVlp\
WbWhUWWtaV1NWWnVjR2hTVkVZeVYydGtWMk14UlhkU1dHUllWa1ZHVlZGdFpHcGpWMmh\
5WVdzNVVWVlZiRU5SYldSdVkxZG9jbUZyT1ZGVlZURkRVVzVrVDFFd1JrSlZhM0JEVm0\
wNWVscEZkRE5YVlRVMFlWWkNORk5JV25CU2JrWk1aV3RTYzA5WFdqQlVTRlpPV1ZjeGQ\
xSnNSbXBYU0dONFRXcGthRlJ0T1ZOWmJrNUpUREJhVG1OdE1UWlJNRVpKVFhwak0wMTZ\
UbXBOYlRscFZVZE9jMlJzVG5sWFZVb3lUVVZPTUZZeFJqQlpWRnBvU3pKT2RrMXNiRE5\
YYTFKQ1ZUQktibFJzV2tsVmF6RkRVVmRaTkZKVlRrVlJWV1JDVlZWbmRsRlhaRVpSVlR\
GQ1RrVmtRazFXVm10U1NHUkdVV2s1TTFWVlZrSmtNR3hFVVd0U1FscHJTbTVVYkZwSlZ\
UQXhSbEl3VWtKV01tUkRWVmh3TkdWdVpIZFZia0pOWlZNNWVWUldWbHBsYlVadlRXNU5\
lRTB5VmxaUFYyUkhaV3RHYTFGdFpFOVdhMmhTVGtWV1Ixb3hSbFppYms1c1RWVjRSR0V\
6VGpGT1JGWjFaRWhzVWxFeFdrSmFSbEpzVVZWR05WSkVhSEprTUU1dVYxVnNUR0l4Y0V\
wbGJXOTNVbFZHTTFOVlVsUlJWVVl6Vld4R1NtRkZSa3BqTVd4eldsWndUR015Y0VkVWE\
wNTZVMnQwYkZWSGVFaFVWVVpOV2xoQ1YxcFViRVpVUkdSUFlqTlJNVTFVVmpObFJ6Rlh\
aRlZ3UTFGWGJFSlpNRlpPVmxaV2IxSldUbnBVUm1SUlRsaG9WRlZXVlhkWFNFWTJWbTV\
GTkZkWVduQlNha1pwVm0wNU5sSXpjRFJPV0hCUFdqSk9lbVI2TURsSmJERTVabEVpTEN\
KemFXZHVZWFIxY21WeklqcGJleUp3Y205MFpXTjBaV1FpT2lKbGVVbzBUbGROYVU5c2M\
ybFVWV3hLVVRCb2NWRXdUa0paTVU1dVVWaGtTbEZyUm01VFZXUkNWMGRvTUUxVVVucGl\
NREZDWWpCa1JGRXpSa2hWTURBd1QxVktRbFJWVGs1U1ZtdzBVVE53UWxOclNtNVViRnB\
EVVZac1ZWRlhkRTlUVlRGVFZGaGtSbFZXYkVWV2JFWlNVekJTUW1OR1VtaFdNVm93VjJ\
4ak1XVnJiRVpTYTJoT1ZWUm9NMUpHUmxwU1JscFNWVlY0UlZGV2NFUldhMDVEVWtaV1I\
xUllhRVpXUlVaUlVXMWtUMVpyU2tKVVZURkVVbXh3YzFsdE1WTmtiVTV5Vkd0S1RsRXd\
SbGxTUmxKS1pVVXhSVlJZYkU5aGEwVXhWRmR3U21WVk5WZGlNV3hGWlcxek1WUXhVbkp\
sUlRGeFZGaG9UbUZyTUhoVU1WSldUbFprY1ZGdGFFNVZXRTR6VVRGR1dsSkdXbEpWVld\
SR1pEQndSVlV3VWtaV1JURkRVbFZrUWsxV1ZrWlJNbVF6VXpGVmVXSkhlR2xXTVZveFd\
UTnNRMUZzU2paU1ZrSk9VVlJDU0ZGVVJsWlNWVTR6WkRCa1VtSkdSbTVWVkVaRFZrVXh\
VMVZZWkVaYU1XeEZWbXhHVWxKclZqTmtSM0JhVmpGd2RGZHNUWGRPVlRsRldYcENUMVp\
GVmxoVVZVcFNVakJGZUZaVlZrSmtNMlJQVmxWYWIxSkZNVFZPVlZwUFpXeFdNRlJXVWt\
Ka01VWlZVV3h3VGxGck1VaFJibXg0VWpGT1RrNUViRUphTUZaSVVUQk9lRkl4VGs1T1J\
HeENaREJXU1ZGVVFrcFJWVXBQVFVSb2NWWXdlSHBOUjBadlV6Qm9XbGR1Vm05aVZ6Rmp\
UREpqTkdScVVsaFRNR2d5VVZoU2FGcHNSazFSVTNSS1pGVXhUMkZITVc1aFZ6RllUakJ\
HVG1OdVJtOWlWMHBWVFRCc2FGVkZUalZoUnpGaFUxWk9kMVI2V20xaVUzTXlVMWhhWTB\
3eldrcGphM1J2VlZaU01WWnRPVXhoYldSYVVWaGtiV0ZyUm5aUmJXUnVZMnRLYmxKVld\
rTlZWMDVEVTFWR1Vsa3dVa05qU0ZKYVYwVTFiMVJHYUZOaVIwMTZWVmhXYWsxdGVITlp\
iR1JYWkZkT05VNVhjR2xOYWtFeVZERlNVazFGTVRaUlZsSkRXakExVjFOR1RsWlNWVkp\
GVVZWMFExb3laSGxSYldSR1VtdEtVbGt3VWtKV1JVWlFVVzFrVDFacmFGSlBSVXBDV21\
wb1JsRnJSazVSTUVrd1VWaGtUVlZXYkVWV2JFbDNWV3RLUkZkWVpFdFRWV3h3V2tWa2I\
ySkZlSFZYYlhocFlsWktNbGt5YXpGaGJHeFlUa2hXYVdKVWEzZFVSekV3WkZkSmVsa3p\
WbXRTTW1oM1dUTnJNVTFzYkZobFJFWmhWa1ZHVEZGdFpHNWpWMmh5WVdzNVVWVldSa1Z\
SVjJSUFUxVkdSVkZyV2tKaFZVazFVVzB4ZUZRemNIRlZWR2hzV1ZkamVWTnVVblprVmx\
KdlVsWm9lVm93T1VOWFZsRjNVWHBvWVdSRGREVlBWemxKVWtad1JWbHNVbEpUVjJoQ1Z\
HMXpNbVJIT1ZOaU1sWkVXVmMxYUZSWGNFNVdSWGgwWWxaV2RXSlhTbkphYWtKNldsaGF\
jbEV3YnpSTmJXc3hWbGhHY1ZWcldsZFZVMHBrVEVOS2FHSkhZMmxQYVVwR1ZYcEpNVTV\
wU2praUxDSnphV2R1WVhSMWNtVWlPaUphWTFwa1dYbzBiMUl3UjJKc09UWnFNWGxZWm5\
kdlRYZGxVVGt6VGpCdFNVUmxjVFkyVTBacWRFdG9lR1pSWjNJMGRUWkpOVEJKWldNMmE\
xWTJhSEV3YVcxdlptTlBhVGs0VW1OSVpXUmpNVzFuZHpCWVp5SjlYWDA9IiwiY3JlYXR\
lZC1vbiI6IjIwMjItMDItMjJUMDc6MzM6MjUuMDIwWiIsImFnZW50LXNpZ24tY2VydCI\
6WyJNSUlDSkRDQ0FjcWdBd0lCQWdJRVhsakNNREFLQmdncWhrak9QUVFEQWpCbE1Rc3d\
DUVlEVlFRR0V3SkJVVEVTTUJBR0ExVUVDZ3dKVFhsRGIyMXdZVzU1TVJVd0V3WURWUVF\
MREF4TmVWTjFZbk5wWkdsaGNua3hEekFOQmdOVkJBY01CazE1VTJsMFpURWFNQmdHQTF\
VRUF3d1JUWGxUYVhSbFVIVnphRTF2WkdWc1EwRXdIaGNOTWpBd01qSTRNRGN6TXpBMFd\
oY05NekF3TWpJNE1EY3pNekEwV2pCbU1Rc3dDUVlEVlFRR0V3SkJVVEVTTUJBR0ExVUV\
DZ3dKVFhsRGIyMXdZVzU1TVJVd0V3WURWUVFMREF4TmVWTjFZbk5wWkdsaGNua3hEekF\
OQmdOVkJBY01CazE1VTJsMFpURWJNQmtHQTFVRUF3d1NUWGxUYVhSbFVIVnphRTF2Wkd\
Wc1FYQndNRmt3RXdZSEtvWkl6ajBDQVFZSUtvWkl6ajBEQVFjRFFnQUU2MDFPK29qQ2t\
yRFJ3N2dJdlpFNGkzNGRiaENxaUc3am9vd1pwNHh2ekZ0TGc2VFcwaE5kSHZQRFNUc3V\
YU3lXOXRyM0F3Q2xmQ29EVk5xT3c5eU1YNk5uTUdVd0RnWURWUjBQQVFIL0JBUURBZ2V\
BTUI4R0ExVWRJd1FZTUJhQUZKN0h0U3dwTEx1T1o3Y2tBbFFIVTNnQU1nL0pNQjBHQTF\
VZERnUVdCQlJjVDUzNG5NWXZUY0Z0a2Zydjd4VTdEaW1IanpBVEJnTlZIU1VFRERBS0J\
nZ3JCZ0VGQlFjREFqQUtCZ2dxaGtqT1BRUURBZ05JQURCRkFpRUFwSjd4cE5VdlFKRzB\
OaExiL2V0YjIwTERVMTZscFNITzdhZW8wVll4MHh3Q0lBK081L1k2RGgrYkIyODI0dWl\
hT1FhVUQ2Z0FOaFk5VkZkK2pycmNFdkp0IiwiTUlJQ0dUQ0NBYitnQXdJQkFnSUVYbGp\
BL3pBS0JnZ3Foa2pPUFFRREFqQmNNUXN3Q1FZRFZRUUdFd0pCVVRFU01CQUdBMVVFQ2d\
3SlRYbERiMjF3WVc1NU1SVXdFd1lEVlFRTERBeE5lVk4xWW5OcFpHbGhjbmt4RHpBTkJ\
nTlZCQWNNQmsxNVUybDBaVEVSTUE4R0ExVUVBd3dJVFhsVGFYUmxRMEV3SGhjTk1qQXd\
Nakk0TURjeU56VTVXaGNOTXpBd01qSTRNRGN5TnpVNVdqQmxNUXN3Q1FZRFZRUUdFd0p\
CVVRFU01CQUdBMVVFQ2d3SlRYbERiMjF3WVc1NU1SVXdFd1lEVlFRTERBeE5lVk4xWW5\
OcFpHbGhjbmt4RHpBTkJnTlZCQWNNQmsxNVUybDBaVEVhTUJnR0ExVUVBd3dSVFhsVGF\
YUmxVSFZ6YUUxdlpHVnNRMEV3V1RBVEJnY3Foa2pPUFFJQkJnZ3Foa2pPUFFNQkJ3TkN\
BQVJKQlZvc2RLd1lOeGlQeEh2aUZxS3pEbDlmdEx1TWFtcEZRY1h3MTI3YU5vUmJzSC9\
GTXJtekNBSDM3NzMzYzJvYlBjbHZTcllCdjBDdFdRdGE2YStjbzJZd1pEQVNCZ05WSFJ\
NQkFmOEVDREFHQVFIL0FnRUFNQTRHQTFVZER3RUIvd1FFQXdJQ0JEQWZCZ05WSFNNRUd\
EQVdnQlF6eHp3cFJwTHkvck1VWXphaDJzMTNlVTlnRnpBZEJnTlZIUTRFRmdRVW5zZTF\
MQ2tzdTQ1bnR5UUNWQWRUZUFBeUQ4a3dDZ1lJS29aSXpqMEVBd0lEU0FBd1JRSWhBSXN\
ZbGVaS3NqRk5Dc0pLZVBsR01BTGVwVmU5RUw3Tm90NTE1d3htVnVKQkFpQWNFTVVVaEV\
Tc0xXUDV4U1FVMFhxelZxOFl2aUYxYlZvekd6eDV6Tmdjc3c9PSJdfX0",
  "signatures":[{
    "protected":"eyJ4NWMiOlsiTUlJQjhEQ0NBWmFnQXdJQkFnSUdBWEJoTUtZSU1\
Bb0dDQ3FHU000OUJBTUNNRnd4Q3pBSkJnTlZCQVlUQWtGUk1SSXdFQVlEVlFRS0RBbE5\
lVU52YlhCaGJua3hGVEFUQmdOVkJBc01ERTE1VTNWaWMybGthV0Z5ZVRFUE1BMEdBMVV\
FQnd3R1RYbFRhWFJsTVJFd0R3WURWUVFEREFoTmVWTnBkR1ZEUVRBZUZ3MHlNREF5TWp\
Bd05qQXlNak5hRncwek1EQXlNakF3TmpBeU1qTmFNSGt4Q3pBSkJnTlZCQVlUQWtGUk1\
SSXdFQVlEVlFRS0RBbE5lVU52YlhCaGJua3hGVEFUQmdOVkJBc01ERTE1VTNWaWMybGt\
hV0Z5ZVRFUE1BMEdBMVVFQnd3R1RYbFRhWFJsTVM0d0xBWURWUVFERENWU1pXZHBjM1J\
5WVhJZ1ZtOTFZMmhsY2lCU1pYRjFaWE4wSUZOcFoyNXBibWNnUzJWNU1Ga3dFd1lIS29\
aSXpqMENBUVlJS29aSXpqMERBUWNEUWdBRUJUVFwvc1JmTDlsSnVGbVwvY24zU2pHcWp\
QXC9xdnBrNytoSTIwOE5oVkRvR2hcLzdLUCt2TXpYeVFRQStqUjZrNnJhTTI4ZlwvbHV\
FK1h1aHVwN1Vmem05Q3FNbk1DVXdFd1lEVlIwbEJBd3dDZ1lJS3dZQkJRVUhBeHd3RGd\
ZRFZSMFBBUUhcL0JBUURBZ2VBTUFvR0NDcUdTTTQ5QkFNQ0EwZ0FNRVVDSUhOK3VBbUp\
ldVhlc1wveWQxd1M0Mlo0RFhKNEptMWErZzNYa1pnZjhUaGxuQWlFQXBVdTZzZnljRWt\
veDdSWlhtZitLOHc0cDZzUldyamExUVJwWTAyNjQxSFk9IiwiTUlJQjhEQ0NBWmVnQXd\
JQkFnSUdBWEJoTUtZQk1Bb0dDQ3FHU000OUJBTUNNRnd4Q3pBSkJnTlZCQVlUQWtGUk1\
SSXdFQVlEVlFRS0RBbE5lVU52YlhCaGJua3hGVEFUQmdOVkJBc01ERTE1VTNWaWMybGt\
hV0Z5ZVRFUE1BMEdBMVVFQnd3R1RYbFRhWFJsTVJFd0R3WURWUVFEREFoTmVWTnBkR1Z\
EUVRBZUZ3MHlNREF5TWpBd05qQXlNak5hRncwek1EQXlNakF3TmpBeU1qTmFNRnd4Q3p\
BSkJnTlZCQVlUQWtGUk1SSXdFQVlEVlFRS0RBbE5lVU52YlhCaGJua3hGVEFUQmdOVkJ\
Bc01ERTE1VTNWaWMybGthV0Z5ZVRFUE1BMEdBMVVFQnd3R1RYbFRhWFJsTVJFd0R3WUR\
WUVFEREFoTmVWTnBkR1ZEUVRCWk1CTUdCeXFHU000OUFnRUdDQ3FHU000OUF3RUhBMEl\
BQkluQ3VoV1ZzZ2NONzFvWmVzMUZHXC9xZFZnTVBva01wZlMyNzFcL2V5SWNcL29EVmJ\
NRkhDYmV2SjVMTTgxOTVOYVpLTlNvSFAzS3dMeXVCaDh2MncwOVp1alJUQkRNQklHQTF\
VZEV3RUJcL3dRSU1BWUJBZjhDQVFFd0RnWURWUjBQQVFIXC9CQVFEQWdJRU1CMEdBMVV\
kRGdRV0JCUXp4endwUnBMeVwvck1VWXphaDJzMTNlVTlnRnpBS0JnZ3Foa2pPUFFRREF\
nTkhBREJFQWlCZGJIU212YW9qaDBpZWtaSUtOVzhRMGxTbGI1K0RLTlFcL05LY1I3dWx\
6dGdJZ2RwejZiUkYyREZtcGlKb3JCMkd5VmE4YVdkd2xIc0RvRVdZY0k0UEdKYmc9Il0\
sImFsZyI6IkVTMjU2In0",
    "signature":"67t3n8zyEek4IM2Ko3Y_UvE1hzp794QFNTqG-HzTrBQtE4_4-yS\
yyFd3kP6YCn35YYJ7yK35d3styo_yoiPfKA"
  }]
}
]]></artwork></figure>

</section>
<section anchor="example-voucher-response-from-masa-to-pledge-via-registrar-and-registrar-agent"><name>Example Voucher-Response (from MASA to Pledge, via Registrar and Registrar-agent)</name>

<t>The following is an example voucher-response from MASA to Pledge via Registrar and Registrar-agent, in "General JWS JSON Serialization". The message size of this Voucher is: 1916 bytes</t>

<figure title="Example Voucher-Response from MASA" anchor="ExampleVoucherResponsefigure"><artwork align="left"><![CDATA[
=============== NOTE: '\' line wrapping per RFC 8792 ================

{
  "payload":"eyJpZXRmLXZvdWNoZXI6dm91Y2hlciI6eyJhc3NlcnRpb24iOiJhZ2V\
udC1wcm94aW1pdHkiLCJzZXJpYWwtbnVtYmVyIjoiMDEyMzQ1Njc4OSIsIm5vbmNlIjo\
iTDNJSjZocHRIQ0lRb054YWFiOUhXQT09IiwiY3JlYXRlZC1vbiI6IjIwMjItMDQtMjZ\
UMDU6MTY6MjguNzI2WiIsInBpbm5lZC1kb21haW4tY2VydCI6Ik1JSUJwRENDQVVtZ0F\
3SUJBZ0lHQVcwZUx1SCtNQW9HQ0NxR1NNNDlCQU1DTURVeEV6QVJCZ05WQkFvTUNrMTV\
RblZ6YVc1bGMzTXhEVEFMQmdOVkJBY01CRk5wZEdVeER6QU5CZ05WQkFNTUJsUmxjM1J\
EUVRBZUZ3MHhPVEE1TVRFd01qTTNNekphRncweU9UQTVNVEV3TWpNM016SmFNRFV4RXp\
BUkJnTlZCQW9NQ2sxNVFuVnphVzVsYzNNeERUQUxCZ05WQkFjTUJGTnBkR1V4RHpBTkJ\
nTlZCQU1NQmxSbGMzUkRRVEJaTUJNR0J5cUdTTTQ5QWdFR0NDcUdTTTQ5QXdFSEEwSUF\
CT2t2a1RIdThRbFQzRkhKMVVhSTcrV3NIT2IwVVMzU0FMdEc1d3VLUURqaWV4MDYvU2N\
ZNVBKaWJ2Z0hUQitGL1FUamdlbEhHeTFZS3B3Y05NY3NTeWFqUlRCRE1CSUdBMVVkRXd\
FQi93UUlNQVlCQWY4Q0FRRXdEZ1lEVlIwUEFRSC9CQVFEQWdJRU1CMEdBMVVkRGdRV0J\
CVG9aSU16UWRzRC9qLytnWC83Y0JKdWNIL1htakFLQmdncWhrak9QUVFEQWdOSkFEQkd\
BaUVBdHhRMytJTEdCUEl0U2g0YjlXWGhYTnVocVNQNkgrYi9MQy9mVllEalE2b0NJUUR\
HMnVSQ0hsVnEzeWhCNThUWE1VYnpIOCtPbGhXVXZPbFJEM1ZFcURkY1F3PT0ifX0",
  "signatures":[{
    "protected":"eyJ4NWMiOlsiTUlJQmt6Q0NBVGlnQXdJQkFnSUdBV0ZCakNrWU1\
Bb0dDQ3FHU000OUJBTUNNRDB4Q3pBSkJnTlZCQVlUQWtGUk1SVXdFd1lEVlFRS0RBeEt\
hVzVuU21sdVowTnZjbkF4RnpBVkJnTlZCQU1NRGtwcGJtZEthVzVuVkdWemRFTkJNQjR\
YRFRFNE1ERXlPVEV3TlRJME1Gb1hEVEk0TURFeU9URXdOVEkwTUZvd1R6RUxNQWtHQTF\
VRUJoTUNRVkV4RlRBVEJnTlZCQW9NREVwcGJtZEthVzVuUTI5eWNERXBNQ2NHQTFVRUF\
3d2dTbWx1WjBwcGJtZERiM0p3SUZadmRXTm9aWElnVTJsbmJtbHVaeUJMWlhrd1dUQVR\
CZ2NxaGtqT1BRSUJCZ2dxaGtqT1BRTUJCd05DQUFTQzZiZUxBbWVxMVZ3NmlRclJzOFI\
wWlcrNGIxR1d5ZG1XczJHQU1GV3diaXRmMm5JWEgzT3FIS1Z1OHMyUnZpQkdOaXZPS0d\
CSEh0QmRpRkVaWnZiN294SXdFREFPQmdOVkhROEJBZjhFQkFNQ0I0QXdDZ1lJS29aSXp\
qMEVBd0lEU1FBd1JnSWhBSTRQWWJ4dHNzSFAyVkh4XC90elVvUVwvU3N5ZEwzMERRSU5\
FdGNOOW1DVFhQQWlFQXZJYjNvK0ZPM0JUbmNMRnNhSlpSQWtkN3pPdXNuXC9cL1pLT2F\
FS2JzVkRpVT0iXSwiYWxnIjoiRVMyNTYifQ",
    "signature":"0TB5lr-cs1jqka2vNbQm3bBYWfLJd8zdVKIoV53eo2YgSITnKKY\
TvHMUw0wx9wdyuNVjNoAgLysNIgEvlcltBw"
  }]
}
]]></artwork></figure>

</section>
<section anchor="example-voucher-response-masa-issued-voucher-with-additional-registrar-signature-from-masa-to-pledge-via-registrar-and-registrar-agent"><name>Example Voucher-Response, MASA issued Voucher with additional Registrar signature (from MASA to Pledge, via Registrar and Registrar-agent)</name>

<t>The following is an example voucher-response from MASA to Pledge via Registrar and Registrar-agent, in "General JWS JSON Serialization".
The message size of this Voucher is: 3006 bytes</t>

<figure title="Example Voucher-Response from MASA, with additional Registrar signature" anchor="ExampleVoucherResponseWithRegSignfigure"><artwork align="left"><![CDATA[
=============== NOTE: '\' line wrapping per RFC 8792 ================

{
  "payload":"eyJpZXRmLXZvdWNoZXI6dm91Y2hlciI6eyJhc3NlcnRpb24iOiJhZ2V\
udC1wcm94aW1pdHkiLCJzZXJpYWwtbnVtYmVyIjoiMDEyMzQ1Njc4OSIsIm5vbmNlIjo\
iUUJiSXMxNTJzbkFvVzdSeVFMWENvZz09IiwiY3JlYXRlZC1vbiI6IjIwMjItMDktMjl\
UMDM6Mzc6MjYuMzgyWiIsInBpbm5lZC1kb21haW4tY2VydCI6Ik1JSUJwRENDQVVtZ0F\
3SUJBZ0lHQVcwZUx1SCtNQW9HQ0NxR1NNNDlCQU1DTURVeEV6QVJCZ05WQkFvTUNrMTV\
RblZ6YVc1bGMzTXhEVEFMQmdOVkJBY01CRk5wZEdVeER6QU5CZ05WQkFNTUJsUmxjM1J\
EUVRBZUZ3MHhPVEE1TVRFd01qTTNNekphRncweU9UQTVNVEV3TWpNM016SmFNRFV4RXp\
BUkJnTlZCQW9NQ2sxNVFuVnphVzVsYzNNeERUQUxCZ05WQkFjTUJGTnBkR1V4RHpBTkJ\
nTlZCQU1NQmxSbGMzUkRRVEJaTUJNR0J5cUdTTTQ5QWdFR0NDcUdTTTQ5QXdFSEEwSUF\
CT2t2a1RIdThRbFQzRkhKMVVhSTcrV3NIT2IwVVMzU0FMdEc1d3VLUURqaWV4MDYvU2N\
ZNVBKaWJ2Z0hUQitGL1FUamdlbEhHeTFZS3B3Y05NY3NTeWFqUlRCRE1CSUdBMVVkRXd\
FQi93UUlNQVlCQWY4Q0FRRXdEZ1lEVlIwUEFRSC9CQVFEQWdJRU1CMEdBMVVkRGdRV0J\
CVG9aSU16UWRzRC9qLytnWC83Y0JKdWNIL1htakFLQmdncWhrak9QUVFEQWdOSkFEQkd\
BaUVBdHhRMytJTEdCUEl0U2g0YjlXWGhYTnVocVNQNkgrYi9MQy9mVllEalE2b0NJUUR\
HMnVSQ0hsVnEzeWhCNThUWE1VYnpIOCtPbGhXVXZPbFJEM1ZFcURkY1F3PT0ifX0",
  "signatures":[{
    "protected":"eyJ4NWMiOlsiTUlJQmt6Q0NBVGlnQXdJQkFnSUdBV0ZCakNrWU1\
Bb0dDQ3FHU000OUJBTUNNRDB4Q3pBSkJnTlZCQVlUQWtGUk1SVXdFd1lEVlFRS0RBeEt\
hVzVuU21sdVowTnZjbkF4RnpBVkJnTlZCQU1NRGtwcGJtZEthVzVuVkdWemRFTkJNQjR\
YRFRFNE1ERXlPVEV3TlRJME1Gb1hEVEk0TURFeU9URXdOVEkwTUZvd1R6RUxNQWtHQTF\
VRUJoTUNRVkV4RlRBVEJnTlZCQW9NREVwcGJtZEthVzVuUTI5eWNERXBNQ2NHQTFVRUF\
3d2dTbWx1WjBwcGJtZERiM0p3SUZadmRXTm9aWElnVTJsbmJtbHVaeUJMWlhrd1dUQVR\
CZ2NxaGtqT1BRSUJCZ2dxaGtqT1BRTUJCd05DQUFTQzZiZUxBbWVxMVZ3NmlRclJzOFI\
wWlcrNGIxR1d5ZG1XczJHQU1GV3diaXRmMm5JWEgzT3FIS1Z1OHMyUnZpQkdOaXZPS0d\
CSEh0QmRpRkVaWnZiN294SXdFREFPQmdOVkhROEJBZjhFQkFNQ0I0QXdDZ1lJS29aSXp\
qMEVBd0lEU1FBd1JnSWhBSTRQWWJ4dHNzSFAyVkh4XC90elVvUVwvU3N5ZEwzMERRSU5\
FdGNOOW1DVFhQQWlFQXZJYjNvK0ZPM0JUbmNMRnNhSlpSQWtkN3pPdXNuXC9cL1pLT2F\
FS2JzVkRpVT0iXSwidHlwIjoidm91Y2hlci1qd3MranNvbiIsImFsZyI6IkVTMjU2In0\
",
    "signature":"ShqW8uFRkuAXIzjAhB4bolMMndcY7GYq3Kbo94yvGtjCaxEX3Hp\
6QXZUTEJ_kulQ1G7DnaU4igDPdUGtcV9Lkw"},{
    "protected":"eyJ4NWMiOlsiTUlJQjRqQ0NBWWlnQXdJQkFnSUdBWFk3MmJiWk1\
Bb0dDQ3FHU000OUJBTUNNRFV4RXpBUkJnTlZCQW9NQ2sxNVFuVnphVzVsYzNNeERUQUx\
CZ05WQkFjTUJGTnBkR1V4RHpBTkJnTlZCQU1NQmxSbGMzUkRRVEFlRncweU1ERXlNRGN\
3TmpFNE1USmFGdzB6TURFeU1EY3dOakU0TVRKYU1ENHhFekFSQmdOVkJBb01DazE1UW5\
WemFXNWxjM014RFRBTEJnTlZCQWNNQkZOcGRHVXhHREFXQmdOVkJBTU1EMFJ2YldGcGJ\
sSmxaMmx6ZEhKaGNqQlpNQk1HQnlxR1NNNDlBZ0VHQ0NxR1NNNDlBd0VIQTBJQUJCazE\
2S1wvaTc5b1JrSzVZYmVQZzhVU1I4XC91czFkUFVpWkhNdG9rU2RxS1c1Zm5Xc0JkK3F\
STDdXUmZmZVdreWdlYm9KZklsbHVyY2kyNXduaGlPVkNHamV6QjVNQjBHQTFVZEpRUVd\
NQlFHQ0NzR0FRVUZCd01CQmdnckJnRUZCUWNESERBT0JnTlZIUThCQWY4RUJBTUNCNEF\
3U0FZRFZSMFJCRUV3UDRJZGNtVm5hWE4wY21GeUxYUmxjM1F1YzJsbGJXVnVjeTFpZEM\
1dVpYU0NIbkpsWjJsemRISmhjaTEwWlhOME5pNXphV1Z0Wlc1ekxXSjBMbTVsZERBS0J\
nZ3Foa2pPUFFRREFnTklBREJGQWlCeGxkQmhacTBFdjVKTDJQcldDdHlTNmhEWVcxeUN\
PXC9SYXVicEM3TWFJRGdJaEFMU0piZ0xuZ2hiYkFnMGRjV0ZVVm9cL2dHTjBcL2p3ekp\
aMFNsMmg0eElYazEiXSwidHlwIjoidm91Y2hlci1qd3MranNvbiIsImFsZyI6IkVTMjU\
2In0",
    "signature":"N4oXV48V6umsHMKkhdSSmJYFtVb6agjD32uXpIlGx6qVE7Dh0-b\
qhRRyjnxp80IV_Fy1RAOXIIzs3Q8CnMgBgg"
  }]
}
]]></artwork></figure>

</section>
</section>
<section anchor="pledgehttps"><name>HTTPS operations between Registrar-Agent and Pledge</name>

<t>The use of HTTPS between the Registrar-Agent and the 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 HTTPS is not mandated by this document for a number of reasons:</t>

<t><list style="numbers">
  <t>A certificate is generally required in order to do TLS.  While there are other modes of authentication including PSK, various EAP methods and raw public key, they do no help as there is no previous relationship between the Registrar-Agent.</t>
  <t>The pledge can use it's IDevID certificate to authenticate itself, but <xref target="RFC6125"/> DNS-ID methods do not apply as the pledge does not have a FQDN.  Instead a new mechanism is required, which authenticates the X520SerialNumber DN attribute which must be present in every IDevID.</t>
</list></t>

<t>If the Registrar-Agent has a preconfigured list of which serial numbers, 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 serial number.
The use of scannable QRcodes may help automate this in some cases.</t>

<t><list style="numbers">
  <t>The CA used to sign the IDevID will be a manufacturer private PKI as described in <xref section="4.1" sectionFormat="comma" target="I-D.irtf-t2trg-taxonomy-manufacturer-anchors"/>.
The anchors for this PKI will never be part of the public WebPKI anchors which are distributed with most smartphone operating systems.
A registrar-agent application will need to use different APIs in order to initiate an HTTPS connection without performing WebPKI verification.
The application will then have to do it's own certificate chain verification against a store of manufacturer trust anchors.
In the Android ecosystem this involved use of a customer TrustManager: many application developers do not create these correctly, and there is significant push to remove this option as it has repeatedly resulted in security failures. See <xref target="androidtrustfail"/></t>
  <t>The use of the Host: (or :authority in HTTP/2) is explained in <xref section="7.2" sectionFormat="comma" target="RFC9110"/>. This header is mandatory, and so a compliant HTTPS client is going to insert it.
But, the contents of this header will at best be an IP address that came from the discovery process.
The pledge <bcp14>MUST</bcp14> therefore ignore the Host: header when it processes requests, and the pledge <bcp14>MUST NOT</bcp14> do any kind of name-base virtual hosting using the IP address/port combination.
Note that there is no requirement for the pledge to operate it's BRSKI-PRM service on port 80 or port 443, so if there is no reason for name-based virtual hosting.</t>
  <t>Note that an Extended Key Usage (EKU) for TLS WWW Server authentication cannot be expected in the pledge's IDevID certificate.
IDevID certificates are intended to be widely useable and EKU does not support that use.</t>
</list></t>

</section>
<section anchor="app_history"><name>History of Changes [RFC Editor: please delete]</name>

<t>Proof of Concept Code available</t>

<t>From IETF draft 08 -&gt; IETF draft 09:</t>

<t><list style="symbols">
  <t>issue #80, enhanced <xref target="discovery_uc2_ppa"/> with clarification on the serial number and the inclusion of GRASP</t>
  <t>issue #81, enhanced introduction with motivation for agent_signed_data</t>
  <t>issue #82, included optional TLS protection of the communication link between registrar-agent and pledge in the introduction <xref target="req-sol"/>,  and <xref target="exchanges_uc2_1"/></t>
  <t>issue #83, enhanced <xref target="PER-response"/> and <xref target="exchanges_uc2_2_per"/> with note to re-enrollment</t>
  <t>issue #87, clarified available information at the registrar-agent in {#exchanges_uc2_1}</t>
  <t>issue #88, clarified, that the PVR in <xref target="pvrr"/> and PER in <xref target="PER-response"/> may contain the certificate chain. If not contained it <bcp14>MUST</bcp14> be available at the registrar.</t>
  <t>issue #91, clarified that a separate HTTP connection may also be used to provide the PER in <xref target="exchanges_uc2_2_per"/></t>
  <t>resolved remaining editorial issues discovered after WGLC (responded to on the mailing list in Reply 1 and Reply 2) resulting in more consistent descriptions</t>
  <t>issue #92: kept separate endpoint for wrapped CSR on registrar <xref target="exchanges_uc2_2_wca"/></t>
  <t>issue #94: clarified terminology (possess vs. obtained)</t>
  <t>issue #95: clarified optional IDevID CA certificates on registrar-agent <xref target="exchanges_uc2_3"/></t>
  <t>issue #96: updated <xref target="exchangesfig_uc2_3"/> to correct to just one CA certificate provisioning</t>
  <t>issue #97: deleted format explanation in <xref target="exchanges_uc2_3"/> as it may be misleading</t>
  <t>issue #99: motivated verification of second signature on voucher in <xref target="exchanges_uc2_3"/></t>
  <t>issue #100: included negative example in <xref target="vstat"/></t>
  <t>issue #101: included handling if <xref target="exchanges_uc2_3b"/> voucher telemetry information has not been received by the registrar-agent</t>
  <t>issue #102: relaxed requirements for CA certs provisioning in <xref target="exchanges_uc2_3c"/></t>
  <t>issue #105: included negative example in <xref target="estat"/></t>
  <t>issue #107: included example for certificate revocation in <xref target="exchanges_uc2_4"/></t>
  <t>issue #108: renamed heading to Pledge-Status Request of <xref target="exchanges_uc2_5a"/></t>
  <t>issue #111: included pledge-status response processing for authenticated requests in <xref target="exchanges_uc2_5b"/></t>
  <t>issue #112: added "Example key word in pledge-status response in <xref target="stat_res"/></t>
  <t>issue #113: enhanced description of status reply for "factory-default" in  <xref target="exchanges_uc2_5b"/></t>
  <t>issue #114: Consideration of optional TLS usage in Privacy Considerations</t>
  <t>issue #115: Consideration of optional TLS usage in Privacy Considerations to protect potentially privacy related information in the bootstrapping like status information, etc.</t>
  <t>issue #116: Enhanced DoS description and mitigation options in security consideration section</t>
  <t>updated references</t>
</list></t>

<t>From IETF draft 07 -&gt; IETF draft 08:</t>

<t><list style="symbols">
  <t>resolved editorial issues discovered after WGLC (still open issues remaining)</t>
  <t>resolved first comments from the Shepherd review as discussed in PR #85 on the ANIMA github</t>
</list></t>

<t>From IETF draft 06 -&gt; IETF draft 07:</t>

<t><list style="symbols">
  <t>WGLC resulted in a removal of the voucher enhancements completely from this document to RFC 8366bis, containing all enhancements and augmentations of the voucher, including the voucher-request as well as the tree diagrams</t>
  <t>smaller editorial corrections</t>
</list></t>

<t>From IETF draft 05 -&gt; IETF draft 06:</t>

<t><list style="symbols">
  <t>Update of list of reviewers</t>
  <t>Issue #67, shortened the pledge endpoints to prepare for constraint deployments</t>
  <t>Included table for new endpoints on the registrar in the overview of the registrar-agent</t>
  <t>addressed review comments from SECDIR early review (terminology clarifications, editorial improvements)</t>
  <t>addressed review comments from IOTDIR early review (terminology clarifications, editorial improvements)</t>
</list></t>

<t>From IETF draft 04 -&gt; IETF draft 05:</t>

<t><list style="symbols">
  <t>Restructured document to have a distinct section for the object flow and handling and shortened introduction, issue #72</t>
  <t>Added security considerations for using mDNS without a specific product-serial-number, issue #75</t>
  <t>Clarified pledge-status responses are cumulative, issue #73</t>
  <t>Removed agent-sign-cert from trigger data to save bandwidth and remove complexity through options, issue #70</t>
  <t>Changed terminology for LDevID(Reg) certificate to registrar LDevID certificate, as it does not need to be an LDevID, issue #66</t>
  <t>Added new protected header parameter (created-on) in PER to support freshness validation, issue #63</t>
  <t>Removed reference to CAB Forum as not needed for BRSKI-PRM specifically, issue #65</t>
  <t>Enhanced error codes in section 5.5.1, issue #39, #64</t>
  <t>Enhanced security considerations and privacy considerations, issue #59</t>
  <t>Issue #50 addressed by referring to the utilized enrollment protocol</t>
  <t>Issue #47 MASA verification of LDevID(RegAgt) to the same registrar LDevID certificate domain CA</t>
  <t>Reworked terminology of "enrollment object", "certification object", "enrollment request object", etc., issue #27</t>
  <t>Reworked all message representations to align with encoding</t>
  <t>Added explanation of MASA requiring domain CA cert in section 5.5.1 and section 5.5.2, issue #36</t>
  <t>Defined new endpoint for pledge bootstrapping status inquiry, issue #35 in section <xref target="exchanges_uc2_5"/>, IANA considerations and section <xref target="pledge_ep"/></t>
  <t>Included examples for several objects in section <xref target="examples"/> including message example sizes, issue #33</t>
  <t>PoP for private key to registrar certificate included as mandatory, issues #32 and #49</t>
  <t>Issue #31, clarified that combined pledge may act as client/server for further (re)enrollment</t>
  <t>Issue #42, clarified that Registrar needs to verify the status responses with and ensure that they match the audit log response from the MASA, otherwise it needs drop the pledge and revoke the certificate</t>
  <t>Issue #43, clarified that the pledge shall use the create time from the trigger message if the time has not been synchronized, yet.</t>
  <t>Several editorial changes and enhancements to increasing readability.</t>
</list></t>

<t>From IETF draft 03 -&gt; IETF draft 04:</t>

<t><list style="symbols">
  <t>In deep Review by Esko Dijk lead to issues #22-#61, which are bein stepwise integrated</t>
  <t>Simplified YANG definition by augmenting the voucher-request from RFC 8995 instead of redefining it.</t>
  <t>Added explanation for terminology "endpoint" used in this document, issue #16</t>
  <t>Added clarification that registrar-agent may collect PVR or PER or both in one run, issue #17</t>
  <t>Added a statement that nonceless voucher may be accepted, issue #18</t>
  <t>Simplified structure in section <xref target="sup-env"/>, issue #19</t>
  <t>Removed join proxy in <xref target="uc2figure"/> and added explanatory text, issue #20</t>
  <t>Added description of pledge-CAcerts endpoint plus further handling of providing a wrapped CA certs response to the pledge in section <xref target="exchanges_uc2_3"/>; also added new required registrar endpoint (section <xref target="exchanges_uc2_2"/> and IANA considerations) for the registrar to provide a wrapped CA certs response, issue #21</t>
  <t>utilized defined abbreviations in the document consistently, issue #22</t>
  <t>Reworked text on discovery according to issue #23 to clarify scope and handling</t>
  <t>Added several clarifications based on review comments</t>
</list></t>

<t>From IETF draft 02 -&gt; IETF draft 03:</t>

<t><list style="symbols">
  <t>Updated examples to state "base64encodedvalue==" for x5c occurrences</t>
  <t>Include link to SVG graphic as general overview</t>
  <t>Restructuring of section 5 to flatten hierarchy</t>
  <t>Enhanced requirements and motivation in <xref target="req-sol"/></t>
  <t>Several editorial improvements based on review comments</t>
</list></t>

<t>From IETF draft 01 -&gt; IETF draft 02:</t>

<t><list style="symbols">
  <t>Issue #15 included additional signature on voucher from registrar in section <xref target="exchanges_uc2_2"/> and section <xref target="agt_prx"/>
The verification of multiple signatures is described in section <xref target="exchanges_uc2_3"/></t>
  <t>Included representation for General JWS JSON Serialization for examples</t>
  <t>Included error responses from pledge if it is not able to create a pledge voucher-request or an enrollment request in section <xref target="exchanges_uc2_1"/></t>
  <t>Removed open issue regarding handling of multiple CSRs and enrollment responses during the bootstrapping as the initial target it the provisioning of a generic LDevID certificate. The defined endpoint on the pledge may also be used for management of further certificates.</t>
</list></t>

<t>From IETF draft 00 -&gt; IETF draft 01:</t>

<t><list style="symbols">
  <t>Issue #15 lead to the inclusion of an option for an additional signature of the registrar on the voucher received from the MASA before forwarding to the registrar-agent to support verification of POP of the registrars private key in section <xref target="exchanges_uc2_2"/> and <xref target="exchanges_uc2_3"/>.</t>
  <t>Based on issue #11, a new endpoint was defined for the registrar to enable delivery of the wrapped enrollment request from the pledge (in contrast to plain PKCS#10 in simple enroll).</t>
  <t>Decision on issue #8 to not provide an additional signature on the enrollment-response object by the registrar. As the enrollment response will only contain the generic LDevID certificate. This credential builds the base for further configuration outside the initial enrollment.</t>
  <t>Decision on issue #7 to not support multiple CSRs during the bootstrapping, as based on the generic LDevID certificate the pledge may enroll for further certificates.</t>
  <t>Closed open issue #5 regarding verification of ietf-ztp-types usage as verified
via a proof-of-concept in section {#exchanges_uc2_1}.</t>
  <t>Housekeeping: Removed already addressed open issues stated in the draft directly.</t>
  <t>Reworked text in from introduction to section pledge-responder-mode</t>
  <t>Fixed "serial-number" encoding in PVR/RVR</t>
  <t>Added prior-signed-voucher-request in the parameter description of the
registrar-voucher-request in <xref target="exchanges_uc2_2"/>.</t>
  <t>Note added in <xref target="exchanges_uc2_2"/> if sub-CAs are used, that the
corresponding information is to be provided to the MASA.</t>
  <t>Inclusion of limitation section (pledge sleeps and needs to be waked
up. Pledge is awake but registrar-agent is not available) (Issue #10).</t>
  <t>Assertion-type aligned with voucher in RFC8366bis, deleted related
open issues. (Issue #4)</t>
  <t>Included table for endpoints in <xref target="pledge_ep"/> for better readability.</t>
  <t>Included registrar authorization check for registrar-agent during
TLS handshake  in section <xref target="exchanges_uc2_2"/>. Also enhanced figure
<xref target="exchangesfig_uc2_2"/> with the authorization step on TLS level.</t>
  <t>Enhanced description of registrar authorization check for registrar-agent
based on the agent-signed-data in section <xref target="exchanges_uc2_2"/>. Also
enhanced figure <xref target="exchangesfig_uc2_2"/> with the authorization step
on pledge-voucher-request level.</t>
  <t>Changed agent-signed-cert to an array to allow for providing further
certificate information like the issuing CA cert for the LDevID(RegAgt)
certificate in case the registrar and the registrar-agent have different
issuing CAs in <xref target="exchangesfig_uc2_2"/> (issue #12).
This also required changes in the YANG module in <xref target="I-D.ietf-anima-rfc8366bis"/></t>
  <t>Addressed YANG warning (issue #1)</t>
  <t>Inclusion of examples for a trigger to create a pledge-voucher-request
and an enrollment-request.</t>
</list></t>

<t>From IETF draft-ietf-anima-brski-async-enroll-03 -&gt; IETF anima-brski-prm-00:</t>

<t><list style="symbols">
  <t>Moved UC2 related parts defining the pledge in responder mode from
draft-ietf-anima-brski-async-enroll-03 to this document
This required changes and adaptations in several sections to remove
the description and references to UC1.</t>
  <t>Addressed feedback for voucher-request enhancements from YANG doctor
early review in <xref target="voucher-request-prm-yang"/> as well as in the
security considerations (formerly named ietf-async-voucher-request).</t>
  <t>Renamed ietf-async-voucher-request to IETF-voucher-request-prm to
to allow better listing of voucher related extensions; aligned with
constraint voucher (#20)</t>
  <t>Utilized ietf-voucher-request-async instead of ietf-voucher-request
in voucher exchanges to utilize the enhanced voucher-request.</t>
  <t>Included changes from draft-ietf-netconf-sztp-csr-06 regarding the
YANG definition of csr-types into the enrollment request exchange.</t>
</list></t>

<t>From IETF draft 02 -&gt; IETF draft 03:</t>

<t><list style="symbols">
  <t>Housekeeping, deleted open issue regarding YANG voucher-request
in <xref target="exchanges_uc2_1"/> as voucher-request was
enhanced with additional leaf.</t>
  <t>Included open issues in YANG model in <xref target="architecture"/> regarding assertion
value agent-proximity and csr encapsulation using SZTP sub module).</t>
</list></t>

<t>From IETF draft 01 -&gt; IETF draft 02:</t>

<t><list style="symbols">
  <t>Defined call flow and objects for interactions in UC2. Object format
based on draft for JOSE signed voucher artifacts and aligned the
remaining objects with this approach in <xref target="exchanges_uc2"/>.</t>
  <t>Terminology change: issue #2 pledge-agent -&gt; registrar-agent to
better underline 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 agent signing certificate using SKID
in agent signed data (issue #37).</t>
  <t>Enhanced objects in exchanges between pledge and registrar-agent
to allow the registrar to verify agent-proximity to the pledge
(issue #1) in <xref target="exchanges_uc2"/>.</t>
  <t>Details on trust relationship between registrar-agent and
pledge (issue #5) included in <xref target="architecture"/>.</t>
  <t>Split of use case 2 call flow into sub sections in <xref target="exchanges_uc2"/>.</t>
</list></t>

<t>From IETF draft 00 -&gt; IETF draft 01:</t>

<t><list style="symbols">
  <t>Update of scope in <xref target="sup-env"/> to include in
which the pledge acts as a server. This is one main motivation
for use case 2.</t>
  <t>Rework of use case 2 in <xref target="architecture"/> to consider the
transport between the pledge and the pledge-agent. Addressed is
the TLS channel establishment between the pledge-agent and the
pledge as well as the endpoint definition on the pledge.</t>
  <t>First description of exchanged object types (needs more work)</t>
  <t>Clarification in discovery options for enrollment endpoints at
the domain registrar based on well-known endpoints do not
result in additional /.well-known URIs. Update of the illustrative example.
Note that the change to /brski for the voucher related endpoints
has been taken over in the BRSKI main document.</t>
  <t>Updated references.</t>
  <t>Included Thomas Werner as additional author for the document.</t>
</list></t>

<t>From individual version 03 -&gt; IETF draft 00:</t>

<t><list style="symbols">
  <t>Inclusion of discovery options of enrollment endpoints at
the domain registrar based on well-known endpoints in
new section as replacement of section 5.1.3
in the individual draft. This is intended to support both use
cases in the document. An illustrative example is provided.</t>
  <t>Missing details provided for the description and call flow in
pledge-agent use case <xref target="architecture"/>, e.g. to
accommodate distribution of CA certificates.</t>
  <t>Updated CMP example in to use lightweight CMP instead of CMP, as the draft already provides
the necessary /.well-known endpoints.</t>
  <t>Requirements discussion moved to separate section in
<xref target="req-sol"/>. Shortened description of proof
of identity binding and mapping to existing protocols.</t>
  <t>Removal of copied call flows for voucher exchange and registrar
discovery flow from <xref target="RFC8995"/> in UC1 to avoid doubling or text or
inconsistencies.</t>
  <t>Reworked abstract and introduction to be more crisp regarding
the targeted solution. Several structural changes in the document
to have a better distinction between requirements, use case
description, and solution description as separate sections.
History moved to appendix.</t>
</list></t>

<t>From individual version 02 -&gt; 03:</t>

<t><list style="symbols">
  <t>Update of terminology from self-contained to authenticated
self-contained object to be consistent in the wording and to
underline the protection of the object with an existing
credential. Note that the naming of this object may be discussed.
An alternative name may be attestation object.</t>
  <t>Simplification of the architecture approach for the initial use
case having an offsite PKI.</t>
  <t>Introduction of a new use case utilizing authenticated
self-contain objects to onboard a pledge using a commissioning
tool containing a pledge-agent. This requires additional changes
in the BRSKI call flow sequence and led to changes in the
introduction, the application example,and also in the
related BRSKI-PRM call flow.</t>
</list></t>

<t>From individual version 01 -&gt; 02:</t>

<t><list style="symbols">
  <t>Update of introduction text to clearly relate to the usage of
IDevID and LDevID.</t>
  <t>Update of description of architecture elements and
changes to BRSKI in <xref target="architecture"/>.</t>
  <t>Enhanced consideration of existing enrollment protocols in the
context of mapping the requirements to existing solutions in
<xref target="req-sol"/>.</t>
</list></t>

<t>From individual version 00 -&gt; 01:</t>

<t><list style="symbols">
  <t>Update of examples, specifically for building automation as
well as two new application use cases in <xref target="sup-env"/>.</t>
  <t>Deletion of asynchronous interaction with MASA to not
complicate the use case. Note that the voucher exchange can
already be handled in an asynchronous manner and is therefore
not considered further. This resulted in removal of the
alternative path the MASA in Figure 1 and the associated
description in <xref target="architecture"/>.</t>
  <t>Enhancement of description of architecture elements and
changes to BRSKI in <xref target="architecture"/>.</t>
  <t>Consideration of existing enrollment protocols in the context
of mapping the requirements to existing solutions in <xref target="req-sol"/>.</t>
  <t>New section starting with the
mapping to existing enrollment protocols by collecting
boundary conditions.</t>
</list></t>

</section>

    <section anchor="contributors" numbered="false" toc="include" removeInRFC="false">
        <name>Contributors</name>
    <contact initials="E." surname="Dijk" fullname="Esko Dijk">
      <organization>IoTconsultancy.nl</organization>
      <address>
        <email>esko.dijk@iotconsultancy.nl</email>
      </address>
    </contact>
    <contact initials="T." surname="Eckert" fullname="Toerless Eckert">
      <organization>Futurewei</organization>
      <address>
        <email>tte@cs.fau.de</email>
      </address>
    </contact>
    <contact initials="M." surname="Kovatsch" fullname="Matthias Kovatsch">
      <organization></organization>
      <address>
        <email>ietf@kovatsch.net</email>
      </address>
    </contact>
    </section>

  </back>

<!-- ##markdown-source:
H4sIAAAAAAAAA+y9+XYjx5U3+D+eIof6zhEpASiyNpXYdtsUi5Io18ImKWk8
Go86CSTJdAFIGJkgRVdVn3mN+W+eZR5lnmTuGnEjMhIAS6W2Peer44UAMmOP
u9/fHQwGvaZsJsV+9tXp2Z+Os9uyuc5OJsX4qsjKWXZa1PNqNi4W2ctqXGTb
9NDg5PTlTi+/uFgUN/IeftUbV6NZPoWmxov8shmURXM5yGflNB9cLOo35WC+
mA52v+zliyLfz17Pi0XelNWszvLZOHuZz/KrYlrMmt7t1X528Or45UH24ze9
cd5Agw93Hz7q1Q08+HM+qWbwTbNYFr1yvqC/6ubh7u6Xuw979fJiWtY1tHp+
N4enjo/Ovw7bW9f5KG/2s7oZ9+blfi/Lmmq0n316V9SfwodRNZ3no8Z/Ud9N
F8Vlbb6oFk34DQxxVjXlZVmM4ctZRU81i9I3ky+b62qx3xvAesOLZ8Ps60VZ
1PAcL+ZZU1xeFjP3bbWA+ZyVONw6O/gGvtGdkC+5h6KAHl43TTX4Nr+eDU7L
2VX2FCdRNnf72cvlrBxd05zG0Menz/a+ePQlz3E5axbwxDfFYprP7uCrYpqX
E1wUGsfwEsfxx5r7GsKawCPLRbmfXTfNvN5/8OD29nZofn6gMzsfZj8Wi1mx
cFM7v66mee2//UdNraFxDG5pHB8ytaNh9qLI/cSOJmXV6Fc0q8OyHlXZ2R2s
4tRO4xTG2pTwKa/rIvvCzeLHfDIp62IyKWZuKoffDp492n1sp3IG9/XvxWIC
pxi+nl/T3dj6/PFe9vhx9uyLZ9mXcDO2/EwnMKQ/jnAsND0Z/sshjSNfjOtq
5ibxEr8qJtlh9CvvEvRYTGAZs7PqsrmFa5X9WC3e1L6r6WjxOZKAP9b66HCU
2wXV9TQ/P+iNKphYebFszJWA1X1e/vWNX936TaXf0GCOq3N4r15OgEKM7oaz
iR9FAc8Ox/DsH2FHoocGegwrWMGirrOj0Zti0WirXy+b5aK4LUpzUJrij6N6
eJkvh+PCvf8yb5rrEg7yn6qbvKnp8MkLtABv5OvhrGh6N8VsWSBpuVpUy7lQ
JjzpSCgzfustffgjvjyEobzHp4EuLy/2+bHB7dWDiLD2ZhUc6qa8obZPvz58
8vDZrvz59IunD/2fj+TPL3Yf6QNfPNl7In8+232s3z579PSp/vl0b9f/6Z79
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
9VMICuc966evx39TuH9TuH9TuH9TuH9TuH9TuP9SCheN0j05tbOLFL9FHX0b
rA1yTW+l3j7fvMXyrPib+/uzYibPn2bj0+pT3L+bb1JdX0eh91H1vnUe5pve
3fFFLVaD4CDPOiOI5h6DcGxZ+zN5Tqei+nG4Dpy75dfhU+SoRch6j8n+l/94
91NrbOY3nsF3Lw3XVZKOnmlLN/mu4Za+5Wc9Cyno933LdzyLkpberbmXHcbS
upldjU79+9JQaWsMFDBxBPjHB7rQxRjFyiJRrNrjzgVxSNtWHFr4dmmrs+HC
xwriHaCgb8uthe/En4SqOWKzeASFndUt2GhVVzTJSyMVZvr5Zmdlh/Z94rSh
v7zmbp3WPAE8grV5AxSajad2X5vCJNGfzzeSRZfmlfe2v7q1na6cC09K4igs
d5PYiNTe1pHMgyWGop91Z6GgJQ8dhW5dHUYzJ/Mzn0XbhRulXtZ78JN0B7A4
elJyNGbRc6AC7BJjFGTgLCtWbz8pr+SjW8CNaaqUl/Kdr+QbcK+FOTLxb1pr
o9tQbaFero653zRLrRgYlAPvwHNXa1vaAA13nKGp+apRsKwb03qfJ4nqwjl4
JctRRH7btqrN2Jqt4LtzX9Y/34h0V6wjGON50tyOX96Nb8t7fu+y3M2NGTRN
9AXAlrhIDjNr1dfnNtv5rS0x15cFppSfVyk/v1APyTSLg5DulV2xB3uoTcM0
GsK4bSOLZZeFh4UDrXvCPFjejC1DWQfDUjT4fi0An3OEfOkLh2dfipcebEdX
zRWcHmMZwIPf3N7Hn3lnQdtFA10xdnr2VVjIqYe5/88ACfTlO1l8424zY3e/
s/vnbDfSH5I4sqxM85SCze+Dr6thR3qe5eNUPdx/Y/LHYSy8nwNjY9M8rtaH
/HdhzP5UjqL5aTIbj0+7zvT3wVr/2v/69WfDRRcxG8IgC136ZyPHdz8T8H03
vPzb7ci2n6y6lBbVcqkLb1+X8uRVdcsY7h9/KyujxUWRV+VX6gpFZXN1G5d1
TM7t8EqmZVvNtX9LXiiU15wKdmV5r2pA2YKqXi932Yebm6e6bExzlV6yOCJw
3C7KYkfV/XnP62ixTY8UylGxv7oEElXQWleFh6pb96jIDT16WcOyvPOwGlPV
An2X6tYsX4Lw2FTRqYLeVq1X3o83BNqqFlvL4FWtTpJk0xEqiFTVr2pVur76
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
9PlzAnWW+75LEk5SeOSM+ldz8fW36wWes6o/vkpvvKvoapO6qLO7ZXasfKHp
wf19MyNkVM0+lDrTRVEHKCH+9muZ04zeb9a/ccRFiEXjrxIjXyDbeM3jhiBd
RsHFvN+3xdo4HHp98Kl/q2y2z9ltcO5tSc7bCapq7snXnhulmW5842K75SBC
qwbLs6frfuh+EJtXOr13eO+u/d739JBnDyqvfvmrprVu74x3XaFl4vNjOcht
RQz5Gi8c4PK0uFhTrZeLz83cfSz3MV+HEGdd+PS1+K1uc0eZzR/pApSAnCyk
zOVPK/NXioa2f2kvJ3Pj/uXd7S/nVngXmp+3Hq7dTvNL4i6NdKSP7W+Sr6u3
UQP0ywW9M6fi2wXKTAk0Y1NFV6VetgM0dJfLpwwoSLzNCPm4X019iUqtn0hn
ZSDVHy6+8HRF26Nw5avc1SVrawgbff2siZ1u+7uv+CwlmMafjE9vqdj5pfKD
fy5yzn7HV/FKCYw7WjQiOsIlvrv+avkkArozTahlXoc9tIX9rMEdssunzVM5
4motjOKBC4y5WG6v+xVcpPcrTve3jsRH9be7lml0Xmd2ykR2A89lOifkBKZc
D/j7rswBU7++PG/5Qv2v28VvF7mz2makV+2ft6YQnHAN4xZVxqyvnEG5s4Xv
d9jxTTHNuma9pku7JeBxb2Ezt5fHDs7lGfl2gv2SL81X3422m/x6PwYFmsni
Oo/WGk7n1XBaLexisiRaveENVMtMy/YKR+2h6qkvU/flQxex/O64DuGY1gRL
726Pi4ICD6tSsRZJrFLbpYBadJUv1VAXuLvGn1EwB8gVxw9v0JDONQ254zRk
TKtnixwzxjkPkFPeJZvb4XKV3FKahX+kUi5Jev+3e/Fdaz2UCnJiOhd5KfZ1
sfhKSbKIxrGkdSYuQ++ToeIrX/j6JUxlfqxZ9veIdFnvlGh7r0e2Xe5z4Ey3
bIeSFVxcryGK86QWwv5Sw8ovZaaSk9NWhNAYo3h2xZcZeq4D11m0MicLPg+z
oVwuvkoeGX/MoYh83XYNqH0+O2HxY9N+wG2gXCXira9pBSLl3rsKcapsVxDS
ygTpR93K75fCbVjkJRiBFrxfrF8I+uoXey0OsNoseQHWw7HMLQAny30aVSY6
uBArrbEUi8NZVJLQDOUq51DxvcGnMr3UQHqewuJrJGkoK73As8acv57TqXV2
qjH1yuGelxO+B/ad//iP/15mpoOGVDW7ks6Q2vTr1+81JFWSeMNx/NZw8XOD
rfz3D8ZxFqBIGYCakkSVEwzmc4o9giaNwBdM69jgnKxukTBJumQWB0rGthZZ
oT+bbZ0gq9/p8Bwu1/HjLZ7MFxeRRCtGKLHoMvi5LRcbeWb5IpR6A3Wka9Tp
tELYlnMlIksWcfsLNX5/x0nIIgKVfV78j//xCxf4oRvebkKwxSpb0jjpchkK
TVhMvQUA5cAncmXVvrQmDr2Iuir1a6gJL5ic0iab9W28xHvbMD62iepFDpVn
fs4LbMuL5aw3UbwdJv4zEhSvJSiVuF0ZdbfFCM5bQ99MdXNQvQjS/0r3z78P
vhZ/5tsDxnbLty9c8+OMFlZKflOfiqGV6ov9PD8w2Zs247qkp3zqf3xKkD9S
q9JFU2VQciYaXAQ1iHwhnlBtheSZDTKK0qEH9UPXjolSv+vbNzj4D8YnluOr
ofecg6PJqDZ7thGxkeXAMmuv3/pePZao1OHXqc0q+1TuFkpvi2D7dUG7OaqC
1K18P99kw60EBvM6eil3qtTg1EDm5mKL66uVQJqMjG/VKSOaLw3stxem3qIo
wrWqi1eqXhOSVyvjzS7iMjm//o4tXKWh6pHUBtKsrVwQSwyM70Wpyo63Qspr
StCKxq/t42ny9OrzuwvG/xPm+IbhfCAB9Ws0aZLW76o9oc2c7fnmunIi33Re
i3LfX7RIl9xvVJ2tPdkbGt8IqVKEXzECSq5ugx0XBd+xdPv0MLD+Jgp8eEse
AZVN/cZ7PlyEy121CaJeL6d3ySQbd/q92Swn79yz83nkKkV2vUT24fbT7uqd
M8PgG5n45s/2SvuPjQPgERIjLXeUzp+XaVR+gO8rasdO9T7YSiGei129Ul6b
6blP35PMx1oytZJdAsX38IDnoxqH8+NBXRt22anLkVwaMeX6NrtLWPtbt4Vs
15awXBRf3p+K/H1xzIFi5XoPelg+h9Dhlh8dp93Dm82X9/hfWO3OaVvIqw0X
vCujDRAoQTiDD/9xTiOmFBodW/mh9jIIpx3NVqYSeKJluV/ww80rclXurc0u
t7LwjcnlXyv+W+9R2L6n7e3UjLKkhdhfLpKmvzTJFp7QY+bfTWbeNPQL8LDZ
vi+37Ly/9kT13qsmP3hFxPFLiPIMUW+8/wbO8BHzHWMlfX77KfKdu+c5WH6Z
yCXcP29twWf5ugaXQDm21mLcrkqF5s0Bj00DtR8a510De7rMlsXl2tmvdSSe
YqJL/9gkGWgjWZBwJXrOP9RHT+j2Avox34L/avtORQDqPTK/3f5aOxyhBKlP
O9oOiU9zlS1TZfX+39Y2AoSrzSJTvcWhWo5Ed1oq96H5wt1vF2zlvL5yXltZ
XqWm+K/ni6Lg/qod8V8wqObehXJDacWT0NUw4S1cS6EEDyJ3jxYnI7uYBPYX
XgmASp6/WX8uQ8ib27d2jkj1TqyiOvpy7hYlEAib6NspbeXlo5G/s6r9Tw8O
/bmAv/OyAsyKLyP8zCjRytU4/xOjJEVoMOLaIs9Dr1ckLnrK06uUqoU/3G6D
Y5m2pVWgMnlYh9EVUJMVXuQNzzbI176574Ea0it18rZmBpfZ7lct8W3/VxTi
OyedytWsZk87mjp/83q7RFuGv9ZURoIN3paulrPMJpavs2IVDvIcE7D2ud6G
wo8OkK8J1ssseL/9ElbWWbLxT40z4G+C2XFG3Hz3t1dQdJEIDpos3+ug4Xpi
b8rdjRdxQ/271zT4favT8+0uWb4PKE9Y7Vp838rjtZ/Jt9l7QeB0WedOzxlI
zWYIOuFQ0b+aIZwTKY2n4gexuHNDh3+yKxy7W7m0eqpezVKZUwry4pzbqJML
leXtzrvv0Qr3xVc7Lc4bJehRZyB+uJzIL/AC86DCgGvjukiccg9eZiU3tCGG
bLu98lvu6rpsgYv4iNGU+9Hqdf5S/dDA99axfiW74wcPy/1KpUy5HK++8FtF
N/7qORo9KcD1z6mH+B1Jr0aGylGky3JnO7T4HOukVQamWKxJxXf//cKzcSfe
bAio3/r1b5LALcOpU1e8m9cd4d1up23feuqGe5dmR0eNAvwcTNl6xdUr0L16
/dLj1S/zmW0p73pREPV+vyPGGe6274X7FjctZ+46PY3+0pMlP8XoN69jhkqn
qj6/Fct+J/HVZqhnmvBmSoB3602ZvZFg4Az6Sk0Q87Wd1vXxYQTTXy6F2KbF
+EwNqYu0/ChlxJa0Ol2mic89DWqCRNydMnaV46L8MvG3IzdfyJTobpDvnsuT
l9U2A8u3n4hNVuj921vS/E4SrF48pHXp84aIenGOYICWJLZB2IAOYPHD7aTa
QcEdYpsdlI3Te9rEkm9Lx3s++Us+MAjrfUKVsdQ8u97FXH+9YgHkt3IIIgjj
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
ZrN1ibPzDZwe0UE62b+s3Pj/C4hKu1HumQIA

-->

</rfc>

