<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.11 (Ruby 3.2.4) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-lamps-csr-attestation-09" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.21.0 -->
  <front>
    <title abbrev="Remote Attestation with CSRs">Use of Remote Attestation with Certification Signing Requests</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-lamps-csr-attestation-09"/>
    <author initials="M." surname="Ounsworth" fullname="Mike Ounsworth">
      <organization abbrev="Entrust">Entrust Limited</organization>
      <address>
        <postal>
          <street>2500 Solandt Road – Suite 100</street>
          <city>Ottawa, Ontario</city>
          <code>K2K 3G5</code>
          <country>Canada</country>
        </postal>
        <email>mike.ounsworth@entrust.com</email>
      </address>
    </author>
    <author initials="H." surname="Tschofenig" fullname="Hannes Tschofenig">
      <organization>Siemens</organization>
      <address>
        <email>Hannes.Tschofenig@gmx.net</email>
      </address>
    </author>
    <author initials="H." surname="Birkholz" fullname="Henk Birkholz">
      <organization abbrev="Fraunhofer SIT">Fraunhofer SIT</organization>
      <address>
        <postal>
          <street>Rheinstrasse 75</street>
          <city>Darmstadt</city>
          <code>64295</code>
          <country>Germany</country>
        </postal>
        <email>henk.birkholz@sit.fraunhofer.de</email>
      </address>
    </author>
    <author initials="M." surname="Wiseman" fullname="Monty Wiseman">
      <organization>Beyond Identity</organization>
      <address>
        <postal>
          <country>USA</country>
        </postal>
        <email>monty.wiseman@beyondidentity.com</email>
      </address>
    </author>
    <date year="2024" month="May" day="10"/>
    <keyword>PKI</keyword>
    <keyword>PKCS#10</keyword>
    <keyword>CRMF</keyword>
    <keyword>Attestation</keyword>
    <keyword>Evidence</keyword>
    <keyword>Certificate Signing Requests</keyword>
    <abstract>
      <?line 102?>

<t>A PKI end entity requesting a certificate from a Certification Authority (CA) may wish to offer believable claims about the protections afforded to the corresponding private key, such as whether the private key resides on a hardware security module or the protection capabilities provided by the hardware.</t>
      <t>This document defines a new PKCS#10 attribute attr-evidence and CRMF extension ext-evidence that allows placing any Evidence data, in any pre-existing format, along with any certificates needed to validate it, into a PKCS#10 or CRMF CSR.</t>
      <t>Including Evidence along with a CSR can help to improve the assessment of the security posture for the private key, and the trustworthiness properties of the submitted key to the requested certificate profile. These Evidence Claims can include information about the hardware component's manufacturer, the version of installed or running firmware, the version of software installed or running in layers above the firmware, or the presence of hardware components providing specific protection capabilities or shielded locations (e.g., to protect keys).</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://lamps-wg.github.io/csr-attestation/draft-ounsworth-csr-attestation.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ietf-lamps-csr-attestation/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/lamps-wg/csr-attestation"/>.</t>
    </note>
  </front>
  <middle>
    <?line 111?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>When requesting a certificate from a Certification Authority (CA), a PKI end entity may wish to include Evidence of the security properties of its environments in which the private keys are stored in that request.
This Evidence can be appraised by authoritative entities, such as a Registration Authority (RA) or a CA, or associated trusted Verifiers as part of validating an incoming certificate request against given certificate policies. Regulatory bodies are beginning to require proof-of-hardware residency for certain classifications of cryptographic keys. At the time of writing, the most notable example is the Code-Signing Baseline Requirements <xref target="CSBR"/> document maintained by the CA/Browser Forum, which requires compliant CAs to "ensure that a Subscriber’s Private Key is generated, stored,
and used in a secure environment that has controls to prevent theft or misuse".</t>
      <t>This specification defines an attribute and an extension that allow for conveyance of Evidence in Certificate Signing Requests (CSRs) in either PKCS#10 <xref target="RFC2986"/> or Certificate Request Message Format (CRMF) <xref target="RFC4211"/> payloads which provides an elegant and automatable mechanism for meeting requirements such as those in the CA/B Forum's <xref target="CSBR"/>.</t>
      <t>As outlined in the RATS Architecture <xref target="RFC9334"/>, an Attester (typically
a device) produces a signed collection of Claims that constitutes Evidence about its running environment.
While the term "attestation" is not defined in RFC 9334, it was later defined in <xref target="I-D.ietf-rats-tpm-based-network-device-attest"/>, it refers to the activity of producing and appraising remote attestation Evidence.
A Relying Party may consult an Attestation Result produced by a Verifier that has appraised the Evidence in making policy decisions about the trustworthiness of the
Target Environment being assessed via appraisal of Evidence. <xref target="architecture"/> provides the basis to illustrate in this document how the various roles
in the RATS architecture map to a certificate requester and a CA/RA.</t>
      <t>At the time of writing, several standard and several proprietary attestation technologies
are in use.
This specification thereby is intended to be as technology-agnostic as it is feasible with respect to implemented remote attestation technologies. Instead, it focuses on (1) the conveyance of Evidence via CSRs while making minimal assumptions about content or format of the transported Evidence and (2) the conveyance of sets of certificates used for validation of Evidence.
The certificates typically contain one or more certification paths
rooted in a device manufacture trust anchor and the leaf certificate being
on the device in question; the latter is the Attestation Key that signs the Evidence statement.</t>
      <t>This document specifies a CSR Attribute (or Extension for Certificate Request Message Format (CRMF) CSRs) for carrying Evidence. Evidence can be placed into an EvidenceStatement along with an OID to identify its type and optionally a hint to the Relying Party about which Verifier (software package) will be capable of parsing it. A set of EvidenceStatements may be grouped together along with the set of CertificateAlternatives needed to validate them to form a EvidenceBundle. One or more EvidenceBundles may be placed into the id-aa-evidence CSR Attribute (or CRFM Extension).</t>
      <t>A CSR may contain one or more Evidence payloads, for example Evidence
asserting the storage properties of a private key as well Evidence
asserting firmware version and other general properties
of the device, or Evidence signed using different cryptographic
algorithms.</t>
      <t>With these attributes, additional
information information is available to an RA or CA which may be used
to decide whether to issue a certificate and what certificate profile
to apply. The scope of this document is, however,
limited to the conveyance of Evidence within CSR. The exact format of the
Evidence being conveyed is defined in various standard and proprietary
specifications.</t>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <?line -18?>

<t>This document re-uses the terms defined in <xref target="RFC9334"/> related to remote
attestation. Readers of this document are assumed to be familiar with
the following terms: Evidence, Claim, Attestation Results (AR), Attester,
Verifier, Target Environment, Attesting Environment, and Relying Party (RP).</t>
      <t>The term "Certification Request" message is defined in <xref target="RFC2986"/>.
Specifications, such as <xref target="RFC7030"/>, later introduced the term
"Certificate Signing Request (CSR)" to refer to the Certification
Request message. While the term "Certification Signing Request"
would have been correct, the mistake was unnoticed. In the meanwhile
CSR is an abbreviation used beyond PKCS#10. Hence, it is equally
applicable to other protocols that use a different syntax and
even a different encoding, in particular this document also
considers Certificate Request Message Format (CRMF) <xref target="RFC4211"/>
to be "CSRs". We use the terms "CSR" and Certificate Request
message interchangeably.</t>
    </section>
    <section anchor="architecture">
      <name>Architecture</name>
      <t><xref target="fig-arch"/> shows the high-level communication pattern of the RATS
background check model where the Attester transmits the Evidence in the
CSR to the RA and the CA, which is subsequently forwarded to the Verifier.
The Verifier appraises the received Evidence and computes an Attestation
Result, which is then processed by the RA/CA prior to the certificate
issuance.</t>
      <t>In addition to the background check model the RATS architecture also
specifies the passport model and combinations. See Section 5.2 of
<xref target="RFC9334"/> for a description of the passport model. The passport model
requires the Attester to transmit Evidence to the Verifier directly in order
to obtain the Attestation Result, which is then forwarded to the Relying
Party. This specification utilizes the background model since CSRs are
often used as one-shot messages where no direct real-time interaction
between the Attester and the Verifier is possible.</t>
      <t>Note that the Verifier is a logical role that may be included in the
RA/CA product. In this case the Relying Party and Verifier collapse into a
single entity. The Verifier functionality can, however,
also be kept separate from the RA/CA functionality, such as a utility or
library provided by the device manufacturer. For example,
security concerns may require parsers of Evidence formats to be logically
or physically separated from the core CA functionality. The interface
by which the Relying Party passes Evidence to the Verifier and receives back
Attestation Results may be proprietary or standardized, but in any case is
out-of-scope for this document.</t>
      <figure anchor="fig-arch">
        <name>Architecture with Background Check Model.</name>
        <artset>
          <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="272" width="536" viewBox="0 0 536 272" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 8,176 L 8,240" fill="none" stroke="black"/>
              <path d="M 112,176 L 112,240" fill="none" stroke="black"/>
              <path d="M 240,32 L 240,96" fill="none" stroke="black"/>
              <path d="M 240,176 L 240,240" fill="none" stroke="black"/>
              <path d="M 280,104 L 280,192" fill="none" stroke="black"/>
              <path d="M 312,96 L 312,168" fill="none" stroke="black"/>
              <path d="M 352,32 L 352,96" fill="none" stroke="black"/>
              <path d="M 368,176 L 368,240" fill="none" stroke="black"/>
              <path d="M 240,32 L 352,32" fill="none" stroke="black"/>
              <path d="M 240,96 L 352,96" fill="none" stroke="black"/>
              <path d="M 8,176 L 112,176" fill="none" stroke="black"/>
              <path d="M 240,176 L 272,176" fill="none" stroke="black"/>
              <path d="M 288,176 L 368,176" fill="none" stroke="black"/>
              <path d="M 112,192 L 232,192" fill="none" stroke="black"/>
              <path d="M 248,192 L 280,192" fill="none" stroke="black"/>
              <path d="M 8,240 L 112,240" fill="none" stroke="black"/>
              <path d="M 240,240 L 368,240" fill="none" stroke="black"/>
              <polygon class="arrowhead" points="320,168 308,162.4 308,173.6" fill="black" transform="rotate(90,312,168)"/>
              <polygon class="arrowhead" points="288,104 276,98.4 276,109.6" fill="black" transform="rotate(270,280,104)"/>
              <polygon class="arrowhead" points="240,192 228,186.4 228,197.6" fill="black" transform="rotate(0,232,192)"/>
              <g class="text">
                <text x="392" y="52">Compare</text>
                <text x="460" y="52">Evidence</text>
                <text x="300" y="68">Verifier</text>
                <text x="392" y="68">against</text>
                <text x="388" y="84">policy</text>
                <text x="236" y="132">Evidence</text>
                <text x="368" y="132">Attestation</text>
                <text x="348" y="148">Result</text>
                <text x="408" y="196">Compare</text>
                <text x="488" y="196">Attestation</text>
                <text x="60" y="212">Attester</text>
                <text x="172" y="212">Evidence</text>
                <text x="280" y="212">Relying</text>
                <text x="404" y="212">Result</text>
                <text x="464" y="212">against</text>
                <text x="40" y="228">(/w</text>
                <text x="76" y="228">HSM)</text>
                <text x="148" y="228">in</text>
                <text x="176" y="228">CSR</text>
                <text x="272" y="228">Party</text>
                <text x="328" y="228">(RA/CA)</text>
                <text x="404" y="228">policy</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art"><![CDATA[
                              .-------------.
                              |             | Compare Evidence
                              |   Verifier  | against
                              |             | policy
                              '--------+----'
                                   ^   |
                          Evidence |   | Attestation
                                   |   | Result
                                   |   v
 .------------.               .----|----------.
 |            +-------------->|----'          | Compare Attestation
 |  Attester  |   Evidence    | Relying       | Result against
 |  (/w HSM)  |   in CSR      | Party (RA/CA) | policy
 '------------'               '---------------'
]]></artwork>
        </artset>
      </figure>
      <t>As discussed in RFC 9334, different security and privacy aspects need to be
considered. For example, Evidence may need to be protected against replay and
Section 10 of RFC 9334 lists approach for offering freshness. There are also
concerns about the exposure of persistent identifiers by utilizing attestation
technology, which are discussed in Section 11 of RFC 9334. Finally, the keying
material used by the Attester needs to be protected against unauthorized access,
and against signing arbitrary content that originated from outside the device.
This aspect is described in Section 12 of RFC 9334. Most of these aspects are,
however, outside the scope of this specification but relevant for use with a
given attestation technology. The focus of this specification is on the
transport of Evidence from the Attester to the Relying Party via existing
CSR messages.</t>
    </section>
    <section anchor="information-model">
      <name>Information Model</name>
      <section anchor="interaction-with-an-hsm">
        <name>Interaction with an HSM</name>
        <t>This specification is intended to be applicable both in cases where the CSR
is constructed internally or externally to the attesting environment, from the
point of view of the calling application.</t>
        <t>Cases where the CSR is generated internally to the attesting environment
are straightforward: the HSM generates and embeds the Evidence and the corresponding
certification paths when constructing the CSR.</t>
        <t>Cases where the CSR is generated externally may require extra round-trips of communication
between the CSR generator and the attesting environment, first to obtain
the necessary Evidence about the subject key, and then to use
the subject key to sign the CSR. For example, consider a CSR generated by
a popular crypto library about a subject key stored on a PKCS#11 <xref target="PKCS11"/> device.</t>
        <t>As an example, assuming that the HSM is, or contains, the attesting environment, and
some cryptographic library is assembling a CSR by interacting with the HSM over some
network protocol, then the interaction would conceptually be:</t>
        <figure anchor="fig-csr-client-p11">
          <name>Example interaction between CSR generator and HSM.</name>
          <artset>
            <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="320" width="384" viewBox="0 0 384 320" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 8,176 L 8,208" fill="none" stroke="black"/>
                <path d="M 160,32 L 160,80" fill="none" stroke="black"/>
                <path d="M 184,176 L 184,208" fill="none" stroke="black"/>
                <path d="M 200,88 L 200,304" fill="none" stroke="black"/>
                <path d="M 240,32 L 240,80" fill="none" stroke="black"/>
                <path d="M 328,32 L 328,80" fill="none" stroke="black"/>
                <path d="M 352,88 L 352,304" fill="none" stroke="black"/>
                <path d="M 376,32 L 376,80" fill="none" stroke="black"/>
                <path d="M 160,32 L 240,32" fill="none" stroke="black"/>
                <path d="M 328,32 L 376,32" fill="none" stroke="black"/>
                <path d="M 160,80 L 240,80" fill="none" stroke="black"/>
                <path d="M 328,80 L 376,80" fill="none" stroke="black"/>
                <path d="M 208,128 L 344,128" fill="none" stroke="black"/>
                <path d="M 208,160 L 344,160" fill="none" stroke="black"/>
                <path d="M 8,176 L 184,176" fill="none" stroke="black"/>
                <path d="M 8,208 L 184,208" fill="none" stroke="black"/>
                <path d="M 208,256 L 344,256" fill="none" stroke="black"/>
                <path d="M 208,288 L 344,288" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="352,256 340,250.4 340,261.6" fill="black" transform="rotate(0,344,256)"/>
                <polygon class="arrowhead" points="352,128 340,122.4 340,133.6" fill="black" transform="rotate(0,344,128)"/>
                <polygon class="arrowhead" points="216,288 204,282.4 204,293.6" fill="black" transform="rotate(180,208,288)"/>
                <polygon class="arrowhead" points="216,160 204,154.4 204,165.6" fill="black" transform="rotate(180,208,160)"/>
                <g class="text">
                  <text x="196" y="52">Crypto</text>
                  <text x="352" y="52">HSM</text>
                  <text x="200" y="68">Library</text>
                  <text x="264" y="116">getEvidence()</text>
                  <text x="32" y="196">CSR</text>
                  <text x="56" y="196">=</text>
                  <text x="120" y="196">assembleCSR()</text>
                  <text x="192" y="196">-</text>
                  <text x="248" y="244">sign(CSR)</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![CDATA[
                   +---------+          +-----+
                   | Crypto  |          | HSM |
                   | Library |          |     |
                   +---------+          +-----+
                        |                  |
                        | getEvidence()    |
                        |----------------->|
                        |                  |
                        |<-----------------|
+---------------------+ |                  |
| CSR = assembleCSR() |-|                  |
+---------------------+ |                  |
                        |                  |
                        | sign(CSR)        |
                        |----------------->|
                        |                  |
                        |<-----------------|
                        |                  |
]]></artwork>
          </artset>
        </figure>
      </section>
      <section anchor="implementation-strategies">
        <name>Implementation Strategies</name>
        <t>To support a number of different use cases for the transmission of
Evidence in a CSR (together with certification paths) the structure
shown in <xref target="fig-info-model"/> is used.</t>
        <t>On a high-level, the structure can be explained as follows:
A PKCS#10 attribute or a CRMF extension contains one or more
EvidenceBundle structures. Each EvidenceBundle contains one or more
EvidenceStatement structures as well as one or more
CertificateAlternatives which enable to carry various format of
certificates.</t>
        <figure anchor="fig-info-model">
          <name>Information Model for CSR Evidence Conveyance.</name>
          <artset>
            <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="368" width="488" viewBox="0 0 488 368" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 8,32 L 8,96" fill="none" stroke="black"/>
                <path d="M 8,256 L 8,288" fill="none" stroke="black"/>
                <path d="M 80,96 L 80,256" fill="none" stroke="black"/>
                <path d="M 160,144 L 160,256" fill="none" stroke="black"/>
                <path d="M 176,32 L 176,96" fill="none" stroke="black"/>
                <path d="M 176,256 L 176,288" fill="none" stroke="black"/>
                <path d="M 272,128 L 272,224" fill="none" stroke="black"/>
                <path d="M 272,256 L 272,336" fill="none" stroke="black"/>
                <path d="M 432,256 L 432,336" fill="none" stroke="black"/>
                <path d="M 480,128 L 480,224" fill="none" stroke="black"/>
                <path d="M 8,32 L 176,32" fill="none" stroke="black"/>
                <path d="M 8,96 L 176,96" fill="none" stroke="black"/>
                <path d="M 272,128 L 480,128" fill="none" stroke="black"/>
                <path d="M 160,144 L 272,144" fill="none" stroke="black"/>
                <path d="M 272,160 L 480,160" fill="none" stroke="black"/>
                <path d="M 272,224 L 480,224" fill="none" stroke="black"/>
                <path d="M 8,256 L 176,256" fill="none" stroke="black"/>
                <path d="M 272,256 L 432,256" fill="none" stroke="black"/>
                <path d="M 176,272 L 272,272" fill="none" stroke="black"/>
                <path d="M 8,288 L 176,288" fill="none" stroke="black"/>
                <path d="M 272,288 L 432,288" fill="none" stroke="black"/>
                <path d="M 272,336 L 432,336" fill="none" stroke="black"/>
                <g class="text">
                  <text x="56" y="52">PKCS#10</text>
                  <text x="100" y="52">or</text>
                  <text x="132" y="52">CRMF</text>
                  <text x="64" y="68">Attribute</text>
                  <text x="116" y="68">or</text>
                  <text x="64" y="84">Extension</text>
                  <text x="180" y="132">(1</text>
                  <text x="204" y="132">or</text>
                  <text x="240" y="132">more)</text>
                  <text x="376" y="148">CertificateAlternatives</text>
                  <text x="328" y="180">Certificate</text>
                  <text x="388" y="180">OR</text>
                  <text x="320" y="196">TypedCert</text>
                  <text x="388" y="196">OR</text>
                  <text x="336" y="212">TypedFlatCert</text>
                  <text x="28" y="228">(1</text>
                  <text x="52" y="228">or</text>
                  <text x="48" y="244">more)</text>
                  <text x="220" y="244">(1</text>
                  <text x="244" y="244">or</text>
                  <text x="240" y="260">more)</text>
                  <text x="84" y="276">EvidenceBundle</text>
                  <text x="352" y="276">EvidenceStatement</text>
                  <text x="300" y="308">Type</text>
                  <text x="320" y="324">Statement</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![CDATA[
 +--------------------+
 |  PKCS#10 or CRMF   |
 |  Attribute or      |
 |  Extension         |
 +--------+-----------+
          |
          |           (1 or more) +-------------------------+
          |         +-------------+ CertificateAlternatives |
          |         |             +-------------------------+
          |         |             | Certificate OR          |
          |         |             | TypedCert   OR          |
          |         |             | TypedFlatCert           |
   (1 or  |         |             +-------------------------+
    more) |         |      (1 or
 +--------+---------+-+     more) +-------------------+
 |  EvidenceBundle    +-----------+ EvidenceStatement |
 +--------------------+           +-------------------+
                                  | Type              |
                                  | Statement         |
                                  +-------------------+
]]></artwork>
          </artset>
        </figure>
        <t>The following use cases are supported:</t>
        <t>Single Attester, which only distributes Evidence without any certification paths,
i.e. the Verifier is assumed to be in possession of the certification paths already
or there is no certification paths because the Verifier directly trusts the Attester key.
As a result a single EvidenceBundle is included
in a CSR that contains a single EvidenceStatement without the CertificateAlternatives
structure. <xref target="fig-single-attester"/> shows this use case.</t>
        <figure anchor="fig-single-attester">
          <name>Use Case 1: Single Attester without Certification Path.</name>
          <artset>
            <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="128" width="184" viewBox="0 0 184 128" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 8,32 L 8,96" fill="none" stroke="black"/>
                <path d="M 176,32 L 176,96" fill="none" stroke="black"/>
                <path d="M 8,32 L 176,32" fill="none" stroke="black"/>
                <path d="M 8,64 L 176,64" fill="none" stroke="black"/>
                <path d="M 8,96 L 176,96" fill="none" stroke="black"/>
                <g class="text">
                  <text x="84" y="52">EvidenceBundle</text>
                  <text x="88" y="84">EvidenceStatement</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![CDATA[
  +--------------------+
  |  EvidenceBundle    |
  +--------------------+
  | EvidenceStatement  |
  +--------------------+
]]></artwork>
          </artset>
        </figure>
        <t>A single Attester, which shares Evidence together with a certification path.
The CSR conveys a single EvidenceBundle with a single EvidenceStatement
and a single CertificateAlternatives structure. <xref target="fig-single-attester-with-path"/> shows
this use case.</t>
        <figure anchor="fig-single-attester-with-path">
          <name>Use Case 2: Single Attester with Certification Path.</name>
          <artset>
            <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="144" width="224" viewBox="0 0 224 144" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 8,32 L 8,112" fill="none" stroke="black"/>
                <path d="M 216,32 L 216,112" fill="none" stroke="black"/>
                <path d="M 8,32 L 216,32" fill="none" stroke="black"/>
                <path d="M 8,64 L 216,64" fill="none" stroke="black"/>
                <path d="M 8,112 L 216,112" fill="none" stroke="black"/>
                <g class="text">
                  <text x="84" y="52">EvidenceBundle</text>
                  <text x="88" y="84">EvidenceStatement</text>
                  <text x="112" y="100">CertificateAlternatives</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![CDATA[
 +-------------------------+
 |  EvidenceBundle         |
 +-------------------------+
 | EvidenceStatement       |
 | CertificateAlternatives |
 +-------------------------+
]]></artwork>
          </artset>
        </figure>
        <t>In a Composite Device, which contains multiple Attesters, a collection of Evidence
statements is obtained. Imagine that each Attester returns its Evidence together with a
certification path. As a result, multiple EvidenceBundle structures, each carrying
an EvidenceStatement and the corresponding CertificateAlternative structure with the
certification path as provided by each Attester, are included in the CSR.
This may result in certificates being duplicated across multiple EvidenceBundles.
This approach does not require any processing capabilities
by a lead Attester since the information is merely forwarded. <xref target="fig-multiple-attesters"/>
shows this use case.</t>
        <figure anchor="fig-multiple-attesters">
          <name>Use Case 3: Multiple Attesters in Composite Device.</name>
          <artset>
            <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="224" width="336" viewBox="0 0 336 224" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 8,32 L 8,192" fill="none" stroke="black"/>
                <path d="M 216,32 L 216,192" fill="none" stroke="black"/>
                <path d="M 8,32 L 216,32" fill="none" stroke="black"/>
                <path d="M 8,64 L 216,64" fill="none" stroke="black"/>
                <path d="M 8,112 L 216,112" fill="none" stroke="black"/>
                <path d="M 8,144 L 216,144" fill="none" stroke="black"/>
                <path d="M 8,192 L 216,192" fill="none" stroke="black"/>
                <path d="M 216,112 L 236,152" fill="none" stroke="black"/>
                <path d="M 216,32 L 236,72" fill="none" stroke="black"/>
                <path d="M 216,112 L 236,72" fill="none" stroke="black"/>
                <path d="M 216,192 L 236,152" fill="none" stroke="black"/>
                <g class="text">
                  <text x="84" y="52">EvidenceBundle</text>
                  <text x="160" y="52">(1)</text>
                  <text x="276" y="68">Provided</text>
                  <text x="324" y="68">by</text>
                  <text x="88" y="84">EvidenceStatement</text>
                  <text x="276" y="84">Attester</text>
                  <text x="320" y="84">1</text>
                  <text x="112" y="100">CertificateAlternatives</text>
                  <text x="84" y="132">EvidenceBundle</text>
                  <text x="160" y="132">(2)</text>
                  <text x="276" y="148">Provided</text>
                  <text x="324" y="148">by</text>
                  <text x="88" y="164">EvidenceStatement</text>
                  <text x="276" y="164">Attester</text>
                  <text x="320" y="164">2</text>
                  <text x="112" y="180">CertificateAlternatives</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![CDATA[
  +-------------------------+
  |  EvidenceBundle (1)     |\
  +-------------------------+ \ Provided by
  | EvidenceStatement       | / Attester 1
  | CertificateAlternatives |/
  +-------------------------+
  |  EvidenceBundle (2)     |\
  +-------------------------+ \ Provided by
  | EvidenceStatement       | / Attester 2
  | CertificateAlternatives |/
  +-------------------------+
]]></artwork>
          </artset>
        </figure>
        <t>In the last scenario, we also assume a Composite Device with additional processing
capabilities of the Leader Attester, which parses the certification path provided by
all Attesters in the device and removes redundant certificate information. The
benefit of this approach is the reduced transmission overhead. There are several
implementation strategies and we show two in <xref target="fig-multiple-attesters-optimized"/>.</t>
        <figure anchor="fig-multiple-attesters-optimized">
          <name>Use Case 4: Multiple Attesters in Composite Device (with Optimization).</name>
          <artset>
            <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="544" width="472" viewBox="0 0 472 544" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 16,320 L 16,528" fill="none" stroke="black"/>
                <path d="M 144,64 L 144,144" fill="none" stroke="black"/>
                <path d="M 144,176 L 144,256" fill="none" stroke="black"/>
                <path d="M 264,320 L 264,528" fill="none" stroke="black"/>
                <path d="M 352,64 L 352,144" fill="none" stroke="black"/>
                <path d="M 352,176 L 352,256" fill="none" stroke="black"/>
                <path d="M 144,64 L 352,64" fill="none" stroke="black"/>
                <path d="M 144,96 L 352,96" fill="none" stroke="black"/>
                <path d="M 112,128 L 136,128" fill="none" stroke="black"/>
                <path d="M 144,144 L 352,144" fill="none" stroke="black"/>
                <path d="M 144,176 L 352,176" fill="none" stroke="black"/>
                <path d="M 144,208 L 352,208" fill="none" stroke="black"/>
                <path d="M 112,240 L 136,240" fill="none" stroke="black"/>
                <path d="M 144,256 L 352,256" fill="none" stroke="black"/>
                <path d="M 16,320 L 264,320" fill="none" stroke="black"/>
                <path d="M 16,352 L 264,352" fill="none" stroke="black"/>
                <path d="M 16,528 L 264,528" fill="none" stroke="black"/>
                <path d="M 352,176 L 372,216" fill="none" stroke="black"/>
                <path d="M 352,64 L 372,104" fill="none" stroke="black"/>
                <path d="M 352,144 L 372,104" fill="none" stroke="black"/>
                <path d="M 352,256 L 372,216" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="144,240 132,234.4 132,245.6" fill="black" transform="rotate(0,136,240)"/>
                <polygon class="arrowhead" points="144,128 132,122.4 132,133.6" fill="black" transform="rotate(0,136,128)"/>
                <g class="text">
                  <text x="60" y="36">Implementation</text>
                  <text x="156" y="36">strategy</text>
                  <text x="212" y="36">(4a)</text>
                  <text x="220" y="84">EvidenceBundle</text>
                  <text x="296" y="84">(1)</text>
                  <text x="72" y="100">Certification</text>
                  <text x="412" y="100">Provided</text>
                  <text x="460" y="100">by</text>
                  <text x="36" y="116">Path</text>
                  <text x="64" y="116">+</text>
                  <text x="224" y="116">EvidenceStatement</text>
                  <text x="412" y="116">Attester</text>
                  <text x="456" y="116">1</text>
                  <text x="60" y="132">End-Entity</text>
                  <text x="248" y="132">CertificateAlternatives</text>
                  <text x="64" y="148">Certificate</text>
                  <text x="228" y="164">....</text>
                  <text x="220" y="196">EvidenceBundle</text>
                  <text x="296" y="196">(n)</text>
                  <text x="412" y="212">Provided</text>
                  <text x="460" y="212">by</text>
                  <text x="60" y="228">End-Entity</text>
                  <text x="224" y="228">EvidenceStatement</text>
                  <text x="412" y="228">Attester</text>
                  <text x="456" y="228">n</text>
                  <text x="64" y="244">Certificate</text>
                  <text x="248" y="244">CertificateAlternatives</text>
                  <text x="60" y="292">Implementation</text>
                  <text x="156" y="292">strategy</text>
                  <text x="212" y="292">(4b)</text>
                  <text x="92" y="340">EvidenceBundle</text>
                  <text x="96" y="372">EvidenceStatement</text>
                  <text x="184" y="372">(1)</text>
                  <text x="96" y="388">...</text>
                  <text x="96" y="404">EvidenceStatement</text>
                  <text x="184" y="404">(n)</text>
                  <text x="120" y="420">CertificateAlternatives</text>
                  <text x="224" y="420">{</text>
                  <text x="56" y="436">End</text>
                  <text x="100" y="436">Entity</text>
                  <text x="176" y="436">Certificate</text>
                  <text x="240" y="436">(1)</text>
                  <text x="96" y="452">...</text>
                  <text x="56" y="468">End</text>
                  <text x="100" y="468">Entity</text>
                  <text x="176" y="468">Certificate</text>
                  <text x="240" y="468">(n)</text>
                  <text x="84" y="484">&lt;Remainder</text>
                  <text x="140" y="484">of</text>
                  <text x="168" y="484">the</text>
                  <text x="104" y="500">Certification</text>
                  <text x="184" y="500">Path&gt;</text>
                  <text x="32" y="516">}</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![CDATA[
Implementation strategy (4a)

                 +-------------------------+
                 |  EvidenceBundle (1)     |\
  Certification  +-------------------------+ \ Provided by
  Path +         | EvidenceStatement       | / Attester 1
  End-Entity --->| CertificateAlternatives |/
  Certificate    +-------------------------+
                          ....
                 +-------------------------+
                 |  EvidenceBundle (n)     |\
                 +-------------------------+ \ Provided by
  End-Entity     | EvidenceStatement       | / Attester n
  Certificate--->| CertificateAlternatives |/
                 +-------------------------+

Implementation strategy (4b)

 +------------------------------+
 |  EvidenceBundle              |
 +------------------------------+
 | EvidenceStatement (1)        |
 |        ...                   |
 | EvidenceStatement (n)        |
 | CertificateAlternatives {    |
 |   End Entity Certificate (1) |
 |        ...                   |
 |   End Entity Certificate (n) |
 |   <Remainder of the          |
 |    Certification Path>       |
 | }                            |
 +------------------------------+
]]></artwork>
          </artset>
        </figure>
        <t>In implementation strategy (4a) we assume that each Attester is provisioned with
a unique end-entity certificate. Hence, the certification path will at least differ
with respect to the end-entity certificates.
The Lead Attester will therefore create multiple EvidenceBundle structures, each
will carry an EvidenceStatement followed by a certification path in
the CertificateAlternative structures containing most likely only the end-entity
certificate. The shared certification path is carried in the first entry of the
EvidenceBundle sequence to allow path validation to take place immediately after
processing the first structure. This implementation strategy may
place extra burden on the Relying Party to parse EvidenceBundles and
reconstruct certification path if the Verifier requires each
EvidenceStatement to be accompanied with a complete certification path.</t>
        <t>Implementation strategy (4b), as an alternative, requires the Lead Attester
to merge all certification paths into a single EvidenceBundle containing a single
de-duplicated sequence of CertificateAlternatives structures. This means that each
EvidenceBundle is self-contained and any EvidenceStatement can be verified using
only the sequence of CertificateAlternatives in its bundle, but Verifiers will have
to do proper certification path building since the sequence of CertificateAlternatives
is now a cert bag and not a certification path. This implementation strategy may
place extra burden on the Attester in order to allow the Relying Party
to treat the Evidence and Certificates as opaque content. It also may place
extra burden on the Verifier since this implementation strategy requires it to be able to
perform X.509 path building over a bag of certificates that may be out of
order or contain extraneous certificates.</t>
        <t>Note: This specification does not mandate optimizing certification path since
there is a trade-off between the Attester implementation complexity and the
transmission overhead.</t>
      </section>
    </section>
    <section anchor="asn1-elements">
      <name>ASN.1 Elements</name>
      <section anchor="object-identifiers">
        <name>Object Identifiers</name>
        <t>We reference <tt>id-pkix</tt> and <tt>id-aa</tt>, both defined in <xref target="RFC5912"/>.</t>
        <t>We define:</t>
        <artwork><![CDATA[
-- Arc for Evidence types
id-ata OBJECT IDENTIFIER ::= { id-pkix (TBD1) }
]]></artwork>
      </section>
      <section anchor="sec-evidenceAttr">
        <name>Evidence Attribute and Extension</name>
        <t>By definition, Attributes within a PKCS#10 CSR are
typed as ATTRIBUTE and within a CRMF CSR are typed as EXTENSION.
This attribute definition contains one or more
Evidence bundles of type <tt>EvidenceBundle</tt> which each contain
one or more Evidence statements of a type <tt>EvidenceStatement</tt> along with
an optional certification path.
This structure allows for grouping Evidence statements that share a
certification path.</t>
        <artwork><![CDATA[
EVIDENCE-STATEMENT ::= TYPE-IDENTIFIER

EvidenceStatementSet EVIDENCE-STATEMENT ::= {
   ... -- None defined in this document --
}
]]></artwork>
        <t>This is a mapping and ASN.1 Types for Evidence Statements to the OIDs
that identify them. These mappings are are used to construct
or parse EvidenceStatements. These would typically be Evidence Statement
formats defined in other IETF standards, defined by other standards bodies,
or vendor proprietary formats along with the OIDs that identify them.</t>
        <t>This list is left empty in this document. However, implementers should
populate it with the formats that they wish to support.</t>
        <artwork><![CDATA[
EvidenceStatements ::= SEQUENCE SIZE (1..MAX) OF EvidenceStatement

EvidenceStatement ::= SEQUENCE {
   type   EVIDENCE-STATEMENT.&id({EvidenceStatementSet}),
   stmt   EVIDENCE-STATEMENT.&Type({EvidenceStatementSet}{@type}),
   hint   UTF8String OPTIONAL
}
]]></artwork>
        <t>The type is on OID indicating the format of the data contained in stmt.</t>
        <t>The Attester <bcp14>MAY</bcp14> populate the hint with the name of a Verifier software package
which will be capable of parsing the data contained in <tt>EvidenceStatement.stmt</tt>;
this is to help the Relying Party select the correct Verifier without requiring
the Relying Party to perform any parsing of the data in <tt>EvidenceStatement.stmt</tt>.
The type OID, which identifies the format of the data found in the evidence statement,
will sometimes be sufficient for a Relying Party to select the correct
Verifier (software) to invoke, however in some cases the Relying Party
may have more than one Verifier capable of parsing a given type OID -- for
example if the OID indicates a wrapper format such as DICE
ConceptualMessageWrapper which will contain further proprietary data.
A design goal of this specification is that Relying Parties be able to
select the correct Verifier (software) without needing to perform any
parsing of the <tt>EvidenceStatement.stmt</tt> data.
To help with this, the Attester <bcp14>MAY</bcp14> populate the hint with the name of a
software package that will be capable of parsing this data.
The hint <bcp14>SHOULD</bcp14> contain a value which is unique
to this Verifier, such as a fully qualified domain name (FQDN), a uniform
resource name (URN) <xref target="RFC8141"/> or a registered value corresponding to this
evidence format.
It is assumed that the RP must be pre-configured with a list of trusted
Verifiers and that the contents of this hint can be used to look up
the correct Verifier. Under no circumstances must the RP be tricked into
contacting an unknown and untrusted Verifier since the returned Attestation
Result must not be relied on.</t>
        <t>Usage of the hint field can be seen in the TPM2_attest example in
<xref target="appdx-tpm2"/> where the type OID indicates the OID
id-TcgAttestCertify, while the hint indicates the the Verifier software
"tpmverifier.example.com" should be invoked for parsing it.</t>
        <artwork><![CDATA[
EvidenceBundles ::= SEQUENCE SIZE (1..MAX) OF EvidenceBundle

EvidenceBundle ::= SEQUENCE
{
  evidence EvidenceStatements,
  certs SEQUENCE SIZE (1..MAX) OF CertificateAlternatives OPTIONAL
}

id-aa-evidence OBJECT IDENTIFIER ::= { id-aa TBDAA }

-- For PKCS#10
attr-evidence ATTRIBUTE ::= {
  TYPE EvidenceBundles
  IDENTIFIED BY id-aa-evidence
}

-- For CRMF
ext-evidence EXTENSION ::= {
  SYNTAX EvidenceBundles
  IDENTIFIED BY id-aa-evidence
}
]]></artwork>
        <t>The Extension variant is intended only for use within CRMF CSRs and <bcp14>MUST NOT</bcp14> be used within X.509 certificates due to the privacy implications of publishing Evidence about the end entity's hardware environment. See <xref target="security-considerations"/> for more discussion.</t>
        <t>The <tt>certs</tt> contains a set of certificates that
may be needed to validate the contents of an Evidence statement
contained in <tt>evidence</tt>. The set of certificates should contain
the object that contains the public key needed to directly validate the
<tt>evidence</tt>. The remaining elements should chain that data back to
an agreed upon trust anchor used for attestation. No order is implied, it is
up to the Attester and its Verifier to agree on both the order and format
of certificates contained in <tt>certs</tt>.</t>
        <t>A CSR <bcp14>MAY</bcp14> contain one or more instances of <tt>attr-evidence</tt> or <tt>ext-evidence</tt>.
This means that the <tt>SEQUENCE OF EvidenceBundle</tt> is redundant with the
ability to carry multiple <tt>attr-evidence</tt> or <tt>ext-evidence</tt> at the CSR level;
either mechanism <bcp14>MAY</bcp14> be used for carrying multiple Evidence bundles.</t>
      </section>
      <section anchor="certificatealternatives">
        <name>CertificateAlternatives</name>
        <t>This is an ASN.1 CHOICE construct used to represent an encoding of a
broad variety of certificate types.</t>
        <artwork><![CDATA[
CertificateAlternatives ::=
   CHOICE {
      cert              Certificate,
                           -- Using the Certificate ASN.1
                           -- structure as defined in RFC 5280.
      typedCert     [0] TypedCert,
      typedFlatCert [1] TypedFlatCert,
      ...
   }
]]></artwork>
        <t>"Certificate" is a standard X.509 certificate that <bcp14>MUST</bcp14> be compliant
with RFC 5280.
Enforcement of this constraint is left to the relying
parties.</t>
        <t>"TypedCert" is an ASN.1 construct that has the characteristics of a
certificate, but is not encoded as an X.509 certificate.  The
certType Field (below) indicates how to interpret the certBody field.  While
it is possible to carry any type of data in this structure, it's
intended the content field include data for at least one public key
formatted as a SubjectPublicKeyInfo (see <xref target="RFC5912"/>).</t>
        <artwork><![CDATA[
TYPED-CERT ::= TYPE-IDENTIFIER

CertType ::= TYPED-CERT.&id

TypedCert ::= SEQUENCE {
              certType     TYPED-CERT.&id({TypedCertSet}),
              content     TYPED-CERT.&Type ({TypedCertSet}{@certType})
          }

TypedCertSet TYPED-CERT ::= {
   ... -- None defined in this document --
      }
]]></artwork>
        <t>"TypedFlatCert" is a certificate that does not have a valid ASN.1
encoding.
These are often compact or implicit certificates used by smart cards.
certType indicates the format of the data in the
certBody field, and ideally refers to a published specification.</t>
        <artwork><![CDATA[
TypedFlatCert ::= SEQUENCE {
    certType OBJECT IDENTIFIER,
    certBody OCTET STRING
}
]]></artwork>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>IANA is requested to open two new registries, allocate a value
from the "SMI Security for PKIX Module Identifier" registry for the
included ASN.1 module, and allocate values from "SMI Security for
S/MIME Attributes" to identify two Attributes defined within.</t>
      <section anchor="module-registration-smi-security-for-pkix-module-identifier">
        <name>Module Registration - SMI Security for PKIX Module Identifier</name>
        <ul spacing="normal">
          <li>
            <t>Decimal: IANA Assigned - <strong>Replace TBDMOD</strong></t>
          </li>
          <li>
            <t>Description: CSR-ATTESTATION-2023 - id-mod-pkix-attest-01</t>
          </li>
          <li>
            <t>References: This Document</t>
          </li>
        </ul>
      </section>
      <section anchor="object-identifier-registrations-smi-security-for-smime-attributes">
        <name>Object Identifier Registrations - SMI Security for S/MIME Attributes</name>
        <ul spacing="normal">
          <li>
            <t>Evidence Statement
            </t>
            <ul spacing="normal">
              <li>
                <t>Decimal: IANA Assigned - Replace <strong>TBDAA</strong></t>
              </li>
              <li>
                <t>Description: id-aa-evidence</t>
              </li>
              <li>
                <t>References: This Document</t>
              </li>
            </ul>
          </li>
        </ul>
      </section>
      <section anchor="smi-security-for-pkix-evidence-statement-formats-registry">
        <name>"SMI Security for PKIX Evidence Statement Formats" Registry</name>
        <t>IANA is asked to create a registry for Evidence Statement Formats within
the SMI-numbers registry, allocating an assignment from id-pkix ("SMI
Security for PKIX" Registry) for the purpose.</t>
        <ul spacing="normal">
          <li>
            <t>Decimal: IANA Assigned - <strong>replace TBD1</strong></t>
          </li>
          <li>
            <t>Description: id-ata</t>
          </li>
          <li>
            <t>References: This document</t>
          </li>
          <li>
            <t>Initial contents: None</t>
          </li>
          <li>
            <t>Registration Regime: Specification Required.
Document must specify an EVIDENCE-STATEMENT definition to which this
Object Identifier shall be bound.</t>
          </li>
        </ul>
        <t>Columns:</t>
        <ul spacing="normal">
          <li>
            <t>Decimal: The subcomponent under id-ata</t>
          </li>
          <li>
            <t>Description: Begins with id-ata</t>
          </li>
          <li>
            <t>References: RFC or other document</t>
          </li>
        </ul>
      </section>
      <section anchor="attestation-evidence-oid-registry">
        <name>Attestation Evidence OID Registry</name>
        <t>IANA is asked to create a registry that helps developers to find
OID/Evidence mappings.</t>
        <t>Registration requests are evaluated using the criteria described in
the registration template below after a three-week review period on
the [[TBD]] mailing list, with the advice of one or more Designated
Experts <xref target="RFC8126"/>.  However, to allow for the allocation of values
prior to publication, the Designated Experts may approve registration
once they are satisfied that such a specification will be published.</t>
        <t>Registration requests sent to the mailing list for review should use
an appropriate subject (e.g., "Request to register attestation
evidence: example").</t>
        <t>IANA must only accept registry updates from the Designated Experts
and should direct all requests for registration to the review mailing
list.</t>
        <section anchor="registration-template">
          <name>Registration Template</name>
          <t>The registry has the following columns:</t>
          <ul spacing="normal">
            <li>
              <t>OID: The OID number, which has already been allocated. IANA does
not allocate OID numbers for use with this registry.</t>
            </li>
            <li>
              <t>Description: Brief description of the use of the Evidence and the
registration of the OID.</t>
            </li>
            <li>
              <t>Reference(s): Reference to the document or documents that register
the OID for use with a specific attestation technology, preferably
including URIs that can be used to retrieve copies of the documents.
An indication of the relevant sections may also be included but is not
required.</t>
            </li>
            <li>
              <t>Change Controller: For Standards Track RFCs, list the "IESG".  For
others, give the name of the responsible party. In most cases the
third party requesting registration in this registry will also be the
party that registered the OID.</t>
            </li>
          </ul>
        </section>
        <section anchor="initial-registry-contents">
          <name>Initial Registry Contents</name>
          <t>The initial registry contents is shown in the table below.
It lists entries for several evidence encodings including an entry for the Conceptual Message Wrapper (CMW) <xref target="I-D.ietf-rats-msg-wrap"/>.</t>
          <table anchor="tab-ae-reg">
            <name>Initial Contents of the Attestation Evidence OID Registry</name>
            <thead>
              <tr>
                <th align="left">OID</th>
                <th align="left">Description</th>
                <th align="left">Reference(s)</th>
                <th align="left">Change Controller</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">2 23 133 5 4 1</td>
                <td align="left">DiceTcbInfo</td>
                <td align="left">
                  <xref target="TCGDICE1.1"/></td>
                <td align="left">TCG</td>
              </tr>
              <tr>
                <td align="left">2 23 133 5 4 5</td>
                <td align="left">DiceMultiTcbInfo</td>
                <td align="left">
                  <xref target="TCGDICE1.1"/></td>
                <td align="left">TCG</td>
              </tr>
              <tr>
                <td align="left">2 23 133 5 4 6</td>
                <td align="left">DiceUccsEvidence</td>
                <td align="left">
                  <xref target="TCGDICE1.1"/></td>
                <td align="left">TCG</td>
              </tr>
              <tr>
                <td align="left">2 23 133 5 4 7</td>
                <td align="left">DiceManifestEvidence</td>
                <td align="left">
                  <xref target="TCGDICE1.1"/></td>
                <td align="left">TCG</td>
              </tr>
              <tr>
                <td align="left">2 23 133 5 4 8</td>
                <td align="left">DiceTcbInfoComp</td>
                <td align="left">
                  <xref target="TCGDICE1.1"/></td>
                <td align="left">TCG</td>
              </tr>
              <tr>
                <td align="left">2 23 133 5 4 9</td>
                <td align="left">DiceConceptualMessageWrapper</td>
                <td align="left">
                  <xref target="TCGDICE1.1"/></td>
                <td align="left">TCG</td>
              </tr>
              <tr>
                <td align="left">2 23 133 20 1</td>
                <td align="left">tcg-attest-tpm-certify</td>
                <td align="left">Private Registry</td>
                <td align="left">TCG</td>
              </tr>
            </tbody>
          </table>
          <t>EDNOTE: This is currently under debate with our contacts at TCG about which OID they want used for the initial registry.</t>
          <t>The current registry values can be retrieved from the IANA online website.</t>
        </section>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>A PKCS#10 or CRMF Certification Request message typically consists of a
distinguished name, a public key, and optionally a set of attributes,
collectively signed by the entity requesting certification.
In general usage, the private key used to sign the CSR <bcp14>MUST</bcp14> be different from the
Attesting Key utilized to sign Evidence about the Target
Environment, though exceptions <bcp14>MAY</bcp14> be made where CSRs and Evidence are involved in
bootstrapping the Attesting Key.
To demonstrate that the private
key applied to sign the CSR is generated, and stored in a secure
environment that has controls to prevent theft or misuse (including
being non-exportable / non-recoverable), the Attesting Environment
has to collect claims about this secure environment (or Target
Environment, as shown in <xref target="fig-attester"/>).</t>
      <t><xref target="fig-attester"/> shows the interaction inside an Attester. The
Attesting Environment, which is provisioned with an Attestation Key,
retrieves claims about the Target Environment. The Target
Environment offers key generation, storage and usage, which it
makes available to services. The Attesting Environment collects
these claims about the Target Environment and signs them and
exports Evidence for use in remote attestation via a CSR.</t>
      <figure anchor="fig-attester">
        <name>Interaction between Attesting and Target Environment</name>
        <artset>
          <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="576" width="328" viewBox="0 0 328 576" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 8,240 L 8,544" fill="none" stroke="black"/>
              <path d="M 40,80 L 40,144" fill="none" stroke="black"/>
              <path d="M 48,288 L 48,352" fill="none" stroke="black"/>
              <path d="M 96,152 L 96,280" fill="none" stroke="black"/>
              <path d="M 120,152 L 120,280" fill="none" stroke="black"/>
              <path d="M 120,448 L 120,512" fill="none" stroke="black"/>
              <path d="M 152,32 L 152,80" fill="none" stroke="black"/>
              <path d="M 168,352 L 168,440" fill="none" stroke="black"/>
              <path d="M 200,152 L 200,280" fill="none" stroke="black"/>
              <path d="M 232,448 L 232,512" fill="none" stroke="black"/>
              <path d="M 240,280 L 240,352" fill="none" stroke="black"/>
              <path d="M 264,80 L 264,144" fill="none" stroke="black"/>
              <path d="M 304,240 L 304,472" fill="none" stroke="black"/>
              <path d="M 304,488 L 304,544" fill="none" stroke="black"/>
              <path d="M 320,112 L 320,480" fill="none" stroke="black"/>
              <path d="M 40,80 L 264,80" fill="none" stroke="black"/>
              <path d="M 272,112 L 320,112" fill="none" stroke="black"/>
              <path d="M 40,144 L 264,144" fill="none" stroke="black"/>
              <path d="M 8,240 L 88,240" fill="none" stroke="black"/>
              <path d="M 128,240 L 192,240" fill="none" stroke="black"/>
              <path d="M 208,240 L 304,240" fill="none" stroke="black"/>
              <path d="M 48,288 L 240,288" fill="none" stroke="black"/>
              <path d="M 48,352 L 240,352" fill="none" stroke="black"/>
              <path d="M 120,448 L 232,448" fill="none" stroke="black"/>
              <path d="M 72,480 L 112,480" fill="none" stroke="black"/>
              <path d="M 232,480 L 320,480" fill="none" stroke="black"/>
              <path d="M 120,512 L 232,512" fill="none" stroke="black"/>
              <path d="M 8,544 L 304,544" fill="none" stroke="black"/>
              <polygon class="arrowhead" points="280,112 268,106.4 268,117.6" fill="black" transform="rotate(180,272,112)"/>
              <polygon class="arrowhead" points="208,280 196,274.4 196,285.6" fill="black" transform="rotate(90,200,280)"/>
              <polygon class="arrowhead" points="208,152 196,146.4 196,157.6" fill="black" transform="rotate(270,200,152)"/>
              <polygon class="arrowhead" points="176,440 164,434.4 164,445.6" fill="black" transform="rotate(90,168,440)"/>
              <polygon class="arrowhead" points="160,32 148,26.4 148,37.6" fill="black" transform="rotate(270,152,32)"/>
              <polygon class="arrowhead" points="128,152 116,146.4 116,157.6" fill="black" transform="rotate(270,120,152)"/>
              <polygon class="arrowhead" points="120,480 108,474.4 108,485.6" fill="black" transform="rotate(0,112,480)"/>
              <polygon class="arrowhead" points="104,280 92,274.4 92,285.6" fill="black" transform="rotate(90,96,280)"/>
              <g class="text">
                <text x="168" y="52">CSR</text>
                <text x="204" y="52">with</text>
                <text x="188" y="68">Evidence</text>
                <text x="112" y="116">CSR</text>
                <text x="160" y="116">Library</text>
                <text x="32" y="180">Private</text>
                <text x="156" y="180">Public</text>
                <text x="248" y="180">Signature</text>
                <text x="16" y="196">Key</text>
                <text x="144" y="196">Key</text>
                <text x="248" y="196">Operation</text>
                <text x="44" y="212">Generation</text>
                <text x="156" y="212">Export</text>
                <text x="108" y="244">--</text>
                <text x="268" y="260">Attester</text>
                <text x="256" y="276">(HSM)</text>
                <text x="84" y="308">Target</text>
                <text x="160" y="308">Environment</text>
                <text x="80" y="324">(with</text>
                <text x="120" y="324">key</text>
                <text x="184" y="324">generation,</text>
                <text x="88" y="340">storage</text>
                <text x="136" y="340">and</text>
                <text x="180" y="340">usage)</text>
                <text x="128" y="388">Collect</text>
                <text x="132" y="404">Claims</text>
                <text x="56" y="468">Attestation</text>
                <text x="168" y="468">Attesting</text>
                <text x="48" y="484">Key</text>
                <text x="176" y="484">Environment</text>
                <text x="172" y="500">(Firmware)</text>
                <text x="268" y="500">Evidence</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art"><![CDATA[
                   ^
                   |CSR with
                   |Evidence
     .-------------+-------------.
     |                           |
     |       CSR Library         |<-----+
     |                           |      |
     '---------------------------'      |
            |  ^         ^              |
 Private    |  | Public  | Signature    |
 Key        |  | Key     | Operation    |
 Generation |  | Export  |              |
            |  |         |              |
 .----------|--|---------|------------. |
 |          |  |         |    Attester| |
 |          v  |         v    (HSM)   | |
 |    .-----------------------.       | |
 |    | Target Environment    |       | |
 |    | (with key generation, |       | |
 |    | storage and usage)    |       | |
 |    '--------------+--------'       | |
 |                   |                | |
 |           Collect |                | |
 |            Claims |                | |
 |                   |                | |
 |                   v                | |
 |             .-------------.        | |
 |Attestation  | Attesting   |        | |
 |   Key ----->| Environment +----------+
 |             | (Firmware)  |Evidence|
 |             '-------------'        |
 |                                    |
 '------------------------------------'
]]></artwork>
        </artset>
      </figure>
      <t><xref target="fig-attester"/> places the CSR library outside the Attester, which
is a valid architecture for certificate enrollment.
The CSR library may also be located
inside the trusted computing base. Regardless of the placement
of the CSR library, an Attesting Environment <bcp14>MUST</bcp14> be able to collect
claims about the Target Environment such that statements about
the storage of the keying material can be made.
For the Verifier, the provided Evidence must allow
an assessment to be made whether the key used to sign the CSR
is stored in a secure location and cannot be exported.</t>
      <t>Evidence communicated in the attributes and structures defined
in this document are meant to be used in a CSR. It is up to
the Verifier and to the Relying Party (RA/CA) to place as much or
as little trust in this information as dictated by policies.</t>
      <t>This document defines the transport of Evidence of different formats
in a CSR. Some of these encoding formats are based on standards
while others are proprietary formats. A Verifier will need to understand
these formats for matching the received claim values against policies.</t>
      <t>Policies drive the processing of Evidence at the Verifier: the Verifier's
Appraisal Policy for Evidence will often be based on specifications by the manufacturer
of a hardware security module, a regulatory agency, or specified by an
oversight body, such as the CA Browser Forum. The Code-Signing Baseline
Requirements <xref target="CSBR"/> document
is an example of such a policy that has
been published by the CA Browser Forum and specifies certain properties,
such as non-exportability, which must be enabled for storing
publicly-trusted code-signing keys. Other
policies influence the decision making at the Relying Party when
evaluating the Attestation Result. The Relying Party is ultimately
responsible for making a decision of what information in the Attestation
Result it will accept. The presence of the attributes defined in this
specification provide the Relying Party with additional assurance about
an Attester. Policies used at the Verifier and the Relying Party are
implementation dependent and out of scope for this document. Whether to
require the use of Evidence in a CSR is out-of-scope for this document.</t>
      <section anchor="freshness">
        <name>Freshness</name>
        <t>Evidence generated by an Attester generally needs to be fresh to provide
value to the Verifier since the configuration on the device may change
over time. Section 10 of <xref target="RFC9334"/> discusses different approaches for
providing freshness, including a nonce-based approach, the use of timestamps
and an epoch-based technique.  The use of nonces requires that nonce to be provided by
the Relying Party in some protocol step prior to Evidence and CSR generation,
and the use of timestamps requires synchronized clocks which cannot be
guaranteed in all operating environments. Epochs also require (unidirectional)
communication prior to Evidence and CSR generation.
This document only specifies how to carry existing Evidence formats inside a CSR,
and so issues of synchronizing freshness data is left to be handled, for example,
via certificate management protocols.
Developers, operators, and designers of protocols, which embed
Evidence-carrying-CSRs, <bcp14>MUST</bcp14> consider what notion of freshness is
appropriate and available in-context; thus the issue of freshness is
left up to the discretion of protocol designers and implementers.</t>
        <t>In the case of Hardware Security Modules (HSM), the definition of "fresh" is somewhat ambiguous in the context
of CSRs, especially considering that non-automated certificate enrollments
are often asynchronous, and considering the common practice of re-using the
same CSR for multiple certificate renewals across the lifetime of a key.
"Freshness" typically implies both asserting that the data was generated
at a certain point-in-time, as well as providing non-replayability.
Certain use cases may have special properties impacting the freshness
requirements. For example, HSMs are typically designed to not allow downgrade
of private key storage properties; for example if a given key was asserted at
time T to have been generated inside the hardware boundary and to be
non-exportable, then it can be assumed that those properties of that key
will continue to hold into the future.</t>
      </section>
      <section anchor="publishing-evidence-in-an-x509-extension">
        <name>Publishing evidence in an X.509 extension</name>
        <t>This document specifies and Extension for carrying Evidence in a CRMF Certificate Signing Request (CSR), but it is intentionally <bcp14>NOT RECOMMENDED</bcp14> for a CA to copy the ext-evidence or ext-evidenceCerts extensions into the published certificate.
The reason for this is that certificates are considered public information and the Evidence might contain detailed information about hardware and patch levels of the device on which the private key resides.
The certificate requester has consented to sharing this detailed device information with the CA but might not consent to having these details published.
These privacy considerations are beyond the scope of this document and may require additional signaling mechanisms in the CSR to prevent unintended publication of sensitive information, so we leave it as "<bcp14>NOT RECOMMENDED</bcp14>".</t>
      </section>
      <section anchor="type-oid-and-verifier-hint">
        <name>Type OID and verifier hint</name>
        <t>The <tt>EvidenceStatement</tt> includes both a <tt>type</tt> OID and a free form <tt>hint</tt> field with which the Attester can provide information to the Relying Party about which Verifier to invoke to parse a given piece of Evidence.
Care should be taken when processing these data since at the time they are used, they are not yet verified. In fact, they are protected by the CSR signature but not by the signature from the Attester and so could be maliciously replaced in some cases.
The authors' intent is that the <tt>type</tt> OID and <tt>hint</tt> will allow an RP to select between Verifier with which it has pre-established trust relationships, such as Verifier libraries that have been compiled in to the RP application.
As an example, the <tt>hint</tt> may take the form of an FQDN to uniquely identify a Verifier implementation, but the RP <bcp14>MUST NOT</bcp14> blindly make network calls to unknown domain names and trust the results.
Implementers should also be cautious around <tt>type</tt> OID or <tt>hint</tt> values that cause a short-circuit in the verification logic, such as <tt>None</tt>, <tt>Null</tt>, <tt>Debug</tt>, empty CMW contents, or similar values that could cause the Evidence to appear to be valid when in fact it was not properly checked.</t>
      </section>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC9334">
          <front>
            <title>Remote ATtestation procedureS (RATS) Architecture</title>
            <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
            <author fullname="D. Thaler" initials="D." surname="Thaler"/>
            <author fullname="M. Richardson" initials="M." surname="Richardson"/>
            <author fullname="N. Smith" initials="N." surname="Smith"/>
            <author fullname="W. Pan" initials="W." surname="Pan"/>
            <date month="January" year="2023"/>
            <abstract>
              <t>In network protocol exchanges, it is often useful for one end of a communication to know whether the other end is in an intended operating state. This document provides an architectural overview of the entities involved that make such tests possible through the process of generating, conveying, and evaluating evidentiary Claims. It provides a model that is neutral toward processor architectures, the content of Claims, and protocols.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9334"/>
          <seriesInfo name="DOI" value="10.17487/RFC9334"/>
        </reference>
        <reference anchor="RFC5912">
          <front>
            <title>New ASN.1 Modules for the Public Key Infrastructure Using X.509 (PKIX)</title>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="June" year="2010"/>
            <abstract>
              <t>The Public Key Infrastructure using X.509 (PKIX) certificate format, and many associated formats, are expressed using ASN.1. The current ASN.1 modules conform to the 1988 version of ASN.1. This document updates those ASN.1 modules to conform to the 2002 version of ASN.1. There are no bits-on-the-wire changes to any of the formats; this is simply a change to the syntax. This document is not an Internet Standards Track specification; it is published for informational purposes.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5912"/>
          <seriesInfo name="DOI" value="10.17487/RFC5912"/>
        </reference>
        <reference anchor="RFC4211">
          <front>
            <title>Internet X.509 Public Key Infrastructure Certificate Request Message Format (CRMF)</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="September" year="2005"/>
            <abstract>
              <t>This document describes the Certificate Request Message Format (CRMF) syntax and semantics. This syntax is used to convey a request for a certificate to a Certification Authority (CA), possibly via a Registration Authority (RA), for the purposes of X.509 certificate production. The request will typically include a public key and the associated registration information. This document does not define a certificate request protocol. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4211"/>
          <seriesInfo name="DOI" value="10.17487/RFC4211"/>
        </reference>
        <reference anchor="RFC2986">
          <front>
            <title>PKCS #10: Certification Request Syntax Specification Version 1.7</title>
            <author fullname="M. Nystrom" initials="M." surname="Nystrom"/>
            <author fullname="B. Kaliski" initials="B." surname="Kaliski"/>
            <date month="November" year="2000"/>
            <abstract>
              <t>This memo represents a republication of PKCS #10 v1.7 from RSA Laboratories' Public-Key Cryptography Standards (PKCS) series, and change control is retained within the PKCS process. The body of this document, except for the security considerations section, is taken directly from the PKCS #9 v2.0 or the PKCS #10 v1.7 document. This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2986"/>
          <seriesInfo name="DOI" value="10.17487/RFC2986"/>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC8126">
          <front>
            <title>Guidelines for Writing an IANA Considerations Section in RFCs</title>
            <author fullname="M. Cotton" initials="M." surname="Cotton"/>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <author fullname="T. Narten" initials="T." surname="Narten"/>
            <date month="June" year="2017"/>
            <abstract>
              <t>Many protocols make use of points of extensibility that use constants to identify various protocol parameters. To ensure that the values in these fields do not have conflicting uses and to promote interoperability, their allocations are often coordinated by a central record keeper. For IETF protocols, that role is filled by the Internet Assigned Numbers Authority (IANA).</t>
              <t>To make assignments in a given registry prudently, guidance describing the conditions under which new values should be assigned, as well as when and how modifications to existing values can be made, is needed. This document defines a framework for the documentation of these guidelines by specification authors, in order to assure that the provided guidance for the IANA Considerations is clear and addresses the various issues that are likely in the operation of a registry.</t>
              <t>This is the third edition of this document; it obsoletes RFC 5226.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="26"/>
          <seriesInfo name="RFC" value="8126"/>
          <seriesInfo name="DOI" value="10.17487/RFC8126"/>
        </reference>
        <reference anchor="I-D.ietf-rats-msg-wrap">
          <front>
            <title>RATS Conceptual Messages Wrapper (CMW)</title>
            <author fullname="Henk Birkholz" initials="H." surname="Birkholz">
              <organization>Fraunhofer SIT</organization>
            </author>
            <author fullname="Ned Smith" initials="N." surname="Smith">
              <organization>Intel</organization>
            </author>
            <author fullname="Thomas Fossati" initials="T." surname="Fossati">
              <organization>Linaro</organization>
            </author>
            <author fullname="Hannes Tschofenig" initials="H." surname="Tschofenig">
         </author>
            <date day="27" month="February" year="2024"/>
            <abstract>
              <t>   This document defines the RATS conceptual message wrapper (CMW)
   format, a type of encapsulation format that can be used for any RATS
   messages, such as Evidence, Attestation Results, Endorsements, and
   Reference Values.  Additionally, the document describes a collection
   type that enables the aggregation of one or more CMWs into a single
   message.

   This document also defines corresponding CBOR tag, JSON Web Tokens
   (JWT) and CBOR Web Tokens (CWT) claims, as well as an X.509
   extension.  These allow embedding the wrapped conceptual messages
   into CBOR-based protocols, web APIs, and PKIX protocols.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-rats-msg-wrap-04"/>
        </reference>
        <reference anchor="I-D.bft-rats-kat">
          <front>
            <title>An EAT-based Key Attestation Token</title>
            <author fullname="Mathias Brossard" initials="M." surname="Brossard">
              <organization>arm</organization>
            </author>
            <author fullname="Thomas Fossati" initials="T." surname="Fossati">
              <organization>Linaro</organization>
            </author>
            <author fullname="Hannes Tschofenig" initials="H." surname="Tschofenig">
         </author>
            <date day="4" month="March" year="2024"/>
            <abstract>
              <t>   This document defines an evidence format for key attestation based on
   the Entity Attestation Token (EAT).

Discussion Venues

   This note is to be removed before publishing as an RFC.

   Discussion of this document takes place on the Remote ATtestation
   ProcedureS Working Group mailing list (rats@ietf.org), which is
   archived at https://mailarchive.ietf.org/arch/browse/rats/.

   Source for this draft and an issue tracker can be found at
   https://github.com/thomas-fossati/draft-kat.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-bft-rats-kat-03"/>
        </reference>
        <reference anchor="RFC7030">
          <front>
            <title>Enrollment over Secure Transport</title>
            <author fullname="M. Pritikin" initials="M." role="editor" surname="Pritikin"/>
            <author fullname="P. Yee" initials="P." role="editor" surname="Yee"/>
            <author fullname="D. Harkins" initials="D." role="editor" surname="Harkins"/>
            <date month="October" year="2013"/>
            <abstract>
              <t>This document profiles certificate enrollment for clients using Certificate Management over CMS (CMC) messages over a secure transport. This profile, called Enrollment over Secure Transport (EST), describes a simple, yet functional, certificate management protocol targeting Public Key Infrastructure (PKI) clients that need to acquire client certificates and associated Certification Authority (CA) certificates. It also supports client-generated public/private key pairs as well as key pairs generated by the CA.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7030"/>
          <seriesInfo name="DOI" value="10.17487/RFC7030"/>
        </reference>
        <reference anchor="RFC8141">
          <front>
            <title>Uniform Resource Names (URNs)</title>
            <author fullname="P. Saint-Andre" initials="P." surname="Saint-Andre"/>
            <author fullname="J. Klensin" initials="J." surname="Klensin"/>
            <date month="April" year="2017"/>
            <abstract>
              <t>A Uniform Resource Name (URN) is a Uniform Resource Identifier (URI) that is assigned under the "urn" URI scheme and a particular URN namespace, with the intent that the URN will be a persistent, location-independent resource identifier. With regard to URN syntax, this document defines the canonical syntax for URNs (in a way that is consistent with URI syntax), specifies methods for determining URN-equivalence, and discusses URI conformance. With regard to URN namespaces, this document specifies a method for defining a URN namespace and associating it with a namespace identifier, and it describes procedures for registering namespace identifiers with the Internet Assigned Numbers Authority (IANA). This document obsoletes both RFCs 2141 and 3406.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8141"/>
          <seriesInfo name="DOI" value="10.17487/RFC8141"/>
        </reference>
        <reference anchor="I-D.tschofenig-rats-psa-token">
          <front>
            <title>Arm's Platform Security Architecture (PSA) Attestation Token</title>
            <author fullname="Hannes Tschofenig" initials="H." surname="Tschofenig">
         </author>
            <author fullname="Simon Frost" initials="S." surname="Frost">
              <organization>Arm Limited</organization>
            </author>
            <author fullname="Mathias Brossard" initials="M." surname="Brossard">
              <organization>Arm Limited</organization>
            </author>
            <author fullname="Adrian L. Shaw" initials="A. L." surname="Shaw">
              <organization>HP Labs</organization>
            </author>
            <author fullname="Thomas Fossati" initials="T." surname="Fossati">
              <organization>Linaro</organization>
            </author>
            <date day="21" month="February" year="2024"/>
            <abstract>
              <t>   The Arm Platform Security Architecture (PSA) is a family of hardware
   and firmware security specifications, as well as open-source
   reference implementations, to help device makers and chip
   manufacturers build best-practice security into products.  Devices
   that are PSA compliant can produce attestation tokens as described in
   this memo, which are the basis for many different protocols,
   including secure provisioning and network access control.  This
   document specifies the PSA attestation token structure and semantics.

   The PSA attestation token is a profile of the Entity Attestation
   Token (EAT).  This specification describes what claims are used in an
   attestation token generated by PSA compliant systems, how these
   claims get serialized to the wire, and how they are cryptographically
   protected.

   This informational document is published as an independent submission
   to improve interoperability with ARM's architecture.  It is not a
   standard nor a product of the IETF.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-tschofenig-rats-psa-token-22"/>
        </reference>
        <reference anchor="TPM20" target="https://trustedcomputinggroup.org/resource/tpm-library-specification/">
          <front>
            <title>Trusted Platform Module Library Specification, Family 2.0, Level 00, Revision 01.59</title>
            <author>
              <organization>Trusted Computing Group</organization>
            </author>
            <date year="2019" month="November"/>
          </front>
        </reference>
        <reference anchor="CSBR" target="https://cabforum.org/wp-content/uploads/Baseline-Requirements-for-the-Issuance-and-Management-of-Code-Signing.v3.3.pdf">
          <front>
            <title>Baseline Requirements for Code-Signing Certificates, v.3.3</title>
            <author>
              <organization>CA/Browser Forum</organization>
            </author>
            <date year="2023" month="June"/>
          </front>
        </reference>
        <reference anchor="TCGDICE1.1" target="https://trustedcomputinggroup.org/wp-content/uploads/DICE-Attestation-Architecture-Version-1.1-Revision-18_pub.pdf">
          <front>
            <title>DICE Attestation Architecture</title>
            <author>
              <organization>Trusted Computing Group</organization>
            </author>
            <date year="2024" month="January"/>
          </front>
        </reference>
        <reference anchor="PKCS11" target="http://docs.oasis-open.org/pkcs11/pkcs11-base/v2.40/os/pkcs11-base-v2.40-os.html">
          <front>
            <title>PKCS #11 Cryptographic Token Interface Base Specification Version 2.40</title>
            <author>
              <organization>OASIS</organization>
            </author>
            <date year="2015" month="April"/>
          </front>
        </reference>
        <reference anchor="SampleData" target="https://github.com/lamps-wg/csr-attestation-examples">
          <front>
            <title>CSR Attestation Sample Data</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="I-D.ietf-rats-tpm-based-network-device-attest">
          <front>
            <title>TPM-based Network Device Remote Integrity Verification</title>
            <author fullname="Guy Fedorkow" initials="G." surname="Fedorkow">
              <organization>Juniper Networks, Inc.</organization>
            </author>
            <author fullname="Eric Voit" initials="E." surname="Voit">
              <organization>Cisco Systems</organization>
            </author>
            <author fullname="Jessica Fitzgerald-McKay" initials="J." surname="Fitzgerald-McKay">
              <organization>National Security Agency</organization>
            </author>
            <date day="22" month="March" year="2022"/>
            <abstract>
              <t>   This document describes a workflow for remote attestation of the
   integrity of firmware and software installed on network devices that
   contain Trusted Platform Modules [TPM1.2], [TPM2.0], as defined by
   the Trusted Computing Group (TCG)), or equivalent hardware
   implementations that include the protected capabilities, as provided
   by TPMs.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-rats-tpm-based-network-device-attest-14"/>
        </reference>
      </references>
    </references>
    <?line 895?>

<section anchor="examples">
      <name>Examples</name>
      <t>This section provides several examples and sample data for embedding Evidence
in CSRs. The first example embeds Evidence produced by a TPM in the CSR.
The second example conveys an Arm Platform Security Architecture token,
which provides claims about the used hardware and software platform,
into the CSR.</t>
      <t>After publicatian of this document, additional examples and sample data will
be collected at the following GitHub repository <xref target="SampleData"/>:</t>
      <t>https://github.com/lamps-wg/csr-attestation-examples</t>
      <section anchor="extending-evidencestatementset">
        <name>Extending EvidenceStatementSet</name>
        <t>As defined in <xref target="sec-evidenceAttr"/>, EvidenceStatementSet acts as a way to provide an ASN.1 compiler or
runtime parser with a list of OBJECT IDENTIFIERs that are known to represent EvidenceStatements
-- and are expected to appear in an EvidenceStatement.type field, along with
the ASN.1 type that should be used to parse the data in the associated EvidenceStatement.stmt field.
Essentially this is a mapping of OIDs to data structures. Implementers are expected to populate it
with mappings for the Evidence types that their application will be handling.</t>
        <t>This specification aims to be agnostic about the type of data being carried, and therefore
does not specify any mandatory-to-implement Evidence types.</t>
        <t>As an example of how to populate EvidenceStatementSet, implementing the TPM 2.0 and PSA Evidence types
given below would result in the following EvidenceStatementSet definition:</t>
        <artwork><![CDATA[
EvidenceStatementSet EVIDENCE-STATEMENT ::= {
  --- TPM 2.0
  { Tcg-attest-certify IDENTIFIED BY tcg-attest-certify },
  ...,

  --- PSA
  { OCTET STRING IDENTIFIED BY { 1 3 6 1 5 5 7 1 99 } }
}
]]></artwork>
      </section>
      <section anchor="appdx-tpm2">
        <name>TPM V2.0 Evidence in CSR</name>
        <t>This section describes TPM2 key attestation for use in a CSR.</t>
        <t>This is a complete and canonical example that can be used to test parsers implemented against this specification. Readers who wish the sample data may skip to <xref target="appdx-tpm-example"/>; the following sections explain the TPM-specific data structures needed to fully parse the contents of the evidence statement.</t>
        <section anchor="tcg-key-attestation-certify">
          <name>TCG Key Attestation Certify</name>
          <t>There are several ways in TPM2 to provide proof of a key's properties.
(i.e., key attestation). This description uses the simplest and most generally
expected to used which is the TPM2_Certify and the TPM2_ReadPublic commands.</t>
        </section>
        <section anchor="tcg-oids">
          <name>TCG OIDs</name>
          <t>The OIDs in this section are defined by TCG
TCG has a registered arc of 2.23.133</t>
          <artwork><![CDATA[
tcg OBJECT IDENTIFIER ::= { 2 23 133 }

tcg-kp-AIKCertificate OBJECT IDENTIFIER ::= { id-tcg 8 3 }

tcg-attest OBJECT IDENTIFIER ::= { id-tcg 20 }

tcg-attest-tpm-certify OBJECT IDENTIFIER ::= { id-tcg-attest 1 }
]]></artwork>
        </section>
        <section anchor="appdx-tcg-attest-certify">
          <name>TPM2 AttestationStatement</name>
          <t>The EvidenceStatement structure contains a sequence of two fields:
a type and a stmt. The 'type' field contains the OID of the Evidence format and it is
set to tcg-attest-certify. The content of the structure shown below is placed into
the stmt, which is a concatenation of existing TPM2 structures. These structures
will be explained in the rest of this section.</t>
          <artwork><![CDATA[
Tcg-csr-certify ::= SEQUENCE {
  tpmSAttest       OCTET STRING,
  signature        OCTET STRING,
  tpmTPublic       OCTET STRING OPTIONAL
}
]]></artwork>
          <t>The tcg-kp-AIKCertificate field contains the AIK Certificate in RFC 5280 format.</t>
        </section>
        <section anchor="introduction-to-tpm2-concepts">
          <name>Introduction to TPM2 concepts</name>
          <t>The definitions in the following sections are defined by the TPM2 and various TCG defined
specification including the TPM2 set of specifications. Those familiar with
TPM2 concepts may skip to <xref target="appdx-tcg-attest-certify"/> which defines an ASN.1 structure
specific for bundling a TPM attestation into an EvidenceStatement, and <xref target="appdx-tpm-example"/>
which provides the example. For those unfamiliar with TPM2 concepts
this section provides only the minimum information to understand TPM2
Attestation in CSR and is not a complete description of the technology in
general.</t>
        </section>
        <section anchor="tcg-objects-and-key-attestation">
          <name>TCG Objects and Key Attestation</name>
          <t>This provides a brief explanation of the relevant TPM2 commands and data
structures needed to understand TPM2 Attestation used in this RFC.
NOTE: The TPM2 specification used in this explanation is version 1.59,
section number cited are based on that version. Note also that the TPM2
specification comprises four documents: Part 1: Architecture; Part 2: Structures;
Part 3: Commands; Part 4: Supporting Routines.</t>
          <t>Note about convention:
All structures starting with TPM2B_ are:</t>
          <ul spacing="normal">
            <li>
              <t>a structure that is a sized buffer where the size of the buffer is contained in a 16-bit, unsigned value.</t>
            </li>
            <li>
              <t>The first parameter is the size in octets of the second parameter. The second parameter may be any type.</t>
            </li>
          </ul>
          <t>A full explanation of the TPM structures is outside the scope of this document. As a
simplification references to TPM2B_ structures will simply use the enclosed
TPMT_ structure by the same name following the '_'.</t>
          <section anchor="tpm2-object-names">
            <name>TPM2 Object Names</name>
            <t>All TPM2 Objects (e.g., keys are key objects which is the focus of this specification).
A TPM2 object name is persistent across the object's life cycle whether the TPM2
object is transient or persistent.</t>
            <t>A TPM2 Object name is a concatenation of a hash algorithm identifier and a hash of
the TPM2 Object's TPMT_PUBLIC.</t>
            <artwork><![CDATA[
     Name ≔ nameAlg || HnameAlg (handle→publicArea)
     nameAlg is a TCG defined 16 bit algorithm identifier
]]></artwork>
            <t>publicArea is the TPMT_PUBLIC structure for that TPM2 Object.</t>
            <t>The size of the Name field can be derived by examining the nameAlg value, which defines
the hashing algorithm and the resulting size.</t>
            <t>The Name field is returned in the TPM2B_ATTEST data field.</t>
            <artwork><![CDATA[
     typedef struct {
          TPM_GENERATED magic;
          TPMI_ST_ATTEST type;
          TPM2B_NAME qualifiedSigner;
          TPM2B_DATA extraData;
          TPMS_CLOCK_INFO clockInfo;
          UINT64 firmwareVersion;
          TPMU_ATTEST attested;
     } TPMS_ATTEST;
]]></artwork>
            <t>where for a key object the attested field is</t>
            <artwork><![CDATA[
     typedef struct {
          TPM2B_NAME name;
          TPM2B_NAME qualifiedName;
     } TPMS_CERTIFY_INFO;
]]></artwork>
          </section>
          <section anchor="tpm2-public-structure">
            <name>TPM2 Public Structure</name>
            <t>Any TPM2 Object has an associated TPM2 Public structure defined
as TPMT_PUBLIC. This is defined below as a 'C' structure. While there
are many types of TPM2 Objects each with its own specific TPMT_PUBLIC
structure (handled by the use of 'unions') this document will specifically
define TPMT_PUBLIC for a TPM2 key object.</t>
            <artwork><![CDATA[
     typedef struct {
          TPMI_ALG_PUBLIC type;
          TPMI_ALG_HASH nameAlg;
          TPMA_OBJECT objectAttributes;
          TPM2B_DIGEST authPolicy;
          TPMU_PUBLIC_PARMS parameters;
          TPMU_PUBLIC_ID unique;
     } TPMT_PUBLIC;
]]></artwork>
            <t>Where:
* type and nameAlg are 16 bit TCG defined algorithms.
* objectAttributes is a 32 bit field defining properties of the object, as shown below</t>
            <artwork><![CDATA[
     typedef struct TPMA_OBJECT {
          unsigned Reserved_bit_at_0 : 1;
          unsigned fixedTPM : 1;
          unsigned stClear : 1;
          unsigned Reserved_bit_at_3 : 1;
          unsigned fixedParent : 1;
          unsigned sensitiveDataOrigin : 1;
          unsigned userWithAuth : 1;
          unsigned adminWithPolicy : 1;
          unsigned Reserved_bits_at_8 : 2;
          unsigned noDA : 1;
          unsigned encryptedDuplication : 1;
          unsigned Reserved_bits_at_12 : 4;
          unsigned restricted : 1;
          unsigned decrypt : 1;
          unsigned sign : 1;
          unsigned x509sign : 1;
          unsigned Reserved_bits_at_20 : 12;
     } TPMA_OBJECT;
]]></artwork>
            <ul spacing="normal">
              <li>
                <t>authPolicy is the Policy Digest needed to authorize use of the object.</t>
              </li>
              <li>
                <t>Parameters are the object type specific public information about the key.
                </t>
                <ul spacing="normal">
                  <li>
                    <t>For key objects, this would be the key's public parameters.</t>
                  </li>
                </ul>
              </li>
              <li>
                <t>unique is the identifier for parameters</t>
              </li>
            </ul>
            <t>The size of the TPMT_PUBLIC is provided by the following structure:</t>
            <artwork><![CDATA[
     typedef struct {
          UINT16     size;
          TPMT_PUBLIC publicArea;
     } TPM2B_PUBLIC;
]]></artwork>
          </section>
          <section anchor="tpm2-signatures">
            <name>TPM2 Signatures</name>
            <t>TPM2 signatures use a union where the first field (16 bits) identifies
the signature scheme. The example below shows an RSA signature where
TPMT_SIGNATURE-&gt;sigAlg will indicate to use TPMS_SIGNATURE_RSA
as the signature.</t>
            <artwork><![CDATA[
     typedef struct {
          TPMI_ALG_SIG_SCHEME sigAlg;
          TPMU_SIGNATURE signature;
     } TPMT_SIGNATURE;

     typedef struct {
          TPMI_ALG_HASH hash;
          TPM2B_PUBLIC_KEY_RSA sig;
     } TPMS_SIGNATURE_RSA;
]]></artwork>
          </section>
          <section anchor="attestation-key">
            <name>Attestation Key</name>
            <t>The uniquely identifying TPM2 key is the Endorsement Key (the EK). As this is a privacy
sensitive key, the EK is not directly used to attest to any TPM2 asset. Instead,
the EK is used by an Attestation CA to create an Attestation Key (the AK). The AK is
assumed trusted by the Verifier and is assume to be loaded in the TPM during the execution
of the process described in the subsequent sections. The description of how to create the AK is outside
the scope of this document.</t>
          </section>
          <section anchor="attester-processing">
            <name>Attester Processing</name>
            <t>The only signed component is the TPM2B_ATTEST structure, which returns
only the (key's) Name and the signature computed over the Name but no detailed information
about the key. As the Name is comprised of public information, the Name can
be calculated by the Verifier but only if the Verify knows all the public
information about the Key.</t>
            <t>The Attester's processing steps are as follows:</t>
            <t>Using the TPM2 command TPM2_Certify obtain the TPM2B_ATTEST and TPMT_SIGNATURE structures
from the TPM2. The signing key for TPMT_SIGNATURE is an Attention Key (or AK), which is
assumed to be available to the TPM2 upfront. More details are provided in <xref target="attestation-key"/></t>
            <t>The TPM2 command TPM2_Certify takes the following input:</t>
            <ul spacing="normal">
              <li>
                <t>TPM2 handle for Key (the key to be attested to)</t>
              </li>
              <li>
                <t>TPM2 handle for the AK (see <xref target="attestation-key"/>)</t>
              </li>
            </ul>
            <t>It produces the following output:</t>
            <ul spacing="normal">
              <li>
                <t>TPM2B_ATTEST in binary format</t>
              </li>
              <li>
                <t>TPMT_SIGNATURE in binary format</t>
              </li>
            </ul>
            <t>Then, using the TPM2 command TPM2_ReadPublic obtain the Keys TPM2B_PUBLIC structure.
While the Key's public information can be obtained by the Verifier in a number
ways, such as storing it from when the Key was created, this may be impractical
in many situations. As TPM2 provided a command to obtain this information, this
specification will include it in the TPM2 Attestation CSR extension.</t>
            <t>The TPM2 command TPM2_ReadPublic takes the following input:</t>
            <ul spacing="normal">
              <li>
                <t>TPM2 handle for Key (the key to be attested to)</t>
              </li>
            </ul>
            <t>It produces the following output:</t>
            <ul spacing="normal">
              <li>
                <t>TPM2B_PUBLIC in binary format</t>
              </li>
            </ul>
          </section>
          <section anchor="verifier-processing">
            <name>Verifier Processing</name>
            <t>The Verifier has to perform the following steps once it receives the Evidence:</t>
            <ul spacing="normal">
              <li>
                <t>Verify the TPM2B_ATTEST using the TPMT_SIGNATURE.</t>
              </li>
              <li>
                <t>Use the Key's "expected" Name from the provided TPM2B_PUBLIC structure.
If Key's "expected" Name equals TPM2B_ATTEST-&gt;attestationData then returned TPM2B_PUBLIC is the verified.</t>
              </li>
            </ul>
          </section>
        </section>
        <section anchor="appdx-tpm-example">
          <name>Sample CSR</name>
          <t>This CSR demonstrates a certification request for a key stored in a TPM using the following structure:</t>
          <artwork><![CDATA[
CSR {
  attributes {
    id-aa-evidence {
      EvidenceBundles {
        EvidenceBundle {
          EvidenceStatements {
            EvidenceStatement {
              type: tcg-attest-tpm-certify,
              stmt: <TcgAttestTpmCertify_data>
              hint: "tpmverifier.example.com"
            }
          },
          certs {
            akCertificate,
            caCertificate
          }
        }
      }
    }
  }
}
]]></artwork>
          <t>Note that this example demonstrates most of the features of this specification:</t>
          <ul spacing="normal">
            <li>
              <t>The data type is identified by the OID id-TcgCsrCertify contained in the <tt>EvidenceStatement.type</tt> field.</t>
            </li>
            <li>
              <t>The signed evidence is carried in the <tt>EvidenceStatement.stmt</tt> field.</t>
            </li>
            <li>
              <t>The <tt>EvidenceStatement.hint</tt> provides information to the Relying Party about which Verifier (software) will be able to correctly parse this data. Note that the <tt>type</tt> OID indicates the format of the data, but that may itself be a wrapper format that contains further data in a proprietary format. In this example, the hint says that software from the package <tt>"tpmverifier.example.com"</tt> will be able to parse this data.</t>
            </li>
            <li>
              <t>The evidence statement is accompanied by a certificate chain in the <tt>EvidenceBundle.certs</tt> field which can be used to verify the signature on the evidence statement. How the Verifier establishes trust in the provided certificates is outside the scope of this specification.</t>
            </li>
          </ul>
          <t>Features of this specification that are not demonstrated by this example are:</t>
          <ul spacing="normal">
            <li>
              <t>An EvidenceBundle containing multiple EvidenceStatements that share a certificate chain.</t>
            </li>
            <li>
              <t>Multiple EvidenceBundles that each have their own certificate chain.</t>
            </li>
          </ul>
          <artwork><![CDATA[
-----BEGIN CERTIFICATE REQUEST-----
MIIMmjCCC4QCAQAwcjELMAkGA1UEBhMCQVUxDDAKBgNVBAgMA1FMRDERMA8GA1UE
BwwIQnJpc2JhbmUxGzAZBgNVBAoMEmlldGYtMTE5LWhhY2thdGhvbjEWMBQGA1UE
CwwNaWV0Zi1jc3ItdGVzdDENMAsGA1UEAwwEa2V5MTCCASIwDQYJKoZIhvcNAQEB
BQADggEPADCCAQoCggEBAM3AeVGnRgRMijvkuKreB+B6vWEi7QXRANIhvvkcHH3h
Jg0y//13XTQjUC0/pj5Hi66ILSxMru5j2aNZ7n5THEK2dMqrjjLokcfojdAoErK6
BmGHSCB8US41tb7qurneJzRCO0VGExpAKI1Ps05j0HHtYvwqHTlikWCpIOiDkNQt
gz7sgr3z3aE2OKqsXfYehnBIJbqdClOMz7C23V/XcjEi/WF0vGTboHYmLHNwkTr5
VrFhDqKFxQUx4+neqSJGeo30USno6Lr8hFAufxQzzoiFx571C4Wad+J1chCKORb/
5Kbu4O7wu9doOsFK+I2anUHFEJS5wowVfcWuyjcIZ/0CAwEAAaCCCeMwggnfBgsq
hkiG9w0BCRACOzGCCc4wggnKMIIJxjCCAtwwggLYBgVngQUUATCCArQEgZH/VENH
gBcAIgALgSWffuitIOAJ6HaGbtjgb5HYkvYKKPpxeBsZOS8nnxgABAD/VaoAAAAA
Nc8rIAAAAAcAAAAAASAZECMAFjY2ACIACwIYIzzfD3YNj+9DpDfm6cw/eyH2BuNJ
me/FQlkl1WnlACIAC66AuFfCBmj8QrwfqOSqNt/dUwtgVMSh+iaYiSJslGTiBIIB
ADLHaelFw/JTKhJbwi0tz5zkzJVyfo1nHER2s1YWZj/7GNcNZ5uvtcYgK65XIyMw
LjIA0AncNhOVAJhJm0uRkbjUmvtW5kGpDtepFqQj394N4XiXulGIXimwVKkc9lqS
kkRcfmzqomSaMmafVwXBAQ1NGrHV/PaX7IUlW5Hqo3Ja++sYro8y/hEQL3ILXdEG
lQEj/wB9NhiuVqW/SpT0iIs+E1MD2uJRICxCw21F352BGiAda0pmvr7nknJhv5kM
gWKInhonhLfLXlWVmvI+pf/z4QHXSWNZoibiihRcP7Eruq1X+VMx2T+Au2Q2O8zz
9omo9Ktyq/cZDUGsLcs5E0UEggEYARYAAQALAAYAcgAAABAAEAgAAAAAAAEAzcB5
UadGBEyKO+S4qt4H4Hq9YSLtBdEA0iG++RwcfeEmDTL//XddNCNQLT+mPkeLrogt
LEyu7mPZo1nuflMcQrZ0yquOMuiRx+iN0CgSsroGYYdIIHxRLjW1vuq6ud4nNEI7
RUYTGkAojU+zTmPQce1i/CodOWKRYKkg6IOQ1C2DPuyCvfPdoTY4qqxd9h6GcEgl
up0KU4zPsLbdX9dyMSL9YXS8ZNugdiYsc3CROvlWsWEOooXFBTHj6d6pIkZ6jfRR
KejouvyEUC5/FDPOiIXHnvULhZp34nVyEIo5Fv/kpu7g7vC712g6wUr4jZqdQcUQ
lLnCjBV9xa7KNwhn/QwXdHBtdmVyaWZpZXIuZXhhbXBsZS5jb20wggbiMIIDazCC
AlMCFD+SFCWsL2qqj29Qjboa1MYhl3spMA0GCSqGSIb3DQEBCwUAMHQxCzAJBgNV
BAYTAkFVMQwwCgYDVQQIDANRTEQxETAPBgNVBAcMCEJyaXNiYW5lMRswGQYDVQQK
DBJpZXRmLTExOS1oYWNrYXRob24xFjAUBgNVBAsMDWlldGYtY3NyLXRlc3QxDzAN
BgNVBAMMBnJvb3RDQTAeFw0yNDA1MDUwMDMyMjhaFw0yNDA2MDQwMDMyMjhaMHAx
CzAJBgNVBAYTAkFVMQwwCgYDVQQIDANRTEQxETAPBgNVBAcMCEJyaXNiYW5lMRsw
GQYDVQQKDBJpZXRmLTExOS1oYWNrYXRob24xFjAUBgNVBAsMDWlldGYtY3NyLXRl
c3QxCzAJBgNVBAMMAmFrMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA
rJwY3dhpjd5Mm4r8Gcjx6qympTD8J+ldfUVglCFXxVpmZmX7Bec6fPcARLBR4jte
/Y/UGszreRv8WQ2O6J85XMPiJvYeWQExVL3NU5izX7+DVqX0is3HARUfkyXgF8zL
2BkSgQcuYqAR2riG6YH+waE44qCVAi/k9nni25CtsHzyD6twWvvE3BdhzBt8j1eA
1qWgOvVebVmMuN53caNkeAMb6a+OIirsU/eCbP0mycDfwabHg1DNCVio3pgQWJeW
uNsYWcCNDZ0yYOKKGzN4tmu1se3NyZRPPU1H6SGlgqLPlJce1KDnLc9E1hBX8gCJ
Aw7kzR66MXSNW9j9rHnYOQIDAQABMA0GCSqGSIb3DQEBCwUAA4IBAQCSNgvEgZju
zRqBiwVfe7Jy3ZfNwacVinS38SlKdaZsfeh+qpR6YCyeumS2Is8Ei70OzSr8QuN5
NYQamDSnbjsJoCoWLk3O4S/JAXHXdKesBNGY8/wG3nxMSjzoaQ6UXOrsXWtgPKUg
0/3bWN8JYrQPp2Ieggi/pE0DRE0vvO2LfA3L19la7mVYv0SWk/vEj5rVrqOWAHYu
4TUC+9lm3k6QmGgf6MTC3tPgE3/Xi/tIKOlf0McdNfVNRA4tlhKb+jZaUC5AeNfp
d74RTjICwRjQct3yS+GdtShiXUdyu04kgkruQTf2RBZ+QxFaYS0cVqfiYRRE5CZO
oMnqMV0Ezwu/MIIDbzCCAlcCFAUfP4YmjszQY/Vtn/04g5htsJN7MA0GCSqGSIb3
DQEBCwUAMHQxCzAJBgNVBAYTAkFVMQwwCgYDVQQIDANRTEQxETAPBgNVBAcMCEJy
aXNiYW5lMRswGQYDVQQKDBJpZXRmLTExOS1oYWNrYXRob24xFjAUBgNVBAsMDWll
dGYtY3NyLXRlc3QxDzANBgNVBAMMBnJvb3RDQTAeFw0yNDA1MDUwMDMyMjBaFw0z
NDA1MDMwMDMyMjBaMHQxCzAJBgNVBAYTAkFVMQwwCgYDVQQIDANRTEQxETAPBgNV
BAcMCEJyaXNiYW5lMRswGQYDVQQKDBJpZXRmLTExOS1oYWNrYXRob24xFjAUBgNV
BAsMDWlldGYtY3NyLXRlc3QxDzANBgNVBAMMBnJvb3RDQTCCASIwDQYJKoZIhvcN
AQEBBQADggEPADCCAQoCggEBAJ7JEtP/VDfRndsRmNqCs3iD/oLVSX2LSrkV2cb4
Cj9P5qwarxdBMuQocKyY/WZ3kL3iLXJfo3jzLQ90cMkoJ88swcY94I4d/SLE9E7s
X8+CTeyVfuvZ40dbrbxifNDRZWpdBCEt0J/kYtwEJMNqwGrPsYsZoQh3Ge9IMiPo
GiQSFHFiosl59xCf4Fp7HLAzASQTzRgAJg7T24djiV9G8lnR+pDKRKaMiwbhaUyv
rYV+9Ogs5QLmQRD3kutPNs/57imqb2JMypF2JdDZ8fOj1D8AIQJDxOQSpzqJq5Oo
d0OMPEsH9ZiliMOjzCKU2P5cnEeVoWzraiY7Is6z2/8/LQkCAwEAATANBgkqhkiG
9w0BAQsFAAOCAQEAjv0pbXilgnaD9xJLwn60uO/RQY4Npxclf5FiWIqeHQ12ssKE
sAqodmRzo8xz3/y+Zk5BYMfXDtB4SG/XIZ/Xuo1Jc7GYrUJg5oXYRxsejjdb0z6K
WzIe5l5hFkbSJnLfWNx/DcGyeOXDRfRTwOAuC4i2IMQBHOMCVq3btQXuKW8foEDF
u85w7fT0YbiXdgRyU6LROxy8odMDqgDqTh9PS2adqlF2N/A3NNV2bK5ae0zldniN
e8zqFpIKrNjGv81svpUCh+YgQK/LBU0W0Mi70nrp8uFWN88vv/Pl+CVX5zJIEHM6
Mzil8NgCaWeRXg0d9RHn8z0JwuEZXThJtpv7JTALBgkqhkiG9w0BAQsDggEBAF9Q
3g8tC87eaabivJ8kU10vA6EhAA3aSC7iqOqQxgrc80g5jn+y8mZUE8WhEeS+SN2W
ewSEr3L+LQdftCtWETKreJXVfqqwDh5UkmB5R7tds+HLrNUy9cVT4K/PvhS/yhMa
qLtl2DuXHfDtdRgn4O4vOAJqyHm3CKm2tIlr22vG3tRH1kRjnZLUvtsIN2uzLbC3
vQXFf0dKOw3U2bhVywyj6RF9bXObFTzUPArfHm+bSTtKmUJxBnApn8uBw4eLapAc
Aor2874rll5Ey3pSng9lCgKE2nn8Xuw3ZGys894nOJc15Uwr/QP2aKHnv/MzdXwU
mBFIOcV149HcobQM974=
-----END CERTIFICATE REQUEST-----
]]></artwork>
        </section>
      </section>
      <section anchor="psa-attestation-token-in-csr">
        <name>PSA Attestation Token in CSR</name>
        <t>The Platform Security Architecture (PSA) Attestation Token is
defined in <xref target="I-D.tschofenig-rats-psa-token"/> and specifies
claims to be included in an Entity Attestation
Token (EAT). <xref target="I-D.bft-rats-kat"/> defines key attestation
based on the EAT format. In this section the platform
attestation offered by <xref target="I-D.tschofenig-rats-psa-token"/>
is combined with key attestation by binding the
key attestation token (KAT) to the platform attestation token (PAT)
with the help of the nonce. For details see <xref target="I-D.bft-rats-kat"/>.
The resulting KAT-PAT bundle is, according to
<xref section="5.1" sectionFormat="of" target="I-D.bft-rats-kat"/>, combined in a CMW collection
<xref target="I-D.ietf-rats-msg-wrap"/>.</t>
        <t>The encoding of this KAT-PAT bundle is shown in the example below.</t>
        <artwork><![CDATA[
EvidenceBundles
 +
 |
 +-> EvidenceBundle
      +
      |
      +->  EvidenceStatement
            +
            |
            +-> type: OID for CMW Collection
            |         1 3 6 1 5 5 7 1 TBD
            |
            +-> stmt: KAT/PAT CMW Collection
]]></artwork>
        <t>The value in EvidenceStatement-&gt;stmt is based on the
KAT/PAT example from <xref section="6" sectionFormat="of" target="I-D.bft-rats-kat"/> and
the result of CBOR encoding the CMW collection shown below
(with line-breaks added for readability purposes):</t>
        <artwork><![CDATA[
{
  "kat":
    h'd28443A10126A058C0A30A5820B91B03129222973C214E42BF31D68
      72A3EF2DBDDA401FBD1F725D48D6BF9C8171909C4A40102200121
      5820F0FFFA7BA35E76E44CA1F5446D327C8382A5A40E5F29745DF
      948346C7C88A5D32258207CB4C4873CBB6F097562F61D5280768C
      D2CFE35FBA97E997280DBAAAE3AF92FE08A101A40102200121582
      0D7CC072DE2205BDC1537A543D53C60A6ACB62ECCD890C7FA27C9
      E354089BBE13225820F95E1D4B851A2CC80FFF87D8E23F22AFB72
      5D535E515D020731E79A3B4E47120584056F50D131FA83979AE06
      4E76E70DC75C070B6D991AEC08ADF9F41CAB7F1B7E2C47F67DACA
      8BB49E3119B7BAE77AEC6C89162713E0CC6D0E7327831E67F3284
      1A',
  "pat":
    h'd28443A10126A05824A10A58205CA3750DAF829C30C20797EDDB794
      9B1FD028C5408F2DD8650AD732327E3FB645840F9F41CAB7F1B7E
      2C47F67DACA8BB49E3119B7BAE77AEC6C89162713E0CC6D0E7327
      831E67F32841A56F50D131FA83979AE064E76E70DC75C070B6D99
      1AEC08AD'
}
]]></artwork>
      </section>
    </section>
    <section anchor="asn1-module">
      <name>ASN.1 Module</name>
      <artwork><![CDATA[
CSR-ATTESTATION-2023
           {iso(1) identified-organization(3) dod(6) internet(1) security(5)
       mechanisms(5) pkix(7) id-mod(0) id-mod-pkix-attest-01(TBDMOD)}

DEFINITIONS IMPLICIT TAGS ::= BEGIN

EXPORTS ALL;

IMPORTS

Certificate, id-pkix
 FROM PKIX1Explicit-2009
     {iso(1) identified-organization(3) dod(6) internet(1) security(5)
     mechanisms(5) pkix(7) id-mod(0) id-mod-pkix1-explicit-02(51)}


EXTENSION, ATTRIBUTE, AttributeSet{}, SingleAttribute{}
    FROM PKIX-CommonTypes-2009 -- from [RFC5912]
    { iso(1) identified-organization(3) dod(6) internet(1) security(5)
      mechanisms(5) pkix(7) id-mod(0) id-mod-pkixCommon-02(57) }

id-aa
FROM SecureMimeMessageV3dot1
    { iso(1) member-body(2) us(840) rsadsi(113549)
        pkcs(1) pkcs-9(9) smime(16) modules(0) msg-v3dot1(21) }
  ;
  

-- Branch for attestation statement types
id-ata OBJECT IDENTIFIER ::= { id-pkix (TBD1) }


CertificateAlternatives ::=
   CHOICE {
      cert              Certificate,
                           -- Using the Certificate ASN.1
                           -- structure as defined in RFC 5280.
      typedCert     [0] TypedCert,
      typedFlatCert [1] TypedFlatCert,
      ...
   }

TYPED-CERT ::= TYPE-IDENTIFIER

TypedCert ::= SEQUENCE {
      certType     TYPED-CERT.&id({TypedCertSet}),
      content     TYPED-CERT.&Type ({TypedCertSet}{@certType})
  }

TypedCertSet TYPED-CERT ::= {
   ... -- None defined in this document --
  }

TypedFlatCert ::= SEQUENCE {
    certType OBJECT IDENTIFIER,
    certBody OCTET STRING
}

EVIDENCE-STATEMENT ::= TYPE-IDENTIFIER

EvidenceStatementSet EVIDENCE-STATEMENT ::= {
   ... -- None defined in this document --
}

EvidenceStatements ::= SEQUENCE SIZE (1..MAX) OF EvidenceStatement

EvidenceStatement ::= SEQUENCE {
   type   EVIDENCE-STATEMENT.&id({EvidenceStatementSet}),
   stmt   EVIDENCE-STATEMENT.&Type({EvidenceStatementSet}{@type}),
   hint   UTF8String OPTIONAL
}

id-aa-evidence OBJECT IDENTIFIER ::= { id-aa TBDAA }

-- For PKCS#10
attr-evidence ATTRIBUTE ::= {
  TYPE EvidenceBundles
  IDENTIFIED BY id-aa-evidence
}


-- For CRMF
ext-evidence EXTENSION ::= {
  SYNTAX EvidenceBundles
  IDENTIFIED BY id-aa-evidence
}

EvidenceBundles ::= SEQUENCE SIZE (1..MAX) OF EvidenceBundle

EvidenceBundle ::= SEQUENCE
{
  evidence EvidenceStatements,
  certs SEQUENCE SIZE (1..MAX) OF CertificateAlternatives OPTIONAL
}


END
]]></artwork>
      <section anchor="tcg-dice-conceptualmessagewrapper-in-csr">
        <name>TCG DICE ConceptualMessageWrapper in CSR</name>
        <t>This section gives an example of extending the ASN.1 module above to carry an existing ASN.1-based evidence statement. The example used is the Trusted Computing Group DICE Attestation Conceptual Message Wrapper, as defined in <xref target="TCGDICE1.1"/>.</t>
        <artwork><![CDATA[
tcgDiceEvidenceStatementES EVIDENCE-STATEMENT ::=
  { ConceptualMessageWrapper IDENTIFIED BY tcg-dice-conceptual-message-wrapper }

-- where ConceptualMessageWrapper and tcg-dice-conceptual-message-wrapper 
-- are defined in DICE-Attestation-Architecture-Version-1.1-Revision-17_1August2023.pdf

EvidenceStatementSet EVIDENCE-STATEMENT ::= {
  tcgDiceEvidenceStatementES, ...
}

]]></artwork>
      </section>
    </section>
    <section anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>This specification is the work of a design team created by the chairs of the
LAMPS working group. The following persons, in no specific order,
contributed to the work: Richard Kettlewell, Chris Trufan, Bruno Couillard,
Jean-Pierre Fiset, Sander Temme, Jethro Beekman, Zsolt Rózsahegyi, Ferenc
Pető, Mike Agrenius Kushner, Tomas Gustavsson, Dieter Bong, Christopher Meyer,
Michael StJohns, Carl Wallace, Michael Richardson, Tomofumi Okubo, Olivier
Couillard, John Gray, Eric Amador, Johnson Darren, Herman Slatman, Tiru Reddy,
Corey Bonnell, Argenius Kushner, James Hagborg, Monty Wiseman, John Kemp,
Ned Smith.</t>
      <t>We would like to specifically thank Mike StJohns for his work on an earlier
version of this draft.</t>
      <t>We would also like to specifically thank Monty Wiseman for providing the
appendix showing how to carry a TPM 2.0 Attestation, and to Corey Bonell for helping with the hackathon scripts to bundle it into a CSR.</t>
      <t>Finally, we would like to thank Andreas Kretschmer and Thomas Fossati for their
feedback based on implementation experience, and Daniel Migault and Russ Housley
for their review comments.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
i6tO/0ArXfQXxauj1eJ46F75jYv9Zt50bs8a9fNuaeWu7kaD+8X6edB8OshW
jVXdMEzAGau1Go+dUWXsv2qTF/v0eJWtVDtG9er9tFodFPHLC0Cw8zdAMCNY
wd+Xj5XxnTO+ub018Di9m/r46ezgrt4+08aVgdEcG5fj7v1otLCD5pVxfnhm
nvaD53G/dPb4sny8uLiev1kV/+mqW3act7FRMWoHd6Zr4I/WHpS9Jv06oP8a
XeOpXm0ZjefHvFFtGtVV87H5/j6qFR7bz/vHtXltNDscrA6s9Vm+smifazPr
oHEzfZnm7p0pPXB4aCwao2pl9ly+8Vaj16vuazs4GN6ugvFdqzvZt81Hu3vu
T097dqXZrGhG7fLMtKaN1cF572Jy3l/Z2eC99P7yfn63Hrk556zeyfu5x/un
54Oj0/ag/VRaLIPB4/jisPTQXLdW2uVz08gazqA9ubozzifns+yi89J/vp0t
g/vSy+m8BqJ94/XmuXBcbBcf7IfF9LT5YM9Wdxcvg+Ppa1d7eekMRrP3V3fW
NVszc3S3eqgYN7n2qXd2d3BtPhw1b6f3pbNXt3Bu7u/7j55bXh9M6jeXhebl
w7B+qk1v6s8Hq8pxe2Iv7l7vD7rzXtZu+vv1XKuWX5x3mtW36iqfaxRK+cqp
bQzNLLAq78h5cc4ny9JLSxvfXzSdietMLkeXD9P7u9myuT8fHbwXb84euvft
J9fu2/akM7g+qnuL19zD/l3rLd/bNxb5m/xV+f1dO3Zn7vFFsH49GDzVbk/9
y4Ffqmdv63CtH43OowFU6tIwHg0QNQ1AAKNujNlxw2/vg0pJuzWHp5X6+uJq
v1t8DYpnxbPX48fuZVAZ1o2sfbq/31kNRlZ9VutdHhw8DIftavvmsrc/u36x
Lj13HGiX9fXiaHb9BCe2GE1bgxvvKbt+XVy1Fnbnbd9uZ6vjru+5p4+Pw2bz
7K1z+XyfWy5eDxfDotOuN4+0zu1j7/TFcJ9v9997s+ubgZWzD6ru8Or+ovN4
8TI+bF7d5Kr52vViXV2Orodu77H4+vo2PJ4cng7q46m2mGcvbovv1/5lf/hw
PFy3upfHjw/d8lN7MR7aj/6gUO1cLaf3/n39ynUfGpXe2fPh8HDefHk6fB51
OtqF9ewuluv6bbV00KhdX9nNhzNneXs5eZoXis7dut50S43lwct8cTQ+WlaP
cvnx4erWKz4/vQ5vBrc32vTSqT5X7o7fzKOL9mriHNysHoZnlWA4u1ub90/z
p4fm4ulhMuk/wHXslp77+Sxc774N171mvlermjFtVRu1/W6jeu9f5l9fn/PH
N89918y1HifTgj9vGdnTavf1tNvsF2pAxqurW6N1dvNWfTfOkX9oFeOxZ7w0
7lo3q1V1/Fi7u7lp1ox2p1e/eav3jGvGZAatav18bT607cf70rTV8VenNzT2
QqtVzmGZndllr/521c25j/dt7/Gh4/bzxbfGs3HLJvBbtXvGpR4L7fXlQ2c6
KNy81d6NtsYGtFoV53zZL3RqNz3Daqyy63bNgNtwu2rVWuvW88Tkn+VbtRv5
WevMeNPEXv7sVjSxlz+7FQ33Eq6i1TJmDQ+OqNJ8NtqV8curoNrASBuGcQX8
s2zg99XxBfxeNzTvfPVYGE7mz8NSa1b0yqeD57fD1/Vs3quVz/enw9Ht3Xha
bTy83c1nT7OHo4o1OBxdD4zOZaVTfAZF6+DxAC7xu2d1luV7uOKH5+XSQ+va
Pl8+Wvc39be7y0L7tmS/Pxzt1+5eH7K2XzgzOrejl/XDuFF+v9TylZfu+Gaw
eHw1OnnPPj18PNtfmfVi8bV6Z9gHL8eOY+dL1cA/e1/XDoPV/XJZL1SGk/dK
UH7OWYaWe70fXy3vrP7drLVolwoDs/1iGa3+obl/1bQ9//bAqvavs7P1oDZa
mf2zca7Wrt7ZbmE+vrk/t+61Rdt/vB9U2zUgA49XFxen7+1iMFvkfAvA/NS5
vr7NnR12T6fj18vr6Tlc9ouaczk4rucmlYfyuHquGaujl/fO4WHrodu+P34+
9s6cxytEgRujknQPjGITTqTabY+XwB+fF9p757ViAxO2js7XhadRe2UO7myn
Wyh3pxdD88kfWZP913nn8LG6thazbr7pl0HOyV69d73yDexZaz/emLNa1+k/
++du1b2/fClcFbsH58bD2cPwwvIr7dPH8sHqtOC8tbrP7655c3j7cOX5D/fB
+PridqxlDwr9+3b5/NG7uZ7nm9Z4bB/M69lap55dLq/ylyOjcJk7nppHs7vH
ZbZ7/3KwrD+XvDvv9ereOHtcaMXebXX/eDorvBzezE7Ho0OQ5wrB9bheOHiw
D4LmxdV0lG0Nhu3RXbtjFIPp5KK///xkAgUzrPZorg2Pip3ec7O66jzfDILC
urt/Ogy6E/vhdrheZIsv4xdvcdMb5TuVp/2bt4b52M0O7l5H9mOnUy9Vn640
t+W8tu6y9ffV4gDJVB/IlDEdVBvG7ei6+Dh79t9vHg/uAucgWxyXJoF/3j5S
T0dLIlO/crW1JDL1K1dbSyJTP0elKkil3jX2YUt++Ktb0T6iuD+zFe0jiru5
lU2RX0OZP1HkPz86rwfXB3e1UccZ+p1Z+7XqF+zagXt5133IX3a9l7v8oF/U
qs/H16VXUL3fhpXW4sYdXKwfD+6fCi+XBfvy4XzkFp7fL2+Os4PWi3teLvur
weNxsVkcHnQv68f1I197KO9Xe9b6brRYPhWzw77Xf7NH7Vrn6X4+rFTrQfb8
4OUxWNXPW+3X1al37T/6T+7NpHBqHTdb9rWrndo33cZZw3b9aen4rToqNuZH
Z5fGu9G96b13xsb5+KiXLw6f7bvj0/LU6ezPaxedC7Nlr/oT83a91LzHu/3j
q7Ffurmc3XRqhZdFcN32D0pH9uy1nz9vreeN/Pmw9lQeXT3namWjeXNee7u6
6c7fX89fS1euNsxeta7r/tnxkz21W1fP79WL2/x1aeDUrTv3/t0z7cejpn/4
nj8oH1zevDCRvxfyDI0xDZ8zjbrxvMzO+w/2FDT/2vHb+eXKOcwurg46N4/F
9vxtMB2VGvZ989U6u8nlff+irvnGqzucdd7d8tt74WC9//RSqjy2Rg+1oFLs
nh48gKbxsHBz54Oj00fv9nxcch8eO2++9fw87GffDy+0+/emVZqWJo2Xfvfc
uRzdt98OaoPTtXX1UOuMOr3VlbGoFu18s3VTObtqVe9eC/3g5mFxcV8eufVa
Q1uUS6ujUS/72LcfhuPO+vbwsnP1ti67w1btdVx77U2Or7t5c/g6beTbB0ah
3b7L9y9KppV9nw4du61Z5ffXxrx54bWfT5flnL+c31Yn+4/jm4uDy8pt9j7b
AhrsePPyogGks7xcHlxP96t3D6X382b9rHWotd7tabk9rpr3VudhnB0ed86c
8nv2fLWoPz30JufBfHl03jMuo5zarxG6N45vtMK4HFTLR5Zp9u3lefnlNpdd
Gof1iWEUzG71yH69er15G3uDcnZcenb21+XZ0229fD+pW939bjt/r1mrbt0r
XO5f3gxHQTW4r/dAUT5/uBu9vq5qk9Lty6xS6hwFQ3//7NJr366PB3e94sXB
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

-->

</rfc>
