<?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.30 (Ruby 3.4.8) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-lamps-csr-attestation-23" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.31.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-23"/>
    <author initials="M." surname="Ounsworth" fullname="Mike Ounsworth">
      <organization abbrev="Cryptic Forest">Cryptic Forest Software</organization>
      <address>
        <postal>
          <city>Sioux Lookout, Ontario</city>
          <country>Canada</country>
        </postal>
        <email>mike@ounsworth.ca</email>
      </address>
    </author>
    <author initials="H." surname="Tschofenig" fullname="Hannes Tschofenig">
      <organization>Siemens</organization>
      <address>
        <postal>
          <country>Germany</country>
        </postal>
        <email>Hannes.Tschofenig@gmx.net</email>
      </address>
    </author>
    <author initials="H." surname="Birkholz" fullname="Henk Birkholz">
      <organization abbrev="Fraunhofer SIT">Fraunhofer SIT</organization>
      <address>
        <postal>
          <street>Rheinstrasse 75</street>
          <city>Darmstadt</city>
          <code>64295</code>
          <country>Germany</country>
        </postal>
        <email>henk.birkholz@sit.fraunhofer.de</email>
      </address>
    </author>
    <author initials="M." surname="Wiseman" fullname="Monty Wiseman">
      <organization/>
      <address>
        <postal>
          <country>USA</country>
        </postal>
        <email>mwiseman32@acm.org</email>
      </address>
    </author>
    <author initials="N." surname="Smith" fullname="Ned Smith">
      <organization/>
      <address>
        <postal>
          <country>United States</country>
        </postal>
        <email>ned.smith.ietf@gmail.com</email>
      </address>
    </author>
    <date year="2026" month="March" day="02"/>
    <keyword>PKI</keyword>
    <keyword>PKCS#10</keyword>
    <keyword>CRMF</keyword>
    <keyword>Attestation</keyword>
    <keyword>Certificate Signing Requests</keyword>
    <abstract>
      <?line 87?>

<t>Certification Authorities (CAs) issuing certificates to Public Key Infrastructure (PKI) end entities may require a certificate signing request (CSR) to include additional verifiable information to confirm policy compliance. For example, a CA may require an end entity to demonstrate that the private key corresponding to a CSR's public key is secured by a hardware security module (HSM), is not exportable, etc. The process of generating, transmitting, and verifying  additional information required by the CA is called remote attestation. While work is currently underway to standardize various aspects of  remote attestation, a variety of proprietary mechanisms have been in use for years, particularly regarding protection of private keys.</t>
      <t>This specification defines an ASN.1 structure for
remote attestation that can accommodate proprietary and standardized
attestation mechanisms, as well as an attribute and an extension to carry the structure in PKCS#10 and Certificate
Request Message Format (CRMF) messages, respectively.</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 96?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Certification Authorities (CAs) issuing certificates to PKI end entities may require a certificate signing request (CSR) to include verifiable attestations that contain claims regarding the platform used by the end entity to generate the key pair for which a certificate is sought. At the time of writing, the most pressing example of the need for remote attestation in certificate enrollment is the Code-Signing Baseline Requirements (CSBR) document maintained by the CA/Browser Forum <xref target="CSBR"/>. The <xref target="CSBR"/> 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". This requirement is a natural fit to enforce via remote attestation.</t>
      <t>This specification defines an attribute and an extension that allow for conveyance of verifiable attestations in several Certificate Signing Request (CSR) formats, including PKCS#10 <xref target="RFC2986"/> or Certificate Request Message Format (CRMF) <xref target="RFC4211"/> messages. Given several standard and proprietary remote attestation technologies are in use, this specification is intended to be as technology-agnostic as is feasible with respect to implemented and future remote attestation technologies. This aligns with the fact that a CA may wish to provide support for a variety of types of devices but cannot dictate what format a device uses to represent attestations.</t>
      <t>While CSRs are defined using Abstract Syntax Notation One (ASN.1), attestations may be defined using any data description language, i.e., ASN.1 or Concise Data Description Language (CDDL), or represented using any type of encoding, including Distinguished Encoding Rules (DER), Concise Binary Object Representation (CBOR), JavaScript Object Notation (JSON). This specification RECOMMENDS that attestations that are not encoded using the Basic Encoding Rules (BER) or Distinguished Encoding Rules (DER) be wrapped in an ASN.1 OCTET STRING.</t>
    </section>
    <section anchor="relationship-to-the-ietf-rats-working-group">
      <name>Relationship to the IETF RATS Working Group</name>
      <t>As noted, attestation-related technologies have existed for many years, albeit with no standard format and no standard means of conveying attestation statements to a CA. This draft addresses the latter, and is equally applicable to standard and proprietary attestation formats. The IETF Remote Attestation Procedures (RATS) working group is addressing the former. In <xref target="RFC9334"/>, RATS defined vocabulary, architecture, and usage patterns related to the practice of generating and verifying attestations.</t>
      <t>In its simplest topological model, attestations are generated by the certificate requester and verified by the CA/RA. Section 5 of <xref target="RFC9334"/> defines topological patterns that are more complex,
including the background check model and the passport model.  This
document may be applied to instantiating any of these topological
models for CSR processing, provided the required security
requirements specific to the context of certificate issuance are
satisfied.</t>
      <t><xref section="4.2" sectionFormat="of" target="RFC9334"/> defines several roles that originate, forward or process attestation statements (also see <xref section="1.2" sectionFormat="of" target="RFC9683"/>): the Attester; Endorser; Relying Party; and Verifier. Attestation statements, such as Evidence, may be directed to an entity taking at least one of these roles, including to an RA/CA acting as a Verifier.
An RA/CA may also forward attestation statements to a Verifier for appraisal. Each attestation statements may contain one or more claims, including claims that may be required by an RA or CA. Attestation statements transmitted by these parties are defined in <xref section="8" sectionFormat="of" target="RFC9334"/> as the "conceptual messages" Evidence, Endorsement, and Attestation Results. The structure defined in this specification may be used by any of the roles that originate attestation statements, and is equally applicable to these three conceptual messages.</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 defined in <xref target="RFC9334"/>: Evidence, Endorsement, Claim, Attestation Result (AR), Attester, Relying Party, and Verifier.
Per <xref target="RFC9334"/>, the RA/CA is the Relying Party with respect to remote attestation. This use of the term "relying party" differs from the traditional PKIX use of the term.
This specification uses RA/CA to refer to an <xref target="RFC9334"/> Relying Party, which may or may not include an integrated Verifier.</t>
      <t>The term "Certification Request" message is defined in <xref target="RFC2986"/>.
Specifications, such as <xref target="RFC7030"/>, later introduced the term
"Certificate Signing Request (CSR)" to refer to the Certification
Request message. While the term "Certification Request"
would have been correct, the mistake was unnoticed. In the meanwhile
CSR is an abbreviation used beyond PKCS#10. Hence, it is equally
applicable to other protocols that use a different syntax and
even a different encoding, in particular this document also
considers messages in the Certificate Request Message Format (CRMF) <xref target="RFC4211"/>
to be "CSRs". In this document, the terms "CSR" and Certificate Request
message are used interchangeably.</t>
      <t>The term "hardware security module (HSM)" is used generically to refer to the
combination of hardware and software designed to protect keys from unauthorized
access. Other commonly used terms include Secure Element, Trusted Platform Module, and Trusted Execution
Environment.</t>
      <t>Since this document combines terminology from two domains, Remote Attestation (RATS) and X.509 PKI, it follows a naming convention to avoid ambiguity.
RATS terminology is written in uppercase (e.g., Verifier), while X.509/PKI terminology is written in lowercase (e.g., certification authority (CA)).
This distinction clarifies terms that exist in both domains; for instance, a Verifier refers to the RATS entity that processes Evidence, whereas a verifier refers to the PKI entity that validates certificates.
This convention is distinct from camel-case identifiers like "AttestationStatement", which denote ASN.1 types.</t>
    </section>
    <section anchor="sec-attestationAttr">
      <name>Conveying Attestations in CSRs</name>
      <t>The focus of this specification is the conveyance of attestations to a CA/RA as part of a CSR.
The following sub-sections define formats to support this conveyance, an optional mechanism to limit support to specific attestation types at the ASN.1 level, and bindings to the attribute and extension mechanisms used in certificate managment protocols.</t>
      <section anchor="attestationstatement-and-attestationbundle">
        <name>AttestationStatement and AttestationBundle</name>
        <t>The <tt>AttestationStatement</tt> structure (as shown in <xref target="code-AttestationStatement"/>) facilitates the representation of Evidence, Endorsements,
and Attestation Results generated by an Attester, Endorser, or Verifier for processing by a Verifier or Relying Party, such as verification by a CA/RA.</t>
        <ul spacing="normal">
          <li>
            <t>The <tt>type</tt> field is an OBJECT IDENTIFIER that identifies the format of the <tt>stmt</tt> field.</t>
          </li>
          <li>
            <t>The <tt>bindsPublicKey</tt> field indicates whether the attestation in the <tt>stmt</tt> field is cryptographically bound to the public key included in the CSR.</t>
          </li>
          <li>
            <t>The <tt>stmt</tt> field contains the attestation for processing, constrained by the <tt>type</tt> field. Formats that are not defined using ASN.1 <bcp14>MUST</bcp14> define an ASN.1 wrapper for use with the <tt>AttestationStatement</tt> structure.
For example, a CBOR-encoded format may be defined as an OCTET STRING for <tt>AttestationStatement</tt> purposes, where the contents of the OCTET STRING are the CBOR-encoded data.</t>
          </li>
          <li>
            <t>The <tt>attrs</tt> field enables the inclusion of <tt>Attribute</tt> values that may inform the verification of the <tt>stmt</tt>. This specification does not define any <tt>Attribute</tt> instances.</t>
          </li>
          <li>
            <t>The <tt>attrs</tt> field is not bound to the <tt>type</tt> of attestation to facilitate reuse of attribute types across attestation statement types and to allow for parsing of an <tt>AttestationStatement</tt> with no knowledge of the details of a specific <tt>type</tt>.</t>
          </li>
        </ul>
        <figure anchor="code-AttestationStatement">
          <name>Definition of AttestationStatement</name>
          <artwork><![CDATA[
ATTESTATION-STATEMENT ::= TYPE-IDENTIFIER

AttestAttrSet ATTRIBUTE ::= { ... }

AttestationStatement ::= SEQUENCE {
   type   ATTESTATION-STATEMENT.&id({AttestationStatementSet}),
   bindsPublicKey [0] BOOLEAN DEFAULT TRUE,
   stmt   ATTESTATION-STATEMENT.&Type({AttestationStatementSet}{@type}),
   attrs  [1] Attributes {{AttestAttrSet}} OPTIONAL
}
]]></artwork>
        </figure>
        <t>In some cases, a CA may require CSRs to include a variety of claims, which may require the cooperation of more than one Attester.
Similarly, a RA/CA may outsource verification of claims from different Attesters to a single Verifier.
The <tt>AttestationBundle</tt> structure, <xref target="code-AttestationBundle"/>, facilitates the representation of one or more <tt>AttestationStatement</tt> structures along with an <bcp14>OPTIONAL</bcp14> collection of certificates that may be useful for certification path building and validation to verify each <tt>AttestationStatement</tt>. <tt>AttestationBundle</tt> is the structure included in a CSR attribute or extension.</t>
        <figure anchor="code-AttestationBundle">
          <name>Definition of AttestationBundle</name>
          <artwork><![CDATA[
AttestationBundle ::= SEQUENCE {
   attestations SEQUENCE SIZE (1..MAX) OF AttestationStatement,
   certs SEQUENCE SIZE (1..MAX) OF LimitedCertChoices OPTIONAL,
}
]]></artwork>
        </figure>
        <t>At least one element in the <tt>attestations</tt> field <bcp14>SHOULD</bcp14> contain an attestation that is cryptographically bound to the public key that is the subject of the CSR containing the <tt>AttestationBundle</tt>.</t>
        <t>The <tt>CertificateChoices</tt> structure defined in <xref target="RFC6268"/>, and reproduced below along with <tt>OtherCertificateFormat</tt>, allows for carrying certificates in the default X.509 <xref target="RFC5280"/> format, or in other non-X.509 certificate formats. <tt>CertificateChoices</tt> <bcp14>MUST</bcp14> only contain certificate or other. In this context, <tt>CertificateChoices</tt> <bcp14>MUST NOT</bcp14> contain <tt>extendedCertificate</tt>, <tt>v1AttrCert</tt>, or <tt>v2AttrCert</tt>. Note that for non-ASN.1 certificate formats, the <tt>CertificateChoices</tt> <bcp14>MUST</bcp14> contain <tt>other</tt> with an <tt>OTHER-CERT-FMT.Type</tt> of <tt>OCTET STRING</tt> and data consistent with <tt>OTHER-CERT-FMT.id</tt>. <tt>LimitedCertChoices</tt> is defined to limit the available options to <tt>certificate</tt> and <tt>other</tt>.</t>
        <artwork><![CDATA[
   CertificateChoices ::= CHOICE {
     certificate Certificate,
     extendedCertificate [0] IMPLICIT ExtendedCertificate,
          -- Obsolete
     ...,
     [[3: v1AttrCert [1] IMPLICIT AttributeCertificateV1]],
          -- Obsolete
     [[4: v2AttrCert [2] IMPLICIT AttributeCertificateV2]],
     [[5: other      [3] IMPLICIT OtherCertificateFormat]] }
   OTHER-CERT-FMT ::= TYPE-IDENTIFIER

   OtherCertificateFormat ::= SEQUENCE {
     otherCertFormat OTHER-CERT-FMT.
             &id({SupportedCertFormats}),
     otherCert       OTHER-CERT-FMT.
             &Type({SupportedCertFormats}{@otherCertFormat})}

LimitedCertChoices ::= CertificateChoices (WITH COMPONENTS {\
                                                 certificate, other})
]]></artwork>
        <t>The <tt>certs</tt> field contains a set of certificates that
may be used to validate an <tt>AttestationStatement</tt>
contained in <tt>attestations</tt>. For each <tt>AttestationStatement</tt>, the set of certificates <bcp14>SHOULD</bcp14> contain
the certificate that contains the public key needed to directly validate the
<tt>AttestationStatement</tt>, unless the signing key is expected to be known to the Verifier or is embedded within the <tt>AttestationStatement</tt>. Additional certificates <bcp14>MAY</bcp14> be provided, for example, to chain the
attestation key back to a trust anchor. No specific order of the certificates in <tt>certs</tt> should be expected because certificates contained in <tt>certs</tt> may be needed to validate different <tt>AttestationStatement</tt> instances.</t>
        <t>This specification places no restriction on mixing certificate types within the <tt>certs</tt> field. For example a non-X.509 attestation 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>
      </section>
      <section anchor="attestationstatementset">
        <name>AttestationStatementSet</name>
        <figure anchor="code-AttestationStatementSet">
          <name>Definition of AttestationStatementSet</name>
          <artwork><![CDATA[
AttestationStatementSet ATTESTATION-STATEMENT ::= {
   ... -- None defined in this document --
}
]]></artwork>
        </figure>
        <t>The expression illustrated in <xref target="code-AttestationStatementSet"/> maps ASN.1 Types
for attestation statements to the OIDs
that identify them. These mappings are used to construct
or parse <tt>AttestationStatement</tt> objects that appear in an <tt>AttestationBundle</tt>. Attestation statements are typically
defined in other IETF standards, in standards produced by other standards bodies,
or as vendor proprietary formats along with corresponding OIDs that identify them.
<tt>AttestationStatementSet</tt> is left unconstrained in this document. However, implementers <bcp14>MAY</bcp14>
populate it with the formats that they wish to support.</t>
      </section>
      <section anchor="csr-attribute-and-extension">
        <name>CSR 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.</t>
        <figure anchor="code-extensions">
          <name>Definitions of CSR attribute and extension</name>
          <artwork><![CDATA[
id-aa-attestation OBJECT IDENTIFIER ::= { id-aa 59 }

-- For PKCS#10
attr-attestations ATTRIBUTE ::= {
  TYPE AttestationBundle
  COUNTS MAX 1
  IDENTIFIED BY id-aa-attestation
}

-- For CRMF
ext-attestations EXTENSION ::= {
  SYNTAX AttestationBundle
  IDENTIFIED BY id-aa-attestation
}
]]></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 information about the end entity's hardware environment.</t>
        <t>Due to the nature of the PKIX ASN.1 classes <xref target="RFC5912"/>, there are multiple ways to convey multiple attestation statements: by including multiple copies of <tt>attr-attestations</tt> or <tt>ext-attestations</tt>, multiple values within the attribute or extension, and finally, by including multiple <tt>AttestationStatement</tt> structures within an <tt>AttestationBundle</tt>. The latter is the preferred way to carry multiple Attestations statements. Implementations <bcp14>MUST NOT</bcp14> place multiple copies of <tt>attr-attestations</tt> into a PKCS#10 CSR due to the <tt>COUNTS MAX 1</tt> declaration. In a CRMF CSR, implementers <bcp14>SHOULD NOT</bcp14> place multiple <tt>AttestationBundle</tt> instances in <tt>ext-attestations</tt>.</t>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>IANA is requested to allocate a value from the "SMI Security for PKIX Module Identifier"
registry for the included ASN.1 module, and to allocate a value from "SMI Security for
S/MIME Attributes" to identify an attribute defined within.</t>
      <section anchor="module-registration-smi-security-for-pkix-module-identifier">
        <name>Module Registration - SMI Security for PKIX Module Identifier</name>
        <t>IANA is asked to register the following within the registry id-mod
SMI Security for PKIX Module Identifier (1.3.6.1.5.5.7.0).</t>
        <ul spacing="normal">
          <li>
            <t>Decimal: IANA Assigned - <strong>Replace TBDMOD</strong></t>
          </li>
          <li>
            <t>Description: CSR-ATTESTATION-2025 - id-mod-pkix-attest-01</t>
          </li>
          <li>
            <t>References: This Document</t>
          </li>
        </ul>
      </section>
      <section anchor="object-identifier-registrations-smi-security-for-smime-attributes">
        <name>Object Identifier Registrations - SMI Security for S/MIME Attributes</name>
        <t>IANA is asked to register the following within the registry id-aa
SMI Security for S/MIME Attributes (1.2.840.113549.1.9.16.2).</t>
        <ul spacing="normal">
          <li>
            <t>Attestation Statement</t>
          </li>
          <li>
            <t>Decimal: IANA Assigned - This was early-allocated as <tt>59</tt> so that we could generate the sample data.</t>
          </li>
          <li>
            <t>Description: id-aa-attestation</t>
          </li>
          <li>
            <t>References: This Document</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>This document defines a structure to convey
attestations as additional information in CSRs, as well as an extension to convey that structure in the
Certification Request Message defined in {<xref target="RFC2986"/>} and an attribute to convey that structure in the
Certificate Request Message Format defined in {<xref target="RFC4211"/>}.
The CA/RA that receives the CSR may choose to verify the attestation(s) to determine if an issuance policy is met, or which of a suite of policies is satisfied. The CA/RA is also free to discard the additional information without processing.</t>
      <t>The remainder of this section identifies security considerations that apply when the CA/RA chooses to verify the attestation as part of the evaluation of a CSR.</t>
      <section anchor="binding-attestations-to-the-csrs-public-key">
        <name>Binding Attestations to the CSR's Public Key</name>
        <t>Regardless of the topological model, the CA/RA is ultimately responsible for validating the binding between the public key and the attestation(s) in the CSR. For CAs issuing in conformance with the CA/Browser Forum’s Code Signing Baseline Requirements, this means verifying the attestation of HSM generation pertains to the public key in the CSR.</t>
        <t>Multiple attestations from multiple sources, as envisioned in <xref target="RFC9334"/>, can introduce additional complications as shown in the following example.</t>
        <t>For example, a CA may have an issuance policy that requires key generation in an HSM on a company-owned platform in a known good state.
The CSR might contain three AttestationStatements originated by three different attesters:</t>
        <ol spacing="normal" type="1"><li>
            <t>an Evidence that a key pair was generated in an HSM;</t>
          </li>
          <li>
            <t>an Endorsement that states a particular platform is company-owned; and</t>
          </li>
          <li>
            <t>an Attestation Result stating a particular platform was in a known good state (e.g, up to date on patches, etc.).</t>
          </li>
        </ol>
        <t>While each of these attestations may be independently correct, the CA/RA is responsible for confirming the attestations apply in concert to the public key in the CSR. That is, the CA/RA must analyze the attestations to ensure that:</t>
        <ol spacing="normal" type="1"><li>
            <t>the attestation of HSM generation in AttestationStatement 1 applies to the public key in the CSR;</t>
          </li>
          <li>
            <t>the attestation of company ownership in AttestationStatement 2 applies to the platform that contains the HSM; and</t>
          </li>
          <li>
            <t>the attestation that a platform was in a known good state in AttestationStatement 3 applies to the platform that contains the HSM.</t>
          </li>
        </ol>
      </section>
      <section anchor="freshness">
        <name>Freshness</name>
        <t>To avoid replay attacks, the CA/RA may choose to ignore attestations that are stale, or whose freshness cannot be determined. Mechanisms to address freshness and their application to the RATS topological models are discussed in <xref target="RFC9334"/>. Other mechanisms for determining freshness may be used as the CA/RA deems appropriate.</t>
      </section>
      <section anchor="relationship-of-attestations-and-certificate-extensions">
        <name>Relationship of Attestations and Certificate Extensions</name>
        <t>Attestations are intended as additional information in the issuance process, and may include sensitive information about the platform, such as hardware details or patch levels, or device ownership. It is <bcp14>NOT RECOMMENDED</bcp14> for a CA to copy attestations into the published certificate. CAs that choose to republish attestations in certificates <bcp14>SHOULD</bcp14> review the contents and delete any sensitive information.</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 which this specification depends: PKCS#10 <xref target="RFC2986"/>, CRMF <xref target="RFC4211"/>, as well as general security concepts relating to remote attestation; many of these concepts are discussed in <xref section="6" sectionFormat="of" target="RFC9334"/>, <xref section="7" sectionFormat="of" target="RFC9334"/>, <xref section="9" sectionFormat="of" target="RFC9334"/>, <xref section="11" sectionFormat="of" target="RFC9334"/>, and <xref section="12" sectionFormat="of" target="RFC9334"/>. Implementers should also be aware of any security considerations relating to the specific attestation formats being carried within the CSR.
 </t>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC9334">
          <front>
            <title>Remote ATtestation procedureS (RATS) Architecture</title>
            <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
            <author fullname="D. Thaler" initials="D." surname="Thaler"/>
            <author fullname="M. Richardson" initials="M." surname="Richardson"/>
            <author fullname="N. Smith" initials="N." surname="Smith"/>
            <author fullname="W. Pan" initials="W." surname="Pan"/>
            <date month="January" year="2023"/>
            <abstract>
              <t>In network protocol exchanges, it is often useful for one end of a communication to know whether the other end is in an intended operating state. This document provides an architectural overview of the entities involved that make such tests possible through the process of generating, conveying, and evaluating evidentiary Claims. It provides a model that is neutral toward processor architectures, the content of Claims, and protocols.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9334"/>
          <seriesInfo name="DOI" value="10.17487/RFC9334"/>
        </reference>
        <reference anchor="RFC6268">
          <front>
            <title>Additional New ASN.1 Modules for the Cryptographic Message Syntax (CMS) and the Public Key Infrastructure Using X.509 (PKIX)</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <author fullname="S. Turner" initials="S." surname="Turner"/>
            <date month="July" year="2011"/>
            <abstract>
              <t>The Cryptographic Message Syntax (CMS) format, and many associated formats, are expressed using ASN.1. The current ASN.1 modules conform to the 1988 version of ASN.1. This document updates some auxiliary ASN.1 modules to conform to the 2008 version of ASN.1; the 1988 ASN.1 modules remain the normative version. There are no bits- on-the-wire changes to any of the formats; this is simply a change to the syntax. This document is not an Internet Standards Track specification; it is published for informational purposes.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6268"/>
          <seriesInfo name="DOI" value="10.17487/RFC6268"/>
        </reference>
        <reference anchor="RFC5912">
          <front>
            <title>New ASN.1 Modules for the Public Key Infrastructure Using X.509 (PKIX)</title>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="June" year="2010"/>
            <abstract>
              <t>The Public Key Infrastructure using X.509 (PKIX) certificate format, and many associated formats, are expressed using ASN.1. The current ASN.1 modules conform to the 1988 version of ASN.1. This document updates those ASN.1 modules to conform to the 2002 version of ASN.1. There are no bits-on-the-wire changes to any of the formats; this is simply a change to the syntax. This document is not an Internet Standards Track specification; it is published for informational purposes.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5912"/>
          <seriesInfo name="DOI" value="10.17487/RFC5912"/>
        </reference>
        <reference anchor="RFC4211">
          <front>
            <title>Internet X.509 Public Key Infrastructure Certificate Request Message Format (CRMF)</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="September" year="2005"/>
            <abstract>
              <t>This document describes the Certificate Request Message Format (CRMF) syntax and semantics. This syntax is used to convey a request for a certificate to a Certification Authority (CA), possibly via a Registration Authority (RA), for the purposes of X.509 certificate production. The request will typically include a public key and the associated registration information. This document does not define a certificate request protocol. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4211"/>
          <seriesInfo name="DOI" value="10.17487/RFC4211"/>
        </reference>
        <reference anchor="RFC2986">
          <front>
            <title>PKCS #10: Certification Request Syntax Specification Version 1.7</title>
            <author fullname="M. Nystrom" initials="M." surname="Nystrom"/>
            <author fullname="B. Kaliski" initials="B." surname="Kaliski"/>
            <date month="November" year="2000"/>
            <abstract>
              <t>This memo represents a republication of PKCS #10 v1.7 from RSA Laboratories' Public-Key Cryptography Standards (PKCS) series, and change control is retained within the PKCS process. The body of this document, except for the security considerations section, is taken directly from the PKCS #9 v2.0 or the PKCS #10 v1.7 document. This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2986"/>
          <seriesInfo name="DOI" value="10.17487/RFC2986"/>
        </reference>
        <reference anchor="RFC5280">
          <front>
            <title>Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile</title>
            <author fullname="D. Cooper" initials="D." surname="Cooper"/>
            <author fullname="S. Santesson" initials="S." surname="Santesson"/>
            <author fullname="S. Farrell" initials="S." surname="Farrell"/>
            <author fullname="S. Boeyen" initials="S." surname="Boeyen"/>
            <author fullname="R. Housley" initials="R." surname="Housley"/>
            <author fullname="W. Polk" initials="W." surname="Polk"/>
            <date month="May" year="2008"/>
            <abstract>
              <t>This memo profiles the X.509 v3 certificate and X.509 v2 certificate revocation list (CRL) for use in the Internet. An overview of this approach and model is provided as an introduction. The X.509 v3 certificate format is described in detail, with additional information regarding the format and semantics of Internet name forms. Standard certificate extensions are described and two Internet-specific extensions are defined. A set of required certificate extensions is specified. The X.509 v2 CRL format is described in detail along with standard and Internet-specific extensions. An algorithm for X.509 certification path validation is described. An ASN.1 module and examples are provided in the appendices. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5280"/>
          <seriesInfo name="DOI" value="10.17487/RFC5280"/>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC8126">
          <front>
            <title>Guidelines for Writing an IANA Considerations Section in RFCs</title>
            <author fullname="M. Cotton" initials="M." surname="Cotton"/>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <author fullname="T. Narten" initials="T." surname="Narten"/>
            <date month="June" year="2017"/>
            <abstract>
              <t>Many protocols make use of points of extensibility that use constants to identify various protocol parameters. To ensure that the values in these fields do not have conflicting uses and to promote interoperability, their allocations are often coordinated by a central record keeper. For IETF protocols, that role is filled by the Internet Assigned Numbers Authority (IANA).</t>
              <t>To make assignments in a given registry prudently, guidance describing the conditions under which new values should be assigned, as well as when and how modifications to existing values can be made, is needed. This document defines a framework for the documentation of these guidelines by specification authors, in order to assure that the provided guidance for the IANA Considerations is clear and addresses the various issues that are likely in the operation of a registry.</t>
              <t>This is the third edition of this document; it obsoletes RFC 5226.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="26"/>
          <seriesInfo name="RFC" value="8126"/>
          <seriesInfo name="DOI" value="10.17487/RFC8126"/>
        </reference>
        <reference anchor="I-D.ietf-rats-msg-wrap">
          <front>
            <title>RATS Conceptual Messages Wrapper (CMW)</title>
            <author fullname="Henk Birkholz" initials="H." surname="Birkholz">
              <organization>Fraunhofer SIT</organization>
            </author>
            <author fullname="Ned Smith" initials="N." surname="Smith">
              <organization>Independent</organization>
            </author>
            <author fullname="Thomas Fossati" initials="T." surname="Fossati">
              <organization>Linaro</organization>
            </author>
            <author fullname="Hannes Tschofenig" initials="H." surname="Tschofenig">
              <organization>University of Applied Sciences Bonn-Rhein-Sieg</organization>
            </author>
            <author fullname="Dionna Glaze" initials="D." surname="Glaze">
              <organization>Google LLC</organization>
            </author>
            <date day="11" month="December" year="2025"/>
            <abstract>
              <t>   The Conceptual Messages introduced by the RATS architecture (RFC
   9334) are protocol-agnostic data units that are conveyed between RATS
   roles during remote attestation procedures.  Conceptual Messages
   describe the meaning and function of such data units within RATS data
   flows without specifying a wire format, encoding, transport
   mechanism, or processing details.  The initial set of Conceptual
   Messages is defined in Section 8 of RFC 9334 and includes Evidence,
   Attestation Results, Endorsements, Reference Values, and Appraisal
   Policies.

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

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

   The goal is to improve the interoperability and flexibility of remote
   attestation protocols.  Introducing a shared message format such as
   CMW enables consistent support for different attestation message
   types, evolving message serialization formats without breaking
   compatibility, and avoiding the need to redefine how messages are
   handled within each protocol.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-rats-msg-wrap-23"/>
        </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="RFC9683">
          <front>
            <title>Remote Integrity Verification of Network Devices Containing Trusted Platform Modules</title>
            <author fullname="G. C. Fedorkow" initials="G. C." role="editor" surname="Fedorkow"/>
            <author fullname="E. Voit" initials="E." surname="Voit"/>
            <author fullname="J. Fitzgerald-McKay" initials="J." surname="Fitzgerald-McKay"/>
            <date month="December" year="2024"/>
            <abstract>
              <t>This document describes a workflow for remote attestation of the integrity of firmware and software installed on network devices that contain Trusted Platform Modules (TPMs), as defined by the Trusted Computing Group (TCG), or equivalent hardware implementations that include the protected capabilities, as provided by TPMs.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9683"/>
          <seriesInfo name="DOI" value="10.17487/RFC9683"/>
        </reference>
        <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="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>
      </references>
    </references>
    <?line 358?>

<section anchor="examples">
      <name>Examples</name>
      <t>Examples and sample data will be collected in the "CSR Attestation Sample Data" GitHub repository <xref target="SampleData"/>.</t>
    </section>
    <section anchor="asn1-module">
      <name>ASN.1 Module</name>
      <artwork><![CDATA[
=============== NOTE: '\' line wrapping per RFC 8792 ================

CSR-ATTESTATION-2025
  { iso(1) identified-organization(3) dod(6) internet(1) security(5)
  mechanisms(5) pkix(7) id-mod(0) id-mod-pkix-attest-01(TBDMOD) }

DEFINITIONS IMPLICIT TAGS ::= BEGIN

EXPORTS ALL;

IMPORTS

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

CertificateChoices, Attributes{}
  FROM CryptographicMessageSyntax-2010 -- from [RFC6268]
    { 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-2009
    { iso(1) member-body(2) us(840) rsadsi(113549)
    pkcs(1) pkcs-9(9) smime(16) modules(0) msg-v3dot1-02(39) }
  ;

ATTESTATION-STATEMENT ::= TYPE-IDENTIFIER

AttestationStatementSet ATTESTATION-STATEMENT ::= {
   ... -- None defined in this document --
}

AttestAttrSet ATTRIBUTE ::= { ... }

AttestationStatement ::= SEQUENCE {
   type   ATTESTATION-STATEMENT.&id({AttestationStatementSet}),
   bindsPublicKey [0] BOOLEAN DEFAULT TRUE,
   stmt   ATTESTATION-STATEMENT.&Type(
              {AttestationStatementSet}{@type}),
   attrs  [1] Attributes {{AttestAttrSet}} OPTIONAL
}

-- Arc for Attestation types
id-aa-attestation OBJECT IDENTIFIER ::= { id-aa 59 }

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

-- For CRMF (Attestation)
ext-attestation EXTENSION ::= {
  SYNTAX AttestationBundle
  IDENTIFIED BY id-aa-attestation
}

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

AttestationBundle ::= SEQUENCE {
   attestations SEQUENCE SIZE (1..MAX) OF AttestationStatement,
   certs SEQUENCE SIZE (1..MAX) OF LimitedCertChoices OPTIONAL
}

END
]]></artwork>
    </section>
    <section anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>This specification is the work of a design team created by the chairs of the
LAMPS working group. The following persons, in no specific order,
contributed to the work directly, participated in design team meetings, or provided review of the document.</t>
      <t>Richard Kettlewell, Chris Trufan, Bruno Couillard,
Jean-Pierre Fiset, Sander Temme, Jethro Beekman, Zsolt Rózsahegyi, Ferenc
Pető, Mike Agrenius Kushner, Tomas Gustavsson, Dieter Bong, Christopher Meyer, Carl Wallace, Michael Richardson, Tomofumi Okubo, Olivier
Couillard, John Gray, Eric Amador, Giri Mandyam, Darren Johnson, Herman Slatman, Tiru Reddy, James Hagborg, A.J. Stein, John Kemp, Daniel Migault and Russ Housley.</t>
      <t>We would like to specifically thank Mike StJohns for his work on an initial
version of this draft. Additionally, we would like to thank Andreas Kretschmer, Hendrik Brockhaus,
David von Oheimb, Corey Bonnell, and Thomas Fossati for their feedback based on implementation
experience.</t>
      <t>Close to the end of the specification development process, the working group chairs, Russ Housley and Tim Hollebeek, reached out to Steve Hanna, Tim Polk, and Carl Wallace to help improve the document and resolve contentious issues. Their contributions substantially impacted the final outcome of the document.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
yQ3EqHWw2wQBjPKFWpf//wGbHF2hg2UAAA==

-->

</rfc>
