<?xml version="1.0" encoding="UTF-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc2629 version 1.6.2 (Ruby 2.7.4) -->


<!DOCTYPE rfc  [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">

]>

<?rfc compact="yes"?>
<?rfc iprnotified="no"?>
<?rfc strict="yes"?>

<rfc ipr="trust200902" docName="draft-ietf-anima-brski-prm-02" category="std" consensus="true" 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="2022"/>

    <area>Operations and Management</area>
    <workgroup>ANIMA WG</workgroup>
    

    <abstract>


<t>This document defines enhancements to bootstrapping a remote secure key infrastructure (BRSKI, <xref target="RFC8995"/>) to facilitate bootstrapping in domains featuring no or only timely limited connectivity between a pledge and the domain registrar.
It specifically targets situations, in which the interaction model changes from a pledge-initiator-mode, as used in BRSKI, to a pledge-responder-mode as described in this document.
To support both, BRSKI-PRM introduces a new registrar-agent component, which facilitates the communication between pledge and registrar during the bootstrapping phase.
For the establishment of a trust relation between pledge and domain registrar, BRSKI-PRM relies on the exchange of authenticated self-contained objects (signature-wrapped objects).
The defined approach is agnostic regarding the utilized enrollment protocol, deployed by the domain registrar to communicate with the Domain CA.</t>



    </abstract>



  </front>

  <middle>


<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 network elements in the target domain, time synchronization, and the exchange of security information necessary to establish trust between a pledge and the domain.
Security information about the target domain, specifically the target domain certificate, is exchanged utilizing voucher objects as defined in <xref target="RFC8366"/>.
These vouchers are signed objects, provided via the domain registrar to the pledge and originate from a Manufacturer's Authorized Signing Authority (MASA).</t>

<t>BRSKI addresses scenarios in which the pledge acts as client for the bootstrapping and is the initiator of the bootstrapping (this document refers to the approach as pledge-initiator-mode).
In industrial environments the pledge may behave as a server and thus does not initiate the bootstrapping with the domain registrar.
In this scenarios it is expected that the pledge will be triggered to generate request objects to be bootstrapped in the registrar's domain (this document refers to the approach as pledge-responder-mode).
For this, an additional component is introduced acting as an agent for the domain registrar (registrar-agent) towards the pledge.
This may be a functionality of a commissioning tool or it may be even co-located with the registrar.
In contrast to BRSKI the registrar-agent performs the object exchange with the pledge and provides/retrieves data objects to/from the domain registrar.
For the interaction with the domain registrar the registrar-agent will use existing BRSKI <xref target="RFC8995"/> endpoints.</t>

<t>The goal is to enhance BRSKI to support pledges in responder mode.
This is addressed by</t>

<t><list style="symbols">
  <t>introducing the registrar-agent as new component to facilitate the communication between the pledge and the registrar, when the pledge is in responder mode (acting as server).</t>
  <t>handling the security on application layer only to enable application of arbitrary transport means between the pledge and the domain registrar, by keeping the registrar-agent in the communication path.
Examples may be connectivity via IP based networks (wired or wireless) but also connectivity via Bluetooth or NFC between the pledge and the registrar-agent.</t>
  <t>allowing to utilize credentials different from the pledge's IDevID to establish a TLS connection to the domain registrar, which is necessary in case of using a registrar-agent.</t>
  <t>defining the interaction (data exchange and data objects) between a pledge acting as server and a registrar-agent and the domain registrar.</t>
</list></t>

<t>For the enrollment of devices BRSKI relies on EST <xref target="RFC7030"/> to request and distribute target domain specific device certificates.
EST in turn relies on a binding of the certification request to an underlying TLS connection between the EST client and the EST server.
According to BRSKI the domain registrar acts as EST server and is also acting as registration authority (RA) for its domain.
To utilize the EST server endpoints on the domain-registrar, the registrar-agent defined in this document will act as client towards the domain registrar.
The registrar-agent will also act as client when communicating with the pledge in responder mode. 
Here, TLS with server-side, certificate-based authentication is not directly applicable, as the pledge only possesses an IDevID certificate, which does not contain a subject alternative name (SAN) for the target domain and does also not contain a TLS server flag. 
This is one reason for relying on higher layer security by using signature wrapped objects for the exchange between the pledge and the registrar agent. 
A further reason is the application on different transports, for which TLS may not be available, like Bluetooth or NFC.
As the described solution will rely on additional wrapping signature it will require pre-processing specifically for EST, as it currently uses PKCS#10 requests only.</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>

<t>This document relies on the terminology defined in <xref target="RFC8995"/>.
The following terms are defined additionally:</t>

<dl>
  <dt>asynchronous communication:</dt>
  <dd>
    <t>Describes a timely interrupted communication between an end entity and a PKI component.</t>
  </dd>
  <dt>authenticated self-contained object:</dt>
  <dd>
    <t>Describes an object, which is cryptographically bound to the EE certificate (IDevID certificate or LDEVID certificate) of a pledge.
The binding is assumed to be provided through a digital signature of the actual object using the corresponding private key of the EE certificate.</t>
  </dd>
  <dt>CA:</dt>
  <dd>
    <t>Certification authority, issues certificates.</t>
  </dd>
  <dt>EE:</dt>
  <dd>
    <t>End entity</t>
  </dd>
  <dt>on-site:</dt>
  <dd>
    <t>Describes a component or service or functionality available in the target deployment domain.</t>
  </dd>
  <dt>off-site:</dt>
  <dd>
    <t>Describes a component or service or functionality available in an operator domain different from
the target deployment domain.
This may be a central site or a cloud service, to which only a temporary connection is available, or which is in a different administrative domain.</t>
  </dd>
  <dt>PER:</dt>
  <dd>
    <t>Pledge-enrollment-request</t>
  </dd>
  <dt>POP:</dt>
  <dd>
    <t>Prove of possession (of a private key)</t>
  </dd>
  <dt>POI:</dt>
  <dd>
    <t>Prove of identity</t>
  </dd>
  <dt>PVR:</dt>
  <dd>
    <t>Pledge-voucher-request</t>
  </dd>
  <dt>IED:</dt>
  <dd>
    <t>Intelligent Electronic Device (in essence a 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.</t>
  </dd>
  <dt>RER:</dt>
  <dd>
    <t>Registrar-enrollment-request</t>
  </dd>
  <dt>RVR:</dt>
  <dd>
    <t>Registrar-voucher-request</t>
  </dd>
  <dt>synchronous communication:</dt>
  <dd>
    <t>Describes a timely uninterrupted communication between an end entity and a PKI component.</t>
  </dd>
</dl>

</section>
<section anchor="scope-of-solution"><name>Scope of Solution</name>

<section anchor="sup-env"><name>Supported Environment</name>

<t>The described solution is applicable in domains in which pledges have no direct connection to the domain registrar, but are expected to be managed by this registrar.
This can be motivated by pledges featuring a different technology stack or by pledges without an existing connection to the domain registrar during bootstrapping.
These pledges are likely to act in a server role.
Therefore, the pledge has to offer endpoints on which it can be triggered for the generation of pledge-voucher-request objects and certification objects as well as to provide the response objects to the pledge.</t>

</section>
<section anchor="app-examples"><name>Application Examples</name>

<t>The following examples are intended to motivate the support of additional bootstrapping approaches in general by introducing industrial applications cases, which could leverage BRSKI as such but also require support a pledge acting as server and only answers requests as well as scenarios with limited connectivity to the registrar.</t>

<section anchor="building-automation"><name>Building Automation</name>

<t>In building automation, a use case can be described by a detached building (or a cabinet) or the basement of a building equipped with sensor, actuators, and controllers connected, but with only limited or no connection to the centralized building management system.
This limited connectivity may be during the installation time but also during operation time.
During the installation in the basement, a service technician collects the device specific information from the basement network and provides them to the central building management system, e.g., using a laptop or a mobile device to transport the information.
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.
This operational parameters may comprise values and settings required in the operational phase of the sensors/actuators, beyond 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.</t>

</section>
<section anchor="infrastructure-isolation-policy"><name>Infrastructure Isolation Policy</name>

<t>This refers to any case in which 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 impossible 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 implicates higher operational security than other components utilizing the issued certificates .
CAs may also demand higher security in the registration procedures. Especially the CA/Browser forum currently increases the security requirements in the certificate issuance procedures for publicly trusted certificates.
There may be the situation in which the target domain does not offer enough 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 mechanisms in this draft presume the availability of the pledge to communicate with the registrar-agent.<br />
This may not be possible in constrained environments where, in particular, power must be conserved.<br />
In these situations, it is anticipated that the transceiver will be powered down most of the time.<br />
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.</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"/> and the motivated application examples described in <xref target="app-examples"/> the following base requirements are derived to support the communication between a pledge and a registrar via a registrar-agent.</t>

<t>At least the following properties are required by the voucher handling and the enrollment:</t>

<t><list style="symbols">
  <t>Proof of Possession (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 using the private key.</t>
  <t>Proof of Identity (POI): provides data-origin authentication of a data object, e.g., a certificate request, utilizing an existing IDevID.
Certificate updates may utilize the certificate that is to be updated.</t>
</list></t>

<t>Solution examples based on existing technology are provided with the focus on existing IETF documents:</t>

<t><list style="symbols">
  <t>Voucher request and response objects as used in <xref target="RFC8995"/> already provide both, POP and POI, through a digital signature to protect the integrity of the voucher object, while the corresponding signing certificate contains the identity of the signer.</t>
  <t>Certification request objects: Certification requests are data structures containing the information from a requester for a CA to create a certificate. 
The certification request format in BRSKI utilizes PKCS#10 <xref target="RFC2986"/>.
Here, the structure is signed to ensure integrity protection and proof of possession of the private key of the requester that corresponds to the contained public key.
In the application examples, this POP alone is not sufficient. POI is also required for the certification request object and therefore needs to be additionally bound to the existing credential of the pledge (IDevID).
This binding supports the authorization decision for the certification request through a proof of identity (POI).
The binding of data origin authentication or POI to the certification request may be delegated to the protocol used for certificate management or it may be provided directly by the certification request object.
While BRSKI uses the binding to TLS, BRSKI-PRM aims at an additional signature of the PCKS#10 object using the existing credential on the pledge (IDevID). This supports independence from the selected transport.</t>
</list></t>

</section>
<section anchor="architecture"><name>Architectural Overview and Communication Exchanges</name>

<t>For BRSKI with pledge in responder mode, the base system architecture defined in BRSKI <xref target="RFC8995"/> is enhanced to facilitate the new use case.
The pledge-responder-mode allows delegated bootstrapping using a registrar-agent instead of a direct connection between the pledge and the domain registrar.
The communication model between registrar-agent and pledge in this document assumes that the pledge is acting as server and responds to requests.</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.</t>

<t>For the authenticated self-contained objects used for the certification request, BRSKI-PRM relies on the defined message wrapping mechanisms of the enrollment protocols stated in <xref target="req-sol"/> above.</t>

<t>The security used within the document for bootstrapping objects produced or consumed by the pledge bases on JOSE. In constraint environments it may provided based on COSE.</t>

<section anchor="uc2"><name>Pledge-responder-mode (PRM): Registrar-agent Communication with Pledges</name>

<t>To support mutual trust establishment of pledges, not directly connected to the domain registrar, this document relies on the exchange of authenticated self-contained objects (the voucher request/response objects as known from BRSKI and the enrollment request/response objects as introduced by BRSKI-PRM) with the help of a registrar-agent.
This allows independence from protection provided by the utilized transport protocol.</t>

<t>The registrar-agent may be an integrated functionality of a commissioning tool or be co-located with the registrar itself.
This leads to enhancements of the logical elements in the BRSKI architecture as shown in <xref target="uc2figure"/>.
The registrar-agent interacts with the pledge to acquire and to supply the required data objects for bootstrapping, which are also exchanged between the registrar-agent and the domain registrar.
Moreover, 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"/>.
A general goal for the registrar-agent application is the reuse of already defined endpoints of the domain registrar side.
The functionality of the already existing registrar endpoints may need small enhancements to cope with the additional signatures.</t>

<figure title="Architecture overview using registrar-agent" anchor="uc2figure"><artwork align="left"><![CDATA[
                                          +------------------------+
   +--------------Drop Ship---------------| Vendor Service         |
   |                                      +------------------------+
   |                                      | M anufacturer|         |
   |                                      | A uthorized  |Ownership|
   |                                      | S igning     |Tracker  |
   |                                      | A uthority   |         |
   |                                      +--------------+---------+
   |                                                     ^
   |                                                     |  BRSKI-
   V    BRSKI-PRM                                        |   MASA
+-------+     +---------+   .............................|.........
|       |     |         |   .                            |        .
|       |     |         |   .  +-----------+       +-----v-----+  .
|       |     |Registrar|   .  |           |       |           |  .
|Pledge |     |Agent    |   .  |   Join    |       | Domain    |  .
|       |     |         |   .  |   Proxy   |       | Registrar |  .
|       <----->.........<------>...........<-------> (PKI RA)  |  .
|       |     |         |   .  |           |       |           |  .
|       |     |         |   .  |           |       +-----+-----+  .
|IDevID |     | LDevID  |   .  +-----------+             |        .
|       |     |         |   .         +------------------+-----+  .
+-------+     +---------+   .         | Key Infrastructure     |  .
                            .         | (e.g., PKI Certificate |  .
                            .         |       Authority)       |  .
                            .         +------------------------+  .
                            .......................................
                                      "Domain" components
]]></artwork></figure>

<t>For authentication towards the domain registrar, the registrar-agent uses its LDevID.
The provisioning of the registrar-agent LDevID may be done by a separate BRSKI run or other means in advance.
It is recommended to use short lived registrar-agent LDevIDs in the range of days or weeks.</t>

<t>If a registrar detects a request 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 LDeID(RegAgt) certificate. 
Alternatively, the domain may feature an own issuing CA for registrar agent LDevID certificates.</t>

<t>In addition, the domain registrar may authenticate the user operating the registrar-agent to perform additional authorization of a pledge bootstrapping action.
Examples for such user level authentication may be HTTP authentication or the usage of authorization tokens or other.
This is out of scope of this document.</t>

<t>The following list describes the components in a (customer) site domain:</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 transport protocol used between the pledge and the registrar-agent is assumed to be HTTP in the context of this document.
Other transport protocols may be used like CoAP, Bluetooth, or NFC, but are out of scope of this document.
A pledge acting as a server during bootstrapping leads to some differences to BRSKI:  <list style="symbols">
      <t>Discovery of the domain registrar by the pledge is not needed as the pledge will be triggered by the registrar-agent.</t>
      <t>Discovery of the pledge by the registrar-agent must be possible.</t>
      <t>As the registrar-agent must be able to request data objects for bootstrapping of the pledge, the pledge must offer corresponding endpoints.</t>
      <t>The registrar-agent may provide additional data to the pledge, in the context of the triggering request, to make itself visible to the domain registrar.</t>
      <t>Order of exchanges in the call flow may be different as the registrar-agent collects both objects, pledge-voucher-request objects and pledge-enrollment-request objects, at once and provides them to the registrar.
This approach may also be used to perform a 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 communication path to exchange data objects between the pledge and the domain registrar.
The registrar-agent facilitates situations, in which the domain registrar is not directly reachable by the pledge, either due to a different technology stack or due to missing connectivity.
The registrar-agent triggers a pledge to create bootstrapping information such as voucher-request objects and enrollment-request objects on one or multiple pledges at performs may perform a bulk bootstrapping based on the collected data.
The registrar-agent is expected to possess information of the domain registrar, 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 applied, 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 bases 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 session establishment.</t>
  <t>Join Proxy: same functionality as described in <xref target="RFC8995"/>.
Note that it may be used by the registrar-agent instead of the pledge to find the registrar, if not configured.</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.
The registrar detects if the bootstrapping is performed by the pledge directly or by the  registrar-agent.
The manufacturer provided components/services (MASA and Ownership tracker) are used as defined in <xref target="RFC8995"/>.
For issuing a voucher, the MASA may perform additional checks on voucher-request objects, to issue a voucher indicating agent-proximity instead of (registrar-)proximity.</t>
</list></t>

<section anchor="agt_prx"><name>Agent-Proximity</name>

<t>"Agent-proximity" is a weaker assertion then "proximity".
It is defined as additional assertion type in <xref target="I-D.richardson-anima-rfc8366bis"/>
In case of "agent-proximity" it is a statement, that the proximity-registrar-certificate was provided via the registrar-agent and not directly to the pledge.
This can be verified by the registrar and also by the MASA during the voucher-request processing.
Note that at the time of creating the voucher-request, the pledge cannot verify the registrar's LDevID(Reg) EE certificate and has no proof-of-possession of the corresponding private key for the certificate.</t>

<t>Trust handover to the domain is established via the "pinned-domain-certificate" in the voucher.</t>

<t>In contrast, "proximity" provides a statement, that the pledge was in direct contact with the registrar and was able to verify proof-of-possession of the private key in the context of the TLS handshake.
The provisionally accepted LDevID(Reg) EE certificate can be verified after the voucher has been processed by the pledge through a verification of an additional signature of the returned voucher by the registrar if contained (optional feature).</t>

</section>
<section anchor="pledge_ep"><name>Behavior of Pledge in Pledge-Responder-Mode</name>

<t>In contrast to BRSKI the pledge acts as a server component.
It is triggered by the registrar-agent for the generation of pledge-voucher-request and pledge-enrollment-request objects as well as for the processing of the response objects and the generation of status information.
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 with the registrar-agent, the pledge provides endpoints using the BRSKI interface based on the "/.well-known/brski" URI tree.</t>

<t>The following endpoints are defined for the <em>pledge</em> in this document. 
The URI path begins with "http://www.example.com/.well-known/brski" followed by a path-suffix that indicates the intended operation.</t>

<figure title="Endpoints on the pledge" anchor="eppfigure"><artwork align="left"><![CDATA[
Operations and their corresponding URIs:
+------------------------+----------------------------+---------+
| Operation              |Operation path              | Details |
+========================+============================+=========+
| Trigger pledge-voucher-| /pledge-voucher-request    | Section |
| request creation       |                            | 5.1.4.1 |
| Returns                |                            |         |
| pledge-voucher-request |                            |         |
++------------------------+----------------------------+---------+
| Trigger pledge-        | /pledge-enrollment-request | Section |
| enrollment-request     |                            | 5.1.4.1 |
| Returns pledge-        |                            |         |
| enrollment-request     |                            |         |
+------------------------+----------------------------+---------+
| Provide voucher to     | /pledge-voucher            | Section |
| pledge                 |                            | 5.1.4.3 |
| Returns                |                            |         |
| pledge-voucher-status  |                            |         |
+------------------------+----------------------------+---------+
| Provide enrollment     | /pledge-enrollment         | Section |
| response to pledge     |                            | 5.1.4.3 |
| Returns pledge-        |                            |         |
| enrollment-status      |                            |         |
+------------------------+----------------------------+---------+
| Provide CA certs to    | /pledge-CACerts            |         |
| pledge (OPTIONAL)      |                            |         |
+------------------------+----------------------------+---------+
]]></artwork></figure>

</section>
<section anchor="behavior-of-registrar-agent"><name>Behavior of Registrar-Agent</name>

<t>The registrar-agent is a new component in the BRSKI context.
It provides connectivity between the pledge and the domain registrar and reuses the endpoints of the domain registrar side already specified in <xref target="RFC8995"/>.
It facilitates the exchange of data objects between the pledge and the domain registrar, which are the voucher request/response objects, the enrollment request/response objects, as well as related status objects.
For the communication 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.
This new component changes the general interaction between the pledge and the domain registrar as shown in <xref target="exchangesfig_uc2_2"/>.</t>

<t>The registrar-agent is expected to already possess an LDevID(RegAgt) to authenticate towards the domain registrar.
The registrar-agent will use this LDevID(RegAgt) when establishing the TLS session with the domain registrar in the context of for TLS client-side authentication.
The LDevID(RegAgt) EE certificate <bcp14>MUST</bcp14> include a SubjectKeyIdentifier (SKID), which is used as reference in the context of an agent-signed-data object as defined in <xref target="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.
In BRSKI-PRM, the SKID is used in favor of a certificate fingerprint to avoid additional computations.</t>

<t>Using an LDevID for TLS client-side authentication 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 adopt the internal handling accordingly.
As BRSKI-PRM uses authenticated self-contained data objects between the pledge and the domain registrar, the binding of the pledge identity to the request object 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-numbers of the pledges to be bootstrapped.
This is necessary to allow the discovery of pledges by the registrar-agent using mDNS.
The list may be provided by administrative means or the registrar agent may get the information via an interaction with the pledge, like scanning of product-serial-number information using a QR code or similar.</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.</t>

<t>The following information must therefore be available at the registrar-agent:</t>

<t><list style="symbols">
  <t>LDevID(RegAgt): own operational key pair.</t>
  <t>LDevID(reg) certificate: certificate of the domain registrar.</t>
  <t>Serial-number(s): product-serial-number(s) of pledge(s) to be bootstrapped.</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"/> 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 at “product-serial-number.brski-pledge._tcp.local.”
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."
It can then be discovered by the registrar-agent via mDNS. Note that other mechanisms for discovery may be used.</t>

<t>The registrar-agent is able to build the same information based on the provided list of product-serial-number.</t>

</section>
</section>
<section anchor="exchanges_uc2"><name>Bootstrapping 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).
For this document the usage of HTTP is targeted as in BRSKI.
Alternatives may be CoAP, Bluetooth Low Energy (BLE), or Nearfield Communication (NFC).
This requires independence of the exchanged data objects between the pledge and the registrar from transport security.
Therefore, authenticated self-contained objects (here: signature-wrapped objects) are applied in the data exchange between the pledge and the registrar.</t>

<t>The registrar-agent provides the domain-registrar certificate (LDevID(Reg) EE certificate) to the pledge to be included into the "agent-provided-proximity-registrar-certificate" leaf of the pledge-voucher-request object.
This enables the registrar to verify, that it is the target registrar for handling the request.
The registrar certificate may be configured at the registrar-agent or may be fetched by the registrar-agent based on a prior TLS connection establishment with the domain registrar.
In addition, the registrar-agent provides agent-signed-data containing the product-serial-number in the body, signed with the LDevID(RegAgt).
This enables the registrar to verify and log, which registrar-agent was in contact with the pledge, when verifying the pledge-voucher-request.
Optionally the registrar-agent may provide its LDevID(RegAgt) EE certificate (and optionally also the issuing CA certificate) to the pledge to be used in the "agent-sign-cert" component of the pledge-voucher-request. If contained, the LDevID(RegAgt) EE certificate <bcp14>MUST</bcp14> be the first certificate in the array.
Note, this may be omitted in constraint environments to safe bandwidth between the registrar-agent and the pledge.
If not contained, the registrar-agent <bcp14>MUST</bcp14> fetch the LDevID(RegAgt) EE certificate based on the SubjectKeyIdentifier (SKID) in the header of the agent-signed-data of the pledge-voucher-request.
The registrar includes the LDevID(RegAgt) EE certificate information into the registrar-voucher-request if the pledge-voucher-requests requests the assertion of "agent-proximity".</t>

<t>The MASA in turn verifies the LDevID(Reg) EE certificate is included in the pledge-voucher-request (prior-signed-voucher-request) in the "agent-provided-proximity-registrar-certificate" leaf and may assert in the voucher "verified" or "logged" instead of "proximity", as there is no direct connection between the pledge and the registrar.
If the LDevID(RegAgt) EE certificate information is contained in the "agent-sign-cert" component of the registrar-voucher-request, the MASA can verify the signature of the agent-signed-data contained in the prior-signed-voucher-request.
If both can be verified successfully, the MASA can assert "agent-proximity" in the voucher. Otherwise, it may assert "verified" or "logged".
The voucher can 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"><artwork align="left"><![CDATA[
+--------+  +-----------+    +-----------+   +--------+   +---------+
| Pledge |  | Registrar |    | Domain    |   | Domain |   | Vendor  |
|        |  | Agent     |    | Registrar |   | CA     |   | Service |
|        |  | (RegAgt)  |    |  (JRC)    |   |        |   | (MASA)  |
+--------+  +-----------+    +-----------+   +--------+   +---------+
     |              |                  |              |   Internet |
[discovery of pledge]
     | mDNS query   |                  |              |            |
     |<-------------|                  |              |            |
     |------------->|                  |              |            |
     |              |                  |              |            |
[trigger pledge-voucher-request and
 pledge-enrollment-request generation]
     |<- vTrigger --|                  |              |            |
     |-Voucher-Req->|                  |              |            |
     |              |                  |              |            |
     |<- eTrigger --|                  |              |            |
     |- Enroll-Req->|                  |              |            |
     ~              ~                  ~              ~            ~
[provide pledge-voucher-request to infrastructure]
     |              |<------ TLS ----->|              |            |
     |              |          [Reg-Agt auth+authz?]  |            |
     |              |-- Voucher-Req -->|              |            |
     |              |          [Reg-Agt authorized?]  |            |
     |              |          [accept device?]       |            |
     |              |          [contact vendor]       |            |
     |              |                  |------- Voucher-Req ------>|
     |              |                  |           [extract DomainID]
     |              |                  |           [update audit log]
     |              |                  |<-------- Voucher ---------|
     |              |<---- Voucher ----|              |            |
     |              |                  |              |            |
[provide pledge enrollment request to infrastructure]
     |              |-- Enroll-Req --->|              |            |
     |              |                  |- Cert-Req -->|            |
     |              |                  |<-Certificate-|            |
     |              |<-- Enroll-Resp --|              |            |
     ~              ~                  ~              ~            ~
[provide voucher and certificate
 to pledge and collect status info]
     |<-- Voucher --|                  |              |            |
     |-- vStatus -->|                  |              |            |
     |<-Enroll-Resp-|                  |              |            |
     |-- eStatus -->|                  |              |            |
     ~              ~                  ~              ~            ~
[provide voucher-status and enrollment status to registrar]
     |              |<------ TLS ----->|              |            |
     |              |----  vStatus --->|              |            |
     |              |                  |-- req. device audit log ->|
     |              |                  |<---- device audit log ----|
     |              |           [verify audit log]
     |              |                  |              |            |
     |              |----  eStatus --->|              |            |
     |              |                  |              |            |
]]></artwork></figure>

<t>The following sub sections split the interactions between the different components into:</t>

<t><list style="symbols">
  <t>Request objects acquisition targets exchanges and objects between the registrar-agent and the pledge.</t>
  <t>Request handling targets exchanges and objects between the registrar-agent and the registrar and also the interaction of the registrar with the MASA and the domain CA.</t>
  <t>Response object supply targets the exchanges and objects between the registrar-agent and the pledge including the status objects.</t>
  <t>Status handling addresses the 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 already discovered the pledge.
This may be done as described in <xref target="discovery_uc2_ppa"/> based on mDNS.</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: possesses IDevID CA certificate and an own LDevID(RegAgt) EE credential for the registrar domain.
In addition, the registrar-agent can be configured with the product-serial-number(s) of the pledge(s) to be bootstrapped.
Note that the product-serial-number may have been used during the pledge discovery already.</t>
  <t>Registrar: possesses IDevID CA certificate and an own LDevID(Reg) credential.</t>
  <t>MASA: possesses own credentials (voucher signing key, TLS server certificate) as well as IDevID CA certificate of pledge vendor / manufacturer and site-specific LDevID CA certificate.</t>
</list></t>

<figure title="Request collection (registrar-agent - pledge)" anchor="exchangesfig_uc2_1"><artwork align="left"><![CDATA[
+--------+                             +-----------+
| Pledge |                             | Registrar |
|        |                             | Agent     |
|        |                             | (RegAgt)  |
+--------+                             +-----------+
    |                                        |-create
    |                                        | agent-signed-data
    |<--- trigger pledge-voucher-request ----|
    |-agent-provided-proximity-registrar-cert|
    |-agent-signed-data                      |
    |-agent-sign-cert (optional)             |
    |                                        |
    |----- pledge-voucher-request ---------->|-store
    |                                        | pledge-voucher-request
    |<----- trigger enrollment request ------|
    |       (empty)                          |
    |                                        |
    |------ pledge-enrollment-request ------>|-store
    |                                        | pledge-enrollment-req.
]]></artwork></figure>

<t>Triggering the pledge to create the pledge-voucher-request is done using HTTP POST on the defined pledge endpoint "/.well-known/brski/pledge-voucher-request".</t>

<t>The registrar-agent pledge-voucher-request Content-Type header is: application/json.
It defines a JSON document to provide three parameter:</t>

<t><list style="symbols">
  <t>agent-provided-proximity-registrar-cert: base64-encoded LDevID(Reg) TLS EE certificate.</t>
  <t>agent-signed-data: base64-encoded JWS-object.</t>
  <t>agent-sign-cert: array of base64-encoded certificate data (optional).</t>
</list></t>

<t>The the trigger for the pledge to create a pledge-voucher-request is depicted in the following figure:</t>

<figure title="Representation of trigger to create pledge-voucher-request" anchor="pavrt"><artwork align="left"><![CDATA[
{
   "agent-provided-proximity-registrar-cert": "base64encodedvalue==",
   "agent-signed-data": "base64encodedvalue==",
   "agent-sign-cert": ["base64encodedvalue==", "base64encodedvalue==", "..."]
}
]]></artwork></figure>

<t>The pledge provisionally accepts the agent-provided-proximity-registrar-cert and can verify it once it has received the voucher. 
If the optionally agent-sign-cert data is included the pledge <bcp14>MAY</bcp14> verify at least the signature of the agent-signed-data using the first contained certificate, which is the LDevID(RegAgt) EE certificate. 
If further certificates are contained in the agent-sign-cert, they enable also the certificate chain validation.
The pledge may not verify the agent-sign-cert itself as the domain trust has not been established at this point of the communication. 
It can be done, after the voucher has been received.</t>

<t>The agent-signed-data is a JOSE 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: contains the base64-encoded SubjectKeyIdentifier of the LDevID(RegAgt) certificate.</t>
</list></t>

<t>The body of the agent-signed-data contains an ietf-voucher-request-prm:agent-signed-data element (defined in <xref target="voucher-request-prm-yang"/>):</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" anchor="asd"><artwork align="left"><![CDATA[
{
  "payload": {
    "ietf-voucher-request-prm:agent-signed-data": {
      "created-on": "2021-04-16T00:00:01.000Z",
      "serial-number": "callee4711"
    },
    "signatures": [
      {
        "protected": {
          "alg": "ES256",
          "kid": "base64encodedvalue=="
        },
        "signature": "base64encodedvalue=="
      }
    ]
  }
}
]]></artwork></figure>

<t>Upon receiving the voucher-request trigger, the pledge <bcp14>SHOULD</bcp14> construct the body of the pledge-voucher-request object as defined in <xref target="RFC8995"/>. 
It will contain additional information provided by the registrar-agent as specified in the following.
This object 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 pledge-voucher-request it <bcp14>SHOULD</bcp14> respond with HTTP 406 error code to the registrar-agent to indicate that it is not able to create the pledge-voucher-request.</t>

<t>The header of the pledge-voucher-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 may optionally contain the certificate chain for this certificate.</t>
</list></t>

<t>The payload of the pledge-voucher-request (PVR) object <bcp14>MUST</bcp14> contain the following parameter as part of the ietf-voucher-request-prm:voucher as defined in <xref target="RFC8995"/>:</t>

<t><list style="symbols">
  <t>created-on: contains the current date and time in yang:date-and-time format.</t>
  <t>nonce: contains a cryptographically strong random or pseudo-random number.</t>
  <t>serial-number: contains the pledge product-serial-number.</t>
  <t>assertion: contains the requested voucher assertion.</t>
</list></t>

<t>The ietf-voucher-request:voucher is enhanced with additional parameters:</t>

<t><list style="symbols">
  <t>agent-provided-proximity-registrar-cert: <bcp14>MUST</bcp14> be included and contains the base64-encoded LDevID(Reg) EE certificate (provided as 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 trigger parameter.</t>
  <t>agent-sign-cert: <bcp14>MAY</bcp14> contain the certificate or certificate chain of the registrar-agent as array of base64encoded certificate information.
It starts from the base64-encoded LDevID(RegAgt) EE certificate optionally followed by the issuing CA certificate and potential further certificates. If supported, it <bcp14>MUST</bcp14> at least contain the LDevID(RegAgt) EE certificate provided as trigger parameter.</t>
</list></t>

<t>The enhancements of the YANG module for the ietf-voucher-request with these new leafs are defined in <xref target="voucher-request-prm-yang"/>.</t>

<t>The object is signed using the pledge's IDevID credential contained as x5c parameter of the JOSE header.</t>

<figure title="Representation of pledge-voucher-request" anchor="pvr"><artwork align="left"><![CDATA[
{
  "payload": {
    "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==",
      "agent-sign-cert": [
        "base64encodedvalue==",
        "base64encodedvalue==",
        "..."
      ]
    },
    "signatures": [
      {
        "protected": {
          "alg": "ES256",
          "x5c": [ "MIIB2jCC...dA==" ]
        },
        "signature": "base64encodedvalue=="
      }
    ]
  }
}
]]></artwork></figure>

<t>The pledge-voucher-request Content-Type is defined in <xref target="I-D.ietf-anima-jws-voucher"/> as:</t>

<t>application/voucher-jws+json</t>

<t>The pledge <bcp14>SHOULD</bcp14> include this Content-Type header field indicating the included media type for the voucher response.
Note that this is also an indication regarding the acceptable format of the voucher response.
This format is included by the registrar as described in <xref target="exchanges_uc2_2"/>.</t>

<t>Once the registrar-agent has received the pledge-voucher-request it can trigger the pledge to generate an enrollment-request object.
As in BRSKI the enrollment request object is 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/pledge-enrollment-request".</t>

<t>The registrar-agent pledge-enrollment-request Content-Type header is: <spanx style="verb">application/json</spanx>
with an empty body.
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: initial or re-enroll as shown in <xref target="raer"/>.</t>

<figure title="Example of trigger to create a pledge-enrollment-request" anchor="raer"><artwork align="left"><![CDATA[
{
  "enroll-type" = "intial"
}
]]></artwork></figure>

<t>In the following the enrollment is described as initial enrollment with an empty body.</t>

<t>Upon receiving the enrollment-trigger, the pledge <bcp14>SHALL</bcp14> construct the pledge-enrollment-request as authenticated self-contained object.
The CSR already assures proof of possession of the private key corresponding to the contained public key.
In addition, based on the additional signature using the IDevID, proof of identity 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 enrollment request as plain PKCS#10.
Note that 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 is already implementing an enrollment protocol, it may leverage that functionality for the creation of the enrollment request object.
Note also that <xref target="I-D.ietf-netconf-sztp-csr"/> also allows for inclusion of certification request objects such as CMP or CMC.</t>

<t>The pledge <bcp14>SHOULD</bcp14> construct the pledge-enrollment-request as PKCS#10 object.
In BRSKI-PRM it <bcp14>MUST</bcp14> sign it additionally with its IDevID credential to provide proof-of-identity bound to the PKCS#10 as described below.</t>

<t>If the pledge is unable to construct the enrollment-request it <bcp14>SHOULD</bcp14> respond with HTTP 406 error code to the registrar-agent to indicate that it is not able to create the enrollment-request.</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 its operation. 
The registrar-agent may 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 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 wrapped PKCS#10 is: <spanx style="verb">application/jose</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 may optionally contain the certificate chain for this certificate.</t>
</list></t>

<t>The body of the pledge enrollment-request object <bcp14>SHOULD</bcp14> contain a P10 parameter (for PKCS#10) as defined for ietf-ztp-types:p10-csr in <xref target="I-D.ietf-netconf-sztp-csr"/>:</t>

<t><list style="symbols">
  <t>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>

<figure title="Representation of pledge-enrollment-request" anchor="per"><artwork align="left"><![CDATA[
{
  "payload": {
    "ietf-ztp-types": {
      "p10-csr": "base64encodedvalue=="
    },
    "signatures": [
      {
        "protected": {
          "alg": "ES256",
          "x5c": [ "MIIB2jCC...dA==" ]
        },
        "signature": "base64encodedvalue=="
      }
    ]
  }
}
]]></artwork></figure>

<t>With the collected pledge-voucher-request object and the pledge-enrollment-request object, the registrar-agent starts the interaction with the domain registrar.</t>

<t>Once the registrar-agent has collected the pledge-voucher-request and pledge-enrollment-request objects, it connects to the registrar and sends the request objects.
As the registrar-agent is intended to work between the pledge and the domain registrar, a  collection of requests from more than one pledge is possible, allowing a bulk bootstrapping of multiple pledges using the same connection between the registrar-agent and the domain registrar.</t>

</section>
<section anchor="exchanges_uc2_2"><name>Request Handling - Registrar-Agent (Infrastructure)</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 IDevID CA certificate and it's own LDevID(RegAgt) credentials of site domain.
It has the address of the domain registrar through configuration or by discovery, e.g., mDNS/DNSSD.
The registrar-agent has acquired pledge-voucher-request and pledge-enrollment-request  objects(s).</t>
  <t>Registrar: possesses IDevID CA certificate of pledge vendor/manufacturer and an it's own LDevID(Reg) credentials.</t>
  <t>MASA: possesses it's own vendor/manufacturer credentials (voucher signing key, TLS server certificate) related to pledges IDevID and site-specific LDevID CA certificate.</t>
</list></t>

<figure title="Request processing between registrar-agent and infrastructure bootstrapping services" anchor="exchangesfig_uc2_2"><artwork align="left"><![CDATA[
+-----------+    +-----------+   +--------+   +---------+
| Registrar-|    | Domain    |   | Domain |   | Vendor  |
| agent     |    | Registrar |   | CA     |   | Service |
| (RegAgt)  |    |  (JRC)    |   |        |   | (MASA)  |
+-----------+    +-----------+   +--------+   +---------+
    |                  |              |   Internet |
[exchange between pledge and ]        |            |
[registrar-agent done. ]              |            |
    |                  |              |            |
    |<------ TLS ----->|              |            |
    |          [Reg-Agt auth+authz?]  |            |
    |                  |              |            |
    |-- Voucher-Req -->|              |            |
    |      (PVR)       |              |            |
    |          [Reg-Agt authorized?]  |            |
    |          [accept device?]       |            |
    |          [contact vendor]       |            |
    |                  |------------ TLS --------->|
    |                  |-- Voucher-Req ----------->|
    |                  |      (RVR)                |
    |                  |                   [extract DomainID]
    |                  |                   [update audit log]
    |                  |<-------- Voucher ---------|  
    |<---- Voucher ----|                           |
    |                  |                           |
[certification request handling registrar-agent]   |
[and site infrastructure]                          |
    |--- Enroll-Req -->|              |            |
    |      (PER)       |              |            |
    |                  |---- TLS ---->|            |
    |                  |- Enroll-Req->|            |
    |                  |     (RER)    |            |
    |                  |<-Enroll-Resp-|            |
    |<-- Enroll-Resp---|              |            |
    |                  |              |            |
]]></artwork></figure>

<t>The registrar-agent establishes a TLS connection with the registrar.
As already stated in <xref target="RFC8995"/>, the use of TLS 1.3 (or newer) is encouraged.
TLS 1.2 or newer is <bcp14>REQUIRED</bcp14> on the registrar-agent side.
TLS 1.3 (or newer) <bcp14>SHOULD</bcp14> be available on the registrar, but TLS 1.2 <bcp14>MAY</bcp14> be used.
TLS 1.3 (or newer) <bcp14>SHOULD</bcp14> be available on the MASA, but TLS 1.2 <bcp14>MAY</bcp14> be used.</t>

<t>In contrast to <xref target="RFC8995"/> TLS client authentication is achieved by using registrar-agent LDevID(RegAgt) credentials instead of pledge IDevID credentials.
This allows the registrar to distinguish between BRSKI (pledge-initiator-mode) and BRSKI-PRM (pledge-responder-mode). 
The registrar <bcp14>SHOULD</bcp14> verify that the registrar-agent is authorized to connect to the registrar based on the LDevID(RegAgt). Note, the authorization will be verified based on the agent-signed-data carried in the pledge-voucher-request. As short-lived certificates are recommended for the registrar-agent, the LDevID(RegAgt) EE certificate used in the TLS handshake may be newer than the one of in the pledge-voucher-request.</t>

<t>The registrar can received request objects in different forms as defined in <xref target="RFC8995"/>. 
Specifically, the registrar will receive JSON-in-JWS objects generated by the pledge for voucher-request and enrollment-request (instead of BRSKI voucher-request as CMS-signed JSON and enrollment-request as PKCS#10 objects).</t>

<t>The registrar-agent sends the pledge-voucher-request to the registrar by HTTP POST to the endpoint: "/.well-known/brski/requestvoucher"</t>

<t>The pledge-voucher-request Content-Type header field used for pledge-responder-mode is defined in <xref target="I-D.ietf-anima-jws-voucher"/> as: <spanx style="verb">application/voucher-jws+json</spanx> (see <xref target="pvr"/> for the content definition).</t>

<t>The registrar-agent <bcp14>SHOULD</bcp14> include the Accept request-header field indicating the pledge acceptable Content-Type for the voucher-response.
The voucher-response Content-Type header field "application/voucher-jws+json" is defined in <xref target="I-D.ietf-anima-jws-voucher"/>.</t>

<t>Upon reception of the pledge-voucher-request, the registrar <bcp14>SHALL</bcp14> perform the verification of the voucher-request parameter as defined in section 5.3 of <xref target="RFC8995"/>.
In addition, the registrar shall verify the following parameters from the pledge-voucher-request:</t>

<t><list style="symbols">
  <t>agent-provided-proximity-registrar-cert: <bcp14>MUST</bcp14> contain registrars own LDevID(Reg) EE certificate to ensure the registrar in proximity is the target registrar for the request.</t>
  <t>agent-signed-data: The registrar <bcp14>MUST</bcp14> verify that the agent provided data has been signed with the LDevID(RegAgt) credential indicated in the "kid" JOSE header parameter.
If the certificate is not included in the agent-sign-cert properties of the pledge-voucher-request, it must be fetched from a repository by the registrar if "agent-proximity" assertion is requested.</t>
  <t>agent-sign-cert: <bcp14>MAY</bcp14> contain an array of base64-encoded certificate data starting with the LDevID(RegAgt) EE certificate.
If contained the registrar <bcp14>MUST</bcp14> verify that the credentials (LDevID(ReAgt) EE certificate and optionally the certificate chain), used to sign the data, have been valid at signature creation time and the corresponding registrar-agent was authorized for involvement in the bootstrapping process. 
If the agent-signed-cert is not provided, the registrar <bcp14>MUST</bcp14> fetch the LDevID(RegAgt) EE certificate and perform this verification, based on the provided SubjectKeyIdentifier (SKID) contained in the kid header of the agent-signed-data. 
This requires, that the registrar can fetch the LDevID(RegAgt) certificate data (including intermediate CA certificates if existent) based on the SKID.</t>
</list></t>

<t>If validation fails the registrar <bcp14>SHOULD</bcp14> respond with HTTP 404 error code to the registrar-agent.
HTTP 406 error code is more appropriate, if the format of pledge-voucher-request is unknown.</t>

<t>If validation succeeds, the registrar will accept the pledge's request to join the domain as defined in section 5.3 of <xref target="RFC8995"/>.
The registrar then establishes a TLS connection with the MASA as described in section 5.4 of <xref target="RFC8995"/> to obtain a voucher for the pledge.</t>

<t>The registrar <bcp14>SHALL</bcp14> construct the body of the registrar-voucher-request object as defined in <xref target="RFC8995"/>.
The encoding <bcp14>SHALL</bcp14> be done as JSON-in-JWS object as defined in <xref target="I-D.ietf-anima-jws-voucher"/>.</t>

<t>The header of the registrar-voucher-request <bcp14>SHALL</bcp14> contain the following parameter as defined in <xref target="RFC7515"/>:</t>

<t><list style="symbols">
  <t>alg: algorithm used to create the object signature.</t>
  <t>x5c: contains the base64-encoded registrar LDevID certificate(s).
It may optionally contain the certificate chain for this certificate.</t>
</list></t>

<t>The payload of the registrar-voucher-request (RVR) object <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: contains the current date and time in yang:date-and-time format for the registrar-voucher-request creation time.</t>
  <t>nonce: copied form the pledge-voucher-request</t>
  <t>serial-number: contains the pledge product-serial-number.
The registrar <bcp14>MUST</bcp14> verify that the IDevID EE 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: contains the 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: contains the pledge-voucher-request provided by the registrar-agent.</t>
</list></t>

<t>The voucher request can be enhanced optionally with the following additional parameter as defined in <xref target="voucher-request-prm-yang"/>:</t>

<t><list style="symbols">
  <t>agent-sign-cert: contains the certificate or the certificate including the chain of the registrar-agent.
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.</t>
</list></t>

<t>If only a single object is contained in the list it <bcp14>MUST</bcp14> be the base64-encoded LDevID(RegAgt) EE certificate.
If multiple certificates are included, the first <bcp14>MUST</bcp14> be the base64-encoded LDevID(RegAgt) EE certificate.</t>

<t>The MASA uses this information for the verification of agent proximity to issue the corresponding assertion "agent-proximity". If the agent-sign-cert is not contained in the registrar-voucher-request, it is contained in the prior-signed-voucher from the pledge.</t>

<t>The object is signed using the registrar LDevID(Reg) credential, which corresponds to the certificate signaled in the JOSE header.</t>

<figure title="Representation of registrar-voucher-request" anchor="rvr"><artwork align="left"><![CDATA[
{
  "payload": {
    "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==",
        "..."
      ]
    },
    "signatures": [
      {
        "protected": {
          "alg": "ES256",
          "x5c": [ "MIIB2jCC...dA==" ]
        },
        "signature": "base64encodedvalue=="
      }
    ]
  }
}

]]></artwork></figure>

<t>The registrar sends the registrar-voucher-request to the MASA by HTTP POST to the endpoint "/.well-known/brski/requestvoucher".</t>

<t>The registrar-voucher-request 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> include an Accept request-header field indicating the acceptable media type for the voucher-response.
The media type "application/voucher-jws+json" is defined in <xref target="I-D.ietf-anima-jws-voucher"/>.</t>

<t>Once the MASA receives the registrar-voucher-request it <bcp14>SHALL</bcp14> perform the verification of the contained components as described in section 5.5 in <xref target="RFC8995"/>.</t>

<t>In addition, the following processing <bcp14>SHALL</bcp14> be performed for data contained in the prior-signed-voucher-request:</t>

<t><list style="symbols">
  <t>agent-provided-proximity-registrar-cert: The MASA <bcp14>MAY</bcp14> verify that this field contains the LDevID(Reg) certificate.
If so, it <bcp14>MUST</bcp14> correspond to the certificate used to sign the registrar-voucher-request.</t>
  <t>agent-signed-data: The MASA <bcp14>MAY</bcp14> verify this field 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 properties of the prior-signed-voucher and also in serial-number properties of  the registrar-voucher-request.
The LDevID(RegAgt) EE certificate used to generate the signature is identified by the "kid" parameter of the JOSE header (agent-signed-data).
If the assertion "agent-proximity" is requested, the registrar-voucher-request <bcp14>MUST</bcp14> contain the corresponding LDevID(RegAgt) certificate data in the agent-sign-cert. Either in the LDevID(RegAgt) EE certificate of registrar-voucher-request or of the prior-signed-voucher can be verified by the MASA as issued by the same domain CA as the LDevID(Reg) EE certificate.<br />
If the agent-sign-cert information is not provided, the MASA <bcp14>MAY</bcp14> provide a lower level assertion, e.g.: "logged" or "verified"
Note, in case the LDevID(RegAgt) EE certificate is issued by a sub-CA and not the domain CA known to the MASA, sub-CA certificate(s) <bcp14>MUST</bcp14> also be presented in the agent-sign-cert. 
As this field is defined as array, it can handle multiple certificates.</t>
</list></t>

<t>If validation fails, the MASA <bcp14>SHOULD</bcp14> respond with an HTTP error code to the registrar.
The HTTP error codes are kept as defined in section 5.6 of <xref target="RFC8995"/>, <!-- XXX -->and comprise the codes: 403, 404, 406, and 415.</t>

<t>The expected voucher response format is indicated by the Accept request-header field or based on the MASA's prior understanding of proper format for this pledge.
Specifically for the pledge-responder-mode the "application/voucher-jws+json" as defined in <xref target="I-D.ietf-anima-jws-voucher"/> is applied.
The voucher syntax is described in detail by <xref target="RFC8366"/>. <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[
{
  "payload": {
    "ietf-voucher:voucher": {
      "assertion": "agent-proximity",
      "serial-number": "callee4711",
      "nonce": "eDs++/FuDHGUnRxN3E14CQ==",
      "created-on": "2022-01-04T00:00:02.000Z",
      "pinned-domain-cert": "MIIBpDCCA...w=="
    },
    "signatures": [
      {
        "protected": {
          "alg": "ES256",
          "x5c": [ "MIIB2jCC...dA==" ]
        },
        "signature": "base64encodedvalue=="
      }
    ]
  }
}

]]></artwork></figure>

<t>The MASA responds the voucher to the registrar.</t>

<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>MAY</bcp14> provide an additional signature of the voucher. 
This signature is done over the same content as the MASA signature of the voucher and provides a proof of possession of the private key corresponding to the LDevID(Reg) the pledge received in the trigger for the PVR (see <xref target="pavrt"/>). The registrar <bcp14>MUST</bcp14> use the same LDevID(Reg) credential that is used for authentication in the TLS handshake to authenticate towards the registrar-agent. This ensures that the same LDevID(Reg) certificate can be used to verify the signature as transmitted in the voucher request as is transferred in the pledge-voucher-request in the agent-provided-proximity-registrar-cert component. Figure <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[
{
  "payload": {
    "ietf-voucher:voucher": {
      "assertion": "agent-proximity",
      "serial-number": "callee4711",
      "nonce": "eDs++/FuDHGUnRxN3E14CQ==",
      "created-on": "2022-01-04T00:00:02.000Z",
      "pinned-domain-cert": "MIIBpDCCA...w=="
    },
    "signatures": [
      {
        "protected": {
          "alg": "ES256",
          "x5c": [ "MIIB2jCC...dA==" ]
        },
        "signature": "base64encodedvalue=="
      },
      {
        "protected": {
          "alg": "ES256",
          "x5c": [ "xURZmcWS...dA==" ]
        },
        "signature": "base64encodedvalue=="
      }
    ]
  }
}

]]></artwork></figure>

<t>Depending on the security policy of the operator, this signature can also be interpreted as explicit authorization of the registrar to install the contained trust anchor.</t>

<t>The registrar forwards the voucher to the registrar-agent.</t>

<t>After receiving the voucher, the registrar-agent sends the pledge-enrollment-request (PER) to the registrar.
Deviating from BRSKI the pledge-enrollment-request is not a raw PKCS#10 object.
As the registrar-agent is involved in the exchange, the PKCS#10 is wrapped in a JWS object. The JWS object is signed with the pledge's IDevID to ensure proof-of-identity as outlined in <xref target="per"/>.</t>

<t>When using EST, the standard endpoint on the registrar cannot be used. EST requires to sent a raw PKCS#10 request to the 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 the registrar is defined as "/.well-known/brski/requestenroll"</t>

<t>The PER Content-Type header is: <spanx style="verb">application/jose</spanx>.</t>

<t>This results in a deviation from the content types used in <xref target="RFC7030"/> and in additional processing at the domain registrar as EST server as following.
Note, the registrar is already aware that the bootstrapping is performed in a pledge-responder-mode due to the use of the LDevID(RegAgt) EE certificate in the TLS establishment and the provided pledge-voucher-request as JWS object.</t>

<t><list style="symbols">
  <t>If the registrar receives a pledge-enrollment-request with Content-Type header field "application/jose", 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 IDevID certificate of the x5c header field, is accepted to join the domain, based on the verification of the pledge-voucher-request.</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 domain CA.
It will construct a registrar-enrollment-request (RER) by utilizing the enrollment protocol expected by the domain CA. 
The domain registrar may either enhance the PKCS#10 request or generate a structure containing the attributes to be included by the CA into the requested LDevID EE certificate and sends both (the original PKCS#10 request and the enhancements) to the domain CA. 
As enhancing the PKCS#10 request destroys the initial proof of possession of the corresponding private key, the CA would need to accept RA-verified requests.
This handling is out of scope for this document.</t>
</list></t>

<t>The registrar-agent sends the PER to the registrar by HTTP POST to the endpoint: "/.well-known/brski/requestenroll"</t>

<t>If validation of the wrapping signature fails, the registrar <bcp14>SHOULD</bcp14> respond with HTTP 404 error code.
HTTP 406 error code is more appropriate, if the pledge-enrollment-request is in an unknown format.<br />
A situation that could be resolved with administrative action (such as adding a vendor/manufacturer IDevID CA as trusted party) <bcp14>MAY</bcp14> be responded with HTTP 403 error code.</t>

<t>A successful interaction with the domain CA will result in a pledge LDevID EE certificate, which is then forwarded by the registrar to the registrar-agent using the Content-Type header: "application/pkcs7-mime".</t>

<t>The registrar-agent has now finished the exchanges with the domain registrar and can supply the voucher-response (from MASA via Registrar) and the enrollment-response (LDevID EE certificate) to the pledge.
It can close the TLS connection to the domain registrar and provide the objects to the pledge(s).
The content of the response objects is defined through the voucher <xref target="RFC8366"/> and the certificate <xref target="RFC5280"/>.</t>

</section>
<section anchor="exchanges_uc2_3"><name>Response Object Supply by Registrar-Agent to Pledge</name>

<t>The following description assumes that the registrar-agent has obtained the response objects from the domain registrar.
It will re-start the interaction with 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: possesses voucher and LDevID certificate.</t>
</list></t>

<figure title="Response and status handling between pledge and registrar-agent" anchor="exchangesfig_uc2_3"><artwork align="left"><![CDATA[
+--------+                        +-----------+
| Pledge |                        | Registrar-|
|        |                        | Agent     |
|        |                        | (RegAgt)  |
+--------+                        +-----------+
    |                                   |
    |<------- supply voucher -----------|
    |                                   |
    |--------- voucher-status --------->| - store
    |                                   |   pledge voucher-status
    |<--- supply enrollment response ---|
    |                                   |
    |--------- enroll-status ---------->| - store
    |                                   |   pledge enroll-status
]]></artwork></figure>

<t>The registrar-agent provides the information via two distinct endpoints to the pledge as following.</t>

<t>The voucher response is provided with a HTTP POST using the operation path value of "/.well-known/brski/pledge-voucher".</t>

<t>The registrar-agent voucher-response Content-Type header is "application/voucher-jws+json and contains the voucher as provided by the MASA. An example if given in <xref target="MASA-vr"/> for a MASA only signed voucher and in Figure <xref target="MASA-REG-vr"/> for multiple signatures.</t>

<t>If a single signature is contained, the pledge receives the voucher and verifies it as described in section 5.6.1 in <xref target="RFC8995"/>.</t>

<t>If multiple signatures are contained in the voucher, 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"/> successfully.</t>
  <t>Install contained trust anchor provisionally.</t>
  <t>Verify registrar signature as described in section 5.6.1 in <xref target="RFC8995"/> successfully, but take the registrar certificate instead of the MASA certificate for verification.</t>
  <t>Verify the registrar certificate received in the agent-provided-proximity-registrar-cert in the voucher request successfully.</t>
</list></t>

<t>When all verification steps stated above have been performed successfully, the pledge <bcp14>SHALL</bcp14> end the provisional accept state for the domain trust anchor and the LDevID(Reg). 
When multiple signatures are contained in the voucher-response, the pledge <bcp14>MUST</bcp14> verify all successfully.</t>

<t>When an error occurs during the verification it <bcp14>SHALL</bcp14> be signaled in the reason field of the pledge voucher-status object.</t>

<t>After verification the pledge <bcp14>MUST</bcp14> reply with a status telemetry message as defined in section 5.7 of <xref target="RFC8995"/>.<br />
The pledge generates the voucher-status-object and provides it as JOSE object with the wrapping signature in the response message to the registrar-agent.</t>

<t>The response has the Content-Type "application/jose" 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[
{
  "payload": {
    "version": 1,
    "status": true,
    "reason": "Informative human readable message",
    "reason-context": {
      "additional": "JSON"
    }
  },
  "signatures": [
    {
      "protected": {
        "alg": "ES256",
        "x5c": [ "MIIB2jCC...dA==" ]
      },
      "signature": "base64encodedvalue=="
    }
  ]
}
]]></artwork></figure>

<t>The enrollment response is provided with a HTTP POST using the operation path value of "/.well-known/brski/pledge-enrollment".</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:</t>

<t>application/pkcs7-mime: note that it only contains the LDevID certificate for the pledge, not the certificate chain.</t>

<t>Upon reception, the pledge verifies the LDevID certificate. 
When an error occurs during the verification it <bcp14>SHALL</bcp14> be signaled in the reason field of the pledge enroll-status object.</t>

<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 defined object is provided with an additional signature using JOSE.
The pledge generates the enrollment status and provides it in the response message to the registrar-agent.</t>

<t>The response has the Content-Type "application/jose", signed using the freshly provided LDevID of the pledge as shown in <xref target="estat"/>.
As the reason field is optional, it <bcp14>MAY</bcp14> be omitted in case of success.</t>

<figure title="Representation of pledge enroll-status telemetry" anchor="estat"><artwork align="left"><![CDATA[
{
  "payload": {
    "version": 1,
    "status": true,
    "reason": "Informative human readable message",
    "reason-context": {
      "additional": "JSON"
    }
  },
  "signatures": [
    {
      "protected": {
        "alg": "ES256",
        "x5c": [ "MIIB2jCC...dA==" ]
      },
      "signature": "base64encodedvalue=="
    }
  ]
}
]]></artwork></figure>

<t>Once the registrar-agent has collected the information, it can connect to the registrar agent to provide the status responses to the registrar.</t>

</section>
<section anchor="exchanges_uc2_4"><name>Telemetry status handling (registrar-agent - domain registrar)</name>

<t>The following description assumes that the registrar-agent has collected the status objects from the pledge.
It will provide the status objects to the registrar for further processing and audit log
information of voucher-status for MASA.</t>

<t>Preconditions in addition to <xref target="exchanges_uc2_2"/>:</t>

<t><list style="symbols">
  <t>Registrar-agent: possesses voucher-status and enroll-status
objects from pledge.</t>
</list></t>

<figure title="Bootstrapping status handling" anchor="exchangesfig_uc2_4"><artwork align="left"><![CDATA[
+-----------+    +-----------+   +--------+   +---------+
| Registrar |    | Domain    |   | Domain |   | Vendor  |
| Agent     |    | Registrar |   | CA     |   | Service |
| RegAgt)   |    |  (JRC)    |   |        |   | (MASA)  |
+-----------+    +-----------+   +--------+   +---------+
    |                  |              |   Internet |
    |                  |              |            |
    |<------ TLS ----->|              |            |
    |                  |              |            |
    |--Voucher-Status->|              |            |
    |                  |<---- device audit log ----|
    |           [verify audit log ]
    |                  |              |            |
    |--Enroll-Status-->|              |            |
    |                  |              |            |
    |                  |              |            |
]]></artwork></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>If the TLS connection to the registrar was closed, the registrar-agent establishes a TLS connection with the registrar as stated in <xref target="exchanges_uc2_2"/>.</t>

<t>The registrar-agent sends the pledge voucher-status object without modification to the registrar with an HTTP-over-TLS POST using the operation path value of "/.well-known/brski/voucher_status". The Content-Type header is kept as "application/jose" 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 in his domain based on the contained "serial-number" in the IDevID certificate referenced in the header of the voucher-status object.</t>

<t>According to <xref target="RFC8995"/> section 5.7, the registrar <bcp14>SHOULD</bcp14> respond with an HTTP 200 but <bcp14>MAY</bcp14> simply fail with an HTTP 404 error.
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 object to the registrar.
The status indicates the pledge could process the enroll-response object and holds the corresponding private key.</t>

<t>The registrar-agent sends the pledge enroll-status object without modification to the registrar with an HTTP-over-TLS POST using the operation path value of "/.well-known/brski/enrollstatus".
The Content-Type header is kept as "application/jose" as described in <xref target="exchangesfig_uc2_3"/> and depicted in the example in <xref target="estat"/>.</t>

<t>The registrar <bcp14>SHALL</bcp14> verify the signature of the pledge enroll-status object and validate that it belongs to an accepted device in his domain based on the contained product-serial-number in the LDevID EE certificate referenced in the header of the enroll-status object.
Note that the verification of a signature of the object is a deviation form the described handling in section 5.9.4 of <xref target="RFC8995"/>.</t>

<t>According to <xref target="RFC8995"/> section 5.9.4, the registrar <bcp14>SHOULD</bcp14> respond with an HTTP 200 but <bcp14>MAY</bcp14> simply fail with an HTTP 404 error.
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>
</section>
<section anchor="artifacts"><name>Artifacts</name>

<section anchor="voucher-request-prm-yang"><name>Voucher Request Artifact</name>

<t>The following enhancement extends the voucher-request as defined in <xref target="RFC8995"/> to include additional fields necessary for handling bootstrapping in the pledge-responder-mode.</t>

<section anchor="tree-diagram"><name>Tree Diagram</name>

<t>The following tree diagram is mostly a duplicate of the contents of <xref target="RFC8995"/>, with the addition of the fields agent-signed-data, the registrar-proximity-certificate, and agent-signing certificate.
The tree diagram is described in <xref target="RFC8340"/>.
Each node in the diagram is fully described by the YANG module in Section <xref target="voucher-request-prm-yang-module"/>.</t>

<figure><artwork align="left"><![CDATA[
module: ietf-voucher-request-prm

 grouping voucher-request-prm-grouping
  +-- voucher
     +-- created-on?                               yang:date-and-time
     +-- expires-on?                               yang:date-and-time
     +-- assertion?                                enumeration
     +-- serial-number                             string
     +-- idevid-issuer?                            binary
     +-- pinned-domain-cert?                       binary
     +-- domain-cert-revocation-checks?            boolean
     +-- nonce?                                    binary
     +-- last-renewal-date?                        yang:date-and-time
     +-- prior-signed-voucher-request?             binary
     +-- proximity-registrar-cert?                 binary
     +-- agent-signed-data?                        binary
     +-- agent-provided-proximity-registrar-cert?  binary
     +-- agent-sign-cert?                          binary
]]></artwork></figure>

</section>
<section anchor="voucher-request-prm-yang-module"><name>YANG Module</name>

<t>The following YANG module extends the <xref target="RFC8995"/> Voucher Request to include a signed artifact from the registrar-agent (agent-signed-data) as well as the registrar-proximity-certificate and the
agent-signing certificate.</t>

<figure><artwork align="left"><![CDATA[
<CODE BEGINS> file "ietf-voucher-request-prm@2021-12-16.yang"

module ietf-voucher-request-prm {
  yang-version 1.1;

  namespace "urn:ietf:params:xml:ns:yang:ietf-voucher-request-prm";
  prefix vrprm;
  
  import ietf-restconf {
    prefix rc;
    description
      "This import statement is only present to access
       the yang-data extension defined in RFC 8040.";
    reference "RFC 8040: RESTCONF Protocol";
  }

  import ietf-voucher-request {
    prefix vcr;
    description
      "This module defines the format for a voucher request,
          which is produced by a pledge as part of the RFC8995
          onboarding process.";
    reference
      "RFC 8995: Bootstrapping Remote Secure Key Infrastructure";
  }

  organization
   "IETF ANIMA Working Group";

  contact
   "WG Web:   <http://tools.ietf.org/wg/anima/>
    WG List:  <mailto:anima@ietf.org>
    Author:   Steffen Fries
              <mailto:steffen.fries@siemens.com>
    Author:   Eliot Lear
              <mailto: lear@cisco.com>
    Author:   Thomas Werner
              <mailto: thomas-werner@siemens.com>
    Author:   Michael Richardson
              <mailto: mcr+ietf@sandelman.ca>";

  description
   "This module defines the format for a voucher-request.
    It is a superset of the voucher itself.
    It provides content to the MASA for consideration
    during a voucher-request.

    The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL
    NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED',
    'MAY', and 'OPTIONAL' in this document are to be interpreted as
    described in BCP 14 (RFC 2119) (RFC 8174) when, and only when,
    they appear in all capitals, as shown here.

    Copyright (c) 2022 IETF Trust and the persons identified as
    authors of the code. All rights reserved.

    Redistribution and use in source and binary forms, with or
    without modification, is permitted pursuant to, and subject
    to the license terms contained in, the Simplified BSD License
    set forth in Section 4.c of the IETF Trust's Legal Provisions
    Relating to IETF Documents
    (https://trustee.ietf.org/license-info).

    This version of this YANG module is part of RFC 8995; see the
    RFC itself for full legal notices.";


  revision 2021-12-16 {
    description
     "Initial version";
    reference
     "RFC XXXX: BRSKI for Pledge in Responder Mode";
  }
  
  // Top-level statement
  rc:yang-data voucher-request-prm-artifact {
    // YANG data template for a voucher-request.
    uses voucher-request-prm-grouping;
  }
  // Grouping defined for future usage
  grouping voucher-request-prm-grouping {
    description
      "Grouping to allow reuse/extensions in future work.";
    uses vcr:voucher-request-grouping {
      refine "voucher/expires-on" {
        mandatory false;
         description
          "An expires-on field is not valid in a
           voucher-request, and any occurrence MUST be ignored.";
     }
      refine "voucher/pinned-domain-cert" {
        mandatory false;
        description
          "A pinned-domain-cert field is not valid in a
           voucher-request, and any occurrence MUST be ignored.";
      }
      refine "voucher/last-renewal-date" {
        description
          "A last-renewal-date field is not valid in a
           voucher-request, and any occurrence MUST be ignored.";
      }
      refine "voucher/domain-cert-revocation-checks" {
        description
          "The domain-cert-revocation-checks field is not valid in a
           voucher-request, and any occurrence MUST be ignored.";
      }
      refine "voucher/assertion" {
        mandatory false;
        description
          "Any assertion included in registrar voucher-requests
           SHOULD be ignored by the MASA.";
      }
     
      augment voucher {
        description "Base the voucher-request-prm upon the
          regular one";
        leaf agent-signed-data {
          type binary;
          description
            "The agent-signed-data field contains a JOSE [RFC7515]
             object provided by the Registrar-Agent to the Pledge.

             This artifact is signed by the Registrar-Agent
             and contains a copy of the pledge's serial-number.";
        }

        leaf agent-provided-proximity-registrar-cert {
          type binary;
          description
            "An X.509 v3 certificate structure, as specified by
             RFC 5280, Section 4, encoded using the ASN.1
             distinguished encoding rules (DER), as specified
             in ITU X.690.
             The first certificate in the registrar TLS server
             certificate_list sequence (the end-entity TLS
             certificate; see RFC 8446) presented by the
             registrar to the registrar-agent and provided to
             the pledge.
             This MUST be populated in a pledge's voucher-request
             when an agent-proximity assertion is requested.";
          reference
            "ITU X.690: Information Technology - ASN.1 encoding
             rules: Specification of Basic Encoding Rules (BER),
             Canonical Encoding Rules (CER) and Distinguished
             Encoding Rules (DER)
             RFC 5280: Internet X.509 Public Key Infrastructure
             Certificate and Certificate Revocation List (CRL)
             Profile
             RFC 8446: The Transport Layer Security (TLS)
             Protocol Version 1.3";
        }

        leaf-list agent-sign-cert {
          type binary;
        min-elements 1;
          description
            "An X.509 v3 certificate structure, as specified by
             RFC 5280, Section 4, encoded using the ASN.1
             distinguished encoding rules (DER), as specified
             in ITU X.690.
             This certificate can be used by the pledge,
             the registrar, and the MASA to verify the signature
             of agent-signed-data. It is an optional component
             for the pledge-voucher request.
             This MUST be populated in a registrar's
             voucher-request when an agent-proximity assertion
             is requested.
          It is defined as list to enable inclusion of further
          certificates along the certificate chain if different 
          issuing CAs have been used for the registrar-agent 
          and the registrar.";
          reference
            "ITU X.690: Information Technology - ASN.1 encoding
             rules: Specification of Basic Encoding Rules (BER),
             Canonical Encoding Rules (CER) and Distinguished
             Encoding Rules (DER)
             RFC 5280: Internet X.509 Public Key Infrastructure
             Certificate and Certificate Revocation List (CRL)
             Profile";
        }
      }
    }
  }
}

<CODE ENDS>
]]></artwork></figure>

<t>Examples for the pledge-voucher-request are provided in <xref target="exchanges_uc2_2"/>.</t>

</section>
</section>
</section>
<section anchor="iana-considerations"><name>IANA Considerations</name>

<t>This document requires the following IANA actions:</t>

<t>IANA is requested to enhance the Registry entitled: "BRSKI well-known URIs" with the following:</t>

<figure><artwork align="left"><![CDATA[
 URI                       document  description
 pledge-voucher-request    [THISRFC] create pledge-voucher-request
 pledge-enrollment-request [THISRFC] create pledge-enrollment-request
 pledge-voucher            [THISRFC] supply voucher response
 pledge-enrollment         [THISRFC] supply enrollment response
 pledge-CACerts            [THISRFC] supply CA certs to pledge
 requestenroll             [THISRFC] supply PER to registrar
]]></artwork></figure>

</section>
<section anchor="privacy-considerations"><name>Privacy Considerations</name>

<t>The credential used by the registrar-agent to sign the data for the pledge in case of the pledge-initiator-mode should not contain personal information.
Therefore, it is recommended to use an LDevID certificate associated with the device instead of a potential service technician operating the device, to avoid revealing this information to the MASA.</t>

</section>
<section anchor="security-considerations"><name>Security Considerations</name>

<section anchor="exhaustion-attack-on-pledge"><name>Exhaustion Attack on Pledge</name>

<t>Exhaustion attack on pledge based on DoS attack (connection establishment, etc.)</t>

</section>
<section anchor="misuse-of-acquired-voucher-and-enrollment-responses-by-registrar-agent"><name>Misuse of acquired Voucher and Enrollment responses by Registrar-Agent</name>

<t>A Registrar-agent that uses acquired voucher and enrollment response for domain 1 in domain 2 can be detected by the pledge-voucher-request processing on the domain registrar side.
This requires the domain registrar to verify the proximity-registrar-cert leaf in the pledge-voucher-request against his own LDevID(Reg). 
In addition, the domain registrar has to verify the association of the pledge to his domain based on the product-serial-number contained in the pledge-voucher-request and in the IDevID certificate of the pledge.
Moreover, the registrar verifies the authorization of the registrar agent to deliver pledge-voucher-requests, based on the LDevID(RegAgt) EE certificate information contained in this request.</t>

<t>Misbinding of a pledge by a faked domain registrar is countered as described in BRSKI security considerations (section 11.4).</t>

</section>
<section anchor="misuse-of-registrar-agent-credentials"><name>Misuse of Registrar-Agent Credentials</name>

<t>Concerns have been raised, that there may be opportunities to misuse the registrar-agent with a valid LDevID.
This 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 certificate for the registrar-agent may be provided by a prior BRSKI execution based on an existing IDevID.
Alternatively, the LDevID may be acquired by a service technician after authentication against the issuing CA.</t>

</section>
<section anchor="yang-module-security-considerations"><name>YANG Module Security Considerations</name>

<t>The enhanced voucher-request described in section <xref target="voucher-request-prm-yang"/> bases on <xref target="RFC8995"/>, but uses a different encoding, based on <xref target="I-D.ietf-anima-jws-voucher"/>.
Therefore, similar considerations as described in Section 11.7 (Security Considerations) of <xref target="RFC8995"/> apply.
The YANG module specified in this document defines the schema for data that is subsequently encapsulated by a JOSE signed-data content type, as described <xref target="I-D.ietf-anima-jws-voucher"/>.
As such, all of the YANG-modeled data is protected from modification.
The use of YANG to define data structures, via the "yang-data" 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 Section 3.7 of <xref target="RFC8407"/>.</t>

</section>
</section>
<section anchor="acknowledgments"><name>Acknowledgments</name>

<t>We would like to thank the various reviewers, in particular Brian E. Carpenter and Oskar Camenzind, for their input and discussion on use cases and call flows.</t>

</section>


  </middle>

  <back>

    <references title='Normative References'>





<reference anchor='RFC6241' target='https://www.rfc-editor.org/info/rfc6241'>
<front>
<title>Network Configuration Protocol (NETCONF)</title>
<author fullname='R. Enns' initials='R.' role='editor' surname='Enns'><organization/></author>
<author fullname='M. Bjorklund' initials='M.' role='editor' surname='Bjorklund'><organization/></author>
<author fullname='J. Schoenwaelder' initials='J.' role='editor' surname='Schoenwaelder'><organization/></author>
<author fullname='A. Bierman' initials='A.' role='editor' surname='Bierman'><organization/></author>
<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='RFC6762' target='https://www.rfc-editor.org/info/rfc6762'>
<front>
<title>Multicast DNS</title>
<author fullname='S. Cheshire' initials='S.' surname='Cheshire'><organization/></author>
<author fullname='M. Krochmal' initials='M.' surname='Krochmal'><organization/></author>
<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' target='https://www.rfc-editor.org/info/rfc6763'>
<front>
<title>DNS-Based Service Discovery</title>
<author fullname='S. Cheshire' initials='S.' surname='Cheshire'><organization/></author>
<author fullname='M. Krochmal' initials='M.' surname='Krochmal'><organization/></author>
<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' target='https://www.rfc-editor.org/info/rfc7030'>
<front>
<title>Enrollment over Secure Transport</title>
<author fullname='M. Pritikin' initials='M.' role='editor' surname='Pritikin'><organization/></author>
<author fullname='P. Yee' initials='P.' role='editor' surname='Yee'><organization/></author>
<author fullname='D. Harkins' initials='D.' role='editor' surname='Harkins'><organization/></author>
<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' target='https://www.rfc-editor.org/info/rfc7515'>
<front>
<title>JSON Web Signature (JWS)</title>
<author fullname='M. Jones' initials='M.' surname='Jones'><organization/></author>
<author fullname='J. Bradley' initials='J.' surname='Bradley'><organization/></author>
<author fullname='N. Sakimura' initials='N.' surname='Sakimura'><organization/></author>
<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' target='https://www.rfc-editor.org/info/rfc8040'>
<front>
<title>RESTCONF Protocol</title>
<author fullname='A. Bierman' initials='A.' surname='Bierman'><organization/></author>
<author fullname='M. Bjorklund' initials='M.' surname='Bjorklund'><organization/></author>
<author fullname='K. Watsen' initials='K.' surname='Watsen'><organization/></author>
<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' target='https://www.rfc-editor.org/info/rfc8366'>
<front>
<title>A Voucher Artifact for Bootstrapping Protocols</title>
<author fullname='K. Watsen' initials='K.' surname='Watsen'><organization/></author>
<author fullname='M. Richardson' initials='M.' surname='Richardson'><organization/></author>
<author fullname='M. Pritikin' initials='M.' surname='Pritikin'><organization/></author>
<author fullname='T. Eckert' initials='T.' surname='Eckert'><organization/></author>
<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 &quot;voucher&quot;.</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='RFC8407' target='https://www.rfc-editor.org/info/rfc8407'>
<front>
<title>Guidelines for Authors and Reviewers of Documents Containing YANG Data Models</title>
<author fullname='A. Bierman' initials='A.' surname='Bierman'><organization/></author>
<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='RFC8995' target='https://www.rfc-editor.org/info/rfc8995'>
<front>
<title>Bootstrapping Remote Secure Key Infrastructure (BRSKI)</title>
<author fullname='M. Pritikin' initials='M.' surname='Pritikin'><organization/></author>
<author fullname='M. Richardson' initials='M.' surname='Richardson'><organization/></author>
<author fullname='T. Eckert' initials='T.' surname='Eckert'><organization/></author>
<author fullname='M. Behringer' initials='M.' surname='Behringer'><organization/></author>
<author fullname='K. Watsen' initials='K.' surname='Watsen'><organization/></author>
<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='Michael Richardson'>
	 <organization>Sandelman Software Works</organization>
      </author>
      <author fullname='Thomas Werner'>
	 <organization>Siemens AG</organization>
      </author>
      <date day='4' month='March' year='2022'/>
      <abstract>
	 <t>   RFC8366 defines a digital artifact called voucher as a YANG-defined
   JSON document that has been signed using a Cryptographic Message
   Syntax (CMS) structure.  This memo introduces a variant of the
   voucher structure in which CMS is replaced by the JSON Object Signing
   and Encryption (JOSE) mechanism described in RFC7515 to better
   support use-cases in which JOSE is preferred over CMS.

   In addition to explaining how the format is created, MIME types are
   registered and examples are provided.

	 </t>
      </abstract>
   </front>
   <seriesInfo name='Internet-Draft' value='draft-ietf-anima-jws-voucher-02'/>
   <format target='https://www.ietf.org/archive/id/draft-ietf-anima-jws-voucher-02.txt' type='TXT'/>
</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'>
	 <organization>Watsen Networks</organization>
      </author>
      <author fullname='Russ Housley'>
	 <organization>Vigil Security, LLC</organization>
      </author>
      <author fullname='Sean 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'/>
   <format target='https://www.ietf.org/archive/id/draft-ietf-netconf-sztp-csr-14.txt' type='TXT'/>
</reference>


<reference anchor='I-D.richardson-anima-rfc8366bis'>
   <front>
      <title>A Voucher Artifact for Bootstrapping Protocols</title>
      <author fullname='Kent Watsen'>
	 <organization>Juniper Networks</organization>
      </author>
      <author fullname='Michael C. Richardson'>
	 <organization>Sandelman Software</organization>
      </author>
      <author fullname='Max Pritikin'>
	 <organization>Cisco Systems</organization>
      </author>
      <author fullname='Toerless Eckert'>
	 <organization>Futurewei Technologies Inc.</organization>
      </author>
      <date day='1' month='December' year='2021'/>
      <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&#39;s manufacturer.  This artifact is known as a &quot;voucher&quot;.

   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&#39;s manufacturer
   (i.e., the Manufacturer Authorized Signing Authority (MASA)).

   This document only defines the voucher artifact, leaving it to other
   documents to describe specialized protocols for accessing it.

	 </t>
      </abstract>
   </front>
   <seriesInfo name='Internet-Draft' value='draft-richardson-anima-rfc8366bis-04'/>
   <format target='https://www.ietf.org/archive/id/draft-richardson-anima-rfc8366bis-04.txt' type='TXT'/>
</reference>



<reference anchor='RFC2119' target='https://www.rfc-editor.org/info/rfc2119'>
<front>
<title>Key words for use in RFCs to Indicate Requirement Levels</title>
<author fullname='S. Bradner' initials='S.' surname='Bradner'><organization/></author>
<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' target='https://www.rfc-editor.org/info/rfc8174'>
<front>
<title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
<author fullname='B. Leiba' initials='B.' surname='Leiba'><organization/></author>
<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' target='https://www.rfc-editor.org/info/rfc2986'>
<front>
<title>PKCS #10: Certification Request Syntax Specification Version 1.7</title>
<author fullname='M. Nystrom' initials='M.' surname='Nystrom'><organization/></author>
<author fullname='B. Kaliski' initials='B.' surname='Kaliski'><organization/></author>
<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='RFC5280' target='https://www.rfc-editor.org/info/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'><organization/></author>
<author fullname='S. Santesson' initials='S.' surname='Santesson'><organization/></author>
<author fullname='S. Farrell' initials='S.' surname='Farrell'><organization/></author>
<author fullname='S. Boeyen' initials='S.' surname='Boeyen'><organization/></author>
<author fullname='R. Housley' initials='R.' surname='Housley'><organization/></author>
<author fullname='W. Polk' initials='W.' surname='Polk'><organization/></author>
<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='RFC8340' target='https://www.rfc-editor.org/info/rfc8340'>
<front>
<title>YANG Tree Diagrams</title>
<author fullname='M. Bjorklund' initials='M.' surname='Bjorklund'><organization/></author>
<author fullname='L. Berger' initials='L.' role='editor' surname='Berger'><organization/></author>
<date month='March' year='2018'/>
<abstract><t>This document captures the current syntax used in YANG module tree diagrams.  The purpose of this document is to provide a single location for this definition.  This syntax may be updated from time to time based on the evolution of the YANG language.</t></abstract>
</front>
<seriesInfo name='BCP' value='215'/>
<seriesInfo name='RFC' value='8340'/>
<seriesInfo name='DOI' value='10.17487/RFC8340'/>
</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>


    </references>


<section anchor="app_history"><name>History of Changes [RFC Editor: please delete]</name>

<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 EE 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 EE 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) 
EE 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="voucher-request-prm-yang-module"/></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="uc2"/> 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="uc2"/>.</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 #11).</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="uc2"/>.</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="uc2"/> 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="uc2"/>, 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="app-examples"/>.</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>


  </back>

<!-- ##markdown-source:
H4sIAKf7IWIAA+296VokR5Yo+D+ewi/5Q1AiIiEztVFLFyKRRCsXGpBU3RqN
2olwwCuD8Gh3D0hKyv7ug8x83zzLPMp9kjmr2TFz84iATFXdubf5qpQQ4W7L
sWNnX4bD4aAt22mxl315cvrtUXZbtlfZ8bSYXBZZOctOimZezSZFnb2sJkW2
SQ8Nj09ebg3y8/O6uJH38KPBpBrP8msYalLnF+2wLNqLYT4rr/Phed28KYfz
+nq482SQ10W+l72eF3XeltWsyfLZJHuZz/LL4rqYtYPby71s/9XRy/3sh68H
k7yFAZ/sPHkyaFp48Od8Ws3gk7ZeFINyXtNvTftkZ+cLGHqct3tZ004G83Jv
kGVtNd7LPrormo/gj3F1Pc/Hrf+gubuui4vGfFDVbfgJTDCr2vKiLCbw4ayi
p9q69MPki/aqqvcGQ4AWvHg6yr6qy6KB5xgUp21xcVHM3KdVDbs7LXGnTbb/
NXyicJQPeYaigBlet201/Ca/mg1Pytll9iluomzv9rKXi1k5vqI9TWCOjz7f
/ezpF7zHxayt4Ymvi/o6n93BR8V1Xk4RKLSO0QWu488NzzUCmMAji7rcy67a
dt7sPX58e3s7Ml8/1p2djbIfinpW1G5rZ1fVdd74T/9RW2tpHcNbWsdDtnY4
yl4Uud/Y4bSsWv2IdnVQNuMqO70DKF7bbZzAWtsS/sqbpsg+c7v4IZ9Oy6aY
TouZ28rBN8PPn+48s1s5hdv2t6KeAl7Dx/MrwuyNj5/tZs+eZZ9/9nn2BeD1
ht/pFJb05zGuhbYny385onXk9aSpZm4TL/GjYpodRN/yKcGMxRTAmJ1WF+0t
3Mjsh6p+0/iprsf1x3iB/9zoo6NxbgGq8DRfPx7MKjibtrwp8PadfHXw6ZNn
u/rrZ58+8b8+lV8/23m6o79+svuJ/Pr5zjP99POnn36qvz7b+Ux//eILevZo
+HxkyMxfb5vhTbUYXxV18O2saMfV7GLY/K2dD8eN+7J2gJEB6osxTnheNnuD
cnYR7ebJF5/rWj558rlfIS/26PDwcPj5zpPR7v4J/g3khwkrfpHJF9lpMV4A
tJ8XN+W4yI4mQPCQvNT0ghIT/H3IJ3U0a2CYRVtk1QUgZjFG6pNPiWbynxVc
mCY7nF2Ws6KoG3pZqebu58OdT+mTpsCLj3vi4Xm9eMFkYR8NBsPhEK4sYvO4
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

-->

</rfc>

