<?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.19 (Ruby 3.1.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-irtf-t2trg-taxonomy-manufacturer-anchors-06" category="info" tocInclude="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.20.1 -->
  <front>
    <title abbrev="manufacturer keys">A Taxonomy of operational security considerations for manufacturer installed keys and Trust Anchors</title>
    <seriesInfo name="Internet-Draft" value="draft-irtf-t2trg-taxonomy-manufacturer-anchors-06"/>
    <author initials="M." surname="Richardson" fullname="Michael Richardson">
      <organization>Sandelman Software Works</organization>
      <address>
        <email>mcr+ietf@sandelman.ca</email>
      </address>
    </author>
    <date year="2025" month="March" day="28"/>
    <workgroup>T2TRG Research Group</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <?line 185?>

<t>This document provides a taxonomy of methods used by manufacturers of silicon and devices
to secure private keys and public trust anchors.
This deals with two related activities: how trust anchors and private keys
are installed into devices during manufacturing, and how the related
manufacturer held private keys are secured against disclosure.</t>
      <t>This document does not evaluate the different mechanisms, but rather just
serves to name them in a consistent manner in order to aid in communication.</t>
      <t>RFCEDITOR: please remove this paragraph. This work is occurring in https://github.com/mcr/idevid-security-considerations</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-irtf-t2trg-taxonomy-manufacturer-anchors/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        t2trg Research Group mailing list (<eref target="mailto:t2trg@irtf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/t2trg/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/t2trg/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/git@github.com:mcr/idevid-security-considerations.git"/>.</t>
    </note>
  </front>
  <middle>
    <?line 198?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>An increasing number of protocols derive a significant part of their security by using trust anchors <xref target="RFC4949"/> that are installed by manufacturers.
Disclosure of the list of trust anchors does not usually cause a problem, but changing them in any way does.
This includes adding, replacing or deleting anchors.</t>
      <t>The document <xref target="RFC6024"/> deals with how trust anchor stores are managed in the device which uses them.
This document deals with how the PKI associated with such a trust anchor is managed.</t>
      <t>Many protocols also leverage manufacturer installed identities.
These identities are usually in the form of <xref target="ieee802-1AR"/> Initial Device Identity certificates (IDevID).
The identity has two components: a private key that must remain under the strict control of a trusted part of the device, and a public part (the certificate), which (ignoring, for the moment, personal privacy concerns) may be freely disclosed.</t>
      <t>There also situations where identities are tied up in the provision of symmetric shared secrets.
A common example is the SIM card (<xref target="_3GPP.51.011"/>): it now comes as a virtual SIM, which could in theory be factory provisioned.
The provision of an initial, per-device default password also falls into the category of symmetric shared secret.</t>
      <t>It is further not unusual for many devices (particularly smartphones) to also have one or more group identity keys.
This is used, for instance, in <xref target="fidotechnote"/> to make claims about being a particular model of phone (see <xref target="I-D.richardson-rats-usecases"/>).
The key pair that does this is loaded into large batches of phones for privacy reasons.</t>
      <t>The trust anchors are used for a variety of purposes.
Trust anchors are used to verify:</t>
      <ul spacing="normal">
        <li>
          <t>the signature on a software update (as per <xref target="I-D.ietf-suit-architecture"/>),</t>
        </li>
        <li>
          <t>a TLS Server Certificate, such as when setting up an HTTPS connection,</t>
        </li>
        <li>
          <t>the <xref target="RFC8366"/> format voucher that provides proof of an ownership change.</t>
        </li>
      </ul>
      <t>Device identity keys are used when performing enrollment requests (in <xref target="RFC8995"/>, and in some uses of <xref target="I-D.ietf-emu-eap-noob"/>.
The device identity certificate is also used to sign Evidence by an Attesting Environment (see <xref target="I-D.ietf-rats-architecture"/>).</t>
      <t>These security artifacts are used to anchor other chains of information: an EAT Claim as to the version of software/firmware running on a device (<xref target="I-D.birkholz-suit-coswid-manifest"/>), an EAT claim about legitimate network activity (via <xref target="I-D.birkholz-rats-mud"/>, or embedded in the IDevID in <xref target="RFC8520"/>).</t>
      <t>Known software versions lead directly to vendor/distributor signed Software Bill of Materials (SBOM), such as those described by <xref target="I-D.ietf-sacm-coswid"/> and the NTIA/SBOM work <xref target="ntiasbom"/> and CISQ/OMG SBOM work underway <xref target="cisqsbom"/>.</t>
      <t>In order to manage risks and assess vulnerabilities in a Supply Chain, it is necessary to determine a degree of trustworthiness in each device.
A device may mislead audit systems as to its provenance, about its software load or even about what kind of device it is (see <xref target="RFC7168"/> for a humorous example).</t>
      <t>In order to properly assess the security of a Supply Chain it is necessary to understand the kinds and severity of the threats which a device has been designed to resist.
To do this, it is necessary to understand the ways in which the different trust anchors and identities are initially provisioned, are protected, and are updated.</t>
      <t>To do this, this document details the different trust anchors (TrAnc) and identities (IDs) found in typical devices.
The privacy and integrity of the TrAncs and IDs is often provided by a different, superior artifact.
This relationship is examined.</t>
      <t>While many might desire to assign numerical values to different mitigation techniques in order to be able to rank them,  this document does not attempt to do that, as there are too many other (mostly human) factors that would come into play.
Such an effort is more properly in the purview of a formal ISO9001 process such as ISO14001.</t>
      <section anchor="terminology">
        <name>Terminology</name>
        <t>This document is not a standards track document, and it does not make use of formal requirements language.</t>
        <t>This section will be expanded to include needed terminology as required.</t>
        <t>The words Trust Anchor are contracted to TrAnc rather than TA, in order not to confuse with <xref target="RFC9397"/>'s "Trusted Application".</t>
        <t>This document defines a number of hyphenated terms, and they are summarized here:</t>
        <dl>
          <dt>device-generated:</dt>
          <dd>
            <t>a private or symmetric key which is generated on the device</t>
          </dd>
          <dt>infrastructure-generated:</dt>
          <dd>
            <t>a private or symmetric key which is generated by some system, likely
located at the factory that built the device</t>
          </dd>
          <dt>mechanically-installed:</dt>
          <dd>
            <t>when a key or certificate is programmed into non-volatile storage by
an out-of-band mechanism such as JTAG <xref target="JTAG"/></t>
          </dd>
          <dt>mechanically-transferred:</dt>
          <dd>
            <t>when a key or certificate is transferred into a system via private interface, such as serial console, JTAG managed mailbox, or other physically private interface</t>
          </dd>
          <dt>network-transferred:</dt>
          <dd>
            <t>when a key or certificate is transferred into a system using a network interface which would be available after the device has shipped.  This applies even if the network is physically attached using a bed-of-nails <xref target="BedOfNails"/>.</t>
          </dd>
          <dt>device/infrastructure-co-generated:</dt>
          <dd>
            <t>when a private or symmetric key is derived from a secret previously synchronized between the silicon vendor and the factory using a common algorithm.</t>
          </dd>
        </dl>
        <t>In addition, <xref target="keygen"/> introduces three primary private key generation techniques named <em>arbitrarily</em> after three vegetables (avocado, bamboo, and carrot) and two secondary ones named after two fruits (salak and sapodilla).
The two secondary ones refer to methods where a secure element is involved, and mnemonically start with the same letter: S.</t>
      </section>
    </section>
    <section anchor="applicability-model">
      <name>Applicability Model</name>
      <t>There is a wide variety of devices to which this analysis can apply.
(See <xref target="I-D.bormann-lwig-7228bis"/>.)
This document will use a J-group processor as a sample.
This class is sufficiently large to experience complex issues among multiple CPUs, packages and operating systems, but at the same time, small enough that this class is often deployed in single-purpose IoT-like uses.
Devices in this class often have Secure Enclaves (such as the "Grapeboard"), and can include silicon manufacturer controlled processors in the boot process (the Raspberry PI boots under control of the GPU).</t>
      <t>Almost all larger systems (servers, laptops, desktops) include a Baseboard Management Controller (BMC), which ranges from a M-Group Class 3 MCU, to a J-Group Class 10 CPU (see, for instance <xref target="openbmc"/> which uses a Linux kernel and system inside the BMC).
As the BMC usually has complete access to the main CPU's memory, I/O hardware and disk, the boot path security of such a system needs to be understood first as being about the security of the BMC.</t>
      <section anchor="a-reference-manufacturingboot-process">
        <name>A reference manufacturing/boot process</name>
        <t>In order to provide for immutability and privacy of the critical TrAnc and IDs, many CPU manufacturers will provide for some kind of private memory area which is only accessible when the CPU is in certain privileged states.
See the Terminology section of <xref target="RFC9397"/>, notably TEE, REE, and TAM, and also section 4, Architecture.</t>
        <t>The private memory that is important is usually non-volatile and rather small.
It may be located inside the CPU silicon die, or it may be located externally.
If the memory is external, then it is usually encrypted by a hardware mechanism on the CPU, with only the key kept inside the CPU.</t>
        <t>The entire mechanism may be external to the CPU in the form of a hardware-TPM module, or it may be entirely internal to the CPU in the form of a firmware-TPM.
It may use a custom interface to the rest of the system, or it may implement the TPM 1.2 or TPM 2.0 specifications.
Those details are important to performing a full evaluation, but do not matter much to this model (see initial-enclave-location below).</t>
        <t>During the manufacturing process, once the components have been soldered to the board, the system is usually put through a system-level test.
This is often done as a "bed-of-nails" test <xref target="BedOfNails"/>, where the board has key points attached mechanically to a test system.
A <xref target="JTAG"/> process tests the System Under Test, and then initializes some firmware into the still empty flash storage.</t>
        <t>It is now common for a factory test image to be loaded first: this image will include code to initialize the private memory key described above, and will include a first-stage bootloader and some kind of (primitive) Trusted Application Manager (TAM).
(The TAM is a piece of software that lives within the trusted execution environment.)</t>
        <t>Embedded in the stage one bootloader will be a Trust Anchor that is able to verify the second-stage bootloader image.</t>
        <t>After the system has undergone testing, the factory test image is erased, leaving the first-stage bootloader.
One or more second-stage bootloader images are installed.
The production image may be installed at that time, or if the second-stage bootloader is able to install it over the network, it may be done that way instead.</t>
        <t>There are many variations of the above process, and this section is not attempting to be prescriptive, but to be provide enough illustration to motivate subsequent terminology.</t>
        <t>The process may be entirely automated, or it may be entirely driven by humans working in the factory, or a combination of the above.</t>
        <t>These steps may all occur on an access-controlled assembly line, or the system boards may be shipped from one place to another (maybe another country) before undergoing testing.</t>
        <t>Some systems are intended to be shipped in a tamper-proof state, but it is usually not desirable that bed-of-nails testing be possible without tampering, so the initialization process is usually done prior to rendering the system tamper-proof.
An example of a one-way tamper-proof, weather resistant treatment might to mount the system board in a case and fill the case with resin.</t>
        <t>Quality control testing may be done prior to as well as after the application of tamper-proofing, as systems which do not pass inspection may be reworked to fix flaws, and this should ideally be impossible once the system has been made tamper-proof.</t>
      </section>
    </section>
    <section anchor="types-of-trust-anchors">
      <name>Types of Trust Anchors</name>
      <t>Trust Anchors (TrAnc) are fundamentally public keys with authorizations implicitly attached through the code that references them.</t>
      <t>They are used to validate other digitally signed artifacts.
Typically, these are chains of PKIX certificates leading to an End-Entity certificate (EE).</t>
      <t>The chains are usually presented as part of an externally provided object, with the term "externally" to be understood as being as close as untrusted flash, to as far as objects retrieved over a network.</t>
      <t>There is no requirement that there be any chain at all: the trust anchor can be used to validate a signature over a target object directly.</t>
      <t>The trust anchors are often stored in the form of self-signed certificates.
The self-signature does not offer any cryptographic assurance, but it does provide a form of error detection, providing verification against non-malicious forms of data corruption.
If storage is at a premium (such as inside-CPU non-volatile storage) then only the public key itself need to be stored.
For a 256-bit ECDSA key, this is 32 bytes of space.</t>
      <t>When evaluating the degree of trust for each trust anchor there are four aspects that need to be determined:</t>
      <ul spacing="normal">
        <li>
          <t>can the trust anchor be replaced or modified?</t>
        </li>
        <li>
          <t>can additional trust anchors be added?</t>
        </li>
        <li>
          <t>can trust anchors be removed?</t>
        </li>
        <li>
          <t>how is the private key associated with the trust anchor, maintained by the manufacturer, maintained?</t>
        </li>
      </ul>
      <t>The first three things are device specific properties of how the integrity of the trust anchor is maintained.</t>
      <t>The fourth property has nothing to do with the device, but has to do with the reputation and care of the entity that maintains the private key.</t>
      <t>Different anchors have different authorizations associated with them.</t>
      <t>These are:</t>
      <section anchor="secured-first-boot-trust-anchor">
        <name>Secured First Boot Trust Anchor</name>
        <t>This anchor is part of the first-stage boot loader, and it is used to validate a second-stage bootloader which may be stored in external flash.
This is called the initial software trust anchor.</t>
      </section>
      <section anchor="software-update-trust-anchor">
        <name>Software Update Trust Anchor</name>
        <t>This anchor is used to validate the main application (or operating system) load for the device.</t>
        <t>It can be stored in a number of places.
First, it may be identical to the Secure Boot Trust Anchor.</t>
        <t>Second, it may be stored in the second-stage bootloader, and therefore its integrity is protected by the Secured First Boot Trust Anchor.</t>
        <t>Third, it may be stored in the application code itself, where the application validates updates to the application directly (update in place), or via a double-buffer arrangement.
The initial (factory) load of the application code initializes the trust arrangement.</t>
        <t>In this situation the application code is not in a secured boot situation, as the second-stage bootloader does not validate the application/operating system before starting it, but it may still provide measured boot mechanism.</t>
      </section>
      <section anchor="trusted-application-manager-anchor">
        <name>Trusted Application Manager anchor</name>
        <t>This anchor is the secure key for the <xref target="RFC9397"/> Trusted Application Manager (TAM).
Code which is signed by this anchor will be given execution privileges as described by the manifest which accompanies the code.
This privilege may include updating anchors.</t>
      </section>
      <section anchor="public-webpki-anchors">
        <name>Public WebPKI anchors</name>
        <t>These anchors are used to verify HTTPS certificates from web sites.
These anchors are typically distributed as part of desktop browsers, and via desktop operating systems.</t>
        <t>The exact set of these anchors is not precisely defined: it is usually determined by the browser vendor (e.g., Mozilla, Google, Apple, Safari, Microsoft), or the operating system vendor (e.g., Apple, Google, Microsoft, Ubuntu).
In most cases these vendors look to the CA/Browser Forum <xref target="CABFORUM"/> for inclusion criteria.</t>
      </section>
      <section anchor="dnssec-root">
        <name>DNSSEC root</name>
        <t>This anchor is part of the DNS Security extensions.
It provides an anchor for securing DNS lookups.
Secure DNS lookups may be important in order to get access to software updates.
This anchor is now scheduled to change approximately every 3 years, with the new key announced several years before it is used, making it possible to embed keys that
will be valid for up to five years.</t>
        <t>This trust anchor is typically part of the application/operating system code and is usually updated by the manufacturer when they do updates.
However, a system that is connected to the Internet may update the DNSSEC anchor itself through the mechanism described in <xref target="RFC5011"/>.</t>
        <t>There are concerns that there may be a chicken and egg situation for devices that have remained in a powered off state (or disconnected from the Internet) for some period of years.
That upon being reconnected, that the device would be unable to do DNSSEC validation.
This failure would result in them being unable to obtain operating system updates that would then include the updates to the DNSSEC key.</t>
      </section>
      <section anchor="privatecloud-pki-anchors">
        <name>Private/Cloud PKI anchors</name>
        <t>It is common for many IoT and network appliances to have links to vendor provided services.
For instance, the IoT device that calls home for control purposes, or the network appliance that needs to validate a license key before it can operate.
(This may be identical to, or distinct from a Software Update anchor.  In particular, the device might call home over HTTPS to learn if there is a software update that needs to be done, but the update is signed by another key)</t>
        <t>Such vendor services can be provided with public certificates, but often the update policies such public anchors precludes their use in many operational environments.
Instead a private PKI anchor is included.
This can be in the form a multi-level PKI (as described in <xref target="pkilevel"/>), or degenerate to a level-1 PKI: a self-signed certificate.
A level-1 PKI is very simple to create and operate, and there are innumerable situations where there is just a call to "curl" with the "--pinnedpubkey" option has been used.</t>
      </section>
      <section anchor="onboarding-and-other-enrollment-anchors">
        <name>Onboarding and other Enrollment anchors</name>
        <t><xref target="RFC8995"/>, <xref target="RFC8572"/> and <xref target="RFC8366"/> specifies a mechanism for onboarding of new devices.
The voucher archifact is transfered to the device by different means, and the device must verify the signature on it.
This requires a trust anchor to be built-in to the device, and some kind of private PKI be maintained by the vendor (or it's authorized designate).
<xref target="I-D.richardson-anima-masa-considerations"/> provides some advice on choices in PKI design for a MASA.
The taxomony presented in this document apply to describing how this PKI has been designed.</t>
      </section>
      <section anchor="onboarded-network-local-anchors">
        <name>Onboarded network-local anchors</name>
        <t><xref target="RFC7030"/>, <xref target="RFC8995"/> and <xref target="I-D.ietf-netconf-trust-anchors"/> provide mechanisms by which new trust anchors may be loaded by a device during an onboarding process.
The trust anchors involved are typically local to an enterprise and are used to validate connections to other devices in the network.
This typically includes connections to network management systems that may also load or modify other trust anchors in the system.
<xref target="I-D.anima-masa-considerations"/> provides some advice in the BRSKI (<xref target="RFC8995"/>) case for appropriate PKI complexity for such local PKIs</t>
      </section>
      <section anchor="what-else">
        <name>What else?</name>
        <t>what anchors are still missing?</t>
      </section>
    </section>
    <section anchor="types-of-identities">
      <name>Types of Identities</name>
      <t>Identities are installed during manufacturing time for a variety of purposes.</t>
      <t>Identities require some private component.
Asymmetric identities (e.g., RSA, ECDSA, EdDSA systems) require a corresponding public component, usually in the form of a certificate signed by a trusted third party.</t>
      <t>This certificate associates the identity with attributes.</t>
      <t>The process of making this coordinated key pair and then installing it into the device is called identity provisioning.</t>
      <section anchor="manufacturer-installed-idevid-certificates">
        <name>Manufacturer installed IDevID certificates</name>
        <t><xref target="ieee802-1AR"/> defines a category of certificates that are installed by the manufacturer which contain a device unique serial number.</t>
        <t>A number of protocols depend upon this certificate.</t>
        <ul spacing="normal">
          <li>
            <t><xref target="RFC8572"/> and <xref target="RFC8995"/> introduce mechanisms for new devices (called pledges) to be onboarded into a network without intervention from an expert operator. A number of derived protocols such as <xref target="I-D.ietf-anima-brski-async-enroll"/>,                <xref target="I-D.ietf-anima-constrained-voucher"/>, <xref target="I-D.richardson-anima-voucher-delegation"/>, <xref target="I-D.friel-anima-brski-cloud"/> extend this in a number of ways.</t>
          </li>
          <li>
            <t><xref target="I-D.ietf-rats-architecture"/> depends upon a key provisioned into the Attesting Environment to sign Evidence.</t>
          </li>
          <li>
            <t><xref target="I-D.ietf-suit-architecture"/> may depend upon a key provisioned into the
device in order to decrypt software updates.
Both symmetric and asymmetric keys are possible.
In both cases, the decrypt operation depends upon the device having access to
a private key provisioned in advance.
The IDevID can be used for this if algorithm choices permit.
ECDSA keys do not directly support encryption in the same way that RSA does, for
instance, but the addition of ECIES can solve this.
There may be other legal considerations why the IDevID might not be used, and
a second key provisioned.</t>
          </li>
          <li>
            <t>TBD</t>
          </li>
        </ul>
        <section anchor="keygen">
          <name>Operational Considerations for Manufacturer IDevID Public Key generation</name>
          <t>The OEM manufacturer has the responsibility to provision a key pair into each
device as part of the manufacturing process.
There are a variety of mechanisms to accomplish this, which this section details.</t>
          <t>There are three fundamental ways to generate IDevID certificates for devices:</t>
          <ol spacing="normal" type="1"><li>
              <t>generating a private key on the device, creating a Certificate Signing
Request (or equivalent), and then returning a certificate to the device.</t>
            </li>
            <li>
              <t>generating a private key outside the device, signing the certificate, and
the installing both into the device.</t>
            </li>
            <li>
              <t>deriving the private key from a previously installed secret seed, that is shared with only the manufacturer.</t>
            </li>
          </ol>
          <t>There is additionally variations where the IDevID is provided as part of a Trusted Platform Module (TPM) or Secure Element (SE).
The OEM vendor may purchase such devices from another vendor, and that vendor often offers provisioning of a key pair into the device as a service.</t>
          <t>The document <xref target="I-D.moskowitz-ecdsa-pki"/> provides some practical instructions
on setting up a reference implementation for ECDSA keys using a three-tier
mechanism.</t>
          <section anchor="avcado">
            <name>Avocado method: On-device private key generation</name>
            <t>In this method, the device generates a private key on the device.
This is done within some very secure aspect of the device, such as in a Trusted Execution Environment, and the resulting private key is then stored in a secure and permanent way.
The permanency may extend beyond use of on-CPU flash, and could even involve blowing of one-time fuses.</t>
            <t>Generating the key on-device has the advantage that the private key never leaves the device.
The disadvantage is that the device may not have a verifiable random number generator.
The use of pseudo-random number generator needs to be well seeded as explained in <xref target="RFC4086"/>.
<xref target="factoringrsa"/> is an example of a successful attack on this scenario.</t>
            <t>There are a number of options of how to get the public key from the device to the certification authority.
As it is a public key, privacy is less of a concern, and the focus is on integrity.
(However disclosing the public key may have impacts on trackability of the device)</t>
            <t>So, transmission must be done in an integral manner, and must be securely associated with an assigned serial number.
The serial number goes into the certificate, and the resulting certificate needs to be loaded into the manufacturer's asset database, and returned to the device to be stored as the IDevID certificate.</t>
            <t>One way to do the transmission is during a factory Bed of Nails test (see <xref target="BedOfNails"/>) or JTAG Boundary Scan.
When done via a physical connection like this, then this is referred to as a
<em>avocado device-generated</em> / <em>mechanically-transferred</em> method.</t>
            <t>There are other ways that could be used where a certificate signing request is sent over a special network channel when the device is powered up in the factory.
This is referred to as the <em>avocado device-generated</em> / <em>network-transferred</em>  method.</t>
            <t>Regardless of how the certificate signing request is sent from the device to the factory, and how the certificate is returned to the device, a concern from production line managers is that the assembly line may have to wait for the certification authority to respond with the certificate.
This is inherently a synchronous process, as the process can not start until the private key is generated and stored.</t>
            <t>After the key generation, the device needs to set a flag such that it no longer will generate a new key, and will not accept a new IDevID via the factory network connection.
This may be a software setting, or could be as dramatic as blowing a fuse.</t>
            <t>Devices are typically constructed in a fashion such that the device is unable to ever disclose the private key via an external interface.
This is usually done using a secure-enclave provided by the CPU architecture in combination with on-chip non-volatile memory.</t>
            <t>The risk is that if an attacker with physical access is able to put the device back into an unconfigured mode, then the attacker may be able to substitute a new certificate into the device.
It is difficult to construct a rationale for doing this as the attacker would not be able to forge a certificate from the manufacturers' CA.
Other parties that rely on the IDevID would see the device as an imposter if another CA was used.
However, if the goal is theft of the device itself (without regard to having access to firmware updates), then  use of another manufacturer identity may be profitable.
Stealing a very low value item, such as a light bulb makes very little sense.
Stealing a medium value items, such as appliances, or high-value items such as cars, yachts or even airplanes would make sense.
Replacing the manufacturer IDevID permits the attacker to also replace the authority to transfer ownership in protocols like <xref target="RFC8995"/>.</t>
          </section>
          <section anchor="bamboo">
            <name>Bamboo method: Off-device private key generation</name>
            <t>In this method, a key pair is generated in the factory, outside of the device.
The factory keeps the private key in a restricted area, but uses it to form a Certification Signing Request (CSR).
The CSR is passed to the manufacturer's Certification Authority (CA), and a certificate is returned.
Other meta-data is often also returned, such as a serial number.</t>
            <t>Generating the key off-device has the advantage that the randomness of the private key can be better analyzed.
As the private key is available to the manufacturing infrastructure, the authenticity of the public key is well known ahead of time.</t>
            <t>The private key and certificate can be programmed into the device along with the initial bootloader firmware in a single step.</t>
            <t>As the private key can be known to the factory in advance of the device being ready for it, the certificate can also be generated in advance.
This hides the latency to talk to the CA, and allows for the connectivity to the CA to be less reliable without shutting down the assembly line.
A single write to the flash of the device can contain the entire firmware of the device, including configuration of trust anchors and private keys.</t>
            <t>The major downside to generating the private key off-device is that it could be seen by the manufacturing infrastructure.
It could be compromised by humans in the factory, or the equipment could be compromised.
The use of this method increases the value of attacking the manufacturing infrastructure.</t>
            <t>If private keys are generated by the manufacturing plant, and are immediately installed, but never stored, then the window in which an attacker can gain access to the private key is immensely reduced.
But, the process then becomes more synchronous, negating much of the advantage of such a system.</t>
            <t>As in the previous case, the transfer may be done via physical interfaces such as bed-of-nails, giving the <em>bamboo infrastructure-generated</em> / <em>mechanically-transferred</em> method.</t>
            <t>There is also the possibility of having a <em>bamboo infrastructure-generated</em> / <em>network-transferred</em>
key.
There is a support for "server-generated" keys in <xref target="RFC7030"/>, <xref target="RFC8894"/>, and <xref target="RFC4210"/>.
All methods strongly recommend encrypting the private key for transfer.
This is difficult to comply with here as there is not yet any private key material in the device, so in many cases it will not be possible to encrypt the private key.
Still, it may be acceptable if the device is connected directly by a wired network and unroutable addresses are used.
This not really any less secure than a bed-of-nails interface.</t>
          </section>
          <section anchor="carrot-method-key-setup-based-on-secret-seed">
            <name>Carrot method: Key setup based on secret seed</name>
            <t>In this method, a random symmetric seed is generated by a supplier to the OEM.
This is typically the manufacturer of the CPU, often a system on a chip (SOC).
In this section there are two Original Equipment Manufacturer (OEM): the first is the familiar one that is responsible for the entire device (the device-OEM), and the second one is the silicon (the Silicon-OEM) vendor in which this symmetric seed key has been provisioned.</t>
            <t>In this process, the Silicon-OEM provisions a unique secret into each device shipped.
This is typically at least 256-bits in size.</t>
            <t>This can be via fuses blown in a CPU's Trusted Execution Environment <xref target="RFC9397"/>, a TPM, or a Secure Element that provisioned at it's fabrication time.
In some cases, the secret is based upon a Physically Uncloneable Function <xref target="PUF"/>.</t>
            <t>This value is revealed to the OEM board manufacturer only via a secure channel.
Upon first boot, the system (within a TEE, a TPM, or Secure Element) will generate a key pair using this seed to initialize a Pseudo-Random-Number-Generator (PRNG).
The OEM, in a separate system, will initialize the same PRNG and, thus generate the same key pair.
The OEM then derives the public key part, and signs it with their certification authority (CA) to turns it into a certificate.
The private part is then destroyed by the OEM, ideally never stored or seen by anyone.</t>
            <t>The certificate (being public information) is placed into a database, in some cases it is loaded by the device as its IDevID certificate, in other cases, it is retrieved during the onboarding process based upon a unique serial number asserted by the device.</t>
            <t>In some ways, this method appears to have all of the downsides of the previous two methods: the device  must correctly derive its own private key, and the OEM has access to the private key, making it also vulnerable.
The device does not depend upon any internal source of random numbers to derive it's key.</t>
            <t>The OEM does all of the private key manipulation in a secure place, probably offline, and need never involve  the actual physical factory.
The OEM can do this in a different country, even.</t>
            <t>The security of the process rests upon the difficulty in extracting the seed provided by the Silicon-OEM.
While the Silicon-OEM must operate a factory that is more secure, which has a much higher cost,  the exposure for this facility can be much better controlled.  The device-OEM's factory, which has many more components as input, including device testing, can operate at a much lower risk level.</t>
            <t>Additionally, there are some other advantages to the OEM: The private keys and certificates may be calculated by the OEM asynchronously to the manufacturing process, either done in batches in advance of actual manufacturing, or on demand when an IDevID is requested.</t>
            <t>There are additional downsides of this method for OEM: the cost is often higher, and may involve additional discrete parts.
The security has been outsourced to the OEM-silicon fabrication system.
The resulting seeds must be communicated to the OEM in batches, by heavily secured physical courier, and the device-OEM must store and care for these keys very carefully.</t>
          </section>
          <section anchor="salak-method-on-device-generation-with-secure-element">
            <name>Salak method: on-device generation with Secure Element</name>
            <t>In this method, a key-pair is generated by the device using an external security element.
(It may be a discrete TPM, but the firmware TPM method is considered avocado).</t>
            <t>The secure element provides additional assurance that the private key was properly generated.
Secure elements are designed specifically so that private keys can not be extracted from the device, so even if the device is attacked in a sophisticated way, using hardware, the private key will not be disclosed.</t>
          </section>
          <section anchor="sapodilla-method-secure-element-factory-generation">
            <name>Sapodilla method: Secure Element factory generation</name>
            <t>In this method, a key-pair is generated by the Silicon-OEM in their factory.
This method is essentially identical to the salak method, but it occurs in a different factory.</t>
            <t>As a result the choice of which certification authority (CA) gets used may be very different.
It is typical for the Silicon-OEM to operate a CA themselves.
There are a few options: a) they may put IDevIDs into the device which are generic to the silicon-OEM provider, b) they may operate a CA on behalf of the device-OEM, c) they may even connect over a network to the device-OEM's CA.</t>
            <t>The device-OEM receives the secure element devices in batches in a similiar way that they receive other parts.
The secure elements are placed by the device-OEM's manufacturing plant into the devices.</t>
            <t>Upon first boot the device-OEM's firmware can read the IDevID certificate that have been placed into the secure elements, and can ask the secure element to perform signing operations using the private key contained in the secure element.
But, the private key can not be extracted.</t>
            <t>Despite the increase convenience of this method, there may be a risk if the secure elements are stolen in transport.
A thief could use them to generate signatures that would appear to be from device-OEM's devices.
To deal with this, there is often a simple activation password that the device-OEM's firmware must provide to the secure element in order to activate it.
This password is probably stored in the clear in the device-OEM's firmware: it can't be encrypted, because the source of decryption keys would be in the secure element.</t>
          </section>
        </section>
      </section>
    </section>
    <section anchor="public-key-infrastructures-pki">
      <name>Public Key Infrastructures (PKI)</name>
      <t><xref target="RFC5280"/> describes the format for certificates, and numerous mechanisms
for doing enrollment have been defined (including: EST <xref target="RFC7030"/>, CMP <xref target="RFC4210"/>,
SCEP <xref target="RFC8894"/>).</t>
      <t><xref target="RFC5280"/> provides mechanisms to deal with multi-level certification
authorities, but it is not always clear what operating rules apply.</t>
      <t>The certification authority (CA) that is central to <xref target="RFC5280"/>-style public key infrastructures can suffer three kinds of failures:</t>
      <ol spacing="normal" type="1"><li>
          <t>disclosure of a private key,</t>
        </li>
        <li>
          <t>loss of a private key,</t>
        </li>
        <li>
          <t>inappropriate signing of a certificate from an unauthorized source.</t>
        </li>
      </ol>
      <t>A PKI which discloses one or more private certification authority keys is no
longer secure.</t>
      <t>An attacker can create new identities, and forge certificates connecting
existing identities to attacker controlled public/private keypairs.
This can permit the attacker to impersonate any specific device.</t>
      <t>There is an additional kind of failure when the CA is convinced to sign (or issue) a certificate which it is not authorized to do so.
See for instance <xref target="ComodoGate"/>.
This is an authorization failure, and while a significant event, it does not result in the CA having to be re-initialized from scratch.</t>
      <t>This is distinguished from when a loss as described above renders the CA completely useless and likely requires a recall of all products that have ever had an IDevID issued from this CA.</t>
      <t>If the PKI uses Certificate Revocation Lists (CRL)s, then an attacker that has access to the private key can also revoke existing identities.</t>
      <t>In the other direction, a PKI which loses access to a private key can no
longer function.
This does not immediately result in a failure, as existing identities remain valid until their expiry time (notAfter).
However, if CRLs or OCSP are in use, then the inability to sign a fresh CRL or OCSP response will result in all identities becoming invalid once the existing CRLs or OCSP statements expire.</t>
      <t>This section details some nomenclature about the structure of certification
authorities.</t>
      <section anchor="pkilevel">
        <name>Number of levels of certification authorities (pkilevel)</name>
        <t>Section 6.1 of <xref target="RFC5280"/> provides a Basic Path Validation.
In the formula, the certificates are arranged into a list.</t>
        <t>The certification authority (CA) starts with a Trust Anchor (TrAnc).
This is counted as the first level of the authority.</t>
        <t>In the degenerate case of a self-signed certificate, then this a one level PKI.</t>
        <artset>
          <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="96" width="136" viewBox="0 0 136 96" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px">
              <path d="M 8,32 L 8,80" fill="none" stroke="black"/>
              <path d="M 96,32 L 96,80" fill="none" stroke="black"/>
              <path d="M 120,32 L 120,64" fill="none" stroke="black"/>
              <path d="M 8,32 L 96,32" fill="none" stroke="black"/>
              <path d="M 104,64 L 120,64" fill="none" stroke="black"/>
              <path d="M 8,80 L 96,80" fill="none" stroke="black"/>
              <g class="text">
                <text x="108" y="36">&lt;-</text>
                <text x="40" y="52">Issuer=</text>
                <text x="80" y="52">X</text>
                <text x="48" y="68">Subject=X</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art"><![CDATA[
.----------.<-.
|Issuer= X |  | 
|Subject=X |--'
'----------'
]]></artwork>
        </artset>
        <t>The private key associated with the Trust Anchor signs one or more certificates.
When this first level authority trusts only End-Entity (EE) certificates,
then this is a two level PKI.</t>
        <artset>
          <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="256" width="232" viewBox="0 0 232 256" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px">
              <path d="M 8,32 L 8,80" fill="none" stroke="black"/>
              <path d="M 8,160 L 8,208" fill="none" stroke="black"/>
              <path d="M 32,80 L 32,152" fill="none" stroke="black"/>
              <path d="M 80,80 L 80,112" fill="none" stroke="black"/>
              <path d="M 96,32 L 96,80" fill="none" stroke="black"/>
              <path d="M 96,160 L 96,208" fill="none" stroke="black"/>
              <path d="M 120,32 L 120,64" fill="none" stroke="black"/>
              <path d="M 136,160 L 136,208" fill="none" stroke="black"/>
              <path d="M 144,112 L 144,152" fill="none" stroke="black"/>
              <path d="M 224,160 L 224,208" fill="none" stroke="black"/>
              <path d="M 8,32 L 96,32" fill="none" stroke="black"/>
              <path d="M 96,64 L 120,64" fill="none" stroke="black"/>
              <path d="M 8,80 L 96,80" fill="none" stroke="black"/>
              <path d="M 80,112 L 144,112" fill="none" stroke="black"/>
              <path d="M 8,160 L 40,160" fill="none" stroke="black"/>
              <path d="M 64,160 L 96,160" fill="none" stroke="black"/>
              <path d="M 136,160 L 168,160" fill="none" stroke="black"/>
              <path d="M 192,160 L 224,160" fill="none" stroke="black"/>
              <path d="M 8,208 L 96,208" fill="none" stroke="black"/>
              <path d="M 136,208 L 224,208" fill="none" stroke="black"/>
              <polygon class="arrowhead" points="152,152 140,146.4 140,157.6 " fill="black" transform="rotate(90,144,152)"/>
              <polygon class="arrowhead" points="40,152 28,146.4 28,157.6 " fill="black" transform="rotate(90,32,152)"/>
              <g class="text">
                <text x="108" y="36">&lt;-</text>
                <text x="40" y="52">Issuer=</text>
                <text x="80" y="52">X</text>
                <text x="164" y="52">root</text>
                <text x="48" y="68">Subject=X</text>
                <text x="164" y="68">CA</text>
                <text x="52" y="164">EE</text>
                <text x="180" y="164">EE</text>
                <text x="40" y="180">Issuer=</text>
                <text x="80" y="180">X</text>
                <text x="168" y="180">Issuer=</text>
                <text x="208" y="180">X</text>
                <text x="52" y="196">Subject=Y1</text>
                <text x="180" y="196">Subject=Y2</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art"><![CDATA[
.----------.<-.
|Issuer= X |  |   root
|Subject=X +--'    CA
'--+-----+-'
   |     |
   |     '-------.
   |             |
   v             v
.----EE----.    .----EE----.
|Issuer= X |    |Issuer= X |
|Subject=Y1|    |Subject=Y2|
'----------'    '----------'


]]></artwork>
        </artset>
        <t>When this first level authority signs subordinate certification authorities,
and those certification authorities sign End-Entity certificates, then
this is a three level PKI.</t>
        <artset>
          <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="432" width="480" viewBox="0 0 480 432" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px">
              <path d="M 8,288 L 8,336" fill="none" stroke="black"/>
              <path d="M 32,160 L 32,208" fill="none" stroke="black"/>
              <path d="M 32,240 L 32,280" fill="none" stroke="black"/>
              <path d="M 56,112 L 56,152" fill="none" stroke="black"/>
              <path d="M 56,208 L 56,240" fill="none" stroke="black"/>
              <path d="M 88,208 L 88,240" fill="none" stroke="black"/>
              <path d="M 96,288 L 96,336" fill="none" stroke="black"/>
              <path d="M 120,160 L 120,208" fill="none" stroke="black"/>
              <path d="M 128,32 L 128,80" fill="none" stroke="black"/>
              <path d="M 136,288 L 136,336" fill="none" stroke="black"/>
              <path d="M 152,80 L 152,112" fill="none" stroke="black"/>
              <path d="M 152,240 L 152,280" fill="none" stroke="black"/>
              <path d="M 200,80 L 200,112" fill="none" stroke="black"/>
              <path d="M 216,32 L 216,80" fill="none" stroke="black"/>
              <path d="M 224,288 L 224,336" fill="none" stroke="black"/>
              <path d="M 240,32 L 240,64" fill="none" stroke="black"/>
              <path d="M 256,288 L 256,336" fill="none" stroke="black"/>
              <path d="M 272,240 L 272,280" fill="none" stroke="black"/>
              <path d="M 280,160 L 280,208" fill="none" stroke="black"/>
              <path d="M 304,112 L 304,152" fill="none" stroke="black"/>
              <path d="M 304,208 L 304,240" fill="none" stroke="black"/>
              <path d="M 344,208 L 344,240" fill="none" stroke="black"/>
              <path d="M 344,288 L 344,336" fill="none" stroke="black"/>
              <path d="M 368,160 L 368,208" fill="none" stroke="black"/>
              <path d="M 384,288 L 384,336" fill="none" stroke="black"/>
              <path d="M 400,240 L 400,280" fill="none" stroke="black"/>
              <path d="M 472,288 L 472,336" fill="none" stroke="black"/>
              <path d="M 128,32 L 216,32" fill="none" stroke="black"/>
              <path d="M 216,64 L 240,64" fill="none" stroke="black"/>
              <path d="M 128,80 L 216,80" fill="none" stroke="black"/>
              <path d="M 56,112 L 152,112" fill="none" stroke="black"/>
              <path d="M 200,112 L 304,112" fill="none" stroke="black"/>
              <path d="M 32,160 L 120,160" fill="none" stroke="black"/>
              <path d="M 280,160 L 368,160" fill="none" stroke="black"/>
              <path d="M 32,208 L 120,208" fill="none" stroke="black"/>
              <path d="M 280,208 L 368,208" fill="none" stroke="black"/>
              <path d="M 32,240 L 56,240" fill="none" stroke="black"/>
              <path d="M 88,240 L 152,240" fill="none" stroke="black"/>
              <path d="M 272,240 L 304,240" fill="none" stroke="black"/>
              <path d="M 344,240 L 400,240" fill="none" stroke="black"/>
              <path d="M 8,288 L 40,288" fill="none" stroke="black"/>
              <path d="M 64,288 L 96,288" fill="none" stroke="black"/>
              <path d="M 136,288 L 168,288" fill="none" stroke="black"/>
              <path d="M 192,288 L 224,288" fill="none" stroke="black"/>
              <path d="M 256,288 L 288,288" fill="none" stroke="black"/>
              <path d="M 312,288 L 344,288" fill="none" stroke="black"/>
              <path d="M 384,288 L 416,288" fill="none" stroke="black"/>
              <path d="M 440,288 L 472,288" fill="none" stroke="black"/>
              <path d="M 8,336 L 96,336" fill="none" stroke="black"/>
              <path d="M 136,336 L 224,336" fill="none" stroke="black"/>
              <path d="M 256,336 L 344,336" fill="none" stroke="black"/>
              <path d="M 384,336 L 472,336" fill="none" stroke="black"/>
              <polygon class="arrowhead" points="408,280 396,274.4 396,285.6 " fill="black" transform="rotate(90,400,280)"/>
              <polygon class="arrowhead" points="312,152 300,146.4 300,157.6 " fill="black" transform="rotate(90,304,152)"/>
              <polygon class="arrowhead" points="280,280 268,274.4 268,285.6 " fill="black" transform="rotate(90,272,280)"/>
              <polygon class="arrowhead" points="160,280 148,274.4 148,285.6 " fill="black" transform="rotate(90,152,280)"/>
              <polygon class="arrowhead" points="64,152 52,146.4 52,157.6 " fill="black" transform="rotate(90,56,152)"/>
              <polygon class="arrowhead" points="40,280 28,274.4 28,285.6 " fill="black" transform="rotate(90,32,280)"/>
              <g class="text">
                <text x="228" y="36">&lt;-</text>
                <text x="44" y="52">root</text>
                <text x="160" y="52">Issuer=</text>
                <text x="200" y="52">X</text>
                <text x="44" y="68">CA</text>
                <text x="168" y="68">Subject=X</text>
                <text x="64" y="180">Issuer=</text>
                <text x="104" y="180">X</text>
                <text x="200" y="180">subordinate</text>
                <text x="312" y="180">Issuer=</text>
                <text x="352" y="180">X</text>
                <text x="76" y="196">Subject=Y1</text>
                <text x="196" y="196">CA</text>
                <text x="324" y="196">Subject=Y2</text>
                <text x="52" y="292">EE</text>
                <text x="180" y="292">EE</text>
                <text x="300" y="292">EE</text>
                <text x="428" y="292">EE</text>
                <text x="40" y="308">Issuer=</text>
                <text x="84" y="308">Y1</text>
                <text x="168" y="308">Issuer=</text>
                <text x="212" y="308">Y1</text>
                <text x="288" y="308">Issuer=</text>
                <text x="332" y="308">Y2</text>
                <text x="416" y="308">Issuer=</text>
                <text x="460" y="308">Y2</text>
                <text x="52" y="324">Subject=Z1</text>
                <text x="180" y="324">Subject=Z1</text>
                <text x="300" y="324">Subject=Z3</text>
                <text x="428" y="324">Subject=Z4</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art"><![CDATA[
               .----------.<-.
   root        |Issuer= X |  |
    CA         |Subject=X +--'
               '--+-----+-'
                  |     |
      .-----------'     '------------.
      |                              |
      v                              v
   .----------.                   .----------.
   |Issuer= X |    subordinate    |Issuer= X |
   |Subject=Y1|        CA         |Subject=Y2|
   '--+---+---'                   '--+----+--'
      |   |                          |    |
   .--'   '-------.              .---'    '------.
   |              |              |               |
   v              v              v               v
.----EE----.    .----EE----.   .----EE----.    .----EE----.
|Issuer= Y1|    |Issuer= Y1|   |Issuer= Y2|    |Issuer= Y2|
|Subject=Z1|    |Subject=Z1|   |Subject=Z3|    |Subject=Z4|
'----------'    '----------'   '----------'    '----------'





]]></artwork>
        </artset>
        <t>In general, when arranged as a tree, with the End-Entity certificates at the
bottom, and the Trust Anchor at the top, then the level is where the deepest EE
certificates are, counting from one.</t>
        <t>It is quite common to have a three-level PKI, where the root (level one) of the CA is
stored in a Hardware Security Module in a way that it cannot be continuously accessed ("offline"), while the level two subordinate CA can sign certificates at any time ("online").</t>
      </section>
      <section anchor="protection-of-ca-private-keys">
        <name>Protection of CA private keys</name>
        <t>The private key for the certification authorities must be protected from
disclosure.
The strongest protection is afforded by keeping them in a offline device,
passing Certificate Signing Requests (CSRs) to the offline device by human
process.</t>
        <t>For examples of extreme measures, see <xref target="kskceremony"/>.
There is however a wide spectrum of needs, as exampled in <xref target="rootkeyceremony"/>.
The SAS70 audit standard is usually used as a basis for the Ceremony, see <xref target="keyceremony2"/>.</t>
        <t>This is inconvenient, and may involve latencies of days, possibly even weeks
to months if the offline device is kept in a locked environment that requires
multiple keys to be present.</t>
        <t>There is therefore a tension between protection and convenience.
Convenient and timely access to sign new artifacts is not something that is just nice to have.
If access is inconvenient then it may cause delays for signing of new code releases,
or it may incentivize technical staff to build in work arounds in order that they can get their job done faster.
The compromise between situations is often mitigated by having some levels of the PKI be offline, and some levels of the PKI be online.</t>
      </section>
      <section anchor="preservation-of-ca-and-trust-anchor-private-keys">
        <name>Preservation of CA and Trust Anchor private keys</name>
        <t>A public key (or certificate) is installed into target device(s) as a trust anchor.
Is it there in order to verify further artifacts, and it represents a significant investment.
Trust anchors must not be easily replaced by attackers, and securing the trust anchor against such tampering may involve burning the trust anchor into unchangeable fuses inside a CPU.</t>
        <t>Replacement of the anchor can involve a physical recall of every single device.
It therefore important that the trust anchor is useable for the entire lifetime of every single one of the devices.</t>
        <t>The previous section deals with attacks against the infrastructure: the attacker wants to get access to the private key material, or to convince the infrastructure to use the private key material to their bidding.
Such an event, if undetected would be catastrosphic.
But, when detected, would render almost every device useless (or potentially dangerous) until the anchor could be replaced.</t>
        <t>There is a different situation, however, which would lead to a similiar result.
If the legitimate owner of the trust anchor infrastructure loses access the private keys, then an equally catastrophic situation occurs.</t>
        <t>There are many situations that could lead to this.
The most typical situation would seem to be some kind of physical damage: a flood, a fire.
Less obvious situations could occur if a human forgets a password, or if the human with the password(s) dies, or becomes incapacited.</t>
        <t>Backups of critical material is routinely done.
Storage of backups offsite deals with physical damage, and in many cases the organization maintains an entire set of equipment at another location.</t>
        <t>The question then becomes: how are the backups unlocked, or activated.
Why attack the primary site physically if an attacker can target the backup site, or the people whose job it is to activate the backup site?</t>
        <t>Consider the situation where a hurricane or earthquake takes out all power and communications at an organizations' primary location,  and it becomes necessary to activate the backup site.
What does it take to do that?</t>
        <t>Typically the secrets will be split using <xref target="shamir79"/> into multiple pieces, each piece being carried with a different trusted employee.</t>
        <t>In <xref target="kskceremony"/>, the pieces are stored on smartcards which are kept in a vault, and the trusted people carry keys to the vault.</t>
        <t>One advantage of this mechanism is that if necessary, the doors to the vault can be drilled out.
This takes some significant time and leaves significant evidence, so it can not be done quietly by an attacker.
In the case of the DNSSEC Root, a failure of the vault to open actually required this to be done.</t>
        <t>In other systems the digital pieces are carried on the person themselves, ideally encrypted with a password known only to that person.</t>
        <t><xref target="shamir79"/> allows for keys to be split up into n-components, where only some smaller number of them, k, need to be present to reconstruct the secret.
This is known as a (k, n) threshold scheme.</t>
        <section anchor="splittingnumbers">
          <name>Secret splitting, k-of-n</name>
          <t>In this document, each of the people who hold a piece of the secret are referred to as Key Executives.</t>
          <t>The choice of n, and the choice of k is therefore of critical concern.
It seems unwise for an organizations to publish them, as it provides some evidence as to how many Key Executives would need to be coerced.</t>
          <t>The identities of the n Key Executive should also be confidential.
The list of who they are should probably be limited to the members of the board and executive.
There does not seem to be any particular reason for the Key Executives to be members of the board, but having a long term relationship with the enterprise seems reasonable, and a clear understanding of when to use the piece.</t>
          <t>The number k, which is the minimum number of people that would need to be coerced should also remain confidential.</t>
          <t>A number that can be published is the difference between k and n, which represents the number of redundant Key Executives that exist.</t>
          <t>An enterprise that has operations in multiple places may be better positioned to survive  incidents that disrupt travel.
For instance, an earthquake, tsunami, or pandemic not only has the possibility to kill Key Executives or the smartcard or USB key that they are stored on.
<xref target="shamir79"/> suggests that n=2k-1, which implies that a simple majority of Key Executives are needed to reconstruct the secret, other values of k have some interesting advantages.</t>
          <t>A value of k set to be less than a simple majority, where the Key Executives are split between two or more continents (with each continent having at least k Key Executives) would allow either  continent to continue operations without the other group.</t>
          <t>This might be a very good way to manage a code signing or update signing key.
Split it among development groups in three time zones (eight hours apart), such that any of those development groups can issue an emergency security patch.
(Another way would be to have three End-Entity certificates that can sign code, and have each time zone sign their own code.  That implies that there is at least a level two PKI around the code signing process, and that any bootloaders that need to verify the code being starting it are able to do PKI operations)</t>
        </section>
      </section>
      <section anchor="supporting-provisioned-anchors-in-devices">
        <name>Supporting provisioned anchors in devices</name>
        <t>IDevID-type Identity (or Birth) Certificates which are provisioned into
devices need to be signed by a certification authority maintained by the manufacturer.
During the period of manufacture of new product, the manufacturer needs to be be able to sign new Identity Certificates.</t>
        <t>During the anticipated lifespan of the devices the manufacturer needs to maintain the ability for third parties to validate the Identity Certificates.
If there are Certificate Revocation Lists (CRLs) involved, then they will need to re-signed during this period.
Even for devices with a short active lifetime, the lifespan of the device could very long if devices are kept in a warehouse for many decades before being activated.</t>
        <t>Trust anchors which are provisioned in the devices will have corresponding
private keys maintained by the manufacturer.
The trust anchors will often anchor a PKI which is going to be used for a
particular purpose.
There will be End-Entity (EE) certificates of this PKI which will be used to sign
particular artifacts (such as software updates), or messages in communications protocols
(such as TLS connections).
The private keys associated with these EE certificates are not stored in the
device, but are maintained by the manufacturer.
These need even more care than the private keys stored in the devices, as
compromise of the software update key compromises all of the devices, not
just a single device.</t>
      </section>
    </section>
    <section anchor="evaluation-questions">
      <name>Evaluation Questions</name>
      <t>This section recaps the set of questions that may need to be answered.
This document does not assign valuation to the answers.</t>
      <section anchor="integrity-and-privacy-of-on-device-data">
        <name>Integrity and Privacy of on-device data</name>
        <dl>
          <dt>initial-enclave-location:</dt>
          <dd>
            <t>Is the location of the initial software trust anchor internal to the CPU package?
Some systems have a software verification public key which is built into the CPU package, while other systems store that initial key in a non-volatile device external to the CPU.</t>
          </dd>
          <dt>initial-enclave-integrity-key:</dt>
          <dd>
            <t>If the first-stage bootloader is external to the CPU, and if it is integrity protected, where is the key used to check the integrity?</t>
          </dd>
          <dt>initial-enclave-privacy-key:</dt>
          <dd>
            <t>If the first-stage data is external to the CPU, is it kept confidential by use of encryption?</t>
          </dd>
          <dt>first-stage-exposure:</dt>
          <dd>
            <t>The number of people involved in the first stage initialization.
An entirely automated system would have a number zero.
A factory with three 8 hour shifts might have a number that is a multiple of three.
A system with humans involved may be subject to bribery attacks, while a system with no humans may be subject to attacks on the system which are hard to notice.</t>
          </dd>
          <dt>first-second-stage-gap:</dt>
          <dd>
            <t>how far and long does a board travel between being initialized with a first-stage bootloader to where it is locked down so that changes to the bootloader can no longer be made.
For many situations, there is no distance at all as they occur in the same factory, but for other situations boards are manufactured and tested in one location, but are initialized elsewhere.</t>
          </dd>
        </dl>
      </section>
      <section anchor="integrity-and-privacy-of-device-identify-infrastructure">
        <name>Integrity and Privacy of device identify infrastructure</name>
        <t>For IDevID provisioning, which includes a private key and matching
certificate installed into the device, the associated public key
infrastructure that anchors this identity must be maintained by the
manufacturer.</t>
        <dl>
          <dt>identity-pki-level:</dt>
          <dd>
            <t>referring to <xref target="pkilevel"/>, the level number at which End-Entity certificates are present.</t>
          </dd>
          <dt>identity-time-limits-per-subordinate:</dt>
          <dd>
            <t>how long is each subordinate CA maintained before a new
subordinate CA key is generated?  There may be no time limit, only a device
count limit.</t>
          </dd>
          <dt>identity-number-per-subordinate:</dt>
          <dd>
            <t>how many identities are signed by a particular subordinate CA before it is
retired?  There may be no numeric limit, only a time limit.</t>
          </dd>
          <dt>identity-anchor-storage:</dt>
          <dd>
            <t>how is the root CA key stored? An open description that might include whether an HSM is used, or not, or even the model of it.</t>
          </dd>
          <dt>identity-shared-split-extra:</dt>
          <dd>
            <t>referring to <xref target="splittingnumbers"/>, where a private key is split up into n-components, of which k are required to recover the key, this number is n-k.
This is the number of spare shares.
Publishing this provides a measure of how much redundancy is present while not actually revealing either k or n.</t>
          </dd>
          <dt>identity-shared-split-continents:</dt>
          <dd>
            <t>the number of continents on which the private key can be recovered without travel by any of the secret share holders</t>
          </dd>
        </dl>
      </section>
      <section anchor="integrity-and-privacy-of-included-trust-anchors">
        <name>Integrity and Privacy of included trust anchors</name>
        <t>For each trust anchor (public key) stored in the device, there will be an
associated PKI.
For each of those PKI the following questions need to be answered.</t>
        <dl>
          <dt>pki-level:</dt>
          <dd>
            <t>how deep is the EE that will be evaluated, based upon the criteria in <xref target="pkilevel"/></t>
          </dd>
          <dt>pki-algorithms:</dt>
          <dd>
            <t>what kind of algorithms and key sizes can actively be used with the device.</t>
          </dd>
          <dt>pki-lifespan:</dt>
          <dd>
            <t>what is the timespan for this anchor.  Does it get replaced at some interval, and if so, by what means is this done?</t>
          </dd>
          <dt>pki-level-locked:</dt>
          <dd>
            <t>(a Boolean) is the level where the EE cert will be found locked by the device, or can
levels be added or deleted by the PKI operator without code changes to the
device.</t>
          </dd>
          <dt>pki-breadth:</dt>
          <dd>
            <t>how many different non-expired EE certificates is the PKI designed to manage?</t>
          </dd>
          <dt>pki-lock-policy:</dt>
          <dd>
            <t>can any EE certificate be used with this trust anchor to sign?  Or, is there
some kind of policy OID or Subject restriction?  Are specific subordinate
CAs needed that lead to the EE?</t>
          </dd>
          <dt>pki-anchor-storage:</dt>
          <dd>
            <t>how is the private key associated with this trust root stored? How many people are needed to recover it?</t>
          </dd>
        </dl>
      </section>
    </section>
    <section anchor="privacy-considerations">
      <name>Privacy Considerations</name>
      <t>many yet to be detailed</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>This entire document is about security considerations.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document makes no IANA requests.</t>
    </section>
    <section anchor="acknowledgements">
      <name>Acknowledgements</name>
      <t>Robert Martin of MITRE provided some guidance about citing the SBOM efforts.
Carsten Borman provides many editorial suggestions.</t>
    </section>
    <section anchor="changelog">
      <name>Changelog</name>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC5280">
          <front>
            <title>Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile</title>
            <author fullname="D. Cooper" initials="D." surname="Cooper"/>
            <author fullname="S. Santesson" initials="S." surname="Santesson"/>
            <author fullname="S. Farrell" initials="S." surname="Farrell"/>
            <author fullname="S. Boeyen" initials="S." surname="Boeyen"/>
            <author fullname="R. Housley" initials="R." surname="Housley"/>
            <author fullname="W. Polk" initials="W." surname="Polk"/>
            <date month="May" year="2008"/>
            <abstract>
              <t>This memo profiles the X.509 v3 certificate and X.509 v2 certificate revocation list (CRL) for use in the Internet. An overview of this approach and model is provided as an introduction. The X.509 v3 certificate format is described in detail, with additional information regarding the format and semantics of Internet name forms. Standard certificate extensions are described and two Internet-specific extensions are defined. A set of required certificate extensions is specified. The X.509 v2 CRL format is described in detail along with standard and Internet-specific extensions. An algorithm for X.509 certification path validation is described. An ASN.1 module and examples are provided in the appendices. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5280"/>
          <seriesInfo name="DOI" value="10.17487/RFC5280"/>
        </reference>
        <reference anchor="ieee802-1AR" target="http://standards.ieee.org/findstds/standard/802.1AR-2009.html">
          <front>
            <title>IEEE 802.1AR Secure Device Identifier</title>
            <author>
              <organization>IEEE Standard</organization>
            </author>
            <date year="2009"/>
          </front>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC8995">
          <front>
            <title>Bootstrapping Remote Secure Key Infrastructure (BRSKI)</title>
            <author fullname="M. Pritikin" initials="M." surname="Pritikin"/>
            <author fullname="M. Richardson" initials="M." surname="Richardson"/>
            <author fullname="T. Eckert" initials="T." surname="Eckert"/>
            <author fullname="M. Behringer" initials="M." surname="Behringer"/>
            <author fullname="K. Watsen" initials="K." surname="Watsen"/>
            <date month="May" year="2021"/>
            <abstract>
              <t>This document specifies automated bootstrapping of an Autonomic Control Plane. To do this, a Secure Key Infrastructure is bootstrapped. This is done using manufacturer-installed X.509 certificates, in combination with a manufacturer's authorizing service, both online and offline. We call this process the Bootstrapping Remote Secure Key Infrastructure (BRSKI) protocol. Bootstrapping a new device can occur when using a routable address and a cloud service, only link-local connectivity, or limited/disconnected networks. Support for deployment models with less stringent security requirements is included. Bootstrapping is complete when the cryptographic identity of the new key infrastructure is successfully deployed to the device. The established secure connection can be used to deploy a locally issued certificate to the device as well.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8995"/>
          <seriesInfo name="DOI" value="10.17487/RFC8995"/>
        </reference>
        <reference anchor="I-D.richardson-anima-voucher-delegation">
          <front>
            <title>Delegated Authority for Bootstrap Voucher Artifacts</title>
            <author fullname="Michael Richardson" initials="M." surname="Richardson">
              <organization>Sandelman Software Works</organization>
            </author>
            <author fullname="Wei Pan" initials="W." surname="Pan">
              <organization>Huawei Technologies</organization>
            </author>
            <date day="22" month="March" year="2021"/>
            <abstract>
              <t>   This document describes an extension of the RFC8366 Voucher Artifact
   in order to support delegation of signing authority.  The initial
   voucher pins a public identity, and that public indentity can then
   issue additional vouchers.  This chain of authorization can support
   permission-less resale of devices, as well as guarding against
   business failure of the BRSKI [I-D.ietf-anima-bootstrapping-keyinfra]
   Manufacturer Authorized Signing Authority (MASA).

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-richardson-anima-voucher-delegation-03"/>
        </reference>
        <reference anchor="I-D.friel-anima-brski-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="6" month="April" year="2021"/>
            <abstract>
              <t>   This document specifies the behaviour of a BRSKI Cloud Registrar, and
   how a pledge can interact with a BRSKI Cloud Registrar when
   bootstrapping.

   RFCED REMOVE: It is being actively worked on at https://github.com/
   anima-wg/brski-cloud

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-friel-anima-brski-cloud-04"/>
        </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="2025"/>
            <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-27"/>
        </reference>
        <reference anchor="I-D.ietf-anima-brski-async-enroll">
          <front>
            <title>BRSKI-AE: Alternative Enrollment Protocols in BRSKI</title>
            <author fullname="David von Oheimb" initials="D." surname="von Oheimb">
              <organization>Siemens AG</organization>
            </author>
            <author fullname="Steffen Fries" initials="S." surname="Fries">
              <organization>Siemens AG</organization>
            </author>
            <author fullname="Hendrik Brockhaus" initials="H." surname="Brockhaus">
              <organization>Siemens AG</organization>
            </author>
            <author fullname="Eliot Lear" initials="E." surname="Lear">
              <organization>Cisco Systems</organization>
            </author>
            <date day="7" month="March" year="2022"/>
            <abstract>
              <t>   This document enhances Bootstrapping Remote Secure Key Infrastructure
   (BRSKI, [RFC8995]) to allow employing alternative enrollment
   protocols, such as CMP.

   Using self-contained signed objects, the origin of enrollment
   requests and responses can be authenticated independently of message
   transfer.  This supports end-to-end security and asynchronous
   operation of certificate enrollment and provides flexibility where to
   authenticate and authorize certification requests.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-anima-brski-async-enroll-05"/>
        </reference>
        <reference anchor="I-D.moskowitz-ecdsa-pki">
          <front>
            <title>Guide for building an ECC pki</title>
            <author fullname="Robert Moskowitz" initials="R." surname="Moskowitz">
              <organization>HTT Consulting</organization>
            </author>
            <author fullname="Henk Birkholz" initials="H." surname="Birkholz">
              <organization>Fraunhofer SIT</organization>
            </author>
            <author fullname="Liang Xia" initials="L." surname="Xia">
              <organization>Huawei</organization>
            </author>
            <author fullname="Michael Richardson" initials="M." surname="Richardson">
              <organization>Sandelman Software Works</organization>
            </author>
            <date day="31" month="January" year="2021"/>
            <abstract>
              <t>   This memo provides a guide for building a PKI (Public Key
   Infrastructure) using openSSL.  All certificates in this guide are
   ECDSA, P-256, with SHA256 certificates.  Along with common End Entity
   certificates, this guide provides instructions for creating IEEE
   802.1AR iDevID Secure Device certificates.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-moskowitz-ecdsa-pki-10"/>
        </reference>
        <reference anchor="RFC4949">
          <front>
            <title>Internet Security Glossary, Version 2</title>
            <author fullname="R. Shirey" initials="R." surname="Shirey"/>
            <date month="August" year="2007"/>
            <abstract>
              <t>This Glossary provides definitions, abbreviations, and explanations of terminology for information system security. The 334 pages of entries offer recommendations to improve the comprehensibility of written material that is generated in the Internet Standards Process (RFC 2026). The recommendations follow the principles that such writing should (a) use the same term or definition whenever the same concept is mentioned; (b) use terms in their plainest, dictionary sense; (c) use terms that are already well-established in open publications; and (d) avoid terms that either favor a particular vendor or favor a particular technology or mechanism over other, competing techniques that already exist or could be developed. This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="FYI" value="36"/>
          <seriesInfo name="RFC" value="4949"/>
          <seriesInfo name="DOI" value="10.17487/RFC4949"/>
        </reference>
        <reference anchor="RFC5011">
          <front>
            <title>Automated Updates of DNS Security (DNSSEC) Trust Anchors</title>
            <author fullname="M. StJohns" initials="M." surname="StJohns"/>
            <date month="September" year="2007"/>
            <abstract>
              <t>This document describes a means for automated, authenticated, and authorized updating of DNSSEC "trust anchors". The method provides protection against N-1 key compromises of N keys in the trust point key set. Based on the trust established by the presence of a current anchor, other anchors may be added at the same place in the hierarchy, and, ultimately, supplant the existing anchor(s).</t>
              <t>This mechanism will require changes to resolver management behavior (but not resolver resolution behavior), and the addition of a single flag bit to the DNSKEY record. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="74"/>
          <seriesInfo name="RFC" value="5011"/>
          <seriesInfo name="DOI" value="10.17487/RFC5011"/>
        </reference>
        <reference anchor="RFC8366">
          <front>
            <title>A Voucher Artifact for Bootstrapping Protocols</title>
            <author fullname="K. Watsen" initials="K." surname="Watsen"/>
            <author fullname="M. Richardson" initials="M." surname="Richardson"/>
            <author fullname="M. Pritikin" initials="M." surname="Pritikin"/>
            <author fullname="T. Eckert" initials="T." surname="Eckert"/>
            <date month="May" year="2018"/>
            <abstract>
              <t>This document defines a strategy to securely assign a pledge to an owner using an artifact signed, directly or indirectly, by the pledge's manufacturer. This artifact is known as a "voucher".</t>
              <t>This document defines an artifact format as a YANG-defined JSON document that has been signed using a Cryptographic Message Syntax (CMS) structure. Other YANG-derived formats are possible. The voucher artifact is normally generated by the pledge's manufacturer (i.e., the Manufacturer Authorized Signing Authority (MASA)).</t>
              <t>This document only defines the voucher artifact, leaving it to other documents to describe specialized protocols for accessing it.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8366"/>
          <seriesInfo name="DOI" value="10.17487/RFC8366"/>
        </reference>
        <reference anchor="RFC8572">
          <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="RFC7030">
          <front>
            <title>Enrollment over Secure Transport</title>
            <author fullname="M. Pritikin" initials="M." role="editor" surname="Pritikin"/>
            <author fullname="P. Yee" initials="P." role="editor" surname="Yee"/>
            <author fullname="D. Harkins" initials="D." role="editor" surname="Harkins"/>
            <date month="October" year="2013"/>
            <abstract>
              <t>This document profiles certificate enrollment for clients using Certificate Management over CMS (CMC) messages over a secure transport. This profile, called Enrollment over Secure Transport (EST), describes a simple, yet functional, certificate management protocol targeting Public Key Infrastructure (PKI) clients that need to acquire client certificates and associated Certification Authority (CA) certificates. It also supports client-generated public/private key pairs as well as key pairs generated by the CA.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7030"/>
          <seriesInfo name="DOI" value="10.17487/RFC7030"/>
        </reference>
        <reference anchor="RFC8894">
          <front>
            <title>Simple Certificate Enrolment Protocol</title>
            <author fullname="P. Gutmann" initials="P." surname="Gutmann"/>
            <date month="September" year="2020"/>
            <abstract>
              <t>This document specifies the Simple Certificate Enrolment Protocol (SCEP), a PKI protocol that leverages existing technology by using Cryptographic Message Syntax (CMS, formerly known as PKCS #7) and PKCS #10 over HTTP. SCEP is the evolution of the enrolment protocol sponsored by Cisco Systems, which enjoys wide support in both client and server implementations, as well as being relied upon by numerous other industry standards that work with certificates.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8894"/>
          <seriesInfo name="DOI" value="10.17487/RFC8894"/>
        </reference>
        <reference anchor="RFC4210">
          <front>
            <title>Internet X.509 Public Key Infrastructure Certificate Management Protocol (CMP)</title>
            <author fullname="C. Adams" initials="C." surname="Adams"/>
            <author fullname="S. Farrell" initials="S." surname="Farrell"/>
            <author fullname="T. Kause" initials="T." surname="Kause"/>
            <author fullname="T. Mononen" initials="T." surname="Mononen"/>
            <date month="September" year="2005"/>
            <abstract>
              <t>This document describes the Internet X.509 Public Key Infrastructure (PKI) Certificate Management Protocol (CMP). Protocol messages are defined for X.509v3 certificate creation and management. CMP provides on-line interactions between PKI components, including an exchange between a Certification Authority (CA) and a client system. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4210"/>
          <seriesInfo name="DOI" value="10.17487/RFC4210"/>
        </reference>
        <reference anchor="_3GPP.51.011" target="http://www.3gpp.org/ftp/Specs/archive/51_series/51.011/51011-4f0.zip">
          <front>
            <title>Specification of the Subscriber Identity Module - Mobile Equipment (SIM-ME) interface</title>
            <author>
              <organization abbrev="3GPP">3rd Generation Partnership Project</organization>
              <address>
                <postal>
                  <country>France</country>
                  <city>Sophia Antipolis Cedex</city>
                </postal>
              </address>
            </author>
            <author fullname="PHAN, Ly Thanh">
              <organization>Gemalto N.V.</organization>
            </author>
            <date day="15" month="June" year="2005"/>
          </front>
        </reference>
        <reference anchor="RFC6024">
          <front>
            <title>Trust Anchor Management Requirements</title>
            <author fullname="R. Reddy" initials="R." surname="Reddy"/>
            <author fullname="C. Wallace" initials="C." surname="Wallace"/>
            <date month="October" year="2010"/>
            <abstract>
              <t>A trust anchor represents an authoritative entity via a public key and associated data. The public key is used to verify digital signatures, and the associated data is used to constrain the types of information for which the trust anchor is authoritative. A relying party uses trust anchors to determine if a digitally signed object is valid by verifying a digital signature using the trust anchor's public key, and by enforcing the constraints expressed in the associated data for the trust anchor. This document describes some of the problems associated with the lack of a standard trust anchor management mechanism and defines requirements for data formats and push-based protocols designed to address these problems. This document is not an Internet Standards Track specification; it is published for informational purposes.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6024"/>
          <seriesInfo name="DOI" value="10.17487/RFC6024"/>
        </reference>
        <reference anchor="BedOfNails" target="https://en.wikipedia.org/wiki/In-circuit_test#Bed_of_nails_tester">
          <front>
            <title>Bed of nails tester</title>
            <author>
              <organization>Wikipedia</organization>
            </author>
            <date year="2020" month="July" day="01"/>
          </front>
        </reference>
        <reference anchor="pelionfcu" target="https://www.pelion.com/docs/device-management-provision/1.2/introduction/index.html">
          <front>
            <title>Factory provisioning overview</title>
            <author>
              <organization>ARM Pelion</organization>
            </author>
            <date year="2020" month="June" day="28"/>
          </front>
        </reference>
        <reference anchor="factoringrsa" target="https://core.ac.uk/download/pdf/204886987.pdf">
          <front>
            <title>Factoring RSA keys from certified smart cards: Coppersmith in the wild</title>
            <author>
              <organization/>
            </author>
            <date year="2013" month="September" day="16"/>
          </front>
        </reference>
        <reference anchor="kskceremony" target="https://www.iana.org/dnssec/dps/zsk-operator/dps-zsk-operator-v2.0.pdf">
          <front>
            <title>DNSSEC Practice Statement for the Root Zone ZSK Operator</title>
            <author>
              <organization>Verisign</organization>
            </author>
            <date year="2017"/>
          </front>
        </reference>
        <reference anchor="rootkeyceremony" target="https://cryptography.fandom.com/wiki/Root_Key_Ceremony">
          <front>
            <title>Root Key Ceremony, Cryptography Wiki</title>
            <author>
              <organization>Community</organization>
            </author>
            <date year="2020" month="April" day="04"/>
          </front>
        </reference>
        <reference anchor="keyceremony2" target="http://www.digi-sign.com/compliance/key%20ceremony/index">
          <front>
            <title>SAS 70 Key Ceremony</title>
            <author>
              <organization>Digi-Sign</organization>
            </author>
            <date year="2020" month="April" day="04"/>
          </front>
        </reference>
        <reference anchor="shamir79" target="http://web.mit.edu/6.857/OldStuff/Fall03/ref/Shamir-HowToShareASecret.pdf">
          <front>
            <title>How to share a secret.</title>
            <author initials="A." surname="Shamir" fullname="Adi Shamir">
              <organization/>
            </author>
            <date year="1979"/>
          </front>
        </reference>
        <reference anchor="nistsp800-57" target="https://csrc.nist.gov/publications/detail/sp/800-57-part-1/rev-4/final">
          <front>
            <title>SP 800-57 Part 1 Rev. 4 Recommendation for Key Management, Part 1: General</title>
            <author>
              <organization>NIST</organization>
            </author>
            <date year="2016" month="January" day="01"/>
          </front>
        </reference>
        <reference anchor="fidotechnote" target="https://fidoalliance.org/fido-technotes-the-truth-about-attestation/">
          <front>
            <title>FIDO TechNotes: The Truth about Attestation</title>
            <author>
              <organization>FIDO Alliance</organization>
            </author>
            <date year="2018" month="July" day="19"/>
          </front>
        </reference>
        <reference anchor="ntiasbom" target="https://www.ntia.doc.gov/SoftwareTransparency">
          <front>
            <title>NTIA Software Component Transparency</title>
            <author>
              <organization>NTIA</organization>
            </author>
            <date year="2020" month="July" day="01"/>
          </front>
        </reference>
        <reference anchor="cisqsbom" target="https://www.it-cisq.org/software-bill-of-materials/index.htm">
          <front>
            <title>TOOL-TO-TOOL SOFTWARE BILL OF MATERIALS EXCHANGE</title>
            <author>
              <organization>CISQ/Object Management Group</organization>
            </author>
            <date year="2020" month="July" day="01"/>
          </front>
        </reference>
        <reference anchor="ComodoGate" target="https://www.theregister.com/2011/03/28/comodo_gate_hacker_breaks_cover/">
          <front>
            <title>Comodo-gate hacker brags about forged certificate exploit</title>
            <author>
              <organization/>
            </author>
            <date year="2011" month="March" day="28"/>
          </front>
        </reference>
        <reference anchor="openbmc" target="https://www.openbmc.org/">
          <front>
            <title>Defining a Standard Baseboard Management Controller Firmware Stack</title>
            <author>
              <organization>Linux Foundation/OpenBMC Group</organization>
            </author>
            <date year="2020" month="July" day="01"/>
          </front>
        </reference>
        <reference anchor="JTAG" target="https://en.wikipedia.org/wiki/JTAG">
          <front>
            <title>Joint Test Action Group</title>
            <author>
              <organization/>
            </author>
            <date year="2020" month="August" day="26"/>
          </front>
        </reference>
        <reference anchor="JTAGieee" target="https://ieeexplore.ieee.org/document/5412866">
          <front>
            <title>1149.7-2009 - IEEE Standard for Reduced-Pin and Enhanced-Functionality Test Access Port and Boundary-Scan Architecture</title>
            <author>
              <organization>IEEE Standard</organization>
            </author>
            <date year="2009"/>
          </front>
          <seriesInfo name="DOI" value="10.1109/IEEESTD.2010.5412866"/>
        </reference>
        <reference anchor="rootkeyrollover" target="https://www.icann.org/en/system/files/files/proposal-future-rz-ksk-rollovers-01nov19-en.pdf">
          <front>
            <title>Proposal for Future Root Zone KSK Rollovers</title>
            <author>
              <organization>ICANN</organization>
            </author>
            <date year="2019"/>
          </front>
        </reference>
        <reference anchor="CABFORUM" target="https://cabforum.org/wp-content/uploads/CA-Browser-Forum-BR-1.7.3.pdf">
          <front>
            <title>CA/Browser Forum Baseline Requirements for the Issuance and Management of Publicly-Trusted Certificates, v.1.7.3</title>
            <author>
              <organization>CA/Browser Forum</organization>
            </author>
            <date year="2020" month="October"/>
          </front>
        </reference>
        <reference anchor="PUF" target="https://en.wikipedia.org/wiki/Physical_unclonable_function">
          <front>
            <title>Physically Uncloneable Function</title>
            <author>
              <organization>Wikipedia</organization>
            </author>
            <date year="2023" month="July" day="23"/>
          </front>
        </reference>
        <reference anchor="I-D.richardson-rats-usecases">
          <front>
            <title>Use cases for Remote Attestation common encodings</title>
            <author fullname="Michael Richardson" initials="M." surname="Richardson">
              <organization>Sandelman Software Works</organization>
            </author>
            <author fullname="Carl Wallace" initials="C." surname="Wallace">
              <organization>Red Hound Software</organization>
            </author>
            <author fullname="Wei Pan" initials="W." surname="Pan">
              <organization>Huawei Technologies</organization>
            </author>
            <date day="2" month="November" year="2020"/>
            <abstract>
              <t>   This document details mechanisms created for performing Remote
   Attestation that have been used in a number of industries.  The
   document initially focuses on existing industry verticals, mapping
   terminology used in those specifications to the more abstract
   terminology used by the IETF RATS Working Group.

   The document aspires to describe possible future use cases that would
   be enabled by common formats.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-richardson-rats-usecases-08"/>
        </reference>
        <reference anchor="I-D.ietf-suit-architecture">
          <front>
            <title>A Firmware Update Architecture for Internet of Things</title>
            <author fullname="Brendan Moran" initials="B." surname="Moran">
              <organization>Arm Limited</organization>
            </author>
            <author fullname="Hannes Tschofenig" initials="H." surname="Tschofenig">
              <organization>Arm Limited</organization>
            </author>
            <author fullname="David Brown" initials="D." surname="Brown">
              <organization>Linaro</organization>
            </author>
            <author fullname="Milosch Meriac" initials="M." surname="Meriac">
              <organization>Consultant</organization>
            </author>
            <date day="27" month="January" year="2021"/>
            <abstract>
              <t>Vulnerabilities in Internet of Things (IoT) devices have raised the need for a reliable and secure firmware update mechanism suitable for devices with resource constraints. Incorporating such an update mechanism is a fundamental requirement for fixing vulnerabilities, but it also enables other important capabilities such as updating configuration settings and adding new functionality.

 In addition to the definition of terminology and an architecture, this document provides the motivation for the standardization of a manifest format as a transport-agnostic means for describing and protecting firmware updates.
              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-suit-architecture-16"/>
        </reference>
        <reference anchor="I-D.ietf-emu-eap-noob">
          <front>
            <title>Nimble Out-of-Band Authentication for EAP (EAP-NOOB)</title>
            <author fullname="Tuomas Aura" initials="T." surname="Aura">
              <organization>Aalto University</organization>
            </author>
            <author fullname="Mohit Sethi" initials="M." surname="Sethi">
              <organization>Ericsson</organization>
            </author>
            <author fullname="Aleksi Peltonen" initials="A." surname="Peltonen">
              <organization>Aalto University</organization>
            </author>
            <date day="3" month="September" year="2021"/>
            <abstract>
              <t>The Extensible Authentication Protocol (EAP) provides support for multiple authentication methods.  This document defines the EAP-NOOB authentication method for nimble out-of-band (OOB) authentication and key derivation.  The EAP method is intended for bootstrapping all kinds of Internet-of-Things (IoT) devices that have no preconfigured authentication credentials.  The method makes use of a user-assisted, one-directional, out-of-band (OOB) message between the peer device and authentication server to authenticate the in-band key exchange.  The device must have a nonnetwork input or output interface, such as a display, microphone, speaker, or blinking light, that can send or receive dynamically generated messages of tens of bytes in length.
              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-emu-eap-noob-06"/>
        </reference>
        <reference anchor="I-D.ietf-rats-architecture">
          <front>
            <title>Remote ATtestation procedureS (RATS) Architecture</title>
            <author fullname="Henk Birkholz" initials="H." surname="Birkholz">
              <organization>Fraunhofer SIT</organization>
            </author>
            <author fullname="Dave Thaler" initials="D." surname="Thaler">
              <organization>Microsoft</organization>
            </author>
            <author fullname="Michael Richardson" initials="M." surname="Richardson">
              <organization>Sandelman Software Works</organization>
            </author>
            <author fullname="Ned Smith" initials="N." surname="Smith">
              <organization>Intel Corporation</organization>
            </author>
            <author fullname="Wei Pan" initials="W." surname="Pan">
              <organization>Huawei Technologies</organization>
            </author>
            <date day="28" month="September" year="2022"/>
            <abstract>
              <t>In network protocol exchanges, it is often useful for one end of a communication to know whether the other end is in an intended operating state.  This document provides an architectural overview of the entities involved that make such tests possible through the process of generating, conveying, and evaluating evidentiary Claims.  It provides a model that is neutral toward processor architectures, the content of Claims, and protocols.
              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-rats-architecture-22"/>
        </reference>
        <reference anchor="I-D.birkholz-suit-coswid-manifest">
          <front>
            <title>A SUIT Manifest Extension for Concise Software Identifiers</title>
            <author fullname="Henk Birkholz" initials="H." surname="Birkholz">
              <organization>Fraunhofer SIT</organization>
            </author>
            <date day="17" month="July" year="2018"/>
            <abstract>
              <t>   This document defines a resource extension for Concise Software
   Identifiers (CoSWID) that represents a SUIT firmware manifest.  This
   extension combines the information elements of the SUIT information
   model with the semantic expressiveness of Software Identifiers.  In
   consequence, this composite enables the integration of Firmware
   Updates for the Internet of Things (SUIT) in existing work-flows for
   updates of software components in general.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-birkholz-suit-coswid-manifest-00"/>
        </reference>
        <reference anchor="I-D.birkholz-rats-mud">
          <front>
            <title>MUD-Based RATS Resources Discovery</title>
            <author fullname="Henk Birkholz" initials="H." surname="Birkholz">
              <organization>Fraunhofer SIT</organization>
            </author>
            <author fullname="Michael Richardson" initials="M." surname="Richardson">
              <organization>Sandelman Software Works</organization>
            </author>
            <date day="22" month="February" year="2025"/>
            <abstract>
              <t>   Manufacturer Usage Description (MUD) files and the MUD URIs that
   point to them are defined in RFC 8520.  This document introduces a
   new type of MUD file to be delivered in conjunction with a MUD file
   signature and/or to be referenced via a MUD URI embedded in other
   documents or messages, such as an IEEE 802.1AR Secure Device
   Identifier (DevID) or a CBOR Web Token (CWT).  These signed documents
   can be presented to other entities, e.g., a network management system
   or network path orchestrator.  If this entity also takes on the role
   of a verifier as defined by the IETF Remote ATtestation procedureS
   (RATS) architecture, this verifier can use the references included in
   the MUD file specified in this document to discover, for example,
   appropriate reference value providers, endorsement documents or
   endorsement distribution APIs, trust anchor stores, remote verifier
   services (sometimes referred to as Attestation Verification
   Services), or transparency logs.  All theses references in the MUD
   file pointing to resources and auxiliary RATS services can satisfy
   general RATS prerequisite by enabling discovery or improve discovery
   resilience of corresponding resources or services.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-birkholz-rats-mud-01"/>
        </reference>
        <reference anchor="RFC8520">
          <front>
            <title>Manufacturer Usage Description Specification</title>
            <author fullname="E. Lear" initials="E." surname="Lear"/>
            <author fullname="R. Droms" initials="R." surname="Droms"/>
            <author fullname="D. Romascanu" initials="D." surname="Romascanu"/>
            <date month="March" year="2019"/>
            <abstract>
              <t>This memo specifies a component-based architecture for Manufacturer Usage Descriptions (MUDs). The goal of MUD is to provide a means for end devices to signal to the network what sort of access and network functionality they require to properly function. The initial focus is on access control. Later work can delve into other aspects.</t>
              <t>This memo specifies two YANG modules, IPv4 and IPv6 DHCP options, a Link Layer Discovery Protocol (LLDP) TLV, a URL, an X.509 certificate extension, and a means to sign and verify the descriptions.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8520"/>
          <seriesInfo name="DOI" value="10.17487/RFC8520"/>
        </reference>
        <reference anchor="I-D.ietf-sacm-coswid">
          <front>
            <title>Concise Software Identification Tags</title>
            <author fullname="Henk Birkholz" initials="H." surname="Birkholz">
              <organization>Fraunhofer SIT</organization>
            </author>
            <author fullname="Jessica Fitzgerald-McKay" initials="J." surname="Fitzgerald-McKay">
              <organization>National Security Agency</organization>
            </author>
            <author fullname="Charles Schmidt" initials="C." surname="Schmidt">
              <organization>The MITRE Corporation</organization>
            </author>
            <author fullname="David Waltermire" initials="D." surname="Waltermire">
              <organization>National Institute of Standards and Technology</organization>
            </author>
            <date day="24" month="February" year="2023"/>
            <abstract>
              <t>ISO/IEC 19770-2:2015 Software Identification (SWID) tags provide an extensible XML-based structure to identify and describe individual software components, patches, and installation bundles.  SWID tag representations can be too large for devices with network and storage constraints.  This document defines a concise representation of SWID tags: Concise SWID (CoSWID) tags.  CoSWID supports a set of semantics and features that are similar to those for SWID tags, as well as new semantics that allow CoSWIDs to describe additional types of information, all in a more memory-efficient format.
              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-sacm-coswid-24"/>
        </reference>
        <reference anchor="RFC7168">
          <front>
            <title>The Hyper Text Coffee Pot Control Protocol for Tea Efflux Appliances (HTCPCP-TEA)</title>
            <author fullname="I. Nazar" initials="I." surname="Nazar"/>
            <date month="April" year="2014"/>
            <abstract>
              <t>The Hyper Text Coffee Pot Control Protocol (HTCPCP) specification does not allow for the brewing of tea, in all its variety and complexity. This paper outlines an extension to HTCPCP to allow for pots to provide networked tea-brewing facilities.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7168"/>
          <seriesInfo name="DOI" value="10.17487/RFC7168"/>
        </reference>
        <reference anchor="I-D.bormann-lwig-7228bis">
          <front>
            <title>Terminology for Constrained-Node Networks</title>
            <author fullname="Carsten Bormann" initials="C." surname="Bormann">
              <organization>Universität Bremen TZI</organization>
            </author>
            <author fullname="Mehmet Ersue" initials="M." surname="Ersue">
         </author>
            <author fullname="Ari Keränen" initials="A." surname="Keränen">
              <organization>Ericsson</organization>
            </author>
            <author fullname="Carles Gomez" initials="C." surname="Gomez">
              <organization>Universitat Politecnica de Catalunya</organization>
            </author>
            <date day="5" month="April" year="2022"/>
            <abstract>
              <t>   The Internet Protocol Suite is increasingly used on small devices
   with severe constraints on power, memory, and processing resources,
   creating constrained-node networks.  This document provides a number
   of basic terms that have been useful in the standardization work for
   constrained-node networks.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-bormann-lwig-7228bis-08"/>
        </reference>
        <reference anchor="I-D.richardson-anima-masa-considerations">
          <front>
            <title>Operational Considerations for Voucher infrastructure for BRSKI MASA</title>
            <author fullname="Michael Richardson" initials="M." surname="Richardson">
              <organization>Sandelman Software Works</organization>
            </author>
            <author fullname="Wei Pan" initials="W." surname="Pan">
              <organization>Huawei Technologies</organization>
            </author>
            <date day="22" month="January" year="2025"/>
            <abstract>
              <t>   This document describes a number of operational modes that a BRSKI
   Manufacturer Authorized Signing Authority (MASA) may take on.

   Each mode is defined, and then each mode is given a relevance within
   an over applicability of what kind of organization the MASA is
   deployed into.  This document does not change any protocol
   mechanisms.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-richardson-anima-masa-considerations-09"/>
        </reference>
        <reference anchor="I-D.ietf-netconf-trust-anchors">
          <front>
            <title>A YANG Data Model for a Truststore</title>
            <author fullname="Kent Watsen" initials="K." surname="Watsen">
              <organization>Watsen Networks</organization>
            </author>
            <date day="16" month="March" year="2024"/>
            <abstract>
              <t>   This document presents a YANG module for configuring bags of
   certificates and bags of public keys that can be referenced by other
   data models for trust.  Notifications are sent when certificates are
   about to expire.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-netconf-trust-anchors-28"/>
        </reference>
        <reference anchor="I-D.anima-masa-considerations">
          <front>
            <title>*** BROKEN REFERENCE ***</title>
            <author>
              <organization/>
            </author>
            <date/>
          </front>
        </reference>
        <reference anchor="RFC4086">
          <front>
            <title>Randomness Requirements for Security</title>
            <author fullname="D. Eastlake 3rd" initials="D." surname="Eastlake 3rd"/>
            <author fullname="J. Schiller" initials="J." surname="Schiller"/>
            <author fullname="S. Crocker" initials="S." surname="Crocker"/>
            <date month="June" year="2005"/>
            <abstract>
              <t>Security systems are built on strong cryptographic algorithms that foil pattern analysis attempts. However, the security of these systems is dependent on generating secret quantities for passwords, cryptographic keys, and similar quantities. The use of pseudo-random processes to generate secret quantities can result in pseudo-security. A sophisticated attacker may find it easier to reproduce the environment that produced the secret quantities and to search the resulting small set of possibilities than to locate the quantities in the whole of the potential number space.</t>
              <t>Choosing random quantities to foil a resourceful and motivated adversary is surprisingly difficult. This document points out many pitfalls in using poor entropy sources or traditional pseudo-random number generation techniques for generating such quantities. It recommends the use of truly random hardware techniques and shows that the existing hardware on many systems can be used for this purpose. It provides suggestions to ameliorate the problem when a hardware solution is not available, and it gives examples of how large such quantities need to be for some applications. 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="106"/>
          <seriesInfo name="RFC" value="4086"/>
          <seriesInfo name="DOI" value="10.17487/RFC4086"/>
        </reference>
        <reference anchor="RFC9397">
          <front>
            <title>Trusted Execution Environment Provisioning (TEEP) Architecture</title>
            <author fullname="M. Pei" initials="M." surname="Pei"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <author fullname="D. Thaler" initials="D." surname="Thaler"/>
            <author fullname="D. Wheeler" initials="D." surname="Wheeler"/>
            <date month="July" year="2023"/>
            <abstract>
              <t>A Trusted Execution Environment (TEE) is an environment that enforces the following: any code within the environment cannot be tampered with, and any data used by such code cannot be read or tampered with by any code outside the environment. This architecture document discusses the motivation for designing and standardizing a protocol for managing the lifecycle of Trusted Applications running inside such a TEE.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9397"/>
          <seriesInfo name="DOI" value="10.17487/RFC9397"/>
        </reference>
      </references>
    </references>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA619a3PbZpbmd1TNf0A5tRVpmqAuTmJbtVMZWZbdmkSxRlIm
s/PFBZKgiBYIcABQMuPO/vY9z7m8F5CS07ub6k5EEniv5z2X51zeLMuSvuyr
4iQ9TW/zz03dLDdpM0+bVdHmfdnUeZV2xXTdlv0mnTZ1V870hy6dN226zOv1
PJ/267Zo07Lu+ryqill6X2y6NK9n6W277vr0tJ4umrZL8smkLR5O4rfwbDJr
pnW+pGHM2nzeZ2Xbz7P+uG/vsl5HlYUvZbm0mB3+kCTlqj1Je3R0fHj45vA4
ebw7SW+Pb68/pNdFV+TtdJF+aJv1Krl/PEkv6r5o66LP3qGnZJr3JzTweZPQ
2OvZp7xq6oKbK5JkVZ4kado305N0U3T0Z7dZtsW8k49Jvu5pECdJkmSY+0l6
OU6vy+kib2ddU9PjMqVLfFVU8U9NS4O8oR6LiiaW3jTz/jFvi/S3pr1HT8Uy
LytaqWn7l7Lo5//a2aPjaZ4kddMuaRceCozv+v3Z98evD/FnWRTF68Pj7Oj0
Gh9p7Hl7V9AMXyz6fnVycMCTxCDGeHRMoziYl/Ws62ed++2AWhhTCxmWc7zo
l9ULaUsI5cXF+fl5qs+kNyCOIn1XPJTTIr2YFXVfzsuilVdshVL+h+csr99o
X/LYLO+pYXRHu0l7EU/u9Zs335+kb69vfrqgLy6yd+PWrSQRQrnMs4dmPV0Q
WdASFXdMnif66Lwti0qfmrTdfZlNq2Y9s5+xtvorqLtv87IuZtbejqekjbzb
1NOsqNumquyhZdPdN49l/3tWTGddnq3uS53Ad2++e2MbdXh0ZNN6+cMP9uf3
r471z1eHLw/t29dvviMaOTu/0maOjw5P0rNLfHz54epq/P3R2Df3w+Hxd/jz
bTH7OP+FiKc7iXetzqZlO12XfdoXXf/0/vxW3perYlbmL7YpqCMSKurxoz3C
BIRPB775T2j+GxrGp2b+qcZA+BsjCdvrozfZ4RH9L6FvV0VFWzafruMhv6fT
3rSbdNU2D2VHT5T1Xdo8FO1DWTzGo0ttdI+Pj2NpbjxtlgfEV7qDGRMnGEh+
VyyJQjPX4sHR+PigrPu2ma2noBv6MCs+M9U/uUKn15fpFfcRT+n4kPhRdvwa
U5rz2GnAbZfvmhWmcn1zKpxy3jbLdFq0fHRmabfM2z6dgsJpv5sV8eJuWfYL
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
xC+Ql0D80PXv5ASoQ8bsaPUes9sfrkmN5d3y6G9H8Fp3etaw+jRwbU5QP6gu
yglJTrmJWVgrzsVCAlLCn2kP1r3SvHgfXOy1xoJJaK2OYGsxYYw7L7/tAhva
3vk/kC07ln/pNMCcfbDffKNQ9AyJdbQWbwEDhsJNXb9+jcJQ3qHZIWZn67zm
Gpk5ZHdPGAci+02VdNzMYUDMwD0KMBUTJFDAApsw2FhBPl0A1q8S0vjsHLcG
7WDdUJXZg+Ny4GLYlxAji1K2GCbY78r//cRC7zkfUGLKvAuh/SMBLFMPWanr
YGujoCjzwoZvxzLhiYV3KEUrSjj8XP6oiEtaYnXskH6FZiReoH1mJOEysooj
nDeEacJHbB86jRFyUHv4kAvE29OoVUC/WNZ9Nlrgqs7pSBK3L7LJWgRcy74G
hgQkEl4JaU/tKd1Os6G2Rh2AOgE/CVsFlC5aqQWaP9GUCF4mC8u/4SPl3rPA
myfPj5PeEdkGPR0MqdXMLvYwsjXZO8GOfRNEyqT7ssg7Py6H1dIcOczmGSQn
333MnKtCxIUdmgB9/zP40BmWz/kFVNVhQvWdGY5zx1a0x4Sca4BjCKOYSxVG
HIJq8XVTgJz0nW43Nk75kWtIAF/FxJgQ47wWWinJB0x/KyacXOJMCuHLTwZr
W4x0qJWzof1YTEAlPnEkbKM3RT91UamxAq7uunQiyY5qSOG02C9bblQD7T/T
IUEct56PoGelZlLNpmXH+AVHDM1OBna4V2BsyXUYFmSwV4zvxqP0svkdnvZR
+qFp7gDvgx7oPzc5KfLlCPWl2gbcf98BFFu0HreoDVh7roFR+uuEbIY1ERad
XHZ7cni/TlAaQSR/c++cCMNM0S9fLKFVY0aZHjg0Gg4yBMUIJWhRGeQmPytn
6TnhuWDIkId1J46CizC5sba32ZPGj9Ps8S5Gu16x30tKVfnvnJzxzqjA9wcr
xDs3B2kBln/hxwx8uoMNu66EciX8HjyobT5zrDbcSETPm/RluilykJtTkeri
UdTGum7WSDKXcFdix/ykMSuvV0A/FBCs9zANYgYA7YrNDaUqsdPPfJFXZ70S
8IDUJ27bItyGCqE/PeF2PMtSmZuz/uPJXCNbd+m4znEJkMgv7F+bR8x95H3A
hjlrjoT3qVg1N3FTrRzjV+KyyYhpE2IL3tvmGR9Hv2uRLo478jirJVaFlq8S
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

-->

</rfc>
