<?xml version="1.0" encoding="UTF-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.20 (Ruby 3.0.2) -->


<!DOCTYPE rfc  [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">

]>

<?rfc rfcedstyle="yes"?>
<?rfc tocindent="yes"?>
<?rfc strict="yes"?>
<?rfc comments="yes"?>
<?rfc inline="yes"?>
<?rfc text-list-symbols="-o*+"?>
<?rfc docmapping="yes"?>


<rfc ipr="trust200902" docName="draft-ietf-lamps-attestation-freshness-03" category="std" consensus="true" submissionType="IETF" xml:lang="en" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title abbrev="Freshness Nonces for Remote Attestation">Nonce-based Freshness for Remote Attestation in Certificate Signing Requests (CSRs) for the Certification Management Protocol (CMP) and for Enrollment over Secure Transport (EST)</title>

    <author 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="Brockhaus" fullname="Hendrik Brockhaus">
      <organization abbrev="Siemens">Siemens</organization>
      <address>
        <postal>
          <street>Werner-von-Siemens-Strasse 1</street>
          <city>Munich</city>
          <code>80333</code>
          <country>Germany</country>
        </postal>
        <email>hendrik.brockhaus@siemens.com</email>
        <uri>https://www.siemens.com</uri>
      </address>
    </author>

    <date year="2024"/>

    <area>sec</area>
    <workgroup>LAMPS Working Group</workgroup>
    <keyword>Remote Attestation</keyword> <keyword>Certificate Signing Request</keyword> <keyword>Certificate Management Protocol (CMP)</keyword> <keyword>Enrollment over Secure Transport (EST)</keyword>

    <abstract>


<?line 96?>

<t>When an end entity includes attestation Evidence in a Certificate Signing Request (CSR), it may be
necessary to demonstrate the freshness of the provided Evidence. Current attestation technology
commonly achieves this using nonces.</t>

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



    </abstract>



  </front>

  <middle>


<?line 106?>

<section anchor="introduction"><name>Introduction</name>

<t>The management of certificates, encompassing issuance, CA certificate provisioning, renewal, and
revocation, has been streamlined through standardized protocols.</t>

<t>The Certificate Management Protocol (CMP) <xref target="I-D.ietf-lamps-rfc4210bis"/> defines messages for
X.509v3 certificate creation and management. CMP facilitates interactions between end entities
and PKI management entities, such as Registration Authorities (RAs) and Certification Authorities
(CAs). For Certificate Signing Requests (CSRs), CMP primarily utilizes the Certificate Request
Message Format (CRMF) <xref target="RFC4211"/> but also supports PKCS#10 <xref target="RFC2986"/>.</t>

<t>Enrollment over Secure Transport (EST) (<xref target="RFC7030"/>, <xref target="RFC8295"/>) is another certificate management
protocol that provides a subset of CMP's features, primarily using PKCS#10 for CSRs.</t>

<t>When an end entity requests a certificate from a Certification Authority (CA), it may need to assert
credible claims about the protections of the corresponding private key, such as the use of a hardware
security module or the protective capabilities provided by the hardware, as well as claims about the
platform itself.</t>

<t>To include these claims as Evidence in remote attestation, the remote attestation extension
<xref target="I-D.ietf-lamps-csr-attestation"/> has been defined. It specifies how Evidence produced by an Attester
is encoded for inclusion in CRMF or PKCS#10, along with any necessary certificates for its validation.</t>

<t>For a Verifier or Relying Party to ensure the freshness of the Evidence, knowing the exact time of its
production is crucial. Current attestation technologies, like <xref target="TPM20"/> and
<xref target="I-D.tschofenig-rats-psa-token"/>, often employ nonces to ensure the freshness of Evidence. Further
details on ensuring Evidence freshness can be found in <xref section="10" sectionFormat="of" target="RFC9334"/>.</t>

<t><xref section="4" sectionFormat="of" target="I-D.ietf-lamps-csr-attestation"/> provides examples where a CSR contains one or more
Evidence statements. For each Evidence statement the end entity may wish to request a separate nonce.</t>

<t>Since an end entity requires one or more nonces from one or more Verifier via the RA/CA, an additional
roundtrip is necessary. However, a CSR is a one-shot message. Therefore, CMP and EST enable the end
entity to request information from the RA/CA before submitting a certification request conveniently.</t>

<t>Once a nonce is obtained, the end entity invokes the API on an Attester, providing the nonce as an
input parameter. The Attester then returns an Evidence, which is embedded into a CSR and potentially
together with further Evidence statements, submitted back to the RA/CA in a certification request message.</t>

<t><xref target="fig-arch"/> illustrates this interaction:</t>

<t><list style="symbols">
  <t>One or more nonces are requested in step (0) and obtained in step (1) using the extension to CMP/EST defined
in this document.</t>
  <t>The CSR extension <xref target="I-D.ietf-lamps-csr-attestation"/> conveys one or more Evidence statements to the RA/CA in step (2).</t>
  <t>One ore more Verifier process the received Evidence and return the Attestation Result(s) to the Relying Party.
The CA uses the Attestation Result(s) with the Appraisal Policy and other information to create the
requested certificate. The certificate is returned to the End Entity in step (3).</t>
</list></t>

<figure title="Architecture with Background Check Model." anchor="fig-arch"><artset><artwork  type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="480" width="496" viewBox="0 0 496 480" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px">
<path d="M 40,64 L 40,464" fill="none" stroke="black"/>
<path d="M 248,64 L 248,464" fill="none" stroke="black"/>
<path d="M 448,64 L 448,464" fill="none" stroke="black"/>
<path d="M 48,128 L 240,128" fill="none" stroke="black"/>
<path d="M 48,192 L 240,192" fill="none" stroke="black"/>
<path d="M 256,224 L 440,224" fill="none" stroke="black"/>
<path d="M 256,256 L 440,256" fill="none" stroke="black"/>
<path d="M 48,288 L 240,288" fill="none" stroke="black"/>
<path d="M 48,336 L 240,336" fill="none" stroke="black"/>
<path d="M 256,368 L 440,368" fill="none" stroke="black"/>
<path d="M 256,400 L 440,400" fill="none" stroke="black"/>
<path d="M 48,432 L 240,432" fill="none" stroke="black"/>
<polygon class="arrowhead" points="448,368 436,362.4 436,373.6 " fill="black" transform="rotate(0,440,368)"/>
<polygon class="arrowhead" points="448,224 436,218.4 436,229.6 " fill="black" transform="rotate(0,440,224)"/>
<polygon class="arrowhead" points="264,400 252,394.4 252,405.6 " fill="black" transform="rotate(180,256,400)"/>
<polygon class="arrowhead" points="264,256 252,250.4 252,261.6 " fill="black" transform="rotate(180,256,256)"/>
<polygon class="arrowhead" points="248,336 236,330.4 236,341.6 " fill="black" transform="rotate(0,240,336)"/>
<polygon class="arrowhead" points="248,192 236,186.4 236,197.6 " fill="black" transform="rotate(0,240,192)"/>
<polygon class="arrowhead" points="248,128 236,122.4 236,133.6 " fill="black" transform="rotate(0,240,128)"/>
<polygon class="arrowhead" points="56,432 44,426.4 44,437.6 " fill="black" transform="rotate(180,48,432)"/>
<polygon class="arrowhead" points="56,288 44,282.4 44,293.6 " fill="black" transform="rotate(180,48,288)"/>
<polygon class="arrowhead" points="56,128 44,122.4 44,133.6 " fill="black" transform="rotate(180,48,128)"/>
<g class="text">
<text x="36" y="36">Attester</text>
<text x="232" y="36">Relying</text>
<text x="288" y="36">Party</text>
<text x="416" y="36">One</text>
<text x="444" y="36">or</text>
<text x="476" y="36">more</text>
<text x="20" y="52">(End</text>
<text x="72" y="52">Entity)</text>
<text x="232" y="52">(RA/CA)</text>
<text x="444" y="52">Verifier</text>
<text x="104" y="84">Certificate</text>
<text x="100" y="100">Management</text>
<text x="92" y="116">Protocol</text>
<text x="88" y="180">Request</text>
<text x="168" y="180">Nonce(s)(0)</text>
<text x="296" y="212">Request</text>
<text x="364" y="212">Nonce(s)</text>
<text x="300" y="244">Nonce(s)</text>
<text x="92" y="276">Nonce(s)</text>
<text x="144" y="276">(1)</text>
<text x="92" y="324">Attested</text>
<text x="144" y="324">CSR</text>
<text x="176" y="324">(2)</text>
<text x="312" y="356">Evidence(s)</text>
<text x="312" y="388">Attestation</text>
<text x="400" y="388">Result(s)</text>
<text x="104" y="420">Certificate</text>
<text x="168" y="420">(3)</text>
</g>
</svg>
</artwork><artwork  type="ascii-art"><![CDATA[
Attester                 Relying Party            One or more
(End Entity)             (RA/CA)                   Verifier
    |                         |                        |
    |  Certificate            |                        |
    |  Management             |                        |
    |  Protocol               |                        |
    |<----------------------->|                        |
    |                         |                        |
    |                         |                        |
    |  Request Nonce(s)(0)    |                        |
    |------------------------>|                        |
    |                         |  Request Nonce(s)      |
    |                         |----------------------->|
    |                         |  Nonce(s)              |
    |                         |<-----------------------|
    |  Nonce(s) (1)           |                        |
    |<------------------------|                        |
    |                         |                        |
    |  Attested CSR (2)       |                        |
    |------------------------>|                        |
    |                         |  Evidence(s)           |
    |                         |----------------------->|
    |                         |  Attestation Result(s) |
    |                         |<-----------------------|
    |  Certificate (3)        |                        |
    |<------------------------|                        |
    |                         |                        |
    |                         |                        |
]]></artwork></artset></figure>

<t>The functionality described in this document is divided into two sections:</t>

<t><list style="symbols">
  <t><xref target="CMP"/> describes how to convey the nonce using CMP.</t>
  <t><xref target="EST"/> describes the equivalent functionality for EST.</t>
</list></t>

</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 of <xref target="I-D.ietf-lamps-rfc4210bis"/> defines the
general request message (genm) and general response (genp).
The NonceRequest payload of the genm message, sent by the end
entity to request a nonce, optionally includes details on the
required length of the nonce from the Attester. The NonceResponse
payload of the genp message, sent by the CA/RA in response to the
request, contains the nonce itself.</t>

<figure><artwork><![CDATA[
 GenMsg:    {id-it TBD1}, NonceRequestValue
 GenRep:    {id-it TBD2}, NonceResponseValue | < absent >

 id-it-nonceRequest OBJECT IDENTIFIER ::= { id-it TBD1 }
 NonceRequestValue ::= SEQUENCE SIZE (1..MAX) OF NonceRequest
 NonceRequest ::= SEQUENCE {
    len INTEGER OPTIONAL,
    -- indicates the required length of the requested nonce
    type EVIDENCE-STATEMENT.&id({EvidenceStatementSet}) OPTIONAL,
    -- indicates which Evidence type to request a nonce for
    hint UTF8String OPTIONAL
    -- indicates which Verifier to request a nonce from
 }

 id-it-nonceResponse OBJECT IDENTIFIER ::= { id-it TBD2 }
 NonceResponseValue ::= SEQUENCE SIZE (1..MAX) OF NonceResponse
 NonceResponse ::= SEQUENCE {
    nonce OCTET STRING,
    -- contains the nonce of length len
    -- provided by the Verifier indicated with hint
    expiry INTEGER OPTIONAL,
    -- indicates how long in seconds the Verifier considers
    -- the nonce valid
    type EVIDENCE-STATEMENT.&id({EvidenceStatementSet}) OPTIONAL,
    -- indicates which Evidence type to request a nonce for
    hint UTF8String OPTIONAL
    -- indicates which Verifier to request a nonce from
 }
]]></artwork></figure>

<t>The end entity may request one or more nonces for different Verifier. The
EVIDENCE-STATEMENT type is defined in
<xref target="I-D.ietf-lamps-csr-attestation"/>. They allow the Attester to specify to
the Relying Party which Verifier should be contacted to obtain a nonce.
If a NonceRequest structure does not contain type or hint, the RA/CA should
respond with a nonce it MAY generated by itself.</t>

<t>The use of the general request/response message exchange introduces an additional
roundtrip for transmitting nonce(s) from the CA/RA to the end entity (and
subsequently to the Attester within the end entity).</t>

<t>The end entity MUST construct a id-it-nonceRequest message to prompt
the RA/CA to send a nonce(s) in response. The message may contain one or more
NonceRequest structures, at a maximum one per Evidence statement the end
entity wishes to provide in a CSR. If a NonceRequest structure does neither
contain a type nor a hint, the RA/CA MAY generate a nonce itself and provide
it in the respective NonceResponse structure.
If an RA/CA is not able to provide a requested nonce, it MUST provide an empty OCTET STRING in the respective NonceResponse structure.</t>

<t>NonceRequest, NonceResponse, and EvidenceStatement structures can contain a type
field and a hint field. In terms of type and hint content, the order in which the
NonceRequest structures were sent in the request message MUST match the order of
the NonceResponse structures in the response message and the EvicenceStatements in
the CSR later. This is important so that the RA/CA can send the Evidence statement
to the Verifier who generated the nonce used by the Attester who generated it.</t>

<t>When receiving nonces from the RA/CA in a id-it-nonceResponse message, the end entity MUST use them to request Evidence Statements from the respective Attester optionally indicated by type and hint.
If a nonce is provides in a NonceResponse structure without indicating any type or hint, it can be used for all Evidence statements requiring a nonce.</t>

<t>An Evidence statement generated using a nonce provided with an expiry value will be accepted by the Verifyer as valid until the respective expiry time elapsed.
It is expected that the respective messages are delivered in a timely manner.</t>

<t>The interaction is illustrated in <xref target="fig-cmp-msg"/>.</t>

<figure title="CMP Exchange with Nonce and Evidence." anchor="fig-cmp-msg"><artwork><![CDATA[
End Entity                                          RA/CA
==========                                      =============

            -->>--- id-it-NonceRequest --->>--
                                                Verify request
                                                Generate nonce(s)*
                                                Create response
            --<<--- id-it-NonceResponse ---<<--
                    (nonce(s), expiry)

Generate key pair
Generate Evidence(s)*
Generate certification
  request message
            -->>--- certification request --->>--
                +Evidence(s) including nonce)
                                               Verify request
                                               Verify Evidence(s)*
                                               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>

<t>If HTTP is used to transfer the NonceRequest and NonceResponse
messages, the OPTIONAL &lt;operation&gt; path segment defined in
<xref section="3.6" sectionFormat="of" target="I-D.ietf-lamps-rfc4210bis"/> MAY be used.</t>

<figure><artwork><![CDATA[
 +------------------------+-----------------+-------------------+
 | Operation              |Operation path   | Details           |
 +========================+=================+===================+
 | Get Attestation        | getnonce        | {{CMP}}           |
 | Freshness Nonce        |                 |                   |
 +------------------------+-----------------+-------------------+
]]></artwork></figure>

<t>If CoAP is used for transferring NonceRequest and NonceResponse messages,
the OPTIONAL &lt;operation&gt; path segment defined in
<xref section="2.1" sectionFormat="of" target="RFC9482"/> MAY be used.</t>

<figure><artwork><![CDATA[
 +------------------------+-----------------+-------------------+
 | Operation              |Operation path   | Details           |
 +========================+=================+===================+
 | Get Attestation        | nonce           | {{CMP}}           |
 | Freshness Nonce        |                 |                   |
 +------------------------+-----------------+-------------------+
]]></artwork></figure>

</section>
<section anchor="EST"><name>Conveying a Nonce in EST</name>

<t>The EST client requests one or more nonces for its Attester from the EST server.
This function typically follows the request for CA certificates and
precedes other EST operations.</t>

<t>The EST server MUST support the path-prefix of "/.well-known/" as
defined in <xref target="RFC5785"/> and the registered name of "est".
Therefore, a valid EST server URI path begins with
"https://www.example.com/.well-known/est". Each EST operation is
indicated by a path-suffix that specifies the intended operation.</t>

<t>The following operation is defined by this specification:</t>

<figure><artwork><![CDATA[
 +------------------------+-----------------+-------------------+
 | Operation              |Operation path   | Details           |
 +========================+=================+===================+
 | Retrieval of a nonce   | /nonce          | {{EST}}           |
 +------------------------+-----------------+-------------------+
]]></artwork></figure>
<t>The operation path is appended to the path-prefix to form the URI
used with HTTP GET or POST to perform the desired EST operation.
An example of a valid URI absolute path for the "/nonce" operation
is "/.well-known/est/nonce".</t>

<section anchor="request-methods"><name>Request Methods</name>

<t>An EST client uses either a GET or a POST method, depending on
whether additional parameters need to be conveyed:</t>

<t><list style="symbols">
  <t>A GET request MUST be used when the EST client does not want to
convey extra parameters.</t>
  <t>A POST request MUST be used when parameters, such as nonce length
or a hint about the verification service, are included in the request.</t>
</list></t>

<figure><artwork><![CDATA[
 +------------------+------------------------------+---------------+
 | Message type     | Media type(s)                | Reference     |
 | (per operation)  |                              |               |
 +==================+==============================+===============+
 | Nonce Request    | N/A (for GET) or             | This section  |
 |                  | application/json (for POST)  |               |
 +==================+==============================+===============+
 | Nonce Response   | application/json             | This section  |
 |                  |                              |               |
 +==================+==============================+===============+
]]></artwork></figure>

</section>
<section anchor="example-requests"><name>Example Requests</name>

<t>To retrieve one nonce without providing length, type, or hint using a GET request:</t>

<figure><artwork><![CDATA[
GET /.well-known/est/nonce HTTP/1.1
]]></artwork></figure>

<t>To retrieve one or more nonces while specifying the length, type, and/or hint using a POST request:</t>

<figure><artwork><![CDATA[
POST /.well-known/est/nonce HTTP/1.1
Content-Type: application/json
[
  {
    "len": 8,
    "type": "<OID>",
    "hint": "https://example.com"
  },
  ...
]
]]></artwork></figure>

<t>&lt; ToDo: Fix the json structure regarding the sequence of len, type, and hint and how the OID for type shall be encoded. &gt;</t>

<t>The payload in a POST request MUST be of content-type "application/json" and
MUST contain an array of JSON objects <xref target="RFC7159"/> containing "len", "type", and "hint" members
The optional member "len" indicating the
length of the requested nonce value in bytes. The optional "type" (containing an EvicenceStatement OID as defined in <xref target="I-D.ietf-lamps-csr-attestation"/>) and "hint" members (containing an FQDN based on the definition in the EvidenceHint structure as defined in <xref target="I-D.ietf-lamps-csr-attestation"/>) indicate the Verifyer to use.</t>

</section>
<section anchor="server-response"><name>Server Response</name>

<t>If successful, the EST server MUST respond with an HTTP 200 status code and a
content-type of "application/json", containing an array of JSON objects <xref target="RFC7159"/> with
the "nonce" member. The "expiry" member is optional and indicates the validity
period of the nonce.
The optional "type" and "hint" members are copied from the request.</t>

<t>The EST server MAY request HTTP-based client authentication, as
explained in Section 3.2.3 of <xref target="RFC7030"/>.</t>

<t>Below is an example response:</t>

<figure><artwork><![CDATA[
HTTP/1.1 200 OK
Content-Type: application/json
[
  {
    "nonce": "MTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTI=",
    "expiry": "2031-10-12T07:20:50.52Z"
    "type": "<OID>",
    "hint": "https://example.com"
  },
  ...
]
]]></artwork></figure>

<t>&lt; ToDo: Fix the json structure regarding the sequence of len, type, and hint and how the OID for type shall be encoded. &gt;</t>

<t>Open Issue: Should a specific content type be registered for use
with EST over CoAP, where the nonce and expiry fields are encoded
in a CBOR structure?</t>

</section>
</section>
<section anchor="nonce-processing-guidelines"><name>Nonce Processing Guidelines</name>

<t>When the RA/CA is requested to provide a nonce to an
end entity, it interacts with the Verifier.
According to the IETF RATS architecture <xref target="RFC9334"/>, the Verifier is
responsible for validating Evidence about an Attester and generating
Attestation Results for use by a Relying Party. The Verifier also acts as
the source of the nonce to prevent replay attacks.</t>

<t>The nonce value MUST contain a random byte sequence whereby the length
depends on the used remote attestation technology as specific nonce
length may be required by the end entity. This specification assumes
that the RA/CA possesses knowledge, either out-of-band or through the
len field in the NonceRequest, regarding the required nonce length for
the attestation technology. Nonces of incorrect length will cause the
remote attestation protocol to fail.</t>

<t>For instance, the PSA attestation token <xref target="I-D.tschofenig-rats-psa-token"/>
supports nonce lengths of 32, 48, and 64 bytes. Other attestation
technologies employ nonces of similar lengths.</t>

<t>If a specific length was requested, the RA/CA must provide a nonce of that size.
The end entity MUST use the received nonce if the remote attestation supports
the requested length. If necessary, the end entity MAY adjust the length of the
nonce by truncating or padding it accordingly.</t>

<t>While this specification does not address the semantics of the attestation API
or the underlying software/hardware architecture, the API returns Evidence from
the Attester in a format specific to the attestation technology used and specified by the type and hint. The
returned Evidence is encapsulated within the CSR, as defined in
<xref target="I-D.ietf-lamps-csr-attestation"/>. The software generating the CSR treats
the Evidence as an opaque blob and does not interpret its format. It's crucial
to note that the nonce is included in the Evidence, either implicitly or
explicitly, and MUST NOT be conveyed in CSR structures outside of the Evidence
payload.</t>

<t>The processing of CSRs containing Evidence is detailed  in
<xref target="I-D.ietf-lamps-csr-attestation"/>. Importantly, certificates issued based
on this process do not contain the nonce, as specified in
<xref target="I-D.ietf-lamps-csr-attestation"/>.</t>

</section>
<section anchor="iana-considerations"><name>IANA Considerations</name>

<t>This document adds new entries to the "CMP Well-Known URI Path Segments"
registry defined in <xref target="RFC8615"/>.</t>

<figure><artwork><![CDATA[
 +----------------+---------------------------+-----------------+
 | Path Segment   | Description               | Reference       |
 +================+===========================+=================+
 | getnonce       | Get Attestation Freshness | {{cmp}}         |
 |                | Nonce over HTTP           |                 |
 +----------------+---------------------------+-----------------+
 | nonce          | Get Attestation Freshness | {{cmp}}         |
 |                | Nonce over CoAP           |                 |
 +----------------+---------------------------+-----------------+
]]></artwork></figure>

<t>[Open Issue: Register path segments for EST]</t>

<t>IANA is also requested to register the following ASN.1 <xref target="X.680"/>
module OID in the "SMI Security for PKIX Module Identifier" registry
(1.3.6.1.5.5.7.0). This OID is defined in <xref target="asn1"/>.</t>

<texttable>
      <ttcol align='left'>Decimal</ttcol>
      <ttcol align='left'>Description</ttcol>
      <ttcol align='left'>References</ttcol>
      <c>TBDMOD</c>
      <c>id-mod-att-fresh-req</c>
      <c>This-RFC</c>
</texttable>

</section>
<section anchor="security-considerations"><name>Security Considerations</name>

<t>This specification details the process of obtaining a nonce via CMP and EST,
assuming that the nonce does not require confidentiality protection while maintaining
the security properties of the remote attestation protocol. <xref target="RFC9334"/> defines the
IETF remote attestation architecture and extensively discusses nonce-based freshness.</t>

<t>Section 8.4 of <xref target="I-D.ietf-rats-eat"/> specifies requirements for the randomness and
privacy of nonce generation when used with the Entity Attestation Token (EAT). These
requirements, which are also adopted by attestation technologies like the PSA attestation
token <xref target="I-D.tschofenig-rats-psa-token"/>, provide general utility:</t>

<t><list style="symbols">
  <t>The nonce MUST have at least 64 bits of entropy.</t>
  <t>To prevent disclosure of privacy-sensitive information, it should be derived using a
salt from a genuinely random number generator or another reliable source of randomness.</t>
</list></t>

<t>Each attestation technology specification offers guidance on replay protection using nonces
and other techniques. Specific recommendations are deferred to these individual specifications
in this document.</t>

<t>Regarding the use of Evidence in a CSR, the security considerations outlined in
<xref target="I-D.ietf-lamps-csr-attestation"/> are pertinent to this specification.</t>

</section>
<section anchor="acknowledgments"><name>Acknowledgments</name>

<t>We would like to thank Russ Housley, Thomas Fossati, Watson Ladd, Ionut Mihalcea,
Carl Wallace, and Michael StJohns for their review comments.</t>

</section>


  </middle>

  <back>


<references title='References' anchor="sec-combined-references">

    <references title='Normative References' anchor="sec-normative-references">



<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 Certification 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>
      <author fullname="Monty Wiseman" initials="M." surname="Wiseman">
         <organization>Beyond Identity</organization>
      </author>
      <author fullname="Ned Smith" initials="N." surname="Smith">
         <organization>Intel Corporation</organization>
      </author>
      <date day="21" month="October" year="2024"/>
      <abstract>
	 <t>   A PKI end entity requesting a certificate from a Certification
   Authority (CA) may wish to offer trustworthy claims about the
   platform generating the certification request and the environment
   associated with the corresponding private key, such as whether the
   private key resides on a hardware security module.

   This specification defines an attribute and an extension that allow
   for conveyance of Evidence in Certificate Signing Requests (CSRs)
   such as PKCS#10 or Certificate Request Message Format (CRMF) payloads
   which provides an elegant and automatable mechanism for transporting
   Evidence to a Certification Authority.

   Including Evidence along with a CSR can help to improve the
   assessment of the security posture for the private key, and can help
   the Certification Authority to assess whether it satisfies the
   requested certificate profile.  These Evidence Claims can include
   information about the hardware component&#x27;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-14"/>
   
</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="9" month="October" year="2024"/>
      <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 RFC 9480 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 CMP version 3 to be used only for
   changes to the ASN.1 syntax, which are: support of EnvelopedData
   instead of EncryptedValue, hashAlg for indicating a hash
   AlgorithmIdentifier in certConf messages, and RootCaKeyUpdateContent
   in ckuann messages.

   In addition to the changes specified in CMP Updates RFC 9480 this
   document adds support for management of KEM certificates.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-ietf-lamps-rfc4210bis-14"/>
   
</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="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="RFC5785">
  <front>
    <title>Defining Well-Known Uniform Resource Identifiers (URIs)</title>
    <author fullname="M. Nottingham" initials="M." surname="Nottingham"/>
    <author fullname="E. Hammer-Lahav" initials="E." surname="Hammer-Lahav"/>
    <date month="April" year="2010"/>
    <abstract>
      <t>This memo defines a path prefix for "well-known locations", "/.well-known/", in selected Uniform Resource Identifier (URI) schemes. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="5785"/>
  <seriesInfo name="DOI" value="10.17487/RFC5785"/>
</reference>

<reference anchor="RFC8615">
  <front>
    <title>Well-Known Uniform Resource Identifiers (URIs)</title>
    <author fullname="M. Nottingham" initials="M." surname="Nottingham"/>
    <date month="May" year="2019"/>
    <abstract>
      <t>This memo defines a path prefix for "well-known locations", "/.well-known/", in selected Uniform Resource Identifier (URI) schemes.</t>
      <t>In doing so, it obsoletes RFC 5785 and updates the URI schemes defined in RFC 7230 to reserve that space. It also updates RFC 7595 to track URI schemes that support well-known URIs in their registry.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8615"/>
  <seriesInfo name="DOI" value="10.17487/RFC8615"/>
</reference>

<reference anchor="RFC7159">
  <front>
    <title>The JavaScript Object Notation (JSON) Data Interchange Format</title>
    <author fullname="T. Bray" initials="T." role="editor" surname="Bray"/>
    <date month="March" year="2014"/>
    <abstract>
      <t>JavaScript Object Notation (JSON) is a lightweight, text-based, language-independent data interchange format. It was derived from the ECMAScript Programming Language Standard. JSON defines a small set of formatting rules for the portable representation of structured data.</t>
      <t>This document removes inconsistencies with other specifications of JSON, repairs specification errors, and offers experience-based interoperability guidance.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="7159"/>
  <seriesInfo name="DOI" value="10.17487/RFC7159"/>
</reference>

<reference anchor="RFC9482">
  <front>
    <title>Constrained Application Protocol (CoAP) Transfer for the Certificate Management Protocol</title>
    <author fullname="M. Sahni" initials="M." role="editor" surname="Sahni"/>
    <author fullname="S. Tripathi" initials="S." role="editor" surname="Tripathi"/>
    <date month="November" year="2023"/>
    <abstract>
      <t>This document specifies the use of the Constrained Application Protocol (CoAP) as a transfer mechanism for the Certificate Management Protocol (CMP). CMP defines the interaction between various PKI entities for the purpose of certificate creation and management. CoAP is an HTTP-like client-server protocol used by various constrained devices in the Internet of Things space.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9482"/>
  <seriesInfo name="DOI" value="10.17487/RFC9482"/>
</reference>


<reference anchor="X.680" target="https://www.itu.int/rec/T-REC.X.680">
  <front>
    <title>Information Technology - Abstract Syntax Notation One (ASN.1): Specification of basic notation</title>
    <author >
      <organization>ITU-T</organization>
    </author>
    <date year="2021" month="February"/>
  </front>
  <seriesInfo name="ITU-T Recommendation X.680" value=""/>
</reference>
<reference anchor="X.690" target="https://www.itu.int/rec/T-REC.X.690">
  <front>
    <title>Information Technology - ASN.1 encoding rules: Specification of Basic Encoding Rules (BER), Canonical Encoding Rules (CER) and Distinguished Encoding Rules (DER)</title>
    <author >
      <organization>ITU-T</organization>
    </author>
    <date year="2021" month="February"/>
  </front>
  <seriesInfo name="ITU-T Recommendation X.690" value=""/>
</reference>


    </references>

    <references title='Informative References' anchor="sec-informative-references">



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

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

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

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-tschofenig-rats-psa-token-24"/>
   
</reference>


<reference anchor="I-D.ietf-rats-eat">
   <front>
      <title>The Entity Attestation Token (EAT)</title>
      <author fullname="Laurence Lundblade" initials="L." surname="Lundblade">
         <organization>Security Theory LLC</organization>
      </author>
      <author fullname="Giridhar Mandyam" initials="G." surname="Mandyam">
         <organization>Mediatek USA</organization>
      </author>
      <author fullname="Jeremy O&#x27;Donoghue" initials="J." surname="O&#x27;Donoghue">
         <organization>Qualcomm Technologies Inc.</organization>
      </author>
      <author fullname="Carl Wallace" initials="C." surname="Wallace">
         <organization>Red Hound Software, Inc.</organization>
      </author>
      <date day="6" month="September" year="2024"/>
      <abstract>
	 <t>   An Entity Attestation Token (EAT) provides an attested claims set
   that describes state and characteristics of an entity, a device like
   a smartphone, IoT device, network equipment or such.  This claims set
   is used by a relying party, server or service to determine the type
   and degree of trust placed in the entity.

   An EAT is either a CBOR Web Token (CWT) or JSON Web Token (JWT) with
   attestation-oriented claims.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-ietf-rats-eat-31"/>
   
</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 546?>

<section anchor="asn1"><name>ASN.1 Module</name>

<t>The following module adheres to ASN.1 specifications <xref target="X.680"/> and
<xref target="X.690"/>.</t>

<figure><sourcecode type="asn1"><![CDATA[
<CODE BEGINS>

att-fres-req
  { iso(1) identified-organization(3) dod(6) internet(1)
  security(5) mechanisms(5) pkix(7) id-mod(0)
  id-mod-att-fresh-req (TBDMOD) }

DEFINITIONS IMPLICIT TAGS ::=
BEGIN
EXPORTS ALL;
IMPORTS

id-it, InfoTypeAndValue{}
  FROM PKIXCMP-2023
    { iso(1) identified-organization(3) dod(6) internet(1)
      security(5) mechanisms(5) pkix(7) id-mod(0)
      id-mod-cmp2023-02(TBD-PKIXCMP-23) }
-- RFC Editor: The value for id-mod-cmp2023-02 must be set as soon
-- as it is assigned by I-D.ietf-lamps-rfc4210bis

EVIDENCE-STATEMENT, EvidenceStatementSet
  FROM CSR-ATTESTATION-2023
    { iso(1) identified-organization(3) dod(6) internet(1) security(5)
      mechanisms(5) pkix(7) id-mod(0) id-mod-pkix-attest-01(TBD-CSR-ATTESTATION-2023) }
-- RFC Editor: The value for id-mod-pkix-attest-01 must be set as soon
-- as it is assigned by I-D.ietf-lamps-csr-attestation

;

-- NonceRequest and NonceResponse messages

 id-it-nonceRequest OBJECT IDENTIFIER ::= { id-it TBD1 }
 NonceRequestValue ::= SEQUENCE SIZE (1..MAX) OF NonceRequest
 NonceRequest ::= SEQUENCE {
    len    INTEGER OPTIONAL,
    -- indicates the required length of the requested nonce
    type   EVIDENCE-STATEMENT.&id({EvidenceStatementSet}) OPTIONAL,
    -- indicates which Evidence type to request a nonce for
    hint   UTF8String OPTIONAL
    -- indicates which Verifier to request a nonce from
 }

 id-it-nonceResponse OBJECT IDENTIFIER ::= { id-it TBD2 }
 NonceResponseValue ::= SEQUENCE SIZE (1..MAX) OF NonceResponse
 NonceResponse ::= SEQUENCE {
    nonce  OCTET STRING,
    -- contains the nonce of length len
    -- provided by the Verifier indicated with hint
    expiry INTEGER OPTIONAL,
    -- indicates how long in seconds the Verifier considers
    -- the nonce valid
    type   EVIDENCE-STATEMENT.&id({EvidenceStatementSet}) OPTIONAL,
    -- indicates which Evidence type to request a nonce for
    hint UTF8String OPTIONAL
    -- indicates which Verifier to request a nonce from
 }

END


<CODE ENDS>
]]></sourcecode></figure>

</section>


  </back>

<!-- ##markdown-source:
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
HEJlAAA=

-->

</rfc>

