<?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-rfc2629 version 1.6.4 (Ruby 2.6.6) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-irtf-t2trg-taxonomy-manufacturer-anchors-00" category="info" tocInclude="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.14.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-00"/>
    <author initials="M." surname="Richardson" fullname="Michael Richardson">
      <organization>Sandelman Software Works</organization>
      <address>
        <email>mcr+ietf@sandelman.ca</email>
      </address>
    </author>
    <date year="2023" month="January" day="21"/>
    <workgroup>T2TRG Research Group</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <t>This document provides a taxonomy of methods used by manufacturers of silicon and devices
to secure private keys and public trust anchors.
This deals with two related activities: how trust anchors and private keys
are installed into devices during manufacturing, and how the related
manufacturer held private keys are secured against disclosure.</t>
      <t>This document does not evaluate the different mechanisms, but rather just
serves to name them in a consistent manner in order to aid in communication.</t>
      <t>RFCEDITOR: please remove this paragraph. This work is occurring in https://github.com/mcr/idevid-security-considerations</t>
    </abstract>
  </front>
  <middle>
    <section anchor="introduction">
      <name>Introduction</name>
      <t>An increasing number of protocols derive a significant part of their security by using trust anchors <xref target="RFC4949"/> that are installed by manufacturers.
Disclosure of the list of trust anchors does not usually cause a problem, but changing them in any way does.
This includes adding, replacing or deleting anchors.</t>
      <t>The document <xref target="RFC6024"/> deals with how trust anchor stores are managed in the device which uses them.
This document deals with how the PKI associated with such a trust anchor is managed.</t>
      <t>Many protocols also leverage manufacturer installed identities.
These identities are usually in the form of <xref target="ieee802-1AR"/> Initial Device Identity certificates (IDevID).
The identity has two components: a private key that must remain under the strict control of a trusted part of the device, and a public part (the certificate), which (ignoring, for the moment, personal privacy concerns) may be freely disclosed.</t>
      <t>There also situations where identities are tied up in the provision of symmetric shared secrets.
<!-- FIXME: -->
A common example is the SIM card (<xref target="_3GPP.51.011"/>), it now comes as a virtual SIM, but which is usually not provisioned at the factory.
The provision of an initial, per-device default password also falls into the category of symmetric shared secret.</t>
      <t>It is further not unusual for many devices (particularly smartphones) to also have one or more group identity keys.
This is used, for instance, in <xref target="fidotechnote"/> to make claims about being a particular model of phone (see <xref target="I-D.richardson-rats-usecases"/>).
The key pair that does this is loaded into large batches of phones for privacy reasons.</t>
      <t>The trust anchors are used for a variety of purposes.
Trust anchors are used to verify:</t>
      <ul spacing="normal">
        <li>the signature on a software update (as per <xref target="I-D.ietf-suit-architecture"/>),</li>
        <li>a TLS Server Certificate, such as when setting up an HTTPS connection,</li>
        <li>the <xref target="RFC8366"/> format voucher that provides proof of an ownership change.</li>
      </ul>
      <t>Device identity keys are used when performing enrollment requests (in <xref target="RFC8995"/>, and in some uses of <xref target="I-D.ietf-emu-eap-noob"/>.
The device identity certificate is also used to sign Evidence by an Attesting Environment (see <xref target="I-D.ietf-rats-architecture"/>).</t>
      <t>These security artifacts are used to anchor other chains of information: an EAT Claim as to the version of software/firmware running on a device (<xref target="I-D.birkholz-suit-coswid-manifest"/>), an EAT claim about legitimate network activity (via <xref target="I-D.birkholz-rats-mud"/>, or embedded in the IDevID in <xref target="RFC8520"/>).</t>
      <t>Known software versions lead directly to vendor/distributor signed Software Bill of Materials (SBOM), such as those described by <xref target="I-D.ietf-sacm-coswid"/> and the NTIA/SBOM work <xref target="ntiasbom"/> and CISQ/OMG SBOM work underway <xref target="cisqsbom"/>.</t>
      <t>In order to manage risks and assess vulnerabilities in a Supply Chain, it is necessary to determine a degree of trustworthiness in each device.
A device may mislead audit systems as to its provenance, about its software load or even about what kind of device it is (see <xref target="RFC7168"/> for a humorous example).</t>
      <t>In order to properly assess the security of a Supply Chain it is necessary to understand the kinds and severity of the threats which a device has been designed to resist.
To do this, it is necessary to understand the ways in which the different trust anchors and identities are initially provisioned, are protected, and are updated.</t>
      <t>To do this, this document details the different trust anchors (TrAnc) and identities (IDs) found in typical devices.
The privacy and integrity of the TrAncs and IDs is often provided by a different, superior artifact.
This relationship is examined.</t>
      <t>While many might desire to assign numerical values to different mitigation techniques in order to be able to rank them,  this document does not attempt to do that, as there are too many other (mostly human) factors that would come into play.
Such an effort is more properly in the purview of a formal ISO9001 process such as ISO14001.</t>
      <section anchor="terminology">
        <name>Terminology</name>
        <t>This document is not a standards track document, and it does not make use of formal requirements language.</t>
        <t>This section will be expanded to include needed terminology as required.</t>
        <t>The words Trust Anchor are contracted to TrAnc rather than TA, in order not to confuse with <xref target="I-D.ietf-teep-architecture"/>'s "Trusted Application".</t>
        <t>This document defines a number of hyphenated terms, and they are summarized here:</t>
        <dl>
          <dt>device-generated:</dt>
          <dd>
            <t>a private or symmetric key which is generated on the device</t>
          </dd>
          <dt>infrastructure-generated:</dt>
          <dd>
            <t>a private or symmetric key which is generated by some system, likely
located at the factory that built the device</t>
          </dd>
          <dt>mechanically-installed:</dt>
          <dd>
            <t>when a key or certificate is programmed into non-volatile storage by
an out-of-band mechanism such as JTAG <xref target="JTAG"/></t>
          </dd>
          <dt>mechanically-transferred:</dt>
          <dd>
            <t>when a key or certificate is transferred into a system via private interface, such as serial console, JTAG managed mailbox, or other physically private interface</t>
          </dd>
          <dt>network-transferred:</dt>
          <dd>
            <t>when a key or certificate is transferred into a system using a network interface which would be available after the device has shipped.  This applies even if the network is physically attached using a bed-of-nails <xref target="BedOfNails"/>.</t>
          </dd>
          <dt>device/infrastructure-co-generated:</dt>
          <dd>
            <t>when a private or symmetric key is derived from a secret previously synchronized between the silicon vendor and the factory using a common algorithm.</t>
          </dd>
        </dl>
      </section>
    </section>
    <section anchor="applicability-model">
      <name>Applicability Model</name>
      <t>There is a wide variety of devices to which this analysis can apply.
(See <xref target="I-D.bormann-lwig-7228bis"/>.)
This document will use a J-group processor as a sample.
This class is sufficiently large to experience complex issues among multiple CPUs, packages and operating systems, but at the same time, small enough that this class is often deployed in single-purpose IoT-like uses.
Devices in this class often have Secure Enclaves (such as the "Grapeboard"), and can include silicon manufacturer controlled processors in the boot process (the Raspberry PI boots under control of the GPU).</t>
      <t>Almost all larger systems (servers, laptops, desktops) include a Baseboard Management Controller (BMC), which ranges from a M-Group Class 3 MCU, to a J-Group Class 10 CPU (see, for instance <xref target="openbmc"/> which uses a Linux kernel and system inside the BMC).
As the BMC usually has complete access to the main CPU's memory, I/O hardware and disk, the boot path security of such a system needs to be understood first as being about the security of the BMC.</t>
      <section anchor="a-reference-manufacturingboot-process">
        <name>A reference manufacturing/boot process</name>
        <t>In order to provide for immutability and privacy of the critical TrAnc and IDs, many CPU manufacturers will provide for some kind of private memory area which is only accessible when the CPU is in certain privileged states.
See the Terminology section of <xref target="I-D.ietf-teep-architecture"/>, notably TEE, REE, and TAM, and also section 4, Architecture.</t>
        <t>The private memory that is important is usually non-volatile and rather small.
It may be located inside the CPU silicon die, or it may be located externally.
If the memory is external, then it is usually encrypted by a hardware mechanism on the CPU, with only the key kept inside the CPU.</t>
        <t>The entire mechanism may be external to the CPU in the form of a hardware-TPM module, or it may be entirely internal to the CPU in the form of a firmware-TPM.
It may use a custom interface to the rest of the system, or it may implement the TPM 1.2 or TPM 2.0 specifications.
Those details are important to performing a full evaluation, but do not matter much to this model (see initial-enclave-location below).</t>
        <t>During the manufacturing process, once the components have been soldered to the board, the system is usually put through a system-level test.
This is often done as a "bed-of-nails" test <xref target="BedOfNails"/>, where the board has key points attached mechanically to a test system.
A <xref target="JTAG"/> process tests the System Under Test, and then initializes some firmware into the still empty flash storage.</t>
        <t>It is now common for a factory test image to be loaded first: this image will include code to initialize the private memory key described above, and will include a first-stage bootloader and some kind of (primitive) Trusted Application Manager (TAM).
(The TAM is a piece of software that lives within the trusted execution environment.)</t>
        <t>Embedded in the stage one bootloader will be a Trust Anchor that is able to verify the second-stage bootloader image.</t>
        <t>After the system has undergone testing, the factory test image is erased, leaving the first-stage bootloader.
One or more second-stage bootloader images are installed.
The production image may be installed at that time, or if the second-stage bootloader is able to install it over the network, it may be done that way instead.</t>
        <t>There are many variations of the above process, and this section is not attempting to be prescriptive, but to be provide enough illustration to motivate subsequent terminology.</t>
        <t>The process may be entirely automated, or it may be entirely driven by humans working in the factory, or a combination of the above.</t>
        <t>These steps may all occur on an access-controlled assembly line, or the system boards may be shipped from one place to another (maybe another country) before undergoing testing.</t>
        <t>Some systems are intended to be shipped in a tamper-proof state, but it is usually not desirable that bed-of-nails testing be possible without tampering, so the initialization process is usually done prior to rendering the system tamper-proof.
An example of a one-way tamper-proof, weather resistant treatment might to mount the system board in a case and fill the case with resin.</t>
        <t>Quality control testing may be done prior to as well as after the application of tamper-proofing, as systems which do not pass inspection may be reworked to fix flaws, and this should ideally be impossible once the system has been made tamper-proof.</t>
      </section>
    </section>
    <section anchor="types-of-trust-anchors">
      <name>Types of Trust Anchors</name>
      <t>Trust Anchors (TrAnc) are fundamentally public keys with authorizations implicitly attached through the code that references them.</t>
      <t>They are used to validate other digitally signed artifacts.
Typically, these are chains of PKIX certificates leading to an End-Entity certificate (EE).</t>
      <t>The chains are usually presented as part of an externally provided object, with the term "externally" to be understood as being as close as untrusted flash, to as far as objects retrieved over a network.</t>
      <t>There is no requirement that there be any chain at all: the trust anchor can be used to validate a signature over a target object directly.</t>
      <t>The trust anchors are often stored in the form of self-signed certificates.
The self-signature does not offer any cryptographic assurance, but it does provide a form of error detection, providing verification against non-malicious forms of data corruption.
If storage is at a premium (such as inside-CPU non-volatile storage) then only the public key itself need to be stored.
For a 256-bit ECDSA key, this is 32 bytes of space.</t>
      <t>When evaluating the degree of trust for each trust anchor there are four aspects that need to be determined:</t>
      <ul spacing="normal">
        <li>can the trust anchor be replaced or modified?</li>
        <li>can additional trust anchors be added?</li>
        <li>can trust anchors be removed?</li>
        <li>how is the private key associated with the trust anchor, maintained by the manufacturer, maintained?</li>
      </ul>
      <t>The first three things are device specific properties of how the integrity of the trust anchor is maintained.</t>
      <t>The fourth property has nothing to do with the device, but has to do with the reputation and care of the entity that maintains the private key.</t>
      <t>Different anchors have different authorizations associated with them.</t>
      <t>These are:</t>
      <section anchor="secured-first-boot-trust-anchor">
        <name>Secured First Boot Trust Anchor</name>
        <t>This anchor is part of the first-stage boot loader, and it is used to validate a second-stage bootloader which may be stored in external flash.
This is called the initial software trust anchor.</t>
      </section>
      <section anchor="software-update-trust-anchor">
        <name>Software Update Trust Anchor</name>
        <t>This anchor is used to validate the main application (or operating system) load for the device.</t>
        <t>It can be stored in a number of places.
First, it may be identical to the Secure Boot Trust Anchor.</t>
        <t>Second, it may be stored in the second-stage bootloader, and therefore its integrity is protected by the Secured First Boot Trust Anchor.</t>
        <t>Third, it may be stored in the application code itself, where the application validates updates to the application directly (update in place), or via a double-buffer arrangement.
The initial (factory) load of the application code initializes the trust arrangement.</t>
        <t>In this situation the application code is not in a secured boot situation, as the second-stage bootloader does not validate the application/operating system before starting it, but it may still provide measured boot mechanism.</t>
      </section>
      <section anchor="trusted-application-manager-anchor">
        <name>Trusted Application Manager anchor</name>
        <t>This anchor is the secure key for the <xref target="I-D.ietf-teep-architecture"/> Trusted Application Manager (TAM).
Code which is signed by this anchor will be given execution privileges as described by the manifest which accompanies the code.
This privilege may include updating anchors.</t>
      </section>
      <section anchor="public-webpki-anchors">
        <name>Public WebPKI anchors</name>
        <t>These anchors are used to verify HTTPS certificates from web sites.
These anchors are typically distributed as part of desktop browsers, and via desktop operating systems.</t>
        <t>The exact set of these anchors is not precisely defined: it is usually determined by the browser vendor (e.g., Mozilla, Google, Apple, Safari, Microsoft), or the operating system vendor (e.g., Apple, Google, Microsoft, Ubuntu).
In most cases these vendors look to the CA/Browser Forum <xref target="CABFORUM"/> for inclusion criteria.</t>
      </section>
      <section anchor="dnssec-root">
        <name>DNSSEC root</name>
        <t>This anchor is part of the DNS Security extensions.
It provides an anchor for securing DNS lookups.
Secure DNS lookups may be important in order to get access to software updates.
This anchor is now scheduled to change approximately every 3 years, with the new key announced several years before it is used, making it possible to embed keys that
will be valid for up to five years.</t>
        <t>This trust anchor is typically part of the application/operating system code and is usually updated by the manufacturer when they do updates.
However, a system that is connected to the Internet may update the DNSSEC anchor itself through the mechanism described in <xref target="RFC5011"/>.</t>
        <t>There are concerns that there may be a chicken and egg situation for devices that have remained in a powered off state (or disconnected from the Internet) for some period of years.
That upon being reconnected, that the device would be unable to do DNSSEC validation.
This failure would result in them being unable to obtain operating system updates that would then include the updates to the DNSSEC key.</t>
      </section>
      <section anchor="privatecloud-pki-anchors">
        <name>Private/Cloud PKI anchors</name>
        <t>It is common for many IoT and network appliances to have links to vendor provided services.
For instance, the IoT device that calls home for control purposes, or the network appliance that needs to validate a license key before it can operate.
(This may be identical to, or distinct from a Software Update anchor.  In particular, the device might call home over HTTPS to learn if there is a software update that needs to be done, but the update is signed by another key)</t>
        <t>Such vendor services can be provided with public certificates, but often the update policies such public anchors precludes their use in many operational environments.
Instead a private PKI anchor is included.
This can be in the form a multi-level PKI (as described in <xref target="pkilevel"/>), or degenerate to a level-1 PKI: a self-signed certificate.
A level-1 PKI is very simple to create and operate, and there are innumerable situations where there is just a call to "curl" with the "--pinnedpubkey" option has been used.</t>
      </section>
      <section anchor="onboarding-and-other-enrollment-anchors">
        <name>Onboarding and other Enrollment anchors</name>
        <t><xref target="RFC8995"/>, <xref target="RFC8572"/> and <xref target="RFC8366"/> specifies a mechanism for onboarding of new devices.
The voucher archifact is transfered to the device by different means, and the device must verify the signature on it.
This requires a trust anchor to be built-in to the device, and some kind of private PKI be maintained by the vendor (or it's authorized designate).
<xref target="I-D.anima-masa-considerations"/> provides some advice on choices in PKI design for a MASA.
The taxomony presented in this document apply to describing how this PKI has been designed.</t>
      </section>
      <section anchor="onboarded-network-local-anchors">
        <name>Onboarded network-local anchors</name>
        <t><xref target="RFC7030"/>, <xref target="RFC8995"/> and <xref target="I-D.ietf-netconf-trust-anchors"/> provide mechanisms by which new trust anchors may be loaded by a device during an onboarding process.
The trust anchors involved are typically local to an enterprise and are used to validate connections to other devices in the network.
This typically includes connections to network management systems that may also load or modify other trust anchors in the system.
<xref target="I-D.anima-masa-considerations"/> provides some advice in the BRSKI (<xref target="RFC8995"/>) case for appropriate PKI complexity for such local PKIs</t>
      </section>
      <section anchor="what-else">
        <name>What else?</name>
        <t>what anchors are still missing?</t>
      </section>
    </section>
    <section anchor="types-of-identities">
      <name>Types of Identities</name>
      <t>Identities are installed during manufacturing time for a variety of purposes.</t>
      <t>Identities require some private component.
Asymmetric identities (e.g., RSA, ECDSA, EdDSA systems) require a corresponding public component, usually in the form of a certificate signed by a trusted third party.</t>
      <t>This certificate associates the identity with attributes.</t>
      <t>The process of making this coordinated key pair and then installing it into the device is called identity provisioning.</t>
      <section anchor="manufacturer-installed-idevid-certificates">
        <name>Manufacturer installed IDevID certificates</name>
        <t><xref target="ieee802-1AR"/> defines a category of certificates that are installed by the manufacturer which contain a device unique serial number.</t>
        <t>A number of protocols depend upon this certificate.</t>
        <ul spacing="normal">
          <li>
            <xref target="RFC8572"/> and <xref target="RFC8995"/> introduce mechanisms for new devices (called pledges) to be onboarded into a network without intervention from an expert operator. A number of derived protocols such as <xref target="I-D.ietf-anima-brski-async-enroll"/>,                <xref target="I-D.ietf-anima-constrained-voucher"/>, <xref target="I-D.richardson-anima-voucher-delegation"/>, <xref target="I-D.friel-anima-brski-cloud"/> extend this in a number of ways.</li>
          <li>
            <xref target="I-D.ietf-rats-architecture"/> depends upon a key provisioned into the Attesting Environment to sign Evidence.</li>
          <li>
            <xref target="I-D.ietf-suit-architecture"/> may depend upon a key provisioned into the
device in order to decrypt software updates.
Both symmetric and asymmetric keys are possible.
In both cases, the decrypt operation depends upon the device having access to
a private key provisioned in advance.
The IDevID can be used for this if algorithm choices permit.
ECDSA keys do not directly support encryption in the same way that RSA does, for
instance, but the addition of ECIES can solve this.
There may be other legal considerations why the IDevID might not be used, and
a second key provisioned.</li>
          <li>TBD</li>
        </ul>
        <section anchor="operational-considerations-for-manufacturer-idevid-public-key-infrastructure">
          <name>Operational Considerations for Manufacturer IDevID Public Key Infrastructure</name>
          <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 document will overview.</t>
          <t>There are three fundamental ways to generate IDevID certificates for devices:</t>
          <ol spacing="normal" type="1"><li>generating a private key on the device, creating a Certificate Signing
Request (or equivalent), and then returning a certificate to the device.</li>
            <li>generating a private key outside the device, signing the certificate, and
the installing both into the device.</li>
            <li>deriving the private key from a previously installed secret seed, that is shared with only the manufacturer.</li>
          </ol>
          <t>There is a fourth situation where the IDevID is provided as part of a Trusted
Platform Module (TPM), in which case the TPM vendor may be making the same
tradeoffs.</t>
          <t>The document <xref target="I-D.moskowitz-ecdsa-pki"/> provides some practical instructions
on setting up a reference implementation for ECDSA keys using a three-tier
mechanism.</t>
        </section>
        <section anchor="key-generation-process">
          <name>Key Generation process</name>
          <section anchor="on-device-private-key-generation">
            <name>On-device private key generation</name>
            <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 verified random number generator.
<xref target="factoringrsa"/> is an example of a successful attack on this scenario.</t>
            <t>There are a number of options of how to get the public key securely from the
device to the certification authority.</t>
            <t>This transmission must be done in an integral manner, and must be securely associated with the assigned serial number.
The serial number goes into the certificate, and the resulting certificate needs to be loaded into the manufacturer's asset database.</t>
            <t>One way to do the transmission is during a factory Bed of Nails test (see <xref target="BedOfNails"/>) or Boundary Scan.
When done via a physical connection like this, then this is referred to as a
<em>device-generated</em> / <em>mechanically-transferred</em> method.</t>
            <t>There are other ways that could be used where a certificate signing request is sent over a special network channel when the device is powered up in the factory.
This is referred to as the <em>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.</t>
            <t>After the key generation, the device needs to set a flag such that it no longer will generate a new key / will accept a new IDevID via the factory connection.
This may be a software setting, or could be as dramatic as blowing a fuse.</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, unless the network initialization also permits an attacker to load or replace trust anchors at the same time.</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>
          </section>
          <section anchor="off-device-private-key-generation">
            <name>Off-device private key generation</name>
            <t>Generating the key off-device has the advantage that the randomness of the private key can be better analyzed.
As the private key is available to the manufacturing infrastructure, the authenticity of the public key is well known ahead of time.</t>
            <t>If the device does not come with a serial number in silicon, then one should be assigned and placed into a certificate.
The private key and certificate could 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.</t>
            <t>As in the previous case, the transfer may be done via physical interfaces such as bed-of-nails, giving the <em>infrastructure-generated</em> / <em>mechanically-transferred</em> method.</t>
            <t>There is also the possibility of having a <em>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.</t>
          </section>
          <section anchor="key-setup-based-on-256-bit-secret-seed">
            <name>Key setup based on 256 bit secret seed</name>
            <t>A hybrid of the previous two methods leverages a symmetric key that is often provided by a silicon vendor to OEM manufacturers.</t>
            <t>Each CPU (or a Trusted Execution Environment <xref target="I-D.ietf-teep-architecture"/>, or a TPM) is provisioned at fabrication time with a unique, secret seed, usually at least 256 bits in size.</t>
            <t>This value is revealed to the OEM board manufacturer only via a secure channel.
Upon first boot, the system (probably within a TEE, or within a TPM) will generate a key pair using the seed to initialize a Pseudo-Random-Number-Generator (PRNG).
The OEM, in a separate system, will initialize the same PRNG and generate the same key pair.
The OEM then derives the public key part, signs it and turns it into a certificate.
The private part is then destroyed, ideally never stored or seen by anyone.
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>This method appears to have all of the downsides of the previous two methods: the device must correctly derive its own private key, and the OEM has access to the private key, making it also vulnerable.
The secret seed must be created in a secure way and it must also be communicated securely.</t>
            <t>There are some advantages to the OEM however: the major one is that the problem of securely communicating with the device is outsourced to the silicon vendor.
The private keys and certificates may be calculated by the OEM asynchronously to the manufacturing process, either done in batches in advance of actual manufacturing, or on demand when an IDevID is demanded.
Doing the processing in this way permits the key derivation system to be completely disconnected from any network, and requires placing very little trust in the system assembly factory.
<!-- FIXME: What? -->
Operational security such as often incorrectly presented fictionalized stories of a "mainframe" system to which only physical access is permitted begins to become realistic.
That trust has been replaced with a heightened trust placed in the silicon (integrated circuit) fabrication facility.</t>
            <t>The downsides of this method to the OEM are: they must be supplied by a trusted silicon fabrication system, which must communicate the set of secrets seeds to the OEM in batches, and they OEM must store and care for these keys very carefully.
There are some operational advantages to keeping the secret seeds around in some form, as the same secret seed could be used for other things.
There are some significant downsides to keeping that secret seed around.</t>
          </section>
        </section>
      </section>
    </section>
    <section anchor="public-key-infrastructures-pki">
      <name>Public Key Infrastructures (PKI)</name>
      <t><xref target="RFC5280"/> describes the format for certificates, and numerous mechanisms
for doing enrollment have been defined (including: EST <xref target="RFC7030"/>, CMP <xref target="RFC4210"/>,
SCEP <xref target="RFC8894"/>).</t>
      <t><xref target="RFC5280"/> provides mechanisms to deal with multi-level certification
authorities, but it is not always clear what operating rules apply.</t>
      <t>The certification authority (CA) that is central to <xref target="RFC5280"/>-style public key infrastructures can suffer three kinds of failures:</t>
      <ol spacing="normal" type="1"><li>disclosure of a private key,</li>
        <li>loss of a private key,</li>
        <li>inappropriate signing of a certificate from an unauthorized source.</li>
      </ol>
      <t>A PKI which discloses one or more private certification authority keys is no
longer secure.</t>
      <t>An attacker can create new identities, and forge certificates connecting
existing identities to attacker controlled public/private keypairs.
This can permit the attacker to impersonate any specific device.</t>
      <t>There is an additional kind of failure when the CA is convinced to sign (or issue) a certificate which it is not authorized to do so.
See for instance <xref target="ComodoGate"/>.
This is an authorization failure, and while a significant event, it does not result in the CA having to be re-initialized from scratch.</t>
      <t>This is distinguished from when a loss as described above renders the CA completely useless and likely requires a recall of all products that have ever had an IDevID issued from this CA.</t>
      <t>If the PKI uses Certificate Revocation Lists (CRL)s, then an attacker that has access to the private key can also revoke existing identities.</t>
      <t>In the other direction, a PKI which loses access to a private key can no
longer function.
This does not immediately result in a failure, as existing identities remain valid until their expiry time (notAfter).
However, if CRLs or OCSP are in use, then the inability to sign a fresh CRL or OCSP response will result in all identities becoming invalid once the existing CRLs or OCSP statements expire.</t>
      <t>This section details some nomenclature about the structure of certification
authorities.</t>
      <section anchor="pkilevel">
        <name>Number of levels of certification authorities (pkilevel)</name>
        <t>Section 6.1 of <xref target="RFC5280"/> provides a Basic Path Validation.
In the formula, the certificates are arranged into a list.</t>
        <t>The certification authority (CA) starts with a Trust Anchor (TrAnc).
This is counted as the first level of the authority.</t>
        <t>In the degenerate case of a self-signed certificate, then this a one level PKI.</t>
        <artset>
          <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="96" width="136" viewBox="0 0 136 96" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px">
              <path d="M 8,32 L 8,80" fill="none" stroke="black"/>
              <path d="M 96,32 L 96,80" fill="none" stroke="black"/>
              <path d="M 120,32 L 120,64" fill="none" stroke="black"/>
              <path d="M 8,32 L 96,32" fill="none" stroke="black"/>
              <path d="M 104,64 L 120,64" fill="none" stroke="black"/>
              <path d="M 8,80 L 96,80" fill="none" stroke="black"/>
              <g class="text">
                <text x="108" y="36">&lt;-</text>
                <text x="40" y="52">Issuer=</text>
                <text x="80" y="52">X</text>
                <text x="48" y="68">Subject=X</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art"><![CDATA[
.----------.<-.
|Issuer= X |  | 
|Subject=X |--'
'----------'
]]></artwork>
        </artset>
        <t>The private key associated with the Trust Anchor signs one or more certificates.
When this first level authority trusts only End-Entity (EE) certificates,
then this is a two level PKI.</t>
        <artset>
          <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="256" width="232" viewBox="0 0 232 256" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px">
              <path d="M 8,32 L 8,80" fill="none" stroke="black"/>
              <path d="M 8,160 L 8,208" fill="none" stroke="black"/>
              <path d="M 32,80 L 32,152" fill="none" stroke="black"/>
              <path d="M 80,80 L 80,112" fill="none" stroke="black"/>
              <path d="M 96,32 L 96,80" fill="none" stroke="black"/>
              <path d="M 96,160 L 96,208" fill="none" stroke="black"/>
              <path d="M 120,32 L 120,64" fill="none" stroke="black"/>
              <path d="M 136,160 L 136,208" fill="none" stroke="black"/>
              <path d="M 144,112 L 144,152" fill="none" stroke="black"/>
              <path d="M 224,160 L 224,208" fill="none" stroke="black"/>
              <path d="M 8,32 L 96,32" fill="none" stroke="black"/>
              <path d="M 96,64 L 120,64" fill="none" stroke="black"/>
              <path d="M 8,80 L 96,80" fill="none" stroke="black"/>
              <path d="M 80,112 L 144,112" fill="none" stroke="black"/>
              <path d="M 8,160 L 40,160" fill="none" stroke="black"/>
              <path d="M 64,160 L 96,160" fill="none" stroke="black"/>
              <path d="M 136,160 L 168,160" fill="none" stroke="black"/>
              <path d="M 192,160 L 224,160" fill="none" stroke="black"/>
              <path d="M 8,208 L 96,208" fill="none" stroke="black"/>
              <path d="M 136,208 L 224,208" fill="none" stroke="black"/>
              <polygon class="arrowhead" points="152,152 140,146.4 140,157.6 " fill="black" transform="rotate(90,144,152)"/>
              <polygon class="arrowhead" points="40,152 28,146.4 28,157.6 " fill="black" transform="rotate(90,32,152)"/>
              <g class="text">
                <text x="108" y="36">&lt;-</text>
                <text x="40" y="52">Issuer=</text>
                <text x="80" y="52">X</text>
                <text x="164" y="52">root</text>
                <text x="48" y="68">Subject=X</text>
                <text x="164" y="68">CA</text>
                <text x="52" y="164">EE</text>
                <text x="180" y="164">EE</text>
                <text x="40" y="180">Issuer=</text>
                <text x="80" y="180">X</text>
                <text x="168" y="180">Issuer=</text>
                <text x="208" y="180">X</text>
                <text x="52" y="196">Subject=Y1</text>
                <text x="180" y="196">Subject=Y2</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art"><![CDATA[
.----------.<-.
|Issuer= X |  |   root
|Subject=X +--'    CA
'--+-----+-'
   |     |
   |     '-------.
   |             |
   v             v
.----EE----.    .----EE----.
|Issuer= X |    |Issuer= X |
|Subject=Y1|    |Subject=Y2|
'----------'    '----------'


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





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

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-richardson-anima-voucher-delegation-03"/>
        </reference>
        <reference anchor="I-D.friel-anima-brski-cloud" target="https://www.ietf.org/archive/id/draft-friel-anima-brski-cloud-04.txt">
          <front>
            <title>BRSKI Cloud Registrar</title>
            <author fullname="Owen Friel" initials="O." surname="Friel">
              <organization>Cisco</organization>
            </author>
            <author fullname="Rifaat Shekh-Yusef" initials="R." surname="Shekh-Yusef">
              <organization>Auth0</organization>
            </author>
            <author fullname="Michael Richardson" initials="M." surname="Richardson">
              <organization>Sandelman Software Works</organization>
            </author>
            <date day="6" month="April" year="2021"/>
            <abstract>
              <t>   This document specifies the behaviour of a BRSKI Cloud Registrar, and
   how a pledge can interact with a BRSKI Cloud Registrar when
   bootstrapping.

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

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-friel-anima-brski-cloud-04"/>
        </reference>
        <reference anchor="I-D.ietf-anima-constrained-voucher" target="https://www.ietf.org/archive/id/draft-ietf-anima-constrained-voucher-19.txt">
          <front>
            <title>Constrained Bootstrapping Remote Secure Key Infrastructure (BRSKI)</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="2" month="January" year="2023"/>
            <abstract>
              <t>   This document defines the Constrained Bootstrapping Remote Secure Key
   Infrastructure (Constrained BRSKI) protocol, which provides a
   solution for secure zero-touch bootstrapping 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.  Constrained BRSKI
   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 is typically encoded in JSON, Constrained BRSKI defines
   a compact CBOR-encoded voucher.  The BRSKI voucher 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 CoAPS.  This
   document Updates RFC 8366 and RFC 8995.

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

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

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-anima-brski-async-enroll-05"/>
        </reference>
        <reference anchor="I-D.moskowitz-ecdsa-pki" target="https://www.ietf.org/archive/id/draft-moskowitz-ecdsa-pki-10.txt">
          <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" target="https://www.rfc-editor.org/info/rfc4949">
          <front>
            <title>Internet Security Glossary, Version 2</title>
            <author fullname="R. Shirey" initials="R." surname="Shirey">
              <organization/>
            </author>
            <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" target="https://www.rfc-editor.org/info/rfc5011">
          <front>
            <title>Automated Updates of DNS Security (DNSSEC) Trust Anchors</title>
            <author fullname="M. StJohns" initials="M." surname="StJohns">
              <organization/>
            </author>
            <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" target="https://www.rfc-editor.org/info/rfc8366">
          <front>
            <title>A Voucher Artifact for Bootstrapping Protocols</title>
            <author fullname="K. Watsen" initials="K." surname="Watsen">
              <organization/>
            </author>
            <author fullname="M. Richardson" initials="M." surname="Richardson">
              <organization/>
            </author>
            <author fullname="M. Pritikin" initials="M." surname="Pritikin">
              <organization/>
            </author>
            <author fullname="T. Eckert" initials="T." surname="Eckert">
              <organization/>
            </author>
            <date month="May" year="2018"/>
            <abstract>
              <t>This document defines a strategy to securely assign a pledge to an owner using an artifact signed, directly or indirectly, by the pledge's manufacturer.  This artifact is known as a "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" target="https://www.rfc-editor.org/info/rfc8572">
          <front>
            <title>Secure Zero Touch Provisioning (SZTP)</title>
            <author fullname="K. Watsen" initials="K." surname="Watsen">
              <organization/>
            </author>
            <author fullname="I. Farrer" initials="I." surname="Farrer">
              <organization/>
            </author>
            <author fullname="M. Abrahamsson" initials="M." surname="Abrahamsson">
              <organization/>
            </author>
            <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" target="https://www.rfc-editor.org/info/rfc7030">
          <front>
            <title>Enrollment over Secure Transport</title>
            <author fullname="M. Pritikin" initials="M." role="editor" surname="Pritikin">
              <organization/>
            </author>
            <author fullname="P. Yee" initials="P." role="editor" surname="Yee">
              <organization/>
            </author>
            <author fullname="D. Harkins" initials="D." role="editor" surname="Harkins">
              <organization/>
            </author>
            <date month="October" year="2013"/>
            <abstract>
              <t>This document profiles certificate enrollment for clients using Certificate Management over CMS (CMC) messages over a secure transport.  This profile, called Enrollment over Secure Transport (EST), describes a simple, yet functional, certificate management protocol targeting Public Key Infrastructure (PKI) clients that need to acquire client certificates and associated Certification Authority (CA) certificates.  It also supports client-generated public/private key pairs as well as key pairs generated by the CA.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7030"/>
          <seriesInfo name="DOI" value="10.17487/RFC7030"/>
        </reference>
        <reference anchor="RFC8894" target="https://www.rfc-editor.org/info/rfc8894">
          <front>
            <title>Simple Certificate Enrolment Protocol</title>
            <author fullname="P. Gutmann" initials="P." surname="Gutmann">
              <organization/>
            </author>
            <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" target="https://www.rfc-editor.org/info/rfc4210">
          <front>
            <title>Internet X.509 Public Key Infrastructure Certificate Management Protocol (CMP)</title>
            <author fullname="C. Adams" initials="C." surname="Adams">
              <organization/>
            </author>
            <author fullname="S. Farrell" initials="S." surname="Farrell">
              <organization/>
            </author>
            <author fullname="T. Kause" initials="T." surname="Kause">
              <organization/>
            </author>
            <author fullname="T. Mononen" initials="T." surname="Mononen">
              <organization/>
            </author>
            <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" target="https://www.rfc-editor.org/info/rfc6024">
          <front>
            <title>Trust Anchor Management Requirements</title>
            <author fullname="R. Reddy" initials="R." surname="Reddy">
              <organization/>
            </author>
            <author fullname="C. Wallace" initials="C." surname="Wallace">
              <organization/>
            </author>
            <date month="October" year="2010"/>
            <abstract>
              <t>A trust anchor represents an authoritative entity via a public key and associated data.  The public key is used to verify digital signatures, and the associated data is used to constrain the types of information for which the trust anchor is authoritative.  A relying party uses trust anchors to determine if a digitally signed object is valid by verifying a digital signature using the trust anchor's public key, and by enforcing the constraints expressed in the associated data for the trust anchor.  This document describes some of the problems associated with the lack of a standard trust anchor management mechanism and defines requirements for data formats and push-based protocols designed to address these problems.  This  document is not an Internet Standards Track specification; it is published for informational purposes.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6024"/>
          <seriesInfo name="DOI" value="10.17487/RFC6024"/>
        </reference>
        <reference anchor="BedOfNails" target="https://en.wikipedia.org/wiki/In-circuit_test#Bed_of_nails_tester">
          <front>
            <title>Bed of nails tester</title>
            <author>
              <organization>Wikipedia</organization>
            </author>
            <date year="2020" month="July" day="01"/>
          </front>
        </reference>
        <reference anchor="pelionfcu" target="https://www.pelion.com/docs/device-management-provision/1.2/introduction/index.html">
          <front>
            <title>Factory provisioning overview</title>
            <author>
              <organization>ARM Pelion</organization>
            </author>
            <date year="2020" month="June" day="28"/>
          </front>
        </reference>
        <reference anchor="factoringrsa" target="https://core.ac.uk/download/pdf/204886987.pdf">
          <front>
            <title>Factoring RSA keys from certified smart cards: Coppersmith in the wild</title>
            <author>
              <organization/>
            </author>
            <date year="2013" month="September" day="16"/>
          </front>
        </reference>
        <reference anchor="kskceremony" target="https://www.iana.org/dnssec/dps/zsk-operator/dps-zsk-operator-v2.0.pdf">
          <front>
            <title>DNSSEC Practice Statement for the Root Zone ZSK Operator</title>
            <author>
              <organization>Verisign</organization>
            </author>
            <date year="2017"/>
          </front>
        </reference>
        <reference anchor="rootkeyceremony" target="https://cryptography.fandom.com/wiki/Root_Key_Ceremony">
          <front>
            <title>Root Key Ceremony, Cryptography Wiki</title>
            <author>
              <organization>Community</organization>
            </author>
            <date year="2020" month="April" day="04"/>
          </front>
        </reference>
        <reference anchor="keyceremony2" target="http://www.digi-sign.com/compliance/key%20ceremony/index">
          <front>
            <title>SAS 70 Key Ceremony</title>
            <author>
              <organization>Digi-Sign</organization>
            </author>
            <date year="2020" month="April" day="04"/>
          </front>
        </reference>
        <reference anchor="shamir79" target="http://web.mit.edu/6.857/OldStuff/Fall03/ref/Shamir-HowToShareASecret.pdf">
          <front>
            <title>How to share a secret.</title>
            <author initials="A." surname="Shamir" fullname="Adi Shamir">
              <organization/>
            </author>
            <date year="1979"/>
          </front>
        </reference>
        <reference anchor="nistsp800-57" target="https://csrc.nist.gov/publications/detail/sp/800-57-part-1/rev-4/final">
          <front>
            <title>SP 800-57 Part 1 Rev. 4 Recommendation for Key Management, Part 1: General</title>
            <author>
              <organization>NIST</organization>
            </author>
            <date year="2016" month="January" day="01"/>
          </front>
        </reference>
        <reference anchor="fidotechnote" target="https://fidoalliance.org/fido-technotes-the-truth-about-attestation/">
          <front>
            <title>FIDO TechNotes: The Truth about Attestation</title>
            <author>
              <organization>FIDO Alliance</organization>
            </author>
            <date year="2018" month="July" day="19"/>
          </front>
        </reference>
        <reference anchor="ntiasbom" target="https://www.ntia.doc.gov/SoftwareTransparency">
          <front>
            <title>NTIA Software Component Transparency</title>
            <author>
              <organization>NTIA</organization>
            </author>
            <date year="2020" month="July" day="01"/>
          </front>
        </reference>
        <reference anchor="cisqsbom" target="https://www.it-cisq.org/software-bill-of-materials/index.htm">
          <front>
            <title>TOOL-TO-TOOL SOFTWARE BILL OF MATERIALS EXCHANGE</title>
            <author>
              <organization>CISQ/Object Management Group</organization>
            </author>
            <date year="2020" month="July" day="01"/>
          </front>
        </reference>
        <reference anchor="ComodoGate" target="https://www.theregister.com/2011/03/28/comodo_gate_hacker_breaks_cover/">
          <front>
            <title>Comodo-gate hacker brags about forged certificate exploit</title>
            <author>
              <organization/>
            </author>
            <date year="2011" month="March" day="28"/>
          </front>
        </reference>
        <reference anchor="openbmc" target="https://www.openbmc.org/">
          <front>
            <title>Defining a Standard Baseboard Management Controller Firmware Stack</title>
            <author>
              <organization>Linux Foundation/OpenBMC Group</organization>
            </author>
            <date year="2020" month="July" day="01"/>
          </front>
        </reference>
        <reference anchor="JTAG" target="https://en.wikipedia.org/wiki/JTAG">
          <front>
            <title>Joint Test Action Group</title>
            <author>
              <organization/>
            </author>
            <date year="2020" month="August" day="26"/>
          </front>
        </reference>
        <reference anchor="JTAGieee" target="https://ieeexplore.ieee.org/document/5412866">
          <front>
            <title>1149.7-2009 - IEEE Standard for Reduced-Pin and Enhanced-Functionality Test Access Port and Boundary-Scan Architecture</title>
            <author>
              <organization>IEEE Standard</organization>
            </author>
            <date year="2009"/>
          </front>
          <seriesInfo name="DOI" value="10.1109/IEEESTD.2010.5412866"/>
        </reference>
        <reference anchor="rootkeyrollover" target="https://www.icann.org/en/system/files/files/proposal-future-rz-ksk-rollovers-01nov19-en.pdf">
          <front>
            <title>Proposal for Future Root Zone KSK Rollovers</title>
            <author>
              <organization>ICANN</organization>
            </author>
            <date year="2019"/>
          </front>
        </reference>
        <reference anchor="CABFORUM" target="https://cabforum.org/wp-content/uploads/CA-Browser-Forum-BR-1.7.3.pdf">
          <front>
            <title>CA/Browser Forum Baseline Requirements for the Issuance and Management of Publicly-Trusted Certificates, v.1.7.3</title>
            <author>
              <organization>CA/Browser Forum</organization>
            </author>
            <date year="2020" month="October"/>
          </front>
        </reference>
        <reference anchor="I-D.richardson-rats-usecases" target="https://www.ietf.org/archive/id/draft-richardson-rats-usecases-08.txt">
          <front>
            <title>Use cases for Remote Attestation common encodings</title>
            <author fullname="Michael Richardson" initials="M." surname="Richardson">
              <organization>Sandelman Software Works</organization>
            </author>
            <author fullname="Carl Wallace" initials="C." surname="Wallace">
              <organization>Red Hound Software</organization>
            </author>
            <author fullname="Wei Pan" initials="W." surname="Pan">
              <organization>Huawei Technologies</organization>
            </author>
            <date day="2" month="November" year="2020"/>
            <abstract>
              <t>   This document details mechanisms created for performing Remote
   Attestation that have been used in a number of industries.  The
   document initially focuses on existing industry verticals, mapping
   terminology used in those specifications to the more abstract
   terminology used by the IETF RATS Working Group.

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

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

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

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-birkholz-suit-coswid-manifest-00"/>
        </reference>
        <reference anchor="I-D.birkholz-rats-mud" target="https://www.ietf.org/archive/id/draft-birkholz-rats-mud-00.txt">
          <front>
            <title>MUD-Based RATS Resources Discovery</title>
            <author fullname="Henk Birkholz" initials="H." surname="Birkholz">
              <organization>Fraunhofer SIT</organization>
            </author>
            <date day="9" month="March" year="2020"/>
            <abstract>
              <t>   Manufacturer Usage Description (MUD) files and the MUD URI 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 an IEEE 802.1AR
   Secure Device Identifier (DevID).  A DevID is a device specific pub-
   key identity document that can be presented to other entities, e.g. a
   network management system.  If this entity is also a verifier as
   defined by the IETF Remote ATtestation procedureS (RATS)
   architecture, this verifier can use the references found in the MUD
   file specified in this document in order to discover appropriate
   Reference Integrity Measurements (RIM), Endorsement Documents, or
   even globally suitable Remote Attestation Services (RAS).  All three
   types of theses resources are required to conduct RATS.  Hence, the
   MUD file defined in this document enables remote attestation
   procedures by supporting the discovery of these required resources or
   services.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-birkholz-rats-mud-00"/>
        </reference>
        <reference anchor="RFC8520" target="https://www.rfc-editor.org/info/rfc8520">
          <front>
            <title>Manufacturer Usage Description Specification</title>
            <author fullname="E. Lear" initials="E." surname="Lear">
              <organization/>
            </author>
            <author fullname="R. Droms" initials="R." surname="Droms">
              <organization/>
            </author>
            <author fullname="D. Romascanu" initials="D." surname="Romascanu">
              <organization/>
            </author>
            <date month="March" year="2019"/>
            <abstract>
              <t>This memo specifies a component-based architecture for Manufacturer Usage Descriptions (MUDs).  The goal of MUD is to provide a means for end devices to signal to the network what sort of access and network functionality they require to properly function.  The initial focus is on access control.  Later work can delve into other aspects.</t>
              <t>This memo specifies two YANG modules, IPv4 and IPv6 DHCP options, a Link Layer Discovery Protocol (LLDP) TLV, a URL, an X.509 certificate extension, and a means to sign and verify the descriptions.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8520"/>
          <seriesInfo name="DOI" value="10.17487/RFC8520"/>
        </reference>
        <reference anchor="I-D.ietf-sacm-coswid" target="https://www.ietf.org/archive/id/draft-ietf-sacm-coswid-22.txt">
          <front>
            <title>Concise Software Identification Tags</title>
            <author fullname="Henk Birkholz" initials="H." surname="Birkholz">
              <organization>Fraunhofer SIT</organization>
            </author>
            <author fullname="Jessica Fitzgerald-McKay" initials="J." surname="Fitzgerald-McKay">
              <organization>National Security Agency</organization>
            </author>
            <author fullname="Charles Schmidt" initials="C." surname="Schmidt">
              <organization>The MITRE Corporation</organization>
            </author>
            <author fullname="David Waltermire" initials="D." surname="Waltermire">
              <organization>National Institute of Standards and Technology</organization>
            </author>
            <date day="20" month="July" year="2022"/>
            <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 similar set of
   semantics and features as SWID tags, as well as new semantics that
   allow CoSWIDs to describe additional types of information, all in a
   more memory efficient format.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-sacm-coswid-22"/>
        </reference>
        <reference anchor="RFC7168" target="https://www.rfc-editor.org/info/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">
              <organization/>
            </author>
            <date month="April" year="2014"/>
            <abstract>
              <t>The Hyper Text Coffee Pot Control Protocol (HTCPCP) specification does not allow for the brewing of tea, in all its variety and  complexity.  This paper outlines an extension to HTCPCP to allow  for pots to provide networked tea-brewing facilities.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7168"/>
          <seriesInfo name="DOI" value="10.17487/RFC7168"/>
        </reference>
        <reference anchor="I-D.bormann-lwig-7228bis" target="https://www.ietf.org/archive/id/draft-bormann-lwig-7228bis-08.txt">
          <front>
            <title>Terminology for Constrained-Node Networks</title>
            <author fullname="Carsten Bormann" initials="C." surname="Bormann">
              <organization>Universität Bremen TZI</organization>
            </author>
            <author fullname="Mehmet Ersue" initials="M." surname="Ersue">
         </author>
            <author fullname="Ari Keränen" initials="A." surname="Keränen">
              <organization>Ericsson</organization>
            </author>
            <author fullname="Carles Gomez" initials="C." surname="Gomez">
              <organization>Universitat Politecnica de Catalunya</organization>
            </author>
            <date day="5" month="April" year="2022"/>
            <abstract>
              <t>   The Internet Protocol Suite is increasingly used on small devices
   with severe constraints on power, memory, and processing resources,
   creating constrained-node networks.  This document provides a number
   of basic terms that have been useful in the standardization work for
   constrained-node networks.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-bormann-lwig-7228bis-08"/>
        </reference>
        <reference anchor="I-D.anima-masa-considerations">
          <front>
            <title>*** BROKEN REFERENCE ***</title>
            <author>
              <organization/>
            </author>
            <date/>
          </front>
        </reference>
        <reference anchor="I-D.ietf-netconf-trust-anchors" target="https://www.ietf.org/archive/id/draft-ietf-netconf-trust-anchors-20.txt">
          <front>
            <title>A YANG Data Model for a Truststore</title>
            <author fullname="Kent Watsen" initials="K." surname="Watsen">
              <organization>Watsen Networks</organization>
            </author>
            <date day="12" month="December" year="2022"/>
            <abstract>
              <t>   This document defines a YANG module for configuring bags of
   certificates and bags of public keys that can be referenced by other
   data models for trust.  Notifications are sent when certificates are
   about to expire.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-netconf-trust-anchors-20"/>
        </reference>
        <reference anchor="I-D.ietf-teep-architecture" target="https://www.ietf.org/archive/id/draft-ietf-teep-architecture-19.txt">
          <front>
            <title>Trusted Execution Environment Provisioning (TEEP) Architecture</title>
            <author fullname="Mingliang Pei" initials="M." surname="Pei">
              <organization>Broadcom</organization>
            </author>
            <author fullname="Hannes Tschofenig" initials="H." surname="Tschofenig">
              <organization>Arm Limited</organization>
            </author>
            <author fullname="Dave Thaler" initials="D." surname="Thaler">
              <organization>Microsoft</organization>
            </author>
            <author fullname="Dave Wheeler" initials="D. M." surname="Wheeler">
              <organization>Amazon</organization>
            </author>
            <date day="24" month="October" year="2022"/>
            <abstract>
              <t>   A Trusted Execution Environment (TEE) is an environment that enforces
   that any code within that environment cannot be tampered with, and
   that any data used by such code cannot be read or tampered with by
   any code outside that environment.  This architecture document
   motivates the design and standardization of a protocol for managing
   the lifecycle of trusted applications running inside such a TEE.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-teep-architecture-19"/>
        </reference>
      </references>
    </references>
  </back>
  <!-- ##markdown-source:
H4sIANVpzGMAA619aXfbZpbmd/wKjH3mRJoiqCWJF53uyciy7KgSxW5J6dT0
Fx+QBEWUQIANgJIZV+a3z33u8i4gJWdq2qfKMUngXe97l+cub5ZlSV/2VXGS
nqY3+eembpabtJmnzapo875s6rxKu2K6bst+k06buitn+kOXzps2Xeb1ep5P
+3VbtGlZd31eVcUsvSs2XZrXs/SmXXd9elpPF03bJflk0hb3J/FbeDaZNdM6
X9IwZm0+77Oy7edZf9y3t1mvo8rCl7JcWswOD5OkXLUnaY+Ojg8PXx8eJw+3
J+nN8c3V+/Sq6Iq8nS7S922zXiV3DyfpRd0XbV302Vv0lEzz/oQGPm8SGns9
+5RXTV1wc0WSrMqTJE37ZnqSboqO/tltlm0x7+Rjkq97GsRJkiQZ5n6SXo7T
q3K6yNtZ19T0uEzpEl8VVfxT09Igr6nHoqKJpdfNvH/I2yL9rWnv0FOxzMuK
Vmra/qUs+vn/6uzR8TRPkrppl7QL9wXGd/Xu7PvjV4f4Z1kUxavD4+zo9Aof
aex5e1vQDJ8t+n51cnDAk8Qgxnh0TKM4mJf1rOtnnfvtgFoYUwsZlnO86JfV
M2lLCOXZxfn5earPpNcgjiJ9W9yX0yK9mBV1X87LopVXbIVS/sNzltevtS95
bJb31DC6o92kvYgn9+r16+9P0jdX1z9d0BcX2dtx61aSCKFc5tl9s54uiCxo
iYpbJs8TfXTelkWlT03a7q7MplWzntnPWFv9FdTdt3lZFzNrb8dT0kbebepp
VtRtU1X20LLp7pqHsv89K6azLs9Wd6VO4LvX3722jTo8OrJpffvihf3z+5fH
+s+Xh98e2revXn9HNHJ2/lGbOT46PEnPLvHx2/cfP46/Pxr75l4cHn+Hf74p
Zh/mvxDxdCfxrtXZtGyn67JP+6LrH9+f38q7clXMyvzZNgV1REJFPX6wR5iA
8OnAN/8JzT+nYXxq5p9qDIS/MZKwvT56nR0e0f8S+nZVVLRl8+k6HvI7Ou1N
u0lXbXNfdvREWd+mzX3R3pfFQzy61Eb38PAwlubG02Z5QHylO5gxcYKB5LfF
kig0cy0eHI2PD8q6b5vZegq6oQ+z4jNT/aMrdHp1mX7kPuIpHR9mhy+y41eY
0pzHTgNuu3zXrDCVq+tT4ZTztlmm06LlozNLu2Xe9ukUFE773ayIF3fLsl8Q
k0n7RZE+lNUsnr7Nftq0xTifjtd3NPOHumry2cFqNj84Pvzu1asXr1+9HNOn
eBu+zQ5fZ0cvMOa77o4GUSybehMP+e0v19fnZ+nHloaOY06nt+eFZBmAIV01
TZ/+B7HO9D+uf0o/sPRo2kcoCHtU0mYw9czqjgTMwWzVHfze3WWNvoovsvCL
7P54fIjhP065/160tKm3g105eom5tTRAWut4fm6CPPyfik16pr+P0rN2s+qb
2zZfLTYpzsQzfWU4m2nw4HhObK1ZMunxsUDDn6jhT9awthIPX8d/1iyX65ok
rT4U0tV39D/eIz+H48Ekrk+v05eH0TR2jVk3YFbelhlWiwdL/19VtCfT4oB6
+O/Hh9aJnIenRv0WDV27Zd856m6RL8v25euYrH5sHki44keSIDn0jLbox7v2
VwTps9NZmV5zU+EWH71++XqnsHsoJmM6N+Nitj54MSYme/Chml336/n84B3p
KYffHpAwP5AGMxrMTXONoZxey0CY1iDFy67vVq8OD7PvX8YTuP6YytfpR5zY
I9I37sfpd/QfWk86HzMWRXxIsCuXjgGN9IWT9H1RE31Xj5yUaddOx+h/fNvc
H6zWk6qcivZFTK0n3nrQrQ5kCNmKWsyOaEr32XcQ6tborpPyy8X1zeCUvPDs
eF7Omr6YLmr6e4cagYHhEVpCphjVImZNZi91GfGEjHSofpHlk2bdZ3kPGcBD
P4i1iXcXbz+kN/TiL3iRFDfiJjd4M+U301P/5uPz4UZOdTyDib3KDl9mR695
J/sy7ybN8pFJ4VjgkTFJDV5w08pu2rzuaH2LerqJR//LzcWpV97oAK+IBxJf
3H5j5zbQ29si5KVuw7Ts/vMroy37DE/xDnQ6imxSVlXWzEnekdAt86rzMi0e
/M2HDz9nNx8y/De9/vDu5rfTq/P0zcXPP6cf3qWXpzfnVxenP1+n5387+/H0
l/fnj0/k7OL63w4+TP5eTPuAykXrfnyCtFzNrHmfP0plmCJRUlvcllAgmFPR
jh4d0NE9fgWmRe9/IoWv+LTIp3dF+4nsi/yu+zSFljAgNOktw9OpPJ1O2vy2
UzqjQ3pLslel8BRPFZ9XVVP2A3qiU/KtCnmSTfVkOX1i9PoEb1A8nLcFnVFo
AblThtM3eVdMGvwrWMSzBuoJmVVt+q5sl0xo9Mb07vHt+Lms15/Td81aOdAB
CeT6zeXZ1zbkrzen72MO99emBDUXMOJYPwqb+JOqIVrd7vNVdkxKx/P03cXf
Ls9PUjr96bqjDciyFFo8LT9xTeLPBc5Q8YOODlbLI8uNn7BhpAE524YO8hqL
ePD9d0fHr168iLfg6Oi71+OXbOakWRrZJcyzr0hwTMka+Eh6F4zZ83oB/jLL
3q3rqRjHMIt1daZF16UfG2LrePYNL367ya6nZN6dkg1aEneE8frPWkb42NGB
LjqYSPbm2w8XJAEPx0dHh68P0MD1zdsxUenhWKccKD+gIhyMpxgKjbbmpSvq
g25Dp25JrL0qOv2bFOdV0+VVNl9jLln7e0ZaY2Ytk0F+VDf3pNsTKThdzdb7
o77Mi/uOGwgUx59Icbyydp5YpLPTX34ZmhLJLsPnv9hwsVnQA0BI+IE0fOBP
GFM7ueDpm3cfrn69fGTU03xCy7VeyohXMFN7UPR6Be2+Ozg7zd60zQNRRvYO
z2VvrrKj8cvxt0/rymenB/payq8NeOXgV+ZMFZnGdCb+c122zJk6p/1fdN0a
J4MpP2BdtEwfWWepNhkjQbR0Z57BdqP0fsxjDVfnA5lHE+oYq5QkGfGDfALD
fNonyc2i7FI71GIXzgri4GkfYFfLgqY764SdTDYR2tThga6kITVypsU27BLo
oQJlrNryHtzfYViidgnClCrwNNahFCReyR4jbaV/aIhdVTnmCDPpvuxL6DML
KLnhq9Jm0EkCju6xM2K4jQ0rna3ZUvRToE8jboHbpbXXPpMIU1sU1WwwEepD
JkjDu83RXToru2nVdPTdeLi0s4Y6J1UuLe7zao1W0NesnDM/7mmNp8QLy25J
ezgh6UkmGsnp9O80z4So5p7epllAbceLS1iuueCHXc/vE5thxJDIcUb/oIfz
EnNPp2IEiZpL47p6d3b+9uLmw9VJuqoKIsMUhsk92qUBk4qVs+k1TnkCD017
l9J/mylNlZeOmrSjdEv7tJ6wFrGctgclFnmWGbyZxfCmkN6ynM2qAnLqIgAJ
kuS0pobJSsg79FGvl6BYIi0iyb6ZNhVIg5afzRoyjZjgQbHQ+ukxWpOy9cAq
EemaG4oJ5csXBY/++IPeyPs0JpQhaY+Tt25DtZO0ovXmf0cNu91d07mtqk06
zemw0Fhp+JOqWMqeYodveVS2g/Umfcg3/LoeAFqEas1HcDZj0myLVZVPGahp
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
BCXRJAKMB8R4kOgFls8bxNhcGITocBUOApPIoN05ZGH8BxdvS13iGjX4f+hP
mufd/W0yztyf8b9k4+QfuAK2aP81/Vv6j5T+l/zjes1VoP6Vvsiyb5Jv/Avf
cEPJtkdsRyBPtB6C7ITiOK4M9Zsbe7gyQUwCGtOqzEElMFT/irXDpA+jYHIG
Jv7JhZDLl8Pl+AutAILIz06xKH/hV/9Ci5LK4/S3/6et2th/ZX/4qfvoq3sZ
zfk5v4Jvws+DoVELwWc/wP99JD+6z8f/iDYvHBZvZqLb+bXVl93r1hPLwHj8
GI8SMYfgdn/8rEsw+s6Kbip+kmALWfF8ZBMH4f3DPdVNdCsfb3Eim+k3Jt7q
YePDPR/8CUggHomsfLj0ShZblLHdpj52//Rj98lg7jueGQ86H9JUuL2Dn5Nw
bZTK8GfX0oHo/Fr9xc0+/mNLGSzzP55ejX+45RhLk9/snut4QOk7zt9XPu46
n1/5+JXzu/3xkeNtJzj+7D8eD34+Dk7/fwxOv3z2H78d/Pzd08xh++OQdzj2
QdJK5FQ1UoXYBGoumbG4MsHJhUeOvYYFJZOm75ulh4Pje5RECembVaBUCWco
g1xnEpzFCoF55+fJUNqPRBRDO7Kasa7YNenfknK3lAq7GtErscuOAYUlo5i5
7Kkcr8kQUmHOJlMSFt760UrXuxIqGu7Nv7q0DykpoK5BmINlvRZAVhRiABjP
mvkcgQ/P5EqLqgiWAfIuPMmwOmDDg+EOlxvWoSi0z0iwcoNW1qHp/W0F1ER0
5/mW9H86oBD83jA6X9YLa5+Et5jfiHIJtb7r7UENqc1x45h6UgIQTO8m19Uw
h2uCGq6s/G7nOaRX7o7Qs+sryVtjeyRqwgVKJC4lhEtOaIA267HF5x5VOa1C
VQdHI0zYu+6OlqFAkrReJSqmtroFUr0sh6srokpPI7UfO7VIuAOtLQDaouUd
NJden16/PLRrFfU2tKjMS2cHb5Ljth3bnTNtx43UN32sRVZE4gKErsmCLt21
alJNilOYNdpHAehZvsGlOOLB3sjFSQ9FcdclXAW47hed1eceLHHZ2d0MbD5P
UVy3CDPWpACtWMSJu4VHyum4qtlS78wtcu8KyqGGPpcncpcgBRTFwKxNEYjI
mZuvsB06E+7AOUsNaI+/iFWRDZhKWptRkTausFBr9C8YCFcQ9eh7uLrCw7Ty
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

-->

</rfc>
