<?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.34 (Ruby 3.4.9) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-lamps-csr-attestation-24" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.32.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-24"/>
    <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>mwiseman@computer.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="27"/>
    <keyword>PKI</keyword>
    <keyword>PKCS#10</keyword>
    <keyword>CRMF</keyword>
    <keyword>Attestation</keyword>
    <keyword>Certificate Signing Requests</keyword>
    <abstract>
      <?line 85?>

<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 ASN.1 structures which may carry attestation data for PKCS#10 and Certificate
Request Message Format (CRMF) messages. Both standardized and proprietary attestation formats are supported by this specification.</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 91?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Certification Authorities (CAs) issuing certificates to PKI end entities may require a certificate signing request (CSR) 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 and also contains claims of attributes of the key pair with respect to its protection, use and extractability. 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.  However, if a certificate requester does not include the number and types of attestations required by the CA, it is unlikely the requester will receive the requested certificate.</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 CA/RA acting as a Verifier.
An CA/RA 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 CA/RA 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 CA/RA 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>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>
        </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}),
   stmt   ATTESTATION-STATEMENT.&Type({AttestationStatementSet}{@type})
}
]]></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 CA/RA 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>Multiple different types of <tt>AttestationStatement</tt>(s) may be included within a single top-level <tt>AttestationBundle</tt>.  Note that this document does not require the <tt>AttestationBundle.attestations</tt> field to contain only one <tt>AttestationStatement</tt> of a given type.  For example, if a given type is a "wrapper" type containing the conceptual message wrapper (CMW) structure <xref target="I-D.ietf-rats-msg-wrap"/>, multiple copies of a CMW-typed AttestationStatement may be included.</t>
        <t>Per <xref target="RFC5280"/> no more than one instance of a given type of Extension may be carried within an Extensions structure, so an Extensions structure <bcp14>MUST</bcp14> contain no more than one Extension of type <tt>id-aa-attestation</tt>.</t>
        <t>PKCS#10 uses the legacy structures <tt>Attributes</tt> and <tt>Attribute</tt> rather than the later defined <tt>SingleAttribute</tt> and <tt>AttributeSet</tt> structures - all of which are defined against the ATTRIBUTE ASN.1 CLASS.  The ATTRIBUTE CLASS has a <tt>COUNTS MAX n</tt> clause which can be used to limit the copies of ATTRIBUTE related structures.  For the purposes of this document the <tt>COUNTS MAX 1</tt> clause in the <tt>attr-attestation</tt> shall be taken to mean the following:
* An Attributes structure carried within a PKCS#10 CSR <bcp14>MUST</bcp14> contain no more than one Attribute of type <tt>id-aa-attestation</tt>.
* An Attribute of type <tt>id-aa-attestation</tt> <bcp14>MUST</bcp14> contain exactly one copy of an <tt>AttestationBundle</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 - Note: .59 has already been early-allocated as "id-aa-evidence" referencing this document, so the request is to change the name of this entry to "id-aa-attestation" and leave the allocation of .59 as-is.</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>A CA which accepts or requires attestation(s) <bcp14>SHOULD</bcp14> document its requirements with its Certification Practice Statement(s).</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 and protection is cryptographically bound 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 357?>

<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[
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

CertificateChoices
  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
  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 --
}

AttestationStatement ::= SEQUENCE {
   type   ATTESTATION-STATEMENT.&id({AttestationStatementSet}),
   stmt   ATTESTATION-STATEMENT.&Type(
              {AttestationStatementSet}{@type})
}

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

-- Allow either X.509 or OTHER-CERT certificates
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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
9AKAUb5Um/L/f5offYP0ZQAA

-->

</rfc>
