<?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.1 (Ruby 3.0.2) -->
<?rfc rfcedstyle="yes"?>
<?rfc tocindent="yes"?>
<?rfc strict="yes"?>
<?rfc comments="yes"?>
<?rfc inline="yes"?>
<?rfc text-list-symbols="-o*+"?>
<?rfc docmapping="yes"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-tschofenig-lamps-nonce-cmp-est-00" category="std" consensus="true" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.18.1 -->
  <front>
    <title abbrev="Nonce Extension for CMP/EST">Nonce-based Freshness for Remote Attestation in Certificate Signing Requests (CSRs) for the Certification Management Protocol (CMP) and for Enrollment over Secure Transport (EST)</title>
    <seriesInfo name="Internet-Draft" value="draft-tschofenig-lamps-nonce-cmp-est-00"/>
    <author initials="H." surname="Tschofenig" fullname="Hannes Tschofenig">
      <organization>Siemens</organization>
      <address>
        <email>hannes.tschofenig@siemens.com</email>
      </address>
    </author>
    <author initials="H." surname="Brockhaus" fullname="Hendrik Brockhaus">
      <organization>Siemens</organization>
      <address>
        <email>hendrik.brockhaus@siemens.com</email>
      </address>
    </author>
    <date year="2023" month="October" day="23"/>
    <area>Security</area>
    <workgroup>LAMPS</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <?line 57?>

<t>Certificate Management Protocol (CMP) and Enrollment over Secure
Transport (EST) define protocol messages for X.509v3 certificate
creation and management. Both protocol provide interactions
between client systems and PKI management entities, such as a Registration
Authority (RA) and a Certification Authority (CA).</t>
      <t>CMP and EST allow an RA/CA to inform an end entity about the information
it has to provide in a certification request. When an end entity
places attestation Evidence in a Certificate Signing Request (CSR)
it may need to demonstrate freshness of the provided Evidence.
Attestation technology today often accomplishes this task via the
help of nonces.</t>
      <t>This document specifies how nonces are provided by an RA/CA to
the end entity for inclusion in Evidence.</t>
    </abstract>
  </front>
  <middle>
    <?line 75?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Several protocols have been standardized to automate the management
of certificates, such as certificate issuance, CA certificate provisioning,
certificate renewal and certificate revocation.</t>
      <t>The Certificate Management Protocol (CMP) <xref target="I-D.ietf-lamps-rfc4210bis"/>
defines protocol messages for X.509v3 certificate creation and
management. CMP provides interactions between end entities and
PKI components, such as a Registration Authority (RA) and a
Certification Authority (CA).</t>
      <t>Enrollment over Secure Transport (EST) <xref target="RFC7030"/> is another
certificate management protocol, which provides a sub-set
of the features offered by CMP.</t>
      <t>An end entity requesting a certificate from a Certification Authority (CA)
may wish to offer believable claims about the protections afforded
to the corresponding private key, such as whether the private key
resides on a hardware security module or the protection capabilities
provided by the hardware, and claims about the platform itself.</t>
      <t>To convey these claims in Evidence, as part of remote attestation,
the remote attestation extension <xref target="I-D.ietf-lamps-csr-attestation"/> has
been defined. It describes how to encode Evidence produced by an Attester
for inclusion in Certificate Signing Requests (CSRs), and any
certificates necessary for validating it.</t>
      <t>A Verifier or Relying Party might need to learn the point in time
an Evidence has been produced.  This is essential in deciding whether
the included Claims can be considered fresh, meaning they still reflect
the latest state of the Attester.</t>
      <t>Attestation technology available today, such as <xref target="TPM20"/> and
<xref target="I-D.tschofenig-rats-psa-token"/>, often accomplish freshness with
the help of nonces. More details about ensuring freshness of Evidence
can be found in Section 10 of <xref target="RFC9334"/>.</t>
      <t>Since an end entity needs to obtain a nonce from the Verifier via the
Relying Party, this leads to an additional roundtrip. The CSR is, however,
a one-shot message. For this reason CMP and EST are used by the end entity
to obtain the nonce from the RA/CA.</t>
      <t>CMP and EST conveniently offer a mechanism to request
information from the RA/CA prior to a certification request.</t>
      <t>Once the nonce
is obtained the end entity can issue an API call to the Attester
to request Evidence and passes the nonce as an input parameter
into the API call. The returned Evidence is then embedded into
a CSR and returned to the RA/CA in a certification request message.</t>
      <t><xref target="fig-arch"/> shows this interaction graphically. The nonce is obtained
in step (1) using the extension to CMP/EST defined in this document.
The CSR extension of <xref target="I-D.ietf-lamps-csr-attestation"/> is used to
convey Evidence to the RA/CA in step (2). The Verifier processes the
received information and returns an Attestation Result to the Relying
Party in step (3).</t>
      <figure anchor="fig-arch">
        <name>Architecture with Background Check Model.</name>
        <artset>
          <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="352" width="448" viewBox="0 0 448 352" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 8,176 L 8,320" fill="none" stroke="black"/>
              <path d="M 48,240 L 48,272" fill="none" stroke="black"/>
              <path d="M 112,176 L 112,320" fill="none" stroke="black"/>
              <path d="M 240,32 L 240,96" fill="none" stroke="black"/>
              <path d="M 240,176 L 240,200" fill="none" stroke="black"/>
              <path d="M 240,216 L 240,320" fill="none" stroke="black"/>
              <path d="M 280,104 L 280,208" fill="none" stroke="black"/>
              <path d="M 320,104 L 320,240" fill="none" stroke="black"/>
              <path d="M 344,104 L 344,168" fill="none" stroke="black"/>
              <path d="M 368,32 L 368,96" fill="none" stroke="black"/>
              <path d="M 368,176 L 368,320" fill="none" stroke="black"/>
              <path d="M 240,32 L 368,32" fill="none" stroke="black"/>
              <path d="M 240,96 L 368,96" fill="none" stroke="black"/>
              <path d="M 8,176 L 112,176" fill="none" stroke="black"/>
              <path d="M 240,176 L 272,176" fill="none" stroke="black"/>
              <path d="M 288,176 L 312,176" fill="none" stroke="black"/>
              <path d="M 328,176 L 368,176" fill="none" stroke="black"/>
              <path d="M 120,208 L 280,208" fill="none" stroke="black"/>
              <path d="M 120,240 L 232,240" fill="none" stroke="black"/>
              <path d="M 248,240 L 320,240" fill="none" stroke="black"/>
              <path d="M 8,320 L 112,320" fill="none" stroke="black"/>
              <path d="M 240,320 L 368,320" fill="none" stroke="black"/>
              <polygon class="arrowhead" points="352,168 340,162.4 340,173.6" fill="black" transform="rotate(90,344,168)"/>
              <polygon class="arrowhead" points="328,104 316,98.4 316,109.6" fill="black" transform="rotate(270,320,104)"/>
              <polygon class="arrowhead" points="240,240 228,234.4 228,245.6" fill="black" transform="rotate(0,232,240)"/>
              <polygon class="arrowhead" points="128,208 116,202.4 116,213.6" fill="black" transform="rotate(180,120,208)"/>
              <polygon class="arrowhead" points="56,272 44,266.4 44,277.6" fill="black" transform="rotate(90,48,272)"/>
              <polygon class="arrowhead" points="56,240 44,234.4 44,245.6" fill="black" transform="rotate(270,48,240)"/>
              <g class="text">
                <text x="300" y="68">Verifier</text>
                <text x="392" y="116">(3)</text>
                <text x="400" y="132">Attestation</text>
                <text x="396" y="148">Result</text>
                <text x="168" y="164">(1)</text>
                <text x="160" y="180">Nonce</text>
                <text x="196" y="180">in</text>
                <text x="152" y="196">CMP</text>
                <text x="180" y="196">or</text>
                <text x="208" y="196">EST</text>
                <text x="40" y="212">End</text>
                <text x="52" y="228">Entity</text>
                <text x="172" y="260">Evidence</text>
                <text x="280" y="260">Relying</text>
                <text x="148" y="276">in</text>
                <text x="176" y="276">CSR</text>
                <text x="272" y="276">Party</text>
                <text x="328" y="276">(RA/CA)</text>
                <text x="60" y="292">Attester</text>
                <text x="168" y="292">(2)</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art"><![CDATA[
                              .---------------.
                              |               |
                              |   Verifier    |
                              |               |
                              '---------------'
                                   |    ^  |    (3)
                                   |    |  | Attestation
                                   |    |  |   Result
                    (1)            |    |  v
 .------------.   Nonce in    .----|----|-----.
 |            |   CMP or EST  |    |    |     |
 |  End       |<-------------------+    |     |
 |  Entity    |               |         |     |
 |    ^       |-------------->|---------'     |
 |    |       |   Evidence    | Relying       |
 |    v       |   in CSR      | Party (RA/CA) |
 |  Attester  |     (2)       |               |
 |            |               |               |
 '------------'               '---------------'
]]></artwork>
        </artset>
      </figure>
      <t>The functionality of this document is described in three
sections, namely:</t>
      <ul spacing="normal">
        <li>
          <t><xref target="CMP"/> describes how to convey the nonce CMP,</t>
        </li>
        <li>
          <t><xref target="EST"/> offers the equivalent functionality for EST, and</t>
        </li>
        <li>
          <t><xref target="asn.1"/> contains the ASN.1 description.</t>
        </li>
      </ul>
    </section>
    <section anchor="terminology-and-requirements-language">
      <name>Terminology and Requirements Language</name>
      <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in RFC 2119 <xref target="RFC2119"/>.</t>
      <t>The terms Attester, Relying Party, Verifier and Evidence are defined
in <xref target="RFC9334"/>. The terms end entity, certification authority (CA),
and registration authority (RA) are defined in <xref target="RFC5280"/>.</t>
      <t>We use the terms Certificate Signing Request (CSR) and certification
request interchangeably.</t>
    </section>
    <section anchor="CMP">
      <name>Conveying a Nonce in CMP</name>
      <t>Section 5.3.19.16 of <xref target="I-D.ietf-lamps-rfc4210bis"/> defines the
Certificate Request Template (CertReqTemplate) message for use with CMP.
The CertReqTemplateContent payload, which is sent by the CA/RA in
response to a request message by the end entity, contains the nonce.</t>
      <t>The use of the Certificate Request Template request/response message
exchange leads to an extra roundtrip to convey the nonce from the
CA/RA to the end entity (and ultimately to the Attester inside the
end entity).</t>
      <t>The end entity MUST construct a CertReqTemplate request message to trigger
the RA/CA to transmit a nonce in the response.</t>
      <t>When the RA/CA receive the CertReqTemplate request message profile
information is used to determine that the end entity supports this
specification as well as <xref target="I-D.ietf-lamps-csr-attestation"/>. [Open
Issue: Should request message indicate the remote attestation capability
of the end entity rather than relying on "policy information"? This may
also allow to inform the CA/RA about the type of attestation
technology/technologies available to the end entity.]</t>
      <t>If the end entity supports remote attestation and the policy requires Evidence
in a CSR to be provided, the RA/CA issues a CertReqTemplate response
containing a nonce in the template.</t>
      <t><xref target="fig-cmp-msg"/> showns the interaction graphically.</t>
      <figure anchor="fig-cmp-msg">
        <name>CMP Exchange with Nonce and Evidence.</name>
        <artwork><![CDATA[
End Entity                                          RA/CA
==========                                      =============

              -->>-- CertReqTemplate request -->>--
                                               Verify request
                                               Generate nonce*
                                               Create response
              --<<-- CertReqTemplate response --<<--
                     (nonce)
Generate key pair
Generate Evidence*
Generate certification request message
              -->>-- certification request -->>--
                    (+Evidence including nonce)
                                               Verify request
                                               Verify Evidence*
                                               Check for replay*
                                               Issue certificate
                                               Create response
              --<<-- certification response --<<--
Handle response
Store certificate

*: These steps require interactions with the Attester
(on the EE side) and with the Verifier (on the RA/CA side).
]]></artwork>
      </figure>
    </section>
    <section anchor="EST">
      <name>Conveying a Nonce in EST</name>
      <t>There are two ways an EST server can tell an EST client what
values to use in a CSR, namely using:</t>
      <ul spacing="normal">
        <li>
          <t>CSR Attributes Responses, as described in Section 4.5.2 of <xref target="RFC7030"/>, and</t>
        </li>
        <li>
          <t>Additional CSR attributes, as described in Appendix B of <xref target="RFC8295"/>.</t>
        </li>
      </ul>
      <t>The latter functionality corresponds to the use of CSR templates in <xref target="CMP"/>.
While this approach is preferred, an EST deployment may only support RFC 7030
and for this reason a CSR attribute to convey a nonce is defined.
Section 3.2 of <xref target="I-D.ietf-lamps-rfc7030-csrattrs"/> offers additional
clarifications for use of CSR attributes.</t>
    </section>
    <section anchor="nonce-processing-guidelines">
      <name>Nonce Processing Guidelines</name>
      <t>When the RA/CA is requested or configured to transmit a nonce to an
end entity then it interacts with the Verifier.
The Verifier is, according to the IETF RATS architecture <xref target="RFC9334"/>, "a role
performed by an entity that appraises the validity of Evidence about
an Attester and produces Attestation Results to be used by a Relying
Party." Since the Verifier validates Evidence it is also the source
of the nonce to check for replay.</t>
      <t>The nonce value MUST contain a random byte sequence whereby the length
depends on the used remote attestation technology.
Since the nonce is relayed with the RA/CA, it MUST be copied to
the respective structure, as described in <xref target="EST"/> and <xref target="CMP"/>, for
transmission to the Attester.</t>
      <t>For example, the PSA attestation token <xref target="I-D.tschofenig-rats-psa-token"/>
supports nonces of length 32, 48 and 64 bytes. Other attestation
technologies use nonces of similar length. The assumption in this
specification is that the RA/CA have out-of-band knowledge about the
required nonce length required for the attestation technology used by
the end entity. The nonces of incorrect length will cause the remote
attestation protocol to fail.</t>
      <t>When the end entity receives the nonce it MUST use it, if remote
attestation is available and supports nonces. It is better for an
RA/CA to be aggressive in sending a nonce, at least where there is a
reasonable chance the client supports remote attestation and the
client should be allowed to ignore the nonce if it either does not
support it or cannot use it for policy reasons.</t>
      <t>While the semantics of the attestation API and the software/hardware
architecture is out-of-scope of this specification, the API will return
Evidence from the Attester in a format specific to the attestation technology
utilized. The encoding of the returned evidence varies but will be placed
inside the CSR, as specified in <xref target="I-D.ietf-lamps-csr-attestation"/>. The
software creating the CSR will not have to interpret the Evidence format
- it is treated as an opaque blob. It is important to note that the
nonce is carried in the Evidence, either implicitly or explicitly, and
it MUST NOT be conveyed in CSR structures outside the Evidence payload.</t>
      <t>The processing of the CSR containing Evidence is described in
<xref target="I-D.ietf-lamps-csr-attestation"/>. Note that the issued certificates
does not contain the nonce, as explained in
<xref target="I-D.ietf-lamps-csr-attestation"/>.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>[Editor's Note: The ASN.1 module OID (TBD2) and the new private
extension (TBD1) must be registered.]</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>This specification adds a nonce to a Certificate Request Message Format
(CRMF) extension and to PKCS#10 attribute. This specification
assumes that the nonce does not require confidentiality protection
without impacting the security property of the remote attestation protocol.
<xref target="RFC9334"/> defines the IETF remote attestation architecture
discusses nonce-based freshness in more detail.</t>
      <t>For the use of Evidence in the CSR the security considerations of
<xref target="I-D.ietf-lamps-csr-attestation"/> are relevant to this document.</t>
    </section>
    <section anchor="asn.1">
      <name>ASN.1 Definitions</name>
      <artwork><![CDATA[
PKIX-CMP-KeyAttestationNonceExtn-2023
  { iso(1) identified-organization(3) dod(6) internet(1) security(5)
    mechanisms(5) pkix(7) id-mod(0) id-mod-evidenceNonce(TBD2) }

DEFINITIONS IMPLICIT TAGS ::= BEGIN

IMPORTS
  id-pe
    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) }
  EXTENSION
    FROM PKIX-CommonTypes-2009  -- From RFC 5912
      { iso(1) identified-organization(3) dod(6) internet(1) security(5)
        mechanisms(5) pkix(7) id-mod(0) id-mod-pkixCommon-02(57) } ;


id-pe-evidenceNonce OBJECT IDENTIFIER ::= { id-pe TBD1 }

EvidenceNonce ::= OCTET STRING

--
-- Evidence Nonce Attribute
--

-- For PKCS#10
attr-evidence ATTRIBUTE ::= {
  TYPE EvidenceNonce
  IDENTIFIED BY id-pe-evidenceNonce
}

--
-- Evidence Nonce Extension
--

-- For CRMF
ext-evidenceNonce EXTENSION ::= {
  TYPE EvidenceNonce
  IDENTIFIED BY id-pe-evidenceNonce
}

END

]]></artwork>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <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="I-D.ietf-lamps-csr-attestation">
          <front>
            <title>Use of Remote Attestation with Certificate Signing Requests</title>
            <author fullname="Mike Ounsworth" initials="M." surname="Ounsworth">
              <organization>Entrust Limited</organization>
            </author>
            <author fullname="Hannes Tschofenig" initials="H." surname="Tschofenig">
              <organization>Siemens</organization>
            </author>
            <author fullname="Henk Birkholz" initials="H." surname="Birkholz">
              <organization>Fraunhofer SIT</organization>
            </author>
            <date day="9" month="October" year="2023"/>
            <abstract>
              <t>   A client requesting a certificate from a Certification Authority (CA)
   may wish to offer believable claims about the protections afforded to
   the corresponding private key, such as whether the private key
   resides on a hardware security module or the protection capabilities
   provided by the hardware.

   This document describes how to encode Evidence produced by an
   Attester for inclusion in Certificate Signing Requests (CSRs), and
   any certificates necessary for validating it.

   Including Evidence along with a CSR can help to improve the
   assessment of the security posture for the private key, and the
   trustworthiness properties of the submitted key to the requested
   certificate profile.  These Evidence Claims can include information
   about the hardware component's manufacturer, the version of installed
   or running firmware, the version of software installed or running in
   layers above the firmware, or the presence of hardware components
   providing specific protection capabilities or shielded locations
   (e.g., to protect keys).

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-lamps-csr-attestation-02"/>
        </reference>
        <reference anchor="I-D.ietf-lamps-rfc4210bis">
          <front>
            <title>Internet X.509 Public Key Infrastructure -- Certificate Management Protocol (CMP)</title>
            <author fullname="Hendrik Brockhaus" initials="H." surname="Brockhaus">
              <organization>Siemens</organization>
            </author>
            <author fullname="David von Oheimb" initials="D." surname="von Oheimb">
              <organization>Siemens</organization>
            </author>
            <author fullname="Mike Ounsworth" initials="M." surname="Ounsworth">
              <organization>Entrust</organization>
            </author>
            <author fullname="John Gray" initials="J." surname="Gray">
              <organization>Entrust</organization>
            </author>
            <date day="19" month="June" year="2023"/>
            <abstract>
              <t>   This document describes the Internet X.509 Public Key Infrastructure
   (PKI) Certificate Management Protocol (CMP).  Protocol messages are
   defined for X.509v3 certificate creation and management.  CMP
   provides interactions between client systems and PKI components such
   as a Registration Authority (RA) and a Certification Authority (CA).

   This document obsoletes RFC 4210 by including the updates specified
   by CMP Updates [RFCAAAA] Section 2 and Appendix A.2 maintaining
   backward compatibility with CMP version 2 wherever possible and
   obsoletes both documents.  Updates to CMP version 2 are: improving
   crypto agility, extending the polling mechanism, adding new general
   message types, and adding extended key usages to identify special CMP
   server authorizations.  Introducing version 3 to be used only for
   changes to the ASN.1 syntax, which are: support of EnvelopedData
   instead of EncryptedValue and hashAlg for indicating a hash
   AlgorithmIdentifier in certConf messages.

   In addition to the changes specified in CMP Updates [RFCAAAA] this
   document adds support for management of KEM certificates.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-lamps-rfc4210bis-07"/>
        </reference>
        <reference anchor="RFC8295">
          <front>
            <title>EST (Enrollment over Secure Transport) Extensions</title>
            <author fullname="S. Turner" initials="S." surname="Turner"/>
            <date month="January" year="2018"/>
            <abstract>
              <t>The EST (Enrollment over Secure Transport) protocol defines the Well-Known URI (Uniform Resource Identifier) -- /.well-known/est -- along with a number of other path components that clients use for PKI (Public Key Infrastructure) services, namely certificate enrollment (e.g., /simpleenroll). This document defines a number of other PKI services as additional path components -- specifically, firmware and trust anchors as well as symmetric, asymmetric, and encrypted keys. This document also specifies the PAL (Package Availability List), which is an XML (Extensible Markup Language) file or JSON (JavaScript Object Notation) object that clients use to retrieve packages available and authorized for them. This document extends the EST server path components to provide these additional services.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8295"/>
          <seriesInfo name="DOI" value="10.17487/RFC8295"/>
        </reference>
        <reference anchor="RFC7030">
          <front>
            <title>Enrollment over Secure Transport</title>
            <author fullname="M. Pritikin" initials="M." role="editor" surname="Pritikin"/>
            <author fullname="P. Yee" initials="P." role="editor" surname="Yee"/>
            <author fullname="D. Harkins" initials="D." role="editor" surname="Harkins"/>
            <date month="October" year="2013"/>
            <abstract>
              <t>This document profiles certificate enrollment for clients using Certificate Management over CMS (CMC) messages over a secure transport. This profile, called Enrollment over Secure Transport (EST), describes a simple, yet functional, certificate management protocol targeting Public Key Infrastructure (PKI) clients that need to acquire client certificates and associated Certification Authority (CA) certificates. It also supports client-generated public/private key pairs as well as key pairs generated by the CA.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7030"/>
          <seriesInfo name="DOI" value="10.17487/RFC7030"/>
        </reference>
        <reference anchor="I-D.ietf-lamps-rfc7030-csrattrs">
          <front>
            <title>Clarification of RFC7030 CSR Attributes definition</title>
            <author fullname="Michael Richardson" initials="M." surname="Richardson">
              <organization>Sandelman Software Works</organization>
            </author>
            <author fullname="Owen Friel" initials="O." surname="Friel">
              <organization>Cisco</organization>
            </author>
            <author fullname="David von Oheimb" initials="D." surname="von Oheimb">
              <organization>Siemens</organization>
            </author>
            <author fullname="Dan Harkins" initials="D." surname="Harkins">
              <organization>The Industrial Lounge</organization>
            </author>
            <date day="10" month="October" year="2023"/>
            <abstract>
              <t>   The Enrollment over Secure Transport (EST, RFC7030) is ambiguous in
   its specification of the CSR Attributes Response.  This has resulted
   in implementation challenges and implementor confusion.

   This document updates RFC7030 (EST) and clarifies how the CSR
   Attributes Response can be used by an EST server to specify both CSR
   attribute OIDs and also CSR attribute values, in particular X.509
   extension values, that the server expects the client to include in
   subsequent CSR request.

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

   The PSA attestation token is a profiled Entity Attestation Token
   (EAT).

   This specification describes what claims are used in an attestation
   token generated by PSA compliant systems, how these claims get
   serialized to the wire, and how they are cryptographically protected.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-tschofenig-rats-psa-token-13"/>
        </reference>
        <reference anchor="TPM20" target="https://trustedcomputinggroup.org/resource/tpm-library-specification/">
          <front>
            <title>Trusted Platform Module Library Specification, Family 2.0, Level 00, Revision 01.59</title>
            <author>
              <organization>Trusted Computing Group</organization>
            </author>
            <date year="2019" month="November"/>
          </front>
        </reference>
      </references>
    </references>
    <?line 363?>

<section anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>We would like to thank Russ Housley and Carl Wallace for their review comments.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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

-->

</rfc>
