<?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.23 (Ruby 3.3.6) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-lamps-csr-attestation-17" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.27.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-17"/>
    <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>
    <author initials="N." surname="Smith" fullname="Ned Smith">
      <organization>Intel Corporation</organization>
      <address>
        <postal>
          <country>United States</country>
        </postal>
        <email>ned.smith@intel.com</email>
      </address>
    </author>
    <date year="2025" month="March" day="02"/>
    <keyword>PKI</keyword>
    <keyword>PKCS#10</keyword>
    <keyword>CRMF</keyword>
    <keyword>Attestation</keyword>
    <keyword>Evidence</keyword>
    <keyword>Certificate Signing Requests</keyword>
    <abstract>
      <?line 117?>

<t>A PKI end entity requesting a certificate from a Certification Authority (CA) may wish to offer trustworthy claims about the platform generating the certification request and the environment associated with the corresponding private key, such as whether the private key resides on a hardware security module.</t>
      <t>This specification defines an attribute and an extension that allow for conveyance of Evidence and
Attestation Results in Certificate Signing Requests (CSRs), such as PKCS#10 or Certificate Request Message Format (CRMF) payloads. This provides an elegant and automatable mechanism for transporting Evidence to a Certification Authority.</t>
      <t>Including Evidence and Attestation Results along with a CSR can help to improve the assessment of the security posture for the private key, and can help the Certification Authority to assess whether it satisfies the requested certificate profile.</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-ietf-lamps-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 126?>

<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 or Attestation Results of the security properties of its environments in which the private keys are stored in that request.</t>
      <t>Evidence are appraised by Verifiers, which typically produces Attestation Results that serve as input for validating incoming certificate requests against specified certificate policies.
Verifiers are associated with Registration Authorities (RAs) or CAs and function as logical entities responsible for processing Evidence and producing Attestation Results.
As remote attestation technology matures, it is natural for a Certification Authority to want proof that the requesting entity is in a state that matches the certificate profile.
At the time of writing, the most notable example is the Code-Signing Baseline Requirements (CSBR) document maintained by the CA/Browser Forum <xref target="CSBR"/>, 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", which is a natural fit to enforce via remote attestation.</t>
      <t>This specification defines an attribute and an extension that allow for conveyance of Evidence and Attestation Results in Certificate Signing Requests (CSRs), such as PKCS#10 <xref target="RFC2986"/> or Certificate Request Message Format (CRMF) <xref target="RFC4211"/> payloads.
This CSR extension satisfies CA/B Forum's CSBR <xref target="CSBR"/> requirements for key protection assurance.</t>
      <t>As outlined in the IETF RATS architecture <xref target="RFC9334"/>, an Attester (typically a device) produces a signed collection of Claims that constitute Evidence about its running environment(s).
The term "attestation" is not explicitly defined in RFC 9334 but was later clarified in <xref target="I-D.ietf-rats-tpm-based-network-device-attest"/>.
It refers to the process of generating and evaluating remote attestation Evidence.</t>
      <t>After the Verifier appraises the Evidence, it generates a new structure called an Attestation Result.
A Relying Party utilizes Attestation Results to inform risk or policy-based decisions that consider trustworthiness of the attested entity.
This document relies on <xref target="architecture"/> as the foundation for how the various roles within the RATS architecture correspond to a certificate requester and a CA/RA.</t>
      <t>The IETF RATS architecture <xref target="RFC9334"/> defines two communication patterns: the <em>background-check model</em> and the <em>passport model</em>.
In the background-check model, the Relying Party receives Evidence in the CSR from the Attester and must interact with a Verifier service directly to obtain Attestation Results.
In contrast, the passport model requires the Attester to first interact with the Verifier service to obtain an Attestation Result token that is then relayed to the Relying Party.
This specification defines both communication patterns.</t>
      <t>Several standard and proprietary remote 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. Hence, this specification focuses on (1) the conveyance of Evidence and Attestation Results via CSRs while making minimal assumptions about content or format of the transported payload and (2) the conveyance of sets of certificates used for validation of Evidence.</t>
      <t>The certificates typically contain one or more certification paths rooted in a device manufacturer trust anchor and the end entity certificate being on the device in question. The end entity certificate is associated with key material that takes on the role of an Attestation Key and is used as Evidence originating from the Attester.</t>
      <t>This document specifies a CSR Attribute (or Extension for Certificate Request Message Format (CRMF) CSRs) for carrying Evidence and Attestation Results.</t>
      <ul spacing="normal">
        <li>
          <t>Evidence is 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, a microservice or some other service) will be capable of parsing it. A set of EvidenceStatement structures may be grouped together along with the set of CertificateChoice structures needed to validate them to form a EvidenceBundle.</t>
        </li>
        <li>
          <t>Attestation Results are carried in the AttestationResult along with an OID to identify its type. A set of AttestationResult structures may be grouped together to form an AttestationResultBundle.</t>
        </li>
      </ul>
      <t>A CSR may contain one or more Evidence payloads. For example Evidence
asserting the storage properties of a private key, Evidence
asserting firmware version and other general properties
of the device, or Evidence signed using different cryptographic
algorithms. Like-wise a CSR may also contain one or more Attestation Result payloads.</t>
      <t>With these attributes, additional
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 and Attestation Results within CSR. The exact format of the
Evidence and Attestation Results 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 Result (AR), Attester,
Verifier, Target Environment, Attesting Environment, Composite Device,
Lead Attester, Attestation Key, 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 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 messages in the Certificate Request Message Format (CRMF) <xref target="RFC4211"/>
to be "CSRs". In this document, the terms "CSR" and Certificate Request
message are used interchangeably.</t>
      <t>The term Hardware Security Modules (HSM) is used generically to refer to the
combination of hardware and software designed to protect keys from unauthorized
access. Other commonly used terms include Secure Element and Trusted Execution
Environment.</t>
    </section>
    <section anchor="architecture">
      <name>Architecture</name>
      <t><xref target="fig-arch-background"/> 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
defines the passport model, as described in <xref section="5.2" sectionFormat="of" target="RFC9334"/>.
In the passport model, the Attester transmits Evidence directly to the
Verifier to obtain an Attestation Result, which is subsequently forwarded
to the Relying Party.</t>
      <t>The choice of model depends on various factors. For instance, the
background-check model is preferred when direct real-time interaction
between the Attester and the Verifier is not feasible.</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 role and Verifier role collapse into a
single physical entity. The Verifier functionality can, however,
also be kept separate from the RA functionality. For example,
security concerns may require parsers of Evidence formats to be logically
or physically separated from the core RA and CA functionality.</t>
      <t>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. Like-wise, the interface between the Attester
and the Verifier used in the passport model is also out-of-scope for this
document.</t>
      <t><xref target="fig-arch-background"/> shows an example data flow where Evidence is included in a
CSR in the background-check model. The CSR is parsed by the RA component of a
CA, which extracts the Evidence and forwards it to a
trusted Verifier. The RA receives back an Attestation Result, which it uses
to decide whether this Evidence meets its policy for certificate issuance
and if it does then the certificate request is forwarded to the CA for issuance.
This diagram overlays PKI entities with RATS roles in parentheses.</t>
      <figure anchor="fig-arch-background">
        <name>Example data flow demonstrating the architecture with Background Check Model.</name>
        <artset>
          <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="272" width="552" viewBox="0 0 552 272" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 8,176 L 8,256" fill="none" stroke="black"/>
              <path d="M 112,176 L 112,256" fill="none" stroke="black"/>
              <path d="M 216,32 L 216,96" fill="none" stroke="black"/>
              <path d="M 216,176 L 216,256" fill="none" stroke="black"/>
              <path d="M 256,104 L 256,192" fill="none" stroke="black"/>
              <path d="M 320,96 L 320,192" fill="none" stroke="black"/>
              <path d="M 360,32 L 360,96" fill="none" stroke="black"/>
              <path d="M 360,176 L 360,256" fill="none" stroke="black"/>
              <path d="M 496,176 L 496,256" fill="none" stroke="black"/>
              <path d="M 544,176 L 544,256" fill="none" stroke="black"/>
              <path d="M 216,32 L 360,32" fill="none" stroke="black"/>
              <path d="M 216,96 L 360,96" fill="none" stroke="black"/>
              <path d="M 8,176 L 112,176" fill="none" stroke="black"/>
              <path d="M 216,176 L 248,176" fill="none" stroke="black"/>
              <path d="M 264,176 L 312,176" fill="none" stroke="black"/>
              <path d="M 328,176 L 360,176" fill="none" stroke="black"/>
              <path d="M 496,176 L 544,176" fill="none" stroke="black"/>
              <path d="M 112,192 L 208,192" fill="none" stroke="black"/>
              <path d="M 224,192 L 256,192" fill="none" stroke="black"/>
              <path d="M 320,192 L 352,192" fill="none" stroke="black"/>
              <path d="M 368,192 L 488,192" fill="none" stroke="black"/>
              <path d="M 8,256 L 112,256" fill="none" stroke="black"/>
              <path d="M 216,256 L 360,256" fill="none" stroke="black"/>
              <path d="M 496,256 L 544,256" fill="none" stroke="black"/>
              <polygon class="arrowhead" points="496,192 484,186.4 484,197.6" fill="black" transform="rotate(0,488,192)"/>
              <polygon class="arrowhead" points="360,192 348,186.4 348,197.6" fill="black" transform="rotate(0,352,192)"/>
              <polygon class="arrowhead" points="328,168 316,162.4 316,173.6" fill="black" transform="rotate(90,320,168)"/>
              <polygon class="arrowhead" points="264,104 252,98.4 252,109.6" fill="black" transform="rotate(270,256,104)"/>
              <polygon class="arrowhead" points="216,192 204,186.4 204,197.6" fill="black" transform="rotate(0,208,192)"/>
              <g class="text">
                <text x="400" y="52">Compare</text>
                <text x="468" y="52">Evidence</text>
                <text x="292" y="68">(Verifier)</text>
                <text x="400" y="68">against</text>
                <text x="472" y="68">Appraisal</text>
                <text x="396" y="84">Policy</text>
                <text x="212" y="132">Evidence</text>
                <text x="376" y="132">Attestation</text>
                <text x="356" y="148">Result</text>
                <text x="32" y="212">End</text>
                <text x="156" y="212">Evidence</text>
                <text x="276" y="212">Registration</text>
                <text x="416" y="212">Attestation</text>
                <text x="516" y="212">CA</text>
                <text x="44" y="228">Entity</text>
                <text x="132" y="228">in</text>
                <text x="160" y="228">CSR</text>
                <text x="264" y="228">Authority</text>
                <text x="324" y="228">(RA)</text>
                <text x="396" y="228">Result</text>
                <text x="436" y="228">in</text>
                <text x="516" y="228">(RP)</text>
                <text x="60" y="244">(Attester)</text>
                <text x="260" y="244">(Relying</text>
                <text x="324" y="244">Party)</text>
                <text x="384" y="244">CSR</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art"><![CDATA[
                          .-----------------.
                          |                 | Compare Evidence
                          |    (Verifier)   | against Appraisal
                          |                 | Policy
                          '------------+----'
                               ^       |
                      Evidence |       | Attestation
                               |       | Result
                               |       v
.------------.            .----|-------|----.                .-----.
|            +----------->|----'       '--->|--------------->|     |
| End        | Evidence   | Registration    | Attestation    | CA  |
| Entity     | in CSR     | Authority (RA)  | Result in      |(RP) |
| (Attester) |            | (Relying Party) | CSR            |     |
'------------'            '-----------------'                '-----'
]]></artwork>
        </artset>
      </figure>
      <t><xref target="fig-arch-passport"/> illustrates the passport model, where the
Attester first communicates with the Verifier to obtain the Attestation
Result, which is subsequently included in the CSR.</t>
      <figure anchor="fig-arch-passport">
        <name>Example data flow demonstrating the architecture with Passport Model.</name>
        <artset>
          <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="256" width="552" viewBox="0 0 552 256" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 8,160 L 8,240" fill="none" stroke="black"/>
              <path d="M 32,48 L 32,152" fill="none" stroke="black"/>
              <path d="M 80,80 L 80,176" fill="none" stroke="black"/>
              <path d="M 112,160 L 112,240" fill="none" stroke="black"/>
              <path d="M 216,32 L 216,96" fill="none" stroke="black"/>
              <path d="M 224,160 L 224,240" fill="none" stroke="black"/>
              <path d="M 360,32 L 360,96" fill="none" stroke="black"/>
              <path d="M 368,160 L 368,240" fill="none" stroke="black"/>
              <path d="M 488,160 L 488,240" fill="none" stroke="black"/>
              <path d="M 544,160 L 544,240" fill="none" stroke="black"/>
              <path d="M 216,32 L 360,32" fill="none" stroke="black"/>
              <path d="M 32,48 L 208,48" fill="none" stroke="black"/>
              <path d="M 80,80 L 208,80" fill="none" stroke="black"/>
              <path d="M 216,96 L 360,96" fill="none" stroke="black"/>
              <path d="M 8,160 L 72,160" fill="none" stroke="black"/>
              <path d="M 88,160 L 112,160" fill="none" stroke="black"/>
              <path d="M 224,160 L 368,160" fill="none" stroke="black"/>
              <path d="M 488,160 L 544,160" fill="none" stroke="black"/>
              <path d="M 80,176 L 216,176" fill="none" stroke="black"/>
              <path d="M 376,176 L 480,176" fill="none" stroke="black"/>
              <path d="M 8,240 L 112,240" fill="none" stroke="black"/>
              <path d="M 224,240 L 368,240" fill="none" stroke="black"/>
              <path d="M 488,240 L 544,240" fill="none" stroke="black"/>
              <polygon class="arrowhead" points="488,176 476,170.4 476,181.6" fill="black" transform="rotate(0,480,176)"/>
              <polygon class="arrowhead" points="224,176 212,170.4 212,181.6" fill="black" transform="rotate(0,216,176)"/>
              <polygon class="arrowhead" points="216,48 204,42.4 204,53.6" fill="black" transform="rotate(0,208,48)"/>
              <polygon class="arrowhead" points="112,176 100,170.4 100,181.6" fill="black" transform="rotate(0,104,176)"/>
              <polygon class="arrowhead" points="88,152 76,146.4 76,157.6" fill="black" transform="rotate(90,80,152)"/>
              <g class="text">
                <text x="60" y="36">Evidence</text>
                <text x="400" y="52">Compare</text>
                <text x="468" y="52">Evidence</text>
                <text x="284" y="68">(Verifier)</text>
                <text x="400" y="68">against</text>
                <text x="472" y="68">Appraisal</text>
                <text x="396" y="84">Policy</text>
                <text x="136" y="116">Attestation</text>
                <text x="116" y="132">Result</text>
                <text x="284" y="180">Registration</text>
                <text x="32" y="196">End</text>
                <text x="168" y="196">Attestation</text>
                <text x="272" y="196">Authority</text>
                <text x="424" y="196">Attestation</text>
                <text x="516" y="196">CA</text>
                <text x="44" y="212">Entity</text>
                <text x="148" y="212">Result</text>
                <text x="188" y="212">in</text>
                <text x="404" y="212">Result</text>
                <text x="444" y="212">in</text>
                <text x="516" y="212">(RP)</text>
                <text x="60" y="228">(Attester)</text>
                <text x="136" y="228">CSR</text>
                <text x="268" y="228">(Relying</text>
                <text x="332" y="228">Party)</text>
                <text x="392" y="228">CSR</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art"><![CDATA[
   Evidence               .-----------------.
   +--------------------->|                 | Compare Evidence
   |                      |   (Verifier)    | against Appraisal
   |     +----------------|                 | Policy
   |     |                '-----------------'
   |     | Attestation
   |     | Result
   |     v
.--------|---.             .-----------------.              .------.
|        +-->+------------>| Registration    |------------->|      |
| End        | Attestation | Authority       | Attestation  |  CA  |
| Entity     | Result in   |                 | Result in    | (RP) |
| (Attester) | CSR         | (Relying Party) | CSR          |      |
'------------'             '-----------------'              '------'
]]></artwork>
        </artset>
      </figure>
      <t>RFC 9334 <xref target="RFC9334"/> discusses different security and privacy aspects that need to be
considered when developing and deploying a remote attestation solution. For example,
Evidence may need to be protected against replay and <xref section="10" sectionFormat="of" target="RFC9334"/> lists
approach for offering freshness. There are also concerns about the exposure of
persistent identifiers by utilizing attestation technology, which are discussed in
<xref section="11" sectionFormat="of" target="RFC9334"/>. 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 <xref section="12" sectionFormat="of" target="RFC9334"/>.
Most of these aspects are, however, outside the scope of this specification but relevant
for use with a given attestation technology.</t>
      <t>The focus of this specification is on the transport of Evidence and Attesation Results
from the Attester to the Relying Party via existing CSR messages.</t>
    </section>
    <section anchor="information-model">
      <name>Information Model</name>
      <section anchor="model-for-evidence-in-csr">
        <name>Model for Evidence in CSR</name>
        <t>To support a number of different use cases for the transmission of
Evidence and certificate chains in a CSR the structure
shown in <xref target="fig-info-model"/> is used.</t>
        <t>On a high-level, the structure is composed as follows:
A PKCS#10 attribute or a CRMF extension contains one
EvidenceBundle structure. The EvidenceBundle contains one or more
EvidenceStatement structures as well as one or more
CertificateChoices which enable to carry various format of
certificates.</t>
        <t>Note: Since an extension must only be included once in a certificate
see <xref section="4.2" sectionFormat="of" target="RFC5280"/>, this PKCS#10 attribute
or the CRMF extension <bcp14>MUST</bcp14> only be included once in a CSR.</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,240 L 8,272" fill="none" stroke="black"/>
                <path d="M 80,104 L 80,232" fill="none" stroke="black"/>
                <path d="M 152,144 L 152,232" fill="none" stroke="black"/>
                <path d="M 168,32 L 168,96" fill="none" stroke="black"/>
                <path d="M 176,240 L 176,272" fill="none" stroke="black"/>
                <path d="M 264,128 L 264,208" fill="none" stroke="black"/>
                <path d="M 320,240 L 320,336" fill="none" stroke="black"/>
                <path d="M 472,128 L 472,208" fill="none" stroke="black"/>
                <path d="M 480,240 L 480,336" fill="none" stroke="black"/>
                <path d="M 8,32 L 168,32" fill="none" stroke="black"/>
                <path d="M 8,96 L 168,96" fill="none" stroke="black"/>
                <path d="M 264,128 L 472,128" fill="none" stroke="black"/>
                <path d="M 152,144 L 256,144" fill="none" stroke="black"/>
                <path d="M 264,160 L 472,160" fill="none" stroke="black"/>
                <path d="M 264,208 L 472,208" fill="none" stroke="black"/>
                <path d="M 8,240 L 176,240" fill="none" stroke="black"/>
                <path d="M 320,240 L 480,240" fill="none" stroke="black"/>
                <path d="M 184,256 L 312,256" fill="none" stroke="black"/>
                <path d="M 8,272 L 176,272" fill="none" stroke="black"/>
                <path d="M 320,272 L 480,272" fill="none" stroke="black"/>
                <path d="M 320,336 L 480,336" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="320,256 308,250.4 308,261.6" fill="black" transform="rotate(0,312,256)"/>
                <polygon class="arrowhead" points="264,144 252,138.4 252,149.6" fill="black" transform="rotate(0,256,144)"/>
                <polygon class="arrowhead" points="192,256 180,250.4 180,261.6" fill="black" transform="rotate(180,184,256)"/>
                <polygon class="arrowhead" points="160,232 148,226.4 148,237.6" fill="black" transform="rotate(90,152,232)"/>
                <polygon class="arrowhead" points="88,232 76,226.4 76,237.6" fill="black" transform="rotate(90,80,232)"/>
                <polygon class="arrowhead" points="88,104 76,98.4 76,109.6" fill="black" transform="rotate(270,80,104)"/>
                <g class="text">
                  <text x="48" y="52">PKCS#10</text>
                  <text x="120" y="52">Attribute</text>
                  <text x="76" y="68">or</text>
                  <text x="36" y="84">CRMF</text>
                  <text x="96" y="84">Extension</text>
                  <text x="56" y="116">1</text>
                  <text x="228" y="132">1..n</text>
                  <text x="348" y="148">CertificateChoices</text>
                  <text x="320" y="180">Certificate</text>
                  <text x="380" y="180">OR</text>
                  <text x="364" y="196">OtherCertificateFormat</text>
                  <text x="56" y="212">1</text>
                  <text x="136" y="228">1</text>
                  <text x="192" y="244">1</text>
                  <text x="284" y="244">1..n</text>
                  <text x="84" y="260">EvidenceBundle</text>
                  <text x="400" y="260">EvidenceStatement</text>
                  <text x="348" y="292">Type</text>
                  <text x="368" y="308">Statement</text>
                  <text x="348" y="324">Hint</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![CDATA[
 +-------------------+
 | PKCS#10 Attribute |
 |       or          |
 | CRMF Extension    |
 +--------+----------+
       1  ^
          |                1..n  +-------------------------+
          |        +------------>| CertificateChoices      |
          |        |             +-------------------------+
          |        |             | Certificate OR          |
          |        |             | OtherCertificateFormat  |
       1  |        |             +-------------------------+
          v      1 v
 +--------------------+ 1         1..n  +-------------------+
 |  EvidenceBundle    |<--------------->| EvidenceStatement |
 +--------------------+                 +-------------------+
                                        | Type              |
                                        | Statement         |
                                        | Hint              |
                                        +-------------------+
]]></artwork>
          </artset>
        </figure>
        <t>A conformant implementation of an entity processing the CSR structures <bcp14>MUST</bcp14> be prepared
to use certificates found in the EvidenceBundle structure to build a certification
path to validate any EvidenceStatement.
The following use cases are supported, as described in the sub-sections below.</t>
        <section anchor="case-1-evidence-bundle-without-certificate-chain">
          <name>Case 1 - Evidence Bundle without Certificate Chain</name>
          <t>A single Attester, which only distributes Evidence without an attached certificate chain.
In the use case, the Verifier is assumed to be in possession of the certificate chain already
or the Verifier directly trusts the Attestation Key and therefore no certificate chain needs
to be conveyed in the CSR.</t>
          <t>As a result, one EvidenceBundle is included in a CSR that contains a single EvidenceStatement
without the CertificateChoices structure. <xref target="fig-single-attester"/> shows this use case.</t>
          <figure anchor="fig-single-attester">
            <name>Case 1: Evidence Bundle without Certificate Chain.</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,96 L 176,96" fill="none" stroke="black"/>
                  <g class="text">
                    <text x="84" y="52">EvidenceBundle</text>
                    <text x="92" y="68">....................</text>
                    <text x="88" y="84">EvidenceStatement</text>
                  </g>
                </svg>
              </artwork>
              <artwork type="ascii-art"><![CDATA[
  +--------------------+
  |  EvidenceBundle    |
  +....................+
  | EvidenceStatement  |
  +--------------------+
]]></artwork>
            </artset>
          </figure>
        </section>
        <section anchor="case-2-evidence-bundle-with-certificate-chain">
          <name>Case 2 - Evidence Bundle with Certificate Chain</name>
          <t>A single Attester, which shares Evidence together with a certificate chain, is
shown in <xref target="fig-single-attester-with-path"/>. The CSR conveys an EvidenceBundle
with a single EvidenceStatement and a CertificateChoices structure.</t>
          <figure anchor="fig-single-attester-with-path">
            <name>Case 2: Single Evidence Bundle with Certificate Chain.</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,112 L 216,112" fill="none" stroke="black"/>
                  <g class="text">
                    <text x="84" y="52">EvidenceBundle</text>
                    <text x="112" y="68">.........................</text>
                    <text x="88" y="84">EvidenceStatement</text>
                    <text x="92" y="100">CertificateChoices</text>
                  </g>
                </svg>
              </artwork>
              <artwork type="ascii-art"><![CDATA[
 +-------------------------+
 |  EvidenceBundle         |
 +.........................+
 | EvidenceStatement       |
 | CertificateChoices      |
 +-------------------------+
]]></artwork>
            </artset>
          </figure>
        </section>
        <section anchor="case-3-evidence-bundles-with-multiple-evidence-statements-and-complete-certificate-chains">
          <name>Case 3 - Evidence Bundles with Multiple Evidence Statements and Complete Certificate Chains</name>
          <t>In a Composite Device, which contains multiple Attesters, a collection of Evidence
statements is obtained. In this use case, each Attester returns its Evidence together with a
certificate chain. As a result, multiple EvidenceStatement structures and the corresponding CertificateChoices structure with the
certification chains as provided by the Attester, are included in the CSR.
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>Case 3: Multiple Evidence Structures each with Complete Certificate Chains.</name>
            <artset>
              <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="160" width="560" viewBox="0 0 560 160" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                  <path d="M 8,32 L 8,128" fill="none" stroke="black"/>
                  <path d="M 216,32 L 216,128" fill="none" stroke="black"/>
                  <path d="M 8,32 L 216,32" fill="none" stroke="black"/>
                  <path d="M 8,128 L 216,128" fill="none" stroke="black"/>
                  <g class="text">
                    <text x="84" y="52">EvidenceBundle</text>
                    <text x="112" y="68">.........................</text>
                    <text x="88" y="84">EvidenceStatement</text>
                    <text x="176" y="84">(1)</text>
                    <text x="260" y="84">Provided</text>
                    <text x="308" y="84">by</text>
                    <text x="356" y="84">Attester</text>
                    <text x="400" y="84">1</text>
                    <text x="88" y="100">EvidenceStatement</text>
                    <text x="176" y="100">(2)</text>
                    <text x="260" y="100">Provided</text>
                    <text x="308" y="100">by</text>
                    <text x="356" y="100">Attester</text>
                    <text x="400" y="100">2</text>
                    <text x="92" y="116">CertificateChoices</text>
                    <text x="276" y="116">Certificates</text>
                    <text x="364" y="116">provided</text>
                    <text x="412" y="116">by</text>
                    <text x="460" y="116">Attester</text>
                    <text x="504" y="116">1</text>
                    <text x="528" y="116">and</text>
                    <text x="552" y="116">2</text>
                  </g>
                </svg>
              </artwork>
              <artwork type="ascii-art"><![CDATA[
  +-------------------------+
  |  EvidenceBundle         |
  +.........................+
  | EvidenceStatement (1)   | Provided by Attester 1
  | EvidenceStatement (2)   | Provided by Attester 2
  | CertificateChoices      | Certificates provided by Attester 1 and 2
  +-------------------------+
]]></artwork>
            </artset>
          </figure>
        </section>
      </section>
      <section anchor="model-for-attestation-result-in-csr">
        <name>Model for Attestation Result in CSR</name>
        <t><xref target="fig-info-model-ar"/> illustrates the information model for transmitting
Attestation Results as a PKCS#10 attribute or a CRMF extension. This
structure includes a single AttestationResultBundle, which in turn comprises
one or more AttestationResult structures.</t>
        <figure anchor="fig-info-model-ar">
          <name>Information Model for CSR Attestation Result Conveyance.</name>
          <artset>
            <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="288" width="448" viewBox="0 0 448 288" 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,240 L 8,272" fill="none" stroke="black"/>
                <path d="M 80,104 L 80,232" fill="none" stroke="black"/>
                <path d="M 160,144 L 160,232" fill="none" stroke="black"/>
                <path d="M 168,32 L 168,96" fill="none" stroke="black"/>
                <path d="M 216,240 L 216,272" fill="none" stroke="black"/>
                <path d="M 280,112 L 280,208" fill="none" stroke="black"/>
                <path d="M 440,112 L 440,208" fill="none" stroke="black"/>
                <path d="M 8,32 L 168,32" fill="none" stroke="black"/>
                <path d="M 8,96 L 168,96" fill="none" stroke="black"/>
                <path d="M 280,112 L 440,112" fill="none" stroke="black"/>
                <path d="M 160,144 L 440,144" fill="none" stroke="black"/>
                <path d="M 280,208 L 440,208" fill="none" stroke="black"/>
                <path d="M 8,240 L 216,240" fill="none" stroke="black"/>
                <path d="M 8,272 L 216,272" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="280,144 268,138.4 268,149.6" fill="black" transform="rotate(0,272,144)"/>
                <polygon class="arrowhead" points="168,232 156,226.4 156,237.6" fill="black" transform="rotate(90,160,232)"/>
                <polygon class="arrowhead" points="88,232 76,226.4 76,237.6" fill="black" transform="rotate(90,80,232)"/>
                <polygon class="arrowhead" points="88,104 76,98.4 76,109.6" fill="black" transform="rotate(270,80,104)"/>
                <g class="text">
                  <text x="48" y="52">PKCS#10</text>
                  <text x="120" y="52">Attribute</text>
                  <text x="76" y="68">or</text>
                  <text x="36" y="84">CRMF</text>
                  <text x="96" y="84">Extension</text>
                  <text x="56" y="116">1</text>
                  <text x="236" y="132">1..n</text>
                  <text x="360" y="132">AttestationResult</text>
                  <text x="308" y="164">Type</text>
                  <text x="316" y="180">Result</text>
                  <text x="56" y="212">1</text>
                  <text x="144" y="228">1</text>
                  <text x="112" y="260">AttestationResultBundle</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![CDATA[
+-------------------+
| PKCS#10 Attribute |
|       or          |
| CRMF Extension    |
+-------------------+
      1  ^                        +-------------------+
         |                 1..n   | AttestationResult |
         |         +------------->+-------------------+
         |         |              | Type              |
         |         |              | Result            |
         |         |              |                   |
      1  |         |              +-------------------+
         v       1 v
+-------------------------+
| AttestationResultBundle |
+-------------------------+
]]></artwork>
          </artset>
        </figure>
      </section>
    </section>
    <section anchor="asn1-elements-for-evidence-in-csr">
      <name>ASN.1 Elements for Evidence in CSR</name>
      <section anchor="object-identifiers">
        <name>Object Identifiers</name>
        <t>This document references <tt>id-pkix</tt> and <tt>id-aa</tt>, both defined in <xref target="RFC5911"/> and <xref target="RFC5912"/>.</t>
        <t>This document defines the arc depicted in <xref target="code-ata-arc"/>.</t>
        <figure anchor="code-ata-arc">
          <name>New OID Arc for PKIX Evidence Statement Formats</name>
          <artwork><![CDATA[
-- Arc for Evidence types
id-ata OBJECT IDENTIFIER ::= { id-aa (TBD1) }
]]></artwork>
        </figure>
      </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
Evidence bundle of type <tt>EvidenceBundle</tt> containing
one or more Evidence statements of a type <tt>EvidenceStatement</tt> along with
optional certificates for certification path building.
This structure enables different Evidence statements to share a
certification path without duplicating it in the attribute.</t>
        <figure anchor="code-EvidenceStatementSet">
          <name>Definition of EvidenceStatementSet</name>
          <artwork><![CDATA[
EVIDENCE-STATEMENT ::= TYPE-IDENTIFIER

EvidenceStatementSet EVIDENCE-STATEMENT ::= {
   ... -- None defined in this document --
}
]]></artwork>
        </figure>
        <t>The expression illustrated in <xref target="code-EvidenceStatementSet"/> maps ASN.1 Types
for Evidence Statements to the OIDs
that identify them. These mappings are used to construct
or parse EvidenceStatements. Evidence Statements are typically
defined in other IETF standards, other standards bodies,
or vendor proprietary formats along with corresponding OIDs that identify them.</t>
        <t>This list is left unconstrained in this document. However, implementers can
populate it with the formats that they wish to support.</t>
        <figure anchor="code-EvidenceStatement">
          <name>Definition of EvidenceStatement</name>
          <artwork><![CDATA[
EvidenceStatement ::= SEQUENCE {
   type   EVIDENCE-STATEMENT.&id({EvidenceStatementSet}),
   stmt   EVIDENCE-STATEMENT.&Type({EvidenceStatementSet}{@type}),
   hint   IA5String OPTIONAL
}
]]></artwork>
        </figure>
        <t>In <xref target="code-EvidenceStatement"/>, type is an OID that indicates the format of the value of stmt.</t>
        <t>Based on the responsibilities of the different roles in the RATS architecture,
Relying Parties need to relay Evidence to Verifiers for evaluation and obtain
an Attestation Result in return. Ideally, the Relying Party should select a Verifier
based on the received Evidence without requiring the Relying Party to inspect the
Evidence itself. This "routing" decision is simple when there is only a single
Verifier configured for use by a Relying Party but gets more complex when there
are different Verifiers available and each of them capable of parsing only certain
Evidence formats.</t>
        <t>In some cases, the EvidenceStatement.type OID will be sufficient information
for the Relying Party to correctly route it to an appropriate Verifier,
however since the type OID only identifies the general data format, it is possible
that multiple Verifiers are registered against the same type OID in which case the
Relying Party will either require additional parsing of the evidence statement, or
the Attester will be required to provide additional information.</t>
        <t>To simplify the task for the Relying Party to select an appropriate Verifier
an optional field, the hint, is available in the EvidenceStatement structure,
as shown in <xref target="code-EvidenceStatement"/>. An Attester <bcp14>MAY</bcp14> include the hint to
the EvidenceStatement and it <bcp14>MAY</bcp14> be processed by the Relying Party. The
Relying Party <bcp14>MAY</bcp14> decide not to trust the information embedded in the hint
or policy <bcp14>MAY</bcp14> override any information provided by the Attester via this hint.</t>
        <t>When the Attester populates the hint, it <bcp14>MUST</bcp14> contain a server name which
uniquely identifies a Verifier. Server names are ASCII strings that
contain a hostname and optional port, where the port is implied to be
"443" if missing.  The names use the format of the authority portion
of a URI as defined in Section 3.2 of <xref target="RFC3986"/>. The names <bcp14>MUST NOT</bcp14>
include a "userinfo" portion of an authority.  For example, a valid
server name might be "verifier.example.com" or
"verifier.example.com:8443", but not "verifier@example.com".</t>
        <t>Relying Parties <bcp14>SHOULD NOT</bcp14> connect to a host name provided in the hint,
especially if the verifier has no previous trust relationship with that
host name, instead this <bcp14>SHOULD</bcp14> be used only as a lookup string for
determining between a list of Verifiers that the Relying Party is
pre-configured to use.</t>
        <t>In a typical usage scenario, the Relying Party is pre-configured with
a list of trusted Verifiers and the corresponding hint values can be used to look
up appropriate Verifier. The Relying Party is also configured with a trust
anchor for each Verifier, which allows the Verifier to validate the signature
protecting the Attestation Result. Tricking a Relying Party into interacting
with an unknown and untrusted Verifier must be avoided.</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 and the corresponding hint identifies the Verifier as
"tpmverifier.example.com".</t>
        <artwork><![CDATA[
EvidenceBundle ::= SEQUENCE {
   evidences SEQUENCE SIZE (1..MAX) OF EvidenceStatement,
   certs SEQUENCE SIZE (1..MAX) OF CertificateChoices OPTIONAL
      -- CertificateChoices MUST only contain certificate or other,
      -- see Section 10.2.2 of [RFC5652]
}
]]></artwork>
        <t>The CertificateChoices structure defined in <xref target="RFC6268"/> allows for carrying certificates in the default X.509 <xref target="RFC5280"/> format, or in other non-X.509 certificate formats. CertificateChoices <bcp14>MUST</bcp14> only contain certificate or other. CertificateChoices <bcp14>MUST NOT</bcp14> contain extendedCertificate, v1AttrCert, or v2AttrCert. Note that for non-ASN.1 certificate formats, the CertificateChoices <bcp14>MUST</bcp14> use <tt>other [3]</tt> with an <tt>OtherCertificateFormat.Type</tt> of <tt>OCTET STRING</tt>, and then can carry any binary data.</t>
        <t>The <tt>certs</tt> field contains a set of certificates that
is intended to validate the contents of an Evidence statement
contained in <tt>evidences</tt>, if required. For each Evidnece statement the set of certificates should contain
the certificate that contains the public key needed to directly validate the
Evidence statement. Additional certificates may be provided, for example, to chain the
Evidence signer key back to an agreed upon trust anchor. No specific order of the certificates in <tt>certs</tt> <bcp14>SHOULD</bcp14> be expected because certificates contained in <tt>certs</tt> may be needed to validate different Evidence statements.</t>
        <t>This specification places no restriction on mixing certificate types within the <tt>certs</tt> field. For example a non-X.509 Evidence signer certificate <bcp14>MAY</bcp14> chain to a trust anchor via a chain of X.509 certificates. It is up to the Attester and its Verifier to agree on supported certificate formats.</t>
        <figure anchor="code-extensions">
          <name>Definitions of CSR attribute and extension</name>
          <artwork><![CDATA[
id-aa-evidence OBJECT IDENTIFIER ::= { id-aa 59 }

-- For PKCS#10
attr-evidence ATTRIBUTE ::= {
  TYPE EvidenceBundle
  COUNTS MAX 1
  IDENTIFIED BY id-aa-evidence
}

-- For CRMF
ext-evidence EXTENSION ::= {
  SYNTAX EvidenceBundle
  IDENTIFIED BY id-aa-evidence
}
]]></artwork>
        </figure>
        <t>The Extension variant illustrated in <xref target="code-extensions"/> is intended only for use within CRMF CSRs and is <bcp14>NOT RECOMMENDED</bcp14> to be used within X.509 certificates due to the privacy implications of publishing Evidence about the end entity's hardware environment. See <xref target="sec-con-publishing-x509"/> for more discussion.</t>
        <t>By the nature of the PKIX ASN.1 classes <xref target="RFC5912"/>, there are multiple ways to convey multiple Evidence statements: by including multiple copies of <tt>attr-evidence</tt> or <tt>ext-evidence</tt>, multiple values within the attribute or extension, and finally, by including multiple <tt>EvidenceStatement</tt> structures within an <tt>EvidenceBundle</tt>. The latter is the preferred way to carry multiple Evidence statements. Implementations <bcp14>MUST NOT</bcp14> place multiple copies of <tt>attr-evidence</tt> into a PKCS#10 CSR due to the <tt>COUNTS MAX 1</tt> declaration. In a CRMF CSR, implementers <bcp14>SHOULD NOT</bcp14> place multiple copies of <tt>ext-evidence</tt>.</t>
      </section>
    </section>
    <section anchor="asn1-elements-for-attestation-result-in-csr">
      <name>ASN.1 Elements for Attestation Result in CSR</name>
      <section anchor="object-identifiers-1">
        <name>Object Identifiers</name>
        <t>This document defines the OID depicted in <xref target="code-ar-arc"/> as an additional CSR Attribute (PKCS#10) or Extension (CRMF) to carry Attestation Results in a CSR.</t>
        <figure anchor="code-ar-arc">
          <name>New OID Arc for PKIX Attestation Result Formats</name>
          <artwork><![CDATA[
-- Arc for Attestation Result types
id-aa-ar OBJECT IDENTIFIER ::= { id-aa (TBD2) }
]]></artwork>
        </figure>
      </section>
      <section anchor="sec-arAttr">
        <name>Attestation Result 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 AttestationResultBundle structure.</t>
        <figure anchor="code-AttestationResultSet">
          <name>Definition of AttestationResultSet</name>
          <artwork><![CDATA[
ATTESTATION-RESULT ::= TYPE-IDENTIFIER

AttestationResultSet ATTESTATION-RESULT ::= {
   ... -- None defined in this document --
}
]]></artwork>
        </figure>
        <t>The expression illustrated in <xref target="code-AttestationResultSet"/>
maps ASN.1 Types for Attestation Result to the OIDs that identify them. These
mappings are used to construct or parse AttestationResults. Attestation Results
are defined in other IETF standards (see <xref target="I-D.ietf-rats-ar4si"/>),
other standards bodies, or vendor proprietary formats along with corresponding
OIDs that identify them.</t>
        <t>This list is left unconstrained in this document. However, implementers can
populate it with the formats that they wish to support.</t>
        <figure anchor="code-AttestationResult">
          <name>Definition of AttestationResult</name>
          <artwork><![CDATA[
AttestationResult ::= SEQUENCE {
   type   ATTESTATION-RESULT.&id({AttestationResultSet}),
   stmt   ATTESTATION-RESULT.&Type({AttestationResultSet}{@type}),
}
]]></artwork>
        </figure>
        <t>In <xref target="code-AttestationResult"/>, type is an OID that indicates the format of the
value of stmt.</t>
        <artwork><![CDATA[
AttestationResultBundle ::= SEQUENCE SIZE (1..MAX) OF AttestationResult
]]></artwork>
        <figure anchor="code-extensions-ar">
          <name>Definitions of CSR attribute and extension</name>
          <artwork><![CDATA[
-- For PKCS#10
attr-ar ATTRIBUTE ::= {
  TYPE AttestationResultBundle
  COUNTS MAX 1
  IDENTIFIED BY id-aa-ar
}

-- For CRMF
ext-ar EXTENSION ::= {
  SYNTAX AttestationResultBundle
  IDENTIFIED BY id-aa-ar
}
]]></artwork>
        </figure>
      </section>
      <section anchor="implementation-considerations">
        <name>Implementation Considerations</name>
        <t>This specification is applicable both in cases where a CSR
is constructed internally or externally to the Attesting Environment, from the
point of view of the calling application. This section is particularly
applicable to the background check model.</t>
        <t>Cases where the CSR is generated internally to the Attesting Environment
are straightforward: the Hardware Security Model (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 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, 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>
    <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>
        <t>IANA is asked to register the following within the registry id-mod
SMI Security for PKIX Module Identifier (1.3.6.1.5.5.7.0).</t>
        <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>
        <t>IANA is asked to register the following within the registry id-aa
SMI Security for S/MIME Attributes (1.2.840.113549.1.9.16.2).</t>
        <ul spacing="normal">
          <li>
            <t>Evidence Statement</t>
          </li>
          <li>
            <t>Decimal: IANA Assigned - This was early-allocated as <tt>59</tt> so that we could generate the sample data.</t>
          </li>
          <li>
            <t>Description: id-aa-evidence</t>
          </li>
          <li>
            <t>References: This Document</t>
          </li>
          <li>
            <t>Attestation Result</t>
          </li>
          <li>
            <t>Decimal: IANA Assigned - - <strong>Replace TBD2</strong></t>
          </li>
          <li>
            <t>Description: id-aa-ar</t>
          </li>
          <li>
            <t>References: This Document</t>
          </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 or ATTESTATION-RESULT
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 encoding OIDs 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">tcg-dice-TcbInfo</td>
                <td align="left">
                  <xref target="TCGRegistry"/></td>
                <td align="left">TCG</td>
              </tr>
              <tr>
                <td align="left">2 23 133 5 4 3</td>
                <td align="left">tcg-dice-endorsement-manifest-uri</td>
                <td align="left">
                  <xref target="TCGRegistry"/></td>
                <td align="left">TCG</td>
              </tr>
              <tr>
                <td align="left">2 23 133 5 4 4</td>
                <td align="left">tcg-dice-Ueid</td>
                <td align="left">
                  <xref target="TCGRegistry"/></td>
                <td align="left">TCG</td>
              </tr>
              <tr>
                <td align="left">2 23 133 5 4 5</td>
                <td align="left">tcg-dice-MultiTcbInfo</td>
                <td align="left">
                  <xref target="TCGRegistry"/></td>
                <td align="left">TCG</td>
              </tr>
              <tr>
                <td align="left">2 23 133 5 4 6</td>
                <td align="left">tcg-dice-UCCS-evidence</td>
                <td align="left">
                  <xref target="TCGRegistry"/></td>
                <td align="left">TCG</td>
              </tr>
              <tr>
                <td align="left">2 23 133 5 4 7</td>
                <td align="left">tcg-dice-manifest-evidence</td>
                <td align="left">
                  <xref target="TCGRegistry"/></td>
                <td align="left">TCG</td>
              </tr>
              <tr>
                <td align="left">2 23 133 5 4 8</td>
                <td align="left">tcg-dice-MultiTcbInfoComp</td>
                <td align="left">
                  <xref target="TCGRegistry"/></td>
                <td align="left">TCG</td>
              </tr>
              <tr>
                <td align="left">2 23 133 5 4 9</td>
                <td align="left">tcg-dice-conceptual-message-wrapper</td>
                <td align="left">
                  <xref target="TCGRegistry"/></td>
                <td align="left">TCG</td>
              </tr>
              <tr>
                <td align="left">2 23 133 5 4 11</td>
                <td align="left">tcg-dice-TcbFreshness</td>
                <td align="left">
                  <xref target="TCGRegistry"/></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">
                  <xref target="TCGRegistry"/></td>
                <td align="left">TCG</td>
              </tr>
              <tr>
                <td align="left">1 3 6 1 5 5 7 1 35</td>
                <td align="left">id-pe-cmw</td>
                <td align="left">
                  <xref target="I-D.ietf-rats-msg-wrap"/></td>
                <td align="left">IETF</td>
              </tr>
            </tbody>
          </table>
          <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>In the RATS architecture, when Evidence or an Attestation Result is presented to a Relying Party (RP), the RP may learn detailed information about the Attester unless that information has been redacted or encrypted. Consequently, a certain amount of trust must be placed in the RP, which raises potential privacy concerns because an RP could be used to track devices. This observation is noted in Section 11 of <xref target="RFC9334"/>.</t>
      <t>Typically, the RPs considered in the RATS architecture are application services that use remote attestation, rather than RAs or CAs. Devices inherently place significant trust in RA/CA infrastructure elements, and therefore any additional information revealed through remote attestation to such entities is generally less concerning than disclosure to application services. The problem of copying Evidence by CAs into an X.509 certificate is discussed in <xref target="sec-con-publishing-x509"/>.</t>
      <t>These privacy risks can be mitigated using several approaches, including:</t>
      <ul spacing="normal">
        <li>
          <t>Shared Attestation Keys: A manufacturer of devices may provision all devices with the same attestation key(s), or share a common attestation key across devices of the same product family. This approach anonymizes individual devices by making them indistinguishable from others using the same key(s). However, it also means losing the ability to revoke a single attestation key if a specific device is compromised. Care must be taken to avoid embedding uniquely identifying information in the Evidence, as that would reduce the privacy benefits of using remote attestation.</t>
        </li>
        <li>
          <t>Per-Use Attestation Keys: Devices may be designed to dynamically generate distinct attestation keys (and request the corresponding certificates) for each use case, device, or session. This is analogous to the Privacy CA model, in which a device is initially provisioned with an attestation key and certificate; then, in conjunction with a privacy-preserving CA, it can obtain unique keys and certificates as needed. This strategy reduces the potential for tracking while maintaining strong security assurances. This is the model described in this document.</t>
        </li>
        <li>
          <t>Anonymous Attestation Mechanisms: Direct anonymous attestation (DAA) or similar cryptographic methods can be employed to generate blinded attestation signatures. In these schemes, the verifier can validate the attestation using a root key but does not gain a global correlation handle. Thus, repeated use of the same attestation key cannot be exploited to track devices. <xref target="I-D.ietf-rats-daa"/> extends the RATS architecture with such a DAA scheme, significantly enhancing privacy.</t>
        </li>
      </ul>
      <section anchor="background-check-model-security-considerations">
        <name>Background Check Model 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.</t>
        <t>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>
      <section anchor="freshness-for-the-background-check-model">
        <name>Freshness for the Background Check Model</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. <xref section="10" sectionFormat="of" 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 an out-of-band
communication channel.
This document leaves the exchange of nonces and other freshness data to
certificate management protocols, see <xref target="I-D.ietf-lamps-attestation-freshness"/>.
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>
        <t>Note: Freshness is also a concern for remote attestation in the passport model; however, the protocol between the Attester and the Verifier lies outside the scope of this specification.</t>
      </section>
      <section anchor="sec-con-publishing-x509">
        <name>Publishing Evidence in an X.509 Extension</name>
        <t>This document specifies an 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 extension 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>". Often, the correct layer at which to address this is either in certificate profiles, a Certificate Practice Statement (CPS), or in the protocol or application that carries the CSR to the RA/CA where a flag can be added indicating whether the RA/CA should consider the evidence to be public or private.</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 <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. 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>, or similar values that could cause the Evidence to appear to be valid when in fact it was not properly checked.</t>
      </section>
      <section anchor="additional-security-considerations">
        <name>Additional Security Considerations</name>
        <t>In addition to the security considerations listed here, implementers should be familiar with the security considerations of the specifications on this this depends: PKCS#10 <xref target="RFC2986"/>, CRMF <xref target="RFC4211"/>, as well as general security concepts relating to remote attestation; many of these concepts are discussed in <xref section="6" sectionFormat="of" target="RFC9334"/>, <xref section="7" sectionFormat="of" target="RFC9334"/>, <xref section="9" sectionFormat="of" target="RFC9334"/>, <xref section="11" sectionFormat="of" target="RFC9334"/>, and <xref section="12" sectionFormat="of" target="RFC9334"/>. Implementers should also be aware of any security considerations relating to the specific Evidence and Attestation Result formats being carried within the CSR.</t>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-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="RFC6268">
          <front>
            <title>Additional New ASN.1 Modules for the Cryptographic Message Syntax (CMS) and the Public Key Infrastructure Using X.509 (PKIX)</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <author fullname="S. Turner" initials="S." surname="Turner"/>
            <date month="July" year="2011"/>
            <abstract>
              <t>The Cryptographic Message Syntax (CMS) 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 some auxiliary ASN.1 modules to conform to the 2008 version of ASN.1; the 1988 ASN.1 modules remain the normative version. 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="6268"/>
          <seriesInfo name="DOI" value="10.17487/RFC6268"/>
        </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="RFC5280">
          <front>
            <title>Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile</title>
            <author fullname="D. Cooper" initials="D." surname="Cooper"/>
            <author fullname="S. Santesson" initials="S." surname="Santesson"/>
            <author fullname="S. Farrell" initials="S." surname="Farrell"/>
            <author fullname="S. Boeyen" initials="S." surname="Boeyen"/>
            <author fullname="R. Housley" initials="R." surname="Housley"/>
            <author fullname="W. Polk" initials="W." surname="Polk"/>
            <date month="May" year="2008"/>
            <abstract>
              <t>This memo profiles the X.509 v3 certificate and X.509 v2 certificate revocation list (CRL) for use in the Internet. An overview of this approach and model is provided as an introduction. The X.509 v3 certificate format is described in detail, with additional information regarding the format and semantics of Internet name forms. Standard certificate extensions are described and two Internet-specific extensions are defined. A set of required certificate extensions is specified. The X.509 v2 CRL format is described in detail along with standard and Internet-specific extensions. An algorithm for X.509 certification path validation is described. An ASN.1 module and examples are provided in the appendices. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5280"/>
          <seriesInfo name="DOI" value="10.17487/RFC5280"/>
        </reference>
        <reference anchor="RFC3986">
          <front>
            <title>Uniform Resource Identifier (URI): Generic Syntax</title>
            <author fullname="T. Berners-Lee" initials="T." surname="Berners-Lee"/>
            <author fullname="R. Fielding" initials="R." surname="Fielding"/>
            <author fullname="L. Masinter" initials="L." surname="Masinter"/>
            <date month="January" year="2005"/>
            <abstract>
              <t>A Uniform Resource Identifier (URI) is a compact sequence of characters that identifies an abstract or physical resource. This specification defines the generic URI syntax and a process for resolving URI references that might be in relative form, along with guidelines and security considerations for the use of URIs on the Internet. The URI syntax defines a grammar that is a superset of all valid URIs, allowing an implementation to parse the common components of a URI reference without knowing the scheme-specific requirements of every possible identifier. This specification does not define a generative grammar for URIs; that task is performed by the individual specifications of each URI scheme. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="66"/>
          <seriesInfo name="RFC" value="3986"/>
          <seriesInfo name="DOI" value="10.17487/RFC3986"/>
        </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>
        <reference anchor="RFC5911">
          <front>
            <title>New ASN.1 Modules for Cryptographic Message Syntax (CMS) and S/MIME</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 Cryptographic Message Syntax (CMS) 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="5911"/>
          <seriesInfo name="DOI" value="10.17487/RFC5911"/>
        </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">
              <organization>University of Applied Sciences Bonn-Rhein-Sieg</organization>
            </author>
            <author fullname="Dionna Glaze" initials="D." surname="Glaze">
              <organization>Google LLC</organization>
            </author>
            <date day="28" month="February" year="2025"/>
            <abstract>
              <t>   This document defines a conceptual message wrapper (CMW) format - an
   encapsulation method applicable to any RATS conceptual message, such
   as Evidence, Attestation Results, Endorsements, and Reference Values.
   It also describes a collection type that aggregates one or more CMWs
   into a single message.

   In addition, this document specifies a corresponding CBOR tag, JSON
   Web Tokens (JWT) and CBOR Web Tokens (CWT) claims, and an X.509
   extension.  These mechanisms enable the embedding of enveloped
   conceptual messages into CBOR-based protocols, web APIs, and PKIX
   protocols.  Moreover, a Media Type and a CoAP Content-Format are
   defined for transporting CMWs over HTTP, MIME, CoAP, and other
   Internet protocols.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-rats-msg-wrap-12"/>
        </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>
            <author fullname="Henk Birkholz" initials="H." surname="Birkholz">
         </author>
            <date day="21" month="November" 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-05"/>
        </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="I-D.ietf-rats-daa">
          <front>
            <title>Direct Anonymous Attestation for the Remote Attestation Procedures Architecture</title>
            <author fullname="Henk Birkholz" initials="H." surname="Birkholz">
              <organization>Fraunhofer SIT</organization>
            </author>
            <author fullname="Christopher Newton" initials="C." surname="Newton">
              <organization>University of Surrey</organization>
            </author>
            <author fullname="Liqun Chen" initials="L." surname="Chen">
              <organization>University of Surrey</organization>
            </author>
            <author fullname="Dave Thaler" initials="D." surname="Thaler">
              <organization>Microsoft</organization>
            </author>
            <date day="5" month="September" year="2024"/>
            <abstract>
              <t>   This document maps the concept of Direct Anonymous Attestation (DAA)
   to the Remote Attestation Procedures (RATS) Architecture.  The
   protocol entity DAA Issuer is introduced and its mapping with
   existing RATS roles in DAA protocol steps is specified.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-rats-daa-06"/>
        </reference>
        <reference anchor="I-D.ietf-lamps-attestation-freshness">
          <front>
            <title>Nonce-based Freshness for Remote Attestation in Certificate Signing Requests (CSRs) for the Certification Management Protocol (CMP) and for Enrollment over Secure Transport (EST)</title>
            <author fullname="Hannes Tschofenig" initials="H." surname="Tschofenig">
              <organization>Siemens</organization>
            </author>
            <author fullname="Hendrik Brockhaus" initials="H." surname="Brockhaus">
              <organization>Siemens</organization>
            </author>
            <date day="5" month="November" year="2024"/>
            <abstract>
              <t>   When an end entity includes attestation Evidence in a Certificate
   Signing Request (CSR), it may be necessary to demonstrate the
   freshness of the provided Evidence.  Current attestation technology
   commonly achieves this using nonces.

   This document outlines the process through which nonces are supplied
   to the end entity by an RA/CA for inclusion in Evidence, leveraging
   the Certificate Management Protocol (CMP) and Enrollment over Secure
   Transport (EST)

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-lamps-attestation-freshness-03"/>
        </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="23" month="September" 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-24"/>
        </reference>
        <reference anchor="I-D.ffm-rats-cca-token">
          <front>
            <title>Arm's Confidential Compute Architecture Reference Attestation Token</title>
            <author fullname="Simon Frost" initials="S." surname="Frost">
              <organization>Arm Limited</organization>
            </author>
            <author fullname="Thomas Fossati" initials="T." surname="Fossati">
              <organization>Linaro</organization>
            </author>
            <author fullname="Giridhar Mandyam" initials="G." surname="Mandyam">
              <organization>Mediatek Inc</organization>
            </author>
            <date day="4" month="July" year="2024"/>
            <abstract>
              <t>   The Arm Confidential Compute Architecture (CCA) is series of hardware
   and software innovations that enhance Arm’s support for Confidential
   Computing for large, compute-intensive workloads.  Devices that
   implement CCA can produce attestation tokens as described in this
   memo, which are the basis for trustworthiness assessment of the
   Confidential Compute environment.  This document specifies the CCA
   attestation token structure and semantics.

   The CCA attestation token is a profile of the Entity Attestation
   Token (EAT).  This specification describes what claims are used in an
   attestation token generated by CCA 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-ffm-rats-cca-token-00"/>
        </reference>
        <reference anchor="TPM20" target="https://trustedcomputinggroup.org/resource/tpm-library-specification/">
          <front>
            <title>Trusted Platform Module Library Specification, Family 2.0</title>
            <author>
              <organization>Trusted Computing Group</organization>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="CSBR" target="https://cabforum.org/uploads/Baseline-Requirements-for-the-Issuance-and-Management-of-Code-Signing.v3.7.pdf">
          <front>
            <title>Baseline Requirements for Code-Signing Certificates, v.3.7</title>
            <author>
              <organization>CA/Browser Forum</organization>
            </author>
            <date year="2024" month="February"/>
          </front>
        </reference>
        <reference anchor="TCGRegistry" target="https://trustedcomputinggroup.org/resource/tcg-oid-registry/">
          <front>
            <title>TCG OID Registry</title>
            <author>
              <organization>Trusted Computing Group</organization>
            </author>
            <date year="2024" month="October"/>
          </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>
        <reference anchor="I-D.ietf-rats-ar4si">
          <front>
            <title>Attestation Results for Secure Interactions</title>
            <author fullname="Eric Voit" initials="E." surname="Voit">
              <organization>Cisco Systems</organization>
            </author>
            <author fullname="Henk Birkholz" initials="H." surname="Birkholz">
              <organization>Fraunhofer SIT</organization>
            </author>
            <author fullname="Thomas Hardjono" initials="T." surname="Hardjono">
              <organization>MIT</organization>
            </author>
            <author fullname="Thomas Fossati" initials="T." surname="Fossati">
              <organization>Linaro</organization>
            </author>
            <author fullname="Vincent Scarlata" initials="V." surname="Scarlata">
              <organization>Intel</organization>
            </author>
            <date day="6" month="February" year="2025"/>
            <abstract>
              <t>   This document defines reusable Attestation Result information
   elements.  When these elements are offered to Relying Parties as
   Evidence, different aspects of Attester trustworthiness can be
   evaluated.  Additionally, where the Relying Party is interfacing with
   a heterogeneous mix of Attesting Environment and Verifier types,
   consistent policies can be applied to subsequent information exchange
   between each Attester and the Relying Party.

   This document also defines two serialisations of the proposed
   information model, utilising CBOR and JSON.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-rats-ar4si-08"/>
        </reference>
      </references>
    </references>
    <?line 988?>

<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 publication 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-tpm-certify IDENTIFIED BY tcg-attest-tpm-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 be used, which is the TPM2_Certify and the TPM2_ReadPublic commands.</t>
          <t>This example does not describe how platform attestation augments key attestation.
The properties of the key (such as the name of the key, the key usage) in this example
do not change during the lifetime of the key.</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 ::= { tcg 20 }

tcg-attest-tpm-certify OBJECT IDENTIFIER ::= { tcg-attest 1 }
]]></artwork>
          <t>The tcg-kp-AIKCertificate OID in extendedKeyUsage identifies an AK Certificate in RFC 5280 format defined by TCG. This
certificate would be a certificate in the EvidenceBundle defined in <xref target="sec-evidenceAttr"/>. (Note: The abbreviation AIK was used in
TPM 1.2 specification. TPM 2.0 specifications use the abbreviation AK. The abbreviations are interchangeable.)</t>
        </section>
        <section anchor="appdx-tcg-attest-tpm-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-tpm-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-tpm-certify ::= SEQUENCE {
  tpmSAttest       OCTET STRING,
  signature        OCTET STRING,
  tpmTPublic       OCTET STRING OPTIONAL
}
]]></artwork>
        </section>
        <section anchor="introduction-to-tpm2-concepts">
          <name>Introduction to TPM2 concepts</name>
          <t>The definitions in the following sections are specified by the Trusted Computing Group (TCG). TCG specification including the TPM2 set of specifications <xref target="TPM20"/>, specifically Part 2 defines the TPM 2.0 structures.
Those familiar with TPM2 concepts may skip to <xref target="appdx-tcg-attest-tpm-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 {
      EvidenceBundle {
        Evidences {
          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>This example does not demonstrate an EvidenceBundle that contains multiple EvidenceStatements sharing a certificate chain.</t>
          <artwork><![CDATA[
=============== NOTE: '\' line wrapping per RFC 8792 ================

-----BEGIN CERTIFICATE REQUEST-----
MIINmzCCDIUCAQAwdTELMAkGA1UEBhMCWloxETAPBgNVBAgMCFByb3ZpbmNlMREwDwYD\
                                                                  VQQ
HDAhMb2NhbGl0eTETMBEGA1UECgwKaWV0Zi1sYW1wczEXMBUGA1UECwwOaWV0Zi1sYW1\
                                                                  wcy
1jc3IxEjAQBgNVBAMMCXRlc3Qta2V5MTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQ\
                                                                  oCg
gEBAN/RvsGNf32W6tIAU4QZgFPs98rPv4ed7QnB9aK/+x8u+\
                                              1qhiTNpNC2me0FsQEDvToRO
Ghkxtiift2RKPaVR2hyF05tthjNDnfDaMqvkNN24rmzTuVZE3Oz86zSWE+\
                                                        Lk3ZfWHROVb5Z
TME/VOZdYMAvwyi2fRHa/1cK9F/61WwIpY4qMlLsabSsSmyd8RJ+/\
                                                   g3exfCeCYJ73Cu90F0
wNtYOTxVN5o4ELvJdElT99QaC38TFvJ+yW94wQua2/4Lt6cx0I+\
                                                 NVDFHLMELwFydVdZspqF
dEGp4X+i59hjD4AFDPOyJJJiF84Zo7+Qf1tIbUCbFV+\
                                         Rmvob7uCiOs8O3ZEL4kCAwEAAaCC
CuEwggrdBgsqhkiG9w0BCRACOzGCCswwggrIMIIC2jCCAtYGBWeBBRQBMIICsgSBkf9U\
                                                                  Q0e
AFwAiAAs7ZAoM+pOXvuDS3cZXWSGXpKzEfn3C/\
                                    aWh2zIlNmdIvQAEAP9VqgAAAAB96ovmAA
AANwAAAAABIBUBEwAVSCIAIgALRsPuEbWtPA+\
                                   cXiHVz6zdm6DfOYX8urrRWvLWAoEkW8MAI
gALVNyWWGbUmLvXnu/\
                dEowodTbdqKJlrhaYITil2pXo7ooEggEAhnwVHoLE43BfVyozOqnx
9VfsdS7U4ZOP4pS04vrfGCLegjXEHjxcMyU3DcJtd7svjw5/IxnLXLD/\
                                                      WXAe1H5XbOreOgY
VejzMO16DPWBV2m7LOUvvwSsIRhHJaL5wUxfuLZoWY6Up7Q+\
                                              gFtDvoHfRrKsbeMRoOWwQul
Uok0PhZw0R4ZQyFrc4/rBr9kS9VpmtA+3IMuZ/qujraPqbC/zn1OE20+\
                                                      AtiKU6L9kJUtlej
f8RchWn4ffi4ugK4u7RvMQS/lGn+5G1IfVQY55iMKdlHa9nyzknQQBYopF2JP+\
                                                            sntC2Zf65
IasWyE7NWOsQSbyr6/\
                OSLggeNf5gU8SrRfzaAgSCARYAAQALAAYAcgAAABAAEAgAAAAAAAE
A39G+wY1/fZbq0gBThBmAU+z3ys+/h53tCcH1or/\
                                      7Hy77WqGJM2k0LaZ7QWxAQO9OhE4aGT
G2KJ+3ZEo9pVHaHIXTm22GM0Od8Noyq+\
                              Q03biubNO5VkTc7PzrNJYT4uTdl9YdE5VvllMwT
9U5l1gwC/DKLZ9Edr/Vwr0X/rVbAiljioyUuxptKxKbJ3xEn7+\
                                                Dd7F8J4JgnvcK73QXTA21
g5PFU3mjgQu8l0SVP31BoLfxMW8n7Jb3jBC5rb/\
                                     gu3pzHQj41UMUcswQvAXJ1V1mymoV0Qa
nhf6Ln2GMPgAUM87IkkmIXzhmjv5B/W0htQJsVX5Ga+\
                                         hvu4KI6zw7dkQviRYXdHBtdmVyaW
ZpZXIuZXhhbXBsZS5jb20wggfmMIIEaTCCA1GgAwIBAgIUfX4oc7u4KUbyz61VtQN5g2\
                                                                  A2Q
MQwDQYJKoZIhvcNAQELBQAwdzELMAkGA1UEBhMCWloxETAPBgNVBAgMCFByb3ZpbmNlM\
                                                                  REw
DwYDVQQHDAhMb2NhbGl0eTETMBEGA1UECgwKaWV0Zi1sYW1wczEXMBUGA1UECwwOaWV0\
                                                                  Zi1
sYW1wcy1jc3IxFDASBgNVBAMMC3Rlc3Qtcm9vdENBMB4XDTI0MTAyMTIwMTcxMloXDTI\
                                                                  0MT
EyMDIwMTcxMlowczELMAkGA1UEBhMCWloxETAPBgNVBAgMCFByb3ZpbmNlMREwDwYDVQ\
                                                                  QHD
AhMb2NhbGl0eTETMBEGA1UECgwKaWV0Zi1sYW1wczEXMBUGA1UECwwOaWV0Zi1sYW1wc\
                                                                  y1j
c3IxEDAOBgNVBAMMB3Rlc3QtYWswggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB\
                                                                  AQD
XjF+XF1wsywJx5e5MT1Q1TD8deZqxkQYGZM9TpW+rvFjnRdSDP88MiLOPYcRIJQ+\
                                                              efHvo81
o6IL7n0U0TSmaP63gaMCkOLr2BgNpBHGkfSbN2b16usBrQcYQF+o9NU5Itt/\
                                                          s7knvlhNiOb
OeWRBgtNPXeikyHycYjcZgoGd/\
                        UDvPRiRJ0pSruSBDeS1x0uoTsvep0JSRBUiKh8d7D0H3U
CmZZzVPzVBS1Z/Vl3a3HOjUgoAvXIBzukh/\
                                 5BKdQSh5hfRnXi5v6lJGroWFWvsHVF2PLoOC
2oaIrLZ3UVa05K4wVT/wKbi0OcReufE9rK6CvmHEAUXi1cs+\
                                              jynZfYaFDAgMBAAGjgfAwge
0wgZ4GA1UdIwSBljCBk6F7pHkwdzELMAkGA1UEBhMCWloxETAPBgNVBAgMCFByb3Zpbm\
                                                                  NlM
REwDwYDVQQHDAhMb2NhbGl0eTETMBEGA1UECgwKaWV0Zi1sYW1wczEXMBUGA1UECwwOa\
                                                                  WV0
Zi1sYW1wcy1jc3IxFDASBgNVBAMMC3Rlc3Qtcm9vdENBghR5pP+\
                                                 xxKsc67pLOqPiIZSU4fg
pzDAMBgNVHRMBAf8EAjAAMAsGA1UdDwQEAwIHgDAQBgNVHSUECTAHBgVngQUIAzAdBgN\
                                                                  VHQ
4EFgQUH4QfxvcmPg9x21uQW5cfGyfxbMcwDQYJKoZIhvcNAQELBQADggEBAC3Zz6B+\
                                                                u1H+7
2CG0j/s6lRPX/YP/DPjh5IIt9HdOJaWc5lsbCvgHSED7N/+voCfCRf7IU2Oh5+2q9+\
                                                                9N5AR
inXPmrsPZNyLR8vWkb27/\
                   hl9OTi0Ly7DtJMtUJTRzq53dZc7kdTDNYpPnbIbanSOW3lSL5E
173C8wyTsp/\
         vQKteYTfmsDKw9hXHIU2eSeUpZmKcHShXlbDEEbTuYLJMDASKmMCmPjIgJrS
X/\
18wEoAgo2BVjjzwfhoc2SLnQdikvN6oa6Ee0zYRiImXpM7cuErC88jOr0quURA1U8fsQd
8hYGRUk/6oPMXzIfZKsz/yzAUQ570+mkdd2iFVlqTCQ9eUwggN1MIICXQIUeaT/\
                                                             scSrHOu6
Szqj4iGUlOH4KcwwDQYJKoZIhvcNAQELBQAwdzELMAkGA1UEBhMCWloxETAPBgNVBAgM\
                                                                  CFB
yb3ZpbmNlMREwDwYDVQQHDAhMb2NhbGl0eTETMBEGA1UECgwKaWV0Zi1sYW1wczEXMBU\
                                                                  GA1
UECwwOaWV0Zi1sYW1wcy1jc3IxFDASBgNVBAMMC3Rlc3Qtcm9vdENBMB4XDTI0MTAyMT\
                                                                  IwM
TcwOFoXDTI0MTEyMDIwMTcwOFowdzELMAkGA1UEBhMCWloxETAPBgNVBAgMCFByb3Zpb\
                                                                  mNl
MREwDwYDVQQHDAhMb2NhbGl0eTETMBEGA1UECgwKaWV0Zi1sYW1wczEXMBUGA1UECwwO\
                                                                  aWV
0Zi1sYW1wcy1jc3IxFDASBgNVBAMMC3Rlc3Qtcm9vdENBMIIBIjANBgkqhkiG9w0BAQE\
                                                                  FAA
OCAQ8AMIIBCgKCAQEAxPODF6ujxbdDWuXnzlqzYIO4rpQKolKfKbOFUCB6SjdA5XzArL\
                                                                  TSY
KD3ZXhqm7unFkmHC2HtqArq5jgvcQ2fzJeNGbcuyJYSwa9WJjJ5qY6gXEY+\
                                                         G7sFgZ5ZeEWG
Q+zjrnuJh/PtlhJ2/\
               R7wtdC82DAULaxnFjOS6Xm6pUB8RaZEtZ6HwfPUXYgeK9IRG2CbEs8
jkoBQTrSKpdpC0myJrrS0PoTFClDpq61je7uQgU6b9IAOfXi1oX5NdYcfqxcPch4wqbk\
                                                                  ldK
sjC/i7xMcem8hnb3WUvAmbsLP1I0Fx8nb0ug/T2ED5U9tPBXbKgeD72aU2L9GNs+\
                                                              ypE9Azb
TB6cwIDAQABMA0GCSqGSIb3DQEBCwUAA4IBAQBFBMAGsP1xKq4R4bzbWnQ4K2H+\
                                                             rYNi8UEQ
zxN6BiANi9+8hbLHfx6gFZlz+QxwVyH6oQnNrsVVDVjEYH4/\
                                              yvy7NdOxVitFfqOYwyaNeK5
oXx1l5otOaObtwzB7RVQNSlipzEVW4RPsJmx/\
                                   8F7yNLtdgooPU0QzUSqDcoKK36E4O3s85x
fyNlEdJ2vJcJ/ZZx5QQlnhNTf5bWlr3U9x6DebeAqs+wvvepdaNzulHBXaKIqAgSx9N+\
                                                                  Y22
vj+vw8GO4L8HndDPMhdE/Ct1h1yygm65j6haCmQRUTKzj49q6W4NHG7iPea+\
                                                          7bgMq7G4LRo
9DSFEfMWOkQeVUSPPiTsaAahMAsGCSqGSIb3DQEBCwOCAQEA1aPYnm8suCRwMTC7kOdO\
                                                                  jvV
P2+\
 2pHxsI5vnLfffFgsaNyoOz97t6bAmQXPQCEcjCQZqAynuJQITBbf5OowrNCOL8YRLaFu
2zUS8H+XJUIU0IYSs3H8UyfeYo5VDKJClU/\
                                 OcSzGgGm6J9JDQiHUuEFrqbpE19aSztpXrEH
9YYP87ANyW9vxpLse2rpE4akcp+V+\
                           C958KJEoYQc9EfjvM3LqLmzp7pvyUalv21BbOweK8V
IYVK7djq+LCmYwJwdKrOYWmrDyH8P+me8nPtk9BdcvW+sj2qu/\
                                                opZmYEL4KAqAviBW5TzPF
UgQhmMalis/J4WY3Q0tvOMXRQQZCmO2N4Pg==
-----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[
EvidenceBundle
   +
   |
   + Evidences
   |
   +---->  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 anchor="confidential-compute-architecture-cca-platform-token-in-csr">
        <name>Confidential Compute Architecture (CCA) Platform Token in CSR</name>
        <t>The Confidential Compute Architecture (CCA) Platform Token is described in
<xref target="I-D.ffm-rats-cca-token"/> and is also based on the EAT format.  Although the
full CCA attestation is composed of Realm and Platform Evidence, for the purposes
of this example only the Platform token is provided.</t>
        <artwork><![CDATA[
EvidenceBundle
   +
   |
   + Evidences
   |
   +---->  EvidenceStatement
        +
        |
        +-> type: OID for CCA Platform Attestation Toekn
        |         1 3 6 1 5 5 7 1 TBD
        |
        +-> stmt: CCA Platform Token
]]></artwork>
        <t>Although the CCA Platform Token follows the EAT/CMW format, it is untagged.
This is because the encoding can be discerned in the CSR based on the OID alone.
The untagged token based on a sample claim set is provided below:</t>
        <artwork><![CDATA[
(long lines wrapped for readability)

/ Sample Platform Claims Set in CDDL                          /
{
   / cca-platform-profile / 265:"tag:arm.com,2023:cca_platform#1.0.0"
   / arm-platform-challenge, SHA-256 calculation of ‘RAK’ / 10: 
            h'c9cdc457ebe981d563b19b5a8e0e3cbef5b944d58e278c9c6779f
            77beb65bbd5’
   / arm-platform-lifecycle / 2395: h'3000' /secured/
   / arm-platform-sw-components / 2399: [ {1:"ROTFMC", 2:h'903a36d3a
            0a511ecac4548fee8601af54247c110ce220f680a0b274441729105’,
            5:h'd4cf61e472d18c8e926ce0d44496674792587c88706e8a123b294
            c000895d9ea’},
      {1:"ROTFW", 2:h'59d4116525e974b5b62ffd7c4ffcbaa0b98e08263403aeb
            6638797132d2af959’, 5:h'd4cf61e472d18c8e926ce0d4449667479
            2587c88706e8a123b294c000895d9ea’} ]
   /arm-platform-id/ 256: h’ 946338159d767f9f37098a00a60f133b6d57886f
            c656f5f9eed13760b4893fa1’
   /arm-platform-implementation-id/ 2396: h’0000000000000000000000000
            000000000000000000000000000000000000001’
}

/ This is a full CWT-formatted token. The payload is a sample
/ Platform Claim Set. The main structure                       /
/ visible is that of the COSE_Sign1.                          /

61( 18( [
    h'a10126',  / protected headers  /
    {}, / empty unprotected headers / 
    h’a419010978237461673a61726d2e636f6d2c323032333a6363615f706c746
    66f726d23312e392e300a580020c9cdc457ebe981d563b19b5a8e0e3cbef5b9
    44d58e278c9c6779f77beb65bbd519095b42300019095f82a30166524f54464
    d4302580020903a36d3a0a511ecac4548fee8601af54247c110ce220f680a0b
    27444172910505580020d4cf61e472d18c8e926ce0d44496674792587c88706
    e8a123b294c000895d9eaae0165524f5446575800200259d4116525e974b5b6
    2ffd7c4ffcbaa0b98e08263403aeb6638797132d2af95905580020d4cf61e47
    2d18c8e926ce0d44496674792587c88706e8a123b294c000895d9ea19010078
    20946338159d767f9f37098a00a60f133b6d57886fc656f5f9eed13760b4893
    fa11a095c582000000000000000000000000000000000000000000000000000
    00000000000001' /payload/
    h'cbbfa929cb9b846cb5527d7ef9b7657256412a5f22a6e1a8d3a0c71145022
    100db4b1b97913b1cd9d6e11c1fadbc0869882ba6644b9db09d221f198e3286
    654b' /signature/
] ) )

/Untagged serialized token/
h'8443a10126a0590141a419010978237461673a61726d2e636f6d2c323032333a
6363615f706c74666f726d23312e392e300a580020c9cdc457ebe981d563b19b5a
8e0e3cbef5b944d58e278c9c6779f77beb65bbd519095b42300019095f82a30166
524f54464d4302580020903a36d3a0a511ecac4548fee8601af54247c110ce220f
680a0b27444172910505580020d4cf61e472d18c8e926ce0d44496674792587c88
706e8a123b294c000895d9eaae0165524f5446575800200259d4116525e974b5b6
2ffd7c4ffcbaa0b98e08263403aeb6638797132d2af95905580020d4cf61e472d1
8c8e926ce0d44496674792587c88706e8a123b294c000895d9ea19010078209463
38159d767f9f37098a00a60f133b6d57886fc656f5f9eed13760b4893fa11a095c
582000000000000000000000000000000000000000000000000000000000000000
015840cbbfa929cb9b846cb5527d7ef9b7657256412a5f22a6e1a8d3a0c7114502
2100db4b1b97913b1cd9d6e11c1fadbc0869882ba6644b9db09d221f198e3286654b'
]]></artwork>
        <t>Realm evidence can be included in a CMW bundle, similar to the PSA token.
In this case, the CSR is constructed as follows:</t>
        <artwork><![CDATA[
EvidenceBundle
   +
   |
   + Evidences
   |
   +---->  EvidenceStatement
        +
        |
        +-> type: OID for CMW Collection
        |         1 3 6 1 5 5 7 1 TBD
        |
        +-> stmt: Realm Token/Platform Token CMW Collection or
                         Realm Claim Set/Platform Token CMW Collection
]]></artwork>
      </section>
    </section>
    <section anchor="asn1-module">
      <name>ASN.1 Module</name>
      <artwork><![CDATA[
CSR-ATTESTATION-2025
  { iso(1) identified-organization(3) dod(6) internet(1) security(5)
  mechanisms(5) pkix(7) id-mod(0) id-mod-pkix-attest-01(TBDMOD) }

CsrAttestation DEFINITIONS IMPLICIT TAGS ::= BEGIN

EXPORTS ALL;

IMPORTS

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

CertificateChoices
  FROM CryptographicMessageSyntax-2010
    { iso(1) member-body(2) us(840) rsadsi(113549)
    pkcs(1) pkcs-9(9) smime(16) modules(0) id-mod-cms-2009(58) }

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-aa (TBD1) }

EVIDENCE-STATEMENT ::= TYPE-IDENTIFIER

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

ATTESTATION-RESULT ::= TYPE-IDENTIFIER

AttestationResultSet ATTESTATION-RESULT ::= {
   ... -- None defined in this document --
}

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

AttestationResult ::= SEQUENCE {
   type   ATTESTATION-RESULT.&id({AttestationResultSet}),
   stmt   ATTESTATION-RESULT.&Type({AttestationResultSet}{@type}),
}

-- Arc for Evidence types
id-aa-evidence OBJECT IDENTIFIER ::= { id-aa 59 }

-- Arc for Attestation Result types
id-aa-ar OBJECT IDENTIFIER ::= { id-aa (TBD2) }

-- For PKCS#10 (Evidence)
attr-evidence ATTRIBUTE ::= {
  TYPE EvidenceBundle
  COUNTS MAX 1
  IDENTIFIED BY id-aa-evidence
}

-- For CRMF (Evidence)
ext-evidence EXTENSION ::= {
  SYNTAX EvidenceBundle
  IDENTIFIED BY id-aa-evidence
}

-- For PKCS#10 (Attestation Result)
attr-ar ATTRIBUTE ::= {
  TYPE AttestationResultBundle
  COUNTS MAX 1
  IDENTIFIED BY id-aa-ar
}

-- For CRMF (Attestation Result)
ext-ar EXTENSION ::= {
  SYNTAX AttestationResultBundle
  IDENTIFIED BY id-aa-ar
}

EvidenceBundle ::= SEQUENCE {
   evidences SEQUENCE SIZE (1..MAX) OF EvidenceStatement,
   certs SEQUENCE SIZE (1..MAX) OF CertificateChoices OPTIONAL
      -- CertificateChoices MUST NOT contain the depreciated
      -- certificate structures or attribute certificates,
      -- see Section 10.2.2 of [RFC5652]
}

AttestationResultBundle ::= SEQUENCE SIZE (1..MAX) 
                            OF AttestationResult

END
]]></artwork>
      <section anchor="tcg-dice-example-in-asn1">
        <name>TCG DICE Example in ASN.1</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[
CsrAttestationDiceExample DEFINITIONS IMPLICIT TAGS ::= BEGIN

IMPORTS 

tcg-dice-conceptual-message-wrapper FROM TcgDiceAttestation
DiceConceptualMessageWrapper FROM TcgDiceAttestation
tcg-dice-TcbInfo FROM TcgDiceAttestation
DiceTcbInfo FROM TcgDiceAttestation
EvidenceStatementSet FROM CsrAttestation
;

tcgDiceCmwEvidenceStatementES EVIDENCE-STATEMENT ::= { 
  DiceConceptualMessageWrapper IDENTIFIED BY tcg-dice-conceptual-
                                                    message-wrapper }

tcgDiceTcbInfoEvidenceStatementES EVIDENCE-STATEMENT ::= {
  DiceTcbInfo IDENTIFIED BY tcg-dice-TcbInfo }
-- where ConceptualMessageWrapper, tcg-dice-conceptual-message-
                                                            wrapper, 
-- DiceTcbInfo, and tcg-dice-TcbInfo
-- are defined in DICE-Attestation-Architecture-Version-1.1-
--                                        Revision-18_6Jan2024.pdf

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

TcgDiceAttestation DEFINITIONS AUTOMATIC TAGS ::= BEGIN

EXPORTS ALL;

tcg OBJECT IDENTIFIER ::= { 2 23 133 }
tcg-dice OBJECT IDENTIFIER ::= { tcg platformClass(5) dice(4) }
tcg-dice-TcbInfo OBJECT IDENTIFIER ::= { tcg-dice tcbinfo(1) }
tcg-dice-endorsement-manifest-uri OBJECT IDENTIFIER ::= { 
                                      tcg-dice manifest-uri(3) }
tcg-dice-Ueid OBJECT IDENTIFIER ::= { tcg-dice ueid(4) }
tcg-dice-MultiTcbInfo OBJECT IDENTIFIER ::= {tcg-dice 
                                                multitcbinfo(5) }
tcg-dice-UCCS-evidence OBJECT IDENTIFIER ::= {tcg-dice 
                                                uccs-evidence(6) }
tcg-dice-manifest-evidence OBJECT IDENTIFIER ::= {tcg-dice 
                                              manifest-evidience(7) }
tcg-dice-MultiTcbInfoComp OBJECT IDENTIFIER ::= {tcg-dice 
                                                multitcbinfocomp(8) }
tcg-dice-conceptual-message-wrapper OBJECT IDENTIFIER ::= { 
                                                    tcg-dice cmw(9) }
tcg-dice-TcbFreshness OBJECT IDENTIFIER ::= { tcg-dice 
                                                tcb-freshness(11) }

DiceConceptualMessageWrapper ::= SEQUENCE {
  cmw OCTET STRING
}

DiceTcbInfo ::= SEQUENCE {
  vendor [0] IMPLICIT UTF8String OPTIONAL,
  model [1] IMPLICIT UTF8String OPTIONAL,
  version [2] IMPLICIT UTF8String OPTIONAL,
  svn [3] IMPLICIT INTEGER OPTIONAL,
  layer [4] IMPLICIT INTEGER OPTIONAL,
  index [5] IMPLICIT INTEGER OPTIONAL,
  fwids [6] IMPLICIT FWIDLIST OPTIONAL,
  flags [7] IMPLICIT OperationalFlags OPTIONAL,
  vendorInfo [8] IMPLICIT OCTET STRING OPTIONAL,
  type [9] IMPLICIT OCTET STRING OPTIONAL,
  flagsMask [10]IMPLICIT OperationalFlagsMask OPTIONAL,
  integrityRegisters [11] IMPLICIT IrList OPTIONAL
}

FWIDLIST ::= SEQUENCE SIZE (1..MAX) OF FWID
  FWID ::= SEQUENCE {
  hashAlg OBJECT IDENTIFIER,
  digest OCTET STRING
}

OperationalFlags ::= BIT STRING {
  notConfigured (0),
  notSecure (1),
  recovery (2),
  debug (3),
  notReplayProtected (4),
  notIntegrityProtected (5),
  notRuntimeMeasured (6),
  notImmutable (7),
  notTcb (8),
  fixedWidth (31)
}

OperationalFlagsMask ::= BIT STRING {
  notConfigured (0),
  notSecure (1),
  recovery (2),
  debug (3),
  notReplayProtected (4),
  notIntegrityProtected (5),
  notRuntimeMeasured (6),
  notImmutable (7),
  notTcb (8),
  fixedWidth (31)
}

IrList ::= SEQUENCE SIZE (1..MAX) OF IntegrityRegister

IntegrityRegister ::= SEQUENCE {
  registerName IA5String OPTIONAL,
  registerNum INTEGER OPTIONAL,
  hashAlg OBJECT IDENTIFIER,
  digest OCTET STRING
}

EndorsementManifestURI ::= SEQUENCE {
  emUri UTF8String
}

TcgUeid ::= SEQUENCE {
  ueid OCTET STRING
}

DiceTcbInfoSeq ::= SEQUENCE SIZE (1..MAX) OF DiceTcbInfo

DiceTcbInfoComp ::= SEQUENCE SIZE (1..MAX) OF TcbInfoComp

TcbInfoComp ::= SEQUENCE {
  commonFields [0] IMPLICIT DiceTcbInfo,
  evidenceValues [1] IMPLICIT DiceTcbInfoSeq
}

UccsEvidence ::= SEQUENCE {
  uccs OCTET STRING
} 

Manifest ::= SEQUENCE {
  format ManifestFormat,
  manifest OCTET STRING
}

ManifestFormat ::= ENUMERATED {
  swid-xml    (0),
  coswid-cbor (1),
  coswid-json (2),
  tagged-cbor (3)
}

DiceTcbFreshness ::= SEQUENCE {
  nonce OCTET STRING
}
END
]]></artwork>
      </section>
      <section anchor="tcg-dice-tcbinfo-example-in-csr">
        <name>TCG DICE TcbInfo Example 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 DiceTcbInfo, as defined in <xref target="TCGDICE1.1"/>.</t>
        <artwork><![CDATA[
﻿// SET of CSR Attributes
A0 82 00 8E
  // CSR attributes
  30 82 00 8A
    // OBJECT IDENTIFIER id-aa-evidence (1 2 840 113549 1 9 16 2 59)
    06 0B 2A 86 48 86 F7 0D 01 09 10 02 3B
      // SET -- This attribute
      31 79
        // EvidenceBundle ::= SEQUENCE
        30 75
          // EvidenceStatements ::= SEQUENCE SIZE (1..MAX) 
                                              OF EvidenceStatement
          30 73
            // EvidenceStatement ::= SEQUENCE
            30 71
              // type: OBJECT IDENTIFIER tcg-dice-TcbInfo 
              //                         (2.23.133.5.4.1)
              06 06 67 81 05 05 04 01
              // stmt: SEQUENCE
              30 4E
                // CONTEXT_SPECIFIC | version (02)
                // version = ABCDEF123456
                82 0C 41 42 43 44 45 46 31 32 33 34 35 36
                // CONTEXT_SPECIFIC | svn (03)
                // svn = 4
                83 01 04
                // CONTEXT_SPECIFIC | CONSTRUCTED | fwids (06)
                A6 2F
                // SEQUENCE
                30 2D
                  // OBJECT IDENTIFIER SHA256
                  06 09 60 86 48 01 65 03 04 02 01
                  // OCTET STRING
                  // fwid = 0x0000....00
                  04 20 00 00 00 00 00 00 00 00
                  00 00 00 00 00 00 00 00
                  00 00 00 00 00 00 00 00
                  00 00 00 00 00 00 00 00
                // CONTEXT_SPECIFIC | vendorInfo (08)
                // vendor info = 0x00000000
                88 04 00 00 00 00
                // CONTEXT_SPECIFIC | type (09)
                // type = 0x00000000
                89 04 00 00 00 00
              // hint: IA5String "DiceTcbInfo.example.com"
              0C 17 44 69 63 65 54 63 62 49 6e 66 6f
              2e 65 78 61 6d 70 6c 65 2e 63 6f 6d

// BER only
a0 82 00 8c 30 82 00 88 06 0b 2a 86 48 86 f7 0d
01 09 10 02 3b 30 79 31 77 30 75 30 73 30 71 06
06 67 81 05 05 04 01 30 4e 82 0c 41 42 43 44 45
46 31 32 33 34 35 36 83 01 04 a6 2f 30 2d 06 09
60 86 48 01 65 03 04 02 01 04 20 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 88 04 00 00 00
00 89 04 00 00 00 00 16 17 44 69 63 65 54 63 62
49 6e 66 6f 2e 65 78 61 6d 70 6c 65 2e 63 6f 6d
]]></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 directly, participated in design team meetings, or provided review of the document.</t>
      <t>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, Carl Wallace, Michael Richardson, Tomofumi Okubo, Olivier
Couillard, John Gray, Eric Amador, Darren Johnson, Herman Slatman, Tiru Reddy, James Hagborg, A.J. Stein, John Kemp, Daniel Migault and Russ Housley.</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 Giri Mandyam for providing the
appendix illustrating the confidential computing scenario, and to Corey
Bonnell for helping with the hackathon scripts to bundle it into a CSR.</t>
      <t>Finally, we would like to thank Andreas Kretschmer, Hendrik Brockhaus,
David von Oheimb, and Thomas Fossati for their feedback based on implementation
experience.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
6jvvD1x/gl7gHzTksjHL6FGpmoJb1r3xA+3ewgdhx9GyhLFyDq0Ed8NwSxDa
NqFZK0ka0k0RqS75DemxrBd3i5VxMKggO3H7UfY4Xn/ZmaLRKKzLovev2yeF
GdkQxJosayJtC8r9lBnPxFR8aVTz2n6fdFJCBKD5E/shHmij7IZkO04LJXOp
6n7xJTF+hCiSBMB+DFqKTvyCvd3FlRfziRcKlEop4DHTxkGs3opkjUUOpdBf
heL30WJvsKsU7MBEeEFoDKtQPW5nqg2Se+MMpKm8QEho1uUniudPh2lg9SK0
SnequXMyh6pChoV3p7EREEgqHMdWK5Al1ZlV0BMQGPr+sOYzqVjfe1KZUtQq
61VtLACBeQp9TAI3dufzsRMqWGk2EQU6aht7cxF1wFnVXEeld0gMv00uOhip
6SeC14xwaW1PGcYDzR6sIvB8x1RpJ1X4nsEKCKGJwzYJ0Xtp0wo3iizjMqUm
OW5RZ4L3k6NRVLw9742k7KKSXNJFkFYTmaFQ25VL8avZ96XJX6v6ECnCOI+A
+H7kr3eBoYr3inK8Ub9CWoc3ALGcHNbUzuiuQ4EURXXlLKdsU8kClKJGeTSj
bQijDT2MJQE63luzMox7ZjCwpwaKPgHnWfP60ITlf4ExLbPmg9wB+w03eTER
BWgwJqwtandi0lS0KRnC44+xxZcv9XbtGiNSpBucq0ekUDQe6xlEej8p1hlk
uVEuUnLh8YnwPRQrCZQJB4HGoUxuu4Zchy7ykZ5WChpSw8q5qTmvKOIOlBZZ
fTBep0JEDWuW9UpR/5bmWnaGBBm8bABLMremynMq9M+JudbQjmbIdK9vJQnb
+BKRx3juItIdrw3d/4QhXqQUU7OA/V7F7WRbC2lzdCo6npDTlzR1oCWvp9B+
gou7QDtGLFWMyK6ZsHwSPEPDjlIxCmITkWrVfSRMGrtzKuQrOgDGqcfKvvWd
GWYDEaIfEkEERaruyp4pkUjeO0lyPOlQpLtp6cn8banNgC5T3iC1rUtSlYVm
cOkNk6w808iSHjKmi/uaJUsW40WYporDWm5TEQQrKIvatjAXrEyIZ8tEPgzE
pPhGXqZHnjKELIBFm1AhsW2lkJPqPYe2KIqh4Gm5em1kzUbFaYB6TorRofx2
N+IjB5MAsJ3M2M8QccvMo7L3xBaghxrqyhl4xTfUaSCjCmWdaU94ymnpnjAu
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
BDUOC4wx0nS3VGyezG+he6EuQ1IQMv8iJUmC+yZmaI/yF2HUV6BnxNIoQSSk
901LbDyaepuHZJj/VnP1EEgyeu4qV8Gmr74Kxk3YT6GE+Fv0x2TPhHf/9Z3J
lT1kol4EO3S2q5SrOTP20d8oGiaVqjUPW+cmW1VadavTNK/RdwmIHP4YZ63W
+eS1Xm+0burWlbXqd5qnZ9bzoZW9adZGZ/W7sffS7FiXteH5bc0antUPautu
/nHWnZyPz66bq8bqofFft9Yj/vGf26sr46hhjc66ufNR93CccTrNzhlMHidS
H65O7LvbzKObDR7usqvea/P+rHbD71arC+3dr5jLqrc2sk+9fOul+WRd8crP
zur31+Ne/mpu526LZ5163Wq3Vo2rh+MT77E1WvbOratmrXZlNYbD5qXVgPdX
v2IuXn1oDJs163zvehkcng/yubvSvGXdFK4ehweXQbXiXy4LTr98Na1V7ZO9
jy+VxcefHTf7eeR2zmfn9dzEyRwEV83GsuNdXxiHo+eXuesO5rnrk0v79jo3
Wh9kivP56Om8MR007LPPy+fz81zBn7x2FrePzfzFa6X02r5r/vQMwp/T5/zj
4O7o+uK2W3w0OmfNvduLx/7DmbVcrd3c4PrI3sv2TqoHe6Xs3ao1eyh8Phuf
Bna3HbQn637l+vjj3h8afJh3XgZ1p/5wXM7XF9XMQcZYnc8fLjovt+dFr9A8
XR73m+NOtXpl1/OVzsHy+OP6rlpYXS3s3F7hdF7qvWRaf2Td57eNg6PTs+bp
6mDdv+0/BrPPB0a/eTgr3H90i9XRU6NgHTQuL9bHx8fuQaXw6JU/Xg2y81b3
pt49uP2ZIa8nS69bXtTdi6BykX9snhae69aqaVl2vW7UF83VcOj3a8Pg8+jZ
PayuMrX6tVW/eD2s14MVvmsBsqjnngC05w+HtTunVru+quGzYNiuPQ+qN78C
4K8yjmEdrCzXsoLyo+WdfZxd3C8XjXa+93h/1z68n528NgfTfP0Hz9m+G+Ve
W+PzSb+1vLKa1mX19vPQgp9ateQtJ5ZlWNb5yqInrdpNrbmybtv1ltUaWqfX
weWi2b2bX1o/ts29e/fo9rX02p+UGoOLh/vKwvev75and5bXfL6rnFktA3q9
PV/f3R12byany/vpImEZ/aa38vqdbv/zyfHYH9kPrY47zs3uvbLnNQG9WKPp
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
fpqz/BVzASbS6PRWFwee6FhxlvjsxwnLr5gLnIzxJ45GEZZfMRfo3/i5o2m1
aq0nCyjMs1IHAoD/irkcWJZxUbeuKhYOUh+ewO9N6+XyonFQWjy9dPuNu8X9
9HX8+fWhdVHwZ1cn3vhkcNK9OLip10rtp75VvH+1/NNfMZdO+8E4aeRBUv08
KS+mB8+To3ruaP7Z8j8Xn4bL3lVu8HrsnB92e4v18UN7ZVfvjp+Oi58fSsP7
5sOfweuH5eBg+Fh8dJp3h8bVx9cnf7o4Hu1dzsej49wmvrour+b9eiXXsG5O
7ZfpwdNFu3Q/Kc1uapVr+7E5fywdrQaXN/cPQ+ek2ro+zNW7zaBiPD17tauO
3z6Z9Wf1zGR97PvtzKXXOaiPG7PPpeyTU15cDW9K3WrLuhgAf+fdF8/7D73B
55feZW9UWH3uPv+KfR73T4zgqb7nll/Oes6kMpp283c3S2vSDU4vs63MwUtl
2s0shnudXLNRvKnOL2v33ZOh0yjn7JvcafXw/Of5zvjPetasWq9do1Mr9VYt
YGKsWlx+qq9YfgIG5wBeHgaX2ZeTz4XrQve1eze9Kpzkjv7sNPyHc7dy07wy
Xl/OSzXXOnerHyuj7unR4KU0PHgcv368elndro9K3tX03A9ubxu3T82Ho8JP
k7D1cl0+71+83Lrzg8Hni4fV2j53ToqGd/+SHRe9+YV90Z2vXmvl69ur8/bY
nb02b+8K15fB8eTlxwarHJTX56fz/tDzLm8yV6837c+Nnndyki81Cxf5oFJ8
MQbr83Gzf5xbHveO9x4fX4pXV+Pp6LwzKHbvxn7+pvpSajhdx/ocfFwtQRDq
2+evi/FR7d4+aX22hu2X6vkvYJ5M8yGXM5ZPH5eryuFF4bRyNO03Ls9G/eZe
fZ4dZdfr4aRUfCqN7Prk6vqmc/L6VKh+Lt0Vzo8Oy+6l81OKsY2fcnd49rl8
WDi99oxqo33QHJzdXTxfObc37ctLtxPYlj1CHjsKiBeEFbP25cN0UgkW9Wsg
YvXy80X/l9CDp+WtcZnDZeVmRy9Bq7icng4Gg4NhYJ+vvYvXanle6lqTq/vL
q3qz91S/evxsrQFBXbU6te6geOGt/PP6xWnl4frUPlgYOTj7ytHH++Ob1k2m
9dAO8keVm/XAefCKt42T4/r45kcg6qLXfj0cHk5Kx9XjxpV7dLNoHvifu7Nm
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

-->

</rfc>
