<?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.26 (Ruby 3.3.6) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-lamps-csr-attestation-18" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.28.0 -->
  <front>
    <title abbrev="Remote Attestation with CSRs">Use of Remote Attestation with Certification Signing Requests</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-lamps-csr-attestation-18"/>
    <author initials="M." surname="Ounsworth" fullname="Mike Ounsworth">
      <organization abbrev="Entrust">Entrust Limited</organization>
      <address>
        <postal>
          <street>2500 Solandt Road – Suite 100</street>
          <city>Ottawa, Ontario</city>
          <code>K2K 3G5</code>
          <country>Canada</country>
        </postal>
        <email>mike.ounsworth@entrust.com</email>
      </address>
    </author>
    <author initials="H." surname="Tschofenig" fullname="Hannes Tschofenig">
      <organization>Siemens</organization>
      <address>
        <email>Hannes.Tschofenig@gmx.net</email>
      </address>
    </author>
    <author initials="H." surname="Birkholz" fullname="Henk Birkholz">
      <organization abbrev="Fraunhofer SIT">Fraunhofer SIT</organization>
      <address>
        <postal>
          <street>Rheinstrasse 75</street>
          <city>Darmstadt</city>
          <code>64295</code>
          <country>Germany</country>
        </postal>
        <email>henk.birkholz@sit.fraunhofer.de</email>
      </address>
    </author>
    <author initials="M." surname="Wiseman" fullname="Monty Wiseman">
      <organization>Beyond Identity</organization>
      <address>
        <postal>
          <country>USA</country>
        </postal>
        <email>monty.wiseman@beyondidentity.com</email>
      </address>
    </author>
    <author initials="N." surname="Smith" fullname="Ned Smith">
      <organization>Intel Corporation</organization>
      <address>
        <postal>
          <country>United States</country>
        </postal>
        <email>ned.smith@intel.com</email>
      </address>
    </author>
    <date year="2025" month="March" day="19"/>
    <keyword>PKI</keyword>
    <keyword>PKCS#10</keyword>
    <keyword>CRMF</keyword>
    <keyword>Attestation</keyword>
    <keyword>Evidence</keyword>
    <keyword>Certificate Signing Requests</keyword>
    <abstract>
      <?line 117?>

<t>A PKI end entity requesting a certificate from a Certification Authority (CA) may wish to offer trustworthy claims about the platform generating the certification request and the environment associated with the corresponding private key, such as whether the private key resides on a hardware security module.</t>
      <t>This specification defines an attribute and an extension that allow for conveyance of Evidence and
Attestation Results in Certificate Signing Requests (CSRs), such as PKCS#10 or Certificate Request Message Format (CRMF) payloads. This provides an elegant and automatable mechanism for transporting Evidence to a Certification Authority.</t>
      <t>Including Evidence and Attestation Results along with a CSR can help to improve the assessment of the security posture for the private key, and can help the Certification Authority to assess whether it satisfies the requested certificate profile.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://lamps-wg.github.io/csr-attestation/draft-ietf-lamps-csr-attestation.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ietf-lamps-csr-attestation/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/lamps-wg/csr-attestation"/>.</t>
    </note>
  </front>
  <middle>
    <?line 126?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>When requesting a certificate from a Certification Authority (CA), a PKI end entity may wish to include Evidence or Attestation Results of the security properties of its environments in which the private keys are stored in that request.</t>
      <t>Evidence are appraised by Verifiers, which typically produces Attestation Results that serve as input for validating incoming certificate requests against specified certificate policies.
Verifiers are associated with Registration Authorities (RAs) or CAs and function as logical entities responsible for processing Evidence and producing Attestation Results.
As remote attestation technology matures, it is natural for a Certification Authority to want proof that the requesting entity is in a state that matches the certificate profile.
At the time of writing, the most notable example is the Code-Signing Baseline Requirements (CSBR) document maintained by the CA/Browser Forum <xref target="CSBR"/>, which requires compliant CAs to "ensure that a Subscriber’s Private Key is generated, stored,
and used in a secure environment that has controls to prevent theft or misuse", which is a natural fit to enforce via remote attestation.</t>
      <t>This specification defines an attribute and an extension that allow for conveyance of Evidence and Attestation Results in Certificate Signing Requests (CSRs), such as PKCS#10 <xref target="RFC2986"/> or Certificate Request Message Format (CRMF) <xref target="RFC4211"/> payloads.
This CSR extension satisfies CA/B Forum's CSBR <xref target="CSBR"/> requirements for key protection assurance.</t>
      <t>As outlined in the IETF RATS architecture <xref target="RFC9334"/>, an Attester (typically a device) produces a signed collection of Claims that constitute Evidence about its running environment(s).
The term "attestation" is not explicitly defined in RFC 9334 but was later clarified in <xref target="I-D.ietf-rats-tpm-based-network-device-attest"/>.
It refers to the process of generating and evaluating remote attestation Evidence.</t>
      <t>After the Verifier appraises the Evidence, it generates a new structure called an Attestation Result.
A Relying Party utilizes Attestation Results to inform risk or policy-based decisions that consider trustworthiness of the attested entity.
This document relies on <xref target="architecture"/> as the foundation for how the various roles within the RATS architecture correspond to a certificate requester and a CA/RA.</t>
      <t>The IETF RATS architecture <xref target="RFC9334"/> defines two communication patterns: the <em>background-check model</em> and the <em>passport model</em>.
In the background-check model, the Relying Party receives Evidence in the CSR from the Attester and must interact with a Verifier service directly to obtain Attestation Results.
In contrast, the passport model requires the Attester to first interact with the Verifier service to obtain an Attestation Result token that is then relayed to the Relying Party.
This specification defines both communication patterns.</t>
      <t>Several standard and proprietary remote attestation technologies are in use. This specification thereby is intended to be as technology-agnostic as it is feasible with respect to implemented remote attestation technologies. Hence, this specification focuses on (1) the conveyance of Evidence and Attestation Results via CSRs while making minimal assumptions about content or format of the transported payload and (2) the conveyance of sets of certificates used for validation of Evidence.</t>
      <t>The certificates typically contain one or more certification paths rooted in a device manufacturer trust anchor and the end entity certificate being on the device in question. The end entity certificate is associated with key material that takes on the role of an Attestation Key and is used as Evidence originating from the Attester.</t>
      <t>This document specifies a CSR Attribute (or Extension for Certificate Request Message Format (CRMF) CSRs) for carrying Evidence and Attestation Results.</t>
      <ul spacing="normal">
        <li>
          <t>Evidence is placed into an EvidenceStatement along with an OID to identify its type and optionally a hint to the Relying Party about which Verifier (software package, a microservice or some other service) will be capable of parsing it. A set of EvidenceStatement structures may be grouped together along with the set of CertificateChoice structures needed to validate them to form a EvidenceBundle.</t>
        </li>
        <li>
          <t>Attestation Results are carried in the AttestationResult along with an OID to identify its type. A set of AttestationResult structures may be grouped together to form an AttestationResultBundle.</t>
        </li>
      </ul>
      <t>A CSR may contain one or more Evidence payloads. For example Evidence
asserting the storage properties of a private key, Evidence
asserting firmware version and other general properties
of the device, or Evidence signed using different cryptographic
algorithms. Like-wise a CSR may also contain one or more Attestation Result payloads.</t>
      <t>With these attributes, additional
information is available to an RA or CA, which may be used
to decide whether to issue a certificate and what certificate profile
to apply. The scope of this document is, however,
limited to the conveyance of Evidence and Attestation Results within CSR. The exact format of the
Evidence and Attestation Results being conveyed is defined in various standard and proprietary
specifications.</t>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <?line -18?>

<t>This document re-uses the terms defined in <xref target="RFC9334"/> related to remote
attestation. Readers of this document are assumed to be familiar with
the following terms: Evidence, Claim, Attestation Result (AR), Attester,
Verifier, Target Environment, Attesting Environment, Composite Device,
Lead Attester, Attestation Key, and Relying Party (RP).</t>
      <t>The term "Certification Request" message is defined in <xref target="RFC2986"/>.
Specifications, such as <xref target="RFC7030"/>, later introduced the term
"Certificate Signing Request (CSR)" to refer to the Certification
Request message. While the term "Certification Request"
would have been correct, the mistake was unnoticed. In the meanwhile
CSR is an abbreviation used beyond PKCS#10. Hence, it is equally
applicable to other protocols that use a different syntax and
even a different encoding, in particular this document also
considers messages in the Certificate Request Message Format (CRMF) <xref target="RFC4211"/>
to be "CSRs". In this document, the terms "CSR" and Certificate Request
message are used interchangeably.</t>
      <t>The term Hardware Security Modules (HSM) is used generically to refer to the
combination of hardware and software designed to protect keys from unauthorized
access. Other commonly used terms include Secure Element and Trusted Execution
Environment.</t>
    </section>
    <section anchor="architecture">
      <name>Architecture</name>
      <t><xref target="fig-arch-background"/> shows the high-level communication pattern of the RATS
background check model where the Attester transmits the Evidence in the
CSR to the RA and the CA, which is subsequently forwarded to the Verifier.
The Verifier appraises the received Evidence and computes an Attestation
Result, which is then processed by the RA/CA prior to the certificate
issuance.</t>
      <t>In addition to the background-check model, the RATS architecture also
defines the passport model, as described in <xref section="5.2" sectionFormat="of" target="RFC9334"/>.
In the passport model, the Attester transmits Evidence directly to the
Verifier to obtain an Attestation Result, which is subsequently forwarded
to the Relying Party.</t>
      <t>The choice of model depends on various factors. For instance, the
background-check model is preferred when direct real-time interaction
between the Attester and the Verifier is not feasible.</t>
      <t>Note that the Verifier is a logical role that may be included in the
RA/CA product. In this case, the Relying Party role and Verifier role collapse into a
single physical entity. The Verifier functionality can, however,
also be kept separate from the RA functionality. For example,
security concerns may require parsers of Evidence formats to be logically
or physically separated from the core RA and CA functionality.</t>
      <t>The interface
by which the Relying Party passes Evidence to the Verifier and receives back
Attestation Results may be proprietary or standardized, but in any case is
out-of-scope for this document. Like-wise, the interface between the Attester
and the Verifier used in the passport model is also out-of-scope for this
document.</t>
      <t><xref target="fig-arch-background"/> shows an example data flow where Evidence is included in a
CSR in the background-check model. The CSR is parsed by the RA component of a
CA, which extracts the Evidence and forwards it to a
trusted Verifier. The RA receives back an Attestation Result, which it uses
to decide whether this Evidence meets its policy for certificate issuance
and if it does then the certificate request is forwarded to the CA for issuance.
This diagram overlays PKI entities with RATS roles in parentheses.</t>
      <figure anchor="fig-arch-background">
        <name>Example data flow demonstrating the architecture with Background Check Model.</name>
        <artset>
          <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="272" width="552" viewBox="0 0 552 272" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 8,176 L 8,256" fill="none" stroke="black"/>
              <path d="M 112,176 L 112,256" fill="none" stroke="black"/>
              <path d="M 216,32 L 216,96" fill="none" stroke="black"/>
              <path d="M 216,176 L 216,256" fill="none" stroke="black"/>
              <path d="M 256,104 L 256,192" fill="none" stroke="black"/>
              <path d="M 320,96 L 320,192" fill="none" stroke="black"/>
              <path d="M 360,32 L 360,96" fill="none" stroke="black"/>
              <path d="M 360,176 L 360,256" fill="none" stroke="black"/>
              <path d="M 496,176 L 496,256" fill="none" stroke="black"/>
              <path d="M 544,176 L 544,256" fill="none" stroke="black"/>
              <path d="M 216,32 L 360,32" fill="none" stroke="black"/>
              <path d="M 216,96 L 360,96" fill="none" stroke="black"/>
              <path d="M 8,176 L 112,176" fill="none" stroke="black"/>
              <path d="M 216,176 L 248,176" fill="none" stroke="black"/>
              <path d="M 264,176 L 312,176" fill="none" stroke="black"/>
              <path d="M 328,176 L 360,176" fill="none" stroke="black"/>
              <path d="M 496,176 L 544,176" fill="none" stroke="black"/>
              <path d="M 112,192 L 208,192" fill="none" stroke="black"/>
              <path d="M 224,192 L 256,192" fill="none" stroke="black"/>
              <path d="M 320,192 L 352,192" fill="none" stroke="black"/>
              <path d="M 368,192 L 488,192" fill="none" stroke="black"/>
              <path d="M 8,256 L 112,256" fill="none" stroke="black"/>
              <path d="M 216,256 L 360,256" fill="none" stroke="black"/>
              <path d="M 496,256 L 544,256" fill="none" stroke="black"/>
              <polygon class="arrowhead" points="496,192 484,186.4 484,197.6" fill="black" transform="rotate(0,488,192)"/>
              <polygon class="arrowhead" points="360,192 348,186.4 348,197.6" fill="black" transform="rotate(0,352,192)"/>
              <polygon class="arrowhead" points="328,168 316,162.4 316,173.6" fill="black" transform="rotate(90,320,168)"/>
              <polygon class="arrowhead" points="264,104 252,98.4 252,109.6" fill="black" transform="rotate(270,256,104)"/>
              <polygon class="arrowhead" points="216,192 204,186.4 204,197.6" fill="black" transform="rotate(0,208,192)"/>
              <g class="text">
                <text x="400" y="52">Compare</text>
                <text x="468" y="52">Evidence</text>
                <text x="292" y="68">(Verifier)</text>
                <text x="400" y="68">against</text>
                <text x="472" y="68">Appraisal</text>
                <text x="396" y="84">Policy</text>
                <text x="212" y="132">Evidence</text>
                <text x="376" y="132">Attestation</text>
                <text x="356" y="148">Result</text>
                <text x="32" y="212">End</text>
                <text x="156" y="212">Evidence</text>
                <text x="276" y="212">Registration</text>
                <text x="416" y="212">Attestation</text>
                <text x="516" y="212">CA</text>
                <text x="44" y="228">Entity</text>
                <text x="132" y="228">in</text>
                <text x="160" y="228">CSR</text>
                <text x="264" y="228">Authority</text>
                <text x="324" y="228">(RA)</text>
                <text x="396" y="228">Result</text>
                <text x="436" y="228">in</text>
                <text x="516" y="228">(RP)</text>
                <text x="60" y="244">(Attester)</text>
                <text x="260" y="244">(Relying</text>
                <text x="324" y="244">Party)</text>
                <text x="384" y="244">CSR</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art"><![CDATA[
                          .-----------------.
                          |                 | Compare Evidence
                          |    (Verifier)   | against Appraisal
                          |                 | Policy
                          '------------+----'
                               ^       |
                      Evidence |       | Attestation
                               |       | Result
                               |       v
.------------.            .----|-------|----.                .-----.
|            +----------->|----'       '--->|--------------->|     |
| End        | Evidence   | Registration    | Attestation    | CA  |
| Entity     | in CSR     | Authority (RA)  | Result in      |(RP) |
| (Attester) |            | (Relying Party) | CSR            |     |
'------------'            '-----------------'                '-----'
]]></artwork>
        </artset>
      </figure>
      <t><xref target="fig-arch-passport"/> illustrates the passport model, where the
Attester first communicates with the Verifier to obtain the Attestation
Result, which is subsequently included in the CSR.</t>
      <figure anchor="fig-arch-passport">
        <name>Example data flow demonstrating the architecture with Passport Model.</name>
        <artset>
          <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="256" width="552" viewBox="0 0 552 256" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 8,160 L 8,240" fill="none" stroke="black"/>
              <path d="M 32,48 L 32,152" fill="none" stroke="black"/>
              <path d="M 80,80 L 80,176" fill="none" stroke="black"/>
              <path d="M 112,160 L 112,240" fill="none" stroke="black"/>
              <path d="M 216,32 L 216,96" fill="none" stroke="black"/>
              <path d="M 224,160 L 224,240" fill="none" stroke="black"/>
              <path d="M 360,32 L 360,96" fill="none" stroke="black"/>
              <path d="M 368,160 L 368,240" fill="none" stroke="black"/>
              <path d="M 488,160 L 488,240" fill="none" stroke="black"/>
              <path d="M 544,160 L 544,240" fill="none" stroke="black"/>
              <path d="M 216,32 L 360,32" fill="none" stroke="black"/>
              <path d="M 32,48 L 208,48" fill="none" stroke="black"/>
              <path d="M 80,80 L 208,80" fill="none" stroke="black"/>
              <path d="M 216,96 L 360,96" fill="none" stroke="black"/>
              <path d="M 8,160 L 72,160" fill="none" stroke="black"/>
              <path d="M 88,160 L 112,160" fill="none" stroke="black"/>
              <path d="M 224,160 L 368,160" fill="none" stroke="black"/>
              <path d="M 488,160 L 544,160" fill="none" stroke="black"/>
              <path d="M 80,176 L 216,176" fill="none" stroke="black"/>
              <path d="M 376,176 L 480,176" fill="none" stroke="black"/>
              <path d="M 8,240 L 112,240" fill="none" stroke="black"/>
              <path d="M 224,240 L 368,240" fill="none" stroke="black"/>
              <path d="M 488,240 L 544,240" fill="none" stroke="black"/>
              <polygon class="arrowhead" points="488,176 476,170.4 476,181.6" fill="black" transform="rotate(0,480,176)"/>
              <polygon class="arrowhead" points="224,176 212,170.4 212,181.6" fill="black" transform="rotate(0,216,176)"/>
              <polygon class="arrowhead" points="216,48 204,42.4 204,53.6" fill="black" transform="rotate(0,208,48)"/>
              <polygon class="arrowhead" points="112,176 100,170.4 100,181.6" fill="black" transform="rotate(0,104,176)"/>
              <polygon class="arrowhead" points="88,152 76,146.4 76,157.6" fill="black" transform="rotate(90,80,152)"/>
              <g class="text">
                <text x="60" y="36">Evidence</text>
                <text x="400" y="52">Compare</text>
                <text x="468" y="52">Evidence</text>
                <text x="284" y="68">(Verifier)</text>
                <text x="400" y="68">against</text>
                <text x="472" y="68">Appraisal</text>
                <text x="396" y="84">Policy</text>
                <text x="136" y="116">Attestation</text>
                <text x="116" y="132">Result</text>
                <text x="284" y="180">Registration</text>
                <text x="32" y="196">End</text>
                <text x="168" y="196">Attestation</text>
                <text x="272" y="196">Authority</text>
                <text x="424" y="196">Attestation</text>
                <text x="516" y="196">CA</text>
                <text x="44" y="212">Entity</text>
                <text x="148" y="212">Result</text>
                <text x="188" y="212">in</text>
                <text x="404" y="212">Result</text>
                <text x="444" y="212">in</text>
                <text x="516" y="212">(RP)</text>
                <text x="60" y="228">(Attester)</text>
                <text x="136" y="228">CSR</text>
                <text x="268" y="228">(Relying</text>
                <text x="332" y="228">Party)</text>
                <text x="392" y="228">CSR</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art"><![CDATA[
   Evidence               .-----------------.
   +--------------------->|                 | Compare Evidence
   |                      |   (Verifier)    | against Appraisal
   |     +----------------|                 | Policy
   |     |                '-----------------'
   |     | Attestation
   |     | Result
   |     v
.--------|---.             .-----------------.              .------.
|        +-->+------------>| Registration    |------------->|      |
| End        | Attestation | Authority       | Attestation  |  CA  |
| Entity     | Result in   |                 | Result in    | (RP) |
| (Attester) | CSR         | (Relying Party) | CSR          |      |
'------------'             '-----------------'              '------'
]]></artwork>
        </artset>
      </figure>
      <t>RFC 9334 <xref target="RFC9334"/> discusses different security and privacy aspects that need to be
considered when developing and deploying a remote attestation solution. For example,
Evidence may need to be protected against replay and <xref section="10" sectionFormat="of" target="RFC9334"/> lists
approach for offering freshness. There are also concerns about the exposure of
persistent identifiers by utilizing attestation technology, which are discussed in
<xref section="11" sectionFormat="of" target="RFC9334"/>. Finally, the keying material used by the Attester needs to
be protected against unauthorized access, and against signing arbitrary content that
originated from outside the device. This aspect is described in <xref section="12" sectionFormat="of" target="RFC9334"/>.
Most of these aspects are, however, outside the scope of this specification but relevant
for use with a given attestation technology.</t>
      <t>The focus of this specification is on the transport of Evidence and Attesation Results
from the Attester to the Relying Party via existing CSR messages.</t>
    </section>
    <section anchor="information-model">
      <name>Information Model</name>
      <section anchor="model-for-evidence-in-csr">
        <name>Model for Evidence in CSR</name>
        <t>To support a number of different use cases for the transmission of
Evidence and certificate chains in a CSR the structure
shown in <xref target="fig-info-model"/> is used.</t>
        <t>On a high-level, the structure is composed as follows:
A PKCS#10 attribute or a CRMF extension contains one
EvidenceBundle structure. The EvidenceBundle contains one or more
EvidenceStatement structures as well as one or more
CertificateChoices which enable to carry various format of
certificates.</t>
        <t>Note: Since an extension must only be included once in a certificate
see <xref section="4.2" sectionFormat="of" target="RFC5280"/>, this PKCS#10 attribute
or the CRMF extension <bcp14>MUST</bcp14> only be included once in a CSR.</t>
        <figure anchor="fig-info-model">
          <name>Information Model for CSR Evidence Conveyance.</name>
          <artset>
            <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="368" width="488" viewBox="0 0 488 368" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 8,32 L 8,96" fill="none" stroke="black"/>
                <path d="M 8,240 L 8,272" fill="none" stroke="black"/>
                <path d="M 80,104 L 80,232" fill="none" stroke="black"/>
                <path d="M 152,144 L 152,232" fill="none" stroke="black"/>
                <path d="M 168,32 L 168,96" fill="none" stroke="black"/>
                <path d="M 176,240 L 176,272" fill="none" stroke="black"/>
                <path d="M 264,128 L 264,208" fill="none" stroke="black"/>
                <path d="M 320,240 L 320,336" fill="none" stroke="black"/>
                <path d="M 472,128 L 472,208" fill="none" stroke="black"/>
                <path d="M 480,240 L 480,336" fill="none" stroke="black"/>
                <path d="M 8,32 L 168,32" fill="none" stroke="black"/>
                <path d="M 8,96 L 168,96" fill="none" stroke="black"/>
                <path d="M 264,128 L 472,128" fill="none" stroke="black"/>
                <path d="M 152,144 L 256,144" fill="none" stroke="black"/>
                <path d="M 264,160 L 472,160" fill="none" stroke="black"/>
                <path d="M 264,208 L 472,208" fill="none" stroke="black"/>
                <path d="M 8,240 L 176,240" fill="none" stroke="black"/>
                <path d="M 320,240 L 480,240" fill="none" stroke="black"/>
                <path d="M 184,256 L 312,256" fill="none" stroke="black"/>
                <path d="M 8,272 L 176,272" fill="none" stroke="black"/>
                <path d="M 320,272 L 480,272" fill="none" stroke="black"/>
                <path d="M 320,336 L 480,336" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="320,256 308,250.4 308,261.6" fill="black" transform="rotate(0,312,256)"/>
                <polygon class="arrowhead" points="264,144 252,138.4 252,149.6" fill="black" transform="rotate(0,256,144)"/>
                <polygon class="arrowhead" points="192,256 180,250.4 180,261.6" fill="black" transform="rotate(180,184,256)"/>
                <polygon class="arrowhead" points="160,232 148,226.4 148,237.6" fill="black" transform="rotate(90,152,232)"/>
                <polygon class="arrowhead" points="88,232 76,226.4 76,237.6" fill="black" transform="rotate(90,80,232)"/>
                <polygon class="arrowhead" points="88,104 76,98.4 76,109.6" fill="black" transform="rotate(270,80,104)"/>
                <g class="text">
                  <text x="48" y="52">PKCS#10</text>
                  <text x="120" y="52">Attribute</text>
                  <text x="76" y="68">or</text>
                  <text x="36" y="84">CRMF</text>
                  <text x="96" y="84">Extension</text>
                  <text x="56" y="116">1</text>
                  <text x="228" y="132">1..n</text>
                  <text x="348" y="148">CertificateChoices</text>
                  <text x="320" y="180">Certificate</text>
                  <text x="380" y="180">OR</text>
                  <text x="364" y="196">OtherCertificateFormat</text>
                  <text x="56" y="212">1</text>
                  <text x="136" y="228">1</text>
                  <text x="192" y="244">1</text>
                  <text x="284" y="244">1..n</text>
                  <text x="84" y="260">EvidenceBundle</text>
                  <text x="400" y="260">EvidenceStatement</text>
                  <text x="348" y="292">Type</text>
                  <text x="368" y="308">Statement</text>
                  <text x="348" y="324">Hint</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![CDATA[
 +-------------------+
 | PKCS#10 Attribute |
 |       or          |
 | CRMF Extension    |
 +--------+----------+
       1  ^
          |                1..n  +-------------------------+
          |        +------------>| CertificateChoices      |
          |        |             +-------------------------+
          |        |             | Certificate OR          |
          |        |             | OtherCertificateFormat  |
       1  |        |             +-------------------------+
          v      1 v
 +--------------------+ 1         1..n  +-------------------+
 |  EvidenceBundle    |<--------------->| EvidenceStatement |
 +--------------------+                 +-------------------+
                                        | Type              |
                                        | Statement         |
                                        | Hint              |
                                        +-------------------+
]]></artwork>
          </artset>
        </figure>
        <t>A conformant implementation of an entity processing the CSR structures <bcp14>MUST</bcp14> be prepared
to use certificates found in the EvidenceBundle structure to build a certification
path to validate any EvidenceStatement.
The following use cases are supported, as described in the sub-sections below.</t>
        <section anchor="case-1-evidence-bundle-without-certificate-chain">
          <name>Case 1 - Evidence Bundle without Certificate Chain</name>
          <t>A single Attester, which only distributes Evidence without an attached certificate chain.
In the use case, the Verifier is assumed to be in possession of the certificate chain already
or the Verifier directly trusts the Attestation Key and therefore no certificate chain needs
to be conveyed in the CSR.</t>
          <t>As a result, one EvidenceBundle is included in a CSR that contains a single EvidenceStatement
without the CertificateChoices structure. <xref target="fig-single-attester"/> shows this use case.</t>
          <figure anchor="fig-single-attester">
            <name>Case 1: Evidence Bundle without Certificate Chain.</name>
            <artset>
              <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="128" width="184" viewBox="0 0 184 128" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                  <path d="M 8,32 L 8,96" fill="none" stroke="black"/>
                  <path d="M 176,32 L 176,96" fill="none" stroke="black"/>
                  <path d="M 8,32 L 176,32" fill="none" stroke="black"/>
                  <path d="M 8,96 L 176,96" fill="none" stroke="black"/>
                  <g class="text">
                    <text x="84" y="52">EvidenceBundle</text>
                    <text x="92" y="68">....................</text>
                    <text x="88" y="84">EvidenceStatement</text>
                  </g>
                </svg>
              </artwork>
              <artwork type="ascii-art"><![CDATA[
  +--------------------+
  |  EvidenceBundle    |
  +....................+
  | EvidenceStatement  |
  +--------------------+
]]></artwork>
            </artset>
          </figure>
        </section>
        <section anchor="case-2-evidence-bundle-with-certificate-chain">
          <name>Case 2 - Evidence Bundle with Certificate Chain</name>
          <t>A single Attester, which shares Evidence together with a certificate chain, is
shown in <xref target="fig-single-attester-with-path"/>. The CSR conveys an EvidenceBundle
with a single EvidenceStatement and a CertificateChoices structure.</t>
          <figure anchor="fig-single-attester-with-path">
            <name>Case 2: Single Evidence Bundle with Certificate Chain.</name>
            <artset>
              <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="144" width="224" viewBox="0 0 224 144" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                  <path d="M 8,32 L 8,112" fill="none" stroke="black"/>
                  <path d="M 216,32 L 216,112" fill="none" stroke="black"/>
                  <path d="M 8,32 L 216,32" fill="none" stroke="black"/>
                  <path d="M 8,112 L 216,112" fill="none" stroke="black"/>
                  <g class="text">
                    <text x="84" y="52">EvidenceBundle</text>
                    <text x="112" y="68">.........................</text>
                    <text x="88" y="84">EvidenceStatement</text>
                    <text x="92" y="100">CertificateChoices</text>
                  </g>
                </svg>
              </artwork>
              <artwork type="ascii-art"><![CDATA[
 +-------------------------+
 |  EvidenceBundle         |
 +.........................+
 | EvidenceStatement       |
 | CertificateChoices      |
 +-------------------------+
]]></artwork>
            </artset>
          </figure>
        </section>
        <section anchor="case-3-evidence-bundles-with-multiple-evidence-statements-and-complete-certificate-chains">
          <name>Case 3 - Evidence Bundles with Multiple Evidence Statements and Complete Certificate Chains</name>
          <t>In a Composite Device, which contains multiple Attesters, a collection of Evidence
statements is obtained. In this use case, each Attester returns its Evidence together with a
certificate chain. As a result, multiple EvidenceStatement structures and the corresponding CertificateChoices structure with the
certification chains as provided by the Attester, are included in the CSR.
This approach does not require any processing capabilities
by a Lead Attester since the information is merely forwarded. <xref target="fig-multiple-attesters"/>
shows this use case.</t>
          <figure anchor="fig-multiple-attesters">
            <name>Case 3: Multiple Evidence Structures each with Complete Certificate Chains.</name>
            <artset>
              <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="160" width="560" viewBox="0 0 560 160" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                  <path d="M 8,32 L 8,128" fill="none" stroke="black"/>
                  <path d="M 216,32 L 216,128" fill="none" stroke="black"/>
                  <path d="M 8,32 L 216,32" fill="none" stroke="black"/>
                  <path d="M 8,128 L 216,128" fill="none" stroke="black"/>
                  <g class="text">
                    <text x="84" y="52">EvidenceBundle</text>
                    <text x="112" y="68">.........................</text>
                    <text x="88" y="84">EvidenceStatement</text>
                    <text x="176" y="84">(1)</text>
                    <text x="260" y="84">Provided</text>
                    <text x="308" y="84">by</text>
                    <text x="356" y="84">Attester</text>
                    <text x="400" y="84">1</text>
                    <text x="88" y="100">EvidenceStatement</text>
                    <text x="176" y="100">(2)</text>
                    <text x="260" y="100">Provided</text>
                    <text x="308" y="100">by</text>
                    <text x="356" y="100">Attester</text>
                    <text x="400" y="100">2</text>
                    <text x="92" y="116">CertificateChoices</text>
                    <text x="276" y="116">Certificates</text>
                    <text x="364" y="116">provided</text>
                    <text x="412" y="116">by</text>
                    <text x="460" y="116">Attester</text>
                    <text x="504" y="116">1</text>
                    <text x="528" y="116">and</text>
                    <text x="552" y="116">2</text>
                  </g>
                </svg>
              </artwork>
              <artwork type="ascii-art"><![CDATA[
  +-------------------------+
  |  EvidenceBundle         |
  +.........................+
  | EvidenceStatement (1)   | Provided by Attester 1
  | EvidenceStatement (2)   | Provided by Attester 2
  | CertificateChoices      | Certificates provided by Attester 1 and 2
  +-------------------------+
]]></artwork>
            </artset>
          </figure>
        </section>
      </section>
      <section anchor="model-for-attestation-result-in-csr">
        <name>Model for Attestation Result in CSR</name>
        <t><xref target="fig-info-model-ar"/> illustrates the information model for transmitting
Attestation Results as a PKCS#10 attribute or a CRMF extension. This
structure includes a single AttestationResultBundle, which in turn comprises
one or more AttestationResult structures.</t>
        <figure anchor="fig-info-model-ar">
          <name>Information Model for CSR Attestation Result Conveyance.</name>
          <artset>
            <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="288" width="448" viewBox="0 0 448 288" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 8,32 L 8,96" fill="none" stroke="black"/>
                <path d="M 8,240 L 8,272" fill="none" stroke="black"/>
                <path d="M 80,104 L 80,232" fill="none" stroke="black"/>
                <path d="M 160,144 L 160,232" fill="none" stroke="black"/>
                <path d="M 168,32 L 168,96" fill="none" stroke="black"/>
                <path d="M 216,240 L 216,272" fill="none" stroke="black"/>
                <path d="M 280,112 L 280,208" fill="none" stroke="black"/>
                <path d="M 440,112 L 440,208" fill="none" stroke="black"/>
                <path d="M 8,32 L 168,32" fill="none" stroke="black"/>
                <path d="M 8,96 L 168,96" fill="none" stroke="black"/>
                <path d="M 280,112 L 440,112" fill="none" stroke="black"/>
                <path d="M 160,144 L 440,144" fill="none" stroke="black"/>
                <path d="M 280,208 L 440,208" fill="none" stroke="black"/>
                <path d="M 8,240 L 216,240" fill="none" stroke="black"/>
                <path d="M 8,272 L 216,272" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="280,144 268,138.4 268,149.6" fill="black" transform="rotate(0,272,144)"/>
                <polygon class="arrowhead" points="168,232 156,226.4 156,237.6" fill="black" transform="rotate(90,160,232)"/>
                <polygon class="arrowhead" points="88,232 76,226.4 76,237.6" fill="black" transform="rotate(90,80,232)"/>
                <polygon class="arrowhead" points="88,104 76,98.4 76,109.6" fill="black" transform="rotate(270,80,104)"/>
                <g class="text">
                  <text x="48" y="52">PKCS#10</text>
                  <text x="120" y="52">Attribute</text>
                  <text x="76" y="68">or</text>
                  <text x="36" y="84">CRMF</text>
                  <text x="96" y="84">Extension</text>
                  <text x="56" y="116">1</text>
                  <text x="236" y="132">1..n</text>
                  <text x="360" y="132">AttestationResult</text>
                  <text x="308" y="164">Type</text>
                  <text x="316" y="180">Result</text>
                  <text x="56" y="212">1</text>
                  <text x="144" y="228">1</text>
                  <text x="112" y="260">AttestationResultBundle</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![CDATA[
+-------------------+
| PKCS#10 Attribute |
|       or          |
| CRMF Extension    |
+-------------------+
      1  ^                        +-------------------+
         |                 1..n   | AttestationResult |
         |         +------------->+-------------------+
         |         |              | Type              |
         |         |              | Result            |
         |         |              |                   |
      1  |         |              +-------------------+
         v       1 v
+-------------------------+
| AttestationResultBundle |
+-------------------------+
]]></artwork>
          </artset>
        </figure>
      </section>
    </section>
    <section anchor="asn1-elements-for-evidence-in-csr">
      <name>ASN.1 Elements for Evidence in CSR</name>
      <section anchor="object-identifiers">
        <name>Object Identifiers</name>
        <t>This document references <tt>id-pkix</tt> and <tt>id-aa</tt>, both defined in <xref target="RFC5911"/> and <xref target="RFC5912"/>.</t>
      </section>
      <section anchor="sec-evidenceAttr">
        <name>Evidence Attribute and Extension</name>
        <t>By definition, attributes within a PKCS#10 CSR are
typed as ATTRIBUTE and within a CRMF CSR are typed as EXTENSION.
This attribute definition contains one
Evidence bundle of type <tt>EvidenceBundle</tt> containing
one or more Evidence statements of a type <tt>EvidenceStatement</tt> along with
optional certificates for certification path building.
This structure enables different Evidence statements to share a
certification path without duplicating it in the attribute.</t>
        <figure anchor="code-EvidenceStatementSet">
          <name>Definition of EvidenceStatementSet</name>
          <artwork><![CDATA[
EVIDENCE-STATEMENT ::= TYPE-IDENTIFIER

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

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

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

-- For CRMF
ext-ar EXTENSION ::= {
  SYNTAX AttestationResultBundle
  IDENTIFIED BY id-aa-ar
}
]]></artwork>
        </figure>
      </section>
      <section anchor="implementation-considerations">
        <name>Implementation Considerations</name>
        <t>This specification is applicable both in cases where a CSR
is constructed internally or externally to the Attesting Environment, from the
point of view of the calling application. This section is particularly
applicable to the background check model.</t>
        <t>Cases where the CSR is generated internally to the Attesting Environment
are straightforward: the Hardware Security Model (HSM) generates and embeds
the Evidence and the corresponding certification paths when constructing the CSR.</t>
        <t>Cases where the CSR is generated externally may require extra communication
between the CSR generator and the Attesting Environment, first to obtain
the necessary Evidence about the subject key, and then to use
the subject key to sign the CSR; for example, a CSR generated by
a popular crypto library about a subject key stored on a PKCS#11 <xref target="PKCS11"/> device.</t>
        <t>As an example, assuming that the HSM is, or contains, the Attesting Environment and
some cryptographic library is assembling a CSR by interacting with the HSM over some
network protocol, then the interaction would conceptually be:</t>
        <figure anchor="fig-csr-client-p11">
          <name>Example interaction between CSR generator and HSM.</name>
          <artset>
            <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="320" width="384" viewBox="0 0 384 320" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 8,176 L 8,208" fill="none" stroke="black"/>
                <path d="M 160,32 L 160,80" fill="none" stroke="black"/>
                <path d="M 184,176 L 184,208" fill="none" stroke="black"/>
                <path d="M 200,88 L 200,304" fill="none" stroke="black"/>
                <path d="M 240,32 L 240,80" fill="none" stroke="black"/>
                <path d="M 328,32 L 328,80" fill="none" stroke="black"/>
                <path d="M 352,88 L 352,304" fill="none" stroke="black"/>
                <path d="M 376,32 L 376,80" fill="none" stroke="black"/>
                <path d="M 160,32 L 240,32" fill="none" stroke="black"/>
                <path d="M 328,32 L 376,32" fill="none" stroke="black"/>
                <path d="M 160,80 L 240,80" fill="none" stroke="black"/>
                <path d="M 328,80 L 376,80" fill="none" stroke="black"/>
                <path d="M 208,128 L 344,128" fill="none" stroke="black"/>
                <path d="M 208,160 L 344,160" fill="none" stroke="black"/>
                <path d="M 8,176 L 184,176" fill="none" stroke="black"/>
                <path d="M 8,208 L 184,208" fill="none" stroke="black"/>
                <path d="M 208,256 L 344,256" fill="none" stroke="black"/>
                <path d="M 208,288 L 344,288" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="352,256 340,250.4 340,261.6" fill="black" transform="rotate(0,344,256)"/>
                <polygon class="arrowhead" points="352,128 340,122.4 340,133.6" fill="black" transform="rotate(0,344,128)"/>
                <polygon class="arrowhead" points="216,288 204,282.4 204,293.6" fill="black" transform="rotate(180,208,288)"/>
                <polygon class="arrowhead" points="216,160 204,154.4 204,165.6" fill="black" transform="rotate(180,208,160)"/>
                <g class="text">
                  <text x="196" y="52">Crypto</text>
                  <text x="352" y="52">HSM</text>
                  <text x="200" y="68">Library</text>
                  <text x="264" y="116">getEvidence()</text>
                  <text x="32" y="196">CSR</text>
                  <text x="56" y="196">=</text>
                  <text x="120" y="196">assembleCSR()</text>
                  <text x="192" y="196">-</text>
                  <text x="248" y="244">sign(CSR)</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![CDATA[
                   +---------+          +-----+
                   | Crypto  |          | HSM |
                   | Library |          |     |
                   +---------+          +-----+
                        |                  |
                        | getEvidence()    |
                        |----------------->|
                        |                  |
                        |<-----------------|
+---------------------+ |                  |
| CSR = assembleCSR() |-|                  |
+---------------------+ |                  |
                        |                  |
                        | sign(CSR)        |
                        |----------------->|
                        |                  |
                        |<-----------------|
                        |                  |
]]></artwork>
          </artset>
        </figure>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>IANA is requested to open two new registries, allocate a value
from the "SMI Security for PKIX Module Identifier" registry for the
included ASN.1 module, and allocate values from "SMI Security for
S/MIME Attributes" to identify two attributes defined within.</t>
      <section anchor="module-registration-smi-security-for-pkix-module-identifier">
        <name>Module Registration - SMI Security for PKIX Module Identifier</name>
        <t>IANA is asked to register the following within the registry id-mod
SMI Security for PKIX Module Identifier (1.3.6.1.5.5.7.0).</t>
        <ul spacing="normal">
          <li>
            <t>Decimal: IANA Assigned - <strong>Replace TBDMOD</strong></t>
          </li>
          <li>
            <t>Description: CSR-ATTESTATION-2023 - id-mod-pkix-attest-01</t>
          </li>
          <li>
            <t>References: This Document</t>
          </li>
        </ul>
      </section>
      <section anchor="object-identifier-registrations-smi-security-for-smime-attributes">
        <name>Object Identifier Registrations - SMI Security for S/MIME Attributes</name>
        <t>IANA is asked to register the following within the registry id-aa
SMI Security for S/MIME Attributes (1.2.840.113549.1.9.16.2).</t>
        <ul spacing="normal">
          <li>
            <t>Evidence Statement</t>
          </li>
          <li>
            <t>Decimal: IANA Assigned - This was early-allocated as <tt>59</tt> so that we could generate the sample data.</t>
          </li>
          <li>
            <t>Description: id-aa-evidence</t>
          </li>
          <li>
            <t>References: This Document</t>
          </li>
          <li>
            <t>Attestation Result</t>
          </li>
          <li>
            <t>Decimal: IANA Assigned - - <strong>Replace TBD2</strong></t>
          </li>
          <li>
            <t>Description: id-aa-ar</t>
          </li>
          <li>
            <t>References: This Document</t>
          </li>
        </ul>
      </section>
      <section anchor="attestation-evidence-oid-registry">
        <name>Attestation Evidence OID Registry</name>
        <t>IANA is asked to create a registry that helps developers to find
OID/Evidence mappings.</t>
        <t>Registration requests are evaluated using the criteria described in
the registration template below after a three-week review period on
the [[TBD]] mailing list, with the advice of one or more Designated
Experts <xref target="RFC8126"/>.  However, to allow for the allocation of values
prior to publication, the Designated Experts may approve registration
once they are satisfied that such a specification will be published.</t>
        <t>Registration requests sent to the mailing list for review should use
an appropriate subject (e.g., "Request to register attestation
evidence: example").</t>
        <t>IANA must only accept registry updates from the Designated Experts
and should direct all requests for registration to the review mailing
list.</t>
        <section anchor="registration-template">
          <name>Registration Template</name>
          <t>The registry has the following columns:</t>
          <ul spacing="normal">
            <li>
              <t>OID: The OID number, which has already been allocated. IANA does
not allocate OID numbers for use with this registry.</t>
            </li>
            <li>
              <t>Description: Brief description of the use of the Evidence and the
registration of the OID.</t>
            </li>
            <li>
              <t>Reference(s): Reference to the document or documents that register
the OID for use with a specific attestation technology, preferably
including URIs that can be used to retrieve copies of the documents.
An indication of the relevant sections may also be included but is not
required.</t>
            </li>
            <li>
              <t>Change Controller: For Standards Track RFCs, list the "IESG".  For
others, give the name of the responsible party. In most cases the
third party requesting registration in this registry will also be the
party that registered the OID.</t>
            </li>
          </ul>
        </section>
        <section anchor="initial-registry-contents">
          <name>Initial Registry Contents</name>
          <t>The initial registry contents is shown in the table below.
It lists entries for several evidence encoding OIDs including an entry for the Conceptual Message Wrapper (CMW) <xref target="I-D.ietf-rats-msg-wrap"/>.</t>
          <table anchor="tab-ae-reg">
            <name>Initial Contents of the Attestation Evidence OID Registry</name>
            <thead>
              <tr>
                <th align="left">OID</th>
                <th align="left">Description</th>
                <th align="left">Reference(s)</th>
                <th align="left">Change Controller</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">2 23 133 5 4 1</td>
                <td align="left">tcg-dice-TcbInfo</td>
                <td align="left">
                  <xref target="TCGRegistry"/></td>
                <td align="left">TCG</td>
              </tr>
              <tr>
                <td align="left">2 23 133 5 4 3</td>
                <td align="left">tcg-dice-endorsement-manifest-uri</td>
                <td align="left">
                  <xref target="TCGRegistry"/></td>
                <td align="left">TCG</td>
              </tr>
              <tr>
                <td align="left">2 23 133 5 4 4</td>
                <td align="left">tcg-dice-Ueid</td>
                <td align="left">
                  <xref target="TCGRegistry"/></td>
                <td align="left">TCG</td>
              </tr>
              <tr>
                <td align="left">2 23 133 5 4 5</td>
                <td align="left">tcg-dice-MultiTcbInfo</td>
                <td align="left">
                  <xref target="TCGRegistry"/></td>
                <td align="left">TCG</td>
              </tr>
              <tr>
                <td align="left">2 23 133 5 4 6</td>
                <td align="left">tcg-dice-UCCS-evidence</td>
                <td align="left">
                  <xref target="TCGRegistry"/></td>
                <td align="left">TCG</td>
              </tr>
              <tr>
                <td align="left">2 23 133 5 4 7</td>
                <td align="left">tcg-dice-manifest-evidence</td>
                <td align="left">
                  <xref target="TCGRegistry"/></td>
                <td align="left">TCG</td>
              </tr>
              <tr>
                <td align="left">2 23 133 5 4 8</td>
                <td align="left">tcg-dice-MultiTcbInfoComp</td>
                <td align="left">
                  <xref target="TCGRegistry"/></td>
                <td align="left">TCG</td>
              </tr>
              <tr>
                <td align="left">2 23 133 5 4 9</td>
                <td align="left">tcg-dice-conceptual-message-wrapper</td>
                <td align="left">
                  <xref target="TCGRegistry"/></td>
                <td align="left">TCG</td>
              </tr>
              <tr>
                <td align="left">2 23 133 5 4 11</td>
                <td align="left">tcg-dice-TcbFreshness</td>
                <td align="left">
                  <xref target="TCGRegistry"/></td>
                <td align="left">TCG</td>
              </tr>
              <tr>
                <td align="left">2 23 133 20 1</td>
                <td align="left">tcg-attest-tpm-certify</td>
                <td align="left">
                  <xref target="TCGRegistry"/></td>
                <td align="left">TCG</td>
              </tr>
              <tr>
                <td align="left">1 3 6 1 5 5 7 1 35</td>
                <td align="left">id-pe-cmw</td>
                <td align="left">
                  <xref target="I-D.ietf-rats-msg-wrap"/></td>
                <td align="left">IETF</td>
              </tr>
            </tbody>
          </table>
          <t>The current registry values can be retrieved from the IANA online website.</t>
        </section>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>In the RATS architecture, when Evidence or an Attestation Result is presented to a Relying Party (RP), the RP may learn detailed information about the Attester unless that information has been redacted or encrypted. Consequently, a certain amount of trust must be placed in the RP, which raises potential privacy concerns because an RP could be used to track devices. This observation is noted in Section 11 of <xref target="RFC9334"/>.</t>
      <t>Typically, the RPs considered in the RATS architecture are application services that use remote attestation, rather than RAs or CAs. Devices inherently place significant trust in RA/CA infrastructure elements, and therefore any additional information revealed through remote attestation to such entities is generally less concerning than disclosure to application services. The problem of copying Evidence by CAs into an X.509 certificate is discussed in <xref target="sec-con-publishing-x509"/>.</t>
      <t>These privacy risks can be mitigated using several approaches, including:</t>
      <ul spacing="normal">
        <li>
          <t>Shared Attestation Keys: A manufacturer of devices may provision all devices with the same attestation key(s), or share a common attestation key across devices of the same product family. This approach anonymizes individual devices by making them indistinguishable from others using the same key(s). However, it also means losing the ability to revoke a single attestation key if a specific device is compromised. Care must be taken to avoid embedding uniquely identifying information in the Evidence, as that would reduce the privacy benefits of using remote attestation.</t>
        </li>
        <li>
          <t>Per-Use Attestation Keys: Devices may be designed to dynamically generate distinct attestation keys (and request the corresponding certificates) for each use case, device, or session. This is analogous to the Privacy CA model, in which a device is initially provisioned with an attestation key and certificate; then, in conjunction with a privacy-preserving CA, it can obtain unique keys and certificates as needed. This strategy reduces the potential for tracking while maintaining strong security assurances. This is the model described in this document.</t>
        </li>
        <li>
          <t>Anonymous Attestation Mechanisms: Direct anonymous attestation (DAA) or similar cryptographic methods can be employed to generate blinded attestation signatures. In these schemes, the verifier can validate the attestation using a root key but does not gain a global correlation handle. Thus, repeated use of the same attestation key cannot be exploited to track devices. <xref target="I-D.ietf-rats-daa"/> extends the RATS architecture with such a DAA scheme, significantly enhancing privacy.</t>
        </li>
      </ul>
      <section anchor="background-check-model-security-considerations">
        <name>Background Check Model Security Considerations</name>
        <t>A PKCS#10 or CRMF Certification Request message typically consists of a
distinguished name, a public key, and optionally a set of attributes,
collectively signed by the entity requesting certification.
In general usage, the private key used to sign the CSR <bcp14>MUST</bcp14> be different from the
Attesting Key utilized to sign Evidence about the Target
Environment, though exceptions <bcp14>MAY</bcp14> be made where CSRs and Evidence are involved in
bootstrapping the Attesting Key.</t>
        <t>To demonstrate that the private
key applied to sign the CSR is generated, and stored in a secure
environment that has controls to prevent theft or misuse (including
being non-exportable / non-recoverable), the Attesting Environment
has to collect claims about this secure environment (or Target
Environment, as shown in <xref target="fig-attester"/>).</t>
        <t><xref target="fig-attester"/> shows the interaction inside an Attester. The
Attesting Environment, which is provisioned with an Attestation Key,
retrieves claims about the Target Environment. The Target
Environment offers key generation, storage and usage, which it
makes available to services. The Attesting Environment collects
these claims about the Target Environment and signs them and
exports Evidence for use in remote attestation via a CSR.</t>
        <figure anchor="fig-attester">
          <name>Interaction between Attesting and Target Environment</name>
          <artset>
            <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="576" width="328" viewBox="0 0 328 576" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 8,240 L 8,544" fill="none" stroke="black"/>
                <path d="M 40,80 L 40,144" fill="none" stroke="black"/>
                <path d="M 48,288 L 48,352" fill="none" stroke="black"/>
                <path d="M 96,152 L 96,280" fill="none" stroke="black"/>
                <path d="M 120,152 L 120,280" fill="none" stroke="black"/>
                <path d="M 120,448 L 120,512" fill="none" stroke="black"/>
                <path d="M 152,32 L 152,80" fill="none" stroke="black"/>
                <path d="M 168,352 L 168,440" fill="none" stroke="black"/>
                <path d="M 200,152 L 200,280" fill="none" stroke="black"/>
                <path d="M 232,448 L 232,512" fill="none" stroke="black"/>
                <path d="M 240,280 L 240,352" fill="none" stroke="black"/>
                <path d="M 264,80 L 264,144" fill="none" stroke="black"/>
                <path d="M 304,240 L 304,472" fill="none" stroke="black"/>
                <path d="M 304,488 L 304,544" fill="none" stroke="black"/>
                <path d="M 320,112 L 320,480" fill="none" stroke="black"/>
                <path d="M 40,80 L 264,80" fill="none" stroke="black"/>
                <path d="M 272,112 L 320,112" fill="none" stroke="black"/>
                <path d="M 40,144 L 264,144" fill="none" stroke="black"/>
                <path d="M 8,240 L 88,240" fill="none" stroke="black"/>
                <path d="M 128,240 L 192,240" fill="none" stroke="black"/>
                <path d="M 208,240 L 304,240" fill="none" stroke="black"/>
                <path d="M 48,288 L 240,288" fill="none" stroke="black"/>
                <path d="M 48,352 L 240,352" fill="none" stroke="black"/>
                <path d="M 120,448 L 232,448" fill="none" stroke="black"/>
                <path d="M 72,480 L 112,480" fill="none" stroke="black"/>
                <path d="M 232,480 L 320,480" fill="none" stroke="black"/>
                <path d="M 120,512 L 232,512" fill="none" stroke="black"/>
                <path d="M 8,544 L 304,544" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="280,112 268,106.4 268,117.6" fill="black" transform="rotate(180,272,112)"/>
                <polygon class="arrowhead" points="208,280 196,274.4 196,285.6" fill="black" transform="rotate(90,200,280)"/>
                <polygon class="arrowhead" points="208,152 196,146.4 196,157.6" fill="black" transform="rotate(270,200,152)"/>
                <polygon class="arrowhead" points="176,440 164,434.4 164,445.6" fill="black" transform="rotate(90,168,440)"/>
                <polygon class="arrowhead" points="160,32 148,26.4 148,37.6" fill="black" transform="rotate(270,152,32)"/>
                <polygon class="arrowhead" points="128,152 116,146.4 116,157.6" fill="black" transform="rotate(270,120,152)"/>
                <polygon class="arrowhead" points="120,480 108,474.4 108,485.6" fill="black" transform="rotate(0,112,480)"/>
                <polygon class="arrowhead" points="104,280 92,274.4 92,285.6" fill="black" transform="rotate(90,96,280)"/>
                <g class="text">
                  <text x="168" y="52">CSR</text>
                  <text x="204" y="52">with</text>
                  <text x="188" y="68">Evidence</text>
                  <text x="112" y="116">CSR</text>
                  <text x="160" y="116">Library</text>
                  <text x="32" y="180">Private</text>
                  <text x="156" y="180">Public</text>
                  <text x="248" y="180">Signature</text>
                  <text x="16" y="196">Key</text>
                  <text x="144" y="196">Key</text>
                  <text x="248" y="196">Operation</text>
                  <text x="44" y="212">Generation</text>
                  <text x="156" y="212">Export</text>
                  <text x="108" y="244">--</text>
                  <text x="268" y="260">Attester</text>
                  <text x="256" y="276">(HSM)</text>
                  <text x="84" y="308">Target</text>
                  <text x="160" y="308">Environment</text>
                  <text x="80" y="324">(with</text>
                  <text x="120" y="324">key</text>
                  <text x="184" y="324">generation,</text>
                  <text x="88" y="340">storage</text>
                  <text x="136" y="340">and</text>
                  <text x="180" y="340">usage)</text>
                  <text x="128" y="388">Collect</text>
                  <text x="132" y="404">Claims</text>
                  <text x="56" y="468">Attestation</text>
                  <text x="168" y="468">Attesting</text>
                  <text x="48" y="484">Key</text>
                  <text x="176" y="484">Environment</text>
                  <text x="172" y="500">(Firmware)</text>
                  <text x="268" y="500">Evidence</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![CDATA[
                   ^
                   |CSR with
                   |Evidence
     .-------------+-------------.
     |                           |
     |       CSR Library         |<-----+
     |                           |      |
     '---------------------------'      |
            |  ^         ^              |
 Private    |  | Public  | Signature    |
 Key        |  | Key     | Operation    |
 Generation |  | Export  |              |
            |  |         |              |
 .----------|--|---------|------------. |
 |          |  |         |    Attester| |
 |          v  |         v    (HSM)   | |
 |    .-----------------------.       | |
 |    | Target Environment    |       | |
 |    | (with key generation, |       | |
 |    | storage and usage)    |       | |
 |    '--------------+--------'       | |
 |                   |                | |
 |           Collect |                | |
 |            Claims |                | |
 |                   |                | |
 |                   v                | |
 |             .-------------.        | |
 |Attestation  | Attesting   |        | |
 |   Key ----->| Environment +----------+
 |             | (Firmware)  |Evidence|
 |             '-------------'        |
 |                                    |
 '------------------------------------'
]]></artwork>
          </artset>
        </figure>
        <t><xref target="fig-attester"/> places the CSR library outside the Attester, which
is a valid architecture for certificate enrollment.
The CSR library may also be located
inside the trusted computing base. Regardless of the placement
of the CSR library, an Attesting Environment <bcp14>MUST</bcp14> be able to collect
claims about the Target Environment such that statements about
the storage of the keying material can be made.
For the Verifier, the provided Evidence must allow
an assessment to be made whether the key used to sign the CSR
is stored in a secure location and cannot be exported.</t>
        <t>Evidence communicated in the attributes and structures defined
in this document are meant to be used in a CSR. It is up to
the Verifier and to the Relying Party (RA/CA) to place as much or
as little trust in this information as dictated by policies.</t>
        <t>This document defines the transport of Evidence of different formats
in a CSR. Some of these encoding formats are based on standards
while others are proprietary formats. A Verifier will need to understand
these formats for matching the received claim values against policies.</t>
        <t>Policies drive the processing of Evidence at the Verifier: the Verifier's
Appraisal Policy for Evidence will often be based on specifications by the manufacturer
of a hardware security module, a regulatory agency, or specified by an
oversight body, such as the CA Browser Forum. The Code-Signing Baseline
Requirements <xref target="CSBR"/> document
is an example of such a policy that has
been published by the CA Browser Forum and specifies certain properties,
such as non-exportability, which must be enabled for storing
publicly-trusted code-signing keys. Other
policies influence the decision making at the Relying Party when
evaluating the Attestation Result. The Relying Party is ultimately
responsible for making a decision of what information in the Attestation
Result it will accept. The presence of the attributes defined in this
specification provide the Relying Party with additional assurance about
an Attester. Policies used at the Verifier and the Relying Party are
implementation dependent and out of scope for this document. Whether to
require the use of Evidence in a CSR is out-of-scope for this document.</t>
      </section>
      <section anchor="freshness-for-the-background-check-model">
        <name>Freshness for the Background Check Model</name>
        <t>Evidence generated by an Attester generally needs to be fresh to provide
value to the Verifier since the configuration on the device may change
over time. <xref section="10" sectionFormat="of" target="RFC9334"/> discusses different approaches for
providing freshness, including a nonce-based approach, the use of timestamps
and an epoch-based technique. The use of nonces requires that nonce to be provided by
the Relying Party in some protocol step prior to Evidence and CSR generation,
and the use of timestamps requires synchronized clocks which cannot be
guaranteed in all operating environments. Epochs also require an out-of-band
communication channel.
This document leaves the exchange of nonces and other freshness data to
certificate management protocols, see <xref target="I-D.ietf-lamps-attestation-freshness"/>.
Developers, operators, and designers of protocols, which embed
Evidence-carrying-CSRs, <bcp14>MUST</bcp14> consider what notion of freshness is
appropriate and available in-context; thus the issue of freshness is
left up to the discretion of protocol designers and implementers.</t>
        <t>In the case of Hardware Security Modules (HSM), the definition of "fresh" is somewhat ambiguous in the context
of CSRs, especially considering that non-automated certificate enrollments
are often asynchronous, and considering the common practice of re-using the
same CSR for multiple certificate renewals across the lifetime of a key.
"Freshness" typically implies both asserting that the data was generated
at a certain point-in-time, as well as providing non-replayability.
Certain use cases may have special properties impacting the freshness
requirements. For example, HSMs are typically designed to not allow downgrade
of private key storage properties; for example if a given key was asserted at
time T to have been generated inside the hardware boundary and to be
non-exportable, then it can be assumed that those properties of that key
will continue to hold into the future.</t>
        <t>Note: Freshness is also a concern for remote attestation in the passport model; however, the protocol between the Attester and the Verifier lies outside the scope of this specification.</t>
      </section>
      <section anchor="sec-con-publishing-x509">
        <name>Publishing Evidence in an X.509 Extension</name>
        <t>This document specifies an Extension for carrying Evidence in a CRMF Certificate Signing Request (CSR), but it is intentionally <bcp14>NOT RECOMMENDED</bcp14> for a CA to copy the ext-evidence extension into the published certificate.
The reason for this is that certificates are considered public information and the Evidence might contain detailed information about hardware and patch levels of the device on which the private key resides.
The certificate requester has consented to sharing this detailed device information with the CA but might not consent to having these details published.
These privacy considerations are beyond the scope of this document and may require additional signaling mechanisms in the CSR to prevent unintended publication of sensitive information, so we leave it as "<bcp14>NOT RECOMMENDED</bcp14>". Often, the correct layer at which to address this is either in certificate profiles, a Certificate Practice Statement (CPS), or in the protocol or application that carries the CSR to the RA/CA where a flag can be added indicating whether the RA/CA should consider the evidence to be public or private.</t>
      </section>
      <section anchor="type-oid-and-verifier-hint">
        <name>Type OID and Verifier Hint</name>
        <t>The <tt>EvidenceStatement</tt> includes both a <tt>type</tt> OID and a <tt>hint</tt> field with which the Attester can provide information to the Relying Party about which Verifier to invoke to parse a given piece of Evidence.
Care should be taken when processing these data since at the time they are used, they are not yet verified. In fact, they are protected by the CSR signature but not by the signature from the Attester and so could be maliciously replaced in some cases.
The authors' intent is that the <tt>type</tt> OID and <tt>hint</tt> will allow an RP to select between Verifier with which it has pre-established trust relationships. The RP <bcp14>MUST NOT</bcp14> blindly make network calls to unknown domain names and trust the results.
Implementers should also be cautious around <tt>type</tt> OID or <tt>hint</tt> values that cause a short-circuit in the verification logic, such as <tt>None</tt>, <tt>Null</tt>, or similar values that could cause the Evidence to appear to be valid when in fact it was not properly checked.</t>
      </section>
      <section anchor="additional-security-considerations">
        <name>Additional Security Considerations</name>
        <t>In addition to the security considerations listed here, implementers should be familiar with the security considerations of the specifications on this this depends: PKCS#10 <xref target="RFC2986"/>, CRMF <xref target="RFC4211"/>, as well as general security concepts relating to remote attestation; many of these concepts are discussed in <xref section="6" sectionFormat="of" target="RFC9334"/>, <xref section="7" sectionFormat="of" target="RFC9334"/>, <xref section="9" sectionFormat="of" target="RFC9334"/>, <xref section="11" sectionFormat="of" target="RFC9334"/>, and <xref section="12" sectionFormat="of" target="RFC9334"/>. Implementers should also be aware of any security considerations relating to the specific Evidence and Attestation Result formats being carried within the CSR.</t>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC9334">
          <front>
            <title>Remote ATtestation procedureS (RATS) Architecture</title>
            <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
            <author fullname="D. Thaler" initials="D." surname="Thaler"/>
            <author fullname="M. Richardson" initials="M." surname="Richardson"/>
            <author fullname="N. Smith" initials="N." surname="Smith"/>
            <author fullname="W. Pan" initials="W." surname="Pan"/>
            <date month="January" year="2023"/>
            <abstract>
              <t>In network protocol exchanges, it is often useful for one end of a communication to know whether the other end is in an intended operating state. This document provides an architectural overview of the entities involved that make such tests possible through the process of generating, conveying, and evaluating evidentiary Claims. It provides a model that is neutral toward processor architectures, the content of Claims, and protocols.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9334"/>
          <seriesInfo name="DOI" value="10.17487/RFC9334"/>
        </reference>
        <reference anchor="RFC6268">
          <front>
            <title>Additional New ASN.1 Modules for the Cryptographic Message Syntax (CMS) and the Public Key Infrastructure Using X.509 (PKIX)</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <author fullname="S. Turner" initials="S." surname="Turner"/>
            <date month="July" year="2011"/>
            <abstract>
              <t>The Cryptographic Message Syntax (CMS) format, and many associated formats, are expressed using ASN.1. The current ASN.1 modules conform to the 1988 version of ASN.1. This document updates some auxiliary ASN.1 modules to conform to the 2008 version of ASN.1; the 1988 ASN.1 modules remain the normative version. There are no bits- on-the-wire changes to any of the formats; this is simply a change to the syntax. This document is not an Internet Standards Track specification; it is published for informational purposes.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6268"/>
          <seriesInfo name="DOI" value="10.17487/RFC6268"/>
        </reference>
        <reference anchor="RFC5912">
          <front>
            <title>New ASN.1 Modules for the Public Key Infrastructure Using X.509 (PKIX)</title>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="June" year="2010"/>
            <abstract>
              <t>The Public Key Infrastructure using X.509 (PKIX) certificate format, and many associated formats, are expressed using ASN.1. The current ASN.1 modules conform to the 1988 version of ASN.1. This document updates those ASN.1 modules to conform to the 2002 version of ASN.1. There are no bits-on-the-wire changes to any of the formats; this is simply a change to the syntax. This document is not an Internet Standards Track specification; it is published for informational purposes.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5912"/>
          <seriesInfo name="DOI" value="10.17487/RFC5912"/>
        </reference>
        <reference anchor="RFC4211">
          <front>
            <title>Internet X.509 Public Key Infrastructure Certificate Request Message Format (CRMF)</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="September" year="2005"/>
            <abstract>
              <t>This document describes the Certificate Request Message Format (CRMF) syntax and semantics. This syntax is used to convey a request for a certificate to a Certification Authority (CA), possibly via a Registration Authority (RA), for the purposes of X.509 certificate production. The request will typically include a public key and the associated registration information. This document does not define a certificate request protocol. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4211"/>
          <seriesInfo name="DOI" value="10.17487/RFC4211"/>
        </reference>
        <reference anchor="RFC2986">
          <front>
            <title>PKCS #10: Certification Request Syntax Specification Version 1.7</title>
            <author fullname="M. Nystrom" initials="M." surname="Nystrom"/>
            <author fullname="B. Kaliski" initials="B." surname="Kaliski"/>
            <date month="November" year="2000"/>
            <abstract>
              <t>This memo represents a republication of PKCS #10 v1.7 from RSA Laboratories' Public-Key Cryptography Standards (PKCS) series, and change control is retained within the PKCS process. The body of this document, except for the security considerations section, is taken directly from the PKCS #9 v2.0 or the PKCS #10 v1.7 document. This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2986"/>
          <seriesInfo name="DOI" value="10.17487/RFC2986"/>
        </reference>
        <reference anchor="RFC5280">
          <front>
            <title>Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile</title>
            <author fullname="D. Cooper" initials="D." surname="Cooper"/>
            <author fullname="S. Santesson" initials="S." surname="Santesson"/>
            <author fullname="S. Farrell" initials="S." surname="Farrell"/>
            <author fullname="S. Boeyen" initials="S." surname="Boeyen"/>
            <author fullname="R. Housley" initials="R." surname="Housley"/>
            <author fullname="W. Polk" initials="W." surname="Polk"/>
            <date month="May" year="2008"/>
            <abstract>
              <t>This memo profiles the X.509 v3 certificate and X.509 v2 certificate revocation list (CRL) for use in the Internet. An overview of this approach and model is provided as an introduction. The X.509 v3 certificate format is described in detail, with additional information regarding the format and semantics of Internet name forms. Standard certificate extensions are described and two Internet-specific extensions are defined. A set of required certificate extensions is specified. The X.509 v2 CRL format is described in detail along with standard and Internet-specific extensions. An algorithm for X.509 certification path validation is described. An ASN.1 module and examples are provided in the appendices. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5280"/>
          <seriesInfo name="DOI" value="10.17487/RFC5280"/>
        </reference>
        <reference anchor="RFC3986">
          <front>
            <title>Uniform Resource Identifier (URI): Generic Syntax</title>
            <author fullname="T. Berners-Lee" initials="T." surname="Berners-Lee"/>
            <author fullname="R. Fielding" initials="R." surname="Fielding"/>
            <author fullname="L. Masinter" initials="L." surname="Masinter"/>
            <date month="January" year="2005"/>
            <abstract>
              <t>A Uniform Resource Identifier (URI) is a compact sequence of characters that identifies an abstract or physical resource. This specification defines the generic URI syntax and a process for resolving URI references that might be in relative form, along with guidelines and security considerations for the use of URIs on the Internet. The URI syntax defines a grammar that is a superset of all valid URIs, allowing an implementation to parse the common components of a URI reference without knowing the scheme-specific requirements of every possible identifier. This specification does not define a generative grammar for URIs; that task is performed by the individual specifications of each URI scheme. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="66"/>
          <seriesInfo name="RFC" value="3986"/>
          <seriesInfo name="DOI" value="10.17487/RFC3986"/>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="RFC5911">
          <front>
            <title>New ASN.1 Modules for Cryptographic Message Syntax (CMS) and S/MIME</title>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="June" year="2010"/>
            <abstract>
              <t>The Cryptographic Message Syntax (CMS) format, and many associated formats, are expressed using ASN.1. The current ASN.1 modules conform to the 1988 version of ASN.1. This document updates those ASN.1 modules to conform to the 2002 version of ASN.1. There are no bits-on-the-wire changes to any of the formats; this is simply a change to the syntax. This document is not an Internet Standards Track specification; it is published for informational purposes.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5911"/>
          <seriesInfo name="DOI" value="10.17487/RFC5911"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC8126">
          <front>
            <title>Guidelines for Writing an IANA Considerations Section in RFCs</title>
            <author fullname="M. Cotton" initials="M." surname="Cotton"/>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <author fullname="T. Narten" initials="T." surname="Narten"/>
            <date month="June" year="2017"/>
            <abstract>
              <t>Many protocols make use of points of extensibility that use constants to identify various protocol parameters. To ensure that the values in these fields do not have conflicting uses and to promote interoperability, their allocations are often coordinated by a central record keeper. For IETF protocols, that role is filled by the Internet Assigned Numbers Authority (IANA).</t>
              <t>To make assignments in a given registry prudently, guidance describing the conditions under which new values should be assigned, as well as when and how modifications to existing values can be made, is needed. This document defines a framework for the documentation of these guidelines by specification authors, in order to assure that the provided guidance for the IANA Considerations is clear and addresses the various issues that are likely in the operation of a registry.</t>
              <t>This is the third edition of this document; it obsoletes RFC 5226.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="26"/>
          <seriesInfo name="RFC" value="8126"/>
          <seriesInfo name="DOI" value="10.17487/RFC8126"/>
        </reference>
        <reference anchor="I-D.ietf-rats-msg-wrap">
          <front>
            <title>RATS Conceptual Messages Wrapper (CMW)</title>
            <author fullname="Henk Birkholz" initials="H." surname="Birkholz">
              <organization>Fraunhofer SIT</organization>
            </author>
            <author fullname="Ned Smith" initials="N." surname="Smith">
              <organization>Intel</organization>
            </author>
            <author fullname="Thomas Fossati" initials="T." surname="Fossati">
              <organization>Linaro</organization>
            </author>
            <author fullname="Hannes Tschofenig" initials="H." surname="Tschofenig">
              <organization>University of Applied Sciences Bonn-Rhein-Sieg</organization>
            </author>
            <author fullname="Dionna Glaze" initials="D." surname="Glaze">
              <organization>Google LLC</organization>
            </author>
            <date day="28" month="February" year="2025"/>
            <abstract>
              <t>   This document defines a conceptual message wrapper (CMW) format - an
   encapsulation method applicable to any RATS conceptual message, such
   as Evidence, Attestation Results, Endorsements, and Reference Values.
   It also describes a collection type that aggregates one or more CMWs
   into a single message.

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

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

Discussion Venues

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

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

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

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-bft-rats-kat-05"/>
        </reference>
        <reference anchor="RFC7030">
          <front>
            <title>Enrollment over Secure Transport</title>
            <author fullname="M. Pritikin" initials="M." role="editor" surname="Pritikin"/>
            <author fullname="P. Yee" initials="P." role="editor" surname="Yee"/>
            <author fullname="D. Harkins" initials="D." role="editor" surname="Harkins"/>
            <date month="October" year="2013"/>
            <abstract>
              <t>This document profiles certificate enrollment for clients using Certificate Management over CMS (CMC) messages over a secure transport. This profile, called Enrollment over Secure Transport (EST), describes a simple, yet functional, certificate management protocol targeting Public Key Infrastructure (PKI) clients that need to acquire client certificates and associated Certification Authority (CA) certificates. It also supports client-generated public/private key pairs as well as key pairs generated by the CA.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7030"/>
          <seriesInfo name="DOI" value="10.17487/RFC7030"/>
        </reference>
        <reference anchor="I-D.ietf-rats-daa">
          <front>
            <title>Direct Anonymous Attestation for the Remote Attestation Procedures Architecture</title>
            <author fullname="Henk Birkholz" initials="H." surname="Birkholz">
              <organization>Fraunhofer SIT</organization>
            </author>
            <author fullname="Christopher Newton" initials="C." surname="Newton">
              <organization>University of Surrey</organization>
            </author>
            <author fullname="Liqun Chen" initials="L." surname="Chen">
              <organization>University of Surrey</organization>
            </author>
            <author fullname="Dave Thaler" initials="D." surname="Thaler">
              <organization>Microsoft</organization>
            </author>
            <date day="3" month="March" 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-07"/>
        </reference>
        <reference anchor="I-D.ietf-lamps-attestation-freshness">
          <front>
            <title>Nonce-based Freshness for Remote Attestation in Certificate Signing Requests (CSRs) for the Certification Management Protocol (CMP) and for Enrollment over Secure Transport (EST)</title>
            <author fullname="Hannes Tschofenig" initials="H." surname="Tschofenig">
              <organization>Siemens</organization>
            </author>
            <author fullname="Hendrik Brockhaus" initials="H." surname="Brockhaus">
              <organization>Siemens</organization>
            </author>
            <date day="5" month="November" year="2024"/>
            <abstract>
              <t>   When an end entity includes attestation Evidence in a Certificate
   Signing Request (CSR), it may be necessary to demonstrate the
   freshness of the provided Evidence.  Current attestation technology
   commonly achieves this using nonces.

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

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-lamps-attestation-freshness-03"/>
        </reference>
        <reference anchor="I-D.tschofenig-rats-psa-token">
          <front>
            <title>Arm's Platform Security Architecture (PSA) Attestation Token</title>
            <author fullname="Hannes Tschofenig" initials="H." surname="Tschofenig">
         </author>
            <author fullname="Simon Frost" initials="S." surname="Frost">
              <organization>Arm Limited</organization>
            </author>
            <author fullname="Mathias Brossard" initials="M." surname="Brossard">
              <organization>Arm Limited</organization>
            </author>
            <author fullname="Adrian L. Shaw" initials="A. L." surname="Shaw">
              <organization>HP Labs</organization>
            </author>
            <author fullname="Thomas Fossati" initials="T." surname="Fossati">
              <organization>Linaro</organization>
            </author>
            <date day="23" month="September" year="2024"/>
            <abstract>
              <t>   The Arm Platform Security Architecture (PSA) is a family of hardware
   and firmware security specifications, as well as open-source
   reference implementations, to help device makers and chip
   manufacturers build best-practice security into products.  Devices
   that are PSA compliant can produce attestation tokens as described in
   this memo, which are the basis for many different protocols,
   including secure provisioning and network access control.  This
   document specifies the PSA attestation token structure and semantics.

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

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

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

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-rats-tpm-based-network-device-attest-14"/>
        </reference>
        <reference anchor="I-D.ietf-rats-ar4si">
          <front>
            <title>Attestation Results for Secure Interactions</title>
            <author fullname="Eric Voit" initials="E." surname="Voit">
              <organization>Cisco Systems</organization>
            </author>
            <author fullname="Henk Birkholz" initials="H." surname="Birkholz">
              <organization>Fraunhofer SIT</organization>
            </author>
            <author fullname="Thomas Hardjono" initials="T." surname="Hardjono">
              <organization>MIT</organization>
            </author>
            <author fullname="Thomas Fossati" initials="T." surname="Fossati">
              <organization>Linaro</organization>
            </author>
            <author fullname="Vincent Scarlata" initials="V." surname="Scarlata">
              <organization>Intel</organization>
            </author>
            <date day="6" month="February" year="2025"/>
            <abstract>
              <t>   This document defines reusable Attestation Result information
   elements.  When these elements are offered to Relying Parties as
   Evidence, different aspects of Attester trustworthiness can be
   evaluated.  Additionally, where the Relying Party is interfacing with
   a heterogeneous mix of Attesting Environment and Verifier types,
   consistent policies can be applied to subsequent information exchange
   between each Attester and the Relying Party.

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

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

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

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

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

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

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

     typedef struct {
          TPMI_ALG_HASH hash;
          TPM2B_PUBLIC_KEY_RSA sig;
     } TPMS_SIGNATURE_RSA;
]]></artwork>
          </section>
          <section anchor="attestation-key">
            <name>Attestation Key</name>
            <t>The uniquely identifying TPM2 key is the Endorsement Key (the EK). As this is a privacy
sensitive key, the EK is not directly used to attest to any TPM2 asset. Instead,
the EK is used by an Attestation CA to create an Attestation Key (the AK). The AK is
assumed trusted by the Verifier and is assume to be loaded in the TPM during the execution
of the process described in the subsequent sections. The description of how to create the AK is outside
the scope of this document.</t>
          </section>
          <section anchor="attester-processing">
            <name>Attester Processing</name>
            <t>The only signed component is the TPM2B_ATTEST structure, which returns
only the (key's) Name and the signature computed over the Name but no detailed information
about the key. As the Name is comprised of public information, the Name can
be calculated by the Verifier but only if the Verify knows all the public
information about the Key.</t>
            <t>The Attester's processing steps are as follows:</t>
            <t>Using the TPM2 command TPM2_Certify obtain the TPM2B_ATTEST and TPMT_SIGNATURE structures
from the TPM2. The signing key for TPMT_SIGNATURE is an Attention Key (or AK), which is
assumed to be available to the TPM2 upfront. More details are provided in <xref target="attestation-key"/></t>
            <t>The TPM2 command TPM2_Certify takes the following input:</t>
            <ul spacing="normal">
              <li>
                <t>TPM2 handle for Key (the key to be attested to)</t>
              </li>
              <li>
                <t>TPM2 handle for the AK (see <xref target="attestation-key"/>)</t>
              </li>
            </ul>
            <t>It produces the following output:</t>
            <ul spacing="normal">
              <li>
                <t>TPM2B_ATTEST in binary format</t>
              </li>
              <li>
                <t>TPMT_SIGNATURE in binary format</t>
              </li>
            </ul>
            <t>Then, using the TPM2 command TPM2_ReadPublic obtain the Keys TPM2B_PUBLIC structure.
While the Key's public information can be obtained by the Verifier in a number
ways, such as storing it from when the Key was created, this may be impractical
in many situations. As TPM2 provided a command to obtain this information, this
specification will include it in the TPM2 Attestation CSR extension.</t>
            <t>The TPM2 command TPM2_ReadPublic takes the following input:</t>
            <ul spacing="normal">
              <li>
                <t>TPM2 handle for Key (the key to be attested to)</t>
              </li>
            </ul>
            <t>It produces the following output:</t>
            <ul spacing="normal">
              <li>
                <t>TPM2B_PUBLIC in binary format</t>
              </li>
            </ul>
          </section>
          <section anchor="verifier-processing">
            <name>Verifier Processing</name>
            <t>The Verifier has to perform the following steps once it receives the Evidence:</t>
            <ul spacing="normal">
              <li>
                <t>Verify the TPM2B_ATTEST using the TPMT_SIGNATURE.</t>
              </li>
              <li>
                <t>Use the Key's "expected" Name from the provided TPM2B_PUBLIC structure.
If Key's "expected" Name equals TPM2B_ATTEST-&gt;attestationData then returned TPM2B_PUBLIC is the verified.</t>
              </li>
            </ul>
          </section>
        </section>
        <section anchor="appdx-tpm-example">
          <name>Sample CSR</name>
          <t>This CSR demonstrates a certification request for a key stored in a TPM using the following structure:</t>
          <artwork><![CDATA[
CSR {
  attributes {
    id-aa-evidence {
      EvidenceBundle {
        Evidences {
          EvidenceStatement {
            type: tcg-attest-tpm-certify,
            stmt: <TcgAttestTpmCertify_data>
            hint: "tpmverifier.example.com"
          }
        },
        certs {
          akCertificate,
          caCertificate
        }
      }
    }
  }
}
]]></artwork>
          <t>Note that this example demonstrates most of the features of this specification:</t>
          <ul spacing="normal">
            <li>
              <t>The data type is identified by the OID id-TcgCsrCertify contained in the <tt>EvidenceStatement.type</tt> field.</t>
            </li>
            <li>
              <t>The signed evidence is carried in the <tt>EvidenceStatement.stmt</tt> field.</t>
            </li>
            <li>
              <t>The <tt>EvidenceStatement.hint</tt> provides information to the Relying Party about which Verifier (software) will be able to correctly parse this data. Note that the <tt>type</tt> OID indicates the format of the data, but that may itself be a wrapper format that contains further data in a proprietary format. In this example, the hint says that software from the package <tt>"tpmverifier.example.com"</tt> will be able to parse this data.</t>
            </li>
            <li>
              <t>The evidence statement is accompanied by a certificate chain in the <tt>EvidenceBundle.certs</tt> field which can be used to verify the signature on the evidence statement. How the Verifier establishes trust in the provided certificates is outside the scope of this specification.</t>
            </li>
          </ul>
          <t>This example does not demonstrate an EvidenceBundle that contains multiple EvidenceStatements sharing a certificate chain.</t>
          <artwork><![CDATA[
-----BEGIN CERTIFICATE REQUEST-----
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
k6F7pHkwdzELMAkGA1UEBhMCWloxETAPBgNVBAgMCFByb3ZpbmNlMREwDwYDVQQH
DAhMb2NhbGl0eTETMBEGA1UECgwKaWV0Zi1sYW1wczEXMBUGA1UECwwOaWV0Zi1s
YW1wcy1jc3IxFDASBgNVBAMMC3Rlc3Qtcm9vdENBghR5pP+xxKsc67pLOqPiIZSU
4fgpzDAMBgNVHRMBAf8EAjAAMAsGA1UdDwQEAwIHgDAQBgNVHSUECTAHBgVngQUI
AzAdBgNVHQ4EFgQUH4QfxvcmPg9x21uQW5cfGyfxbMcwDQYJKoZIhvcNAQELBQAD
ggEBAC3Zz6B+u1H+72CG0j/s6lRPX/YP/DPjh5IIt9HdOJaWc5lsbCvgHSED7N/+
voCfCRf7IU2Oh5+2q9+9N5ARinXPmrsPZNyLR8vWkb27/hl9OTi0Ly7DtJMtUJTR
zq53dZc7kdTDNYpPnbIbanSOW3lSL5E173C8wyTsp/vQKteYTfmsDKw9hXHIU2eS
eUpZmKcHShXlbDEEbTuYLJMDASKmMCmPjIgJrSX/18wEoAgo2BVjjzwfhoc2SLnQ
dikvN6oa6Ee0zYRiImXpM7cuErC88jOr0quURA1U8fsQd8hYGRUk/6oPMXzIfZKs
z/yzAUQ570+mkdd2iFVlqTCQ9eUwggN1MIICXQIUeaT/scSrHOu6Szqj4iGUlOH4
KcwwDQYJKoZIhvcNAQELBQAwdzELMAkGA1UEBhMCWloxETAPBgNVBAgMCFByb3Zp
bmNlMREwDwYDVQQHDAhMb2NhbGl0eTETMBEGA1UECgwKaWV0Zi1sYW1wczEXMBUG
A1UECwwOaWV0Zi1sYW1wcy1jc3IxFDASBgNVBAMMC3Rlc3Qtcm9vdENBMB4XDTI0
MTAyMTIwMTcwOFoXDTI0MTEyMDIwMTcwOFowdzELMAkGA1UEBhMCWloxETAPBgNV
BAgMCFByb3ZpbmNlMREwDwYDVQQHDAhMb2NhbGl0eTETMBEGA1UECgwKaWV0Zi1s
YW1wczEXMBUGA1UECwwOaWV0Zi1sYW1wcy1jc3IxFDASBgNVBAMMC3Rlc3Qtcm9v
dENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxPODF6ujxbdDWuXn
zlqzYIO4rpQKolKfKbOFUCB6SjdA5XzArLTSYKD3ZXhqm7unFkmHC2HtqArq5jgv
cQ2fzJeNGbcuyJYSwa9WJjJ5qY6gXEY+G7sFgZ5ZeEWGQ+zjrnuJh/PtlhJ2/R7w
tdC82DAULaxnFjOS6Xm6pUB8RaZEtZ6HwfPUXYgeK9IRG2CbEs8jkoBQTrSKpdpC
0myJrrS0PoTFClDpq61je7uQgU6b9IAOfXi1oX5NdYcfqxcPch4wqbkldKsjC/i7
xMcem8hnb3WUvAmbsLP1I0Fx8nb0ug/T2ED5U9tPBXbKgeD72aU2L9GNs+ypE9Az
bTB6cwIDAQABMA0GCSqGSIb3DQEBCwUAA4IBAQBFBMAGsP1xKq4R4bzbWnQ4K2H+
rYNi8UEQzxN6BiANi9+8hbLHfx6gFZlz+QxwVyH6oQnNrsVVDVjEYH4/yvy7NdOx
VitFfqOYwyaNeK5oXx1l5otOaObtwzB7RVQNSlipzEVW4RPsJmx/8F7yNLtdgooP
U0QzUSqDcoKK36E4O3s85xfyNlEdJ2vJcJ/ZZx5QQlnhNTf5bWlr3U9x6DebeAqs
+wvvepdaNzulHBXaKIqAgSx9N+Y22vj+vw8GO4L8HndDPMhdE/Ct1h1yygm65j6h
aCmQRUTKzj49q6W4NHG7iPea+7bgMq7G4LRo9DSFEfMWOkQeVUSPPiTsaAahMAsG
CSqGSIb3DQEBCwOCAQEA1aPYnm8suCRwMTC7kOdOjvVP2+2pHxsI5vnLfffFgsaN
yoOz97t6bAmQXPQCEcjCQZqAynuJQITBbf5OowrNCOL8YRLaFu2zUS8H+XJUIU0I
YSs3H8UyfeYo5VDKJClU/OcSzGgGm6J9JDQiHUuEFrqbpE19aSztpXrEH9YYP87A
NyW9vxpLse2rpE4akcp+V+C958KJEoYQc9EfjvM3LqLmzp7pvyUalv21BbOweK8V
IYVK7djq+LCmYwJwdKrOYWmrDyH8P+me8nPtk9BdcvW+sj2qu/opZmYEL4KAqAvi
BW5TzPFUgQhmMalis/J4WY3Q0tvOMXRQQZCmO2N4Pg==
-----END CERTIFICATE REQUEST-----
]]></artwork>
        </section>
      </section>
      <section anchor="psa-attestation-token-in-csr">
        <name>PSA Attestation Token in CSR</name>
        <t>The Platform Security Architecture (PSA) Attestation Token is
defined in <xref target="I-D.tschofenig-rats-psa-token"/> and specifies
claims to be included in an Entity Attestation
Token (EAT). <xref target="I-D.bft-rats-kat"/> defines key attestation
based on the EAT format. In this section the platform
attestation offered by <xref target="I-D.tschofenig-rats-psa-token"/>
is combined with key attestation by binding the
key attestation token (KAT) to the platform attestation token (PAT)
with the help of the nonce. For details see <xref target="I-D.bft-rats-kat"/>.
The resulting KAT-PAT bundle is, according to
<xref section="5.1" sectionFormat="of" target="I-D.bft-rats-kat"/>, combined in a CMW collection
<xref target="I-D.ietf-rats-msg-wrap"/>.</t>
        <t>The encoding of this KAT-PAT bundle is shown in the example below.</t>
        <artwork><![CDATA[
EvidenceBundle
   +
   |
   + Evidences
   |
   +---->  EvidenceStatement
        +
        |
        +-> type: OID for CMW Collection
        |         1 3 6 1 5 5 7 1 TBD
        |
        +-> stmt: KAT/PAT CMW Collection
]]></artwork>
        <t>The value in EvidenceStatement-&gt;stmt is based on the
KAT/PAT example from <xref section="6" sectionFormat="of" target="I-D.bft-rats-kat"/> and
the result of CBOR encoding the CMW collection shown below
(with line-breaks added for readability purposes):</t>
        <artwork><![CDATA[
{
  "kat":
    h'd28443A10126A058C0A30A5820B91B03129222973C214E42BF31D68
      72A3EF2DBDDA401FBD1F725D48D6BF9C8171909C4A40102200121
      5820F0FFFA7BA35E76E44CA1F5446D327C8382A5A40E5F29745DF
      948346C7C88A5D32258207CB4C4873CBB6F097562F61D5280768C
      D2CFE35FBA97E997280DBAAAE3AF92FE08A101A40102200121582
      0D7CC072DE2205BDC1537A543D53C60A6ACB62ECCD890C7FA27C9
      E354089BBE13225820F95E1D4B851A2CC80FFF87D8E23F22AFB72
      5D535E515D020731E79A3B4E47120584056F50D131FA83979AE06
      4E76E70DC75C070B6D991AEC08ADF9F41CAB7F1B7E2C47F67DACA
      8BB49E3119B7BAE77AEC6C89162713E0CC6D0E7327831E67F3284
      1A',
  "pat":
    h'd28443A10126A05824A10A58205CA3750DAF829C30C20797EDDB794
      9B1FD028C5408F2DD8650AD732327E3FB645840F9F41CAB7F1B7E
      2C47F67DACA8BB49E3119B7BAE77AEC6C89162713E0CC6D0E7327
      831E67F32841A56F50D131FA83979AE064E76E70DC75C070B6D99
      1AEC08AD'
}
]]></artwork>
      </section>
      <section anchor="confidential-compute-architecture-cca-platform-token-in-csr">
        <name>Confidential Compute Architecture (CCA) Platform Token in CSR</name>
        <t>The Confidential Compute Architecture (CCA) Platform Token is described in
<xref target="I-D.ffm-rats-cca-token"/> and is also based on the EAT format.  Although the
full CCA attestation is composed of Realm and Platform Evidence, for the purposes
of this example only the Platform token is provided.</t>
        <artwork><![CDATA[
EvidenceBundle
   +
   |
   + Evidences
   |
   +---->  EvidenceStatement
        +
        |
        +-> type: OID for CCA Platform Attestation Toekn
        |         1 3 6 1 5 5 7 1 TBD
        |
        +-> stmt: CCA Platform Token
]]></artwork>
        <t>Although the CCA Platform Token follows the EAT/CMW format, it is untagged.
This is because the encoding can be discerned in the CSR based on the OID alone.
The untagged token based on a sample claim set is provided below:</t>
        <artwork><![CDATA[
(long lines wrapped for readability)

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

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

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

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

CsrAttestation DEFINITIONS IMPLICIT TAGS ::= BEGIN

EXPORTS ALL;

IMPORTS

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

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

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

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

EVIDENCE-STATEMENT ::= TYPE-IDENTIFIER

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

ATTESTATION-RESULT ::= TYPE-IDENTIFIER

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

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

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

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

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

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

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

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

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

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

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

END
]]></artwork>
      <section anchor="tcg-dice-example-in-asn1">
        <name>TCG DICE Example in ASN.1</name>
        <t>This section gives an example of extending the ASN.1 module above to carry an existing ASN.1-based Evidence Statement.
The example used is the Trusted Computing Group DICE Attestation Conceptual Message Wrapper, as defined in <xref target="TCGDICE1.1"/>.</t>
        <artwork><![CDATA[
CsrAttestationDiceExample DEFINITIONS IMPLICIT TAGS ::= BEGIN

IMPORTS 

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

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

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

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

TcgDiceAttestation DEFINITIONS AUTOMATIC TAGS ::= BEGIN

EXPORTS ALL;

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

DiceConceptualMessageWrapper ::= SEQUENCE {
  cmw OCTET STRING
}

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

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

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

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

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

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

EndorsementManifestURI ::= SEQUENCE {
  emUri UTF8String
}

TcgUeid ::= SEQUENCE {
  ueid OCTET STRING
}

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

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

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

UccsEvidence ::= SEQUENCE {
  uccs OCTET STRING
} 

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

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

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

// BER only
a0 82 00 8c 30 82 00 88 06 0b 2a 86 48 86 f7 0d
01 09 10 02 3b 30 79 31 77 30 75 30 73 30 71 06
06 67 81 05 05 04 01 30 4e 82 0c 41 42 43 44 45
46 31 32 33 34 35 36 83 01 04 a6 2f 30 2d 06 09
60 86 48 01 65 03 04 02 01 04 20 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 88 04 00 00 00
00 89 04 00 00 00 00 16 17 44 69 63 65 54 63 62
49 6e 66 6f 2e 65 78 61 6d 70 6c 65 2e 63 6f 6d
]]></artwork>
      </section>
    </section>
    <section anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>This specification is the work of a design team created by the chairs of the
LAMPS working group. The following persons, in no specific order,
contributed to the work directly, participated in design team meetings, or provided review of the document.</t>
      <t>Richard Kettlewell, Chris Trufan, Bruno Couillard,
Jean-Pierre Fiset, Sander Temme, Jethro Beekman, Zsolt Rózsahegyi, Ferenc
Pető, Mike Agrenius Kushner, Tomas Gustavsson, Dieter Bong, Christopher Meyer, Carl Wallace, Michael Richardson, Tomofumi Okubo, Olivier
Couillard, John Gray, Eric Amador, Darren Johnson, Herman Slatman, Tiru Reddy, James Hagborg, A.J. Stein, John Kemp, Daniel Migault and Russ Housley.</t>
      <t>We would like to specifically thank Mike StJohns for his work on an earlier
version of this draft.</t>
      <t>We would also like to specifically thank Giri Mandyam for providing the
appendix illustrating the confidential computing scenario, and to Corey
Bonnell for helping with the hackathon scripts to bundle it into a CSR.</t>
      <t>Finally, we would like to thank Andreas Kretschmer, Hendrik Brockhaus,
David von Oheimb, and Thomas Fossati for their feedback based on implementation
experience.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
4Wbcy1/P7dxd8bxTr1vt1qpx/Xhy6j21RsvehWFdN2u1a6sxHDavrAY0uPbq
8HvNuti/WQZHF4N87r40b1m3heun4eFVUK34V8uC0y9fT2tV+3Tf2H2tLHaz
X0du52J2Uc9NnMxhcN1sLDvezeXR6OV17rqDee7m9Mq+u8mN1oeZ4nw+er5o
TAcN+/zr8sW4uMgV/MlbZ3H31MxfvlVKb+375u7ZS/5pcH98c3nXLT51zpv7
d5dP/cdza7lau7nBzbG9n+2dVg/3S1njftWaPRa+no/PArvbDtqTdb9yc7K7
P8w7r4O6U388Kefri2rmMLO6mD9edl7vLopeoXm2POk3x51q1bi26/lK53B5
sru+rxZW1ws7t184m5d6r5nW7sVd4/D47Lx5tjpc9+/6T8Hs62G/eTQrPOy6
xerouVGwjMPG1eX65OTEPawUnrzy7vUgO291b+vdw7vdm8nS65YXdfcyqFzm
n5pnhZe6tWpall2v1xfN1XDo943aMPg6enGPqqtMrX5j1S/fjur1YIUvWwBk
9dwznMz88ah279RqN9c1fBYM27WXQfX2OuPADFaWa1lB+cnyzndnlw/LRaOd
7z093LePHmanb83BNF/ft+9HubfW+GLSby2vraZ1Vb37OrTgp1Y1St5ygr9e
rCx60qrd1por665db1mtoXV2E1wtmt37+ZW123twj+/eSm/9SakxuHx8qCx8
/8a4X57dW17z5b5yTh/cXazv74+6t5Oz5cN0sd9veiuv3+n2v56ejP2R/djq
uOPc7MEre14TAM4yRtPV3bF31izka4O7tfd2+XX6Wr0bBP12+bbwdHlVmLUz
haU/OKqfOcPnh+bx82vvfH2bb/RO5v1ysDSeV8X91uv07OGssX//YDnZ4+JD
99J3LoePd87z2/llttS4uq/d5Sbls8vb5XLVDlo3o+MT+6y4un0dLIyzJ+/+
sXQ7K1/vDg/njaV3PLjxT4Ouc37jXd4DXIxvvZfM1ehplbkpPF2vD/1eYd+v
+dWXdvVuNpkb1m6+db542v+6ePbtq6/d+v7bNHvZzGV2rbl7els6q76c3M7H
zvOgctMb3U8Lg4FbWAxPC4vyzfL8um3sj4+mu8WjbGtwd/1YLLrnp/3xsV2d
rt9eptfXtUdvdpg7udoNpvN67mlQKrbs4H7dLF/cXwbX7e7aN0r7l+2z4dC5
GBSHt5W2fzN4s61hu27dPFqAoc4s69Hq4ZnXLAAAOnwLf8tXj3ZXj9l9Y/DU
/ZoZ1jqj2sS63X3Lr4Pd/VExP6/3jrOev18+XpfL91+PTs5zL5kz+6l8ff9q
XV9WL0fNgn3UOcoZpye7AOVedXZ3bB+3HjqTXO7oPHPZr1x466+715l81110
Ly6Ldy+dXvnqzb84eewUFp3+uPrYbxbvlsZ4fL7qVG+L4+xwVd9vnJ49VZt9
f/9u5Wce9v27ruWOn11vfbt4nc1PX0+7J/nX5rS82+iXDysnhZOhMV32Tsv5
64eOlcsOi1eHt/nJ8/B6URln2ndX+WzNOxu8nt9XpuWTbv65Vi/63f3hIj97
O75+LmRvz2+NXrC6XloPJ9m77GQ98e4y1/Z0NCidTWElV0Pr9rxSbr28TFoP
b6PJ87JY27/PjObXJ8HdQ/HI3h0tjUXhtFV6W5X7L9dL9+bxoX9cm/cnd2v7
/mn29NBaPD2MRt2HWvDULj53cxm45oMJXOmmjRg6ezQ0rFUL6EXrdvBQ8Hpl
6O62u34rZe/m1xfFYc7KXZ9fR9A4YPGzGhKgNyZAxq9SoG0EyPhVCpREgA4b
VttQFCjPFKg3qS77zYvaea3w0Oi0Mucda33eaa3OO73X87EnnjXX5w1+ZsBD
HO0PEVR9OcafIaj6O0MR1IZ1KZdTE8t5vA/g2JruuZU5qre/HrVb3XwDaKl1
fWtZhVatsbJWBjQ4tTw4yuvGw/Ph7sNhdhWsVyevRQeIcfY622lU+s7T19eX
68ejp/NqZ3a/6y8Pn6c3/XbjqlI5N9yzy6vH3k3r5HrXGRwvvUrWK7XOytPM
babTnthXpfzQPq+/XJ75OZjgrHZ89DJody9y3WxpEdT8a6P3eH2461Uvbout
+Xw/KL9Ml+PRhXvZvXTub2rD+cXVg+O+rI/Xvcfn3tPQO+rv3zaWVzfuzUlm
1vYXRrvWcNrZ18zC6wRLZ5Y5ad/Ubt3TUaVfbmSO87f1ydPT293V212tnX3a
vxvn7fzx5fPt0LOWD63a28J4Ge0Xa6f96/aoOBrcTB/c4rI0PjnyvfvD+2Vw
fHeYuzrzLus5z275Z0/52zs7UzwtrO46+6vTrpu5NHo3zmLQrPqnpfpycty0
bh/cbC/YfV5PnwaPNsDa8ByQ2dHzcGCthg5cpqcCHme/tWrXxs/1mvFSOizP
jl/U5fijwGT8We5MvjPil2Pb3RiOboqzq93X19OgVyrPzi6/Xrmtp/atURgM
Z28N6xw/PL6B9Q4qTevZss6tgNbaWF03AWccDxvM+h23YQYd67g2vJsOr29b
hvVm9enFdaF5CE+OC9eD12VvcjWsvuayi+v7Ym9wtB68ds97SYilYRBPWM8/
vZVqu4vs8W45Vz/KPO8HpfHN1cP+49V+4+p5VGy15tXj/uWJfd8rjoNufTk8
bjcb5Yv9XWPp1Qf1m0G5dZu7HBV3c1+ru9WLonXjTh+uJn5w9XSxPrupLO9f
urny/mhcvey4mbN1uTE/OZ/fnnRujLevxXz/qVd+6XcaF4+zq2m31bWn7cv7
/Lh9VmxmgcmrrNadYLa/vD6dO4+dwSRonK6qo4djGNNpG87t7Gly2jtujx7G
3Uaz2e0sHs9OzuE8Tifn9cnVc2t44rcf9rOVVdOzhl6udvf8/LYajLxern02
vTb67svyouTZpaaTeXu8cVuTh9l5ubdo+vVK5fnSz3xd3N7AcVQGwXW/Mno8
url92S95V+cPb63B02lgvO2v36zb62I5szt56fdz7uHd+Gunfl11bgGZXGSR
rXu4bt06dmc/6LX948tFqf329bngHt2OL48Lxmlv9S7e/xloGz/D+z8DbeNn
eP9naN/Q8P7q8nAD7+Ozd5dj/BEylrQc44+QsaTlGLSeVqvWerbgzr4ozh1O
49CyLkGGqlj4vj48hd+b1uvVZeOwtHh+7fYb94uHqfE2/vr22Los+LPrU298
OjjtXh7e1mul9nPfKj68Wf5Zp/142sgDn/B1Ul5MD18mx/Xc8fyr5X8tPg+X
Ru86N3g7cS6Our3F+uSxvbKr9yfPJ8Wvj6XhQ/Nx96gcHA6fik9O8/7oevft
2Z8uTkb7V/Px6CS3f1NeGfN+vZJrWLdn9uv08PmyXXqYlGa3tcqN/dScP5WO
V4Or24fHoXNabd0c5erdZlB5fvFq1x2/fTrrz+pGZrI+8f125srrHNbHjdnX
UvbZKS+uh7elbrVlXQ4AS3sPxYv+Y2/w9bV31RsVVl+7L+P+afBc33fLxut5
z5lURtNu/v52aU26wdlVtpU5fK1Mu5nFcL+TazaKt9X5Ve2hezp0GuWcfZs7
qx5dBLvrWbNqvRndTq3UW7UA41m1OBWur5gKAzY8hJdHwVX29fRr4abQfeve
T68Lp7njXcN/vHArt83rt9eLUs21LtzqbmXUPTsevJaGh0/jt93r19Xd+rjk
XU8v/ODurnH33Hw8Luyvl+vyRf/y1bhz54eDr5ePq7V94ZwWvYfX7LjozS/t
y+589VYr39xdX7TH7uyteXdfuLkKTiav+5XD8vribN4fet6VcZu5frttf230
vNPTfKlZuMwHleLrYH0xbvZPcsuT3sn+09Nr8fp6PB1ddAbF7v3Yz99WX0sN
p+tYXwNjd7UEoty3L94W4+Pag33a+grc/mv1Yvcxl1s+7y5XlaPLwlnleNpv
XJ2P+s39+jw7yq7Xw0mp+FwaGXZ9cn1z2zl9ey5Uv5buCxfHR2X3yrF3y93h
+dfyUeHsxqs22ofNwfn95cu1c3fbvrpyO4Ft2SMkPkZ01y8J3rP21eN0UgkW
9Ru40vXyy2X/8nl5d5Xbzc2OX4NWcTk9GwwGh8PAvjDW3uVbtTwvda3J9cPV
db3Ze65fP3211gCy161OrTsoXnor/6J+eVZ5vDmzDxc52LPK8e7DyW3rNtMy
HttB/rhyux44j17xrnF6Uh/f7l/22m9Hw6NJ6aR60rh2j28XzUP/a3fWzFbt
9tt89uA3j6uPj1eVsmWAoFpdvs7OAifnz0CMeenNdu9269Vi5fSk6T1e96rN
wfPyPH/29WzyNivPlutbe7zMZWvdy5VzWrkzWo93p+X+89fds/rkcXWy6p/6
l4/3E7+xPq5c7U6cyvRq/lKt9XvL+93gOfd1se8BJXpsnhVOra/W0jVq98XO
Gwgqw+vR5Nweu8H+SeH+MX+dmS8vzx9urq+f6pPL3EXhaviv/8qKqeZFY7ta
SobCYwIB3VjWwVQlIraITUs/yW3yEXr4lNRFYEQiQDGz7DzojbyBM3WHXAdt
Ftgpyo3y40c0ibgsjTCP1pQX+TG4Bpgen8RDfmxanU+y2lp3MOdBXuw55kEW
sWOxmGhDC/ZxTPh+Q9crw4RIZSm2wtBDyqimEmtef7pKgx0duq6q9RTPIgC9
dN2pjNAz4q/nvNBTWKhUwifGgIt2V9DOUGmXRs54JpXllDOY05FKg36YATi6
dzIho/T2h8FT0DGH2aHFYY800D5P2jPCxETFNCUu2uxyL9wFTpdwfi8zz+Ch
vFtuvjPSKhlIzfDGnMKKXvO4u1o6mteC9cJoG6JaS1R0aDe0oIXPqMRLghVN
GZp21W9h5aJd+ITtami+QPMgrrUerlV9oqxY8fQVnVpjS8dshoO17+PaYx3T
DcfN4nTjbkLQY+qvlOkFdku/BobsUO4aWTJiua0Srpio+CDTjWCq4trlTXhW
+C560BEfaq5zhOULUl3fsV8CkeuQc7nafVnZdbbwZ17gBJ+E0RQtgzswg50D
2pvRh36uUijkrWwmmytZmWKlnrHyGatYyWVq1Wwtk8/mqrlcrgqyQC5baBZy
tcN8tlGqiJ0t56x88zDXqDUaViGTPaw1soflXLFRqDRKtcNqvZItZ6uZar2A
bzO5XAaGyYpvcYzDzOHhoVWuWfliswz0ulC3sofFQqHUyOfK9Uq+krOK8Gmz
eAhTKBQbh+LbaqGSL5Tq0KRiFaFtDjsr12uFeqECU63VSoeZarlYyh2Wsg2M
2i+XKnXxbSNXP2zmi4c1q1puVqtleNuooc4ubx1Wc4fNTAV3Q58wdC6+zTTK
9XqmnGs04VWx1qhni/myVSzkG8V8vZSxShYwnblmvd6oVDP18qEFq6hK+3O+
WMhUqrVaMysmfFgFKatRqFWKWStXr1dwMyrlRqWZyx/mctZhrSzHLUL/xWYx
W2xkYJ35bLNctfI1OI9yFuZRKWSKpcNippHNZw+tSr4Kb5uZkvi2gDtbzjTq
5SJMPVMrNarVrNWswzobh9XDQrZu1cqH2Vq5masXyoelcsOqW+LbSq1WqDbz
2Wy1BofULJfhu1K9Us2WcuVsvpmp10uNTLMMh1WBSZXKh3kAJ/Ft1vqA5uad
2TvQlivA7wRtxbqVL8MSrMNKrlrPZ+qwTjifRqNWrsoeq7XsIWxApY4bCVDX
qJSKGasBw8MEmvnDWqmAexFdlPhWW9uvL0ruQri2rJW000lbrHaBd/qDllGn
jiUL+qKaLUejOzE+oY4VcxQzscln/Nkuoq6YgnYMBhNGTb1elMWQuaK30n3T
GotanYgKKX4Uho0GkbO3oiecFW8ce8xRcWpqYZ1n6YQmsZYhKZbKAyUdLtXH
c7kuaSH9n02wYPlqclFGz3n5zyBgkQHoVBmu9JNIaCT9LuUR7iNx4WPcEzmr
F9O5PRxyrmN2aO46YWJNRZlkkKQbYPbw0HUC/XEigEI5UcfeVCSplt2LI1NN
bZlyiQsbYYaFSAQB0jtBvT5SOrcx8absobBB8T4Zxr70U1I7IKrnYS4uvESN
xpm59WefaKS5b+JlkOxiSuQ0hse5UvFgB1ZyYPsT9EfYy2Vy+QNo/Fk2/i2b
zqQzO9yLjR/LXnojG6j5FEuGto+tVK5YUo65wt/5H//xf91Yp//4j/8On2Yz
B2bUN+hDr9rr9wrFMkir1Uq2Xyzlu9lqt2hXnIyT73UdkGirhUK/WHEAI0Pj
UrlcHUT6KJe7TrdU7Hb7RRglYY4Yi8yhyLDWfLV4AMPmM5nMB3Ofa5L19xO+
ClYp5UMd8JfVA/Pv5rfswc7NZefwvL6zZ+YORh+qmbydL/XzdmRWGbuYzQKw
wdoKlYHjVEqZrD0oFnKFci+bzfQcILeDUiVjZ7q5cqFQyJZz1WwGVxB1tSrC
CP1Cb1DKOoVyrp+t9CpONVfqOZk+fFUtlcqFchVob7lXqZQzJadiZ3P5bk5R
GP7pwXIr1WK/6tgwgvKukmu5F0spVvuFbLZUzBUdYE66xW4pNxj0y73CYNDr
2jDVKhxLJVfKF2DNTjcyRKmUrwB9A06gn7MH1WIVl/Jr04/0k7SW2PTNf6Pz
ihyX24cjKpbgbBHUqoVSPl/JwnrKpfKgOsiXM9WKncnYpcwgm893S/1iuVIp
RQGpVyqWBsVB1XH62Xy5lOkWKtX8wM5KqIqOF6llxMPnq2L8zLafKIj80g8N
/wNxQJhOjsnSfSfF6G4uUZAoD2WvMaZB5HDgHF37MdSBmINbU/bkMKR1GwrZ
N7FIcXfsqFzRsgbiZbv5GYOPsuktH9P3Rin70cxWPpp/F4yTTSzThz28eGFC
7JFIYGfSlTS/gai4j1XkgfFfTDeb7TM6wT23C8CXZ4FHruTy5UIpWyrn7RLc
qlI/55TypQH82wO2KgP/5eFNHv6XLQ4AzHrQ2mAIHlDzPIgITr4K/wHAFCsZ
YFB/BUtRHxuoSsNOKDcUu/9vd8ey2zhyvBPwPzRySChA0pAU9cJigciyNCOP
ZRuSvJ5dY7CgyJbEWA+HpPzY3fmIfEuOOeQQ5HvyC6mqZvMhkpLlwSDBEoOZ
EVndXVVdVV3VZFeZBtoe+v+sZVg1TW+AwpkzjBGE0jpmTTPEuJFtOcKcUB9J
m6LVRWdHmBHqI1f/LA4I1yXC9aboGvDNmA6Bxz77kTEZGUxFH0dYvQSmJA5a
UwR2wMpXmoRcK0B9gCnQLZg2G7374y8lo/M6rEChsr4LtcKeTmdW22jb0/a0
ZTbsKbC66TT5rD1tArfBwpm6YdVnhmE1uG61UDTspq6bdQjtqA+g2ZmaU30K
nrwOYmo7bQdAdVufWc7U1lqNdqtlTK1GwzSnbWeqtR3D0Gc6TA2EA6Em1M0p
ro7yi793ymdWYuiI3EiXx6cKo5QghkzPO2XxJ4yEhFpbGkymburHKaWyo5Vv
UEhlr9/wKmVUIm18syIq2YX9WCVUisT6CAX8SuUDDJWvUTyhc8qblS7SN+Vt
CpdSPk3HQPpr1EsxvlK1SKtEaCNixugD2jAASW10016Z2M8sR3UCwj1f3LUX
C74i96mxuEM5ilpEPiaxquMZm+Qhtd/V5qdgJMWD73bCw/RYmN270D0RvUSO
0f6ewk2PMAedqO8Wnd+oiJMpHcwEWIE4qq5gumLX36h64mi1U9l4c2vt/kLO
o1orMWfjqI2SSEe55gFCy+T8ah3zC8VFdOA3e7h3n9Um9lhZQUtN/q+CD+Tx
DU1XgX3Dq7MSZiDt+l4yeD/r9QeXA0RzzAbD64tBdzBhk877MeVNpI+aFaX3
6fpqNBmzzsXFd4oCYPhLUZLHL3BgHFTpj66G7Prj4JPee8aECm4A9GttVqmI
DeS7Ub9bb+vGZ+Vt/FAS/DjEDSXBDR2Lkwl8NEOt64IZMQXdxcYVok4UdDEx
w2YOofjCtYfcx0yq4xdY9Z6BHF0s4hEBKywk4FWwWK9qlNjWV8HGlJjnW47v
qrpeq5ttkRzq4d72sQX+W2mrbZjelbviqg5EiirBfmIW7ZVPzFPrLUK392nS
uxzDXJUZyNdocHoz6ZVZlMQERBYd5bG7ni95dPfXL/GcVLpUwQ8L/Pj/H9Mi
EKIpaRKNdMZJzgK9a+RD4FA4BT/UnE2gf2Pu43umRxpINUhOGAOxL8h1Pvnx
uleJE/cqRydKx8TmOA1YFWa3bm+cM6hSweAvaVVGvfHNRQEOCQ0XFTkQh4LG
x+KQPT6WybAqDj2xHKqrf3Qd9dc8Fn0p0W4EvYnKb4lSW9D21z/jiGEXdBKH
sUGnPg7o5EYiIWuWM8XYZ/klsM9jbhr7vJYC+9y2MfZfsCYK7nanC5KLjP47
p//2ZKe2LFZvs3RnOVVakt2CU7G/Q1xDjFLYKb4vlpV3VIlmCd+HezGCkYmK
xAzllGV8ju7VzSUsLsPOJ4aanU7jnyZaiYenGj+JsVNFBiNDGQ09/vFyAgNk
Bn/laBGxWTaGZAMDCwjOzPkxlFtehuY8FJB6wKCQ7mIcigfdOTGV1RPJJz++
Px781GOqXq0CTSV21c/JsIstxWHO4lbZdTlSYrlnCSzJgYqKhsnSjnQiEEux
iPRycePkYa5Enk48uCtXztSRtMS4+IVEXGi7alSp8BKtoBB3fc41M3lMTJNd
7JbCBTzJdAkzdHkWvXrDVGdnA+i1J2u+humRd8pXzOmsd7oCCY+q7lCiBHJo
xXqIpzkfxTFNLCAq2oUpvAkuLO4dmar43KiSTBAk8vGGGUgKslUT9qkT+yJr
8tZasnD5Z7fi9CZlXkt9VwTkY3u9qtPXIeSGpzzdM5APyZpXOb2hm8tE0n7H
xTLVEUKVlUCoIo+Tkrsysec4TPKTJPwd0xGScXugUTTgxJ5iUsm9vR+CyfVH
hI+bYpDyHVFKCK+eMq1640InBkV3L53ZIi+77Nwr/EXX7hx8iQgIeXIMESEN
kpsFKMvHX9AkixRaRVSXcwmVOL+JYHk9yREQiwTWYZ2iHWSp2pSX8utQVSqJ
ua8kX7BXwkSlFVCmCjZ+5TXi+GoA27V+bpxbawh7zeqDMzveJQ5nMWf6yix+
vGeSFfJowRCjhVSySpGyAJ2bydUQnLXugbj3lcVEJPv3VgOR74+6S8unIAlb
qGYp0T6StX3FQWigwJ7iqXxVTzXncWKvygqisRnuBUCIVtjfK0UyGjbZKQaF
ibFvuOscxnsLUDs0D/HjwgOER+2P1iE65i25VU9j3O2OD/rWbx95a0PEKbvH
0DkxdMTHbzV8agCXMGgWch1X5W/LeXydrrZSCOxZWL9SWtNXRIC9esLwP61t
cSn5g6J79OhAe2Um+1d1sf20d9HM+NuAc6rQiBL2INUl0+CRTAC70z7HXs7N
pN/aCYvRswVvjy/ZnX4YUlZPuDMOw/qPAFdLwA0uJ733wM0kkCjGfWceAHPX
Dn9md/UDYLMn1/HZXSMB1r8dnF0MIC5IwS2tOcA1E3BXD2HhU2vZp6dpspGX
xOe7VrJRXuUXqhGDmwh37deAEi5Dy7+HCdA+F+JDEGmWBHyOe26jsAwWEKQn
p3DgXWDJyuT+R8SMPZEIBBsIhptw8E9WrjCdJebuzGgJIuWIPLG7gpphLi2z
g4gf2O96E9DXf3P8FoepGu2pwE2xCwj40Q0I5TDZ4AtTDfrt8Ol2zmABCqFH
WO/65Tr6RgBWmPDJQPIr8bAeNRMlP4fc8sXwjajZarUNKCMLmM3wHugcAxtG
s4dZkm9dJ1gAEnopj1iaud8zwaGg7Zepwa64YonpnVtZYZMl3ij5V3ZPr5wE
2a5ybcJb5DWRFnUYLp83o0EWPb66AZcqtn/YFvxNcoAywFtyi4pN+Jj/9QAP
E8CplrRq72+agEQUC5rRQkN78n2qQpZePZKxhhJvAP0gypanlo80WUjoDfhA
0T5BljfwdIc3EHpL3mfhw/xNEqAvPvhUYm8nw+g0KPXYu7wZhnUksE8fFo/K
82qJC3aojfaGbtpTWEhDfQxv/cWHVTBUSfExRAhVKyWmNfYpMhTQ2ZtdLHO3
dOQKn9jaCb+X/uYbO3m1OY/e2ElFqIc3bv7zj3++ewe8mtDhkfEofsPlnygd
jbUMpsHfvRNgIgBS+asEBGO1CKZzQp4aQGVdup39dFWHKK5laky8McKCsVhG
wGD1dkn0ojWYdsqMDms1mNnCv/tNpp0xTWcawGpMM1jt9CT0DUMSsAwuTlOE
oXxe01mzLX8Q+J4N1xgOaGvW45+phomsVXtsQbLxa668XdxkH4hRLd1pHk4F
9Mge9F20oI/wo4HMzGVC5Jy2RZcqK4RW61Wzqpd2m+IkN1ijyVowq3X6Y8IM
54wgvjzIp4hoMjM3hbxewRr1afLz+LrXxUOZ7LfIqVY1I4MQtZEA37POafes
19eNmllvZEFR7LvM1JlpMLPGTJOZdWY2UNhqIJw1VjNZrc5qOU3zMUMXXtVq
+Vjhw++ZmYNGjZQi50n+KHALLOBNFw3xb6EPr2qNnFE7oJH93G6LJoKmwjjL
k/pcszD+0DHyWCtEo80aWqj/QGEDpKNGAmLkyIgcImHhC0CQYuCk9ozfKFXh
0rRcBEwsI6vl/8lt8L8FLRL2KJRStVaRvFPoitsFEV/wyhG1FvH/eDQoQFO1
dj4C9PTAyO0DI0M3Iulp7Lb+IbEWpnI/ZsxQl+lN1N8GSFwNBa1u0n9Ar+EO
Zw0wUrPdVgZHyGaLNUA2HdbUWMPGO3gf2s7g5olyogBipyDpeOboRLGixdJO
LJwtkvYpM6x4tZvBagftU8vdlIx3m1azplicxIIgjDr0Ag1y7CnZR06j2Tv2
6kTJM1iRTWEWmIAZKbUjVPJEKdbJXJ0BlArVqEC0DwKl5ZAaZAQE/YmCWQWi
42l9zTxGn5/ZmM9+yR1R7Vs6helyr8I/e9p496JWnsOpckzArZVM3y2z0mJi
S08WOlIuOsPrMTVE6Z2jOyeOC8TZi7Fe32btl9GdW2/iwi4bz+FeWcEXscLx
ceRni4SHrBVRxiSngWu7D4QFdJJEbsU5OpLQO5ZpkSensHgzf4oSvsZ1EUYu
oO9h4dIgWPInvlyWWXfhAf3gm86sdZmdeltAsrvZusslQJaVc26tK9cu9yDg
7rs+D8psbGEhUjbhqxUvs3MeLLwNO+X8foU9/ORvlgEb/evvv/jWgs9f3DLr
U+lH5ZoH//5bmQ3de/C153DL3frs4xb9f6/MJpsV+L7vwUW2Hn0fk5mfuVSw
8nSznodoBpsHTD875C/Yomt5S3ZrLbHKMnYLtPElC2mkHqDPzWy7ctnV/XYK
zvXV0n3EaoIxfex8s1iDH24Bo3seTEtnZYFlhcHB7edrekxdfeAQFa3ZeGkF
RObE9bZsxB0HGp5jZUn2wZpDfAOodqrnVTYOuLsOu//IVw/Y4xpCRsBzbuHX
JfgqarSFwOfDZusvqZDCrawdvkQWBZt0TeFgYa3vBffGAeFFH66IKj8ouZT2
gQNTkETpEUXVMTxrFiTHoPOdewZ670LgDjGh8wJyNovES6ZcwE1YCJ2eGTBy
S2lkZRhlJ0+o2lGs49t8bXmufAmHQubxFwVmdw1yKEjhy4eo9CqlYsCcwMEC
j8BTbRCR6iJMXhCEZYoxwAHC+u4asS+zp10uCno6awc0GQTO45h6YoUS9AFI
8Nx7kPqNfb+wtn5ZObOASPYIQ14tuLuaCnQnC5LO/sb3gVB5XNX12IxzZwpY
xqca0yeeFEzP7tFLharyX6BizFF2TgEA

-->

</rfc>
