<?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.43 (Ruby 3.4.9) -->
<?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-ietf-lamps-attestation-freshness-10" category="std" consensus="true" submissionType="IETF" xml:lang="en" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.1 -->
  <front>
    <title abbrev="Freshness for Evidence in CSRs">Requesting a Freshness Nonce for Attestation Evidence in Certificate Signing Requests</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-lamps-attestation-freshness-10"/>
    <author initials="H." surname="Tschofenig" fullname="Hannes Tschofenig">
      <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>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>
    <author initials="J." surname="Mandel" fullname="Joe Mandel">
      <organization abbrev="AKAYLA">AKAYLA, Inc.</organization>
      <address>
        <email>joe@akayla.com</email>
      </address>
    </author>
    <author initials="S." surname="Turner" fullname="Sean Turner">
      <organization>sn3rd</organization>
      <address>
        <email>sean@sn3rd.com</email>
      </address>
    </author>
    <date year="2026"/>
    <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>
    <keyword>Certificate Management over CMS (CMC)</keyword>
    <abstract>
      <?line 118?>

<t>When an end entity includes attestation statements in a Certificate Signing
Request (CSR), the freshness of the conveyed Evidence often needs to be
established. A common mechanism is a nonce that is obtained from a Relying
Party or Verifier and included by the Attester in the Evidence.</t>
      <t>This document specifies how an end entity requests such an attestation
freshness nonce from a Registration Authority or Certification Authority (RA/CA)
when using certificate lifecycle management protocols.
It defines message formats and protocol bindings for the conveyance of nonce
request and response messages in the Certificate Management Protocol (CMP),
Enrollment over Secure Transport (EST), and Certificate Management over CMS
(CMC), including optional type-specific information needed to produce fresh
Evidence for inclusion in a CSR.</t>
    </abstract>
  </front>
  <middle>
    <?line 134?>

<section anchor="Introduction">
      <name>Introduction</name>
      <t><xref target="I-D.ietf-lamps-csr-attestation"/> specifies how Evidence, as
defined in the RATS Architecture <xref target="RFC9334"/>, can be conveyed in a Certificate
Signing Request (CSR) using PKCS#10 <xref target="RFC2986"/> or the Certificate Request
Message Format (CRMF) <xref target="RFC4211"/>. The RATS
Architecture calls for establishing the freshness of Evidence, see
<xref section="10" sectionFormat="of" target="RFC9334"/>. A common method for establishing freshness is the
use of nonces. Such nonces must be provided by the Relying Party or Verifier
and included in the Evidence by the Attester.</t>
      <t>When the CSR is conveyed using a certificate lifecycle management protocol, such
as CMP <xref target="RFC9810"/>, EST <xref target="RFC7030"/>, or CMC <xref target="RFC10002"/>, the
end entity can request the required nonce from a Registration Authority or
Certification Authority (RA/CA) in a prior message
exchange and pass it to the Attester to produce fresh Evidence.</t>
      <t>This document describes how an end entity can request a nonce from an RA/CA
using CMP, EST, and CMC.</t>
      <t>The following topics are out of scope for this document and either covered
in other specifications or are implementation or deployment details:</t>
      <ul spacing="normal">
        <li>
          <t>whether a CSR requires one or more nonces,</t>
        </li>
        <li>
          <t>how the end entity forwards the nonce to the Attester,</t>
        </li>
        <li>
          <t>whether the RA/CA or the Verifier generates the nonce and how those entities
communicate with each other, and</t>
        </li>
        <li>
          <t>other methods for establishing freshness.</t>
        </li>
      </ul>
      <t>In this context, the end entity is a device that contains one or more Attesters,
and the RA/CA acts as a Relying Party that communicates with one or more Verifiers.</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", "NOT RECOMMENDED", "MAY", and
"OPTIONAL" 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>
      <t>This document uses RATS and PKIX terminology as described in
<xref section="3" sectionFormat="of" target="I-D.ietf-lamps-csr-attestation"/>. It also uses terminology from
the applicable certificate lifecycle management protocols: CMP, EST, and CMC.</t>
    </section>
    <section anchor="Architecture">
      <name>Architecture and Message Formats</name>
      <t>According to <xref target="I-D.ietf-lamps-csr-attestation"/>, a CSR can contain multiple
<tt>AttestationStatements</tt> and multiple certificates for validating those
<tt>AttestationStatements</tt>. This document describes how an end entity can use CMP,
EST, or CMC to request a nonce from the RA/CA for a specific type of Evidence
to be included in the CSR.</t>
      <t>The end entity sends a nonce request message with the following fields:</t>
      <ul spacing="normal">
        <li>
          <t><tt>len</tt>: In this OPTIONAL field, the end entity can specify the desired length of
the requested nonce in bytes as a value between 8 and 64.</t>
        </li>
        <li>
          <t><tt>reqTypeInfo</tt>: This OPTIONAL structure groups the type-specific information
for the nonce request. It contains:
          </t>
          <ul spacing="normal">
            <li>
              <t><tt>type</tt>: This field specifies the type of the <tt>reqInfo</tt> structure.</t>
            </li>
            <li>
              <t><tt>reqInfo</tt>: This OPTIONAL field contains the type-specific content that the
RA/CA requires to generate <tt>respInfo</tt>.</t>
            </li>
          </ul>
        </li>
      </ul>
      <t>The RA/CA can return the requested nonce in a nonce response message together
with information specific to the generation of the Evidence.</t>
      <t>The nonce response message has the following fields:</t>
      <ul spacing="normal">
        <li>
          <t><tt>nonce</tt>: This field MUST contain the nonce if the RA/CA is able and willing to
provide it. If a specific length was requested, the RA/CA SHOULD provide a
nonce of that size. If the RA/CA doesn't need a proof of freshness, the nonce MUST be zero-length.</t>
        </li>
        <li>
          <t><tt>expiry</tt>: In this OPTIONAL field, the RA/CA can indicate in seconds, as a
non-negative integer value, how long it expects the nonce to remain acceptable;
the response therefore needs to be conveyed promptly. The field is only a hint
to the end entity about how long the RA/CA (and possibly the Verifier)
anticipate storing state. If this field is absent, no indication about the
expected lifetime of the nonce is provided. An end entity MAY send Evidence
containing this nonce even after the indicated period has elapsed. It is then
up to the RA/CA to decide whether to accept the Evidence.</t>
        </li>
        <li>
          <t><tt>respTypeInfo</tt>: This OPTIONAL structure groups the type-specific information
for the nonce response. It contains:
          </t>
          <ul spacing="normal">
            <li>
              <t><tt>type</tt>: This field specifies the type of the <tt>respInfo</tt> structure. The type
in the nonce response message is defined by the type in the nonce request
message.</t>
            </li>
            <li>
              <t><tt>respInfo</tt>: This OPTIONAL field contains the type-specific content requested
by the end entity for generating the Evidence.</t>
            </li>
          </ul>
        </li>
      </ul>
      <t>This document does not further specify the content of the <tt>reqInfo</tt> and <tt>respInfo</tt>
structures; those structures must be defined elsewhere. Each definition must
assign an object identifier and specify the exact content of the corresponding
field. The definition of the <tt>reqInfo</tt> structure must also specify the type of the expected
<tt>respInfo</tt> structure. The message structure and the <tt>reqInfo</tt> or <tt>respInfo</tt> structures
can use different encodings. For example, an ASN.1 message can contain <tt>reqInfo</tt> or
<tt>respInfo</tt> encoded as JSON, if necessary. The <tt>reqInfo</tt> structure may be used to
provide the required information to the RA/CA to route the nonce request
to the appropriate Verifier when multiple Verifiers are supported. The <tt>respInfo</tt>
structure may be used to convey Generic Information Elements
(<xref section="6" sectionFormat="of" target="I-D.ietf-rats-reference-interaction-models"/>) such as Attesting
Environment IDs and Claim Selection. <xref target="appx-tpm-pcr-example"/> provides an
informative example using a TPM PCR selection.</t>
      <t>The generic message flow between the end entity and the RA/CA is shown in
<xref target="fig-msgFlow"/>.</t>
      <figure anchor="fig-msgFlow">
        <name>Message Flow in Background Check Model</name>
        <artset>
          <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="400" width="528" viewBox="0 0 528 400" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 40,64 L 40,384" fill="none" stroke="black"/>
              <path d="M 264,64 L 264,384" fill="none" stroke="black"/>
              <path d="M 496,64 L 496,384" fill="none" stroke="black"/>
              <path d="M 48,112 L 256,112" fill="none" stroke="black"/>
              <path d="M 48,144 L 256,144" fill="none" stroke="black"/>
              <path d="M 272,176 L 488,176" fill="none" stroke="black"/>
              <path d="M 272,208 L 488,208" fill="none" stroke="black"/>
              <path d="M 48,240 L 256,240" fill="none" stroke="black"/>
              <path d="M 48,272 L 256,272" fill="none" stroke="black"/>
              <path d="M 272,304 L 488,304" fill="none" stroke="black"/>
              <path d="M 272,336 L 488,336" fill="none" stroke="black"/>
              <path d="M 48,368 L 256,368" fill="none" stroke="black"/>
              <polygon class="arrowhead" points="496,304 484,298.4 484,309.6" fill="black" transform="rotate(0,488,304)"/>
              <polygon class="arrowhead" points="496,176 484,170.4 484,181.6" fill="black" transform="rotate(0,488,176)"/>
              <polygon class="arrowhead" points="280,336 268,330.4 268,341.6" fill="black" transform="rotate(180,272,336)"/>
              <polygon class="arrowhead" points="280,208 268,202.4 268,213.6" fill="black" transform="rotate(180,272,208)"/>
              <polygon class="arrowhead" points="264,272 252,266.4 252,277.6" fill="black" transform="rotate(0,256,272)"/>
              <polygon class="arrowhead" points="264,144 252,138.4 252,149.6" fill="black" transform="rotate(0,256,144)"/>
              <polygon class="arrowhead" points="264,112 252,106.4 252,117.6" fill="black" transform="rotate(0,256,112)"/>
              <polygon class="arrowhead" points="56,368 44,362.4 44,373.6" fill="black" transform="rotate(180,48,368)"/>
              <polygon class="arrowhead" points="56,240 44,234.4 44,245.6" fill="black" transform="rotate(180,48,240)"/>
              <polygon class="arrowhead" points="56,112 44,106.4 44,117.6" fill="black" transform="rotate(180,48,112)"/>
              <g class="text">
                <text x="16" y="36">end</text>
                <text x="60" y="36">entity</text>
                <text x="264" y="36">RA/CA</text>
                <text x="28" y="52">device</text>
                <text x="76" y="52">with</text>
                <text x="132" y="52">Attester</text>
                <text x="248" y="52">Relying</text>
                <text x="304" y="52">Party</text>
                <text x="492" y="52">Verifier</text>
                <text x="104" y="84">certificate</text>
                <text x="192" y="84">lifecycle</text>
                <text x="116" y="100">management</text>
                <text x="196" y="100">protocol</text>
                <text x="88" y="132">request</text>
                <text x="144" y="132">nonce</text>
                <text x="312" y="164">request</text>
                <text x="368" y="164">nonce</text>
                <text x="436" y="164">(optional)</text>
                <text x="304" y="196">nonce</text>
                <text x="372" y="196">(optional)</text>
                <text x="80" y="228">nonce</text>
                <text x="72" y="260">CSR</text>
                <text x="108" y="260">with</text>
                <text x="164" y="260">Evidence</text>
                <text x="316" y="292">Evidence</text>
                <text x="328" y="324">Attestation</text>
                <text x="404" y="324">Result</text>
                <text x="104" y="356">certificate</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art"><![CDATA[
end entity                    RA/CA
device with Attester       Relying Party                 Verifier
    |                           |                            |
    |  certificate lifecycle    |                            |
    |    management protocol    |                            |
    |<------------------------->|                            |
    |  request nonce            |                            |
    |-------------------------->|                            |
    |                           |  request nonce (optional)  |
    |                           |--------------------------->|
    |                           |  nonce (optional)          |
    |                           |<---------------------------|
    |  nonce                    |                            |
    |<--------------------------|                            |
    |  CSR with Evidence        |                            |
    |-------------------------->|                            |
    |                           |  Evidence                  |
    |                           |--------------------------->|
    |                           |  Attestation Result        |
    |                           |<---------------------------|
    |  certificate              |                            |
    |<--------------------------|                            |
    |                           |                            |
]]></artwork>
        </artset>
      </figure>
      <t>The nonce request and response messages MUST be transferred within the same
PKI management operation context provided by the certificate lifecycle management
protocol being used, just as the certification request and response messages are,
so that the RA/CA can unambiguously associate the provided nonce with the Evidence
in the CSR.
This association is required because the RA/CA treats the Evidence carried in the
CSR as opaque and therefore cannot rely on inspecting the Evidence to determine
which previously issued nonce applies to that CSR.</t>
      <t>The nonce request and nonce response messages allow the end entity to request
only one nonce and one <tt>respInfo</tt> structure from the RA/CA. If the end entity
wants to include multiple attestation statements in a CSR, it can use the
Composite Attester model described in <xref section="3.3" sectionFormat="of" target="RFC9334"/> and
<xref target="I-D.richardson-rats-composite-attesters"/>, i.e., together with a conceptual
message wrapper (CMW) <xref target="I-D.ietf-rats-msg-wrap"/> structure, as described in
<xref section="4.3" sectionFormat="of" target="I-D.ietf-lamps-csr-attestation"/>. The Lead Attester
should then pass the nonce, or a value derived from it if the selected
attestation statement type defines a deterministic nonce transformation
(see <xref target="operations"/>), to the sub-Attesters. Based on Figure 2 of
<xref target="I-D.richardson-rats-composite-attesters"/>, <xref target="fig-lead-Attester"/> shows an
example of how a nonce can be distributed among several Attesters in an end
entity. If multiple <tt>respInfo</tt> structures are required, the <tt>reqInfo</tt> and <tt>respInfo</tt>
structures can also use a CMW.</t>
      <figure anchor="fig-lead-Attester">
        <name>Class 1 Composite Attester</name>
        <artset>
          <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="528" width="544" viewBox="0 0 544 528" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 8,160 L 8,512" fill="none" stroke="black"/>
              <path d="M 24,256 L 24,480" fill="none" stroke="black"/>
              <path d="M 40,272 L 40,320" fill="none" stroke="black"/>
              <path d="M 88,328 L 88,432" fill="none" stroke="black"/>
              <path d="M 112,176 L 112,208" fill="none" stroke="black"/>
              <path d="M 152,272 L 152,320" fill="none" stroke="black"/>
              <path d="M 176,400 L 176,448" fill="none" stroke="black"/>
              <path d="M 184,32 L 184,64" fill="none" stroke="black"/>
              <path d="M 208,72 L 208,168" fill="none" stroke="black"/>
              <path d="M 208,216 L 208,392" fill="none" stroke="black"/>
              <path d="M 240,72 L 240,168" fill="none" stroke="black"/>
              <path d="M 240,216 L 240,392" fill="none" stroke="black"/>
              <path d="M 264,32 L 264,64" fill="none" stroke="black"/>
              <path d="M 288,400 L 288,448" fill="none" stroke="black"/>
              <path d="M 304,336 L 304,480" fill="none" stroke="black"/>
              <path d="M 352,176 L 352,208" fill="none" stroke="black"/>
              <path d="M 416,352 L 416,400" fill="none" stroke="black"/>
              <path d="M 416,432 L 416,480" fill="none" stroke="black"/>
              <path d="M 520,352 L 520,400" fill="none" stroke="black"/>
              <path d="M 520,432 L 520,480" fill="none" stroke="black"/>
              <path d="M 536,160 L 536,512" fill="none" stroke="black"/>
              <path d="M 184,32 L 264,32" fill="none" stroke="black"/>
              <path d="M 184,64 L 264,64" fill="none" stroke="black"/>
              <path d="M 8,160 L 200,160" fill="none" stroke="black"/>
              <path d="M 216,160 L 232,160" fill="none" stroke="black"/>
              <path d="M 248,160 L 536,160" fill="none" stroke="black"/>
              <path d="M 112,176 L 352,176" fill="none" stroke="black"/>
              <path d="M 112,208 L 352,208" fill="none" stroke="black"/>
              <path d="M 24,256 L 200,256" fill="none" stroke="black"/>
              <path d="M 216,256 L 232,256" fill="none" stroke="black"/>
              <path d="M 248,256 L 304,256" fill="none" stroke="black"/>
              <path d="M 40,272 L 152,272" fill="none" stroke="black"/>
              <path d="M 40,320 L 152,320" fill="none" stroke="black"/>
              <path d="M 416,352 L 520,352" fill="none" stroke="black"/>
              <path d="M 312,368 L 408,368" fill="none" stroke="black"/>
              <path d="M 312,384 L 408,384" fill="none" stroke="black"/>
              <path d="M 176,400 L 288,400" fill="none" stroke="black"/>
              <path d="M 416,400 L 520,400" fill="none" stroke="black"/>
              <path d="M 88,432 L 168,432" fill="none" stroke="black"/>
              <path d="M 416,432 L 520,432" fill="none" stroke="black"/>
              <path d="M 176,448 L 288,448" fill="none" stroke="black"/>
              <path d="M 312,448 L 408,448" fill="none" stroke="black"/>
              <path d="M 312,464 L 408,464" fill="none" stroke="black"/>
              <path d="M 24,480 L 112,480" fill="none" stroke="black"/>
              <path d="M 224,480 L 304,480" fill="none" stroke="black"/>
              <path d="M 416,480 L 520,480" fill="none" stroke="black"/>
              <path d="M 8,512 L 248,512" fill="none" stroke="black"/>
              <path d="M 336,512 L 536,512" fill="none" stroke="black"/>
              <polygon class="arrowhead" points="416,448 404,442.4 404,453.6" fill="black" transform="rotate(0,408,448)"/>
              <polygon class="arrowhead" points="416,368 404,362.4 404,373.6" fill="black" transform="rotate(0,408,368)"/>
              <polygon class="arrowhead" points="320,464 308,458.4 308,469.6" fill="black" transform="rotate(180,312,464)"/>
              <polygon class="arrowhead" points="320,384 308,378.4 308,389.6" fill="black" transform="rotate(180,312,384)"/>
              <polygon class="arrowhead" points="248,216 236,210.4 236,221.6" fill="black" transform="rotate(270,240,216)"/>
              <polygon class="arrowhead" points="248,72 236,66.4 236,77.6" fill="black" transform="rotate(270,240,72)"/>
              <polygon class="arrowhead" points="216,392 204,386.4 204,397.6" fill="black" transform="rotate(90,208,392)"/>
              <polygon class="arrowhead" points="216,168 204,162.4 204,173.6" fill="black" transform="rotate(90,208,168)"/>
              <polygon class="arrowhead" points="176,432 164,426.4 164,437.6" fill="black" transform="rotate(0,168,432)"/>
              <g class="text">
                <text x="224" y="52">RA/CA</text>
                <text x="184" y="100">nonce</text>
                <text x="256" y="100">CSR</text>
                <text x="160" y="196">certificate</text>
                <text x="252" y="196">management</text>
                <text x="324" y="196">client</text>
                <text x="328" y="276">Evidence-collection</text>
                <text x="424" y="276">CMW</text>
                <text x="76" y="292">target</text>
                <text x="112" y="292">A</text>
                <text x="200" y="292">n</text>
                <text x="260" y="292">1:</text>
                <text x="360" y="292">CMW(Evidence(Attester</text>
                <text x="460" y="292">A)</text>
                <text x="96" y="308">environment</text>
                <text x="200" y="308">o</text>
                <text x="260" y="308">2:</text>
                <text x="376" y="308">Evidence(Attester</text>
                <text x="460" y="308">B)</text>
                <text x="200" y="324">n</text>
                <text x="260" y="324">3:</text>
                <text x="376" y="324">Evidence(Attester</text>
                <text x="464" y="324">C))</text>
                <text x="200" y="340">c</text>
                <text x="120" y="356">collect</text>
                <text x="200" y="356">e</text>
                <text x="344" y="356">nonce</text>
                <text x="116" y="372">Claims</text>
                <text x="460" y="372">Attester</text>
                <text x="504" y="372">B</text>
                <text x="356" y="404">Evidence</text>
                <text x="400" y="404">B</text>
                <text x="224" y="420">attesting</text>
                <text x="232" y="436">environment</text>
                <text x="344" y="436">nonce</text>
                <text x="460" y="452">Attester</text>
                <text x="504" y="452">C</text>
                <text x="124" y="468">Attester</text>
                <text x="168" y="468">A</text>
                <text x="132" y="484">Lead</text>
                <text x="188" y="484">Attester</text>
                <text x="356" y="484">Evidence</text>
                <text x="400" y="484">C</text>
                <text x="264" y="516">end</text>
                <text x="308" y="516">entity</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art"><![CDATA[
                      .---------.
                      |  RA/CA  |
                      '---------'
                         |   ^
                    nonce|   |CSR
                         |   |
                         |   |
                         |   |
.------------------------v---|------------------------------------.
|            .-----------------------------.                      |
|            |certificate management client|                      |
|            '-----------------------------'                      |
|                        |   ^                                    |
|                        |   |                                    |
| .----------------------|---|-------.                            |
| | .-------------.      |   | Evidence-collection CMW            |
| | | target A    |     n|   | 1: CMW(Evidence(Attester A)        |
| | | environment |     o|   | 2:     Evidence(Attester B)        |
| | '-------------'     n|   | 3:     Evidence(Attester C))       |
| |       |             c|   |       |                            |
| |       |collect      e|   |       |  nonce      .------------. |
| |       |Claims        |   |       |------------>| Attester B | |
| |       |              v   |       |<------------|            | |
| |       |          .-------------. |  Evidence B '------------' |
| |       |          | attesting   | |                            |
| |       '--------->| environment | |  nonce      .------------. |
| |                  '-------------' |------------>| Attester C | |
| |        Attester A                |<------------|            | |
| '-----------Lead Attester----------'  Evidence C '------------' |
|                                                                 |
'------------------------------end entity-------------------------'
]]></artwork>
        </artset>
      </figure>
      <t>The interaction between the end entity and the RA/CA is illustrated in <xref target="fig-msg"/>.</t>
      <figure anchor="fig-msg">
        <name>Exchange with Nonce and Evidence.</name>
        <artset>
          <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="560" width="552" viewBox="0 0 552 560" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 8,46 L 80,46" fill="none" stroke="black"/>
              <path d="M 8,50 L 80,50" fill="none" stroke="black"/>
              <path d="M 360,46 L 456,46" fill="none" stroke="black"/>
              <path d="M 360,50 L 456,50" fill="none" stroke="black"/>
              <path d="M 144,80 L 184,80" fill="none" stroke="black"/>
              <path d="M 312,80 L 352,80" fill="none" stroke="black"/>
              <path d="M 144,176 L 176,176" fill="none" stroke="black"/>
              <path d="M 312,176 L 352,176" fill="none" stroke="black"/>
              <path d="M 344,304 L 360,304" fill="none" stroke="black"/>
              <path d="M 136,448 L 152,448" fill="none" stroke="black"/>
              <polygon class="arrowhead" points="368,304 356,298.4 356,309.6" fill="black" transform="rotate(0,360,304)"/>
              <polygon class="arrowhead" points="360,80 348,74.4 348,85.6" fill="black" transform="rotate(0,352,80)"/>
              <polygon class="arrowhead" points="152,176 140,170.4 140,181.6" fill="black" transform="rotate(180,144,176)"/>
              <polygon class="arrowhead" points="144,448 132,442.4 132,453.6" fill="black" transform="rotate(180,136,448)"/>
              <circle cx="8" cy="528" r="6" class="closeddot" fill="black"/>
              <g class="text">
                <text x="16" y="36">end</text>
                <text x="60" y="36">entity</text>
                <text x="408" y="36">RA/CA</text>
                <text x="216" y="84">nonce</text>
                <text x="272" y="84">request</text>
                <text x="372" y="116">Verify</text>
                <text x="432" y="116">request</text>
                <text x="380" y="132">Generate</text>
                <text x="428" y="132">or</text>
                <text x="468" y="132">obtain</text>
                <text x="524" y="132">nonce*</text>
                <text x="372" y="148">Create</text>
                <text x="436" y="148">response</text>
                <text x="208" y="180">nonce</text>
                <text x="268" y="180">response</text>
                <text x="216" y="196">(nonce,</text>
                <text x="280" y="196">expiry)</text>
                <text x="36" y="228">Generate</text>
                <text x="88" y="228">key</text>
                <text x="124" y="228">pair</text>
                <text x="36" y="244">Generate</text>
                <text x="112" y="244">Evidence*</text>
                <text x="36" y="260">Generate</text>
                <text x="128" y="260">certification</text>
                <text x="48" y="276">request</text>
                <text x="112" y="276">message</text>
                <text x="148" y="308">--</text>
                <text x="216" y="308">certification</text>
                <text x="304" y="308">request</text>
                <text x="168" y="324">+Evidence</text>
                <text x="248" y="324">including</text>
                <text x="312" y="324">nonce</text>
                <text x="372" y="356">Verify</text>
                <text x="432" y="356">request</text>
                <text x="372" y="372">Verify</text>
                <text x="440" y="372">Evidence*</text>
                <text x="368" y="388">Check</text>
                <text x="464" y="388">freshness/replay*</text>
                <text x="368" y="404">Issue</text>
                <text x="440" y="404">certificate</text>
                <text x="372" y="420">Create</text>
                <text x="436" y="420">response</text>
                <text x="216" y="452">certification</text>
                <text x="308" y="452">response</text>
                <text x="356" y="452">--</text>
                <text x="28" y="484">Handle</text>
                <text x="92" y="484">response</text>
                <text x="24" y="500">Store</text>
                <text x="96" y="500">certificate</text>
                <text x="16" y="532">:</text>
                <text x="48" y="532">These</text>
                <text x="96" y="532">steps</text>
                <text x="136" y="532">can</text>
                <text x="184" y="532">require</text>
                <text x="268" y="532">interactions</text>
                <text x="340" y="532">with</text>
                <text x="376" y="532">the</text>
                <text x="428" y="532">Attester</text>
                <text x="480" y="532">(on</text>
                <text x="512" y="532">the</text>
                <text x="40" y="548">end</text>
                <text x="84" y="548">entity</text>
                <text x="136" y="548">side)</text>
                <text x="176" y="548">and</text>
                <text x="212" y="548">with</text>
                <text x="248" y="548">the</text>
                <text x="300" y="548">Verifier</text>
                <text x="352" y="548">(on</text>
                <text x="384" y="548">the</text>
                <text x="424" y="548">RA/CA</text>
                <text x="476" y="548">side).</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art"><![CDATA[
end entity                                      RA/CA
==========                                  =============

                 ------ nonce request ----->

                                           Verify request
                                           Generate or obtain nonce*
                                           Create response

                 <---- nonce response ------
                       (nonce, expiry)

Generate key pair
Generate Evidence*
Generate certification
  request message

                 -- certification request -->
                +Evidence including nonce

                                           Verify request
                                           Verify Evidence*
                                           Check freshness/replay*
                                           Issue certificate
                                           Create response

                <-- certification response --

Handle response
Store certificate

*: These steps can require interactions with the Attester (on the
   end entity side) and with the Verifier (on the RA/CA side).
]]></artwork>
        </artset>
      </figure>
      <t>The following sections define the generic data structures for nonce request and
nonce response message content. CMP and CMC use ASN.1, while EST uses JSON and CBOR,
both defined using CDDL.</t>
      <section anchor="ASN.1">
        <name>ASN.1 Representation</name>
        <t>This section defines nonce request and nonce response message content as ASN.1 types for use in
CMP, see <xref target="CMP"/>, and CMC, see <xref target="CMC"/>. Nonce values conveyed as ASN.1 OCTET STRING values
in CMP and CMC are between 8 and 64 bytes in length. A zero-length OCTET STRING indicates
that the RA/CA does not require proof of freshness for the upcoming certification request.</t>
        <artwork><![CDATA[
ATTESTATION-NONCE-REQUEST ::= TYPE-IDENTIFIER
AttestationNonceRequestSet ATTESTATION-NONCE-REQUEST ::= {
   ... -- None defined in this document --
}

ATTESTATION-NONCE-RESPONSE ::= TYPE-IDENTIFIER
AttestationNonceResponseSet ATTESTATION-NONCE-RESPONSE ::= {
   ... -- None defined in this document --
}

NonceRequestTypeInfo ::= SEQUENCE {
    type ATTESTATION-NONCE-REQUEST.&id(
                 {AttestationNonceRequestSet}),
    -- identifies the nonce-request syntax for the selected
    --   attestation statement type
    reqInfo  ATTESTATION-NONCE-REQUEST.&Type(
                 {AttestationNonceRequestSet}{@type}) OPTIONAL
    -- contains type-specific nonce-request information
}

NonceResponseTypeInfo ::= SEQUENCE {
    type ATTESTATION-NONCE-RESPONSE.&id(
                 {AttestationNonceResponseSet}),
    -- identifies the nonce-response syntax for the selected
    --   attestation statement type
    respInfo ATTESTATION-NONCE-RESPONSE.&Type(
                 {AttestationNonceResponseSet}{@type}) OPTIONAL
    -- contains type-specific nonce-response information
}

 NonceRequest ::= SEQUENCE {
    len      INTEGER (8..64) OPTIONAL,
    -- indicates the desired length of the requested nonce
    reqTypeInfo NonceRequestTypeInfo OPTIONAL
 }

 NonceResponse ::= SEQUENCE {
    nonce    OCTET STRING (SIZE(0 | 8..64)),
    -- contains the nonce, preferably of length len
    -- a zero-length OCTET STRING indicates that no proof of
    --   freshness is required
    expiry   INTEGER (0..MAX) OPTIONAL,
    -- hint indicating how long in seconds the nonce issuer
    --   expects the nonce to remain acceptable
    respTypeInfo NonceResponseTypeInfo OPTIONAL
 }
]]></artwork>
      </section>
      <section anchor="CDDL">
        <name>CDDL Representation</name>
        <t>This section provides a CDDL <xref target="RFC8610"/> definition for the JSON and CBOR nonce
request and nonce response message content. The nonce-request rule applies to
both JSON and CBOR. The nonce-response-json and nonce-response-cbor rules define
the encoding-specific representation of the nonce value. For JSON, the
base64url-nonce rule captures the allowed character set and encoded length; the
decoded nonce length requirements are specified in <xref target="EST-https"/>.</t>
        <sourcecode type="cddl"><![CDATA[
nonce-request = {
  ? "len": nonce-length,
  ? "reqTypeInfo": nonce-request-type-info
}

nonce-request-type-info = {
  "type": dotted-decimal-oid,
  ? "reqInfo": any
}

nonce-response-json = {
    "nonce": json-nonce,
  ? "expiry": uint,
  ? "respTypeInfo": nonce-response-type-info-json
}

nonce-response-type-info-json = {
  "type": dotted-decimal-oid,
  ? "respInfo": any
}

nonce-response-cbor = {
    "nonce": cbor-nonce,
  ? "expiry": uint,
  ? "respTypeInfo": nonce-response-type-info-cbor
}

nonce-response-type-info-cbor = {
  "type": dotted-decimal-oid,
  ? "respInfo": any
}

nonce-length = 8..64
cbor-nonce = h'' / bstr .size (8..64)
json-nonce = "" / base64url-nonce
base64url-nonce = tstr .regexp "[A-Za-z0-9_-]{11,86}"
dotted-decimal-oid = tstr
]]></sourcecode>
      </section>
    </section>
    <section anchor="CMP">
      <name>Use with CMP</name>
      <t>The nonce request and nonce response message content is conveyed as ASN.1 content,
see <xref target="ASN.1"/>, in a general message (<tt>genm</tt>) <xref section="5.3.19" sectionFormat="of" target="RFC9810"/>
and general response (<tt>genp</tt>) <xref section="5.3.20" sectionFormat="of" target="RFC9810"/>, respectively.</t>
      <artwork><![CDATA[
GenMsg:    {id-it TBD1}, NonceRequest
GenRep:    {id-it TBD2}, NonceResponse

id-it-nonceRequest OBJECT IDENTIFIER ::= { id-it TBD1 }
NonceRequestValue ::= NonceRequest

id-it-nonceResponse OBJECT IDENTIFIER ::= { id-it TBD2 }
NonceResponseValue ::= NonceResponse
]]></artwork>
      <t>When CMP is transferred over HTTP, the OPTIONAL <tt>&lt;operation&gt;</tt> path segment
defined in <xref section="3.4" sectionFormat="of" target="RFC9811"/> MAY be used for the nonce request message.</t>
      <table>
        <thead>
          <tr>
            <th align="left">Operation</th>
            <th align="left">Path segment</th>
            <th align="left">Details</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">Get Attestation Freshness Nonce over HTTP</td>
            <td align="left">
              <tt>getnonce</tt></td>
            <td align="left">
              <xref target="CMP"/></td>
          </tr>
        </tbody>
      </table>
      <t>When CMP is transferred over CoAP, the OPTIONAL <tt>&lt;operation&gt;</tt> path segment
defined in <xref section="2.1" sectionFormat="of" target="RFC9482"/> MAY be used for the nonce request message.</t>
      <table>
        <thead>
          <tr>
            <th align="left">Operation</th>
            <th align="left">Path segment</th>
            <th align="left">Details</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">Get Attestation Freshness Nonce over CoAP</td>
            <td align="left">
              <tt>nonce</tt></td>
            <td align="left">
              <xref target="CMP"/></td>
          </tr>
        </tbody>
      </table>
      <t>To ensure that the nonce request and response messages are associated with the subsequent
request and response messages used to transmit the CSR, the transaction identifier specified in
<xref section="5.1.1" sectionFormat="of" target="RFC9810"/> MUST be used.</t>
      <t>In the event of a possible error or if the RA/CA is unable or unwilling to
provide the requested nonce, CMP offers several ways to indicate this. Which
variant fits depends
on the circumstances.</t>
      <ul spacing="normal">
        <li>
          <t>Respond with an error message containing the <tt>PKIFailureInfo</tt> bit as defined in
<xref target="RFC9810"/>, see also <xref target="RFC9483"/>.</t>
        </li>
        <li>
          <t>If HTTP or CoAP is used for transferring the general message, return a status code
on transfer level as described in <xref target="RFC9811"/> or <xref target="RFC9482"/>.</t>
        </li>
      </ul>
    </section>
    <section anchor="EST">
      <name>Use with EST</name>
      <t>The nonce request and nonce response message content is conveyed as JSON <xref target="RFC8259"/>
or CBOR <xref target="RFC8949"/> according to the CDDL definition, see <xref target="CDDL"/>, between end
entity (EST client) and
RA/CA (EST server). A compliant EST server MUST provide an EST endpoint with
the path segment <tt>getnonce</tt> when EST is transferred over HTTPS and with the path
segment <tt>nonce</tt> when EST is transferred over secure CoAP.</t>
      <table>
        <thead>
          <tr>
            <th align="left">Operation</th>
            <th align="left">Path segment</th>
            <th align="left">Details</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">Get Attestation Freshness Nonce over HTTP</td>
            <td align="left">
              <tt>getnonce</tt></td>
            <td align="left">
              <xref target="EST-https"/></td>
          </tr>
          <tr>
            <td align="left">Get Attestation Freshness Nonce over CoAP</td>
            <td align="left">
              <tt>nonce</tt></td>
            <td align="left">
              <xref target="EST-coaps"/></td>
          </tr>
        </tbody>
      </table>
      <t>Depending on whether additional parameters are to be transferred, the end entity
uses either the <tt>GET</tt> or <tt>POST</tt> method:</t>
      <ul spacing="normal">
        <li>
          <t>The <tt>GET</tt> method MUST be used if no optional content is to be transferred.</t>
        </li>
        <li>
          <t>The <tt>POST</tt> method MUST be used if nonce request message content encoded in JSON
or CBOR is to be transferred.</t>
        </li>
      </ul>
      <section anchor="EST-https">
        <name>EST over HTTPS</name>
        <t>If the nonce request and nonce response message content is transferred over HTTPS,
the specification in <xref target="RFC7030"/> applies.</t>
        <t>The JSON nonce request object is formally described by the nonce-request CDDL
rule in <xref target="CDDL"/>. The JSON nonce response object is formally described by the
nonce-response-json CDDL rule in <xref target="CDDL"/>.</t>
        <t>The JSON structure has the following members:</t>
        <ul spacing="normal">
          <li>
            <t>The OPTIONAL "len" and "expiry" members, if present, MUST be unsigned
integers.</t>
          </li>
          <li>
            <t>The "nonce" member MUST either contain a zero-length string or the nonce
value between 8 and 64 bytes in length conveyed as a JSON string containing
the unpadded base64url encoding, as specified in <xref section="5" sectionFormat="of" target="RFC4648"/>.
Such encodings are between 11 and 86 characters in length.</t>
          </li>
          <li>
            <t>The OPTIONAL "reqTypeInfo" member (in requests) and "respTypeInfo" member
(in responses) are JSON objects that group the type-specific information.
Each object contains:
            </t>
            <ul spacing="normal">
              <li>
                <t>A "type" member, which MUST be a text string containing the object
identifier as a dotted-decimal OID.</t>
              </li>
              <li>
                <t>An OPTIONAL "reqInfo" or "respInfo" member whose contents are defined
by the OID in the corresponding "type" member.</t>
              </li>
            </ul>
          </li>
        </ul>
        <t>If the nonce request message was successful, the EST server MUST respond with an HTTP 200
status code and the nonce response message content MUST be encoded as a JSON object.
The HTTP 200 status code MUST also be used if the nonce is a zero-length string.</t>
        <t>The EST server MUST include a Cache-Control header field <xref target="RFC9111"/> with the
"no-store" directive in the nonce response to disable HTTP-level caching.</t>
        <t>In the event of a possible error, the EST server MUST respond with an HTTP
status code 400 (Bad Request) and MUST omit the nonce response message content. If the
nonce request message has been made correctly, but the EST server is unable or
unwilling to provide the requested nonce, it MUST respond with an HTTP 503
(Service
Unavailable).</t>
        <t>The EST server MAY request HTTP-based client authentication as described in
<xref section="3.2.3" sectionFormat="of" target="RFC7030"/>.</t>
        <t>The following media types MUST be used as the Content-Type of the <tt>POST</tt> request
and the response.</t>
        <table>
          <thead>
            <tr>
              <th align="left">Message type (per operation)</th>
              <th align="left">Media type(s)</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">NonceRequest</td>
              <td align="left">N/A (for GET) or<br/>application/est-attestation-freshness+json (for POST)</td>
              <td align="left">
                <xref target="EST-https"/></td>
            </tr>
            <tr>
              <td align="left">NonceResponse</td>
              <td align="left">application/est-attestation-freshness+json</td>
              <td align="left">
                <xref target="EST-https"/></td>
            </tr>
          </tbody>
        </table>
        <t>The following example shows a nonce request and nonce response message exchange without
transmitting optional parameters in the request:</t>
        <artwork><![CDATA[
GET /.well-known/est/getnonce HTTP/1.1

HTTP/1.1 200 OK
Cache-Control: no-store
Content-Type: application/est-attestation-freshness+json

{
  "nonce": "MTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTI",
  "expiry": 600
}
]]></artwork>
        <t>The following example shows a nonce request and nonce response message exchange:</t>
        <artwork><![CDATA[
POST /.well-known/est/getnonce HTTP/1.1
Content-Type: application/est-attestation-freshness+json

{
  "len": 32
}

HTTP/1.1 200 OK
Cache-Control: no-store
Content-Type: application/est-attestation-freshness+json

{
  "nonce": "MTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTI",
  "expiry": 600
}
]]></artwork>
        <t>To ensure that the nonce request and response messages are associated with the subsequent
request and response messages used to transmit the CSR, the EST server MUST use a
session-maintenance mechanism that binds the nonce request and response messages to the
subsequent request and response messages used to transmit the CSR. This can be achieved
by using the same TLS session or by using an HTTP state mechanism, such as cookies,
when EST is transferred over HTTPS. If the EST server cannot associate the CSR
with the prior nonce request and response messages, it MUST NOT treat the CSR as
associated with the previously provided nonce. In case an end entity wants to request
multiple certificates and therefore needs multiple nonces, the end entity MUST
request a new nonce only after the previous CSR has been processed. Concurrent,
interleaved transactions are not supported.</t>
      </section>
      <section anchor="EST-coaps">
        <name>EST over Secure CoAP</name>
        <t>If the nonce request and nonce response message content is transferred via
secure CoAP, the specification in <xref target="RFC9148"/> applies.</t>
        <t>The CBOR nonce request object is formally described by the nonce-request CDDL
rule in <xref target="CDDL"/>. The CBOR nonce response object is formally described by the
nonce-response-cbor CDDL rule in <xref target="CDDL"/>.</t>
        <t>The CBOR structure has the following members:</t>
        <ul spacing="normal">
          <li>
            <t>All map keys are text strings.</t>
          </li>
          <li>
            <t>The "nonce" member MUST either contain a zero-length byte string or the nonce
value between 8 and 64 bytes in length conveyed as a CBOR byte string.</t>
          </li>
          <li>
            <t>The OPTIONAL "reqTypeInfo" member (in requests) and "respTypeInfo" member
(in responses) are CBOR maps that group the type-specific information.
Each map contains:
            </t>
            <ul spacing="normal">
              <li>
                <t>A "type" member, which is a text string containing the object identifier
in dotted-decimal notation.</t>
              </li>
              <li>
                <t>An OPTIONAL "reqInfo" or "respInfo" member containing type-specific CBOR
values. Their CBOR encoding is defined by the OID in the corresponding
"type" member.</t>
              </li>
            </ul>
          </li>
        </ul>
        <t>If the nonce request message was successful, the EST server MUST respond to a GET
request with a code 2.05 and to a POST request with code 2.04 and the
nonce response message content MUST be encoded as a CBOR map.
The code 2.05 or code 2.04 MUST also be used if the nonce is a zero-length
byte string.</t>
        <t>The EST server MUST include a Max-Age Option with the value 0 in the nonce
response to disable CoAP-level caching.</t>
        <t>In the event of a possible error, the EST server MUST respond with a code
4.00 (Bad Request) and MUST omit the nonce response message content. If the
nonce request message has been made correctly, but the EST server is unable or
unwilling to provide the requested nonce, it MUST respond with a code 5.03
(Service Unavailable).</t>
        <t>The following media type MUST be used for nonce request and nonce response message
content. The corresponding CoAP Content-Format value is used in the CoAP
Content-Format and Accept options as specified in <xref target="RFC9148"/>.</t>
        <table>
          <thead>
            <tr>
              <th align="left">Message type (per operation)</th>
              <th align="left">Media type</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">NonceRequest<br/>NonceResponse</td>
              <td align="left">application/est-attestation-freshness+cbor</td>
              <td align="left">
                <xref target="EST-coaps"/></td>
            </tr>
          </tbody>
        </table>
        <t>To ensure that the nonce request and response messages are associated with the subsequent
request and response messages used to transmit the CSR, the EST server MUST use a
session-maintenance mechanism that binds the nonce request and response messages to the
subsequent request and response messages used to transmit the CSR. CoAP does not define
HTTP cookies. This association can be achieved by using the same secure CoAP security
association, such as the same DTLS connection, or by using an integrity-protected CoAP
mechanism that carries server-generated opaque state, such as the Echo option defined in
<xref target="RFC9175"/>. If the EST server cannot associate the CSR with the prior
nonce request and response messages, it MUST NOT treat the CSR as associated with the
previously provided nonce. In case an end entity wants to request
multiple certificates and therefore needs multiple nonces, the end entity MUST
request a new nonce only after the previous CSR has been processed. Concurrent,
interleaved transactions are not supported.</t>
      </section>
    </section>
    <section anchor="CMC">
      <name>Use with CMC</name>
      <t>The nonce request and nonce response message content is conveyed as ASN.1,
see <xref target="ASN.1"/>, as CMC Controls in a Full PKI Request, see
<xref section="6" sectionFormat="of" target="RFC10002"/>. The received nonce can be
used for a CSR to be transferred in a Full PKI Request. A Simple PKI Request
cannot be used because it cannot carry the required transaction identifier.</t>
      <t>To transfer the controls, the content type <tt>id-data</tt> SHOULD be used.</t>
      <artwork><![CDATA[
cmc-nonceReq CMC-CONTROL ::=
    { NonceRequest IDENTIFIED BY id-cmc-nonceReq }
id-cmc-nonceReq OBJECT IDENTIFIER ::= { id-cmc TBD4 }

cmc-nonceResp CMC-CONTROL ::=
    { NonceResponse IDENTIFIED BY id-cmc-nonceResp }
id-cmc-nonceResp OBJECT IDENTIFIER ::= { id-cmc TBD5 }
]]></artwork>
      <t>The following example shows the nonce request and nonce response message content:</t>
      <artwork><![CDATA[
ContentInfo.contentType = id-data
ContentInfo.content
   controlSequence
      {101, id-cmc-transactionId, 10132985123483401}
      {102, id-cmc-senderNonce, 10001}
      {103, id-cmc-nonceReq, <NonceRequest>}

ContentInfo.contentType = id-data
ContentInfo.content
   controlSequence
      {101, id-cmc-transactionId, 10132985123483401}
      {102, id-cmc-senderNonce, 10005}
      {103, id-cmc-recipientNonce, 10001}
      {104, id-cmc-nonceResp, <NonceResponse>}
]]></artwork>
      <t>To ensure that the nonce request and response messages are associated with the subsequent
request and response messages used to transmit the CSR, the transaction identifier specified in
<xref section="6.6" sectionFormat="of" target="RFC10002"/> MUST be used. The same transaction identifier
MUST be used for the nonce request and response messages and for the subsequent request and
response messages used to transmit the CSR. The senderNonce and recipientNonce controls
specified in <xref section="6.6" sectionFormat="of" target="RFC10002"/> can be used to pair each CMC
request with its corresponding response, but they do not replace the transaction identifier
used to associate the nonce exchange with the subsequent CSR exchange.</t>
      <t>In the event of an error, or if the CMC server is unable or unwilling to provide
the requested nonce, the CMC server MAY return status information about the
request using either an
Extended CMC Status Info Control or a CMC Status Info Control, as defined in
<xref section="6.1" sectionFormat="of" target="RFC10002"/>.</t>
    </section>
    <section anchor="iana">
      <name>IANA Considerations</name>
      <section anchor="cmp">
        <name>CMP</name>
        <section anchor="well-known-uri-path-segment">
          <name>Well-Known URI Path Segment</name>
          <t>IANA is requested to add the following entries to the "CMP Well-Known URI Path
Segments" registry <xref target="RFC9811"/>:</t>
          <table>
            <thead>
              <tr>
                <th align="left">Path Segment</th>
                <th align="left">Description</th>
                <th align="left">Reference</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">
                  <tt>getnonce</tt></td>
                <td align="left">Get Attestation Freshness Nonce over HTTP</td>
                <td align="left">This-RFC</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>nonce</tt></td>
                <td align="left">Get Attestation Freshness Nonce over CoAP</td>
                <td align="left">This-RFC</td>
              </tr>
            </tbody>
          </table>
        </section>
        <section anchor="information-type">
          <name>Information Type</name>
          <t>IANA is requested to register the following object identifier in the
"SMI Security for PKIX CMP Information Types" registry
(1.3.6.1.5.5.7.4):</t>
          <table>
            <thead>
              <tr>
                <th align="left">Decimal</th>
                <th align="left">Description</th>
                <th align="left">Reference</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">TBD1</td>
                <td align="left">id-it-nonceRequest</td>
                <td align="left">This-RFC</td>
              </tr>
              <tr>
                <td align="left">TBD2</td>
                <td align="left">id-it-nonceResponse</td>
                <td align="left">This-RFC</td>
              </tr>
            </tbody>
          </table>
        </section>
      </section>
      <section anchor="est">
        <name>EST</name>
        <section anchor="well-known-uri-path-segment-1">
          <name>Well-Known URI Path Segment</name>
          <t>This document defines a new protocol registry group entitled "Enrollment over Secure
Transport (EST)" (at <eref target="https://www.iana.org/assignments/est">https://www.iana.org/assignments/est</eref>) with a new "EST
Well-Known URI Path Segments" registry for path segments below the
<tt>/.well-known/est</tt> URI <xref target="RFC8615"/>. The registry contains three columns: Path
Segment, Description, and Reference. New items can be added using the
Specification Required <xref target="RFC8126"/> process.</t>
          <t>The initial entries of this registry contain the path segments defined by <xref target="RFC7030"/>,
<xref target="RFC9148"/>, and <xref target="RFC8295"/> and two additional path segments defined by this document:</t>
          <table>
            <thead>
              <tr>
                <th align="left">Path Segment</th>
                <th align="left">Description</th>
                <th align="left">Reference</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">
                  <tt>cacerts</tt></td>
                <td align="left">Distribution of CA Certificates over HTTP</td>
                <td align="left">
                  <xref target="RFC7030"/></td>
              </tr>
              <tr>
                <td align="left">
                  <tt>simpleenroll</tt></td>
                <td align="left">Enrollment of Clients over HTTP</td>
                <td align="left">
                  <xref target="RFC7030"/></td>
              </tr>
              <tr>
                <td align="left">
                  <tt>simplereenroll</tt></td>
                <td align="left">Re-enrollment of Clients over HTTP</td>
                <td align="left">
                  <xref target="RFC7030"/></td>
              </tr>
              <tr>
                <td align="left">
                  <tt>fullcmc</tt></td>
                <td align="left">Full CMC over HTTP</td>
                <td align="left">
                  <xref target="RFC7030"/></td>
              </tr>
              <tr>
                <td align="left">
                  <tt>serverkeygen</tt></td>
                <td align="left">Server-Side Key Generation over HTTP</td>
                <td align="left">
                  <xref target="RFC7030"/> <xref target="RFC8295"/></td>
              </tr>
              <tr>
                <td align="left">
                  <tt>serverkeygen/return</tt></td>
                <td align="left">Server-Side Key Generation Receipts &amp; Errors over HTTP</td>
                <td align="left">
                  <xref target="RFC8295"/></td>
              </tr>
              <tr>
                <td align="left">
                  <tt>csrattrs</tt></td>
                <td align="left">CSR Attributes over HTTP</td>
                <td align="left">
                  <xref target="RFC7030"/></td>
              </tr>
              <tr>
                <td align="left">
                  <tt>pal</tt></td>
                <td align="left">Package Availability List over HTTP</td>
                <td align="left">
                  <xref target="RFC8295"/></td>
              </tr>
              <tr>
                <td align="left">
                  <tt>eecerts</tt></td>
                <td align="left">Distribution of End-Entity Certificates over HTTP</td>
                <td align="left">
                  <xref target="RFC8295"/></td>
              </tr>
              <tr>
                <td align="left">
                  <tt>crls</tt></td>
                <td align="left">Distribution of CRLs over HTTP</td>
                <td align="left">
                  <xref target="RFC8295"/></td>
              </tr>
              <tr>
                <td align="left">
                  <tt>symmetrickeys</tt></td>
                <td align="left">Distribution of Symmetric Keys over HTTP</td>
                <td align="left">
                  <xref target="RFC8295"/></td>
              </tr>
              <tr>
                <td align="left">
                  <tt>symmetrickeys/return</tt></td>
                <td align="left">Return of Symmetric Keys Receipts &amp; Errors over HTTP</td>
                <td align="left">
                  <xref target="RFC8295"/></td>
              </tr>
              <tr>
                <td align="left">
                  <tt>firmware</tt></td>
                <td align="left">Distribution of Firmware over HTTP</td>
                <td align="left">
                  <xref target="RFC8295"/></td>
              </tr>
              <tr>
                <td align="left">
                  <tt>firmware/return</tt></td>
                <td align="left">Return of Firmware Receipts  &amp; Errors over HTTP</td>
                <td align="left">
                  <xref target="RFC8295"/></td>
              </tr>
              <tr>
                <td align="left">
                  <tt>tamp</tt></td>
                <td align="left">Distribution of TAMP Messages over HTTP</td>
                <td align="left">
                  <xref target="RFC8295"/></td>
              </tr>
              <tr>
                <td align="left">
                  <tt>tamp/return</tt></td>
                <td align="left">Return of TAMP Receipts &amp; Errors over HTTP</td>
                <td align="left">
                  <xref target="RFC8295"/></td>
              </tr>
              <tr>
                <td align="left">
                  <tt>crts</tt></td>
                <td align="left">Distribution of CA Certificates over CoAP</td>
                <td align="left">
                  <xref target="RFC9148"/></td>
              </tr>
              <tr>
                <td align="left">
                  <tt>sen</tt></td>
                <td align="left">Enrollment of Clients over CoAP</td>
                <td align="left">
                  <xref target="RFC9148"/></td>
              </tr>
              <tr>
                <td align="left">
                  <tt>sren</tt></td>
                <td align="left">Re-enrollment of Clients over CoAP</td>
                <td align="left">
                  <xref target="RFC9148"/></td>
              </tr>
              <tr>
                <td align="left">
                  <tt>skg</tt></td>
                <td align="left">Server-Side Key Generation (PKCS #7) over CoAP</td>
                <td align="left">
                  <xref target="RFC9148"/></td>
              </tr>
              <tr>
                <td align="left">
                  <tt>skc</tt></td>
                <td align="left">Server-Side Key Generation (application/pkix-cert) over CoAP</td>
                <td align="left">
                  <xref target="RFC9148"/></td>
              </tr>
              <tr>
                <td align="left">
                  <tt>att</tt></td>
                <td align="left">CSR Attributes over CoAP</td>
                <td align="left">
                  <xref target="RFC9148"/></td>
              </tr>
              <tr>
                <td align="left">
                  <tt>getnonce</tt></td>
                <td align="left">Get Attestation Freshness Nonce over HTTP</td>
                <td align="left">This-RFC</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>nonce</tt></td>
                <td align="left">Get Attestation Freshness Nonce over CoAP</td>
                <td align="left">This-RFC</td>
              </tr>
            </tbody>
          </table>
        </section>
        <section anchor="json-media-type">
          <name>JSON Media Type</name>
          <t>IANA is requested to register the following media type in the "Media Types"
registry <xref target="RFC6838"/>:</t>
          <dl>
            <dt>Type name:</dt>
            <dd>
              <t>application</t>
            </dd>
            <dt>Subtype name:</dt>
            <dd>
              <t>est-attestation-freshness+json</t>
            </dd>
            <dt>Required parameters:</dt>
            <dd>
              <t>N/A</t>
            </dd>
            <dt>Optional parameters:</dt>
            <dd>
              <t>N/A</t>
            </dd>
            <dt>Encoding considerations:</dt>
            <dd>
              <t>binary</t>
            </dd>
            <dt>Security considerations:</dt>
            <dd>
              <t>See <xref target="sec-cons"/> of this RFC.</t>
            </dd>
            <dt>Interoperability considerations:</dt>
            <dd>
              <t>The same media type is used for EST attestation freshness nonce requests and
nonce responses. The protocol context determines whether the JSON payload is a
request or response.</t>
            </dd>
            <dt>Published specification:</dt>
            <dd>
              <t>This RFC.</t>
            </dd>
            <dt>Applications that use this media type:</dt>
            <dd>
              <t>EST implementations using attestation freshness nonces over HTTPS.</t>
            </dd>
            <dt>Fragment identifier considerations:</dt>
            <dd>
              <t>The syntax and semantics of fragment identifiers are as specified for
"application/json". At publication of this specification, no fragment
identification syntax is defined for "application/json".</t>
            </dd>
            <dt>Additional information:</dt>
            <dd>
              <t>Deprecated alias names for this type: N/A</t>
            </dd>
            <dt/>
            <dd>
              <t>Magic number(s): N/A</t>
            </dd>
            <dt/>
            <dd>
              <t>File extension(s): N/A</t>
            </dd>
            <dt/>
            <dd>
              <t>Macintosh file type code(s): N/A</t>
            </dd>
            <dt>Person &amp; email address to contact for further information:</dt>
            <dd>
              <t>IETF LAMPS Working Group (spasm@ietf.org)</t>
            </dd>
            <dt>Intended usage:</dt>
            <dd>
              <t>COMMON</t>
            </dd>
            <dt>Restrictions on usage:</dt>
            <dd>
              <t>N/A</t>
            </dd>
            <dt>Author:</dt>
            <dd>
              <t>IETF LAMPS Working Group</t>
            </dd>
            <dt>Change controller:</dt>
            <dd>
              <t>IETF</t>
            </dd>
          </dl>
        </section>
        <section anchor="cbor-media-type">
          <name>CBOR Media Type</name>
          <t>IANA is requested to register the following media type in the "Media Types"
registry <xref target="RFC6838"/>:</t>
          <dl>
            <dt>Type name:</dt>
            <dd>
              <t>application</t>
            </dd>
            <dt>Subtype name:</dt>
            <dd>
              <t>est-attestation-freshness+cbor</t>
            </dd>
            <dt>Required parameters:</dt>
            <dd>
              <t>N/A</t>
            </dd>
            <dt>Optional parameters:</dt>
            <dd>
              <t>N/A</t>
            </dd>
            <dt>Encoding considerations:</dt>
            <dd>
              <t>binary</t>
            </dd>
            <dt>Security considerations:</dt>
            <dd>
              <t>See <xref target="sec-cons"/> of this RFC.</t>
            </dd>
            <dt>Interoperability considerations:</dt>
            <dd>
              <t>The same media type is used for EST attestation freshness nonce requests and
nonce responses. The protocol context determines whether the CBOR payload is a
request or response.</t>
            </dd>
            <dt>Published specification:</dt>
            <dd>
              <t>This RFC.</t>
            </dd>
            <dt>Applications that use this media type:</dt>
            <dd>
              <t>EST implementations using attestation freshness nonces over CoAP.</t>
            </dd>
            <dt>Fragment identifier considerations:</dt>
            <dd>
              <t>The syntax and semantics of fragment identifiers are as specified for
"application/cbor". At publication of this specification, no fragment
identification syntax is defined for "application/cbor".</t>
            </dd>
            <dt>Additional information:</dt>
            <dd>
              <t>Deprecated alias names for this type: N/A</t>
            </dd>
            <dt/>
            <dd>
              <t>Magic number(s): N/A</t>
            </dd>
            <dt/>
            <dd>
              <t>File extension(s): N/A</t>
            </dd>
            <dt/>
            <dd>
              <t>Macintosh file type code(s): N/A</t>
            </dd>
            <dt>Person &amp; email address to contact for further information:</dt>
            <dd>
              <t>IETF LAMPS Working Group (spasm@ietf.org)</t>
            </dd>
            <dt>Intended usage:</dt>
            <dd>
              <t>COMMON</t>
            </dd>
            <dt>Restrictions on usage:</dt>
            <dd>
              <t>N/A</t>
            </dd>
            <dt>Author:</dt>
            <dd>
              <t>IETF LAMPS Working Group</t>
            </dd>
            <dt>Change controller:</dt>
            <dd>
              <t>IETF</t>
            </dd>
          </dl>
        </section>
        <section anchor="coap-content-format">
          <name>CoAP Content-Format</name>
          <t>IANA is requested to register the following Content-Format in the "CoAP
Content-Formats" subregistry within the "CoRE Parameters" registry
<xref target="RFC7252"/>. This registration uses the IETF Review or IESG Approval range
defined for that registry.</t>
          <table>
            <thead>
              <tr>
                <th align="left">Media Type</th>
                <th align="left">ID</th>
                <th align="left">Reference</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">application/est-attestation-freshness+cbor</td>
                <td align="left">TBD3</td>
                <td align="left">This-RFC</td>
              </tr>
            </tbody>
          </table>
        </section>
      </section>
      <section anchor="cmc">
        <name>CMC</name>
        <section anchor="control">
          <name>Control</name>
          <t>IANA is requested to register the following object identifier in the
"SMI Security for PKIX CMC Controls" registry (1.3.6.1.5.5.7.7):</t>
          <table>
            <thead>
              <tr>
                <th align="left">Decimal</th>
                <th align="left">Description</th>
                <th align="left">Reference</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">TBD4</td>
                <td align="left">
                  <tt>id-cmc-nonceReq</tt></td>
                <td align="left">This-RFC</td>
              </tr>
              <tr>
                <td align="left">TBD5</td>
                <td align="left">
                  <tt>id-cmc-nonceResp</tt></td>
                <td align="left">This-RFC</td>
              </tr>
            </tbody>
          </table>
        </section>
      </section>
      <section anchor="asn1-module">
        <name>ASN.1 Module</name>
        <t>IANA is 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>
        <table>
          <thead>
            <tr>
              <th align="left">Decimal</th>
              <th align="left">Description</th>
              <th align="left">References</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">TBDMOD</td>
              <td align="left">
                <tt>id-mod-att-fresh-req</tt></td>
              <td align="left">This-RFC</td>
            </tr>
          </tbody>
        </table>
      </section>
    </section>
    <section anchor="operations">
      <name>Operational Considerations</name>
      <t>When the RA/CA is requested to provide a nonce to an end entity, it
can generate the nonce locally or obtain it through an interaction
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.</t>
      <t>A non-empty nonce MUST contain a random byte sequence with at least 64
bits of entropy. The RA/CA MUST ensure that a nonce it generates is
unique and MUST NOT reuse it. If the RA/CA obtains a nonce from the
Verifier, it MUST ensure that the Verifier uses the same policy for
uniqueness and non-reuse properties.</t>
      <t>The length of the nonce depends on the attestation technology in
use, as specific nonce lengths 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 nonce request message,
regarding the required nonce length for the attestation technology.
Nonces of incorrect length may cause the attestation to fail.</t>
      <t>For instance, the PSA attestation token <xref target="RFC9783"/>
supports nonce lengths of 32, 48, and 64 bytes. Other attestation
technologies employ nonces of similar lengths.</t>
      <t>The end entity MUST use the received nonce if the attestation technology
supports its length. If the selected attestation
statement type defines a deterministic nonce transformation for use by a
specific Attester or sub-Attester, the end entity MUST apply only that
transformation and only for the purpose defined by that specification.</t>
      <t>If type-specific response information is returned with the
nonce, the end entity MUST process that information according to the
selected type when invoking the attestation technology. Such information
MAY include parameters or metadata needed to apply, identify, or validate
a deterministic nonce transformation defined by the attestation statement
type.</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
identified by the <tt>AttestationStatement</tt> type. The returned Evidence is encapsulated
in the <tt>AttestationStatement</tt> within the <tt>AttestationBundle</tt> carried in the CSR, as
defined in <xref target="I-D.ietf-lamps-csr-attestation"/>. The software generating the CSR
treats the attestation statement payload as an opaque blob and does not
interpret its format. It is 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 attestation statement payload.</t>
      <t>The freshness established by the nonce applies to the Evidence as
bound to the nonce used by the attestation technology. This
specification does not assign independent freshness semantics to other claims
contained in the Evidence. The interpretation of any other claim, including
whether it represents current state, historical state, configuration state, or
measurement results, is defined by the attestation technology, the appraisal
policy, and the Verifier or Relying Party processing rules.</t>
      <t>Using nonces causes the RA/CA to create state for outstanding
freshness challenges. This state increases the attack surface for denial-of-service
attacks, for example by causing the RA/CA to allocate memory for many
nonce requests that never result in corresponding Evidence. The RA/CA SHOULD
reduce this exposure by limiting nonce lifetimes, bounding the number of
outstanding nonces, applying rate limits, associating nonce state with an
authenticated or otherwise constrained requester where possible, and promptly
discarding expired state. The use of a stateless cookie mechanism to reduce this
state-management burden is also possible but not further detailed in this
specification.</t>
    </section>
    <section anchor="sec-cons">
      <name>Security Considerations</name>
      <t>This specification details the process of obtaining a nonce via CMP, EST,
and CMC. Therefore, the security considerations of these protocols apply. Regarding
the use of attestation statements in a CSR, the security considerations
outlined in <xref target="I-D.ietf-lamps-csr-attestation"/> are pertinent to this
specification.</t>
      <t>The security properties of remote attestation do not generally depend on
the confidentiality of the nonce. However, optional
type-specific request or response information conveyed
together with the nonce can reveal privacy-sensitive or
deployment-sensitive information, such as platform topology, certificate
identifiers, or measurement selections.</t>
      <t><xref target="RFC9334"/> defines the IETF remote attestation architecture and
extensively discusses nonce-based freshness. Specific attestation
technology specifications such as <xref target="RFC9711"/> and <xref target="RFC9783"/> offer
guidance on replay protection using nonces. This document defers specific
recommendations to those specifications.</t>
      <t>If an attestation technology or Composite Attester profile transforms a
received nonce before embedding it in Evidence, that transformation MUST
be deterministic and MUST preserve at least the minimum entropy required
by the attestation technology. The defining specification MUST ensure
that the Verifier has enough information to reconstruct or validate the
transformed value.
Specifications defining such transformations SHOULD use well-analyzed
cryptographic mechanisms for nonce expansion or size adjustment to ensure
that the resulting entropy and security properties remain acceptable.</t>
      <t>If type-specific information is used, the
corresponding specification MUST define the syntax and semantics of that
information, including any confidentiality requirements. Implementations
SHOULD minimize the amount of such information returned by the RA/CA. When
confidentiality is required by deployment policy or by the attestation
technology specification, implementations MUST protect this information
using the message or transport security mechanisms of the enrollment
protocol.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-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="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="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="RFC9111">
          <front>
            <title>HTTP Caching</title>
            <author fullname="R. Fielding" initials="R." role="editor" surname="Fielding"/>
            <author fullname="M. Nottingham" initials="M." role="editor" surname="Nottingham"/>
            <author fullname="J. Reschke" initials="J." role="editor" surname="Reschke"/>
            <date month="June" year="2022"/>
            <abstract>
              <t>The Hypertext Transfer Protocol (HTTP) is a stateless application-level protocol for distributed, collaborative, hypertext information systems. This document defines HTTP caches and the associated header fields that control cache behavior or indicate cacheable response messages.</t>
              <t>This document obsoletes RFC 7234.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="98"/>
          <seriesInfo name="RFC" value="9111"/>
          <seriesInfo name="DOI" value="10.17487/RFC9111"/>
        </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>Cryptic Forest Software</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>Independent</organization>
            </author>
            <author fullname="Ned Smith" initials="N." surname="Smith">
         </author>
            <date day="22" month="October" year="2026"/>
            <abstract>
              <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.

   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>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-lamps-csr-attestation-32"/>
        </reference>
        <reference anchor="RFC9810">
          <front>
            <title>Internet X.509 Public Key Infrastructure -- Certificate Management Protocol (CMP)</title>
            <author fullname="H. Brockhaus" initials="H." surname="Brockhaus"/>
            <author fullname="D. von Oheimb" initials="D." surname="von Oheimb"/>
            <author fullname="M. Ounsworth" initials="M." surname="Ounsworth"/>
            <author fullname="J. Gray" initials="J." surname="Gray"/>
            <date month="July" year="2025"/>
            <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).</t>
              <t>This document adds support for management of certificates containing a Key Encapsulation Mechanism (KEM) public key and uses EnvelopedData instead of EncryptedValue. This document also includes the updates specified in Section 2 and Appendix A.2 of RFC 9480.</t>
              <t>This document obsoletes RFC 4210, and together with RFC 9811, it also obsoletes RFC 9480. Appendix F of this document updates Section 9 of RFC 5912.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9810"/>
          <seriesInfo name="DOI" value="10.17487/RFC9810"/>
        </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="RFC7252">
          <front>
            <title>The Constrained Application Protocol (CoAP)</title>
            <author fullname="Z. Shelby" initials="Z." surname="Shelby"/>
            <author fullname="K. Hartke" initials="K." surname="Hartke"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="June" year="2014"/>
            <abstract>
              <t>The Constrained Application Protocol (CoAP) is a specialized web transfer protocol for use with constrained nodes and constrained (e.g., low-power, lossy) networks. The nodes often have 8-bit microcontrollers with small amounts of ROM and RAM, while constrained networks such as IPv6 over Low-Power Wireless Personal Area Networks (6LoWPANs) often have high packet error rates and a typical throughput of 10s of kbit/s. The protocol is designed for machine- to-machine (M2M) applications such as smart energy and building automation.</t>
              <t>CoAP provides a request/response interaction model between application endpoints, supports built-in discovery of services and resources, and includes key concepts of the Web such as URIs and Internet media types. CoAP is designed to easily interface with HTTP for integration with the Web while meeting specialized requirements such as multicast support, very low overhead, and simplicity for constrained environments.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7252"/>
          <seriesInfo name="DOI" value="10.17487/RFC7252"/>
        </reference>
        <reference anchor="RFC9148">
          <front>
            <title>EST-coaps: Enrollment over Secure Transport with the Secure Constrained Application Protocol</title>
            <author fullname="P. van der Stok" initials="P." surname="van der Stok"/>
            <author fullname="P. Kampanakis" initials="P." surname="Kampanakis"/>
            <author fullname="M. Richardson" initials="M." surname="Richardson"/>
            <author fullname="S. Raza" initials="S." surname="Raza"/>
            <date month="April" year="2022"/>
            <abstract>
              <t>Enrollment over Secure Transport (EST) is used as a certificate provisioning protocol over HTTPS. Low-resource devices often use the lightweight Constrained Application Protocol (CoAP) for message exchanges. This document defines how to transport EST payloads over secure CoAP (EST-coaps), which allows constrained devices to use existing EST functionality for provisioning certificates.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9148"/>
          <seriesInfo name="DOI" value="10.17487/RFC9148"/>
        </reference>
        <reference anchor="RFC9175">
          <front>
            <title>Constrained Application Protocol (CoAP): Echo, Request-Tag, and Token Processing</title>
            <author fullname="C. Amsüss" initials="C." surname="Amsüss"/>
            <author fullname="J. Preuß Mattsson" initials="J." surname="Preuß Mattsson"/>
            <author fullname="G. Selander" initials="G." surname="Selander"/>
            <date month="February" year="2022"/>
            <abstract>
              <t>This document specifies enhancements to the Constrained Application Protocol (CoAP) that mitigate security issues in particular use cases. The Echo option enables a CoAP server to verify the freshness of a request or to force a client to demonstrate reachability at its claimed network address. The Request-Tag option allows the CoAP server to match block-wise message fragments belonging to the same request. This document updates RFC 7252 with respect to the following: processing requirements for client Tokens, forbidding non-secure reuse of Tokens to ensure response-to-request binding when CoAP is used with a security protocol, and amplification mitigation (where the use of the Echo option is now recommended).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9175"/>
          <seriesInfo name="DOI" value="10.17487/RFC9175"/>
        </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="RFC8610">
          <front>
            <title>Concise Data Definition Language (CDDL): A Notational Convention to Express Concise Binary Object Representation (CBOR) and JSON Data Structures</title>
            <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
            <author fullname="C. Vigano" initials="C." surname="Vigano"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="June" year="2019"/>
            <abstract>
              <t>This document proposes a notational convention to express Concise Binary Object Representation (CBOR) data structures (RFC 7049). Its main goal is to provide an easy and unambiguous way to express structures for protocol messages and data formats that use CBOR or JSON.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8610"/>
          <seriesInfo name="DOI" value="10.17487/RFC8610"/>
        </reference>
        <reference anchor="RFC8259">
          <front>
            <title>The JavaScript Object Notation (JSON) Data Interchange Format</title>
            <author fullname="T. Bray" initials="T." role="editor" surname="Bray"/>
            <date month="December" year="2017"/>
            <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="STD" value="90"/>
          <seriesInfo name="RFC" value="8259"/>
          <seriesInfo name="DOI" value="10.17487/RFC8259"/>
        </reference>
        <reference anchor="RFC4648">
          <front>
            <title>The Base16, Base32, and Base64 Data Encodings</title>
            <author fullname="S. Josefsson" initials="S." surname="Josefsson"/>
            <date month="October" year="2006"/>
            <abstract>
              <t>This document describes the commonly used base 64, base 32, and base 16 encoding schemes. It also discusses the use of line-feeds in encoded data, use of padding in encoded data, use of non-alphabet characters in encoded data, use of different encoding alphabets, and canonical encodings. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4648"/>
          <seriesInfo name="DOI" value="10.17487/RFC4648"/>
        </reference>
        <reference anchor="RFC6838">
          <front>
            <title>Media Type Specifications and Registration Procedures</title>
            <author fullname="N. Freed" initials="N." surname="Freed"/>
            <author fullname="J. Klensin" initials="J." surname="Klensin"/>
            <author fullname="T. Hansen" initials="T." surname="Hansen"/>
            <date month="January" year="2013"/>
            <abstract>
              <t>This document defines procedures for the specification and registration of media types for use in HTTP, MIME, and other Internet protocols. This memo documents an Internet Best Current Practice.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="13"/>
          <seriesInfo name="RFC" value="6838"/>
          <seriesInfo name="DOI" value="10.17487/RFC6838"/>
        </reference>
        <reference anchor="RFC8949">
          <front>
            <title>Concise Binary Object Representation (CBOR)</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
            <date month="December" year="2020"/>
            <abstract>
              <t>The Concise Binary Object Representation (CBOR) is a data format whose design goals include the possibility of extremely small code size, fairly small message size, and extensibility without the need for version negotiation. These design goals make it different from earlier binary serializations such as ASN.1 and MessagePack.</t>
              <t>This document obsoletes RFC 7049, providing editorial improvements, new details, and errata fixes while keeping full compatibility with the interchange format of RFC 7049. It does not create a new version of the format.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="94"/>
          <seriesInfo name="RFC" value="8949"/>
          <seriesInfo name="DOI" value="10.17487/RFC8949"/>
        </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="RFC9811">
          <front>
            <title>Internet X.509 Public Key Infrastructure -- HTTP Transfer for the Certificate Management Protocol (CMP)</title>
            <author fullname="H. Brockhaus" initials="H." surname="Brockhaus"/>
            <author fullname="D. von Oheimb" initials="D." surname="von Oheimb"/>
            <author fullname="M. Ounsworth" initials="M." surname="Ounsworth"/>
            <author fullname="J. Gray" initials="J." surname="Gray"/>
            <date month="July" year="2025"/>
            <abstract>
              <t>This document describes how to layer the Certificate Management Protocol (CMP) over HTTP.</t>
              <t>It includes the updates to RFC 6712 specified in Section 3 of RFC 9480; these updates introduce CMP URIs using a well-known prefix. It obsoletes RFC 6712; and, together with RFC 9810, it also obsoletes RFC 9480.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9811"/>
          <seriesInfo name="DOI" value="10.17487/RFC9811"/>
        </reference>
        <reference anchor="RFC10002">
          <front>
            <title>Certificate Management over CMS (CMC)</title>
            <author fullname="J. Mandel" initials="J." role="editor" surname="Mandel"/>
            <author fullname="S. Turner" initials="S." role="editor" surname="Turner"/>
            <date month="July" year="2026"/>
            <abstract>
              <t>This document defines the base syntax for CMC, a Certificate Management protocol using the Cryptographic Message Syntax (CMS). This protocol addresses two immediate needs within the Internet Public Key Infrastructure (PKI) community:</t>
              <t>CMC also requires the use of the transport document (RFC 10003) and the requirements usage document (RFC 10004) along with this document for a full definition.</t>
              <t>This document obsoletes RFCs 5272 and 6402.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="10002"/>
          <seriesInfo name="DOI" value="10.17487/RFC10002"/>
        </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 anchor="sec-informative-references">
        <name>Informative References</name>
        <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="I-D.richardson-rats-composite-attesters">
          <front>
            <title>Taxonomy of Composite Attesters</title>
            <author fullname="Michael Richardson" initials="M." surname="Richardson">
              <organization>Sandelman Software Works</organization>
            </author>
            <author fullname="Henk Birkholz" initials="H." surname="Birkholz">
              <organization>Fraunhofer SIT</organization>
            </author>
            <author fullname="Yogesh Deshpande" initials="Y." surname="Deshpande">
              <organization>Arm</organization>
            </author>
            <author fullname="Thomas Fossati" initials="T." surname="Fossati">
              <organization>Linaro</organization>
            </author>
            <date day="31" month="August" year="2026"/>
            <abstract>
              <t>   This document was attempting to clarifys and extends the meaning of
   Composite Attester from RFC9334.  It has since been moved into the
   RATS wiki, and this I-D serves as a tombstone.

   A system of annotated diagram components is defined as a small
   language to explain the different ways that components can interact
   to form composites.

   These diagram components are then used to define a few popular
   classes of composites.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-richardson-rats-composite-attesters-05"/>
        </reference>
        <reference anchor="I-D.ietf-rats-reference-interaction-models">
          <front>
            <title>Reference Interaction Models for Remote Attestation Procedures</title>
            <author fullname="Henk Birkholz" initials="H." surname="Birkholz">
              <organization>Fraunhofer SIT</organization>
            </author>
            <author fullname="Michael Eckel" initials="M." surname="Eckel">
              <organization>Fraunhofer SIT</organization>
            </author>
            <author fullname="Wei Pan" initials="W." surname="Pan">
              <organization>Huawei Technologies</organization>
            </author>
            <author fullname="Eric Voit" initials="E." surname="Voit">
              <organization>Cisco Systems</organization>
            </author>
            <date day="28" month="October" year="2026"/>
            <abstract>
              <t>   This document describes interaction models for remote attestation
   procedures (RATS) [RFC9334].  Three conveying mechanisms --
   Challenge/Response, Uni-Directional, and Streaming Remote Attestation
   -- are illustrated and defined.  Analogously, a general overview
   about the information elements typically used by corresponding
   conveyance protocols are highlighted.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-rats-reference-interaction-models-20"/>
        </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="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="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="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="RFC9483">
          <front>
            <title>Lightweight Certificate Management Protocol (CMP) Profile</title>
            <author fullname="H. Brockhaus" initials="H." surname="Brockhaus"/>
            <author fullname="D. von Oheimb" initials="D." surname="von Oheimb"/>
            <author fullname="S. Fries" initials="S." surname="Fries"/>
            <date month="November" year="2023"/>
            <abstract>
              <t>This document aims at simple, interoperable, and automated PKI management operations covering typical use cases of industrial and Internet of Things (IoT) scenarios. This is achieved by profiling the Certificate Management Protocol (CMP), the related Certificate Request Message Format (CRMF), and transfer based on HTTP or Constrained Application Protocol (CoAP) in a succinct but sufficiently detailed and self-contained way. To make secure certificate management for simple scenarios and constrained devices as lightweight as possible, only the most crucial types of operations and options are specified as mandatory. More specialized or complex use cases are supported with optional features.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9483"/>
          <seriesInfo name="DOI" value="10.17487/RFC9483"/>
        </reference>
        <reference anchor="RFC9684">
          <front>
            <title>A YANG Data Model for Challenge-Response-Based Remote Attestation (CHARRA) Procedures Using Trusted Platform Modules (TPMs)</title>
            <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
            <author fullname="M. Eckel" initials="M." surname="Eckel"/>
            <author fullname="S. Bhandari" initials="S." surname="Bhandari"/>
            <author fullname="E. Voit" initials="E." surname="Voit"/>
            <author fullname="B. Sulzen" initials="B." surname="Sulzen"/>
            <author fullname="L. Xia" initials="L." surname="Xia"/>
            <author fullname="T. Laffey" initials="T." surname="Laffey"/>
            <author fullname="G. C. Fedorkow" initials="G. C." surname="Fedorkow"/>
            <date month="December" year="2024"/>
            <abstract>
              <t>This document defines the YANG Remote Procedure Calls (RPCs) and configuration nodes that are required to retrieve attestation evidence about integrity measurements from a device, following the operational context defined in RFC 9683 "TPM-based Network Device Remote Integrity Verification". Complementary measurement logs originating from one or more Roots of Trust for Measurement (RTMs) are also provided by the YANG RPCs. The defined module requires the inclusion of the following in the device components of the composite device on which the YANG server is running: at least one Trusted Platform Module (TPM) of either version 1.2 or 2.0 as well as a corresponding TPM Software Stack (TSS), or an equivalent hardware implementation that includes the protected capabilities as provided by TPMs as well as a corresponding software stack.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9684"/>
          <seriesInfo name="DOI" value="10.17487/RFC9684"/>
        </reference>
        <reference anchor="RFC9783">
          <front>
            <title>Arm's Platform Security Architecture (PSA) Attestation Token</title>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <author fullname="S. Frost" initials="S." surname="Frost"/>
            <author fullname="M. Brossard" initials="M." surname="Brossard"/>
            <author fullname="A. Shaw" initials="A." surname="Shaw"/>
            <author fullname="T. Fossati" initials="T." surname="Fossati"/>
            <date month="June" year="2025"/>
            <abstract>
              <t>Arm's Platform Security Architecture (PSA) is a family of hardware and firmware security specifications, along with open-source reference implementations, aimed at helping device makers and chip manufacturers integrate best-practice security into their products. Devices that comply with PSA can generate attestation tokens as described in this document, which serve as the foundation for various protocols, including secure provisioning and network access control. This document specifies the structure and semantics of the PSA attestation token.</t>
              <t>The PSA attestation token is a profile of the Entity Attestation Token (EAT). This specification describes the claims used in an attestation token generated by PSA-compliant systems, how these claims are serialized for transmission, and how they are cryptographically protected.</t>
              <t>This Informational document is published as an Independent Submission to improve interoperability with Arm's architecture. It is not a standard nor a product of the IETF.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9783"/>
          <seriesInfo name="DOI" value="10.17487/RFC9783"/>
        </reference>
        <reference anchor="RFC9711">
          <front>
            <title>The Entity Attestation Token (EAT)</title>
            <author fullname="L. Lundblade" initials="L." surname="Lundblade"/>
            <author fullname="G. Mandyam" initials="G." surname="Mandyam"/>
            <author fullname="J. O'Donoghue" initials="J." surname="O'Donoghue"/>
            <author fullname="C. Wallace" initials="C." surname="Wallace"/>
            <date month="April" year="2025"/>
            <abstract>
              <t>An Entity Attestation Token (EAT) provides an attested claims set that describes the state and characteristics of an entity, a device such as a smartphone, an Internet of Things (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.</t>
              <t>An EAT is either a CBOR Web Token (CWT) or a JSON Web Token (JWT) with attestation-oriented claims.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9711"/>
          <seriesInfo name="DOI" value="10.17487/RFC9711"/>
        </reference>
      </references>
    </references>
    <?line 1085?>

<section anchor="appx-tpm-pcr-example">
      <name>Example: TPM 2.0 PCR Selection for <tt>reqInfo</tt> and <tt>respInfo</tt></name>
      <t>This appendix provides an informative example showing how <tt>reqInfo</tt> and
<tt>respInfo</tt> can be used with a TPM 2.0-based attestation procedure such as the
challenge-response exchange described in <xref section="2.1.1.3.2" sectionFormat="of" target="RFC9684"/>.</t>
      <t>In this example, the end entity wants to obtain a nonce for use with a TPM 2.0
attestation statement. The end entity first requests a nonce from the
RA/CA. The <tt>reqInfo</tt> field can carry optional information
from the Attester side that helps the Verifier prepare the TPM 2.0 challenge,
such as which Attestation Key certificates are available.</t>
      <t>The resulting <tt>NonceResponse</tt> corresponds to the TPM 2.0 challenge parameters
from <xref target="RFC9684"/>, with one exception: the <tt>nonce-value</tt> from the RFC 9684
challenge is conveyed in this document's top-level <tt>nonce</tt> field rather than
inside <tt>respInfo</tt>. The remaining challenge parameters, such as the selected PCR
bank, PCR indices, and the selected Attestation Key certificate, are conveyed
in <tt>respInfo</tt>.</t>
      <t>The exact syntax of <tt>reqInfo</tt> and <tt>respInfo</tt> is defined by the specification
of the OID in the respective <tt>type</tt> field. The JSON-like notation below
shows examples only and is used to explain the role of these fields:</t>
      <artwork><![CDATA[
NonceRequest = {
  "len": 32,
  "reqTypeInfo": {
    "type": "1.2.3.4.5",
    "reqInfo": {
      "certificate-name": ["aik-1", "aik-2"],
      "supported-hash-algo": ["TPM_ALG_SHA256"]
    }
  }
}

NonceResponse = {
  "nonce": "MTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTI",
  "expiry": 600,
  "respTypeInfo": {
    "type": "1.2.3.4.6",
    "respInfo": {
      "tpm20-pcr-selection": [
        {
          "tpm20-hash-algo": "TPM_ALG_SHA256",
          "pcr-index": [0, 1, 2, 3]
        }
      ],
      "certificate-name": "aik-1"
    }
  }
}
]]></artwork>
      <t>In this example:</t>
      <ul spacing="normal">
        <li>
          <t><tt>reqInfo.certificate-name</tt> lets the Attester indicate more than one available
Attestation Key certificate when multiple TPM attestation keys are present.</t>
        </li>
        <li>
          <t><tt>respInfo.tpm20-pcr-selection</tt> identifies the PCR bank and PCR indices that
the Attester is expected to include in the TPM quote or equivalent Evidence.</t>
        </li>
        <li>
          <t><tt>respInfo.certificate-name</tt> identifies which Attestation Key certificate the
Attester is to use when generating the fresh Evidence associated with the
returned nonce.</t>
        </li>
      </ul>
      <t>This example is intended only to explain the purpose of <tt>reqInfo</tt> and
<tt>respInfo</tt>. It does not define a new <tt>reqInfo</tt> or <tt>respInfo</tt> type, a new OID,
or a TPM attestation profile. The TPM quote itself, its signature, and any optional
unsigned PCR values are conveyed later as Evidence and are not part of
<tt>respInfo</tt>.</t>
    </section>
    <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>
      <sourcecode type="asn1"><![CDATA[
<CODE BEGINS>

Att-Fresh-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
  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(116) }

id-cmc, CMC-CONTROL
FROM EnrollmentMessageSyntax-2025
   { iso(1) identified-organization(3) dod(6) internet(1)
     security(5) mechanisms(5) pkix(7) id-mod(0)
     id-mod-enrollMsgSyntax-2025(124) }

;

-- NonceRequest and NonceResponse types

ATTESTATION-NONCE-REQUEST ::= TYPE-IDENTIFIER

AttestationNonceRequestSet ATTESTATION-NONCE-REQUEST ::= {
   ... -- None defined in this document --
}

ATTESTATION-NONCE-RESPONSE ::= TYPE-IDENTIFIER

AttestationNonceResponseSet ATTESTATION-NONCE-RESPONSE ::= {
   ... -- None defined in this document --
}

NonceRequestTypeInfo ::= SEQUENCE {
    type ATTESTATION-NONCE-REQUEST.&id(
                 {AttestationNonceRequestSet}),
    -- identifies the nonce-request syntax for the selected
    --   attestation statement type
    reqInfo  ATTESTATION-NONCE-REQUEST.&Type(
                 {AttestationNonceRequestSet}{@type}) OPTIONAL
    -- contains type-specific nonce-request information
}

NonceResponseTypeInfo ::= SEQUENCE {
    type ATTESTATION-NONCE-RESPONSE.&id(
                 {AttestationNonceResponseSet}),
    -- identifies the nonce-response syntax for the selected
    --   attestation statement type
    respInfo ATTESTATION-NONCE-RESPONSE.&Type(
                 {AttestationNonceResponseSet}{@type}) OPTIONAL
    -- contains type-specific nonce-response information
}

 NonceRequest ::= SEQUENCE {
    len      INTEGER (8..64) OPTIONAL,
    -- indicates the desired length of the requested nonce
    reqTypeInfo NonceRequestTypeInfo OPTIONAL
 }

 NonceResponse ::= SEQUENCE {
    nonce    OCTET STRING (SIZE(0 | 8..64)),
    -- contains the nonce, preferably of length len
    -- a zero-length OCTET STRING indicates that no proof of
    --   freshness is required
    expiry   INTEGER (0..MAX) OPTIONAL,
    -- hint indicating how long in seconds the nonce issuer
    --   expects the nonce to remain acceptable
    respTypeInfo NonceResponseTypeInfo OPTIONAL
 }
 id-it-nonceRequest OBJECT IDENTIFIER ::= { id-it TBD1 }
    NonceRequestValue ::= NonceRequest

 id-it-nonceResponse OBJECT IDENTIFIER ::= { id-it TBD2 }
    NonceResponseValue ::= NonceResponse

 cmc-nonceReq CMC-CONTROL ::=
     { NonceRequest IDENTIFIED BY id-cmc-nonceReq }
 id-cmc-nonceReq OBJECT IDENTIFIER ::= { id-cmc TBD4 }

 cmc-nonceResp CMC-CONTROL ::=
     { NonceResponse IDENTIFIED BY id-cmc-nonceResp }
 id-cmc-nonceResp OBJECT IDENTIFIER ::= { id-cmc TBD5 }

END
<CODE ENDS>
]]></sourcecode>
    </section>
    <section numbered="false" 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>
  </back>
  <!-- ##markdown-source:
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
lDeFTYfBqs4VZ0DwQVete+L/AQOb21G3wQAA

-->

</rfc>
