<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.29 (Ruby 3.4.4) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-lamps-csr-attestation-21" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.30.2 -->
  <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-21"/>
    <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>
        <postal>
          <country>Germany</country>
        </postal>
        <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/>
      <address>
        <postal>
          <country>USA</country>
        </postal>
        <email>mwiseman32@acm.org</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="October" day="05"/>
    <keyword>PKI</keyword>
    <keyword>PKCS#10</keyword>
    <keyword>CRMF</keyword>
    <keyword>Attestation</keyword>
    <keyword>Evidence</keyword>
    <keyword>Certificate Signing Requests</keyword>
    <abstract>
      <?line 116?>

<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 RATS conceptual messages (see <xref section="8" sectionFormat="of" target="RFC9334"/>, such as Evidence, Endorsements 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 attestation data to a Certification Authority.</t>
      <t>Including Evidence, Endorsements 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 125?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>When requesting a certificate from a Certification Authority (CA), a PKI end entity may wish to include RATS conceptual messages (see <xref section="8" sectionFormat="of" target="RFC9334"/>, such as Evidence, Endorsements <xref target="I-D.ietf-rats-endorsements"/> and
Attestation Results <xref target="I-D.ietf-rats-ar4si"/>, of the security properties of its environments in which the private keys are stored in that request.</t>
      <t>Evidence and Endorsements 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 Endorsements in order to produce Attestation Results.
As remote attestation technology matures, it is natural for a Certification Authority to rely on remote attestation data for proof that the requesting entity is in a state that matches the certificate profile. This is referred to as the RATS Background Check Model, and is illustrated in <xref target="fig-arch-background"/>.</t>
      <t>Alternatively, the Attester might have a direct connection to a Verifier to which it presents its Evidence and Endorsements, and receives back an Attestation Result signed by the Verifier which it can include directly in the CSR and save the RA / CA from needing a local Verifier. This is referred to as the RATS Passport Model, and is illustrated in <xref target="fig-arch-passport"/>.</t>
      <t>At the time of writing, the most pressing example of the need for remote attestation in certificate enrollment 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, Endorsements, 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, provided that the CSR carries attestation data that the RA / CA can parse to obtain the assurance that it needs to satisfy its certificate issuance policies.</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 terms "attestation" or "remote attestation" are not explicitly defined in RFC 9334 but the activity of "attestation" is clarified in <xref target="RFC9683"/>.
It refers to the process of generating and evaluating remote attestation Evidence and Endorsements.</t>
      <t>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>Several standard and proprietary remote attestation technologies are in use at the time of writing. This specification thereby is intended to be as technology-agnostic as is feasible with respect to implemented remote attestation technologies. Hence, this specification focuses on (1) the conveyance of Evidence, Endorsements, 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, Endorsements, and Attestation Results.</t>
      <t>The <tt>certs</tt> field of the <tt>EvidenceBundle</tt> 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 to sign Evidence originating from the Attester. In some interpretations of the RATS Architecture <xref target="RFC9334"/>, the Attestation Key Certificate and its corresponding certificate chain are considered to be Endorsements of the Attestation Key. The <tt>certs</tt> field of the <tt>AttestationResultsBundle</tt> behaves similarly but the end entity certificate will correspond to a Verifier.
For the purposes of this specification, a certificate chain provided for the purposes of validating another signed object is not considered to be an Endorsement in and of itself. Here, the term "Endorsement" means a signed object containing data about the target environment which may or may not be accompanied by a certificate chain.</t>
      <ul spacing="normal">
        <li>
          <t>Evidence and Endorsements are 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. See <xref target="sec-evidenceAttr"/>.</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. See <xref target="sec-arAttr"/>.</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, Evidence signed using different cryptographic
algorithms, or Endorsements provided by the device manufacturer.
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, Endorsements, and Attestation Results within CSRs. The exact format of the
Evidence, Endorsements, and Attestation Results being conveyed is out of scope of this document as they are 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, Endorsement, 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 module (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>
      <t>Since this document combines terminology from two domains - Remote Attestation (RATS) and X.509 PKI - it follows a naming convention to avoid ambiguity. RATS terminology is written in uppercase (e.g., Verifier), while X.509/PKI terminology is written in lowercase (e.g., certification authority (CA)). This distinction clarifies terms that exist in both domains; for instance, a Verifier refers to the RATS entity that processes Evidence, whereas a verifier refers to the PKI entity that validates certificates.
This convention is distinct from camel-case identifiers like "EvidenceStatement", which denote ASN.1 types.</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 registration authority (RA) and the certification authority (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.
The RA and CA are depicted as separate entities with the RA
consuming the Attestation Results and deciding whether or not to forward
the certificate request to the CA.
In some deployments they are co-located roles.
In other deployments, the RA uses a proprietary interface into the CA.
In either case,
communication between RA and CA is out-of-scope, they can be conceptualized
as a single Relying Party entity for the purposes of this specification.
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="304" width="512" viewBox="0 0 512 304" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 8,176 L 8,272" fill="none" stroke="black"/>
              <path d="M 112,176 L 112,272" fill="none" stroke="black"/>
              <path d="M 216,32 L 216,96" fill="none" stroke="black"/>
              <path d="M 240,176 L 240,272" fill="none" stroke="black"/>
              <path d="M 264,104 L 264,184" fill="none" stroke="black"/>
              <path d="M 320,96 L 320,168" fill="none" stroke="black"/>
              <path d="M 360,32 L 360,96" fill="none" stroke="black"/>
              <path d="M 384,176 L 384,272" fill="none" stroke="black"/>
              <path d="M 448,176 L 448,272" fill="none" stroke="black"/>
              <path d="M 496,176 L 496,272" 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 240,176 L 256,176" fill="none" stroke="black"/>
              <path d="M 272,176 L 384,176" fill="none" stroke="black"/>
              <path d="M 448,176 L 496,176" fill="none" stroke="black"/>
              <path d="M 112,192 L 232,192" fill="none" stroke="black"/>
              <path d="M 248,192 L 280,192" fill="none" stroke="black"/>
              <path d="M 392,192 L 440,192" fill="none" stroke="black"/>
              <path d="M 8,272 L 112,272" fill="none" stroke="black"/>
              <path d="M 240,272 L 384,272" fill="none" stroke="black"/>
              <path d="M 448,272 L 496,272" fill="none" stroke="black"/>
              <polygon class="arrowhead" points="448,192 436,186.4 436,197.6" fill="black" transform="rotate(0,440,192)"/>
              <polygon class="arrowhead" points="328,168 316,162.4 316,173.6" fill="black" transform="rotate(90,320,168)"/>
              <polygon class="arrowhead" points="272,104 260,98.4 260,109.6" fill="black" transform="rotate(270,264,104)"/>
              <polygon class="arrowhead" points="240,192 228,186.4 228,197.6" fill="black" transform="rotate(0,232,192)"/>
              <g class="text">
                <text x="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="204" y="132">Evidence</text>
                <text x="248" y="132">/</text>
                <text x="376" y="132">Attestation</text>
                <text x="196" y="148">Endorsements</text>
                <text x="356" y="148">Result</text>
                <text x="32" y="212">end</text>
                <text x="156" y="212">Evidence</text>
                <text x="200" y="212">/</text>
                <text x="300" y="212">registration</text>
                <text x="468" y="212">CA</text>
                <text x="44" y="228">entity</text>
                <text x="172" y="228">Endorsements</text>
                <text x="288" y="228">authority</text>
                <text x="348" y="228">(RA)</text>
                <text x="132" y="244">in</text>
                <text x="160" y="244">CSR</text>
                <text x="60" y="260">(Attester)</text>
                <text x="284" y="260">(Relying</text>
                <text x="348" y="260">Party)</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art"><![CDATA[
                            .-----------------.
                            |                 | Compare Evidence
                            |    (Verifier)   | against Appraisal
                            |                 | Policy
                            '------------+----'
                                  ^      |
                       Evidence / |      | Attestation
                    Endorsements  |      | Result
                                  |      v
  .------------.               .--|--------------.       .-----.
  |            +-------------->|----'            |------>|     |
  | end        | Evidence /    | registration    |       | CA  |
  | entity     | Endorsements  | authority (RA)  |       |     |
  |            | in CSR        |                 |       |     |
  | (Attester) |               | (Relying Party) |       |     |
  '------------'               '-----------------'       '-----'
]]></artwork>
        </artset>
      </figure>
      <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>
      <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="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 32,64 L 32,168" fill="none" stroke="black"/>
              <path d="M 80,96 L 80,192" fill="none" stroke="black"/>
              <path d="M 112,176 L 112,256" fill="none" stroke="black"/>
              <path d="M 216,48 L 216,112" fill="none" stroke="black"/>
              <path d="M 224,176 L 224,256" fill="none" stroke="black"/>
              <path d="M 360,48 L 360,112" fill="none" stroke="black"/>
              <path d="M 368,176 L 368,256" fill="none" stroke="black"/>
              <path d="M 488,176 L 488,256" fill="none" stroke="black"/>
              <path d="M 544,176 L 544,256" fill="none" stroke="black"/>
              <path d="M 216,48 L 360,48" fill="none" stroke="black"/>
              <path d="M 32,64 L 208,64" fill="none" stroke="black"/>
              <path d="M 80,96 L 208,96" fill="none" stroke="black"/>
              <path d="M 216,112 L 360,112" fill="none" stroke="black"/>
              <path d="M 8,176 L 72,176" fill="none" stroke="black"/>
              <path d="M 88,176 L 112,176" fill="none" stroke="black"/>
              <path d="M 224,176 L 368,176" fill="none" stroke="black"/>
              <path d="M 488,176 L 544,176" fill="none" stroke="black"/>
              <path d="M 80,192 L 216,192" fill="none" stroke="black"/>
              <path d="M 376,192 L 480,192" fill="none" stroke="black"/>
              <path d="M 8,256 L 112,256" fill="none" stroke="black"/>
              <path d="M 224,256 L 368,256" fill="none" stroke="black"/>
              <path d="M 488,256 L 544,256" fill="none" stroke="black"/>
              <polygon class="arrowhead" points="488,192 476,186.4 476,197.6" fill="black" transform="rotate(0,480,192)"/>
              <polygon class="arrowhead" points="224,192 212,186.4 212,197.6" fill="black" transform="rotate(0,216,192)"/>
              <polygon class="arrowhead" points="216,64 204,58.4 204,69.6" fill="black" transform="rotate(0,208,64)"/>
              <polygon class="arrowhead" points="112,192 100,186.4 100,197.6" fill="black" transform="rotate(0,104,192)"/>
              <polygon class="arrowhead" points="88,168 76,162.4 76,173.6" fill="black" transform="rotate(90,80,168)"/>
              <g class="text">
                <text x="60" y="36">Evidence</text>
                <text x="104" y="36">/</text>
                <text x="76" y="52">Endorsements</text>
                <text x="400" y="68">Compare</text>
                <text x="468" y="68">Evidence</text>
                <text x="512" y="68">/</text>
                <text x="284" y="84">(Verifier)</text>
                <text x="420" y="84">Endorsements</text>
                <text x="400" y="100">against</text>
                <text x="472" y="100">Appraisal</text>
                <text x="396" y="116">Policy</text>
                <text x="136" y="132">Attestation</text>
                <text x="116" y="148">Result</text>
                <text x="284" y="196">Registration</text>
                <text x="32" y="212">End</text>
                <text x="168" y="212">Attestation</text>
                <text x="272" y="212">Authority</text>
                <text x="324" y="212">RA</text>
                <text x="516" y="212">CA</text>
                <text x="44" y="228">Entity</text>
                <text x="148" y="228">Result</text>
                <text x="188" y="228">in</text>
                <text x="60" y="244">(Attester)</text>
                <text x="136" y="244">CSR</text>
                <text x="268" y="244">(Relying</text>
                <text x="332" y="244">Party)</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art"><![CDATA[
   Evidence /
   Endorsements           .-----------------.
   +--------------------->|                 | Compare Evidence /
   |                      |   (Verifier)    | Endorsements
   |     +----------------|                 | against Appraisal
   |     |                '-----------------' Policy
   |     | Attestation
   |     | Result
   |     v
.--------|---.             .-----------------.              .------.
|        +-->+------------>| Registration    |------------->|      |
| End        | Attestation | Authority RA    |              |  CA  |
| Entity     | Result in   |                 |              |      |
| (Attester) | CSR         | (Relying Party) |              |      |
'------------'             '-----------------'              '------'
]]></artwork>
        </artset>
      </figure>
      <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>The interface
by which the Relying Party passes Evidence and Endorsements 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>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, Endorsements, 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-and-endorsements-in-csr">
        <name>Model for Evidence and Endorsements in CSR</name>
        <t>To support a number of different use cases for the transmission of
Evidence, Endorsements and certificate chains needed to validate them 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. For the purpose of conveyance within these structures,
Evidence and Endorsements are considered interchangeable since they are both signed data objects with a certificate chain that needs to be validated by a Verifier, so for the
remainder of this document, the term "Evidence" will be used to refer to both types of RATS conceptual messages.</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>
        <t>A Relying Party receiving a CSR containing an Attestation Result <bcp14>MUST</bcp14> use the Type information
to parse the content. The Attestation Result encoding <bcp14>MUST</bcp14> provide information for the Relying
Party to determine the Verifier, who created and protected the Attestation Result against modifications.</t>
      </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>
      </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>
        <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 Evidence statement, the set of certificates <bcp14>SHOULD</bcp14> contain
the certificate that contains the public key needed to directly validate the
Evidence statement, unless the signing key is expected to be known to the Verifier or is embedded within the statement. Additional certificates <bcp14>MAY</bcp14> 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>
      <t>When operating according to the RATS Passport Model, as depicted in <xref target="fig-arch-passport"/>, the CSR sent to the CA / RA will contain Attestation Results in place of Evidence or Endorsements. In order to clearly differentiate Background Check and Passport Model use cases, this section registers a different top-level CSR Attribute (PKCS#10) and Extension (CRMF) for carrying Attestation Results, which are syntactically identical to those for carrying Evidence and Endorsements.</t>
      <section anchor="object-identifiers-1">
        <name>Object Identifiers</name>
        <t>This document defines the OID depicted in <xref target="code-ar-oid"/> as an additional CSR Attribute (PKCS#10) or Extension (CRMF) to carry Attestation Results in a CSR.</t>
        <figure anchor="code-ar-oid">
          <name>New OID for PKIX Attestation Result Formats</name>
          <artwork><![CDATA[
-- OID 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 {
   results SEQUENCE SIZE (1..MAX) OF AttestationResult,
   certs SEQUENCE SIZE (1..MAX) OF CertificateChoices OPTIONAL,
      -- CertificateChoices MUST only contain certificate or other,
      -- see Section 10.2.2 of [RFC5652]
}
]]></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>
    <section anchor="implementation-considerations">
      <name>Implementation Considerations</name>
      <section anchor="is-the-csr-constructed-inside-or-outside-the-attester">
        <name>Is the CSR constructed inside or outside the Attester?</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 module (HSM) generates and embeds
the Evidence and the corresponding certification paths when constructing the CSR.</t>
        <t>Cases where the CSR is generated externally might 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 anchor="sec-impl-ar">
        <name>Separation of RA and CA roles with respect to Attestation Results</name>
        <t>As described in <xref target="architecture"/>, CSRs <bcp14>MAY</bcp14> contain either Evidence or Attestation Results (AR),
and also the registration authority (RA) and certification authority (CA) <bcp14>MAY</bcp14> be conceptualized as
a single Relying Party entity, or as separate entities. There are some implications here worth discussion.</t>
        <t>In many cases, the Evidence contained within a CSR is intended to be consumed by the RA and not
to be placed into the issued certificate.
In some RA / CA architectures, it <bcp14>MAY</bcp14> be appropriate for the RA to "consume" the Evidence
and remove it from the CSR, re-signing the CSR with an RA signing key. A CRMF CSR also allows the RA
to indicate that it verified the CSR without the need to re-signing the CSR.</t>
        <t>In any case where the RA and CA roles are separated, and Evidence is evaluated and consumed by the RA,
the RA does at least implicitly produce Attestation Results as defined in the RATS Architecture <xref target="RFC9334"/>.
For example, the decision to reject the Evidence and fail back to the client, or to accept the Evidence and
forward a request to the CA could be viewed as a boolean Attestation Result.
Similarly, if acceptance or rejection of the Evidence controls the presence or absence of a certain policy OID
or other extension in the issued certificate, this could also be viewed as an Attestation Result.</t>
        <t>Alternatively, the RA <bcp14>MAY</bcp14> place explicit Attestation Results into its request to the CA; either for consumption
by the CA or for inclusion in the issued certificate.
The exact mechanisms for doing this are out-of-scope for this document, but are areas for implementation
consideration and potential future standardization work.</t>
      </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="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 that may be encountered in the wild, as well as
a link to their specification document.
This registry should follow the rules for
"Specification Required" as laid out in <xref target="RFC5226"/>.</t>
        <t>Each row corresponds to an OID and ASN.1 type that could appear in a <tt>EvidenceStatement</tt> or <tt>AttestationResult</tt>, with references for where to find the full specification.</t>
        <t>Registration requests should be formatted as per
the registration template below, and receive a three-week review period on
the <eref target="mailto:spasm@ietf.org">spasm</eref> 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>Type: The ASN.1 type corresponding to the given OID.</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 and define the ASN.1 type 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: The entity that controls the listed data format.
For data formats specified in Standards Track RFCs, list the "IESG".
For others, give the name of the responsible party.
This does not necessarily have to be a standards body, for example
in the case of proprietary data formats the Reference may be to a company or a
publicly-available reference implementation.  In most cases the
third party requesting registration in this registry will also be the
party that registered the OID. As the intention is for this registry to be a
helpful reference, rather than a normative list, a fair amount of
discretion is left to the Designated Expert.</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>
          <ul spacing="normal">
            <li>
              <t>CMW
              </t>
              <ul spacing="normal">
                <li>
                  <t>OID: 1 3 6 1 5 5 7 1 35</t>
                </li>
                <li>
                  <t>Type: CMW</t>
                </li>
                <li>
                  <t>Description: id-pe-cmw</t>
                </li>
                <li>
                  <t>Reference(s): <xref target="I-D.ietf-rats-msg-wrap"/></t>
                </li>
                <li>
                  <t>Change Controller: IETF</t>
                </li>
              </ul>
            </li>
          </ul>
          <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>In the RATS architecture, RPs are typically application services that consume remote attestation, rather than PKI-style RAs or CAs. Devices already place substantial trust in RA/CA infrastructure, so additional information disclosed through remote attestation to these entities is generally less sensitive than disclosure to application services. The issue of CAs embedding Evidence into X.509 certificates 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 may provision all devices in a product family with the same attestation key. This enables anonymity by making devices indistinguishable from one another, but it also prevents revocation of a single device's key if compromised. To preserve privacy in such cases, Evidence must avoid embedding uniquely identifying information, as this would negate the benefits of shared keys.</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) and related cryptographic schemes enable devices to produce attestation signatures that are verifiable against a root key, but unlinkable across different uses. This prevents a verifier from using repeated attestations with the same key as a global correlation handle to track devices. <xref target="I-D.ietf-rats-daa"/> extends the RATS architecture with such a DAA scheme, thereby 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 typically consists of a
distinguished name, a public key, and optionally a set of attributes,
collectively signed by the entity requesting certification.
In general, because an Attestation Key is intended solely for signing Evidence,
 the private key used to sign a CSR <bcp14>SHOULD</bcp14> be distinct from the
Attestation Key used to sign Evidence about the Target
 Environment. Exceptions <bcp14>MAY</bcp14> be allowed when CSRs and Evidence are both part of the process
of bootstrapping the Attestation 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 (PKI 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 in order 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
semantics of "freshness" are 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 PKCS#10 or CRMF certificate signing request (CSR), but it is intentionally <bcp14>NOT RECOMMENDED</bcp14> for a CA to copy the attr-evidence for PKCS#10 or ext-evidence extension for CRMF 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="RFC5226">
          <front>
            <title>Guidelines for Writing an IANA Considerations Section in RFCs</title>
            <author fullname="T. Narten" initials="T." surname="Narten"/>
            <author fullname="H. Alvestrand" initials="H." surname="Alvestrand"/>
            <date month="May" year="2008"/>
            <abstract>
              <t>Many protocols make use of identifiers consisting of constants and other well-known values. Even after a protocol has been defined and deployment has begun, new values may need to be assigned (e.g., for a new option type in DHCP, or a new encryption or authentication transform for IPsec). To ensure that such quantities have consistent values and interpretations across all implementations, their assignment must be administered by a central authority. For IETF protocols, that role is provided by the Internet Assigned Numbers Authority (IANA).</t>
              <t>In order for IANA to manage a given namespace prudently, it needs guidelines describing the conditions under which new values can be assigned or when modifications to existing values can be made. If IANA is expected to play a role in the management of a namespace, IANA must be given clear and concise instructions describing that role. This document discusses issues that should be considered in formulating a policy for assigning values to a namespace and provides guidelines for authors on the specific text that must be included in documents that place demands on IANA.</t>
              <t>This document obsoletes RFC 2434. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5226"/>
          <seriesInfo name="DOI" value="10.17487/RFC5226"/>
        </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>Independent</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="29" month="September" year="2025"/>
            <abstract>
              <t>   The Conceptual Messages introduced by the RATS Architecture (RFC9334)
   are protocol-agnostic data units that are conveyed between RATS roles
   during remote attestation procedures.  Conceptual Messages describe
   the meaning and function of such data units within RATS data flows
   without specifying a wire format, encoding, transport mechanism, or
   processing details.  The initial set of Conceptual Messages is
   defined in Section 8 of RFC9334 and includes Evidence, Attestation
   Results, Endorsements, Reference Values, and Appraisal Policies.

   This document introduces the Conceptual Message Wrapper (CMW) that
   provides a common structure to encapsulate these messages.  It
   defines a dedicated CBOR tag, corresponding JSON Web Token (JWT) and
   CBOR Web Token (CWT) claims, and an X.509 extension.

   This allows CMWs to be used in CBOR-based protocols, web APIs using
   JWTs and CWTs, and PKIX artifacts like X.509 certificates.
   Additionally, the draft defines a media type and a CoAP content
   format to transport CMWs over protocols like HTTP, MIME, and CoAP.

   The goal is to improve the interoperability and flexibility of remote
   attestation protocols.  By introducing a shared message format like
   the CMW, we can consistently support different attestation message
   types, evolve message serialization formats without breaking
   compatibility, and avoid having to redefine how messages are handled
   in each protocol.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-rats-msg-wrap-18"/>
        </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="Thanassis Giannetsos" initials="T." surname="Giannetsos">
              <organization>Ubitech</organization>
            </author>
            <author fullname="Dave Thaler" initials="D." surname="Thaler">
              <organization>Microsoft</organization>
            </author>
            <date day="3" month="September" year="2025"/>
            <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-08"/>
        </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="7" month="July" year="2025"/>
            <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-04"/>
        </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="2" month="September" year="2025"/>
            <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-02"/>
        </reference>
        <reference anchor="I-D.ietf-rats-endorsements">
          <front>
            <title>RATS Endorsements</title>
            <author fullname="Dave Thaler" initials="D." surname="Thaler">
              <organization>Armidale Consulting</organization>
            </author>
            <author fullname="Henk Birkholz" initials="H." surname="Birkholz">
              <organization>Fraunhofer SIT</organization>
            </author>
            <author fullname="Thomas Fossati" initials="T." surname="Fossati">
              <organization>Linaro</organization>
            </author>
            <date day="25" month="August" year="2025"/>
            <abstract>
              <t>   In the IETF Remote Attestation Procedures (RATS) architecture, a
   Verifier accepts Evidence and, using Appraisal Policy typically with
   additional input from Endorsements and Reference Values, generates
   Attestation Results in formats that are useful for Relying Parties.
   This document illustrates the purpose and role of Endorsements and
   discusses some considerations in the choice of message format for
   Endorsements in the scope of the RATS architecture.

   This document does not aim to define a conceptual message format for
   Endorsements and Reference Values.  Instead, it extends RFC9334 to
   provide further details on Reference Values and Endorsements, as
   these topics were outside the scope of the RATS charter when RFC9334
   was developed.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-rats-endorsements-07"/>
        </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="15" month="August" 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-09"/>
        </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.2" target="https://trustedcomputinggroup.org/wp-content/uploads/DICE-Attestation-Architecture-v1.2_pub.pdf">
          <front>
            <title>DICE Attestation Architecture</title>
            <author>
              <organization>Trusted Computing Group</organization>
            </author>
            <date year="2025" month="April"/>
          </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="RFC9683">
          <front>
            <title>Remote Integrity Verification of Network Devices Containing Trusted Platform Modules</title>
            <author fullname="G. C. Fedorkow" initials="G. C." role="editor" surname="Fedorkow"/>
            <author fullname="E. Voit" initials="E." surname="Voit"/>
            <author fullname="J. Fitzgerald-McKay" initials="J." surname="Fitzgerald-McKay"/>
            <date month="December" year="2024"/>
            <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 (TPMs), 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="RFC" value="9683"/>
          <seriesInfo name="DOI" value="10.17487/RFC9683"/>
        </reference>
      </references>
    </references>
    <?line 1006?>

<section anchor="examples">
      <name>Examples</name>
      <t>This section provides an example that 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 CMW and PSA Evidence types would result in the following EvidenceStatementSet definition:</t>
        <artwork><![CDATA[
EvidenceStatementSet EVIDENCE-STATEMENT ::= {
  --- ConceptualMessageWrapper
  { CMW IDENTIFIED BY id-pe-cmw },
  ...,

  --- PSA
  { OCTET STRING IDENTIFIED BY { 1 3 6 1 5 5 7 1 99 } }
}
]]></artwork>
      </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[
=============== NOTE: '\' line wrapping per RFC 8792 ================

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) }
  ;

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
}

LimitedCertChoices ::= CertificateChoices (WITH COMPONENTS {\
                                                 certificate, other})

EvidenceBundle ::= SEQUENCE {
   evidences SEQUENCE SIZE (1..MAX) OF EvidenceStatement,
   certs SEQUENCE SIZE (1..MAX) OF LimitedCertChoices OPTIONAL
}

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.2"/>.</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.2"/>.</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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

-->

</rfc>
