<?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.29 (Ruby 3.3.8) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-irtf-t2trg-taxonomy-manufacturer-anchors-18" category="info" submissionType="IRTF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.31.0 -->
  <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-18"/>
    <author initials="M." surname="Richardson" fullname="Michael Richardson">
      <organization>Sandelman Software Works</organization>
      <address>
        <email>mcr+ietf@sandelman.ca</email>
      </address>
    </author>
    <date year="2026" month="May" day="29"/>
    <workgroup>T2TRG Research Group</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <?line 209?>

<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>This document is a product of the IRTF Thing-to-Thing Research Group (T2TRG).</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/t2trg/draft-irtf-t2trg-taxonomy-manufacturer-anchors"/>.</t>
    </note>
  </front>
  <middle>
    <?line 222?>

<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 into a device during manufacturing.
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 anchors 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 3GPP Vendor Base Station Certificate <xref target="_3GPP.33.310"/> is another form that uses a similar design pattern.
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"/>.
Provisioning of a physical SIM card is generally considered a one-touch operation.
A virtual SIM (an eSIM) could be factory provisioned.</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.
The key pair that does this is loaded into large batches of phones for privacy reasons:
If a single key was used, then this would allow tracking.
The shared key pair can not be used to identify a specific device.</t>
      <t>The trust anchors are used for a variety of purposes.
For instance, trust anchors are used to verify:</t>
      <ul spacing="normal">
        <li>
          <t>the signature on a software update (as per <xref target="RFC9019"/>),</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="RFC9140"/>.)
The device identity certificate is also used to sign Evidence by an Attesting Environment (see <xref target="RFC9334"/>).</t>
      <t>These security artifacts are used to anchor other chains of information such as: an
Entity Attestation Token (EAT) <xref target="RFC9711"/> 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.ietf-iotops-mud-rats"/>, 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="RFC9393"/> 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 and identities (IDs) found in typical devices.
The privacy and integrity of the trust anchors 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 processes such as <xref target="ISO27001"/>.</t>
      <t>This document is a product of the IRTF Thing-to-Thing Research Group (T2TRG) and represents the consensus of the research group.</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 document defines a number of hyphenated terms, and they are summarized here:</t>
        <dl>
          <dt>birth-certificates:</dt>
          <dd>
            <t>another term for IDevID</t>
          </dd>
          <dt>device-generated:</dt>
          <dd>
            <t>a private or symmetric key that is generated on the device</t>
          </dd>
          <dt>infrastructure-generated:</dt>
          <dd>
            <t>a private or symmetric key that is generated by some system, likely
located at the factory that built the device</t>
          </dd>
          <dt>IDevID-certificates:</dt>
          <dd>
            <t>an initial device identity certificate as per <xref target="ieee802-1AR"/></t>
          </dd>
          <dt>key-executives:</dt>
          <dd>
            <t>the people who are entrusted with pieces (shares) of a split secret <xref target="splittingnumbers"/></t>
          </dd>
          <dt>pkilevel:</dt>
          <dd>
            <t>the number of Certification Authorities in a public key infrastructure, counting the root, or trust-anchor as the first level, and not counting the End-Entity certificates <xref target="pkilevel"/></t>
          </dd>
          <dt>manufacturer-installed-certificates:</dt>
          <dd>
            <t>or MIC, see idevid</t>
          </dd>
          <dt>mechanically-installed:</dt>
          <dd>
            <t>when a key or certificate is programmed directly into non-volatile storage by
an out-of-band mechanism such as JTAG <xref target="JTAG"/></t>
          </dd>
          <dt>network-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>
          <dt>TPM:</dt>
          <dd>
            <t>a Trusted Platform Module, such as the set of devices standardized by the Trusted Computing Group (TCG). See <xref target="TPM20spec"/>.</t>
          </dd>
        </dl>
        <t>In addition, <xref target="keygen"/> introduces three primary private key generation techniques named <em>arbitrarily</em> after three vegetables (avocado, broccoli, and carrot) and two secondary ones named after two more (squash and spinach).
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.ietf-iotops-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, and can include silicon manufacturer controlled processors in the boot process.
Note that access to the secure enclave is often not available to system integrators.
A very common IoT platform, the Raspberry PI, has a secure enclave with the GPU, but access to it is not available.</t>
      <t>Almost all larger systems (servers, laptops, desktops) include a Baseboard Management Controller (BMC), which ranges from an 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 trust anchors 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 and Architecture sections of <xref target="RFC9397"/>, notably Trusted Execution Environment (TEE), Rich Execution Environment (REE), and Trusted Application Manager (TAM).</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 (see <xref target="TPM20spec"/>.)
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 first-stage 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 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 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>The following subsections explain a number of different kinds of trust anchors that a manufacturer can include into a device.
Each kind of trust anchor has different kinds of trust associated with it based on what authorization is associated with the key.
That is, these different anchors do different things, and so the risk associated with the anchor depends upon what those things that can be done are.</t>
      <t>There are some characteristics associated with each trust anchor that depend upon the associated risk.</t>
      <ol spacing="normal" type="1"><li>
          <t>There is a risk around whether or not a trust anchor can be replaced or modified so that it's a different anchor, (with the associated private key) controlled by a different entity.  This is not a risk associated with loss of the original manufacturer's private key, but with integrity of the public key.</t>
        </li>
        <li>
          <t>There is a risk that multiple trust anchors could be added to the device.  This would not replace the manufacturer's anchor, but augment it with additional trust anchors not authorized by the manufacturer.</t>
        </li>
        <li>
          <t>There is a risk that a trust anchor could be removed from the device, or rendered unusable. For instance, it might be impractical to replace a trust anchor, but it might be possible via fault injection or high-energy radiation for an attacker to corrupt one or two bytes of a trust anchor, rendering the anchor useless.</t>
        </li>
        <li>
          <t>There is a risk associated with compromise of the associated private key that goes with the (public key) of the trust anchor.  While this is the most obvious concern expressed: that an attacker gets control of the key, the above three risks may be more practical for some attackers.</t>
        </li>
        <li>
          <t>There is a risk that the manufacturer will lose access to the private key, without the private key being compromised.  No attacker possesses the private key, but neither can the manufacturer use the key anymore.</t>
        </li>
      </ol>
      <t>Should any of the above things occur, the manufacturer will be in a position where they might have to deploy new trust anchors to every device.
For some trust anchors, they may be safely replaced with an over-the-air update.
For the trust anchor that authorizes over-the-air updates, the manufacturer might be in a position where every single device has to be recalled and serviced with specialized hardware capable of updating the firmware.
For some devices, the hardware will have to be entirely replaced, typically at great cost.</t>
      <t>This has already happened, see for example: <xref target="leakedmsikey"/> and <xref target="hyundaiexample"/>.</t>
      <section anchor="first-stage-bootloader-trust-anchor">
        <name>First-Stage Bootloader Trust Anchor</name>
        <t>This anchor is part of the first-stage bootloader, and it is used to validate a second-stage bootloader which may be stored in external flash.</t>
        <t>This is called the first-stage bootloader trust anchor.
In most cases this trust anchor is burnt into fuses in the CPU, often within the die along with the first-stage bootloader itself.
It can not be changed without replacement of the entire device.
Replacement, removal or modification of this trust anchor is improbable.</t>
        <t>The anchor could be rendered unusable if additional fuses can be blown.
Some fuse implementations allow for bits to be changed from 1 (unblown), to 0 (blown).
Access to blow the fuses is usually restricted.
On some devices, it requires voltages not normally present, making this impossible to do by software.
However, it might be possible for an attacker to blow fuses using an external high voltage probe or via injection of gamma ray.
The likely result however is that the device would no longer boot.</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 First Bootloader Trust Anchor.</t>
        <t>Second, it may be stored in the second-stage bootloader, and therefore its integrity is protected by the First Bootloader 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 started in a secured boot path.
The second-stage bootloader does not validate the application/operating system before starting it, but it may still provide measured boot mechanism (see <xref target="measuredboot"/>, section 2.3.)</t>
      </section>
      <section anchor="trusted-application-manager-anchor">
        <name>Trusted Application Manager Anchor</name>
        <t>This anchor is the key used by 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.</t>
        <t>The TAM software <em>itself</em> will typically be verified by the first-stage bootloader, so it needs to be signed by the First Bootloader Trust Anchor.
The TAM could also be a component of the first or second stage bootloader.</t>
        <t>This privilege may include updating anchors that are present within the TAM, or elsewhere in the Trusted Execution Environment.</t>
      </section>
      <section anchor="public-webpki-anchors">
        <name>Public WebPKI Anchors</name>
        <t>These anchors are used to authenticate HTTPS certificates from websites.
These anchors are typically distributed as part of desktop browsers, and via desktop operating systems.
On IoT devices with specific purposes <xref target="RFC8520"/>, a limited number of connections is expected, so a limited number of trust anchors is usually distributed.</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, 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 integrity protection of 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 a period of many years.
Upon being reconnected, the device would be unable to do DNSSEC validation because the trust anchor within the device would be too old.</t>
        <t>This could be fixed with a software/firmware update.
However, it could also be that in such a situation, that the device would be unable to validate the DNSSEC names required in order to obtain the operating system update.</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 the very short lifetime for public certificates <xref target="CABForum90day"/> 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.</t>
        <t>A level-1 PKI is very simple to create and operate, and there are innumerable situations where there is just a call to the "curl" utility <xref target="curl"/>, with a "--pinnedpubkey" option to specify the anchor.</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"/> specify mechanisms for onboarding of new devices.
The voucher artifact is transferred to the device by various 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 its authorized signing designate).
<xref target="I-D.ietf-anima-masa-considerations"/> provides some advice on choices in PKI design for a MASA.
The taxonomy presented in this document applies 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="RFC9641"/> 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.</t>
        <t>This typically includes connections to network management systems that may also load or modify other trust anchors in the system.
<xref target="I-D.ietf-anima-masa-considerations"/> provides some advice in the BRSKI <xref target="RFC8995"/> case for appropriate PKI complexity for such local PKIs.</t>
        <t>Note that this trust anchor is that of the network operator, and it is not related to the trust anchor described in the previous section that is used to validate an ownership transfer.</t>
      </section>
    </section>
    <section anchor="types-of-device-identities">
      <name>Types of Device Identities</name>
      <t>Device 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="keygen">
        <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 operator. A number of derived protocols such as <xref target="RFC9733"/>, <xref target="I-D.ietf-anima-constrained-voucher"/>, <xref target="I-D.ietf-anima-brski-cloud"/> extend this in a number of ways.</t>
          </li>
          <li>
            <t><xref target="RFC9334"/> depends upon a key provisioned into the Attesting Environment to sign Evidence. The IDevID may be used for this.</t>
          </li>
          <li>
            <t><xref target="RFC9019"/> depends 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 HPKE <xref target="RFC9180"/> allows for use of other key types.
There may be other legal considerations why the IDevID might not be used, and
a second key provisioned.</t>
          </li>
        </ul>
        <t>The 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 are additional variations where the IDevID is provided as part of a Trusted Platform Module (TPM) or Secure Element (SE).
The 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>
        <t>The names of the five methods below are intended to be mnemonic.</t>
        <ul spacing="normal">
          <li>
            <t>Avocados have big seeds inside of them.</t>
          </li>
          <li>
            <t>Broccoli has a seed on the top (which is eaten).</t>
          </li>
          <li>
            <t>Carrots have a complicated seed process involving multiple years and many leaves.</t>
          </li>
          <li>
            <t>The two methods involving Secure Elements are named with the letter S.</t>
          </li>
        </ul>
        <section anchor="avocado">
          <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 a pseudo-random number generator needs to be well seeded as explained in <xref target="RFC4086"/>.
<xref target="factoringrsa"/> is an example of a random number generation failure that was visible through survey of public keys, and led to a successful attack on the private keys.</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.
There are two ways this can be done.  In the <em>device-generated</em> / <em>mechanically-installed</em> method, the public key or certificate signing request (CSR) is retrieved by doing JTAG operations directly with an EEPROM or RAM.
The CPU is not involved, and the memory accessed is likely not encrypted.
(The private key might be in the same place, or it could be safely elsewhere).</t>
          <t>A different JTAG mechanism would involve reading/writing to some other area of the CPU, such as an on-CPU static RAM or debug area.  In this case, the CPU is involved.
When done via a physical connection like this, then this is referred to as a <em>device-generated</em> / <em>mechanically-transferred</em> method.
The key difference is that CPUs usually have much better defenses against JTAG use after manufacturing, often via one time fuses that can blown.</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 involve blowing a one-time 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 manufacturer's 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 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="broccoli">
          <name>Broccoli 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 Certificate 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 ensured.
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>broccoli infrastructure-generated</em> / <em>mechanically-transferred</em> method.</t>
          <t>There is also the possibility of having a <em>broccoli 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.
A private wired network can often be made as secure as a bed-of-nails interface.</t>
        </section>
        <section anchor="carrot">
          <name>Carrot method: Key setup based on secret seed</name>
          <t>In this method, a random symmetric seed is generated by a component manufacturer.
This is typically the manufacturer of the CPU, often a system on a chip (SOC).
In this section there are two suppliers involved: the first is the familiar one that is responsible for the entire device (the device supplier), and the second one is the vendor of silicon chip.
This silicon chip is where a symmetric seed key has been provisioned.</t>
          <t>In this process, the silicon chip supplier provisions a unique secret into each device shipped.
This is typically at least 256 bits in size, but often is larger.
Note that the silicon chip supplier has to create an inventory specific for each client.</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 is provisioned at its fabrication time.</t>
          <t>This seed value is revealed to the board/system 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 manufacturer, in a separate system, will initialize the same PRNG and, thus generate the same key pair.
The manufacturer then derives the public key part, and signs it with their certification authority (CA), which inserts this public key into a certificate.
The private part is then destroyed by the manufacturer, ideally never stored or seen by anyone.
This same mechanism is used by the TCG for manufacturer provisioning of EK certificates in TPMs, as explained by Section 2.1.1 of <xref target="TPMEK"/>.</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 the tradeoffs of the previous two methods: the device must correctly derive its own private key, and the manufacturer has access to the private key, making it also vulnerable.
But, the device does not depend upon any internal source of random numbers to derive its key.</t>
          <t>The manufacturer does all the private key manipulation in a secure place, probably offline, and need never involve the actual physical factory.
The manufacturer can even do this in a different country.</t>
          <t>The security of the process rests upon the difficulty in extracting the seed provided by the silicon chip supplier.
While the silicon chip supplier must operate their factory in a much more secure fashion, which has a much higher cost, the exposure for this facility can be much better controlled.
The device manufacturing factory, which has many more components as input, including device testing, can operate at a much lower risk level as a result.</t>
          <t>Additionally, there are some other advantages to the device manufacturer: The private keys and certificates may be calculated by the manufacturer 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, however, additional downsides of this method for manufacturer: the cost of the silicon is often higher, and may involve additional discrete parts.
The higher cost is the result of outsourcing the security risk to the silicon manufacturer supplier.</t>
          <t>The weakest link in this process is that the resulting seeds must be communicated to the device manufacturer securely, usually in batches.
This will often be done by physical courier, but other arrangements are possible.
The device manufacturer must store and care for these seeds very carefully, but as soon as a certificate has been generated, the seeds can be destroyed.</t>
        </section>
        <section anchor="squash">
          <name>Squash method: on-device generation with Secure Element</name>
          <t>In this method, a key-pair is generated by the device using a secure element.
(It may be a discrete TPM, but when TPM is used to generate keys, that method is considered to fall into the <tt>avocado</tt> category)</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="spinach">
          <name>Spinach method: Secure Element factory generation</name>
          <t>In this method, a key-pair is generated by a Secure Element silicon chip supplier in their factory.
This method is essentially identical to the carrot 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 chip supplier to operate a CA themselves.
There are a few options:</t>
          <ol spacing="normal" type="1"><li>
              <t>they may put IDevIDs into the device which are generic to the silicon chip supplier</t>
            </li>
            <li>
              <t>they may operate a CA on behalf of the device manufacturer,</t>
            </li>
            <li>
              <t>they may even connect over a network to the device manufacturer's CA.</t>
            </li>
          </ol>
          <t>The device manufacturer receives the secure element devices in batches in a similar way that they receive other parts.
The secure elements are placed by the device manufacturer's plant into the devices.</t>
          <t>Upon first boot the device manufacturer firmware can read the IDevID certificate that has 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.
However, the private key can not be extracted!</t>
          <t>Despite the increased 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 manufacturer devices.
To deal with this, there is often a simple activation password that the device manufacturer firmware must provide to the secure element in order to activate it.
Note that this password is probably stored in the clear in the device manufacturer's firmware: it can't be encrypted, because the secure source of decryption keys would be in the secure element, creating a cyclic dependency.</t>
          <t>Note that the Secure Element silicon vendor has to create an inventory specific for each client.</t>
        </section>
      </section>
    </section>
    <section anchor="public-key-infrastructures-pki">
      <name>Public Key Infrastructures (PKI)</name>
      <t>This section covers the attributes of the Public Key Infrastructure that a manufacturer must operate in order to provision IDevID certificates to devices.</t>
      <t><xref target="RFC5280"/> describes the format for PKIX certificates.
Numerous mechanisms of 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 the private key,</t>
        </li>
        <li>
          <t>loss of access to the private key,</t>
        </li>
        <li>
          <t>inappropriate/unauthorized signing of a certificate or artifact by an unauthorized actor.</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 key pairs.
This can permit the attacker to impersonate any specific device.</t>
      <t>In case 3, a failure occurs if the CA is convinced to sign (or issue) a certificate which it is not authorized to sign.
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 as no private keys were disclosed.
In ecosystems where CRLs or OCSP is used, then the unauthorized certificate can be revoked.</t>
      <t>This is distinguished from when access to the private key is lost, but the key has not been disclosed.
Any signatures that have already been made continue to be trustworthy, however, no new signature can be made.
This renders the CA useless.
If this concerns the firmware signing key, it likely results in a recall of all products that need to use this trust anchor.
(Note: that there are some situations where a trust anchor will be created, it will then be used to sign a number of subordinate CAs, enough for the anticipated lifespan of the anchor, and then the private key intentionally destroyed.)</t>
      <t>If the PKI uses Certificate Revocation Lists (CRL), 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><xref section="6.1" sectionFormat="of" 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.
This is counted as the first level of the authority.</t>
        <t>In the degenerate case of a self-signed certificate, this constitutes a one level PKI.</t>
        <artset>
          <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="112" width="128" viewBox="0 0 128 112" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px">
              <path d="M 8,32 L 8,96" fill="none" stroke="black"/>
              <path d="M 96,32 L 96,96" fill="none" stroke="black"/>
              <path d="M 120,48 L 120,80" fill="none" stroke="black"/>
              <path d="M 8,32 L 96,32" fill="none" stroke="black"/>
              <path d="M 104,80 L 120,80" fill="none" stroke="black"/>
              <path d="M 8,96 L 96,96" fill="none" stroke="black"/>
              <g class="text">
                <text x="108" y="52">&lt;-</text>
                <text x="40" y="68">Issuer=</text>
                <text x="80" y="68">X</text>
                <text x="48" y="84">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 signs 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="272" width="232" viewBox="0 0 232 272" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px">
              <path d="M 8,32 L 8,96" fill="none" stroke="black"/>
              <path d="M 8,176 L 8,224" fill="none" stroke="black"/>
              <path d="M 32,96 L 32,168" fill="none" stroke="black"/>
              <path d="M 80,96 L 80,128" fill="none" stroke="black"/>
              <path d="M 96,32 L 96,96" fill="none" stroke="black"/>
              <path d="M 96,176 L 96,224" fill="none" stroke="black"/>
              <path d="M 120,48 L 120,80" fill="none" stroke="black"/>
              <path d="M 136,176 L 136,224" fill="none" stroke="black"/>
              <path d="M 144,128 L 144,168" fill="none" stroke="black"/>
              <path d="M 224,176 L 224,224" fill="none" stroke="black"/>
              <path d="M 8,32 L 96,32" fill="none" stroke="black"/>
              <path d="M 96,80 L 120,80" fill="none" stroke="black"/>
              <path d="M 8,96 L 96,96" fill="none" stroke="black"/>
              <path d="M 80,128 L 144,128" fill="none" stroke="black"/>
              <path d="M 8,176 L 40,176" fill="none" stroke="black"/>
              <path d="M 64,176 L 96,176" fill="none" stroke="black"/>
              <path d="M 136,176 L 168,176" fill="none" stroke="black"/>
              <path d="M 192,176 L 224,176" fill="none" stroke="black"/>
              <path d="M 8,224 L 96,224" fill="none" stroke="black"/>
              <path d="M 136,224 L 224,224" fill="none" stroke="black"/>
              <polygon class="arrowhead" points="152,168 140,162.4 140,173.6" fill="black" transform="rotate(90,144,168)"/>
              <polygon class="arrowhead" points="40,168 28,162.4 28,173.6" fill="black" transform="rotate(90,32,168)"/>
              <g class="text">
                <text x="108" y="52">&lt;-</text>
                <text x="40" y="68">Issuer=</text>
                <text x="80" y="68">X</text>
                <text x="164" y="68">root</text>
                <text x="48" y="84">Subject=X</text>
                <text x="164" y="84">CA</text>
                <text x="52" y="180">EE</text>
                <text x="180" y="180">EE</text>
                <text x="40" y="196">Issuer=</text>
                <text x="80" y="196">X</text>
                <text x="168" y="196">Issuer=</text>
                <text x="208" y="196">X</text>
                <text x="52" y="212">Subject=Y1</text>
                <text x="180" y="212">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="448" width="480" viewBox="0 0 480 448" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px">
              <path d="M 8,304 L 8,352" fill="none" stroke="black"/>
              <path d="M 32,176 L 32,224" fill="none" stroke="black"/>
              <path d="M 32,256 L 32,296" fill="none" stroke="black"/>
              <path d="M 56,128 L 56,168" fill="none" stroke="black"/>
              <path d="M 56,224 L 56,256" fill="none" stroke="black"/>
              <path d="M 88,224 L 88,256" fill="none" stroke="black"/>
              <path d="M 96,304 L 96,352" fill="none" stroke="black"/>
              <path d="M 120,176 L 120,224" fill="none" stroke="black"/>
              <path d="M 128,32 L 128,96" fill="none" stroke="black"/>
              <path d="M 136,304 L 136,352" fill="none" stroke="black"/>
              <path d="M 152,96 L 152,128" fill="none" stroke="black"/>
              <path d="M 152,256 L 152,296" fill="none" stroke="black"/>
              <path d="M 200,96 L 200,128" fill="none" stroke="black"/>
              <path d="M 216,32 L 216,96" fill="none" stroke="black"/>
              <path d="M 224,304 L 224,352" fill="none" stroke="black"/>
              <path d="M 240,48 L 240,80" fill="none" stroke="black"/>
              <path d="M 256,304 L 256,352" fill="none" stroke="black"/>
              <path d="M 272,256 L 272,296" fill="none" stroke="black"/>
              <path d="M 280,176 L 280,224" fill="none" stroke="black"/>
              <path d="M 304,128 L 304,168" fill="none" stroke="black"/>
              <path d="M 304,224 L 304,256" fill="none" stroke="black"/>
              <path d="M 344,224 L 344,256" fill="none" stroke="black"/>
              <path d="M 344,304 L 344,352" fill="none" stroke="black"/>
              <path d="M 368,176 L 368,224" fill="none" stroke="black"/>
              <path d="M 384,304 L 384,352" fill="none" stroke="black"/>
              <path d="M 400,256 L 400,296" fill="none" stroke="black"/>
              <path d="M 472,304 L 472,352" fill="none" stroke="black"/>
              <path d="M 128,32 L 216,32" fill="none" stroke="black"/>
              <path d="M 216,80 L 240,80" fill="none" stroke="black"/>
              <path d="M 128,96 L 216,96" fill="none" stroke="black"/>
              <path d="M 56,128 L 152,128" fill="none" stroke="black"/>
              <path d="M 200,128 L 304,128" fill="none" stroke="black"/>
              <path d="M 32,176 L 120,176" fill="none" stroke="black"/>
              <path d="M 280,176 L 368,176" fill="none" stroke="black"/>
              <path d="M 32,224 L 120,224" fill="none" stroke="black"/>
              <path d="M 280,224 L 368,224" fill="none" stroke="black"/>
              <path d="M 32,256 L 56,256" fill="none" stroke="black"/>
              <path d="M 88,256 L 152,256" fill="none" stroke="black"/>
              <path d="M 272,256 L 304,256" fill="none" stroke="black"/>
              <path d="M 344,256 L 400,256" fill="none" stroke="black"/>
              <path d="M 8,304 L 40,304" fill="none" stroke="black"/>
              <path d="M 64,304 L 96,304" fill="none" stroke="black"/>
              <path d="M 136,304 L 168,304" fill="none" stroke="black"/>
              <path d="M 192,304 L 224,304" fill="none" stroke="black"/>
              <path d="M 256,304 L 288,304" fill="none" stroke="black"/>
              <path d="M 312,304 L 344,304" fill="none" stroke="black"/>
              <path d="M 384,304 L 416,304" fill="none" stroke="black"/>
              <path d="M 440,304 L 472,304" fill="none" stroke="black"/>
              <path d="M 8,352 L 96,352" fill="none" stroke="black"/>
              <path d="M 136,352 L 224,352" fill="none" stroke="black"/>
              <path d="M 256,352 L 344,352" fill="none" stroke="black"/>
              <path d="M 384,352 L 472,352" fill="none" stroke="black"/>
              <polygon class="arrowhead" points="408,296 396,290.4 396,301.6" fill="black" transform="rotate(90,400,296)"/>
              <polygon class="arrowhead" points="312,168 300,162.4 300,173.6" fill="black" transform="rotate(90,304,168)"/>
              <polygon class="arrowhead" points="280,296 268,290.4 268,301.6" fill="black" transform="rotate(90,272,296)"/>
              <polygon class="arrowhead" points="160,296 148,290.4 148,301.6" fill="black" transform="rotate(90,152,296)"/>
              <polygon class="arrowhead" points="64,168 52,162.4 52,173.6" fill="black" transform="rotate(90,56,168)"/>
              <polygon class="arrowhead" points="40,296 28,290.4 28,301.6" fill="black" transform="rotate(90,32,296)"/>
              <g class="text">
                <text x="228" y="52">&lt;-</text>
                <text x="44" y="68">root</text>
                <text x="160" y="68">Issuer=</text>
                <text x="200" y="68">X</text>
                <text x="44" y="84">CA</text>
                <text x="168" y="84">Subject=X</text>
                <text x="64" y="196">Issuer=</text>
                <text x="104" y="196">X</text>
                <text x="200" y="196">subordinate</text>
                <text x="312" y="196">Issuer=</text>
                <text x="352" y="196">X</text>
                <text x="76" y="212">Subject=Y1</text>
                <text x="196" y="212">CA</text>
                <text x="324" y="212">Subject=Y2</text>
                <text x="52" y="308">EE</text>
                <text x="180" y="308">EE</text>
                <text x="300" y="308">EE</text>
                <text x="428" y="308">EE</text>
                <text x="40" y="324">Issuer=</text>
                <text x="84" y="324">Y1</text>
                <text x="168" y="324">Issuer=</text>
                <text x="212" y="324">Y1</text>
                <text x="288" y="324">Issuer=</text>
                <text x="332" y="324">Y2</text>
                <text x="416" y="324">Issuer=</text>
                <text x="460" y="324">Y2</text>
                <text x="52" y="340">Subject=Z1</text>
                <text x="180" y="340">Subject=Z1</text>
                <text x="300" y="340">Subject=Z3</text>
                <text x="428" y="340">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 pkilevel is defined to be 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 (HSM) 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="protectCA">
        <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 an 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 availability.
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 workarounds in order that they can get their job done faster.
To address the conflicting needs, some levels of the PKI be offline, and some levels of the PKI be online.</t>
      </section>
      <section anchor="preservation-of-operationally-critical-private-keys">
        <name>Preservation of operationally critical private keys</name>
        <t>A public key (or certificate) is installed into target device(s) as a trust anchor.
It is 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 is therefore important that the trust anchor is usable for the entire lifetime of every single one of the devices.</t>
        <t>The protections discussed in the previous section aim to thwart attacks.
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 it was undetected, would be catastrophic.
It 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 similar result.
If the legitimate owner of the trust anchor infrastructure loses access to the private keys, then an equally catastrophic situation occurs.</t>
        <t>Code signing is usually done with a keypair that is attached to an End-Entity (EE) Certificate, from a trust anchor that has been assigned code signing authorization.
The private key of this EE also needs to be treated with significant care.
However, as long as the code signing CA's trust anchor and private key are preserved, it is usually preferable to lose access to the code signing EE certificate private key rather than risk disclosure.
A new code signing EE certificate can be created if needed.
This loss is not hassle-free; access to the code signing key can be critical path to getting fixes deployed.</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 CA key staff lose access to authentication secrets, such as a password, or if the human with the password(s) dies, or becomes incapacitated.</t>
        <t>Backups of critical material are routinely done.
Storage of backups offsite addresses the risk of physical damage, and in many cases the organization maintains an entire set of equipment at another location.</t>
        <t>The question then becomes how the backups are 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 that 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 many components (n of them), 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 sharing, 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 organization 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-Executives 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 use of secret sharing, as opposed to providing each Key-Executive a complete backup copy (k=1), is that it means that no individual Key-Executive can perform operations on their own.
Instead, a minimum of k Key-Executives is needed to do any operation.
This protects the organization against corruption and coercion of any one Key-Executive.
As the Key-Executives can not operate on their own, there is also a lower risk to them.</t>
          <t>The minimum number of people (k) needed 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.
The publication of this number is an assurance to the organizations' customers that there is a business continuity plan.</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 incapacitate Key-Executives but it could also damage smartcards or USB key that the shares are stored on.
<xref target="shamir79"/> suggests that <tt>n=2k-1</tt>, which implies that a simple majority of Key-Executives are needed to reconstruct the secret.</t>
          <t>However, there are other values of k with some different tradeoffs: requiring a majority of Key-Executives might be difficult when travel is impossible.
For instance, a value of k set to be less than a simple majority.
This enables the situation where 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>Secret sharing may also be a good way to manage a code signing or firmware update signing key, even when that is an End-Entity Certificate.
Split it among development groups in three time zones (eight hours apart), such that any of those development groups have enough shares, and can therefore 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 path 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 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 be 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 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-confidentiality-of-on-device-data">
        <name>Integrity and Confidentiality 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, it will often need integrity protection. To verify that, another key is needed.  It could be a keyed hash.   Where is the key for this hash located?</t>
          </dd>
          <dt>initial-enclave-confidentiality-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-identity-infrastructure">
        <name>Integrity and Privacy of device identity 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 equal to 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 trans-continental travel by any of the secret shareholders.</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) 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 anchor stored? How many people are needed to recover it?</t>
          </dd>
        </dl>
      </section>
    </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 Bormann and Sini Ruohomaa provided many editorial suggestions.</t>
    </section>
    <section anchor="changelog">
      <name>Changelog</name>
    </section>
  </middle>
  <back>
    <displayreference target="_3GPP.33.310" to="3GPP.33.310"/>
    <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="https://standards.ieee.org/ieee/802.1AR/6995/">
          <front>
            <title>IEEE 802.1AR Secure Device Identifier</title>
            <author>
              <organization>IEEE Standard</organization>
            </author>
            <date year="2018"/>
          </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="RFC9019">
          <front>
            <title>A Firmware Update Architecture for Internet of Things</title>
            <author fullname="B. Moran" initials="B." surname="Moran"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <author fullname="D. Brown" initials="D." surname="Brown"/>
            <author fullname="M. Meriac" initials="M." surname="Meriac"/>
            <date month="April" 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.</t>
              <t>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="RFC" value="9019"/>
          <seriesInfo name="DOI" value="10.17487/RFC9019"/>
        </reference>
        <reference anchor="RFC9140">
          <front>
            <title>Nimble Out-of-Band Authentication for EAP (EAP-NOOB)</title>
            <author fullname="T. Aura" initials="T." surname="Aura"/>
            <author fullname="M. Sethi" initials="M." surname="Sethi"/>
            <author fullname="A. Peltonen" initials="A." surname="Peltonen"/>
            <date month="December" 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="RFC" value="9140"/>
          <seriesInfo name="DOI" value="10.17487/RFC9140"/>
        </reference>
        <reference anchor="RFC9334">
          <front>
            <title>Remote ATtestation procedureS (RATS) Architecture</title>
            <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
            <author fullname="D. Thaler" initials="D." surname="Thaler"/>
            <author fullname="M. Richardson" initials="M." surname="Richardson"/>
            <author fullname="N. Smith" initials="N." surname="Smith"/>
            <author fullname="W. Pan" initials="W." surname="Pan"/>
            <date month="January" year="2023"/>
            <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="RFC" value="9334"/>
          <seriesInfo name="DOI" value="10.17487/RFC9334"/>
        </reference>
        <reference anchor="RFC9393">
          <front>
            <title>Concise Software Identification Tags</title>
            <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
            <author fullname="J. Fitzgerald-McKay" initials="J." surname="Fitzgerald-McKay"/>
            <author fullname="C. Schmidt" initials="C." surname="Schmidt"/>
            <author fullname="D. Waltermire" initials="D." surname="Waltermire"/>
            <date month="June" 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="RFC" value="9393"/>
          <seriesInfo name="DOI" value="10.17487/RFC9393"/>
        </reference>
        <reference anchor="RFC9733">
          <front>
            <title>BRSKI with Alternative Enrollment (BRSKI-AE)</title>
            <author fullname="D. von Oheimb" initials="D." role="editor" surname="von Oheimb"/>
            <author fullname="S. Fries" initials="S." surname="Fries"/>
            <author fullname="H. Brockhaus" initials="H." surname="Brockhaus"/>
            <date month="March" year="2025"/>
            <abstract>
              <t>This document defines enhancements to the Bootstrapping Remote Secure Key Infrastructure (BRSKI) protocol, known as BRSKI with Alternative Enrollment (BRSKI-AE). BRSKI-AE extends BRSKI to support certificate enrollment mechanisms instead of the originally specified use of Enrollment over Secure Transport (EST). It supports certificate enrollment protocols such as the Certificate Management Protocol (CMP) that use authenticated self-contained signed objects for certification messages, allowing for flexibility in network device onboarding scenarios. The enhancements address use cases where the existing enrollment mechanism may not be feasible or optimal, providing a framework for integrating suitable alternative enrollment protocols. This document also updates the BRSKI reference architecture to accommodate these alternative methods, ensuring secure and scalable deployment across a range of network environments.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9733"/>
          <seriesInfo name="DOI" value="10.17487/RFC9733"/>
        </reference>
        <reference anchor="I-D.ietf-anima-brski-cloud">
          <front>
            <title>Bootstrapping Remote Secure Key Infrastructure (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>Ciena</organization>
            </author>
            <author fullname="Michael Richardson" initials="M." surname="Richardson">
              <organization>Sandelman Software Works</organization>
            </author>
            <date day="9" month="September" year="2025"/>
            <abstract>
              <t>   Bootstrapping Remote Secure Key Infrastructures (BRSKI) defines how
   to onboard a device securely into an operator-maintained
   infrastructure.  It assumes that there is local network
   infrastructure for the device to discover.  On networks without that,
   there is nothing present to help onboard the device.

   This document extends BRSKI and defines behavior for bootstrapping
   devices for deployments where no local infrastructure is available,
   such as in a home or remote office.  This document defines how the
   device can use a well-defined "call-home" mechanism to find the
   operator-maintained infrastructure.

   This document defines how to contact a well-known Cloud Registrar,
   and two ways in which the device may be redirected towards the
   operator-maintained infrastructure.  The Cloud Registrar enables
   discovery of the operator-maintained infrastructure, and may enable
   establishment of trust with operator-maintained infrastructure that
   does not support BRSKI mechanisms.

   This document updates RFC 8995 (BRSKI).

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-anima-brski-cloud-19"/>
        </reference>
        <reference anchor="I-D.ietf-iotops-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="15" month="May" year="2026"/>
            <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 research and standardization
   work for constrained-node networks.

   This document obsoletes RFC 7228.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-iotops-7228bis-08"/>
        </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="27" month="February" year="2026"/>
            <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-30"/>
        </reference>
        <reference anchor="I-D.ietf-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="Thomas Werner" initials="T." surname="Werner">
              <organization>Siemens AG</organization>
            </author>
            <author fullname="Peter Chunchi Liu" initials="P. C." surname="Liu">
              <organization>Huawei</organization>
            </author>
            <date day="26" month="March" year="2026"/>
            <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-ietf-anima-masa-considerations-02"/>
        </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="CABForum90day" target="   https://cabforum.org/working-groups/server/baseline-requirements/requirements/">
          <front>
            <title>CA/Browser Forum Latest Baseline Requirements, version 2.1.5</title>
            <author>
              <organization>CA/Browser Forum</organization>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="factoringrsa" target="https://eprint.iacr.org/2013/599">
          <front>
            <title>Factoring RSA keys from certified smart cards: Coppersmith in the wild</title>
            <author initials="D. J." surname="Bernstein" fullname="Daniel J. Bernstein">
              <organization/>
            </author>
            <author initials="Y.-A." surname="Chang" fullname="Yun-An Chang">
              <organization/>
            </author>
            <author initials="C.-M." surname="Cheng" fullname="Chen-Mou Cheng">
              <organization/>
            </author>
            <author initials="L.-P." surname="Chou" fullname="Li-Ping Chou">
              <organization/>
            </author>
            <author initials="N." surname="Heninger" fullname="Nadia Heninger">
              <organization/>
            </author>
            <author initials="T." surname="Lange" fullname="Tanja Lange">
              <organization/>
            </author>
            <author initials="N. van" surname="Someren" fullname="Nicko van Someren">
              <organization/>
            </author>
            <date year="2013" month="September" day="16"/>
          </front>
        </reference>
        <reference anchor="kskceremony" target="https://www.iana.org/dnssec/procedures">
          <front>
            <title>DNSSEC Practice Statement for the Root Zone ZSK Operator</title>
            <author>
              <organization>Verisign</organization>
            </author>
            <date year="2024" month="July" day="18"/>
          </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="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="BedOfNails" target="https://en.wikipedia.org/wiki/Bed_of_nails_tester">
          <front>
            <title>Bed of nails tester</title>
            <author>
              <organization>Wikipedia</organization>
            </author>
            <date year="2024" month="December" day="30"/>
          </front>
        </reference>
        <reference anchor="leakedmsikey" target="https://www.binarly.io/blog/leaked-msi-source-code-with-intel-oem-keys-how-does-this-affect-industry-wide-software-supply-chain">
          <front>
            <title>Leaked MSI Source Code with Intel OEM Keys: How Does This Affect Industry-wide Software Supply Chain?</title>
            <author>
              <organization>Binarly efiXplorer Team</organization>
            </author>
            <date year="2025" month="May" day="27"/>
          </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="TPMEK" target="https://trustedcomputinggroup.org/wp-content/uploads/TCG-EK-Credential-Profile-for-TPM-Family-2.0-Level-0-Version-2.6_pub.pdf">
          <front>
            <title>TCG Credential Profile EK 2.0</title>
            <author>
              <organization>Trusted Computing Group</organization>
            </author>
            <date year="2024" month="December" day="04"/>
          </front>
        </reference>
        <reference anchor="curl" target="https://curl.se/download.html">
          <front>
            <title>CURL</title>
            <author initials="D." surname="Stenberg" fullname="Daniel Stenberg">
              <organization/>
            </author>
            <date year="2025" month="May" day="28"/>
          </front>
        </reference>
        <reference anchor="measuredboot" target="https://trustedcomputinggroup.org/resource/pc-client-specific-platform-firmware-profile-specification/">
          <front>
            <title>TCG PC Client Specific Platform Firmware Profile Specification</title>
            <author>
              <organization>Trusted Computing Group</organization>
            </author>
            <date year="2023" month="December" day="04"/>
          </front>
        </reference>
        <reference anchor="TPM20spec" target="https://trustedcomputinggroup.org/resource/tpm-library-specification/">
          <front>
            <title>TPM 2.0 Library</title>
            <author>
              <organization>Trusted Computing Group</organization>
            </author>
            <date year="2025" month="March"/>
          </front>
        </reference>
        <reference anchor="ISO27001">
          <front>
            <title>ISO/IEC 27001:2022 Information security, cybersecurity and privacy protection -- Information security management systems -- Requirements</title>
            <author>
              <organization>International Organization for Standardization</organization>
            </author>
            <date year="2022"/>
          </front>
        </reference>
        <reference anchor="hyundaiexample" target="https://www.theregister.com/2022/08/17/software_developer_cracks_hyundai_encryption/">
          <front>
            <title>Software developer cracks Hyundai car security with Google search</title>
            <author>
              <organization>The Register</organization>
            </author>
            <date year="2022" month="August" day="17"/>
          </front>
        </reference>
        <reference anchor="_3GPP.33.310" target="http://www.3gpp.org/ftp/Specs/archive/33_series/33.310/33310-970.zip">
          <front>
            <title>Network Domain Security (NDS); Authentication Framework (AF)</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="JERICHOW, Anja">
              <organization>Nokia Germany</organization>
            </author>
            <date day="30" month="September" year="2011"/>
          </front>
        </reference>
        <reference anchor="RFC9711">
          <front>
            <title>The Entity Attestation Token (EAT)</title>
            <author fullname="L. Lundblade" initials="L." surname="Lundblade"/>
            <author fullname="G. Mandyam" initials="G." surname="Mandyam"/>
            <author fullname="J. O'Donoghue" initials="J." surname="O'Donoghue"/>
            <author fullname="C. Wallace" initials="C." surname="Wallace"/>
            <date month="April" year="2025"/>
            <abstract>
              <t>An Entity Attestation Token (EAT) provides an attested claims set that describes the state and characteristics of an entity, a device such as a smartphone, an Internet of Things (IoT) device, network equipment, or such. This claims set is used by a relying party, server, or service to determine the type and degree of trust placed in the entity.</t>
              <t>An EAT is either a CBOR Web Token (CWT) or a JSON Web Token (JWT) with attestation-oriented claims.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9711"/>
          <seriesInfo name="DOI" value="10.17487/RFC9711"/>
        </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.ietf-iotops-mud-rats">
          <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>
            <author fullname="Peter Chunchi Liu" initials="P. C." surname="Liu">
              <organization>Huawei Technologies</organization>
            </author>
            <date day="28" month="November" 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-ietf-iotops-mud-rats-02"/>
        </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="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="RFC9641">
          <front>
            <title>A YANG Data Model for a Truststore</title>
            <author fullname="K. Watsen" initials="K." surname="Watsen"/>
            <date month="October" 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="RFC" value="9641"/>
          <seriesInfo name="DOI" value="10.17487/RFC9641"/>
        </reference>
        <reference anchor="RFC9180">
          <front>
            <title>Hybrid Public Key Encryption</title>
            <author fullname="R. Barnes" initials="R." surname="Barnes"/>
            <author fullname="K. Bhargavan" initials="K." surname="Bhargavan"/>
            <author fullname="B. Lipp" initials="B." surname="Lipp"/>
            <author fullname="C. Wood" initials="C." surname="Wood"/>
            <date month="February" year="2022"/>
            <abstract>
              <t>This document describes a scheme for hybrid public key encryption (HPKE). This scheme provides a variant of public key encryption of arbitrary-sized plaintexts for a recipient public key. It also includes three authenticated variants, including one that authenticates possession of a pre-shared key and two optional ones that authenticate possession of a key encapsulation mechanism (KEM) private key. HPKE works for any combination of an asymmetric KEM, key derivation function (KDF), and authenticated encryption with additional data (AEAD) encryption function. Some authenticated variants may not be supported by all KEMs. We provide instantiations of the scheme using widely used and efficient primitives, such as Elliptic Curve Diffie-Hellman (ECDH) key agreement, HMAC-based key derivation function (HKDF), and SHA2.</t>
              <t>This document is a product of the Crypto Forum Research Group (CFRG) in the IRTF.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9180"/>
          <seriesInfo name="DOI" value="10.17487/RFC9180"/>
        </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:
H4sIAAAAAAAAA619aXfjVpLld/4KTPrMsVRFUEt6S83UqVHKsq2y5cxOye2e
/pINkiCJEgmwsEhmyZ7fPnFjeQsIyu6Z9pnpSknAw1vixR430jQdPV4kr0ej
tmjX+UVymdxnv1Rltdkl1SKptnmdtUVVZuukyWddXbS7ZFaVTTHXPzTJoqqT
TVZ2i2zWdnVeJ0XZtNl6nc+Th3zXJFk5T+7rrmmTy3K2qupmlE2ndU5fjd7C
s6N5NSuzDU1jXmeLNi3qdpG25229TFudVRq+lGYyYnr21Wj0tLxI7s/vP3yb
fMibPKtnq+Tbuuq2o4eni+SmbPO6zNv0aww8mmXtBc1zUY2ats6zDT3w4f6b
0SjrWhrvYpQmMo3bYrbK8nXyAf9bz5uqHCVJVdOX7mhZ+Zomk9xVi/Ypq/Pk
56p+aOjv+SYr1rS6Wf3nIm8X/6uxRyezbDQqq3pDO/eYX9CjH765+vz8q1P8
s8jz/KvT8/Ts8gN+TJI2q5c5TfPVqm23zcXJCe1qOccsJnh2QtM4wT9O6K0J
vXXyxZs3n5+8knflMF/dXF9fJ/r35A4HmCdf54/FLE9u5nnZFosir+UVW3rC
//Ea5fU7/aw8Ns9aGvj8FDuODYwX8xVN4SJ5++Hu+xv5xZvTszcXSdMVbYoT
KdqcT07/ePbZ6UVSVtVUf379+rOLhOiqGXr49ZvXF0R7zVMx1998+Zp+kzW7
cpbmZV2t1/T7m/TrCXadSKPYZOm0bh6KdLauujm9jP8Jnymqtto26Zfn519N
i+Yi0X/sDwOSb+usKPN5+lh1s1VeXyQDv9x/c5M18rq/MSD8vV/qm5uqeaie
ivafaT6b00Pbh0K39rM3n70xkjk9O7MNf/3FF/bPz788139+efr61H771Rva
07ur6/c6zPkZ7fnVLX78+Prb9+8nn59NdLwk+QuxAv87eeOL0/PPLkb076vL
t99Udbd5czrPdhcRnV1dnrytq6eG7jE/kvxAZEI3/m3W5GvaILqS/+iKOt8Q
zTXj5DGvG1p0QnQ5+fxVTO30byP4WTZdYDQm9Se6XUW5TJe4080JfYpGOZnq
B9I6+MBJ9MNh8u7P+hVWCd5S1fSlusniRX5jf0k+3F0Kb1vU1SaZ5TVfpHnS
bLK6TWa4o7TH1Za4Z7Mp2hWxmqRd5clTsZ73lmtrzbc0cjspslnNy6Ub9vrk
8zdvhmZv3OnV10RjxJ3+NkneEndr2rwoX/We+d9dmV6WydUqK5e9P12t8jK9
rTr+R/+PPxTpeyz1alV1vT/9mM2LLPkuL+nvTPLhH++z8u8ZHT/9qf9aMXuo
kkfmmJu8zsuYn7xOT9+kZ1/gCB6aB9rTfFOVPTL7+se7u+ur5H1NJwEeRqyp
5VNmIYQd/lBVbfLvFVHcv999n7xj8VXVB/b86emJNrzMeMPnZUMS7mRbV7N8
TlynOUw3/5rXRVMsy5gjnn+Wnn7JkihJapoGEUi8CrcMnuT3+S650r+Pk6t6
t22rZZ1tV7vk5+Kh0HPcm/MseHCyIM5cbSazanPyRO+cYOCPNPBHG1hHiRdh
1F9tNl1JAl0fcus4TU9pKZ/xSfg1nPcWcXd5l3x5Gi1jaM66zfNiWaTYM54s
/f/tmnZ+lp/QF/77+al95KQgUfnLS7P+GgPduc0fnHWzyjZF/eWbmHi+q56S
tsIfSQhmUGfqvJ0MnbLerst5kdzxUOFBn7358s0+OWGZ+XRCl31C1HPyxYS4
8cm79fyu7RaLk29IHTp9TWxpcSIDpjSZ++oOU7m8k4ls5wvhP8W8IsG3Kun/
HlAE8AiNyBvItItfpPZSk9JFSNualpRm06ojyduCGbOc6ekH39x8/S65pxd/
xIt0e+kK3ePNhN9MLv2bh68DD3Kp8+lrCXwn3mBhpG1kzbTaHFgUqASPTEgH
nCyrxxPTq+7rrGy29I9ytotn/+P9zaVXv4iet3TxiRnsvzE0bbzdu8GnmO3p
GWY7K5p//M5sSafBU3wCjc4inRbrdVotSO6Twllk60ZIerJqN/Hk79+9+yG9
f5fif5O7d9/c/3z54Tp5e/PDD8m7b5Lby/vrDzeXP9wl1/929d3lj99evyDG
bu7+5eTd9O+kLSW3xM6WwhJZ+T28QNqual59mx2kMiyRKKnOlwVJlpovLp3o
2QlR8vlXuMP0/sclDfBxlc0e8vojafXZQ/NxVkEyx6uVr6V4OpGnk2mdLRul
M2LfS5KfKklneCr/ZbuuirZHT2fp6ev0nHks2SbldDN7Yfb6BB9QPJ2v80UB
8UV8wNRb1lWmFf4VbOJVVbbQLKEiFPWGCY3emD0cPo4firL7hRSKjoblK0dS
qHx7e/V7B/K3+8tvY471t6oANUORupxhqHCIfQ2inEAIbHOSzqIxQSRg1P1v
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
9bQgQquL9e5Pjkgw0mO+JKWSSIdYaPZIMmBejZMpKRezal0Ia5plNamrogTA
m0rHUWG1u4T9R/IFHZP+zCrMUfOPLmtWorZvi5LISF3BAyPU+UINLo2Qiecy
s8hXvs5NZShKYjGPpjdvSuSJKrHSGZAOJTEvnBBiPOscbuGL5A7qSHIJwp+J
3bbDseZr852yfsRZNoFnyU6XZmYGALukszXdkIa9WhmbMuac0IoBdYWEGsgT
TF2JafxNktZNgxOZkGG+JOVUSSbzvmElu+kWxCmQVkCfEQ8ezSb/Bbo1+0w4
eTb/hZ5tcNwZ7ccy2XTrtoDMvHr/Eyk2W1KriJ2J9q7+VHpK7UcJrqjY511r
iw3InfSrNUnbqluuRA1oo6mJ/j/Pt+tqJ54D8Rem6pBLbqr7FMoFe4om6o1q
RKl1A8ko7FTVipTrkv7ymDdGfKUFddzljuIbM8vJm/sdbUxzRnqI/XoyQlqr
xrZmM7ZNK2+eQrHgD/u1sX7qWCvcVcKXxUZCKjm7xsko3RlHoTUnlvYxlhz0
rNmSYkGPvL8ZMzvO+h90NPvt+5/0NNz8Cq8p20yIli/XsDXgexWiqJ0z4EhK
IWj31tkWrp4xrKgH/OvYbWT2u+mNR29vr1y4ooY/Ucsb6DhuU2FkV3yAr5Pb
K5o1y62/RX85OwX98eWIXeB0VTQZk3hbEDDLEsmWfEBx1lp4h+04QgO8R5gY
7XpjP7ioFbZWbgM0zOiAObJDc/mUDCziGPVunNycvEtQxMWOEQ64F83DOCCa
DGG4wG+hITmdUJnn80YtSvUZVNVc1Tr2P7CgYR9L3wOiExcL6VK4H9/lKHp6
EtLunosFNrfs6WbTtcbSwlQX/dAMqisM5kE7fiz2K44pju4yvwq/wyaDOYpM
7MhmQivP9Bxxd0poDrz/xZT1dpXN+AqzcNaAcCQYh7RFaFrwsIJLQCyy9PSW
I0/2MnD5YjclxMXuZykH+xKuTLondEN2TvZeizFBFzPyJd9fXxNxo4zv0BMf
+AlXrEhDqfDgR+XO0C25v7xV73N/T8zuKjZbMu0zkV5GqpGqzLa1pCkwy50g
YKWxPjPKAvrHLhojnBc5q6bF3gv5L5yKRB+bIJbDl0Amxi4X+aMGc4pobprO
Yx4dd0e81l654xwL6+ITbzUS9ZBv2958dYdgCEYD6ZxtOnZbmU7iELSfB5Ie
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
F5NrQCbb+QAA

-->

</rfc>
