<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.5 (Ruby 2.6.6) -->
<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<?rfc linkmailto="no"?>
<?rfc editing="no"?>
<?rfc comments="yes"?>
<?rfc inline="yes"?>
<?rfc rfcedstyle="yes"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-anima-rfc8366bis-11" category="std" consensus="true" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.19.1 -->
  <front>
    <title abbrev="Voucher Artifact">A Voucher Artifact for Bootstrapping Protocols</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-anima-rfc8366bis-11"/>
    <author initials="K." surname="Watsen" fullname="Kent Watsen">
      <organization>Watsen Networks</organization>
      <address>
        <email>kent+ietf@watsen.net</email>
      </address>
    </author>
    <author initials="M." surname="Richardson" fullname="Michael C. Richardson">
      <organization>Sandelman Software</organization>
      <address>
        <email>mcr+ietf@sandelman.ca</email>
        <uri>http://www.sandelman.ca/</uri>
      </address>
    </author>
    <author initials="M." surname="Pritikin" fullname="Max Pritikin">
      <organization>Cisco Systems</organization>
      <address>
        <email>pritikin@cisco.com</email>
      </address>
    </author>
    <author initials="T." surname="Eckert" fullname="Toerless Eckert">
      <organization>Futurewei Technologies Inc.</organization>
      <address>
        <postal>
          <street>2330 Central Expy</street>
          <city>Santa Clara</city>
          <code>95050</code>
          <country>United States of America</country>
        </postal>
        <email>tte+ietf@cs.fau.de</email>
      </address>
    </author>
    <author initials="Q." surname="Ma" fullname="Qiufang Ma">
      <organization>Huawei</organization>
      <address>
        <postal>
          <street>101 Software Avenue, Yuhua District</street>
          <city>Nanjing</city>
          <code>210012</code>
          <country>China</country>
        </postal>
        <email>maqiufang1@huawei.com</email>
      </address>
    </author>
    <date year="2024" month="March" day="04"/>
    <area>Operations</area>
    <workgroup>ANIMA Working Group</workgroup>
    <keyword>voucher</keyword>
    <abstract>
      <?line 112?>

<t>This document defines a strategy to securely assign a pledge to an owner
using an artifact signed, directly or indirectly, by the pledge's manufacturer.
This artifact is known as a "voucher".</t>
      <t>This document defines an artifact format as a YANG-defined JSON or CBOR document
that has been signed using a variety of cryptographic systems.</t>
      <t>The voucher artifact is normally generated by
the pledge's manufacturer (i.e., the Manufacturer Authorized Signing
Authority (MASA)).</t>
      <t>This document updates RFC8366, merging a number of extensions into the YANG.
The RFC8995 voucher request is also merged into this document.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ietf-anima-rfc8366bis/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        anima Working Group mailing list (<eref target="mailto:anima@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/anima/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/anima/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/anima-wg/voucher"/>.</t>
    </note>
  </front>
  <middle>
    <?line 129?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>This document defines a strategy to securely assign a candidate device
(pledge) to an owner using an artifact signed, directly or indirectly,
by the pledge's manufacturer, i.e., the Manufacturer Authorized
Signing Authority (MASA).  This artifact is known as the "voucher".</t>
      <t>The voucher artifact is a JSON <xref target="RFC8259"/> document that
conforms with a data model described by YANG <xref target="RFC7950"/>.
It may also be serialized to CBOR <xref target="CBOR"/>.
It is encoded using the rules defined in <xref target="RFC7951"/>, and
is signed using (by default) a CMS structure <xref target="RFC5652"/>.</t>
      <t>The primary purpose of a voucher is to securely convey a
certificate, the "pinned-domain-cert" (and constrained variations), that a pledge can
use to authenticate subsequent interactions.
A voucher may be useful in several contexts, but the driving motivation
herein is to support secure onboarding mechanisms.
Assigning ownership is important to device onboarding mechanisms so that the pledge
can authenticate the network that is trying to take control of it.</t>
      <t>The lifetimes of vouchers may vary. In some onboarding protocols,
the vouchers may include a nonce restricting them to a single use,
whereas the vouchers in other onboarding protocols may have an
indicated lifetime.
In order to support long lifetimes, this document recommends using short lifetimes with programmatic renewal, see <xref target="renewal-over-revocation"/>.</t>
      <t>This document only defines the voucher artifact, leaving it to other
documents to describe specialized protocols for accessing it.
Some onboarding protocols using the voucher artifact defined in
this document include: <xref target="ZERO-TOUCH"/>, <xref target="SECUREJOIN"/>, and <xref target="BRSKI"/>.</t>
    </section>
    <section anchor="terminology">
      <name>Terminology</name>
      <t>This document uses the following terms:</t>
      <dl>
        <dt>(Voucher) Artifact:</dt>
        <dd>
          <t>Used throughout to represent the voucher as instantiated in the form
of a signed structure.</t>
        </dd>
        <dt>Bootstrapping:</dt>
        <dd>
          <t>The process where a pledge component obtains cryptographic key material to identify 
 and trust future interactions within a specific domain network. Based on imprinted
 key material provided during manufacturing process (see imprinting).</t>
        </dd>
        <dt>Domain:</dt>
        <dd>
          <t>The set of entities or infrastructure under common administrative
control.
The goal of the onboarding protocol is to enable a pledge component to
join a domain and obtain domain specific security credentials.</t>
        </dd>
        <dt>Imprint:</dt>
        <dd>
          <t>The process where a device obtains the cryptographic key material to
identify and trust future interactions generally as part of the manufacturing. 
This term is taken from Konrad Lorenz's work in biology with new ducklings:
"during a critical period, the duckling would assume that anything
that looks like a mother duck is in fact their mother"
<xref target="Stajano99theresurrecting"/>. An equivalent for a device is to
obtain the fingerprint of the manufacturer's root certification authority (root ca)
certificate. A device that imprints on an attacker suffers a similar
fate to a duckling that imprints on a hungry wolf. Imprinting is a
term from psychology and ethology, as described in <xref target="imprinting"/>.</t>
        </dd>
        <dt>Join Registrar (and Coordinator):</dt>
        <dd>
          <t>A representative of the domain that is configured, perhaps
autonomically, to decide whether a new device is allowed to join the
domain. The administrator of the domain interfaces with a join
registrar (and Coordinator) to control this process.
Typically, a join registrar is "inside" its domain. For simplicity,
this document often refers to this as just "registrar".</t>
        </dd>
        <dt>MASA (Manufacturer Authorized Signing Authority):</dt>
        <dd>
          <t>The entity that, for the purpose of this document, issues and signs the
vouchers for a manufacturer's pledges.
In some onboarding protocols, the MASA may have an Internet
presence and be integral to the onboarding process, whereas in
other protocols the MASA may be an offline service that has no
active role in the onboarding process.</t>
        </dd>
        <dt>malicious registrar:</dt>
        <dd>
          <t>An on-path active attacker that presents itself as a legitimate registrar, but which is in fact under the control of an attacker.</t>
        </dd>
        <dt>Onboarding:</dt>
        <dd>
          <t>Onboarding describes the process to provide necessary operational data to pledge 
components and completes the process to bring a device into an operational state. 
This data may be configuration data, or also application specific cryptographic 
key material (application speciifc security credentials).</t>
        </dd>
        <dt>Owner:</dt>
        <dd>
          <t>The entity that controls the private key of the "pinned-domain-cert"
certificate conveyed by the voucher.</t>
        </dd>
        <dt>Pledge:</dt>
        <dd>
          <t>The prospective component attempting to find and securely join a
domain.
When shipped or in factory reset mode, it only trusts authorized representatives of the
manufacturer.</t>
        </dd>
        <dt>Registrar:</dt>
        <dd>
          <t>See join registrar.</t>
        </dd>
        <dt>TOFU (Trust on First Use):</dt>
        <dd>
          <t>Where a pledge component makes no security decisions but rather simply
trusts the first domain entity it is contacted by.
Used similarly to <xref target="RFC7435"/>.
This is also known as the "resurrecting duckling" model.</t>
        </dd>
        <dt>Voucher:</dt>
        <dd>
          <t>A short form for Voucher Artifact.  It refers to the signed statement
from the MASA service that indicates to a pledge
the cryptographic identity of the domain it should trust.
When clarity is needed, it may be preceeded by the type of the signature, such as CMS, JWS or COSE.</t>
        </dd>
        <dt>Voucher Data:</dt>
        <dd>
          <t>The raw (serialized) representation of the YANG without any enclosing signature.
Current formats include JSON and CBOR.</t>
        </dd>
        <dt>Voucher Request:</dt>
        <dd>
          <t>A signed artifact sent from the Pledge to the Registrar, or from the Registrar to the MASA for Voucher acquisition.</t>
        </dd>
        <dt>Pledge Voucher Request (PVR):</dt>
        <dd>
          <t>A signed artifact sent from the Pledge to the Registrar. It is a special form of Voucher Request.</t>
        </dd>
        <dt>Registrar Voucher Request (RVR):</dt>
        <dd>
          <t>A signed artifact sent from the Registrar to the MASA. It is a special form of Voucher Request.</t>
        </dd>
      </dl>
    </section>
    <section anchor="requirements-language">
      <name>Requirements Language</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <?line -18?>

</section>
    <section anchor="survey-of-voucher-types">
      <name>Survey of Voucher Types</name>
      <t>A voucher is a cryptographically protected statement to the pledge
device authorizing a zero-touch "imprint" on the join registrar of the
domain. The specific information a voucher provides is influenced by the
onboarding use case.</t>
      <t>The voucher can impart the following information to
the join registrar and pledge:</t>
      <dl>
        <dt>Assertion Basis:</dt>
        <dd>
          <t>Indicates the method that protects
the imprint (this is distinct from the voucher signature that
protects the voucher itself). This might include
manufacturer-asserted ownership verification, assured
logging operations, or reliance on pledge endpoint behavior
such as secure root of trust
of measurement. The join registrar might use this information.
Only some methods are normatively defined in this
document. Other methods are left for future work.</t>
        </dd>
        <dt>Authentication of Join Registrar:</dt>
        <dd>
          <t>Indicates how the pledge
can authenticate the join registrar.  This document defines
a mechanism to pin the domain certificate, or a raw public key.
Pinning a symmetric key, or "CN-ID" or "DNS-ID"
information (as defined in <xref target="RFC6125"/>) is left for future work.</t>
        </dd>
        <dt>Anti-Replay Protections:</dt>
        <dd>
          <t>Time- or nonce-based
information to constrain the voucher to time periods or bootstrap
attempts.</t>
        </dd>
      </dl>
      <t>A number of onboarding scenarios can be met using differing
combinations of this information. All scenarios address the primary
threat of an on-path active attacker (or MiTM) impersonating the registrar.
This would gain control over the pledge device.
The following combinations are "types" of vouchers:</t>
      <table>
        <thead>
          <tr>
            <th align="left"> </th>
            <th align="right">Assertion</th>
            <th align="right"> </th>
            <th align="right">Registrar ID</th>
            <th align="right"> </th>
            <th align="right">Validity</th>
            <th align="right"> </th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">Voucher Type</td>
            <td align="right">Logged</td>
            <td align="right">Verified</td>
            <td align="right">Trust Anchor</td>
            <td align="right">CN-ID or DNS-ID</td>
            <td align="right">RTC</td>
            <td align="right">Nonce</td>
          </tr>
          <tr>
            <td align="left">Audit</td>
            <td align="right">X</td>
            <td align="right"> </td>
            <td align="right">X</td>
            <td align="right"> </td>
            <td align="right"> </td>
            <td align="right">X</td>
          </tr>
          <tr>
            <td align="left">Nonceless Audit</td>
            <td align="right">X</td>
            <td align="right"> </td>
            <td align="right">X</td>
            <td align="right"> </td>
            <td align="right">X</td>
            <td align="right"> </td>
          </tr>
          <tr>
            <td align="left">Owner Audit</td>
            <td align="right">X</td>
            <td align="right">X</td>
            <td align="right">X</td>
            <td align="right"> </td>
            <td align="right">X</td>
            <td align="right">X</td>
          </tr>
          <tr>
            <td align="left">Owner ID</td>
            <td align="right"> </td>
            <td align="right">X</td>
            <td align="right">X</td>
            <td align="right">X</td>
            <td align="right">X</td>
            <td align="right"> </td>
          </tr>
          <tr>
            <td align="left">Bearer out-of-scope</td>
            <td align="right">X</td>
            <td align="right"> </td>
            <td align="right">wildcard</td>
            <td align="right">wildcard</td>
            <td align="right">optional</td>
            <td align="right">opt</td>
          </tr>
        </tbody>
      </table>
      <t>NOTE: All voucher types include a 'pledge ID serial-number'
      (not shown here for space reasons).</t>
      <dl>
        <dt>Audit Voucher:</dt>
        <dd>
          <t>An Audit Voucher is named after the logging assertion mechanisms
that the registrar then "audits" to enforce local policy. The
registrar mitigates a malicious registrar by auditing that an unknown
malicious registrar does not appear in the log entries.
This does not
directly prevent a malicious registrar but provides a response mechanism that
ensures the MiTM is unsuccessful. The advantage is that actual
ownership knowledge is not required on the MASA service.</t>
        </dd>
        <dt>Nonceless Audit Voucher:</dt>
        <dd>
          <t>An Audit Voucher without a validity period statement. Fundamentally,
it is the same as an Audit Voucher except that it can be issued in
advance to support network partitions or to provide a permanent
voucher for remote deployments.</t>
        </dd>
        <dt>Ownership Audit Voucher:</dt>
        <dd>
          <t>An Audit Voucher where the MASA service has verified the registrar
as the authorized owner.
The MASA service mitigates a MiTM registrar by refusing to generate
Audit Vouchers for unauthorized registrars. The registrar uses audit
techniques to supplement the MASA. This provides an ideal sharing of
policy decisions and enforcement between the vendor and the owner.</t>
        </dd>
        <dt>Ownership ID Voucher:</dt>
        <dd>
          <t>Named after inclusion of the pledge's CN-ID or DNS-ID within the
voucher. The MASA service mitigates a MiTM registrar by identifying
the specific registrar (via WebPKI) authorized to own the pledge.</t>
        </dd>
        <dt>Bearer Voucher:</dt>
        <dd>
          <t>A Bearer Voucher is named after the inclusion of a registrar ID
wildcard. Because the registrar identity is not indicated, this
voucher type must be treated as a secret and protected from exposure
as any 'bearer' of the voucher can claim the pledge
device. Publishing a nonceless bearer voucher effectively turns the
specified pledge into a "TOFU" device with minimal mitigation
against MiTM registrars. Bearer vouchers are out of scope.</t>
        </dd>
      </dl>
    </section>
    <section anchor="changes-since-rfc8366">
      <name>Changes since RFC8366</name>
      <t><xref target="RFC8366"/> was published in 2018 during the development of <xref target="BRSKI"/>,
<xref target="ZERO-TOUCH"/> and other work-in-progress efforts.
Since then the industry has matured significantly, and the in-the-field activity which this document supports has become known as <em>onboarding</em> rather than <em>bootstrapping</em>.</t>
      <t>The focus of <xref target="BRSKI"/> was onboarding of ISP and Enterprise owned wired routing and switching equipment, with IoT devices being a less important aspect.
<xref target="ZERO-TOUCH"/> has focused upon onboarding of CPE equipment like cable modems and other larger IoT devices, again with smaller IoT devices being of less import.</t>
      <t>Since <xref target="BRSKI"/> was published there is now a mature effort to do application-level onboarding of constrained IoT devices defined by The Thread and Fairhair (now OCF) consortia.
The <xref target="cBRSKI"/> document has defined a version of <xref target="BRSKI"/> that is useable over constrained 802.15.4 networks using CoAP and DTLS, while <xref target="I-D.selander-ace-ake-authz"/> provides for using CoAP and EDHOC on even more constrained devices with very constrained networks.</t>
      <t><xref target="PRM"/> has created a new methodology for onboarding that does not depend upon a synchronous connection between the Pledge and the Registrar.
This mechanism uses a mobile Registrar Agent that works to collect and transfer signed artifacts via physical travel from one network to another.</t>
      <t>Both <xref target="cBRSKI"/> and <xref target="PRM"/> require extensions to the Voucher Request and the resulting Voucher. The new attribtes are required to carry the additional attributes and describe the extended semantics.
In addition <xref target="cBRSKI"/> uses the serialization mechanism described in <xref target="YANGCBOR"/> to produce significantly more compact artifacts.</t>
      <t>When the process to define <xref target="cBRSKI"/> and <xref target="PRM"/> was started, there was a belief that the appropriate process was to use the <xref target="RFC8040"/> <em>augment</em> mechanism to further extend both the voucher request <xref target="BRSKI"/> and voucher <xref target="RFC8366"/> artifacts.
However, <xref target="PRM"/> needs to extend an enumerated type with additional values and <em>augment</em> can not do this, so that was initially the impetus for this document.</t>
      <t>An attempt was then made to determine what would happen if one wanted to have a constrained version of the <xref target="PRM"/> voucher artifact.
The result was invalid YANG, with multiple definitions of the core attributes from the <xref target="RFC8366"/> voucher artifact.
After some discussion, it was determined that the <em>augment</em> mechanism did not work, nor did it work better when <xref target="RFC8040"/> yang-data was replaced with the <xref target="RFC8791"/> structure mechanisms.</t>
      <t>After significant discussion the decision was made to simply roll all of the needed extensions up into this document as "RFC8366bis".</t>
      <t>This document therefore represents a merge of YANG definitions from <xref target="RFC8366"/>, the voucher-request from <xref target="BRSKI"/>, and then extensions to each of these from <xref target="cBRSKI"/>, <xref target="CLOUD"/> and <xref target="PRM"/>.
There are some difficulties with this approach: this document does not attempt to establish rigorous semantic definitions for how some attributes are to be used, referring normatively instead to the other relevant documents.</t>
    </section>
    <section anchor="signature-mechanisms">
      <name>Signature mechanisms</name>
      <t>Three signature systems have been defined for vouchers and voucher-requests.</t>
      <t><xref target="I-D.ietf-anima-constrained-voucher"/> defines a mechanism that uses COSE <xref target="RFC9052"/>, with the voucher data encoded using <xref target="I-D.ietf-core-sid"/>.
However, as the SID processe requires up-to-date YANG, the SID values for this mechanism are presented in this document.</t>
      <t><xref target="I-D.ietf-anima-jws-voucher"/> defines a mechanism that uses JSON <xref target="RFC8259"/> and <xref target="JWS"/>.</t>
      <t>The CMS mechanism first defined in <xref target="RFC8366"/> continues to be defined here.</t>
      <section anchor="cms-voucher">
        <name>CMS Format Voucher Artifact</name>
        <t>The IETF evolution of PKCS#7 is CMS <xref target="RFC5652"/>.
A CMS-signed voucher, the default type, contains a ContentInfo
structure with the voucher content. An eContentType of 40
indicates that the content is a JSON-encoded voucher.</t>
        <t>The signing structure is a CMS SignedData structure, as specified by
Section 5.1 of <xref target="RFC5652"/>, encoded using ASN.1 Distinguished Encoding
Rules (DER), as specified in ITU-T X.690 <xref target="ITU-T.X690.2015"/>.</t>
        <t>To facilitate interoperability, <xref target="vcj"/> in this document registers the
media type "application/voucher-cms+json" and the filename extension
".vcj".</t>
        <t>The CMS structure <bcp14>MUST</bcp14> contain a 'signerInfo' structure, as
described in Section 5.1 of <xref target="RFC5652"/>, containing the
signature generated over the content using a private key
trusted by the recipient.
Normally, the recipient is the pledge and the signer is the MASA.
In the Voucher Request, the signer is the pledge, or the Registrar.
Within this document, the signer is assumed to be the MASA.</t>
        <t>Note that Section 5.1 of <xref target="RFC5652"/> includes a
discussion about how to validate a CMS object, which is really a
PKCS7 object (cmsVersion=1).  Intermediate systems (such the
Bootstrapping Remote Secure Key Infrastructures <xref target="BRSKI"/> registrar)
that might need to evaluate the voucher in flight <bcp14>MUST</bcp14> be prepared for
such an older format.
No signaling is necessary, as the manufacturer knows the capabilities
of the pledge and will use an appropriate format voucher for each
pledge.</t>
        <t>The CMS structure <bcp14>SHOULD</bcp14> also contain all of the certificates
leading up to and including the signer's trust anchor certificate
known to the recipient.  The inclusion of the trust anchor is
unusual in many applications, but third parties cannot accurately
audit the transaction without it.</t>
        <t>The CMS structure <bcp14>MAY</bcp14> also contain revocation objects for any
intermediate certificate authorities (CAs) between the
voucher issuer and the trust anchor known to the recipient.
However, the use of CRLs and other validity mechanisms is
discouraged, as the pledge is unlikely to be able to perform
online checks and is unlikely to have a trusted clock source.
As described below, the use of short-lived vouchers and/or a
pledge-provided nonce provides a freshness guarantee.</t>
      </section>
    </section>
    <section anchor="voucher">
      <name>Voucher Artifact</name>
      <t>The voucher's primary purpose is to securely assign a pledge to an
owner.
The voucher informs the pledge which entity it should consider to be
its owner.</t>
      <t>This document defines a voucher that is a JSON-encoded or CBOR-encoded instance of the
YANG module defined in <xref target="voucher-yang-module"/>.</t>
      <t>This format is described here as a practical basis for some uses (such
as in NETCONF), but more to clearly indicate what vouchers look like
in practice.
This description also serves to validate the YANG data model.</t>
      <t><xref target="RFC8366"/> defined a media type and a filename extension for the
CMS-encoded JSON type.
Which type of voucher is expected is signaled (where possible) in the form of a MIME
Content-Type, an HTTP Accept: header, or more mundane methods like use of a filename extension  when a voucher is transferred on a USB key.</t>
      <section anchor="voucher-tree-diagram">
        <name>Tree Diagram</name>
        <t>The following tree diagram illustrates a high-level view of a voucher
document.
The notation used in this diagram is described in <xref target="RFC8340"/>.
Each node in the diagram is fully described by the YANG module in
<xref target="voucher-yang-module"/>.
Please review the YANG module for a detailed description of the
voucher format.</t>
        <artwork><![CDATA[
module: ietf-voucher

  structure voucher:
    +-- 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
       +-- pinned-domain-pubk?              binary
       +-- pinned-domain-pubk-sha256?       binary
       +-- last-renewal-date?               yang:date-and-time
       +-- est-domain?                      ietf:uri
       +-- additional-configuration?        ietf:uri
]]></artwork>
      </section>
      <section anchor="voucher-examples">
        <name>Examples</name>
        <t>This section provides voucher examples for illustration
purposes.  These examples conform to the encoding rules
defined in <xref target="RFC8259"/>.</t>
        <t>The following example illustrates an ephemeral voucher (uses a nonce).
The MASA generated this voucher using the 'logged' assertion type, knowing
that it would be suitable for the pledge making the request.</t>
        <artwork><![CDATA[
{
  "ietf-voucher:voucher": {
    "created-on": "2016-10-07T19:31:42Z",
    "assertion": "logged",
    "serial-number": "JADA123456789",
    "idevid-issuer": "base64encodedvalue==",
    "pinned-domain-cert": "base64encodedvalue==",
    "nonce": "base64encodedvalue=="
  }
}
]]></artwork>
        <t>The following example illustrates a non-ephemeral voucher (no nonce).
While the voucher itself expires after two weeks, it presumably can
be renewed for up to a year.   The MASA generated this voucher
using the 'verified' assertion type, which should satisfy all pledges.</t>
        <artwork><![CDATA[
{
  "ietf-voucher:voucher": {
    "created-on": "2016-10-07T19:31:42Z",
    "expires-on": "2016-10-21T19:31:42Z",
    "assertion": "verified",
    "serial-number": "JADA123456789",
    "idevid-issuer": "base64encodedvalue==",
    "pinned-domain-cert": "base64encodedvalue==",
    "domain-cert-revocation-checks": true,
    "last-renewal-date": "2017-10-07T19:31:42Z"
  }
}
]]></artwork>
      </section>
      <section anchor="voucher-yang-module">
        <name>YANG Module</name>
        <sourcecode type="yang" markers="true"><![CDATA[
module ietf-voucher {
  yang-version 1.1;
  namespace "urn:ietf:params:xml:ns:yang:ietf-voucher";
  prefix vch;

  import ietf-yang-types {
    prefix yang;
    reference
      "RFC 6991: Common YANG Data Types";
  }
  import ietf-inet-types {
    prefix ietf;
    reference
      "RFC 6991: Common YANG Data Types";
  }
  import ietf-yang-structure-ext {
    prefix sx;
  }

  organization
    "IETF ANIMA Working Group";
  contact
    "WG Web:   <https://datatracker.ietf.org/wg/anima/>
     WG List:  <mailto:anima@ietf.org>
     Author:   Kent Watsen
               <mailto:kwatsen@juniper.net>
     Author:   Max Pritikin
               <mailto:pritikin@cisco.com>
     Author:   Michael Richardson
               <mailto:mcr+ietf@sandelman.ca>
     Author:   Toerless Eckert
               <mailto:tte+ietf@cs.fau.de>";
  description
    "This module defines the format for a voucher, which is
     produced by a pledge's manufacturer or delegate (MASA)
     to securely assign a pledge to an 'owner', so that the
     pledge may establish a secure connection to the owner's
     network infrastructure.

     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) 2023 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 8366; see the
     RFC itself for full legal notices.";

  revision 2023-01-10 {
    description
      "updated to support new assertion enumerated type";
    reference
      "RFC ZZZZ Voucher Profile for Bootstrapping Protocols";
  }

  // Top-level statement
  sx:structure voucher {
    uses voucher-artifact-grouping;
  }

  // Grouping defined for future augmentations

  grouping voucher-artifact-grouping {
    description
      "Grouping to allow reuse/extensions in future work.";
    container voucher {
      description
        "A voucher assigns a pledge to an owner using
         the (pinned-domain-cert) value.";
      leaf created-on {
        type yang:date-and-time;
        mandatory false;
        description
          "A value indicating the date this voucher was created.
           This node is primarily for human consumption and auditing.
           Future work MAY create verification requirements based on
           this node.";
      }
      leaf expires-on {
        type yang:date-and-time;
        must 'not(../nonce)';
        description
          "A value indicating when this voucher expires.  The node is
           optional as not all pledges support expirations, such as
           pledges lacking a reliable clock.

           If this field exists, then the pledges MUST ensure that
           the expires-on time has not yet passed. A pledge without
           an accurate clock cannot meet this requirement.

           The expires-on value MUST NOT exceed the expiration date
           of any of the listed 'pinned-domain-cert' certificates.";
      }
      leaf assertion {
        type enumeration {
          enum verified {
            value 0;
            description
              "Indicates that the ownership has been positively
               verified by the MASA (e.g., through sales channel
               integration).";
          }
          enum logged {
            value 1;
            description
              "Indicates that the voucher has been issued after
               minimal verification of ownership or control.  The
               issuance has been logged for detection of
               potential security issues (e.g., recipients of
               vouchers might verify for themselves that unexpected
               vouchers are not in the log).  This is similar to
               unsecured trust-on-first-use principles but with the
               logging providing a basis for detecting unexpected
               events.";
          }
          enum proximity {
            value 2;
            description
              "Indicates that the voucher has been issued after
               the MASA verified a proximity proof provided by the
               device and target domain.  The issuance has been
               logged for detection of potential security issues.";
          }
          enum agent-proximity {
            value 3;
            description
              "Mostly identical to proximity, but
               indicates that the voucher has been issued
               after the MASA has verified a statement that
               a registrar agent has made contact with the device.";
          }
        }
      }
      leaf serial-number {
        type string;
        mandatory true;
        description
          "The serial-number of the hardware.  When processing a
           voucher, a pledge MUST ensure that its serial-number
           matches this value.  If no match occurs, then the
           pledge MUST NOT process this voucher.";
      }
      leaf idevid-issuer {
        type binary;
        description
          "The Authority Key Identifier OCTET STRING (as defined in
           Section 4.2.1.1 of RFC 5280) from the pledge's IDevID
           certificate.  Optional since some serial-numbers are
           already unique within the scope of a MASA.
           Inclusion of the statistically unique key identifier
           ensures statistically unique identification of the
           hardware.
           When processing a voucher, a pledge MUST ensure that its
           IDevID Authority Key Identifier matches this value.  If no
           match occurs, then the pledge MUST NOT process this
           voucher.
           When issuing a voucher, the MASA MUST ensure that this
           field is populated for serial-numbers that are not
           otherwise unique within the scope of the MASA.";
      }
      leaf pinned-domain-cert {
        type binary;
        mandatory false;
        description
          "An X.509 v3 certificate structure, as specified by
           RFC 5280, using Distinguished Encoding Rules (DER)
           encoding, as defined in ITU-T X.690.

           This certificate is used by a pledge to trust a Public Key
           Infrastructure in order to verify a domain certificate
           supplied to the pledge separately by the bootstrapping
           protocol.  The domain certificate MUST have this
           certificate somewhere in its chain of certificates.
           This certificate MAY be an end-entity certificate,
           including a self-signed entity.";
        reference
          "RFC 5280:
             Internet X.509 Public Key Infrastructure Certificate
             and Certificate Revocation List (CRL) Profile.
           ITU-T X.690:
              Information technology - ASN.1 encoding rules:
              Specification of Basic Encoding Rules (BER),
              Canonical Encoding Rules (CER) and Distinguished
              Encoding Rules (DER).";
      }
      leaf domain-cert-revocation-checks {
        type boolean;
        description
          "A processing instruction to the pledge that it MUST (true)
           or MUST NOT (false) verify the revocation status for the
           pinned domain certificate.  If this field is not set, then
           normal PKIX behavior applies to validation of the domain
           certificate.";
      }
      leaf nonce {
        type binary {
          length "8..32";
        }
        must 'not(../expires-on)';
        description
          "A value that can be used by a pledge in some bootstrapping
           protocols to enable anti-replay protection.  This node is
           optional because it is not used by all bootstrapping
           protocols.

           When present, the pledge MUST compare the provided nonce
           value with another value that the pledge randomly
           generated and sent to a bootstrap server in an earlier
           bootstrapping message.  If the value is present, but
           the values do not match, then the pledge MUST NOT process
           this voucher.";
      }
      leaf pinned-domain-pubk {
        type binary;
        description
          "The pinned-domain-pubk may replace the
             pinned-domain-cert in constrained uses of
             the voucher. The pinned-domain-pubk
             is the Raw Public Key of the Registrar.
             This field is encoded as a Subject Public Key Info block
             as specified in RFC7250, in section 3.
             The ECDSA algorithm MUST be supported.
             The EdDSA algorithm as specified in
             draft-ietf-tls-rfc4492bis-17 SHOULD be supported.
             Support for the DSA algorithm is not recommended.
             Support for the RSA algorithm is a MAY.";
      }
      leaf pinned-domain-pubk-sha256 {
        type binary;
        description
          "The pinned-domain-pubk-sha256 is a second
             alternative to pinned-domain-cert.  In many cases the
             public key of the domain has already been transmitted
             during the key agreement process, and it is wasteful
             to transmit the public key another two times.
             The use of a hash of public key info, at 32-bytes for
             sha256 is a significant savings compared to an RSA
             public key, but is only a minor savings compared to
             a 256-bit ECDSA public-key.
             Algorithm agility is provided by extensions to this
             specification which can define a new leaf for another
             hash type.";
      }
      leaf last-renewal-date {
        type yang:date-and-time;
        must '../expires-on';
        description
          "The date that the MASA projects to be the last date it
           will renew a voucher on. This field is merely
           informative; it is not processed by pledges.

           Circumstances may occur after a voucher is generated that
           may alter a voucher's validity period.  For instance,
           a vendor may associate validity periods with support
           contracts, which may be terminated or extended
           over time.";
      }
      // from BRSKI-CLOUD
      leaf est-domain {
        type ietf:uri;
        description
          "The est-domain is a URL to which the Pledge should
             continue doing enrollment rather than with the
             Cloud Registrar.
             The pinned-domain-cert contains a trust-anchor
             which is to be used to authenticate the server
             found at this URI.
            ";
      }
      leaf additional-configuration {
        type ietf:uri;
        description
          "The additional-configuration attribute contains a
             URL to which the Pledge can retrieve additional
             configuration information.
             The contents of this URL are vendor specific.
             This is intended to do things like configure
             a VoIP phone to point to the correct hosted
             PBX, for example.";
      }
    } // end voucher
  } // end voucher-grouping

}
]]></sourcecode>
      </section>
      <section anchor="ietf-voucher-sid-values">
        <name>ietf-voucher SID values</name>
        <t><xref target="RFC9148"/> explains how to serialize YANG into CBOR, and for this a series of SID values are required.
While <xref target="I-D.ietf-core-sid"/> defines the management process for these values, due to the immaturity  of the tooling around this YANG-SID mechanisms, the following values are considered normative.
It is believed, however, that they will not change.</t>
        <artwork><![CDATA[
           
      SID Assigned to
--------- -------------------------------------------------- 
     2451 data /ietf-voucher:voucher/voucher
     2452 data /ietf-voucher:voucher/voucher/assertion
     2453 data /ietf-voucher:voucher/voucher/created-on
     2454 data .../domain-cert-revocation-checks
     2455 data /ietf-voucher:voucher/voucher/expires-on
     2456 data /ietf-voucher:voucher/voucher/idevid-issuer
     2457 data /ietf-voucher:voucher/voucher/last-renewal-date
     2458 data /ietf-voucher:voucher/voucher/nonce
     2459 data /ietf-voucher:voucher/voucher/pinned-domain-cert
     2460 data /ietf-voucher:voucher/voucher/pinned-domain-pubk
     2461 data .../pinned-domain-pubk-sha256
     2462 data /ietf-voucher:voucher/voucher/serial-number
     2463 data .../additional-configuration
     2466 data /ietf-voucher:voucher/voucher/est-domain
]]></artwork>
        <t>The "assertion" attribute is an enumerated type <xref target="RFC8366"/>, and the current PYANG tooling does not document the valid values for this attribute.
In the JSON serialization, the literal strings from the enumerated types are used so there is no ambiguity.
In the CBOR serialization, a small integer is used.
This following values are documented here, but the YANG module should be considered authoritative. No IANA registry is provided or necessary because the YANG module (and this document) would be extended when there are new entries to make.</t>
        <table anchor="assertion-enums">
          <name>CBOR integers for the "assertion" attribute enum</name>
          <thead>
            <tr>
              <th align="left">Integer</th>
              <th align="left">Assertion Type</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">0</td>
              <td align="left">verified</td>
            </tr>
            <tr>
              <td align="left">1</td>
              <td align="left">logged</td>
            </tr>
            <tr>
              <td align="left">2</td>
              <td align="left">proximity</td>
            </tr>
            <tr>
              <td align="left">3</td>
              <td align="left">agent-proximity</td>
            </tr>
          </tbody>
        </table>
      </section>
    </section>
    <section anchor="voucher-request">
      <name>Voucher Request Artifact</name>
      <t><xref section="3" sectionFormat="comma" target="BRSKI"/> defined a Voucher-Request Artifact as an augmented artifact from the Voucher Artifact originally defined in <xref target="RFC8366"/>.
That definition has been moved to this document, and translated from YANG-DATA <xref target="RFC8040"/> to the SX:STRUCTURE extension <xref target="RFC8791"/>.</t>
      <section anchor="voucher-request-tree-diagram">
        <name>Tree Diagram</name>
        <t>The following tree diagram illustrates a high-level view of a voucher
request document.
The notation used in this diagram is described in <xref target="RFC8340"/>.
Each node in the diagram is fully described by the YANG module in
<xref target="voucher-request-yang-module"/>.</t>
        <artwork><![CDATA[
module: ietf-voucher-request

  structure voucher:
    +-- 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
       +-- pinned-domain-pubk?                        binary
       +-- pinned-domain-pubk-sha256?                 binary
       +-- last-renewal-date?
       |       yang:date-and-time
       +-- est-domain?                                ietf:uri
       +-- additional-configuration?                  ietf:uri
       +-- prior-signed-voucher-request?              binary
       +-- proximity-registrar-cert?                  binary
       +-- proximity-registrar-pubk?                  binary
       +-- proximity-registrar-pubk-sha256?           binary
       +-- agent-signed-data?                         binary
       +-- agent-provided-proximity-registrar-cert?   binary
       +-- agent-sign-cert?                           binary
]]></artwork>
      </section>
      <section anchor="voucher-request-yang-module">
        <name>"ietf-voucher-request" Module</name>
        <t>The ietf-voucher-request YANG module is derived from the ietf-voucher module.</t>
        <sourcecode type="yang" markers="true"><![CDATA[
module ietf-voucher-request {
  yang-version 1.1;
  namespace "urn:ietf:params:xml:ns:yang:ietf-voucher-request";
  prefix vcr;

  import ietf-yang-structure-ext {
    prefix sx;
  }
  import ietf-voucher {
    prefix vch;
    description
      "This module defines the format for a voucher,
       which is produced by a pledge's manufacturer or
       delegate (MASA) to securely assign a pledge to
       an 'owner', so that the pledge may establish a secure
       connection to the owner's network infrastructure";
    reference
      "RFC 8366: Voucher Artifact for
       Bootstrapping Protocols";
  }

  organization
    "IETF ANIMA Working Group";
  contact
    "WG Web:   <https://datatracker.ietf.org/wg/anima/>
     WG List:  <mailto:anima@ietf.org>
     Author:   Kent Watsen
               <mailto:kent+ietf@watsen.net>
     Author:   Michael H. Behringer
               <mailto:Michael.H.Behringer@gmail.com>
     Author:   Toerless Eckert
               <mailto:tte+ietf@cs.fau.de>
     Author:   Max Pritikin
               <mailto:pritikin@cisco.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) 2019 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
     (http://trustee.ietf.org/license-info).

     This version of this YANG module is part of RFC XXXX; see the
     RFC itself for full legal notices.";

  revision 2023-01-10 {
    description
      "Initial version";
    reference
      "RFC XXXX: Bootstrapping Remote Secure Key Infrastructure";
  }

  // Top-level statement
  sx:structure voucher {
    uses voucher-request-grouping;
  }

  // Grouping defined for future usage

  grouping voucher-request-grouping {
    description
      "Grouping to allow reuse/extensions in future work.";
    uses vch:voucher-artifact-grouping {
      refine "voucher/created-on" {
        mandatory false;
      }
      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
          "Adds leaf nodes appropriate for requesting vouchers.";
        leaf prior-signed-voucher-request {
          type binary;
          description
            "If it is necessary to change a voucher, or re-sign and
             forward a voucher that was previously provided along a
             protocol path, then the previously signed voucher SHOULD
             be included in this field.

             For example, a pledge might sign a voucher request
             with a proximity-registrar-cert, and the registrar
             then includes it as the prior-signed-voucher-request
             field.  This is a simple mechanism for a chain of
             trusted parties to change a voucher request, while
             maintaining the prior signature information.

             The Registrar and MASA MAY examine the prior signed
             voucher information for the
             purposes of policy decisions. For example this
             information could be useful to a MASA to determine
             that both pledge and registrar agree on proximity
             assertions. The MASA SHOULD remove all
             prior-signed-voucher-request information when
             signing a voucher for imprinting so as to minimize
             the final voucher size.";
        }
        leaf 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.X690.1994].

             The first certificate in the Registrar TLS server
             certificate_list sequence  (the end-entity TLS
             certificate, see [RFC8446]) presented by the Registrar
             to the Pledge.
             This MUST be populated in a Pledge's voucher request
             when a proximity assertion is requested.";
        }
        leaf proximity-registrar-pubk {
          type binary;
          description
            "The proximity-registrar-pubk replaces
             the proximity-registrar-cert in constrained uses of
             the voucher-request.
             The proximity-registrar-pubk is the
             Raw Public Key of the Registrar. This field is encoded
             as specified in RFC7250, section 3.
             The ECDSA algorithm MUST be supported.
             The EdDSA algorithm as specified in
             draft-ietf-tls-rfc4492bis-17 SHOULD be supported.
             Support for the DSA algorithm is not recommended.
             Support for the RSA algorithm is a MAY, but due to
             size is discouraged.";
        }
        leaf proximity-registrar-pubk-sha256 {
          type binary;
          description
            "The proximity-registrar-pubk-sha256
             is an alternative to both
             proximity-registrar-pubk and pinned-domain-cert.
             In many cases the public key of the domain has already
             been transmitted during the key agreement protocol,
             and it is wasteful to transmit the public key another
             two times.
             The use of a hash of public key info, at 32-bytes for
             sha256 is a significant savings compared to an RSA
             public key, but is only a minor savings compared to
             a 256-bit ECDSA public-key.
             Algorithm agility is provided by extensions to this
             specification which may define a new leaf for another
             hash type.";
        }
        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 agent-sign-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.
             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.";
          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";
        }
      }
    }
  }
}
]]></sourcecode>
      </section>
      <section anchor="voucher-request-sid-values">
        <name>ietf-voucher-request SID values</name>
        <t><xref target="RFC9148"/> explains how to serialize YANG into CBOR, and for this a series of SID values are required.
While <xref target="I-D.ietf-core-sid"/> defines the management process for these values, due to the immaturity  of the tooling around this YANG-SID mechanisms, the following values are considered normative.
It is believed, however, that they will not change.</t>
        <artwork><![CDATA[
           
      SID Assigned to
--------- -------------------------------------------------- 
     2501 data /ietf-voucher-request:voucher/voucher
     2515 data .../agent-provided-proximity-registrar-cert
     2516 data .../agent-sign-cert
     2517 data .../agent-signed-data
     2502 data /ietf-voucher-request:voucher/voucher/assertion
     2503 data /ietf-voucher-request:voucher/voucher/created-on
     2504 data .../domain-cert-revocation-checks
     2505 data /ietf-voucher-request:voucher/voucher/expires-on
     2506 data .../idevid-issuer
     2507 data .../last-renewal-date
     2508 data /ietf-voucher-request:voucher/voucher/nonce
     2509 data .../pinned-domain-cert
     2518 data .../pinned-domain-pubk
     2519 data .../pinned-domain-pubk-sha256
     2510 data .../prior-signed-voucher-request
     2511 data .../proximity-registrar-cert
     2513 data .../proximity-registrar-pubk
     2512 data .../proximity-registrar-pubk-sha256
     2514 data .../serial-number
           
 WARNING, obsolete definitions
]]></artwork>
        <t>The "assertion" attribute is an enumerated type, and has values as defined above in <xref target="assertion-enums"/>.</t>
      </section>
    </section>
    <section anchor="design-con">
      <name>Design Considerations</name>
      <section anchor="renewal-over-revocation">
        <name>Renewals Instead of Revocations</name>
        <t>The lifetimes of vouchers may vary.  In some onboarding protocols,
the vouchers may be created and consumed immediately, whereas in other
onboarding solutions, there may be a significant time delay between
when a voucher is created and when it is consumed.
In cases when there is a time delay, there is a need for the pledge
to ensure that the assertions made when the voucher was created are
still valid.</t>
        <t>A revocation artifact is generally used to verify the continued validity
of an assertion such as a PKIX certificate, web token, or a "voucher".  With
this approach, a potentially long-lived assertion is paired with a reasonably
fresh revocation status check to ensure that the assertion is still valid.
However, this approach increases solution complexity, as it introduces the
need for additional protocols and code paths to distribute and process the
revocations.</t>
        <t>Addressing the shortcomings of revocations, this document recommends
instead the use of lightweight renewals of short-lived non-revocable
vouchers.  That is, rather than issue a long-lived voucher, where the
'expires-on' leaf is set to some distant date, the expectation
is for the MASA to instead issue a short-lived voucher, where the
'expires-on' leaf is set to a relatively near date, along with a promise
(reflected in the 'last-renewal-date' field) to reissue the voucher again
when needed.  Importantly, while issuing the initial voucher may incur
heavyweight verification checks ("Are you who you say you are?" "Does the
pledge actually belong to you?"), reissuing the voucher should be a
lightweight process, as it ostensibly only updates the voucher's
validity period.
With this approach, there is
only the one artifact, and only one code path is needed to process
it; there is no possibility of a pledge choosing to skip the
revocation status check because, for instance, the OCSP Responder is
not reachable.</t>
        <t>While this document recommends issuing short-lived vouchers, the
voucher artifact does not restrict the ability to create long-lived
voucher, if required; however, no revocation method is described.</t>
        <t>Note that a voucher may be signed by a chain of intermediate CAs
leading up to the trust anchor certificate known by the pledge.  Even
though the voucher itself is not revocable, it may still be revoked,
per se, if one of the intermediate CA certificates is revoked.</t>
      </section>
      <section anchor="voucher-per-pledge">
        <name>Voucher Per Pledge</name>
        <t>The solution described herein originally enabled a single voucher to
apply to many pledges, using lists of regular expressions to represent
ranges of serial-numbers.  However, it was determined that blocking the
renewal of a voucher that applied to many devices would be excessive
when only the ownership for a single pledge needed to be blocked.
Thus, the voucher format now only supports a single serial-number
to be listed.</t>
      </section>
    </section>
    <section anchor="sec-con">
      <name>Security Considerations</name>
      <section anchor="clock-sensitivity">
        <name>Clock Sensitivity</name>
        <t>An attacker could use an expired voucher to gain control over
a device that has no understanding of time.  The device cannot
trust NTP as a time reference, as an attacker could control
the NTP stream.</t>
        <t>There are three things to defend against this: 1) devices are
required to verify that the expires-on field has not yet passed,
2) devices without access to time can use nonces to
get ephemeral vouchers, and 3) vouchers without expiration times
may be used, which will appear in the audit log, informing the
security decision.</t>
        <t>This document defines a voucher format that contains time values
for expirations, which require an accurate clock
in order to be processed correctly.  Vendors planning on
issuing vouchers with expiration values must ensure that devices
have an accurate clock when shipped from manufacturing
facilities and take steps to prevent clock tampering.
If it is not possible to ensure clock accuracy, then
vouchers with expirations should not be issued.</t>
      </section>
      <section anchor="protect-voucher-pki-in-hsm">
        <name>Protect Voucher PKI in HSM</name>
        <t>Pursuant the recommendation made in Section 6.1 for the MASA to be
deployed as an online voucher signing service, it is <bcp14>RECOMMENDED</bcp14> that
the MASA's private key used for signing vouchers is protected by
a hardware security module (HSM).</t>
      </section>
      <section anchor="test-domain-certificate-validity-when-signing">
        <name>Test Domain Certificate Validity When Signing</name>
        <t>If a domain certificate is compromised, then any outstanding
vouchers for that domain could be used by the attacker.  The domain
administrator is clearly expected to initiate revocation of any
domain identity certificates (as is normal in PKI solutions).</t>
        <t>Similarly, they are expected to contact the MASA to indicate that
an outstanding (presumably short lifetime) voucher should be blocked from
automated renewal.
Protocols for voucher distribution are
<bcp14>RECOMMENDED</bcp14> to check for revocation of domain identity certificates
before the signing of vouchers.</t>
      </section>
      <section anchor="yang-module-security-considerations">
        <name>YANG Module Security Considerations</name>
        <t>The YANG module specified in this document defines the schema
for data that is subsequently encapsulated by a CMS signed-data
content type, as described in Section 5 of <xref target="RFC5652"/>.  As such,
all of the YANG modeled data is protected from modification.</t>
        <t>Implementations should be aware that the signed data is only
protected from external modification; the data is still visible.
This potential disclosure of information doesn't affect security
so much as privacy.  In particular, adversaries can glean
information such as which devices belong to which organizations
and which CRL Distribution Point and/or OCSP Responder URLs are
accessed to validate the vouchers.  When privacy is important,
the CMS signed-data content type <bcp14>SHOULD</bcp14> be encrypted, either by
conveying it via a mutually authenticated secure transport protocol
(e.g., TLS <xref target="RFC5246"/>) or by encapsulating the signed-data
content type with an enveloped-data content type (Section 6
of <xref target="RFC5652"/>), though details for how to do this are outside
the scope of this document.</t>
        <t>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 template described by Section 3.7 of
<xref target="YANG-GUIDE"/>.</t>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <section anchor="the-ietf-xml-registry">
        <name>The IETF XML Registry</name>
        <t>This document registers two URIs in the "IETF XML Registry" <xref target="RFC3688"/>.</t>
        <t>IANA has registered the following:</t>
        <ul empty="true">
          <li>
            <dl spacing="compact">
              <dt>URI:</dt>
              <dd>
                <t>urn:ietf:params:xml:ns:yang:ietf-voucher</t>
              </dd>
              <dt>Registrant Contact:</dt>
              <dd>
                <t>The ANIMA WG of the IETF.</t>
              </dd>
              <dt>XML:</dt>
              <dd>
                <t>N/A, the requested URI is an XML namespace.</t>
              </dd>
            </dl>
          </li>
        </ul>
        <t>This reference should be updated to point to this document.</t>
      </section>
      <section anchor="the-yang-module-names-registry">
        <name>The YANG Module Names Registry</name>
        <t>This document registers two YANG module in the "YANG Module Names"
registry <xref target="RFC6020"/>.</t>
        <t>IANA has registred the following:</t>
        <ul empty="true">
          <li>
            <dl spacing="compact">
              <dt>name:</dt>
              <dd>
                <t>ietf-voucher</t>
              </dd>
              <dt>namespace:</dt>
              <dd>
                <t>urn:ietf:params:xml:ns:yang:ietf-voucher</t>
              </dd>
              <dt>prefix:</dt>
              <dd>
                <t>vch</t>
              </dd>
            </dl>
            <t>reference:
  :RFC 8366</t>
          </li>
        </ul>
        <t>This reference should be updated to point to this document.</t>
      </section>
      <section anchor="vcj">
        <name>The Media Types Registry</name>
        <t>IANA has registered the media type: voucher-cms+json, and this registration should be updated to point to this document.</t>
      </section>
      <section anchor="the-smi-security-for-smime-cms-content-type-registry">
        <name>The SMI Security for S/MIME CMS Content Type Registry</name>
        <t>IANA has registered the OID 1.2.840.113549.1.9.16.1.40, id-ct-animaJSONVoucher.
This registration should be updated to point to this document.</t>
      </section>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC5652">
          <front>
            <title>Cryptographic Message Syntax (CMS)</title>
            <author fullname="R. Housley" initials="R." surname="Housley"/>
            <date month="September" year="2009"/>
            <abstract>
              <t>This document describes the Cryptographic Message Syntax (CMS). This syntax is used to digitally sign, digest, authenticate, or encrypt arbitrary message content. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="70"/>
          <seriesInfo name="RFC" value="5652"/>
          <seriesInfo name="DOI" value="10.17487/RFC5652"/>
        </reference>
        <reference anchor="RFC6020">
          <front>
            <title>YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)</title>
            <author fullname="M. Bjorklund" initials="M." role="editor" surname="Bjorklund"/>
            <date month="October" year="2010"/>
            <abstract>
              <t>YANG is a data modeling language used to model configuration and state data manipulated by the Network Configuration Protocol (NETCONF), NETCONF remote procedure calls, and NETCONF notifications. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6020"/>
          <seriesInfo name="DOI" value="10.17487/RFC6020"/>
        </reference>
        <reference anchor="RFC8259">
          <front>
            <title>The JavaScript Object Notation (JSON) Data Interchange Format</title>
            <author fullname="T. Bray" initials="T." role="editor" surname="Bray"/>
            <date month="December" year="2017"/>
            <abstract>
              <t>JavaScript Object Notation (JSON) is a lightweight, text-based, language-independent data interchange format. It was derived from the ECMAScript Programming Language Standard. JSON defines a small set of formatting rules for the portable representation of structured data.</t>
              <t>This document removes inconsistencies with other specifications of JSON, repairs specification errors, and offers experience-based interoperability guidance.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="90"/>
          <seriesInfo name="RFC" value="8259"/>
          <seriesInfo name="DOI" value="10.17487/RFC8259"/>
        </reference>
        <reference anchor="RFC7950">
          <front>
            <title>The YANG 1.1 Data Modeling Language</title>
            <author fullname="M. Bjorklund" initials="M." role="editor" surname="Bjorklund"/>
            <date month="August" year="2016"/>
            <abstract>
              <t>YANG is a data modeling language used to model configuration data, state data, Remote Procedure Calls, and notifications for network management protocols. This document describes the syntax and semantics of version 1.1 of the YANG language. YANG version 1.1 is a maintenance release of the YANG language, addressing ambiguities and defects in the original specification. There are a small number of backward incompatibilities from YANG version 1. This document also specifies the YANG mappings to the Network Configuration Protocol (NETCONF).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7950"/>
          <seriesInfo name="DOI" value="10.17487/RFC7950"/>
        </reference>
        <reference anchor="I-D.ietf-core-sid">
          <front>
            <title>YANG Schema Item iDentifier (YANG SID)</title>
            <author fullname="Michel Veillette" initials="M." surname="Veillette">
              <organization>Trilliant Networks Inc.</organization>
            </author>
            <author fullname="Alexander Pelov" initials="A." surname="Pelov">
              <organization>IMT Atlantique</organization>
            </author>
            <author fullname="Ivaylo Petrov" initials="I." surname="Petrov">
              <organization>Google Switzerland GmbH</organization>
            </author>
            <author fullname="Carsten Bormann" initials="C." surname="Bormann">
              <organization>Universität Bremen TZI</organization>
            </author>
            <author fullname="Michael Richardson" initials="M." surname="Richardson">
              <organization>Sandelman Software Works</organization>
            </author>
            <date day="22" month="December" year="2023"/>
            <abstract>
              <t>   YANG Schema Item iDentifiers (YANG SID) are globally unique 63-bit
   unsigned integers used to identify YANG items, as a more compact
   method to identify YANG items that can be used for efficiency and in
   constrained environments (RFC 7228).  This document defines the
   semantics, the registration, and assignment processes of YANG SIDs
   for IETF managed YANG modules.  To enable the implementation of these
   processes, this document also defines a file format used to persist
   and publish assigned YANG SIDs.


   // The present version (–24) is intended to address the remaining
   // IESG comments.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-core-sid-24"/>
        </reference>
        <reference anchor="RFC9148">
          <front>
            <title>EST-coaps: Enrollment over Secure Transport with the Secure Constrained Application Protocol</title>
            <author fullname="P. van der Stok" initials="P." surname="van der Stok"/>
            <author fullname="P. Kampanakis" initials="P." surname="Kampanakis"/>
            <author fullname="M. Richardson" initials="M." surname="Richardson"/>
            <author fullname="S. Raza" initials="S." surname="Raza"/>
            <date month="April" year="2022"/>
            <abstract>
              <t>Enrollment over Secure Transport (EST) is used as a certificate provisioning protocol over HTTPS. Low-resource devices often use the lightweight Constrained Application Protocol (CoAP) for message exchanges. This document defines how to transport EST payloads over secure CoAP (EST-coaps), which allows constrained devices to use existing EST functionality for provisioning certificates.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9148"/>
          <seriesInfo name="DOI" value="10.17487/RFC9148"/>
        </reference>
        <reference anchor="cBRSKI">
          <front>
            <title>Constrained Bootstrapping Remote Secure Key Infrastructure (cBRSKI)</title>
            <author fullname="Michael Richardson" initials="M." surname="Richardson">
              <organization>Sandelman Software Works</organization>
            </author>
            <author fullname="Peter Van der Stok" initials="P." surname="Van der Stok">
              <organization>vanderstok consultancy</organization>
            </author>
            <author fullname="Panos Kampanakis" initials="P." surname="Kampanakis">
              <organization>Cisco Systems</organization>
            </author>
            <author fullname="Esko Dijk" initials="E." surname="Dijk">
              <organization>IoTconsultancy.nl</organization>
            </author>
            <date day="3" month="March" year="2024"/>
            <abstract>
              <t>   This document defines the Constrained Bootstrapping Remote Secure Key
   Infrastructure (cBRSKI) protocol, which provides a solution for
   secure zero-touch onboarding of resource-constrained (IoT) devices
   into the network of a domain owner.  This protocol is designed for
   constrained networks, which may have limited data throughput or may
   experience frequent packet loss. cBRSKI is a variant of the BRSKI
   protocol, which uses an artifact signed by the device manufacturer
   called the "voucher" which enables a new device and the owner's
   network to mutually authenticate.  While the BRSKI voucher data is
   encoded in JSON, cBRSKI uses a compact CBOR-encoded voucher.  The
   BRSKI voucher data definition is extended with new data types that
   allow for smaller voucher sizes.  The Enrollment over Secure
   Transport (EST) protocol, used in BRSKI, is replaced with EST-over-
   CoAPS; and HTTPS used in BRSKI is replaced with DTLS-secured CoAP
   (CoAPS).  This document Updates RFC 8995 and RFC 9148.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-anima-constrained-voucher-24"/>
        </reference>
        <reference anchor="jBRSKI">
          <front>
            <title>JWS signed Voucher Artifacts for Bootstrapping Protocols</title>
            <author fullname="Thomas Werner" initials="T." surname="Werner">
              <organization>Siemens AG</organization>
            </author>
            <author fullname="Michael Richardson" initials="M." surname="Richardson">
              <organization>Sandelman Software Works</organization>
            </author>
            <date day="29" month="August" year="2023"/>
            <abstract>
              <t>   [TODO: I-D.draft-ietf-anima-rfc8366bis] defines a digital artifact
   called voucher as a YANG-defined JSON document that is signed using a
   Cryptographic Message Syntax (CMS) structure.  This document
   introduces a variant of the voucher artifact in which CMS is replaced
   by the JSON Object Signing and Encryption (JOSE) mechanism described
   in RFC7515 to support deployments in which JOSE is preferred over
   CMS.

   In addition to explaining how the format is created, the
   "application/voucher-jws+json" media type is registered and examples
   are provided.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-anima-jws-voucher-09"/>
        </reference>
        <reference anchor="ITU-T.X690.2015" target="https://www.itu.int/rec/T-REC-X.690/">
          <front>
            <title>Information Technology - ASN.1 encoding rules: Specification of Basic Encoding Rules (BER), Canonical Encoding Rules (CER) and Distinguished Encoding Rules (DER)</title>
            <author>
              <organization>International Telecommunication Union</organization>
            </author>
            <date year="2015" month="August"/>
          </front>
          <seriesInfo name="ITU-T Recommendation X.690," value="ISO/IEC 8825-1"/>
        </reference>
        <reference anchor="ZERO-TOUCH">
          <front>
            <title>Secure Zero Touch Provisioning (SZTP)</title>
            <author fullname="K. Watsen" initials="K." surname="Watsen"/>
            <author fullname="I. Farrer" initials="I." surname="Farrer"/>
            <author fullname="M. Abrahamsson" initials="M." surname="Abrahamsson"/>
            <date month="April" year="2019"/>
            <abstract>
              <t>This document presents a technique to securely provision a networking device when it is booting in a factory-default state. Variations in the solution enable it to be used on both public and private networks. The provisioning steps are able to update the boot image, commit an initial configuration, and execute arbitrary scripts to address auxiliary needs. The updated device is subsequently able to establish secure connections with other systems. For instance, a device may establish NETCONF (RFC 6241) and/or RESTCONF (RFC 8040) connections with deployment-specific network management systems.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8572"/>
          <seriesInfo name="DOI" value="10.17487/RFC8572"/>
        </reference>
        <reference anchor="BRSKI">
          <front>
            <title>Bootstrapping Remote Secure Key Infrastructure (BRSKI)</title>
            <author fullname="M. Pritikin" initials="M." surname="Pritikin"/>
            <author fullname="M. Richardson" initials="M." surname="Richardson"/>
            <author fullname="T. Eckert" initials="T." surname="Eckert"/>
            <author fullname="M. Behringer" initials="M." surname="Behringer"/>
            <author fullname="K. Watsen" initials="K." surname="Watsen"/>
            <date month="May" year="2021"/>
            <abstract>
              <t>This document specifies automated bootstrapping of an Autonomic Control Plane. To do this, a Secure Key Infrastructure is bootstrapped. This is done using manufacturer-installed X.509 certificates, in combination with a manufacturer's authorizing service, both online and offline. We call this process the Bootstrapping Remote Secure Key Infrastructure (BRSKI) protocol. Bootstrapping a new device can occur when using a routable address and a cloud service, only link-local connectivity, or limited/disconnected networks. Support for deployment models with less stringent security requirements is included. Bootstrapping is complete when the cryptographic identity of the new key infrastructure is successfully deployed to the device. The established secure connection can be used to deploy a locally issued certificate to the device as well.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8995"/>
          <seriesInfo name="DOI" value="10.17487/RFC8995"/>
        </reference>
        <reference anchor="PRM">
          <front>
            <title>BRSKI with Pledge in Responder Mode (BRSKI-PRM)</title>
            <author fullname="Steffen Fries" initials="S." surname="Fries">
              <organization>Siemens AG</organization>
            </author>
            <author fullname="Thomas Werner" initials="T." surname="Werner">
              <organization>Siemens AG</organization>
            </author>
            <author fullname="Eliot Lear" initials="E." surname="Lear">
              <organization>Cisco Systems</organization>
            </author>
            <author fullname="Michael Richardson" initials="M." surname="Richardson">
              <organization>Sandelman Software Works</organization>
            </author>
            <date day="20" month="November" year="2023"/>
            <abstract>
              <t>   This document defines enhancements to Bootstrapping a Remote Secure
   Key Infrastructure (BRSKI, RFC8995) to enable bootstrapping in
   domains featuring no or only limited connectivity between a pledge
   and the domain registrar.  It specifically changes the interaction
   model from a pledge-initiated mode, as used in BRSKI, to a pledge-
   responding mode, where the pledge is in server role.  For this, BRSKI
   with Pledge in Responder Mode (BRSKI-PRM) introduces a new component,
   the Registrar-Agent, which facilitates the communication between
   pledge and registrar during the bootstrapping phase.  To establish
   the trust relation between pledge and registrar, BRSKI-PRM relies on
   object security rather than transport security.  The approach defined
   here is agnostic to the enrollment protocol that connects the domain
   registrar to the domain CA.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-anima-brski-prm-11"/>
        </reference>
        <reference anchor="CLOUD">
          <front>
            <title>BRSKI Cloud Registrar</title>
            <author fullname="Owen Friel" initials="O." surname="Friel">
              <organization>Cisco</organization>
            </author>
            <author fullname="Rifaat Shekh-Yusef" initials="R." surname="Shekh-Yusef">
              <organization>Auth0</organization>
            </author>
            <author fullname="Michael Richardson" initials="M." surname="Richardson">
              <organization>Sandelman Software Works</organization>
            </author>
            <date day="24" month="August" year="2023"/>
            <abstract>
              <t>   Bootstrapping Remote Secure Key Infrastructures defines how to
   onboard a device securely into an operator maintained infrastructure.
   It assumes that there is local network infrastructure for the device
   to discover and to help the device.  This document extends the new
   device behaviour so that if no local infrastructure is available,
   such as in a home or remote office, that the device can use a well
   defined "call-home" mechanism to find the operator maintained
   infrastructure.

   To this, this document defines how to contact a well-known Cloud
   Registrar, and two ways in which the new device may be redirected
   towards the operator maintained infrastructure.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-anima-brski-cloud-08"/>
        </reference>
        <reference anchor="RFC8791">
          <front>
            <title>YANG Data Structure Extensions</title>
            <author fullname="A. Bierman" initials="A." surname="Bierman"/>
            <author fullname="M. Björklund" initials="M." surname="Björklund"/>
            <author fullname="K. Watsen" initials="K." surname="Watsen"/>
            <date month="June" year="2020"/>
            <abstract>
              <t>This document describes YANG mechanisms for defining abstract data structures with YANG.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8791"/>
          <seriesInfo name="DOI" value="10.17487/RFC8791"/>
        </reference>
        <reference anchor="RFC7951">
          <front>
            <title>JSON Encoding of Data Modeled with YANG</title>
            <author fullname="L. Lhotka" initials="L." surname="Lhotka"/>
            <date month="August" year="2016"/>
            <abstract>
              <t>This document defines encoding rules for representing configuration data, state data, parameters of Remote Procedure Call (RPC) operations or actions, and notifications defined using YANG as JavaScript Object Notation (JSON) text.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7951"/>
          <seriesInfo name="DOI" value="10.17487/RFC7951"/>
        </reference>
        <reference anchor="RFC2119" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="I-D.ietf-anima-constrained-voucher">
          <front>
            <title>Constrained Bootstrapping Remote Secure Key Infrastructure (cBRSKI)</title>
            <author fullname="Michael Richardson" initials="M." surname="Richardson">
              <organization>Sandelman Software Works</organization>
            </author>
            <author fullname="Peter Van der Stok" initials="P." surname="Van der Stok">
              <organization>vanderstok consultancy</organization>
            </author>
            <author fullname="Panos Kampanakis" initials="P." surname="Kampanakis">
              <organization>Cisco Systems</organization>
            </author>
            <author fullname="Esko Dijk" initials="E." surname="Dijk">
              <organization>IoTconsultancy.nl</organization>
            </author>
            <date day="3" month="March" year="2024"/>
            <abstract>
              <t>   This document defines the Constrained Bootstrapping Remote Secure Key
   Infrastructure (cBRSKI) protocol, which provides a solution for
   secure zero-touch onboarding of resource-constrained (IoT) devices
   into the network of a domain owner.  This protocol is designed for
   constrained networks, which may have limited data throughput or may
   experience frequent packet loss. cBRSKI is a variant of the BRSKI
   protocol, which uses an artifact signed by the device manufacturer
   called the "voucher" which enables a new device and the owner's
   network to mutually authenticate.  While the BRSKI voucher data is
   encoded in JSON, cBRSKI uses a compact CBOR-encoded voucher.  The
   BRSKI voucher data definition is extended with new data types that
   allow for smaller voucher sizes.  The Enrollment over Secure
   Transport (EST) protocol, used in BRSKI, is replaced with EST-over-
   CoAPS; and HTTPS used in BRSKI is replaced with DTLS-secured CoAP
   (CoAPS).  This document Updates RFC 8995 and RFC 9148.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-anima-constrained-voucher-24"/>
        </reference>
        <reference anchor="I-D.ietf-anima-jws-voucher">
          <front>
            <title>JWS signed Voucher Artifacts for Bootstrapping Protocols</title>
            <author fullname="Thomas Werner" initials="T." surname="Werner">
              <organization>Siemens AG</organization>
            </author>
            <author fullname="Michael Richardson" initials="M." surname="Richardson">
              <organization>Sandelman Software Works</organization>
            </author>
            <date day="29" month="August" year="2023"/>
            <abstract>
              <t>   [TODO: I-D.draft-ietf-anima-rfc8366bis] defines a digital artifact
   called voucher as a YANG-defined JSON document that is signed using a
   Cryptographic Message Syntax (CMS) structure.  This document
   introduces a variant of the voucher artifact in which CMS is replaced
   by the JSON Object Signing and Encryption (JOSE) mechanism described
   in RFC7515 to support deployments in which JOSE is preferred over
   CMS.

   In addition to explaining how the format is created, the
   "application/voucher-jws+json" media type is registered and examples
   are provided.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-anima-jws-voucher-09"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC5246">
          <front>
            <title>The Transport Layer Security (TLS) Protocol Version 1.2</title>
            <author fullname="T. Dierks" initials="T." surname="Dierks"/>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <date month="August" year="2008"/>
            <abstract>
              <t>This document specifies Version 1.2 of the Transport Layer Security (TLS) protocol. The TLS protocol provides communications security over the Internet. The protocol allows client/server applications to communicate in a way that is designed to prevent eavesdropping, tampering, or message forgery. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5246"/>
          <seriesInfo name="DOI" value="10.17487/RFC5246"/>
        </reference>
        <reference anchor="RFC3688">
          <front>
            <title>The IETF XML Registry</title>
            <author fullname="M. Mealling" initials="M." surname="Mealling"/>
            <date month="January" year="2004"/>
            <abstract>
              <t>This document describes an IANA maintained registry for IETF standards which use Extensible Markup Language (XML) related items such as Namespaces, Document Type Declarations (DTDs), Schemas, and Resource Description Framework (RDF) Schemas.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="81"/>
          <seriesInfo name="RFC" value="3688"/>
          <seriesInfo name="DOI" value="10.17487/RFC3688"/>
        </reference>
        <reference anchor="RFC6241">
          <front>
            <title>Network Configuration Protocol (NETCONF)</title>
            <author fullname="R. Enns" initials="R." role="editor" surname="Enns"/>
            <author fullname="M. Bjorklund" initials="M." role="editor" surname="Bjorklund"/>
            <author fullname="J. Schoenwaelder" initials="J." role="editor" surname="Schoenwaelder"/>
            <author fullname="A. Bierman" initials="A." role="editor" surname="Bierman"/>
            <date month="June" year="2011"/>
            <abstract>
              <t>The Network Configuration Protocol (NETCONF) defined in this document provides mechanisms to install, manipulate, and delete the configuration of network devices. It uses an Extensible Markup Language (XML)-based data encoding for the configuration data as well as the protocol messages. The NETCONF protocol operations are realized as remote procedure calls (RPCs). This document obsoletes RFC 4741. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6241"/>
          <seriesInfo name="DOI" value="10.17487/RFC6241"/>
        </reference>
        <reference anchor="RFC8040">
          <front>
            <title>RESTCONF Protocol</title>
            <author fullname="A. Bierman" initials="A." surname="Bierman"/>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
            <author fullname="K. Watsen" initials="K." surname="Watsen"/>
            <date month="January" year="2017"/>
            <abstract>
              <t>This document describes an HTTP-based protocol that provides a programmatic interface for accessing data defined in YANG, using the datastore concepts defined in the Network Configuration Protocol (NETCONF).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8040"/>
          <seriesInfo name="DOI" value="10.17487/RFC8040"/>
        </reference>
        <reference anchor="RFC8340">
          <front>
            <title>YANG Tree Diagrams</title>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
            <author fullname="L. Berger" initials="L." role="editor" surname="Berger"/>
            <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="RFC6125">
          <front>
            <title>Representation and Verification of Domain-Based Application Service Identity within Internet Public Key Infrastructure Using X.509 (PKIX) Certificates in the Context of Transport Layer Security (TLS)</title>
            <author fullname="P. Saint-Andre" initials="P." surname="Saint-Andre"/>
            <author fullname="J. Hodges" initials="J." surname="Hodges"/>
            <date month="March" year="2011"/>
            <abstract>
              <t>Many application technologies enable secure communication between two entities by means of Internet Public Key Infrastructure Using X.509 (PKIX) certificates in the context of Transport Layer Security (TLS). This document specifies procedures for representing and verifying the identity of application services in such interactions. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6125"/>
          <seriesInfo name="DOI" value="10.17487/RFC6125"/>
        </reference>
        <reference anchor="RFC7435">
          <front>
            <title>Opportunistic Security: Some Protection Most of the Time</title>
            <author fullname="V. Dukhovni" initials="V." surname="Dukhovni"/>
            <date month="December" year="2014"/>
            <abstract>
              <t>This document defines the concept "Opportunistic Security" in the context of communications protocols. Protocol designs based on Opportunistic Security use encryption even when authentication is not available, and use authentication when possible, thereby removing barriers to the widespread use of encryption on the Internet.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7435"/>
          <seriesInfo name="DOI" value="10.17487/RFC7435"/>
        </reference>
        <reference anchor="RFC8366">
          <front>
            <title>A Voucher Artifact for Bootstrapping Protocols</title>
            <author fullname="K. Watsen" initials="K." surname="Watsen"/>
            <author fullname="M. Richardson" initials="M." surname="Richardson"/>
            <author fullname="M. Pritikin" initials="M." surname="Pritikin"/>
            <author fullname="T. Eckert" initials="T." surname="Eckert"/>
            <date month="May" year="2018"/>
            <abstract>
              <t>This document defines a strategy to securely assign a pledge to an owner using an artifact signed, directly or indirectly, by the pledge's manufacturer. This artifact is known as a "voucher".</t>
              <t>This document defines an artifact format as a YANG-defined JSON document that has been signed using a Cryptographic Message Syntax (CMS) structure. Other YANG-derived formats are possible. The voucher artifact is normally generated by the pledge's manufacturer (i.e., the Manufacturer Authorized Signing Authority (MASA)).</t>
              <t>This document only defines the voucher artifact, leaving it to other documents to describe specialized protocols for accessing it.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8366"/>
          <seriesInfo name="DOI" value="10.17487/RFC8366"/>
        </reference>
        <referencegroup anchor="CBOR" target="https://www.rfc-editor.org/info/std94">
          <reference anchor="RFC8949" target="https://www.rfc-editor.org/info/rfc8949">
            <front>
              <title>Concise Binary Object Representation (CBOR)</title>
              <author fullname="C. Bormann" initials="C." surname="Bormann"/>
              <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
              <date month="December" year="2020"/>
              <abstract>
                <t>The Concise Binary Object Representation (CBOR) is a data format whose design goals include the possibility of extremely small code size, fairly small message size, and extensibility without the need for version negotiation. These design goals make it different from earlier binary serializations such as ASN.1 and MessagePack.</t>
                <t>This document obsoletes RFC 7049, providing editorial improvements, new details, and errata fixes while keeping full compatibility with the interchange format of RFC 7049. It does not create a new version of the format.</t>
              </abstract>
            </front>
            <seriesInfo name="STD" value="94"/>
            <seriesInfo name="RFC" value="8949"/>
            <seriesInfo name="DOI" value="10.17487/RFC8949"/>
          </reference>
        </referencegroup>
        <referencegroup anchor="COSE" target="https://www.rfc-editor.org/info/std96">
          <reference anchor="RFC9052" target="https://www.rfc-editor.org/info/rfc9052">
            <front>
              <title>CBOR Object Signing and Encryption (COSE): Structures and Process</title>
              <author fullname="J. Schaad" initials="J." surname="Schaad"/>
              <date month="August" year="2022"/>
              <abstract>
                <t>Concise Binary Object Representation (CBOR) is a data format designed for small code size and small message size. There is a need to be able to define basic security services for this data format. This document defines the CBOR Object Signing and Encryption (COSE) protocol. This specification describes how to create and process signatures, message authentication codes, and encryption using CBOR for serialization. This specification additionally describes how to represent cryptographic keys using CBOR.</t>
                <t>This document, along with RFC 9053, obsoletes RFC 8152.</t>
              </abstract>
            </front>
            <seriesInfo name="STD" value="96"/>
            <seriesInfo name="RFC" value="9052"/>
            <seriesInfo name="DOI" value="10.17487/RFC9052"/>
          </reference>
          <reference anchor="RFC9338" target="https://www.rfc-editor.org/info/rfc9338">
            <front>
              <title>CBOR Object Signing and Encryption (COSE): Countersignatures</title>
              <author fullname="J. Schaad" initials="J." surname="Schaad"/>
              <date month="December" year="2022"/>
              <abstract>
                <t>Concise Binary Object Representation (CBOR) is a data format designed for small code size and small message size. CBOR Object Signing and Encryption (COSE) defines a set of security services for CBOR. This document defines a countersignature algorithm along with the needed header parameters and CBOR tags for COSE. This document updates RFC 9052.</t>
              </abstract>
            </front>
            <seriesInfo name="STD" value="96"/>
            <seriesInfo name="RFC" value="9338"/>
            <seriesInfo name="DOI" value="10.17487/RFC9338"/>
          </reference>
        </referencegroup>
        <reference anchor="JWS">
          <front>
            <title>JSON Web Signature (JWS)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
            <date month="May" year="2015"/>
            <abstract>
              <t>JSON Web Signature (JWS) represents content secured with digital signatures or Message Authentication Codes (MACs) using JSON-based data structures. Cryptographic algorithms and identifiers for use with this specification are described in the separate JSON Web Algorithms (JWA) specification and an IANA registry defined by that specification. Related encryption capabilities are described in the separate JSON Web Encryption (JWE) specification.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7515"/>
          <seriesInfo name="DOI" value="10.17487/RFC7515"/>
        </reference>
        <reference anchor="YANGCBOR">
          <front>
            <title>Encoding of Data Modeled with YANG in the Concise Binary Object Representation (CBOR)</title>
            <author fullname="M. Veillette" initials="M." role="editor" surname="Veillette"/>
            <author fullname="I. Petrov" initials="I." role="editor" surname="Petrov"/>
            <author fullname="A. Pelov" initials="A." surname="Pelov"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <author fullname="M. Richardson" initials="M." surname="Richardson"/>
            <date month="July" year="2022"/>
            <abstract>
              <t>YANG (RFC 7950) is a data modeling language used to model configuration data, state data, parameters and results of Remote Procedure Call (RPC) operations or actions, and notifications.</t>
              <t>This document defines encoding rules for YANG in the Concise Binary Object Representation (CBOR) (RFC 8949).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9254"/>
          <seriesInfo name="DOI" value="10.17487/RFC9254"/>
        </reference>
        <reference anchor="SECUREJOIN">
          <front>
            <title>6tisch Secure Join protocol</title>
            <author fullname="Michael Richardson" initials="M." surname="Richardson">
              <organization>Sandelman Software Works</organization>
            </author>
            <date day="25" month="February" year="2017"/>
            <abstract>
              <t>   This document describes a zero-touch mechanism to enroll a new device
   (the "pledge") into a IEEE802.15.4 TSCH network using the 6tisch
   signaling mechanisms.  The resulting device will obtain a domain
   specific credential that can be used with either 802.15.9 per-host
   pair keying protocols, or to obtain the network-wide key from a
   coordinator.  The mechanism describe her is an augmentation to the
   one-touch mechanism described in [I-D.ietf-6tisch-minimal-security].

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-6tisch-dtsecurity-secure-join-01"/>
        </reference>
        <reference anchor="YANG-GUIDE">
          <front>
            <title>Guidelines for Authors and Reviewers of Documents Containing YANG Data Models</title>
            <author fullname="A. Bierman" initials="A." surname="Bierman"/>
            <date month="October" year="2018"/>
            <abstract>
              <t>This memo provides guidelines for authors and reviewers of specifications containing YANG modules. Recommendations and procedures are defined, which are intended to increase interoperability and usability of Network Configuration Protocol (NETCONF) and RESTCONF protocol implementations that utilize YANG modules. This document obsoletes RFC 6087.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="216"/>
          <seriesInfo name="RFC" value="8407"/>
          <seriesInfo name="DOI" value="10.17487/RFC8407"/>
        </reference>
        <reference anchor="Stajano99theresurrecting" target="https://www.cl.cam.ac.uk/research/dtg/www/files/publications/public/files/tr.1999.2.pdf">
          <front>
            <title>The Resurrecting Duckling: Security Issues for Ad-Hoc Wireless Networks</title>
            <author initials="F." surname="Stajano" fullname="Frank Stajano">
              <organization/>
            </author>
            <author initials="R." surname="Anderson" fullname="Ross Anderson">
              <organization/>
            </author>
            <date year="1999"/>
          </front>
        </reference>
        <reference anchor="imprinting" target="https://en.wikipedia.org/w/index.php?title=Imprinting_(psychology)&amp;oldid=825757556">
          <front>
            <title>Wikipedia article: Imprinting</title>
            <author>
              <organization>Wikipedia</organization>
            </author>
            <date year="2018" month="February"/>
          </front>
        </reference>
        <reference anchor="I-D.selander-ace-ake-authz">
          <front>
            <title>Lightweight Authorization for Authenticated Key Exchange.</title>
            <author fullname="Göran Selander" initials="G." surname="Selander">
              <organization>Ericsson AB</organization>
            </author>
            <author fullname="John Preuß Mattsson" initials="J. P." surname="Mattsson">
              <organization>Ericsson AB</organization>
            </author>
            <author fullname="Mališa Vučinić" initials="M." surname="Vučinić">
              <organization>INRIA</organization>
            </author>
            <author fullname="Michael Richardson" initials="M." surname="Richardson">
              <organization>Sandelman Software Works</organization>
            </author>
            <author fullname="Aurelio Schellenbaum" initials="A." surname="Schellenbaum">
              <organization>Institute of Embedded Systems, ZHAW</organization>
            </author>
            <date day="18" month="April" year="2022"/>
            <abstract>
              <t>   This document describes a procedure for augmenting the lightweight
   authenticated Diffie-Hellman key exchange protocol EDHOC with third
   party assisted authorization, targeting constrained IoT deployments
   (RFC 7228).

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-selander-ace-ake-authz-05"/>
        </reference>
      </references>
    </references>
    <?line 1418?>

<section numbered="false" anchor="acknowledgements">
      <name>Acknowledgements</name>
      <t>The authors would like to thank for following for
lively discussions on list and in the halls (ordered
by last name):
<contact fullname="William Atwood"/>,
<contact fullname="Michael H. Behringer"/>,
<contact fullname="Esko Dijk"/>,
<contact fullname="Steffen Fries"/>,
<contact fullname="Sheng Jiang"/>,
<contact fullname="Thomas Werner"/>.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
1PjRigRO499Qm+Dp8+6oUvBpjRv1Ch5q3K5c8Ilo9ljpAvv3m4oYPNx8XqZF
Ka7+5ll7vM6D5jt9E/O3CmWe1njFvj29cce+tRsz05Q1o/S3GvCrGmuxov8Q
CB4a+eGjZRuzuAksZK2LGq6186u7KCtR/q72zcwvEKuo7JXhu56Sz+8NHsna
Nn3/gdnbZr1eFnfZncX9hKxnv5Wf6+QmieP3jvyqT0qv1ftvjH1PS7DVzRp5
to+k2OpWKzJtH06y1Y1X5tquSLN9KBcPZbFRW3xzPDqPJuX9f5OfDq9w+jYn
qncnqEtm+bd428oUWXs7Vl53KO8Ovh2YV7+6xt86c9Z/e455a47/GEn0vz/1
3RaYoeHMhcoLzGNWdfPSHk56tS+bAj+6ZmvzUmqtqjrynXheO6bAv/8zVf0P
T1UfHvwRqer/zFT/QzLV/7RE9R/h7z8jUf2UL7PQU3uI9+GURuGnVQr+A3PR
tST4qanoi4ruhu9IQW/2+CdkoPMK4qk2wa5MeyeYYwTEWtsNsOb4M1eEzd+v
6KSjmNLjnT0UL9t2DVNwgsvqJASBTbxp3mYOdOTdFpSWG7P9OFYmzguEwaJU
Scv321xku6iTs8aVS2mHifzXr+ThSlaPr8qG6K+KlP6vX6Njof0dmJgvnRRs
KaNO87fpeg3jGc+Fb9Rwgvtk2m4qdDsiRGy5ZhFPQbAEC8RyvDRVUvZri+up
OPTIS8DkIL8HrBleqHVnpN/q/Mu104mOFTI+BKwXTH5XNwWJ5tlnrawZ+geL
uMOrjhulk+mWOmRBxaKii3XFYRFlRTO/0MY+h3gfuBvXazvw77aQjfN7GSsP
A2ywvB/xxGFIEofgJI5xarWong3k99tzJPVKO5F1hbnXxTp/tD5T8z+tTaHw
B/a5AXRalo3kiPjSIfcqYlYJdHpNYwJSQFxXde/YdHvs6S49vz1SFufqB564
c8mNF7XiN71yw4wJUJzbdvgTbQmSCL/HZiSJUVucXJeOTIpQlxmvONnZv7x2
4OJAR3ii23msPWXAxEHY4uh3mrR7fVdzh+EI0OVmzhUDbgYxej+4mKq4uLzm
hqRVzn22QqvwrmMMH8qy5hl6gEi467mbNpV5fROL3Xwq5TrDnH6iTFUR8lVv
VEAh/bW1WmSauVOAs4J3XDJ23yRo3SfndxGzRzMDH0oMdFMDjZ7QuEUGl0mJ
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

-->

</rfc>
