<?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.17 (Ruby 3.3.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-lamps-csr-attestation-10" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.22.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-10"/>
    <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="2024" month="July" day="08"/>
    <keyword>PKI</keyword>
    <keyword>PKCS#10</keyword>
    <keyword>CRMF</keyword>
    <keyword>Attestation</keyword>
    <keyword>Evidence</keyword>
    <keyword>Certificate Signing Requests</keyword>
    <abstract>
      <?line 112?>

<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 in Certificate Signing Requests (CSRs) such as PKCS#10 or Certificate Request Message Format (CRMF) payloads which provides an elegant and automatable mechanism for transporting Evidence to a Certification Authority.</t>
      <t>Including Evidence 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. These Evidence Claims can include information about the hardware component's manufacturer, the version of installed or running firmware, the version of software installed or running in layers above the firmware, or the presence of hardware components providing specific protection capabilities or shielded locations (e.g., to protect keys).</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://lamps-wg.github.io/csr-attestation/draft-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 121?>

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

<t>This document re-uses the terms defined in <xref target="RFC9334"/> related to remote
attestation. Readers of this document are assumed to be familiar with
the following terms: Evidence, Claim, Attestation Results (AR), Attester,
Verifier, Target Environment, Attesting Environment, 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 Signing Request"
would have been correct, the mistake was unnoticed. In the meanwhile
CSR is an abbreviation used beyond PKCS#10. Hence, it is equally
applicable to other protocols that use a different syntax and
even a different encoding, in particular this document also
considers 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>
    </section>
    <section anchor="architecture">
      <name>Architecture</name>
      <t><xref target="fig-arch"/> shows the high-level communication pattern of the RATS
background check model where the Attester transmits the Evidence in the
CSR to the RA and the CA, which is subsequently forwarded to the Verifier.
The Verifier appraises the received Evidence and computes an Attestation
Result, which is then processed by the RA/CA prior to the certificate
issuance.</t>
      <t>In addition to the background check model, the RATS architecture also
specifies the passport model and combinations. See Section 5.2 of
<xref target="RFC9334"/> for a description of the passport model. The passport model
requires the Attester to transmit Evidence to the Verifier directly in order
to obtain the Attestation Result, which is then forwarded to the Relying
Party. This specification utilizes the background check model since CSRs are
often used as one-shot messages where no direct real-time interaction
between the Attester and the Verifier is possible.</t>
      <t>Note that the Verifier is a logical role that may be included in the
RA/CA product. In this case, the Relying Party role and Verifier role collapse into a
single entity. The Verifier functionality can, however,
also be kept separate from the RA functionality, such as a utility or
library provided by the device manufacturer. For example,
security concerns may require parsers of Evidence formats to be logically
or physically separated from the core RA and CA functionality. The interface
by which the Relying Party passes Evidence to the Verifier and receives back
Attestation Results may be proprietary or standardized, but in any case is
out-of-scope for this document.</t>
      <t>The diagram below shows an example data flow where Evidence is included in a
CSR. The CSR is parsed by the Registration Authority (RA) component of a
Certification Authority 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 Certification
Authority for issuance. This diagram overlays PKI entities with RATS roles in
parentheses.</t>
      <figure anchor="fig-arch">
        <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="404" y="148">(AR)</text>
                <text x="32" y="212">HSM</text>
                <text x="156" y="212">Evidence</text>
                <text x="244" y="212">Reg.</text>
                <text x="304" y="212">Authority</text>
                <text x="416" y="212">Attestation</text>
                <text x="516" y="212">CA</text>
                <text x="60" y="228">(Attester)</text>
                <text x="132" y="228">in</text>
                <text x="160" y="228">CSR</text>
                <text x="260" y="228">(Relying</text>
                <text x="324" y="228">Party)</text>
                <text x="396" y="228">Result</text>
                <text x="448" y="228">Meets</text>
                <text x="388" y="244">Cert</text>
                <text x="440" y="244">policy?</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art"><![CDATA[
                          .-----------------.
                          |                 | Compare Evidence
                          |    (Verifier)   | against Appraisal
                          |                 | Policy
                          '------------+----'
                               ^       |
                      Evidence |       | Attestation
                               |       | Result (AR)
                               |       v
.------------.            .----|-------|----.                .-----.
|            +----------->|----'       '--->|--------------->|     |
| HSM        | Evidence   | Reg. Authority  | Attestation    | CA  |
| (Attester) | in CSR     | (Relying Party) | Result Meets   |     |
|            |            |                 | Cert policy?   |     |
'------------'            '-----------------'                '-----'
]]></artwork>
        </artset>
      </figure>
      <t>As discussed in RFC 9334, different security and privacy aspects need to be
considered. For example, Evidence may need to be protected against replay and
Section 10 of RFC 9334 lists approach for offering freshness. There are also
concerns about the exposure of persistent identifiers by utilizing attestation
technology, which are discussed in Section 11 of RFC 9334. Finally, the keying
material used by the Attester needs to be protected against unauthorized access,
and against signing arbitrary content that originated from outside the device.
This aspect is described in Section 12 of RFC 9334. Most of these aspects are,
however, outside the scope of this specification but relevant for use with a
given attestation technology. The focus of this specification is on the
transport of Evidence from the Attester to the Relying Party via existing
CSR messages.</t>
    </section>
    <section anchor="information-model">
      <name>Information Model</name>
      <section anchor="interaction-with-an-hsm">
        <name>Interaction with an HSM</name>
        <t>This specification is 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.</t>
        <t>Cases where the CSR is generated internally to the Attesting Environment
are straightforward: the HSM generates and embeds the Evidence and the corresponding
certification paths when constructing the CSR.</t>
        <t>Cases where the CSR is generated externally may require extra round-trips of communication
between the CSR generator and the Attesting Environment, first to obtain
the necessary Evidence about the subject key, and then to use
the subject key to sign the CSR; for example, a CSR generated by
a popular crypto library about a subject key stored on a PKCS#11 <xref target="PKCS11"/> device.</t>
        <t>As an example, assuming that the HSM is, or contains, the Attesting Environment and
some cryptographic library is assembling a CSR by interacting with the HSM over some
network protocol, then the interaction would conceptually be:</t>
        <figure anchor="fig-csr-client-p11">
          <name>Example interaction between CSR generator and HSM.</name>
          <artset>
            <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="320" width="384" viewBox="0 0 384 320" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 8,176 L 8,208" fill="none" stroke="black"/>
                <path d="M 160,32 L 160,80" fill="none" stroke="black"/>
                <path d="M 184,176 L 184,208" fill="none" stroke="black"/>
                <path d="M 200,88 L 200,304" fill="none" stroke="black"/>
                <path d="M 240,32 L 240,80" fill="none" stroke="black"/>
                <path d="M 328,32 L 328,80" fill="none" stroke="black"/>
                <path d="M 352,88 L 352,304" fill="none" stroke="black"/>
                <path d="M 376,32 L 376,80" fill="none" stroke="black"/>
                <path d="M 160,32 L 240,32" fill="none" stroke="black"/>
                <path d="M 328,32 L 376,32" fill="none" stroke="black"/>
                <path d="M 160,80 L 240,80" fill="none" stroke="black"/>
                <path d="M 328,80 L 376,80" fill="none" stroke="black"/>
                <path d="M 208,128 L 344,128" fill="none" stroke="black"/>
                <path d="M 208,160 L 344,160" fill="none" stroke="black"/>
                <path d="M 8,176 L 184,176" fill="none" stroke="black"/>
                <path d="M 8,208 L 184,208" fill="none" stroke="black"/>
                <path d="M 208,256 L 344,256" fill="none" stroke="black"/>
                <path d="M 208,288 L 344,288" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="352,256 340,250.4 340,261.6" fill="black" transform="rotate(0,344,256)"/>
                <polygon class="arrowhead" points="352,128 340,122.4 340,133.6" fill="black" transform="rotate(0,344,128)"/>
                <polygon class="arrowhead" points="216,288 204,282.4 204,293.6" fill="black" transform="rotate(180,208,288)"/>
                <polygon class="arrowhead" points="216,160 204,154.4 204,165.6" fill="black" transform="rotate(180,208,160)"/>
                <g class="text">
                  <text x="196" y="52">Crypto</text>
                  <text x="352" y="52">HSM</text>
                  <text x="200" y="68">Library</text>
                  <text x="264" y="116">getEvidence()</text>
                  <text x="32" y="196">CSR</text>
                  <text x="56" y="196">=</text>
                  <text x="120" y="196">assembleCSR()</text>
                  <text x="192" y="196">-</text>
                  <text x="248" y="244">sign(CSR)</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![CDATA[
                   +---------+          +-----+
                   | Crypto  |          | HSM |
                   | Library |          |     |
                   +---------+          +-----+
                        |                  |
                        | getEvidence()    |
                        |----------------->|
                        |                  |
                        |<-----------------|
+---------------------+ |                  |
| CSR = assembleCSR() |-|                  |
+---------------------+ |                  |
                        |                  |
                        | sign(CSR)        |
                        |----------------->|
                        |                  |
                        |<-----------------|
                        |                  |
]]></artwork>
          </artset>
        </figure>
      </section>
      <section anchor="encoding-strategy">
        <name>Encoding Strategy</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 or more
EvidenceBundle structures. Each EvidenceBundle contains one or more
EvidenceStatement structures as well as one or more
CertificateChoices which enable to carry various format of
certificates.</t>
        <figure anchor="fig-info-model">
          <name>Information Model for CSR Evidence Conveyance.</name>
          <artset>
            <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="352" width="488" viewBox="0 0 488 352" 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,96 L 80,240" fill="none" stroke="black"/>
                <path d="M 160,144 L 160,240" 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 272,128 L 272,208" fill="none" stroke="black"/>
                <path d="M 272,240 L 272,320" fill="none" stroke="black"/>
                <path d="M 432,240 L 432,320" fill="none" stroke="black"/>
                <path d="M 480,128 L 480,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 272,128 L 480,128" fill="none" stroke="black"/>
                <path d="M 160,144 L 272,144" fill="none" stroke="black"/>
                <path d="M 272,160 L 480,160" fill="none" stroke="black"/>
                <path d="M 272,208 L 480,208" fill="none" stroke="black"/>
                <path d="M 8,240 L 176,240" fill="none" stroke="black"/>
                <path d="M 272,240 L 432,240" fill="none" stroke="black"/>
                <path d="M 176,256 L 272,256" fill="none" stroke="black"/>
                <path d="M 8,272 L 176,272" fill="none" stroke="black"/>
                <path d="M 272,272 L 432,272" fill="none" stroke="black"/>
                <path d="M 272,320 L 432,320" fill="none" stroke="black"/>
                <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="180" y="132">(1</text>
                  <text x="204" y="132">or</text>
                  <text x="240" y="132">more)</text>
                  <text x="356" y="148">CertificateChoices</text>
                  <text x="328" y="180">Certificate</text>
                  <text x="388" y="180">OR</text>
                  <text x="372" y="196">OtherCertificateFormat</text>
                  <text x="28" y="212">(1</text>
                  <text x="52" y="212">or</text>
                  <text x="48" y="228">more)</text>
                  <text x="220" y="228">(1</text>
                  <text x="244" y="228">or</text>
                  <text x="240" y="244">more)</text>
                  <text x="84" y="260">EvidenceBundle</text>
                  <text x="352" y="260">EvidenceStatement</text>
                  <text x="300" y="292">Type</text>
                  <text x="320" y="308">Statement</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![CDATA[
 +-------------------+
 | PKCS#10 Attribute |
 |       or          |
 | CRMF Extension    |
 +--------+----------+
          |
          |           (1 or more) +-------------------------+
          |         +-------------+ CertificateChoices      |
          |         |             +-------------------------+
          |         |             | Certificate OR          |
          |         |             | OtherCertificateFormat  |
   (1 or  |         |             +-------------------------+
    more) |         |      (1 or
 +--------+---------+-+     more) +-------------------+
 |  EvidenceBundle    +-----------+ EvidenceStatement |
 +--------------------+           +-------------------+
                                  | Type              |
                                  | Statement         |
                                  +-------------------+
]]></artwork>
          </artset>
        </figure>
        <t>The following use cases are supported, as described in the sub-sections below.
A conformant implementation of an entity parsing the CSR structures <bcp14>MUST</bcp14> be prepared
to parse certificates in all EvidenceBundle to build a certification path.</t>
        <section anchor="case-1-single-evidence-bundle">
          <name>Case 1 - Single Evidence Bundle</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 is needed.
As a result, a single 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: Single Evidence Bundle.</name>
            <artset>
              <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="128" width="184" viewBox="0 0 184 128" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                  <path d="M 8,32 L 8,96" fill="none" stroke="black"/>
                  <path d="M 176,32 L 176,96" fill="none" stroke="black"/>
                  <path d="M 8,32 L 176,32" fill="none" stroke="black"/>
                  <path d="M 8,64 L 176,64" fill="none" stroke="black"/>
                  <path d="M 8,96 L 176,96" fill="none" stroke="black"/>
                  <g class="text">
                    <text x="84" y="52">EvidenceBundle</text>
                    <text x="88" y="84">EvidenceStatement</text>
                  </g>
                </svg>
              </artwork>
              <artwork type="ascii-art"><![CDATA[
  +--------------------+
  |  EvidenceBundle    |
  +--------------------+
  | EvidenceStatement  |
  +--------------------+
]]></artwork>
            </artset>
          </figure>
        </section>
        <section anchor="case-2-single-evidence-bundle-with-certificate-chain">
          <name>Case 2 - Single Evidence Bundle with Certificate Chain</name>
          <t>A single Attester, which shares Evidence together with a certificate chain.
The CSR conveys a single EvidenceBundle with a single EvidenceStatement
and a single CertificateChoices structure. <xref target="fig-single-attester-with-path"/>
shows this use case.</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,64 L 216,64" fill="none" stroke="black"/>
                  <path d="M 8,112 L 216,112" fill="none" stroke="black"/>
                  <g class="text">
                    <text x="84" y="52">EvidenceBundle</text>
                    <text x="88" y="84">EvidenceStatement</text>
                    <text x="92" y="100">CertificateChoices</text>
                  </g>
                </svg>
              </artwork>
              <artwork type="ascii-art"><![CDATA[
 +-------------------------+
 |  EvidenceBundle         |
 +-------------------------+
 | EvidenceStatement       |
 | CertificateChoices      |
 +-------------------------+
]]></artwork>
            </artset>
          </figure>
        </section>
        <section anchor="case-3-multiple-evidence-bundles-each-with-complete-certificate-chains">
          <name>Case 3 - Multiple Evidence Bundles each with 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 EvidenceBundle structures, each carrying
an EvidenceStatement and the corresponding CertificateAlternative structure with the
certification chain as provided by each Attester, are included in the CSR.
This may result in certificates being duplicated across multiple EvidenceBundles.
This approach does not require any processing capabilities
by a Lead Attester since the information is merely forwarded. <xref target="fig-multiple-attesters"/>
shows this use case.</t>
          <figure anchor="fig-multiple-attesters">
            <name>Case 3: Multiple Evidence Bundles each with Complete Certificate Chains.</name>
            <artset>
              <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="224" width="336" viewBox="0 0 336 224" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                  <path d="M 8,32 L 8,192" fill="none" stroke="black"/>
                  <path d="M 216,32 L 216,192" fill="none" stroke="black"/>
                  <path d="M 8,32 L 216,32" fill="none" stroke="black"/>
                  <path d="M 8,64 L 216,64" fill="none" stroke="black"/>
                  <path d="M 8,112 L 216,112" fill="none" stroke="black"/>
                  <path d="M 8,144 L 216,144" fill="none" stroke="black"/>
                  <path d="M 8,192 L 216,192" fill="none" stroke="black"/>
                  <path d="M 216,112 L 236,152" fill="none" stroke="black"/>
                  <path d="M 216,32 L 236,72" fill="none" stroke="black"/>
                  <path d="M 216,112 L 236,72" fill="none" stroke="black"/>
                  <path d="M 216,192 L 236,152" fill="none" stroke="black"/>
                  <g class="text">
                    <text x="84" y="52">EvidenceBundle</text>
                    <text x="160" y="52">(1)</text>
                    <text x="276" y="68">Provided</text>
                    <text x="324" y="68">by</text>
                    <text x="88" y="84">EvidenceStatement</text>
                    <text x="276" y="84">Attester</text>
                    <text x="320" y="84">1</text>
                    <text x="92" y="100">CertificateChoices</text>
                    <text x="84" y="132">EvidenceBundle</text>
                    <text x="160" y="132">(2)</text>
                    <text x="276" y="148">Provided</text>
                    <text x="324" y="148">by</text>
                    <text x="88" y="164">EvidenceStatement</text>
                    <text x="276" y="164">Attester</text>
                    <text x="320" y="164">2</text>
                    <text x="92" y="180">CertificateChoices</text>
                  </g>
                </svg>
              </artwork>
              <artwork type="ascii-art"><![CDATA[
  +-------------------------+
  |  EvidenceBundle (1)     |\
  +-------------------------+ \ Provided by
  | EvidenceStatement       | / Attester 1
  | CertificateChoices      |/
  +-------------------------+
  |  EvidenceBundle (2)     |\
  +-------------------------+ \ Provided by
  | EvidenceStatement       | / Attester 2
  | CertificateChoices      |/
  +-------------------------+
]]></artwork>
            </artset>
          </figure>
        </section>
        <section anchor="case-4-multiple-evidence-bundles-with-certificate-transmission-optimization">
          <name>Case 4 - Multiple Evidence Bundles with Certificate Transmission Optimization</name>
          <t>In the last use case, a Composite Device with additional processing
capabilities of the Lead Attester parses the certificate chain provided by
all Attesters in the device and removes duplicate certificates. The
benefit of this approach is the reduced transmission payload size. There are several
implementation strategies and we show two in the sub-sections below.</t>
          <t>Note: This specification does not mandate optimizing the transmission of the
certificate chain since there is a trade-off between the Attester implementation
complexity and the transmission overhead.</t>
          <section anchor="first-implementation-option">
            <name>First Implementation Option</name>
            <t>In our first implementation option each Attester is provisioned with
a unique end-entity certificate. Hence, the certificate chain at least differs
with respect to the end-entity certificates.</t>
            <t>The Lead Attester therefore creates multiple EvidenceBundle structures, where each
carries an EvidenceStatement followed by a certificate chain in
the CertificateAlternative structures containing most likely only the end-entity
certificate. The shared certification path is carried in the first entry of the
EvidenceBundle sequence to allow path validation to take place immediately after
processing the first structure.</t>
            <t>This implementation strategy may
place extra burden on the Relying Party to parse EvidenceBundles and
reconstruct the certification path if the Verifier requires each
EvidenceStatement to be accompanied with a complete certification path.</t>
            <artset>
              <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="256" width="456" viewBox="0 0 456 256" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                  <path d="M 128,32 L 128,112" fill="none" stroke="black"/>
                  <path d="M 128,144 L 128,224" fill="none" stroke="black"/>
                  <path d="M 336,32 L 336,112" fill="none" stroke="black"/>
                  <path d="M 336,144 L 336,224" fill="none" stroke="black"/>
                  <path d="M 128,32 L 336,32" fill="none" stroke="black"/>
                  <path d="M 128,64 L 336,64" fill="none" stroke="black"/>
                  <path d="M 96,96 L 120,96" fill="none" stroke="black"/>
                  <path d="M 128,112 L 336,112" fill="none" stroke="black"/>
                  <path d="M 128,144 L 336,144" fill="none" stroke="black"/>
                  <path d="M 128,176 L 336,176" fill="none" stroke="black"/>
                  <path d="M 96,208 L 120,208" fill="none" stroke="black"/>
                  <path d="M 128,224 L 336,224" fill="none" stroke="black"/>
                  <path d="M 336,144 L 356,184" fill="none" stroke="black"/>
                  <path d="M 336,32 L 356,72" fill="none" stroke="black"/>
                  <path d="M 336,112 L 356,72" fill="none" stroke="black"/>
                  <path d="M 336,224 L 356,184" fill="none" stroke="black"/>
                  <polygon class="arrowhead" points="128,208 116,202.4 116,213.6" fill="black" transform="rotate(0,120,208)"/>
                  <polygon class="arrowhead" points="128,96 116,90.4 116,101.6" fill="black" transform="rotate(0,120,96)"/>
                  <g class="text">
                    <text x="204" y="52">EvidenceBundle</text>
                    <text x="280" y="52">(1)</text>
                    <text x="48" y="68">Certificate</text>
                    <text x="396" y="68">Provided</text>
                    <text x="444" y="68">by</text>
                    <text x="24" y="84">Chain</text>
                    <text x="56" y="84">+</text>
                    <text x="208" y="84">EvidenceStatement</text>
                    <text x="396" y="84">Attester</text>
                    <text x="440" y="84">1</text>
                    <text x="44" y="100">End-Entity</text>
                    <text x="212" y="100">CertificateChoices</text>
                    <text x="48" y="116">Certificate</text>
                    <text x="212" y="132">....</text>
                    <text x="204" y="164">EvidenceBundle</text>
                    <text x="280" y="164">(n)</text>
                    <text x="396" y="180">Provided</text>
                    <text x="444" y="180">by</text>
                    <text x="44" y="196">End-Entity</text>
                    <text x="208" y="196">EvidenceStatement</text>
                    <text x="396" y="196">Attester</text>
                    <text x="440" y="196">n</text>
                    <text x="48" y="212">Certificate</text>
                    <text x="212" y="212">CertificateChoices</text>
                  </g>
                </svg>
              </artwork>
              <artwork type="ascii-art"><![CDATA[
                 +-------------------------+
                 |  EvidenceBundle (1)     |\
  Certificate    +-------------------------+ \ Provided by
  Chain +        | EvidenceStatement       | / Attester 1
  End-Entity --->| CertificateChoices      |/
  Certificate    +-------------------------+
                          ....
                 +-------------------------+
                 |  EvidenceBundle (n)     |\
                 +-------------------------+ \ Provided by
  End-Entity     | EvidenceStatement       | / Attester n
  Certificate--->| CertificateChoices      |/
                 +-------------------------+
]]></artwork>
            </artset>
          </section>
        </section>
        <section anchor="second-implementation-option">
          <name>Second Implementation Option</name>
          <t>Our second implementation option requires the Lead Attester
to merge all certificate chains into a single EvidenceBundle containing a single
de-duplicated sequence of CertificateChoices structures. This means that each
EvidenceBundle is self-contained and any EvidenceStatement can be verified using
only the sequence of CertificateChoices in its bundle, but Verifiers will have
to do proper certification path building since the sequence of CertificateChoices
is now a cert bag and not a certificate chain.</t>
          <artwork><![CDATA[
 +------------------------------+
 |  EvidenceBundle              |
 +------------------------------+
 | EvidenceStatement (1)        |
 |        ...                   |
 | EvidenceStatement (n)        |
 | CertificateChoices {         |
 |   End Entity Certificate (1) |
 |        ...                   |
 |   End Entity Certificate (n) |
 |   <Remainder of the          |
 |    Certificate Chain>        |
 | }                            |
 +------------------------------+
]]></artwork>
          <t>This implementation strategy may place extra burden on the Attester in order to allow
the Relying Party to treat the Evidence and Certificates as opaque content. It also may place
extra burden on the Verifier since this implementation strategy requires it to be able to
perform X.509 certification path building over a bag of certificates that may be out of
order or contain extraneous certificates.</t>
        </section>
      </section>
    </section>
    <section anchor="asn1-elements">
      <name>ASN.1 Elements</name>
      <section anchor="object-identifiers">
        <name>Object Identifiers</name>
        <t>This document references <tt>id-pkix</tt> and <tt>id-aa</tt>, both defined in <xref target="RFC5911"/> and <xref target="RFC5912"/>.</t>
        <t>This document defines the arc depicted in <xref target="code-ata-arc"/></t>
        <figure anchor="code-ata-arc">
          <name>New OID Arc for PKIX Evidence Statement Formats</name>
          <artwork><![CDATA[
-- Arc for Evidence types
id-ata OBJECT IDENTIFIER ::= { id-pkix (TBD1) }
]]></artwork>
        </figure>
      </section>
      <section anchor="sec-evidenceAttr">
        <name>Evidence Attribute and Extension</name>
        <t>By definition, attributes within a PKCS#10 CSR are
typed as ATTRIBUTE and within a CRMF CSR are typed as EXTENSION.
This attribute definition contains one or more
Evidence bundles of type <tt>EvidenceBundle</tt> where each contain
one or more Evidence statements of a type <tt>EvidenceStatement</tt> along with
an optional certification path.
This structure allows for grouping Evidence statements that share a
certification path.</t>
        <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 are used to construct
or parse EvidenceStatements. Evidence Statement formats 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[
EvidenceStatements ::= SEQUENCE SIZE (1..MAX) OF EvidenceStatement

EvidenceStatement ::= SEQUENCE {
   type   EVIDENCE-STATEMENT.&id({EvidenceStatementSet}),
   stmt   EVIDENCE-STATEMENT.&Type({EvidenceStatementSet}{@type}),
   hint   UTF8String OPTIONAL
}
]]></artwork>
        </figure>
        <t>In <xref target="code-EvidenceStatement"/>, type is an OID that indicates the format of the value of stmt.</t>
        <t>The Attester <bcp14>MAY</bcp14> populate the hint with the name of a Verifier software package
which will be capable of parsing the data contained in <tt>EvidenceStatement.stmt</tt>;
this is to help the Relying Party select the correct Verifier without requiring
the Relying Party to perform any parsing of the data in <tt>EvidenceStatement.stmt</tt>.
The type OID, which identifies the format of the data found in the Evidence statement,
typically suffices for a Relying Party to select the correct
Verifier (software) to invoke. However, in some cases the Relying Party
may have more than one Verifier capable of parsing a given type OID -- for
example if the OID indicates a wrapper format such as DICE
ConceptualMessageWrapper that can contain further proprietary data.
A design goal of this specification is to enable Relying Parties to
select an appropriate Verifier (software) without the need to perform any
parsing of the <tt>EvidenceStatement.stmt</tt> data.
To help with this, the Attester <bcp14>MAY</bcp14> populate the hint with a name of a
software package that will be capable of parsing this data.
The hint <bcp14>SHOULD</bcp14> contain a value that is unique
to this Verifier, for example,  a fully qualified domain name (FQDN), a uniform
resource name (URN) <xref target="RFC8141"/>, or a registered value corresponding to this
Evidence format.
In a typical usage scenario, the RP is pre-configured with a list of trusted
Verifiers and the corresponding hint values can be used to look up appropriate Verifier.
Tricking an RP into interacting with an unknown and untrusted Verifier has to be avoided
as the retrieved Attestation Result must be reliable.</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 indicates the Verifier software
"tpmverifier.example.com" can be invoked for parsing it.</t>
        <artwork><![CDATA[
EvidenceBundles ::= SEQUENCE SIZE (1..MAX) OF EvidenceBundle

EvidenceBundle ::= SEQUENCE {
   evidence EvidenceStatements,
   certs SEQUENCE SIZE (1..MAX) OF CertificateChoices OPTIONAL
      -- CertificateChoices MUST only contain certificate or other
}
]]></artwork>
        <t>The CertificateChoices structure defined in <xref target="RFC6268"/> allows for carrying certificates in the default X.509 [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>
        <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 EvidenceBundles
  COUNTS MAX 1
  IDENTIFIED BY id-aa-evidence
}

-- For CRMF
ext-evidence EXTENSION ::= {
  SYNTAX EvidenceBundles
  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>The <tt>certs</tt> field contains a set of certificates that
is intended to validate the contents of an Evidence statement
contained in <tt>evidence</tt>, if required. The set of certificates should contain
the certificate that contains the public key needed to directly validate the
<tt>evidence</tt>. Additional certificates may be provided, for example, to chain the
Evidence signer key  back to an agreed upon trust anchor. No order is implied, it is
up to the Attester and its Verifier to agree on both the order and format
of certificates contained in <tt>certs</tt>.</t>
        <t>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>
        <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>s 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, and <bcp14>SHOULD NOT</bcp14> place multiple copies of <tt>EvidenceBundles</tt> into an <tt>AttributeSet</tt>. In a CRMF CSR, implementers <bcp14>SHOULD NOT</bcp14> place multiple copies of <tt>ext-evidence</tt> and <bcp14>SHOULD NOT</bcp14> place multiple copies of <tt>EvidenceBundles</tt> into an <tt>ExtensionSet</tt>.</t>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>IANA is requested to open two new registries, allocate a value
from the "SMI Security for PKIX Module Identifier" registry for the
included ASN.1 module, and allocate values from "SMI Security for
S/MIME Attributes" to identify two attributes defined within.</t>
      <section anchor="module-registration-smi-security-for-pkix-module-identifier">
        <name>Module Registration - SMI Security for PKIX Module Identifier</name>
        <ul spacing="normal">
          <li>
            <t>Decimal: IANA Assigned - <strong>Replace TBDMOD</strong></t>
          </li>
          <li>
            <t>Description: CSR-ATTESTATION-2023 - id-mod-pkix-attest-01</t>
          </li>
          <li>
            <t>References: This Document</t>
          </li>
        </ul>
      </section>
      <section anchor="object-identifier-registrations-smi-security-for-smime-attributes">
        <name>Object Identifier Registrations - SMI Security for S/MIME Attributes</name>
        <ul spacing="normal">
          <li>
            <t>Evidence Statement
            </t>
            <ul spacing="normal">
              <li>
                <t>Decimal: IANA Assigned - 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>
            </ul>
          </li>
        </ul>
      </section>
      <section anchor="smi-security-for-pkix-evidence-statement-formats-registry">
        <name>"SMI Security for PKIX Evidence Statement Formats" Registry</name>
        <t>IANA is asked to create a registry for Evidence Statement Formats within
the SMI-numbers registry, allocating an assignment from id-pkix ("SMI
Security for PKIX" Registry) for the purpose.</t>
        <ul spacing="normal">
          <li>
            <t>Decimal: IANA Assigned - <strong>replace TBD1</strong></t>
          </li>
          <li>
            <t>Description: id-ata</t>
          </li>
          <li>
            <t>References: This document</t>
          </li>
          <li>
            <t>Initial contents: None</t>
          </li>
          <li>
            <t>Registration Regime: Specification Required.
Document must specify an EVIDENCE-STATEMENT definition to which this
Object Identifier shall be bound.</t>
          </li>
        </ul>
        <t>Columns:</t>
        <ul spacing="normal">
          <li>
            <t>Decimal: The subcomponent under id-ata</t>
          </li>
          <li>
            <t>Description: Begins with id-ata</t>
          </li>
          <li>
            <t>References: RFC or other document</t>
          </li>
        </ul>
      </section>
      <section anchor="attestation-evidence-oid-registry">
        <name>Attestation Evidence OID Registry</name>
        <t>IANA is asked to create a registry that helps developers to find
OID/Evidence mappings.</t>
        <t>Registration requests are evaluated using the criteria described in
the registration template below after a three-week review period on
the [[TBD]] mailing list, with the advice of one or more Designated
Experts <xref target="RFC8126"/>.  However, to allow for the allocation of values
prior to publication, the Designated Experts may approve registration
once they are satisfied that such a specification will be published.</t>
        <t>Registration requests sent to the mailing list for review should use
an appropriate subject (e.g., "Request to register attestation
evidence: example").</t>
        <t>IANA must only accept registry updates from the Designated Experts
and should direct all requests for registration to the review mailing
list.</t>
        <section anchor="registration-template">
          <name>Registration Template</name>
          <t>The registry has the following columns:</t>
          <ul spacing="normal">
            <li>
              <t>OID: The OID number, which has already been allocated. IANA does
not allocate OID numbers for use with this registry.</t>
            </li>
            <li>
              <t>Description: Brief description of the use of the Evidence and the
registration of the OID.</t>
            </li>
            <li>
              <t>Reference(s): Reference to the document or documents that register
the OID for use with a specific attestation technology, preferably
including URIs that can be used to retrieve copies of the documents.
An indication of the relevant sections may also be included but is not
required.</t>
            </li>
            <li>
              <t>Change Controller: For Standards Track RFCs, list the "IESG".  For
others, give the name of the responsible party. In most cases the
third party requesting registration in this registry will also be the
party that registered the OID.</t>
            </li>
          </ul>
        </section>
        <section anchor="initial-registry-contents">
          <name>Initial Registry Contents</name>
          <t>The initial registry contents is shown in the table below.
It lists entries for several evidence encoding including an entry for the Conceptual Message Wrapper (CMW) <xref target="I-D.ietf-rats-msg-wrap"/>.</t>
          <table anchor="tab-ae-reg">
            <name>Initial Contents of the Attestation Evidence OID Registry</name>
            <thead>
              <tr>
                <th align="left">OID</th>
                <th align="left">Description</th>
                <th align="left">Reference(s)</th>
                <th align="left">Change Controller</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">2 23 133 5 4 1</td>
                <td align="left">DiceTcbInfo</td>
                <td align="left">
                  <xref target="TCGDICE1.1"/></td>
                <td align="left">TCG</td>
              </tr>
              <tr>
                <td align="left">2 23 133 5 4 5</td>
                <td align="left">DiceMultiTcbInfo</td>
                <td align="left">
                  <xref target="TCGDICE1.1"/></td>
                <td align="left">TCG</td>
              </tr>
              <tr>
                <td align="left">2 23 133 5 4 6</td>
                <td align="left">DiceUccsEvidence</td>
                <td align="left">
                  <xref target="TCGDICE1.1"/></td>
                <td align="left">TCG</td>
              </tr>
              <tr>
                <td align="left">2 23 133 5 4 7</td>
                <td align="left">DiceManifestEvidence</td>
                <td align="left">
                  <xref target="TCGDICE1.1"/></td>
                <td align="left">TCG</td>
              </tr>
              <tr>
                <td align="left">2 23 133 5 4 8</td>
                <td align="left">DiceTcbInfoComp</td>
                <td align="left">
                  <xref target="TCGDICE1.1"/></td>
                <td align="left">TCG</td>
              </tr>
              <tr>
                <td align="left">2 23 133 5 4 9</td>
                <td align="left">DiceConceptualMessageWrapper</td>
                <td align="left">
                  <xref target="TCGDICE1.1"/></td>
                <td align="left">TCG</td>
              </tr>
              <tr>
                <td align="left">2 23 133 20 1</td>
                <td align="left">tcg-attest-tpm-certify</td>
                <td align="left">Private Registry</td>
                <td align="left">TCG</td>
              </tr>
            </tbody>
          </table>
          <t>The current registry values can be retrieved from the IANA online website.</t>
        </section>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>A PKCS#10 or CRMF Certification Request message typically consists of a
distinguished name, a public key, and optionally a set of attributes,
collectively signed by the entity requesting certification.
In general usage, the private key used to sign the CSR <bcp14>MUST</bcp14> be different from the
Attesting Key utilized to sign Evidence about the Target
Environment, though exceptions <bcp14>MAY</bcp14> be made where CSRs and Evidence are involved in
bootstrapping the Attesting Key.
To demonstrate that the private
key applied to sign the CSR is generated, and stored in a secure
environment that has controls to prevent theft or misuse (including
being non-exportable / non-recoverable), the Attesting Environment
has to collect claims about this secure environment (or Target
Environment, as shown in <xref target="fig-attester"/>).</t>
      <t><xref target="fig-attester"/> shows the interaction inside an Attester. The
Attesting Environment, which is provisioned with an Attestation Key,
retrieves claims about the Target Environment. The Target
Environment offers key generation, storage and usage, which it
makes available to services. The Attesting Environment collects
these claims about the Target Environment and signs them and
exports Evidence for use in remote attestation via a CSR.</t>
      <figure anchor="fig-attester">
        <name>Interaction between Attesting and Target Environment</name>
        <artset>
          <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="576" width="328" viewBox="0 0 328 576" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 8,240 L 8,544" fill="none" stroke="black"/>
              <path d="M 40,80 L 40,144" fill="none" stroke="black"/>
              <path d="M 48,288 L 48,352" fill="none" stroke="black"/>
              <path d="M 96,152 L 96,280" fill="none" stroke="black"/>
              <path d="M 120,152 L 120,280" fill="none" stroke="black"/>
              <path d="M 120,448 L 120,512" fill="none" stroke="black"/>
              <path d="M 152,32 L 152,80" fill="none" stroke="black"/>
              <path d="M 168,352 L 168,440" fill="none" stroke="black"/>
              <path d="M 200,152 L 200,280" fill="none" stroke="black"/>
              <path d="M 232,448 L 232,512" fill="none" stroke="black"/>
              <path d="M 240,280 L 240,352" fill="none" stroke="black"/>
              <path d="M 264,80 L 264,144" fill="none" stroke="black"/>
              <path d="M 304,240 L 304,472" fill="none" stroke="black"/>
              <path d="M 304,488 L 304,544" fill="none" stroke="black"/>
              <path d="M 320,112 L 320,480" fill="none" stroke="black"/>
              <path d="M 40,80 L 264,80" fill="none" stroke="black"/>
              <path d="M 272,112 L 320,112" fill="none" stroke="black"/>
              <path d="M 40,144 L 264,144" fill="none" stroke="black"/>
              <path d="M 8,240 L 88,240" fill="none" stroke="black"/>
              <path d="M 128,240 L 192,240" fill="none" stroke="black"/>
              <path d="M 208,240 L 304,240" fill="none" stroke="black"/>
              <path d="M 48,288 L 240,288" fill="none" stroke="black"/>
              <path d="M 48,352 L 240,352" fill="none" stroke="black"/>
              <path d="M 120,448 L 232,448" fill="none" stroke="black"/>
              <path d="M 72,480 L 112,480" fill="none" stroke="black"/>
              <path d="M 232,480 L 320,480" fill="none" stroke="black"/>
              <path d="M 120,512 L 232,512" fill="none" stroke="black"/>
              <path d="M 8,544 L 304,544" fill="none" stroke="black"/>
              <polygon class="arrowhead" points="280,112 268,106.4 268,117.6" fill="black" transform="rotate(180,272,112)"/>
              <polygon class="arrowhead" points="208,280 196,274.4 196,285.6" fill="black" transform="rotate(90,200,280)"/>
              <polygon class="arrowhead" points="208,152 196,146.4 196,157.6" fill="black" transform="rotate(270,200,152)"/>
              <polygon class="arrowhead" points="176,440 164,434.4 164,445.6" fill="black" transform="rotate(90,168,440)"/>
              <polygon class="arrowhead" points="160,32 148,26.4 148,37.6" fill="black" transform="rotate(270,152,32)"/>
              <polygon class="arrowhead" points="128,152 116,146.4 116,157.6" fill="black" transform="rotate(270,120,152)"/>
              <polygon class="arrowhead" points="120,480 108,474.4 108,485.6" fill="black" transform="rotate(0,112,480)"/>
              <polygon class="arrowhead" points="104,280 92,274.4 92,285.6" fill="black" transform="rotate(90,96,280)"/>
              <g class="text">
                <text x="168" y="52">CSR</text>
                <text x="204" y="52">with</text>
                <text x="188" y="68">Evidence</text>
                <text x="112" y="116">CSR</text>
                <text x="160" y="116">Library</text>
                <text x="32" y="180">Private</text>
                <text x="156" y="180">Public</text>
                <text x="248" y="180">Signature</text>
                <text x="16" y="196">Key</text>
                <text x="144" y="196">Key</text>
                <text x="248" y="196">Operation</text>
                <text x="44" y="212">Generation</text>
                <text x="156" y="212">Export</text>
                <text x="108" y="244">--</text>
                <text x="268" y="260">Attester</text>
                <text x="256" y="276">(HSM)</text>
                <text x="84" y="308">Target</text>
                <text x="160" y="308">Environment</text>
                <text x="80" y="324">(with</text>
                <text x="120" y="324">key</text>
                <text x="184" y="324">generation,</text>
                <text x="88" y="340">storage</text>
                <text x="136" y="340">and</text>
                <text x="180" y="340">usage)</text>
                <text x="128" y="388">Collect</text>
                <text x="132" y="404">Claims</text>
                <text x="56" y="468">Attestation</text>
                <text x="168" y="468">Attesting</text>
                <text x="48" y="484">Key</text>
                <text x="176" y="484">Environment</text>
                <text x="172" y="500">(Firmware)</text>
                <text x="268" y="500">Evidence</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art"><![CDATA[
                   ^
                   |CSR with
                   |Evidence
     .-------------+-------------.
     |                           |
     |       CSR Library         |<-----+
     |                           |      |
     '---------------------------'      |
            |  ^         ^              |
 Private    |  | Public  | Signature    |
 Key        |  | Key     | Operation    |
 Generation |  | Export  |              |
            |  |         |              |
 .----------|--|---------|------------. |
 |          |  |         |    Attester| |
 |          v  |         v    (HSM)   | |
 |    .-----------------------.       | |
 |    | Target Environment    |       | |
 |    | (with key generation, |       | |
 |    | storage and usage)    |       | |
 |    '--------------+--------'       | |
 |                   |                | |
 |           Collect |                | |
 |            Claims |                | |
 |                   |                | |
 |                   v                | |
 |             .-------------.        | |
 |Attestation  | Attesting   |        | |
 |   Key ----->| Environment +----------+
 |             | (Firmware)  |Evidence|
 |             '-------------'        |
 |                                    |
 '------------------------------------'
]]></artwork>
        </artset>
      </figure>
      <t><xref target="fig-attester"/> places the CSR library outside the Attester, which
is a valid architecture for certificate enrollment.
The CSR library may also be located
inside the trusted computing base. Regardless of the placement
of the CSR library, an Attesting Environment <bcp14>MUST</bcp14> be able to collect
claims about the Target Environment such that statements about
the storage of the keying material can be made.
For the Verifier, the provided Evidence must allow
an assessment to be made whether the key used to sign the CSR
is stored in a secure location and cannot be exported.</t>
      <t>Evidence communicated in the attributes and structures defined
in this document are meant to be used in a CSR. It is up to
the Verifier and to the Relying Party (RA/CA) to place as much or
as little trust in this information as dictated by policies.</t>
      <t>This document defines the transport of Evidence of different formats
in a CSR. Some of these encoding formats are based on standards
while others are proprietary formats. A Verifier will need to understand
these formats for matching the received claim values against policies.</t>
      <t>Policies drive the processing of Evidence at the Verifier: the Verifier's
Appraisal Policy for Evidence will often be based on specifications by the manufacturer
of a hardware security module, a regulatory agency, or specified by an
oversight body, such as the CA Browser Forum. The Code-Signing Baseline
Requirements <xref target="CSBR"/> document
is an example of such a policy that has
been published by the CA Browser Forum and specifies certain properties,
such as non-exportability, which must be enabled for storing
publicly-trusted code-signing keys. Other
policies influence the decision making at the Relying Party when
evaluating the Attestation Result. The Relying Party is ultimately
responsible for making a decision of what information in the Attestation
Result it will accept. The presence of the attributes defined in this
specification provide the Relying Party with additional assurance about
an Attester. Policies used at the Verifier and the Relying Party are
implementation dependent and out of scope for this document. Whether to
require the use of Evidence in a CSR is out-of-scope for this document.</t>
      <section anchor="freshness">
        <name>Freshness</name>
        <t>Evidence generated by an Attester generally needs to be fresh to provide
value to the Verifier since the configuration on the device may change
over time. Section 10 of <xref target="RFC9334"/> discusses different approaches for
providing freshness, including a nonce-based approach, the use of timestamps
and an epoch-based technique.  The use of nonces requires that nonce to be provided by
the Relying Party in some protocol step prior to Evidence and CSR generation,
and the use of timestamps requires synchronized clocks which cannot be
guaranteed in all operating environments. Epochs also require an out-of-band
communication channel.
This document only specifies how to carry existing Evidence formats inside a CSR,
and so issues of synchronizing freshness data is left to be handled, for example,
via certificate management protocols.
Developers, operators, and designers of protocols, which embed
Evidence-carrying-CSRs, <bcp14>MUST</bcp14> consider what notion of freshness is
appropriate and available in-context; thus the issue of freshness is
left up to the discretion of protocol designers and implementers.</t>
        <t>In the case of Hardware Security Modules (HSM), the definition of "fresh" is somewhat ambiguous in the context
of CSRs, especially considering that non-automated certificate enrollments
are often asynchronous, and considering the common practice of re-using the
same CSR for multiple certificate renewals across the lifetime of a key.
"Freshness" typically implies both asserting that the data was generated
at a certain point-in-time, as well as providing non-replayability.
Certain use cases may have special properties impacting the freshness
requirements. For example, HSMs are typically designed to not allow downgrade
of private key storage properties; for example if a given key was asserted at
time T to have been generated inside the hardware boundary and to be
non-exportable, then it can be assumed that those properties of that key
will continue to hold into the future.</t>
      </section>
      <section anchor="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 free form <tt>hint</tt> field with which the Attester can provide information to the Relying Party about which Verifier to invoke to parse a given piece of Evidence.
Care should be taken when processing these data since at the time they are used, they are not yet verified. In fact, they are protected by the CSR signature but not by the signature from the Attester and so could be maliciously replaced in some cases.
The authors' intent is that the <tt>type</tt> OID and <tt>hint</tt> will allow an RP to select between Verifier with which it has pre-established trust relationships, such as Verifier libraries that have been compiled in to the RP application.
As an example, the <tt>hint</tt> may take the form of an FQDN to uniquely identify a Verifier implementation, but the RP <bcp14>MUST NOT</bcp14> blindly make network calls to unknown domain names and trust the results.
Implementers should also be cautious around <tt>type</tt> OID or <tt>hint</tt> values that cause a short-circuit in the verification logic, such as <tt>None</tt>, <tt>Null</tt>, <tt>Debug</tt>, empty CMW contents, or similar values that could cause the Evidence to appear to be valid when in fact it was not properly checked.</t>
      </section>
      <section 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 [4211], as well as general security concepts relating to evidence and remote attestation; many of these concepts are discussed in the Remote ATtestation prodedureS (RATS) Architecture <xref target="RFC9334"/> sections 6 Roles and Entities, 7 Trust Model, 9 Freshness, 11 Privacy Considerations, and 12 Security Considerations. Implementers should also be aware of any security considerations relating to the specific evidence format being carried within the CSR.</t>
      </section>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC9334">
          <front>
            <title>Remote ATtestation procedureS (RATS) Architecture</title>
            <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
            <author fullname="D. Thaler" initials="D." surname="Thaler"/>
            <author fullname="M. Richardson" initials="M." surname="Richardson"/>
            <author fullname="N. Smith" initials="N." surname="Smith"/>
            <author fullname="W. Pan" initials="W." surname="Pan"/>
            <date month="January" year="2023"/>
            <abstract>
              <t>In network protocol exchanges, it is often useful for one end of a communication to know whether the other end is in an intended operating state. This document provides an architectural overview of the entities involved that make such tests possible through the process of generating, conveying, and evaluating evidentiary Claims. It provides a model that is neutral toward processor architectures, the content of Claims, and protocols.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9334"/>
          <seriesInfo name="DOI" value="10.17487/RFC9334"/>
        </reference>
        <reference anchor="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="ASN1-2002">
          <front>
            <title>ITU-T Recommendation X.680, X.681, X.682, and X.683</title>
            <author>
              <organization>ITU-T</organization>
            </author>
            <date year="2002"/>
          </front>
        </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">
         </author>
            <date day="1" month="July" year="2024"/>
            <abstract>
              <t>   This document defines the RATS conceptual message wrapper (CMW)
   format, a type of encapsulation format that can be used for any RATS
   messages, such as Evidence, Attestation Results, Endorsements, and
   Reference Values.  Additionally, the document describes a collection
   type that enables the aggregation of one or more CMWs into a single
   message.

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

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

Discussion Venues

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

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

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

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-bft-rats-kat-03"/>
        </reference>
        <reference anchor="RFC7030">
          <front>
            <title>Enrollment over Secure Transport</title>
            <author fullname="M. Pritikin" initials="M." role="editor" surname="Pritikin"/>
            <author fullname="P. Yee" initials="P." role="editor" surname="Yee"/>
            <author fullname="D. Harkins" initials="D." role="editor" surname="Harkins"/>
            <date month="October" year="2013"/>
            <abstract>
              <t>This document profiles certificate enrollment for clients using Certificate Management over CMS (CMC) messages over a secure transport. This profile, called Enrollment over Secure Transport (EST), describes a simple, yet functional, certificate management protocol targeting Public Key Infrastructure (PKI) clients that need to acquire client certificates and associated Certification Authority (CA) certificates. It also supports client-generated public/private key pairs as well as key pairs generated by the CA.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7030"/>
          <seriesInfo name="DOI" value="10.17487/RFC7030"/>
        </reference>
        <reference anchor="RFC8141">
          <front>
            <title>Uniform Resource Names (URNs)</title>
            <author fullname="P. Saint-Andre" initials="P." surname="Saint-Andre"/>
            <author fullname="J. Klensin" initials="J." surname="Klensin"/>
            <date month="April" year="2017"/>
            <abstract>
              <t>A Uniform Resource Name (URN) is a Uniform Resource Identifier (URI) that is assigned under the "urn" URI scheme and a particular URN namespace, with the intent that the URN will be a persistent, location-independent resource identifier. With regard to URN syntax, this document defines the canonical syntax for URNs (in a way that is consistent with URI syntax), specifies methods for determining URN-equivalence, and discusses URI conformance. With regard to URN namespaces, this document specifies a method for defining a URN namespace and associating it with a namespace identifier, and it describes procedures for registering namespace identifiers with the Internet Assigned Numbers Authority (IANA). This document obsoletes both RFCs 2141 and 3406.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8141"/>
          <seriesInfo name="DOI" value="10.17487/RFC8141"/>
        </reference>
        <reference anchor="I-D.tschofenig-rats-psa-token">
          <front>
            <title>Arm's Platform Security Architecture (PSA) Attestation Token</title>
            <author fullname="Hannes Tschofenig" initials="H." surname="Tschofenig">
         </author>
            <author fullname="Simon Frost" initials="S." surname="Frost">
              <organization>Arm Limited</organization>
            </author>
            <author fullname="Mathias Brossard" initials="M." surname="Brossard">
              <organization>Arm Limited</organization>
            </author>
            <author fullname="Adrian L. Shaw" initials="A. L." surname="Shaw">
              <organization>HP Labs</organization>
            </author>
            <author fullname="Thomas Fossati" initials="T." surname="Fossati">
              <organization>Linaro</organization>
            </author>
            <date day="24" month="June" 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-23"/>
        </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="TCGDICE1.1" target="https://trustedcomputinggroup.org/wp-content/uploads/DICE-Attestation-Architecture-Version-1.1-Revision-18_pub.pdf">
          <front>
            <title>DICE Attestation Architecture</title>
            <author>
              <organization>Trusted Computing Group</organization>
            </author>
            <date year="2024" month="January"/>
          </front>
        </reference>
        <reference anchor="PKCS11" target="http://docs.oasis-open.org/pkcs11/pkcs11-base/v2.40/os/pkcs11-base-v2.40-os.html">
          <front>
            <title>PKCS #11 Cryptographic Token Interface Base Specification Version 2.40</title>
            <author>
              <organization>OASIS</organization>
            </author>
            <date year="2015" month="April"/>
          </front>
        </reference>
        <reference anchor="SampleData" target="https://github.com/lamps-wg/csr-attestation-examples">
          <front>
            <title>CSR Attestation Sample Data</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="I-D.ietf-rats-tpm-based-network-device-attest">
          <front>
            <title>TPM-based Network Device Remote Integrity Verification</title>
            <author fullname="Guy Fedorkow" initials="G." surname="Fedorkow">
              <organization>Juniper Networks, Inc.</organization>
            </author>
            <author fullname="Eric Voit" initials="E." surname="Voit">
              <organization>Cisco Systems</organization>
            </author>
            <author fullname="Jessica Fitzgerald-McKay" initials="J." surname="Fitzgerald-McKay">
              <organization>National Security Agency</organization>
            </author>
            <date day="22" month="March" year="2022"/>
            <abstract>
              <t>   This document describes a workflow for remote attestation of the
   integrity of firmware and software installed on network devices that
   contain Trusted Platform Modules [TPM1.2], [TPM2.0], as defined by
   the Trusted Computing Group (TCG)), or equivalent hardware
   implementations that include the protected capabilities, as provided
   by TPMs.

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

<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 used which is the TPM2_Certify and the TPM2_ReadPublic commands.</t>
        </section>
        <section anchor="tcg-oids">
          <name>TCG OIDs</name>
          <t>The OIDs in this section are defined by TCG
TCG has a registered arc of 2.23.133</t>
          <artwork><![CDATA[
tcg OBJECT IDENTIFIER ::= { 2 23 133 }

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

tcg-attest OBJECT IDENTIFIER ::= { 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 {
      EvidenceBundles {
        EvidenceBundle {
          EvidenceStatements {
            EvidenceStatement {
              type: tcg-attest-tpm-certify,
              stmt: <TcgAttestTpmCertify_data>
              hint: "tpmverifier.example.com"
            }
          },
          certs {
            akCertificate,
            caCertificate
          }
        }
      }
    }
  }
}
]]></artwork>
          <t>Note that this example demonstrates most of the features of this specification:</t>
          <ul spacing="normal">
            <li>
              <t>The data type is identified by the OID id-TcgCsrCertify contained in the <tt>EvidenceStatement.type</tt> field.</t>
            </li>
            <li>
              <t>The signed evidence is carried in the <tt>EvidenceStatement.stmt</tt> field.</t>
            </li>
            <li>
              <t>The <tt>EvidenceStatement.hint</tt> provides information to the Relying Party about which Verifier (software) will be able to correctly parse this data. Note that the <tt>type</tt> OID indicates the format of the data, but that may itself be a wrapper format that contains further data in a proprietary format. In this example, the hint says that software from the package <tt>"tpmverifier.example.com"</tt> will be able to parse this data.</t>
            </li>
            <li>
              <t>The evidence statement is accompanied by a certificate chain in the <tt>EvidenceBundle.certs</tt> field which can be used to verify the signature on the evidence statement. How the Verifier establishes trust in the provided certificates is outside the scope of this specification.</t>
            </li>
          </ul>
          <t>Features of this specification that are not demonstrated by this example are:</t>
          <ul spacing="normal">
            <li>
              <t>An EvidenceBundle containing multiple EvidenceStatements that share a certificate chain.</t>
            </li>
            <li>
              <t>Multiple EvidenceBundles that each have their own certificate chain.</t>
            </li>
          </ul>
          <artwork><![CDATA[
-----BEGIN CERTIFICATE REQUEST-----
MIINnjCCDIgCAQAwcjELMAkGA1UEBhMCQVUxDDAKBgNVBAgMA1FMRDERMA8GA1UE
BwwIQnJpc2JhbmUxGzAZBgNVBAoMEmlldGYtMTE5LWhhY2thdGhvbjEWMBQGA1UE
CwwNaWV0Zi1jc3ItdGVzdDENMAsGA1UEAwwEa2V5MTCCASIwDQYJKoZIhvcNAQEB
BQADggEPADCCAQoCggEBALHs46qywIKk3JpICeppzL7laofTNESwwzov2RNKHp3J
CmpnpvK9pn1RycQGxEnCK+hyFUjgezMo656zjPsMlNs2Cb2KLj7W2oP75x8cb/k8
aLbok+4qnnUd+6wvZKOvNuprj/AWeXuebsq6U5R0wFN0yHU1dEzzMpK3DhpDoq61
fRWDy2KSxlt3Vs9YtKYr54+u9DSLEYMmwx/gOEThXy1hQ3hMaJsgBZlCI2vI8NG2
rEGZdyuHyQJhjKVKwsY6MgUoslKpKhkEZIolPKbSDeRHtvrJOtjwSFo3zfuFm03Q
/m3xEPn//i0icKwPNm5hVsyS02ZU7FCQuytgJpVW2s8CAwEAAaCCCucwDwYJKoZI
hvcNAQkOMQIwADCCCtIGCyqGSIb3DQEJEAI7MYIKwTCCCr0wggq5MIIC2jCCAtYG
BWeBBRQBMIICsgSBkf9UQ0eAFwAiAAt4r6q4eL+MRkZVMf4zVfg3vCBxjkAv7lB8
ZnNxaHQNbgAEAP9VqgAAAAAAACLaAAAAAAAAAAABIBUBEwAVSCIAIgALGGteNQ9z
gSzgw5UUDHgJOG0UpLZVbstlorgYM1dGRI4AIgALqYkehoHN34Yg7HNO/HOG7/UN
bNOVPKp1fg4MTz0DbKAEggEAOFmcmbvoqJL3CRKvCdyEGuIL44kJKPrfLevba85c
OTf5m2G+4W57HR8w5gYHozrTVhbx6oUla9rAb3fxC6ViqwMdPqdkFeNtzIc/TB2U
hh0yW5gp6GRK5No+JDJ6OKVoqvy2mBZLnUbvTOoGyeYZnuVqK62wL2cKDv0ARRjs
QwRBWClo7n3UYs8/0ycXFnYtBzPpSjRMMW79bzG3JsFQLtj/pFzTpBu9fzu88Ylo
wm6HmvwdMyTw3Hq4ou2+hcjl1/NVu5EThfiwTsllDpRuGgzp42L1nJHNlLW9KGYQ
eyGesvtoX9JTTYG0r72rXA9VMw7OSsmHhRWXL0TJmdUccwSCARYAAQALAAYAcgAA
ABAAEAgAAAAAAAEAsezjqrLAgqTcmkgJ6mnMvuVqh9M0RLDDOi/ZE0oenckKamem
8r2mfVHJxAbEScIr6HIVSOB7MyjrnrOM+wyU2zYJvYouPtbag/vnHxxv+TxotuiT
7iqedR37rC9ko6826muP8BZ5e55uyrpTlHTAU3TIdTV0TPMykrcOGkOirrV9FYPL
YpLGW3dWz1i0pivnj670NIsRgybDH+A4ROFfLWFDeExomyAFmUIja8jw0basQZl3
K4fJAmGMpUrCxjoyBSiyUqkqGQRkiiU8ptIN5Ee2+sk62PBIWjfN+4WbTdD+bfEQ
+f/+LSJwrA82bmFWzJLTZlTsUJC7K2AmlVbazwwXdHBtdmVyaWZpZXIuZXhhbXBs
ZS5jb20wggfXMIIEYDCCA0igAwIBAgIUJ65JvgeACRrqSqGBIEY5mH7SiHUwDQYJ
KoZIhvcNAQELBQAwdDELMAkGA1UEBhMCQVUxDDAKBgNVBAgMA1FMRDERMA8GA1UE
BwwIQnJpc2JhbmUxGzAZBgNVBAoMEmlldGYtMTE5LWhhY2thdGhvbjEWMBQGA1UE
CwwNaWV0Zi1jc3ItdGVzdDEPMA0GA1UEAwwGcm9vdENBMB4XDTI0MDcwNzAxMDMx
OVoXDTI0MDgwNjAxMDMxOVowcDELMAkGA1UEBhMCQVUxDDAKBgNVBAgMA1FMRDER
MA8GA1UEBwwIQnJpc2JhbmUxGzAZBgNVBAoMEmlldGYtMTE5LWhhY2thdGhvbjEW
MBQGA1UECwwNaWV0Zi1jc3ItdGVzdDELMAkGA1UEAwwCYWswggEiMA0GCSqGSIb3
DQEBAQUAA4IBDwAwggEKAoIBAQCSMnAsx2LBunwXqcOL0zHHWKctsL2EovzKAZev
9452fqmDpJqcud3m3JLTHBsgBElIniaCuwUutixde1aPRrBHRyqmkrX2j/+SDEX3
iG5nu5Qy6Rp7fZ1DEUPjZhYV2/9TJx/zyEg5BWGj18RhI0zd5Ol60GG6PuS3i2Ob
mVk5vP5fbUgLSAfbkDbERaHeCMW3UK4jU7C3rlT4uvbUREBWQCms6z5CllRGEfA1
VboppYeYIitwC0kRM3mZeMDlNDwCd07wQGoDXFpvDJREKBgkdMucYfdIc5dZIp7H
4bdtZrhyIO9wNq2F5YLyCTYbuWGCvnReJa7FKHcUvr4/4BVpAgMBAAGjge0wgeow
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
-----END CERTIFICATE REQUEST-----
]]></artwork>
        </section>
      </section>
      <section anchor="psa-attestation-token-in-csr">
        <name>PSA Attestation Token in CSR</name>
        <t>The Platform Security Architecture (PSA) Attestation Token is
defined in <xref target="I-D.tschofenig-rats-psa-token"/> and specifies
claims to be included in an Entity Attestation
Token (EAT). <xref target="I-D.bft-rats-kat"/> defines key attestation
based on the EAT format. In this section the platform
attestation offered by <xref target="I-D.tschofenig-rats-psa-token"/>
is combined with key attestation by binding the
key attestation token (KAT) to the platform attestation token (PAT)
with the help of the nonce. For details see <xref target="I-D.bft-rats-kat"/>.
The resulting KAT-PAT bundle is, according to
<xref section="5.1" sectionFormat="of" target="I-D.bft-rats-kat"/>, combined in a CMW collection
<xref target="I-D.ietf-rats-msg-wrap"/>.</t>
        <t>The encoding of this KAT-PAT bundle is shown in the example below.</t>
        <artwork><![CDATA[
EvidenceBundles
 +
 |
 +-> EvidenceBundle
      +
      |
      +->  EvidenceStatement
            +
            |
            +-> type: OID for CMW Collection
            |         1 3 6 1 5 5 7 1 TBD
            |
            +-> stmt: KAT/PAT CMW Collection
]]></artwork>
        <t>The value in EvidenceStatement-&gt;stmt is based on the
KAT/PAT example from <xref section="6" sectionFormat="of" target="I-D.bft-rats-kat"/> and
the result of CBOR encoding the CMW collection shown below
(with line-breaks added for readability purposes):</t>
        <artwork><![CDATA[
{
  "kat":
    h'd28443A10126A058C0A30A5820B91B03129222973C214E42BF31D68
      72A3EF2DBDDA401FBD1F725D48D6BF9C8171909C4A40102200121
      5820F0FFFA7BA35E76E44CA1F5446D327C8382A5A40E5F29745DF
      948346C7C88A5D32258207CB4C4873CBB6F097562F61D5280768C
      D2CFE35FBA97E997280DBAAAE3AF92FE08A101A40102200121582
      0D7CC072DE2205BDC1537A543D53C60A6ACB62ECCD890C7FA27C9
      E354089BBE13225820F95E1D4B851A2CC80FFF87D8E23F22AFB72
      5D535E515D020731E79A3B4E47120584056F50D131FA83979AE06
      4E76E70DC75C070B6D991AEC08ADF9F41CAB7F1B7E2C47F67DACA
      8BB49E3119B7BAE77AEC6C89162713E0CC6D0E7327831E67F3284
      1A',
  "pat":
    h'd28443A10126A05824A10A58205CA3750DAF829C30C20797EDDB794
      9B1FD028C5408F2DD8650AD732327E3FB645840F9F41CAB7F1B7E
      2C47F67DACA8BB49E3119B7BAE77AEC6C89162713E0CC6D0E7327
      831E67F32841A56F50D131FA83979AE064E76E70DC75C070B6D99
      1AEC08AD'
}
]]></artwork>
      </section>
    </section>
    <section anchor="asn1-module">
      <name>ASN.1 Module</name>
      <artwork><![CDATA[
CSR-ATTESTATION-2023
           {iso(1) identified-organization(3) dod(6) internet(1) security(5)
       mechanisms(5) pkix(7) id-mod(0) id-mod-pkix-attest-01(TBDMOD)}

DEFINITIONS IMPLICIT TAGS ::= BEGIN

EXPORTS ALL;

IMPORTS

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

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

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

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

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


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

TYPED-CERT ::= TYPE-IDENTIFIER

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

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

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

EVIDENCE-STATEMENT ::= TYPE-IDENTIFIER

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

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

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

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

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


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

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

EvidenceBundle ::= SEQUENCE {
   evidence EvidenceStatements,
   certs SEQUENCE SIZE (1..MAX) OF CertificateChoices OPTIONAL
      -- CertificateChoices MUST only contain certificate or other
}


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

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

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

]]></artwork>
      </section>
      <section anchor="tcg-dice-conceptualmessagewrapper-in-csr-1">
        <name>TCG DICE ConceptualMessageWrapper in CSR</name>
        <t>This section gives an example of extending the ASN.1 module above to carry an existing ASN.1-based evidence statement.
The example used is the Trusted Computing Group 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
        // EvidenceBundles ::= SEQUENCE SIZE (1..MAX) OF EvidenceBundle
        30 77
          // 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: UTF8STRING "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 8E 30 82 00 8A 06 0B 2A 86 48 86 F7 0D 
01 09 10 02 3B 30 7B 31 79 30 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 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
]]></artwork>
      </section>
    </section>
    <section anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>This specification is the work of a design team created by the chairs of the
LAMPS working group. The following persons, in no specific order,
contributed to the work: Richard Kettlewell, Chris Trufan, Bruno Couillard,
Jean-Pierre Fiset, Sander Temme, Jethro Beekman, Zsolt Rózsahegyi, Ferenc
Pető, Mike Agrenius Kushner, Tomas Gustavsson, Dieter Bong, Christopher Meyer,
Michael StJohns, Carl Wallace, Michael Richardson, Tomofumi Okubo, Olivier
Couillard, John Gray, Eric Amador, Johnson Darren, Herman Slatman, Tiru Reddy,
Corey Bonnell, Argenius Kushner, James Hagborg, A.J. Stein, John Kemp, Ned
Smith.</t>
      <t>We would like to specifically thank Mike StJohns for his work on an earlier
version of this draft.</t>
      <t>We would also like to specifically thank Monty Wiseman for providing the
appendix showing how to carry a TPM 2.0 Attestation, and to Corey Bonnell for helping with the hackathon scripts to bundle it into a CSR.</t>
      <t>Finally, we would like to thank Andreas Kretschmer and Thomas Fossati for their
feedback based on implementation experience, and Daniel Migault and Russ Housley
for their review comments.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
rM2JWtQu9KpvKq/UPrXob+xf/K/0uAtK4HGTI3dHU6GFnKk4/zi0uEwWa26h
pOXENBI088rIUiST6JscfqiMZMVzBTkNWeCwVUxNVhY4wrXuCclHoD5EOgt6
0rd9dz+stmuon5hWLDBF2o3/XLRXqCYtcwwJMli5XPAQbnii2quunksozum9
0tL4qYjzgadI0kAmtqZD5vIUKfAbrm8m6vYKR2QzJl0RBYipcMLYWirz6VGp
KXJzFo7xAdbk1W4/7bwYn7b2Jroj/JS2vRKJU+wj/23ORQqgkHcXK+AVhQWG
WpKhgnUycYXq6rkKqEkgP/BkIzE+kljeIcyiBMFknprMSiEm4aqb7xlzwy5k
mlZ/9zrq0gOepNzgTvOLqFx4ZklP6MY8inw5hIQqcsUgYe7hTjLF9vbj8TWj
Xwu8T5+S8YLC5nxyJEftdEw3hLUo2V65dtZo6cyO06gY3ZreRl8pIKv4ozUb
jdb8uVKpNkYV49ZY959rV01jcmak72rlcbNye3/3Wq0al+VR675sjJpGut5s
V2vtplGiNlp5vW7czi8W/czFuDe7ez17M55YY6dZm02ng7NHv9mt5a8exuPH
jD8enI1XvefaQ7N8yzqorNct8+E+9WSnn/vZhj84u38bVGutpuFRA2O9rpmZ
+3yzW6kYnca6evt4cek8Ncarfsu4rZW18q1RHY1qN0YVGtw6Ffi9bFyde7nC
y2bduJxkLxaNirVYvF0Vp6Yz7LZqnfX6zVll2q3L80X2QqvMFvPF6vJkMU+3
N/3bs9favHJ5ON7U755H1lvTKeQLb883XnPa8jKVXuby6rn4kHFuivnXUr93
PClp5lXPmRzmXubzu8FhYb16urxetZYL9/nYeLA+Lq2e91K4y7dT63ortTm/
Sw9qb2/NxWW2Ol5UnZdCWhu2H6qbzGXndepn772TR//y0c3nDpcn1c5V7bE5
W78ej65r3fHHTXp8mx03zQtvVH6aVhqZVaPUOstobu3sabBZnm9uL8bPl/eX
a++x0BzdOd70cnE5ntSeGs705rLXqVrtc3/lXlz7z+tO3cm+DZf1WSp7qx3P
sq+1m/nxsZ2y+5frm9YsP773Np1U5umuWK/cLjf+6GJx/5DxShVjXTMMs1Kp
LPvr6pqdhsaOY3LdvG2s8SQqfuOssnk56zR62ept7aJmNIrNx8blGo6x4qbW
o9FLHoCvkgHgM/zHM638YJXL7dsyPvRGnfJkeHJ3m7KM+tqwDcPPuYWXnHV1
2GxPnu6bw9zb/XCUXVXKr88TY1Wclkva07z1ap7ftnojo2bcnNy/jAz2U7ky
jeCn3CjflWtr475TaRiNkXF1duZbrduTN23UeRut83d31fPRxfVZ6m5x9XTf
8/yp444em+nBWbuRow9eHifW2DlvZXOPo+J56/r4/PqseHzX0nqt6/uby0V6
OMo1u2+pau/SqAE0Gtf1WX/WWzkvF1fZSvtyVRlsamfLxlUuN7m4vHGHV9aq
Z5byfe26O8zPMmeHuYd88bxdWudHj+fOm9u9H/deC87d1DxxjV52+Fop3Nsv
6+bg5mUwqVst/63RP+6WM3faeJzaPORHi8JZ+zLfcg4vqheF68t752W1yczK
T1fzu96qe+2cbazHp/ny/uWykFlfZfqX1VXKaLefPe123S4/VKZOcZ69e/RK
x6lN/2N9/uiX324Wned2s/lQPOm9nWUvvPrtlf98vKi/dRfl5cnwbVkqPU4d
bT0rnM9W60Fz011nz19yzjJzOO4/T9PHrftlHmB4aK+73nRaXbSXZ6O3RS5z
lZ5fnLemVw8nl2ePt5q1ObO8le98PLnodh/PUm4x4340Tu6b6+J1x5udj9sP
H69S3YvZ4K7fX3cqRvvRAMx1ZRiPBrCfhmaUDQAAcfg1w7Penl/cK2P00u3P
JqOLwmzeXMHaxyfNVPuqWr22j59qKQdQ7eQSRJCZVnIzs+H9+cWr0at1+g23
cN6471yXi83Nszt3r5uH681d5u3xYvXoLG/8njk6Xs3PX19Xh91Xx1/aXa1o
v1iDdrboVk4mTqGUKcyWN6XyU97K55cbd9GdnneNu2y3Mejep0Bq2Ezc/vXZ
5Np23fuT+uPNlfa4uDp7yA4e3tJ2amGv5s+FYqrV8NqjTa96fmjk2tf14dVD
vWrVXp3ZxqjP7hrPZul5neqZ3u3TNKtd5oYXxuysubhzK6/PzqbcsTd3L5OX
s9v2xLbvSgu/0crXrMyhNylkbsqNh+dhC6Cu1x1UD3vD2q12ODw+vOpcrF2j
lOnN6g9vF1fdp2nXu7uoFC8zxmx63zPf1uuPg/OyP5jdb8yHp8XTx8by6eN4
3PtY9rSnTv65l8F7PvwIV7r2iNg5ZY+MdQPoSOPuopC/WI0so9J2XzovZ2Vo
kZ+dFzv2+R2heE3B8VeA4tdAE/59UKabppESlOmsPztZDWqtcrOc+1jtNlLN
an/dejNem9Xmq3Z97/CHo3XrmT2EZ+v+dy5FE2v5s0vRxFp2LEXOApZSeXzw
4LRqNi6v0mGYWwPUXTZu7wwj1yhX1wY2uDQcOMLbSqc5N7zXzBXwJ+uPL/3r
q9Tb+fnDZd/3rjI1Z/V2aTxZK+0kl88MX2bVxcVLfznIzrIASOdlIF+1aWNu
m5Xl+m7p268DK23etN3yeXvzMpu4HzPPx4edau1jVrPP8vNl/nZTaC+Kw6d0
tXZ38/w0frzPHJ90L16P3za1Ub78cPacLrXHjdTbIH89LaTOzgo3y07Wzlz3
tNn9JL+6yQ97d6OrjjHsTaq9Wts8tyrNh+zdZe75rljJutNubrnq3bVr5Yfb
yswrvOUr02n7rDY00tp9z1ksHq3Hhu2vK6lJu5mdPVnN6rRVXVcGqeL69syp
fqwvVtWLdg3OcDJoLvuPw0Gjnx88NRbFcy3XG/hP7njTuD5Zt14y9fzj1abS
fewtH84qq3nbujCL9cvz/t3KzR3nyvcLAAHAYWfAfcD9sZy1NnoiXmjQWANd
fKuUJ5f13OL88bvvxH9zQIq9E6Nx+7boDjPVmvOozZ+bF4/Xi7d25bCb7lX8
0bPRxJHP27DWYalmPBsGZ/kG1fUtdNQ4H1WNW2rTwdvYNc7Lo/v56PauYbwZ
A3pxm6vVR8jOVgaZtXt/ce+erK7q1bf86GXkvr0Alpb8oqYgkyrxiMZZevU2
uW02K73F+eUm9dRa5k/ur9/urksF7yb9elxqLjfdzuVra5h1SzVt0Hk8X3nu
uDmtHM9WdvZqsTk3b2ujQtHrVI6fH28Kr2v35SW1rF1fOGdu1rarVd9xzEnz
0HmrmCPtpje5XWcnz4+rm+Xz293HjH1uPRevzm96pduz+04t9zS+vPTHw9uK
f1jyTw6f2pX8XWH9Ur0y+tf1Tle7X1+P5u5z/cWq1P3ns8sH663trNqNs9nl
rGZ5jn1mZO+fbp6HpfLhaHkyGFwNF6318HhYOqvB/VhrlnGWLW6exm6rfFj0
qufO8GbS/jjMpd7S2dpmMnJ6tVp+dndsf7ywJg+pibMoTAedmTlpfHwq3T65
2uVTr/p2Mb4oj4bt2fVNo3pp9dqt9OF133u5q9yZ1eFZveysAU+0VsjJ3a8b
d3fXhezJ6PXy7CL3plUeqi/91O1qcvKwdh+32PlvonotDtf/CFhrcbj+R8Ba
i8P1rek2qodnsUvR3iNb37MU7T2y9T1L0STZajTKjWcD7urkZTyxz07WKUDt
tbphXIMsVTLwfWV0Cb8DH5U5zN5mUoCm7oda2X1yvNfyydi/qxXGZ2YuN80M
rs2P5Zcr1/m4zB3bx9nnll98SHcfrLnrX3fux68b1xpu3l4epmdzbVG+fDpu
+kbJvsmsym93tfNFs3qTn/UXT6NxYTKzW5tFb5Qud5fP3vjOrz6tqwPP9oav
ztvtIvuW1lKXj92r7Cx1f/f01Dmf9M7fHktXF6PhTXt8krWWZ/eTwfpyunaf
lvZ5+uQp6xrXXZChUo3ns9SmN+lpTvP4vlkeFoDPvl40L9yBN9hkV7PrtHnb
KR+3bp6rZ/m32XPdGmUaizur8fFx3uo1Fu3cGiSybm6tdRq11072JFN9Gjz1
n2/GlfLMyZVHh91l68IZLFv17KpRLBj1k2an0DbtWWl0d5d/bV8fVtLWtTXo
am+52/6w1T9srRuA6YyySnmR8FbWjPACFnwonPQWs2J/c/xyv3nya+vz+zdf
u+vfTgqX9mvzeDRrXjSbQ9N+zc9ztZR971/Oa/W5Yb8+dGbVw/n12jtc2tao
MGnO0qlF5f7lrtCztftp+7ZV21y83s8Oz98yHzubfqNQejguzS/ao2IBzm3d
Ma8az6PKVbX1lnka1oabk+PXq4dLfzhon/ma79f9e/v4IV3qb1IA4a9V+/ah
efl6+HDz8WU+qWRu0leH08dhoeHnNn1zVqhkPnbX/dHydfE6tVczzehXn6y7
VKXXz7SdfLNXqPsv4+fq3UP5qXCTf041WsXrx5dGPe8+3g9Xzurcrfady9zr
1WX1uN7J3GiNq8LIOk/7/YI5nd4dl996/vgie3H5aDwslvVMo+84/ef8tXWV
mlSnh+7jsVmeFLogx76sjYfSfU9DqhPe9WuC9/5V9+G6ujrJtkvecy3bGj1v
lvbm5HwI1L3lvLq3V2/r5aXf0Oo37ZfyYHPz8XFUHx9PWuXLztNsYx17N52n
Vqpy0epfn9xnjMVbafK8MKbz2XCY9mr14tPr6+s4e93SPOO4nnlZvzWH1eXl
9XnmcJnOOIPe2/z+6dy2Dm9fn8bGobuqPAxdtze8PmsVl5tU/ric8224HONz
bX3fybXqmWLuzjXXGWdU8s8Kj13jxjw7e93c9yfD7Gie3VzdzIdwLa/GT2fd
VbNfd5qlnN2fOZl7zXyors+eHk9yV+OuZ6Wfr+4su2zPbo8bh6UXI/122/l4
WW0/OoPHQrU9G6Ry85vi7dnArcwmRXN2vNbWuefn/KL0UN8MnnJ+3bgdro3L
x3yufDe7WpVbx6n6JFs+XD+/XSydq9u//Y0pp2qt6m7VFPeIoQQBqqWvi6lI
eGAUs4t9I3fJPvRwENeFp4WCV7E8oe/1x87QmtsjVqRw4ZkJyn3y9Ws487io
p+CHi1Xy/BesbpgaXMWG3K8Z3YMkH6s39NkgE9PH3Mo88C0Sza0pkUqWDt9v
aZlFjBMpS/lWaGo8HBViYtrMb65SY14aPVlXfStJAPTSs+ciuFCLvvbZQi9h
oUL9LyYV1+4G2mky5RLWQRZqekrezPKVCm8EZuDf3juRa1KEKsDgCeiYxQii
reOIdN8um7Sjff4sUlznk2kcb7vLo2AXWDYEyonFKsXBobxbzLI7VsofCJXz
1pzCVTlDvnbJcN4KrgHWdKzsAv9N/BpRDnPDFS/fJEsZYcNtJXTIKnYY+itc
Awk/Z0ZAUUIWN6ESbELoU/lbNHdFt1z9xiDMeggbdIwbFBmE0ADuKMtzbseE
dSZ+pXQvsKXqXdFEh2JrydASHH0h/uB1XktC5BzBhMfl63ZwoPguDA0hL3FW
QQkLIyR6rmVOPJ7rkRVGNgc8ua8o8O4dcLMwGjL3YAZ7p7Q/4w+DTCmXyxrp
VDpTMFL5UiVlZFNGvpRJlU/S5VQ2nTnJZDInxWwlk87VcplyPZuuFkp8d4sZ
I1urZ6plYDZzqXS9XE3Xi5l8NVeqFsr1k0opXUyfpE4qOXybymRSMEyaf4tj
1FP1et0olo1svlYs1HK5CnCq+VyuUM1mipVStpQx8vBpLV+HKeTy1Tr/9iRX
yuYKFWhSMvLQNoOdFSvlXCVXgqmWy4V66qSYL2TqhXQVsxIUC6UK/7aaqdRr
2Xy9bJwUaycnRXhbLaMOLwtMVKZeS5VwN9QJQ+f821S1WKmkiiBswqt8uVpJ
57NFI5/LVvPZSiFlFIxKuZCpVSrV0kmqUqwbsIoTYWHP5nOp0km5XEvzCddP
8rV0NVcu5dNGplIp4WaUitVSLZOtZzJGvVwU4+ah/3wtn85XU7DObLpWPDGy
ZTiPYhrmUcql8oV6PlVNZ9N1o5Q9gbe1VIF/m8OdLaaqlWIepp4qF6onJ2mj
VoF1Vusn9Vy6YpSL9XS5WMtUcsV6oVg1Kgb/tlQu505q2XT6pAyHVCsW4btC
pXSSLmSKIMulKpVCNVUrwmGVYFKFYj0L4MS/TRsf0Da+t3gH2jI5+J2gLV8x
skVYglEvZU4q2VQF1gnnU62Wiyeix5Nyug4bUKrgRgLUVUuFfMqowvAwgVq2
Xi7kcC/Ci+LfKmv7/kWJXQjWljbidjpui+UusJ3+IOP4ecA5S5gunTUSzA3F
wKD/RCaVyar467PtOftpxZ96kHDckTm334jK7WcP9IEz2C8csAwUc8vH1iI5
3X7+QHQWJNeFh/piYr/uF7HbxAw+T4nfEvhC+GOk0vuAW5vX1YOvmlat1Rut
Bs6xozeaN1eNSqOrd42zDuVHICugptU+3ly3ux3duLr6RdOgGf6laarPBA6E
g2h6vX3d1G8uGx/TtVeMnbB9WH2K794/aN0/sOo0pvhm00hl9vNpXLQy8crY
wSqRGs26gnEXzgjo8dju89K9nc3cN19hCemU9lnn059hGj03gfVv9jMH+tLb
Byg90F3PBGFzP50GxHByoC0mfQ9b47+Jk/0TWMjMnln7aVgeK7rjKZPtzzza
qP186QBTwtQ+dmutDhzMkQ6Q1G6U77q1I13GJnUs/zNwGx0gLVNLPv3MnFDk
GSQqlAAfM/uy3vVEghE0zMiYP0lnfqcP5Mr+rQD5AyfDpkanUqQVkyMTOwni
yK0m7BY/hvvswPHT4bl+3ymIK/edp4Ec2YoG28+kD8idBx3wMXOjXsZiM2Pm
x6WwpIGzBMtDhuvwzffSBOHydbyFNEIIII0pbq/pk/MdfIDzr5xfN3iSEvxB
w70e+tnpvRT5gTUEXshquh/CYN/4MohsNEMpCUWeIB6TwwIgKmKOv6V+p8TS
9ORIbVIH9p6a/ZbmTcQT0SyZpD7R0e7xplZNoMxHm4h/JoKNhfdyzK20LmLH
KLs1/gR9Jf+jPdj/LL+FK/X1QIwtct1Ev6BuIh99/rsY4OuBxuarvNYjk6dJ
wdJwTzGhbrQcUhASCtJs0JvcrpgVyvVtwdyRfF+GaxJKSKMhkonPZre1vz+a
Cu+71/c1pm8vvMRO46mm76eTyabx8UC/rseIJtt9xOySzwBge9YMDOKWyMGB
xIT4L3HXd3z7+e8+QQR1QV5cun7XrZc6PnlOK+mAtIgL5zuYwzT1/AnCBGwu
irg8UTDK7W7QgSQY8kDwRKOuQfC4cn3XAsIOO6vj9Q/nEwzPCucpRsVcxFqo
vIOkVnLEzmOrC91uj/mtQaIOTN8HDFyijXwdAwbBlLfgjk6K+YfuHnCbeQiO
UuLKmEaUFZwCT0T5CdUBCzaVahnSLtdaVanGwmDlKmL/CssWtDSnnCQ+cIfD
QKWlKHVGRD/CWTctmWmWIh+IaWWUD30rV1ZQxYm+4xm5qB0vohWXtVCN+GMJ
dnhI0Y7kU7SYkAu+XJjOV6bzpR1FKM3nz7Ab+H06mSaNCW2S3x9VYYe3jrPW
2YGhNOQhdm7ndnrOgY0Fn2T7xIx9kBAen+w2stDJnd1SDMN3dEaJct0Q0sQV
J5QdS6hqygRPIJGAPUm0LVakPZEu/pE2liM4AZQ8kovB8Mdx+O59PSLK/FX7
/zGQwsK7/R7m7vguIPx//vf/4/gYkEZXZ4WuAj7d+0kzUnopo6fgv7WfYF+h
IeXmUlroela2MX4iNAKttslAhE7sp/WMDjyvznhdTPiKOQ4yQCIOWC+pgp4q
6xlDLxX0XAn/Wy/qqaqeSusgC6RTeiqjZ8s/ccTFl4BpbPGY5AzF+2xaL578
JNlEaP5vwdVBR7D4YjH4M6bnUMdqS/w0rz4IffznWYpwlzhKNvwofpyd8xS9
pKMPqR+uLt06b4kwOCzq+yKPaTKfzCXTB9u94YkX9EJRL8ER5+l/OTju2GGZ
AnXXdGnCuZjHDISvW10g+n90bmoVtMPoX2QKtf1UJmZi9JVo8jfdKFeqtXo6
k83lC3GN8TZU9Fxaz2X0XFbP5fRcXs8VEAazALNZPZvTs3k9G/tx/Py8Fc4t
u2tu+Ppvei52Mlm6MbHv4seCR8Bl31UwGdEXfbi2Bx6MXYgd24ArW9/R9e7D
oePJVONe7MAenXMjE7/ZDGxO9EKKIwpYbQEgJ0vAk4mFHzGMIlHsbITrh71N
vabgB2hHMpXaMY0cJsRNxf9vxyf/HhrvuhAYRs8ubqq0+05gK4p/kXuEP7GA
WKIT+TOTIfFnP3Wyaxr0/pvjn3xzfOiKxWmRrMNSn+4p9DQUmRKDvyp6uojX
vQDgmEUozOfoF0AD8MTSC4DdhtvfZSxsWyzpBQDdgV5M6YU+PsHn8PUQHv6k
/aTB7MpwFZAPDxFmlQDvpJo/aWG6SRi9zMgiI2KMHjF6gf/9SSumd6Fkhl6j
iO4nbTeqk3iIoQyGAHBW37i80WsFX+y8ZPH/++4vJIAqX2wBTfwh/6RtHfM3
ThW+wHOVavg+BvFPrcGIlZyIq4fA+T6qxEQJAlndSt23zJmIWRZxdBgU44rs
TtqV0bzp0IfIJo6QTeQFVmTIJiYppHI0WM7JCbLZOO4AhBkN5T7GUA2EiRu7
O9Xbdh+Ln+iXlu9PLSzsc6RXxi7MFfjToTk/0svuEjqsOEt7OoWWR9qFZc4T
N7blgqhQtz0sl9AxMVOq3rVmWCv0wvLHrqOXLWsywx6ePGfq6+3/639788yx
NdrYR3qdclNqN5b/f/8PR3rTngC/PYJH9tLTL5dYdQcksK4zA/73DNhkc+V5
GG1dtSmjZtmZj/g0fWeBwW1Na4PLbOJqrKne8S+cMe5GxXSn+oM5xazQOA57
zRdNXcIgznA5s/XrybIHHPf11F5h/sNgwTr2Bcy5uTnSay7sqTEzAWuy51gq
sgoyAQbRn1surFfvTE2f1t213aXetgaDzRF051obnPictthwR5HFXlANrv+3
r3PHQRiGwfDeU/QAVe9QCSFEJQZA6hxUt43oSyEIenv8Ow9aBtYMiex4sGPn
+w+qvU2GjSvyY85mkB79+SUNc5aeqE4ug7YdJ/9VwJ732inObYDItlPj3XnW
e0Mejx2iCBEoYx/E/oG1ITmKaA+jGrs+QwCz/w7iAFvSisMBLhCGUZSJRQij
FOPa6i2NZyxupJtVhDWvas0s6KVufOesoH6OyFiZwsBHRNvhRVyYJm7Kxc8t
WI9X9voQey1CohmEHLcOdKYUYw0N0LQ0hKmTwVfQ107CcT9xcWl1oDhokzRE
NXSVvq38Hx13fBg3Gsm6M2mH/4w9302r0K7H0vn54MuHZh4tSdw6BRKeXgIE
ECnc5APw2pUIqhgBAA==

-->

</rfc>
