<?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.3 (Ruby 3.2.2) -->
<?rfc rfcedstyle="yes"?>
<?rfc tocindent="yes"?>
<?rfc strict="yes"?>
<?rfc comments="yes"?>
<?rfc text-list-symbols="-o*+"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-tschofenig-rats-psa-token-20" category="info" submissionType="independent" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.18.2 -->
  <front>
    <title abbrev="PSA Attestation Token">Arm's Platform Security Architecture (PSA) Attestation Token</title>
    <seriesInfo name="Internet-Draft" value="draft-tschofenig-rats-psa-token-20"/>
    <author initials="H." surname="Tschofenig" fullname="Hannes Tschofenig">
      <organization/>
      <address>
        <email>Hannes.Tschofenig@gmx.net</email>
      </address>
    </author>
    <author initials="S." surname="Frost" fullname="Simon Frost">
      <organization>Arm Limited</organization>
      <address>
        <email>Simon.Frost@arm.com</email>
      </address>
    </author>
    <author initials="M." surname="Brossard" fullname="Mathias Brossard">
      <organization>Arm Limited</organization>
      <address>
        <email>Mathias.Brossard@arm.com</email>
      </address>
    </author>
    <author initials="A." surname="Shaw" fullname="Adrian Shaw">
      <organization>HP Labs</organization>
      <address>
        <email>adrianlshaw@acm.org</email>
      </address>
    </author>
    <author initials="T." surname="Fossati" fullname="Thomas Fossati">
      <organization>Linaro</organization>
      <address>
        <email>thomas.fossati@linaro.org</email>
      </address>
    </author>
    <date year="2023" month="December" day="18"/>
    <area/>
    <workgroup/>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <?line 162?>

<t>The Platform Security Architecture (PSA) is a family of hardware and firmware
security specifications, as well as open-source reference implementations, to
help device makers and chip manufacturers build best-practice security into
products. Devices that are PSA compliant can produce attestation tokens
as described in this memo, which are the basis for many different
protocols, including secure provisioning and network access control.  This
document specifies the PSA attestation token structure and semantics.</t>
      <t>The PSA attestation token is a profiled Entity Attestation Token (EAT).
This specification describes what claims are used in an attestation token
generated by PSA compliant systems, how these claims get serialized to the
wire, and how they are cryptographically protected.</t>
      <t>This document is produced through the Independent RFC Stream and was not subject to the IETF's approval process.</t>
    </abstract>
  </front>
  <middle>
    <?line 179?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>The Platform Security Architecture (PSA) is a set of hardware and firmware
specifications, backed by reference implementations and a security
certification program <xref target="PSACertified"/>.  The security specifications have been published by Arm,
while the certification program and reference implementations are the result of
a collaborative effort by companies from multiple sectors, including evaluation
laboratories, IP semiconductor vendors and security consultancies.  The main objective of
the PSA initiative is to assist device manufacturers and chip makers in
incorporating best-practice security measures into their products.</t>
      <t>Many devices now have trusted execution environments that provide a safe
space for security-sensitive code, such as cryptography, secure boot, secure
storage, and other essential security functions.  These security
functions are typically exposed through a narrow and well-defined interface,
and can be used by operating system libraries and applications.  Various APIs
have been developed by Arm as part of the Platform Security Architecture
<xref target="PSA"/> framework.  This document focuses on the output provided by PSA's
Initial Attestation API <xref target="PSA-API"/>. Since the tokens are also consumed by services outside
the device, there is an actual need to ensure interoperability.
Interoperability needs are addressed here by describing the exact syntax and
semantics of the attestation claims, and defining the way these claims are
encoded and cryptographically protected.</t>
      <t>Further details on concepts expressed below can be found in the PSA Security
Model documentation <xref target="PSA-SM"/>.</t>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</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.
<?line -6?>
      </t>
      <t>The terms Attester, Relying Party, Verifier, Attestation Result, and Evidence
are defined in <xref target="RFC9334"/>. We use the term receiver to refer to Relying Parties
and Verifiers.</t>
      <t>We use the terms Evidence, PSA attestation token, and PSA token interchangeably.
The terms sender and Attester are used interchangeably. Likewise, we use the terms
Verifier, and verification service interchangeably.</t>
      <dl newline="true">
        <dt>RoT:</dt>
        <dd>
          <t>Root of Trust, the minimal set of software, hardware and data that has to be
implicitly trusted in the platform - there is no software or hardware at a
deeper level that can verify that the Root of Trust is authentic and
unmodified.  An example of RoT is an initial bootloader in ROM, which contains
cryptographic functions and credentials, running on a specific hardware
platform.</t>
        </dd>
        <dt>SPE:</dt>
        <dd>
          <t>Secure Processing Environment, a platform's processing environment for
software that provides confidentiality and integrity for its runtime state,
from software and hardware, outside of the SPE. Contains trusted code and
trusted hardware.  (Equivalent to Trusted Execution Environment (TEE), or
"secure world".)</t>
        </dd>
        <dt>NSPE:</dt>
        <dd>
          <t>Non Secure Processing Environment, the security domain outside of the SPE,
the Application domain, typically containing the application firmware,
operating systems, and general hardware.  (Equivalent to Rich Execution
Environment (REE), or "normal world".)</t>
        </dd>
      </dl>
    </section>
    <section anchor="psa-attester-model">
      <name>PSA Attester Model</name>
      <t><xref target="fig-psa-attester"/> outlines the structure of the PSA Attester according to
the conceptual model described in <xref section="3.1" sectionFormat="of" target="RFC9334"/>.</t>
      <figure anchor="fig-psa-attester">
        <name>PSA Attester</name>
        <artset>
          <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="496" width="560" viewBox="0 0 560 496" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 8,144 L 8,432" fill="none" stroke="black"/>
              <path d="M 24,160 L 24,272" fill="none" stroke="black"/>
              <path d="M 24,304 L 24,416" fill="none" stroke="black"/>
              <path d="M 40,336 L 40,384" fill="none" stroke="black"/>
              <path d="M 96,304 L 96,336" fill="none" stroke="black"/>
              <path d="M 144,336 L 144,384" fill="none" stroke="black"/>
              <path d="M 160,192 L 160,256" fill="none" stroke="black"/>
              <path d="M 160,336 L 160,384" fill="none" stroke="black"/>
              <path d="M 208,256 L 208,336" fill="none" stroke="black"/>
              <path d="M 264,192 L 264,256" fill="none" stroke="black"/>
              <path d="M 272,336 L 272,384" fill="none" stroke="black"/>
              <path d="M 288,336 L 288,384" fill="none" stroke="black"/>
              <path d="M 304,208 L 304,240" fill="none" stroke="black"/>
              <path d="M 328,288 L 328,336" fill="none" stroke="black"/>
              <path d="M 368,208 L 368,240" fill="none" stroke="black"/>
              <path d="M 400,336 L 400,384" fill="none" stroke="black"/>
              <path d="M 408,192 L 408,256" fill="none" stroke="black"/>
              <path d="M 416,336 L 416,384" fill="none" stroke="black"/>
              <path d="M 424,32 L 424,64" fill="none" stroke="black"/>
              <path d="M 464,72 L 464,192" fill="none" stroke="black"/>
              <path d="M 464,304 L 464,336" fill="none" stroke="black"/>
              <path d="M 512,32 L 512,64" fill="none" stroke="black"/>
              <path d="M 520,192 L 520,256" fill="none" stroke="black"/>
              <path d="M 520,336 L 520,384" fill="none" stroke="black"/>
              <path d="M 536,160 L 536,272" fill="none" stroke="black"/>
              <path d="M 536,304 L 536,416" fill="none" stroke="black"/>
              <path d="M 552,144 L 552,432" fill="none" stroke="black"/>
              <path d="M 424,32 L 512,32" fill="none" stroke="black"/>
              <path d="M 424,64 L 512,64" fill="none" stroke="black"/>
              <path d="M 8,144 L 456,144" fill="none" stroke="black"/>
              <path d="M 472,144 L 552,144" fill="none" stroke="black"/>
              <path d="M 24,160 L 456,160" fill="none" stroke="black"/>
              <path d="M 472,160 L 536,160" fill="none" stroke="black"/>
              <path d="M 160,192 L 264,192" fill="none" stroke="black"/>
              <path d="M 320,192 L 352,192" fill="none" stroke="black"/>
              <path d="M 408,192 L 520,192" fill="none" stroke="black"/>
              <path d="M 264,224 L 296,224" fill="none" stroke="black"/>
              <path d="M 376,224 L 408,224" fill="none" stroke="black"/>
              <path d="M 160,256 L 264,256" fill="none" stroke="black"/>
              <path d="M 320,256 L 352,256" fill="none" stroke="black"/>
              <path d="M 408,256 L 520,256" fill="none" stroke="black"/>
              <path d="M 24,272 L 200,272" fill="none" stroke="black"/>
              <path d="M 216,272 L 536,272" fill="none" stroke="black"/>
              <path d="M 112,288 L 448,288" fill="none" stroke="black"/>
              <path d="M 24,304 L 88,304" fill="none" stroke="black"/>
              <path d="M 104,304 L 200,304" fill="none" stroke="black"/>
              <path d="M 216,304 L 320,304" fill="none" stroke="black"/>
              <path d="M 336,304 L 456,304" fill="none" stroke="black"/>
              <path d="M 472,304 L 536,304" fill="none" stroke="black"/>
              <path d="M 40,336 L 88,336" fill="none" stroke="black"/>
              <path d="M 104,336 L 144,336" fill="none" stroke="black"/>
              <path d="M 160,336 L 200,336" fill="none" stroke="black"/>
              <path d="M 216,336 L 272,336" fill="none" stroke="black"/>
              <path d="M 288,336 L 320,336" fill="none" stroke="black"/>
              <path d="M 336,336 L 400,336" fill="none" stroke="black"/>
              <path d="M 416,336 L 456,336" fill="none" stroke="black"/>
              <path d="M 472,336 L 520,336" fill="none" stroke="black"/>
              <path d="M 40,384 L 144,384" fill="none" stroke="black"/>
              <path d="M 160,384 L 272,384" fill="none" stroke="black"/>
              <path d="M 288,384 L 400,384" fill="none" stroke="black"/>
              <path d="M 416,384 L 520,384" fill="none" stroke="black"/>
              <path d="M 24,416 L 536,416" fill="none" stroke="black"/>
              <path d="M 8,432 L 552,432" fill="none" stroke="black"/>
              <path d="M 112,464 L 136,464" fill="none" stroke="black"/>
              <path d="M 216,464 L 240,464" fill="none" stroke="black"/>
              <path d="M 328,464 L 344,464" fill="none" stroke="black"/>
              <path d="M 320,192 C 311.16936,192 304,199.16936 304,208" fill="none" stroke="black"/>
              <path d="M 352,192 C 360.83064,192 368,199.16936 368,208" fill="none" stroke="black"/>
              <path d="M 320,256 C 311.16936,256 304,248.83064 304,240" fill="none" stroke="black"/>
              <path d="M 352,256 C 360.83064,256 368,248.83064 368,240" fill="none" stroke="black"/>
              <path d="M 112,288 C 103.16936,288 96,295.16936 96,304" fill="none" stroke="black"/>
              <path d="M 448,288 C 456.83064,288 464,295.16936 464,304" fill="none" stroke="black"/>
              <polygon class="arrowhead" points="472,72 460,66.4 460,77.6" fill="black" transform="rotate(270,464,72)"/>
              <polygon class="arrowhead" points="384,224 372,218.4 372,229.6" fill="black" transform="rotate(180,376,224)"/>
              <polygon class="arrowhead" points="304,224 292,218.4 292,229.6" fill="black" transform="rotate(0,296,224)"/>
              <polygon class="arrowhead" points="248,464 236,458.4 236,469.6" fill="black" transform="rotate(0,240,464)"/>
              <polygon class="arrowhead" points="144,464 132,458.4 132,469.6" fill="black" transform="rotate(0,136,464)"/>
              <circle cx="96" cy="336" r="6" class="opendot" fill="white" stroke="black"/>
              <circle cx="208" cy="336" r="6" class="opendot" fill="white" stroke="black"/>
              <circle cx="328" cy="336" r="6" class="opendot" fill="white" stroke="black"/>
              <circle cx="352" cy="464" r="6" class="opendot" fill="white" stroke="black"/>
              <circle cx="464" cy="336" r="6" class="opendot" fill="white" stroke="black"/>
              <g class="text">
                <text x="468" y="52">Verifier</text>
                <text x="420" y="116">Evidence</text>
                <text x="72" y="180">Attesting</text>
                <text x="160" y="180">Environment</text>
                <text x="188" y="212">Main</text>
                <text x="332" y="212">Main</text>
                <text x="448" y="212">Initial</text>
                <text x="212" y="228">Bootloader</text>
                <text x="332" y="228">Boot</text>
                <text x="464" y="228">Attestation</text>
                <text x="280" y="244">W</text>
                <text x="336" y="244">State</text>
                <text x="392" y="244">R</text>
                <text x="448" y="244">Service</text>
                <text x="92" y="356">Updateable</text>
                <text x="216" y="356">Application</text>
                <text x="344" y="356">Application</text>
                <text x="440" y="356">PSA</text>
                <text x="472" y="356">RoT</text>
                <text x="64" y="372">PSA</text>
                <text x="96" y="372">RoT</text>
                <text x="184" y="372">RoT</text>
                <text x="324" y="372">Loader</text>
                <text x="468" y="372">Parameters</text>
                <text x="60" y="404">Target</text>
                <text x="136" y="404">Environment</text>
                <text x="32" y="452">Legend:</text>
                <text x="164" y="468">read</text>
                <text x="272" y="468">write</text>
                <text x="392" y="468">measure</text>
                <text x="120" y="484">R</text>
                <text x="224" y="484">W</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art"><![CDATA[
                                                    .----------.
                                                    | Verifier |
                                                    '----------'
                                                         ^
                                                         |
                                                Evidence |
                                                         |
.--------------------------------------------------------|----------.
| .------------------------------------------------------|--------. |
| | Attesting Environment                                |        | |
| |                .------------.     .-----.     .------+------. | |
| |                | Main       |    | Main  |    | Initial     | | |
| |                | Bootloader +--->| Boot  |<---+ Attestation | | |
| |                |            | W  | State |  R | Service     | | |
| |                '-----+------'     '-----'     '-------------' | |
| '----------------------|----------------------------------------' |
|           .------------+--------------+---------------.           |
| .--------|-------------|--------------|----------------|--------. |
| |        |             |              |                |        | |
| | .------o-----. .-----o-------. .----o--------. .-----o------. | |
| | | Updateable | | Application | | Application | | PSA RoT    | | |
| | | PSA RoT    | | RoT         | | Loader      | | Parameters | | |
| | '------------' '-------------' '-------------' '------------' | |
| | Target Environment                                            | |
| '---------------------------------------------------------------' |
'-------------------------------------------------------------------'
Legend:
             ---> read    ---> write    ---o measure
              R            W
]]></artwork>
        </artset>
      </figure>
      <t>The PSA Attester is a relatively straightforward embodiment of the RATS
Attester with exactly one Attesting Environment and one or more Target Environments.</t>
      <t>The Attesting Environment is responsible for collecting the information to be
represented in PSA claims and to assemble them into Evidence. It is made of two
cooperating components:</t>
      <ul spacing="normal">
        <li>
          <t>The Main Bootloader (executing at boot-time) measures the loaded software
components, collects the relevant PSA RoT parameters, and stores the recorded
information in secure memory (Main Boot State). See <xref target="fig-psa-attester-boot"/>.</t>
        </li>
      </ul>
      <figure anchor="fig-psa-attester-boot">
        <name>PSA Attester Boot Phase</name>
        <artset>
          <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="224" width="352" viewBox="0 0 352 224" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 8,64 L 8,192" fill="none" stroke="black"/>
              <path d="M 80,40 L 80,208" fill="none" stroke="black"/>
              <path d="M 192,48 L 192,208" fill="none" stroke="black"/>
              <path d="M 304,48 L 304,208" fill="none" stroke="black"/>
              <path d="M 344,64 L 344,192" fill="none" stroke="black"/>
              <path d="M 8,64 L 72,64" fill="none" stroke="black"/>
              <path d="M 88,64 L 184,64" fill="none" stroke="black"/>
              <path d="M 200,64 L 296,64" fill="none" stroke="black"/>
              <path d="M 312,64 L 344,64" fill="none" stroke="black"/>
              <path d="M 96,128 L 192,128" fill="none" stroke="black"/>
              <path d="M 192,176 L 296,176" fill="none" stroke="black"/>
              <path d="M 8,192 L 72,192" fill="none" stroke="black"/>
              <path d="M 88,192 L 184,192" fill="none" stroke="black"/>
              <path d="M 200,192 L 296,192" fill="none" stroke="black"/>
              <path d="M 312,192 L 344,192" fill="none" stroke="black"/>
              <polygon class="arrowhead" points="304,176 292,170.4 292,181.6" fill="black" transform="rotate(0,296,176)"/>
              <circle cx="88" cy="128" r="6" class="opendot" fill="white" stroke="black"/>
              <g class="text">
                <text x="76" y="36">TE_i</text>
                <text x="192" y="36">MBL</text>
                <text x="304" y="36">MBS</text>
                <text x="36" y="84">loop</text>
                <text x="64" y="84">i</text>
                <text x="120" y="100">measure</text>
                <text x="96" y="116">&amp;</text>
                <text x="124" y="116">load</text>
                <text x="164" y="116">TE_i</text>
                <text x="224" y="148">write</text>
                <text x="248" y="164">measurement</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art"><![CDATA[
       TE_i           MBL           MBS
         |             |             |
.--------|-------------|-------------|----.
| loop i |             |             |    |
|        | measure     |             |    |
|        | & load TE_i |             |    |
|        |o------------+             |    |
|        |             | write       |    |
|        |             | measurement |    |
|        |             +------------>|    |
'--------|-------------|-------------|----'
         |             |             |
]]></artwork>
        </artset>
      </figure>
      <ul spacing="normal">
        <li>
          <t>The Initial Attestation Service (executing at run-time in SPE) answers
requests coming from NSPE via the PSA attestation API <xref target="PSA-API"/>, collects
and formats the claims from Main Boot State, and uses the Initial Attestation
Key (IAK) to sign them and produce Evidence. See <xref target="fig-psa-attester-runtime"/>.</t>
        </li>
      </ul>
      <t>The word "Initial" in "Initial Attestation Service" refers to a limited set of
target environments, namely those representing the first, foundational stages
establishing the chain of trust of a PSA device.</t>
      <figure anchor="fig-psa-attester-runtime">
        <name>PSA Attester Run-time Phase</name>
        <artset>
          <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="256" width="328" viewBox="0 0 328 256" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 8,64 L 8,144" fill="none" stroke="black"/>
              <path d="M 80,48 L 80,240" fill="none" stroke="black"/>
              <path d="M 160,160 L 160,192" fill="none" stroke="black"/>
              <path d="M 192,48 L 192,240" fill="none" stroke="black"/>
              <path d="M 280,48 L 280,240" fill="none" stroke="black"/>
              <path d="M 320,64 L 320,144" fill="none" stroke="black"/>
              <path d="M 8,64 L 72,64" fill="none" stroke="black"/>
              <path d="M 88,64 L 184,64" fill="none" stroke="black"/>
              <path d="M 200,64 L 272,64" fill="none" stroke="black"/>
              <path d="M 288,64 L 320,64" fill="none" stroke="black"/>
              <path d="M 88,128 L 192,128" fill="none" stroke="black"/>
              <path d="M 8,144 L 72,144" fill="none" stroke="black"/>
              <path d="M 88,144 L 184,144" fill="none" stroke="black"/>
              <path d="M 200,144 L 272,144" fill="none" stroke="black"/>
              <path d="M 288,144 L 320,144" fill="none" stroke="black"/>
              <path d="M 160,160 L 192,160" fill="none" stroke="black"/>
              <path d="M 160,192 L 184,192" fill="none" stroke="black"/>
              <path d="M 192,224 L 272,224" fill="none" stroke="black"/>
              <polygon class="arrowhead" points="280,224 268,218.4 268,229.6" fill="black" transform="rotate(0,272,224)"/>
              <polygon class="arrowhead" points="192,192 180,186.4 180,197.6" fill="black" transform="rotate(0,184,192)"/>
              <polygon class="arrowhead" points="96,128 84,122.4 84,133.6" fill="black" transform="rotate(180,88,128)"/>
              <g class="text">
                <text x="80" y="36">MBS</text>
                <text x="192" y="36">IAS</text>
                <text x="284" y="36">Verifier</text>
                <text x="36" y="84">loop</text>
                <text x="64" y="84">i</text>
                <text x="108" y="84">read</text>
                <text x="136" y="100">measurement</text>
                <text x="100" y="116">of</text>
                <text x="132" y="116">TE_i</text>
                <text x="132" y="180">sign</text>
                <text x="236" y="212">Evidence</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art"><![CDATA[
        MBS           IAS      Verifier
         |             |          |
.--------|-------------|----------|----.
| loop i | read        |          |    |
|        | measurement |          |    |
|        | of TE_i     |          |    |
|        |<------------+          |    |
'--------|-------------|----------|----'
         |         .---+          |
         |    sign |   |          |
         |         '-->|          |
         |             | Evidence |
         |             +--------->|
         |             |          |
]]></artwork>
        </artset>
      </figure>
      <t>The Target Environments can be of four types, some of
which may or may not be present depending on the device architecture:</t>
      <ul spacing="normal">
        <li>
          <t>(A subset of) the PSA RoT parameters, including Instance and Implementation
IDs.</t>
        </li>
        <li>
          <t>The updateable PSA RoT, including the Secure Partition Manager and all PSA
RoT services.</t>
        </li>
        <li>
          <t>The (optional) Application RoT, that is any application-defined security
service, possibly making use of the PSA RoT services.</t>
        </li>
        <li>
          <t>The loader of the application software running in NSPE.</t>
        </li>
      </ul>
      <t>A reference implementation of the PSA Attester is provided by <xref target="TF-M"/>.</t>
    </section>
    <section anchor="sec-psa-claims">
      <name>PSA Claims</name>
      <t>This section describes the claims to be used in a PSA attestation token.</t>
      <t>CDDL <xref target="RFC8610"/> along with text descriptions is used to define each claim
independent of encoding.  The following CDDL type(s) are reused by different
claims:</t>
      <artwork><![CDATA[
psa-hash-type = bytes .size 32 / bytes .size 48 / bytes .size 64
]]></artwork>
      <section anchor="caller-claims">
        <name>Caller Claims</name>
        <section anchor="sec-nonce-claim">
          <name>Nonce</name>
          <t>The Nonce claim is used to carry the challenge provided by the caller to demonstrate freshness of the generated token.</t>
          <t>The EAT <xref target="EAT"/> <tt>nonce</tt> (claim key 10) is used.  The following constraints
apply to the <tt>nonce-type</tt>:</t>
          <ul spacing="normal">
            <li>
              <t>The length MUST be either 32, 48, or 64 bytes.</t>
            </li>
            <li>
              <t>Only a single nonce value is conveyed. The array notation MUST NOT be used for encoding the nonce value.</t>
            </li>
          </ul>
          <t>This claim MUST be present in a PSA attestation token.</t>
          <artwork><![CDATA[
psa-nonce = (
    nonce-label => psa-hash-type
)
]]></artwork>
        </section>
        <section anchor="sec-client-id">
          <name>Client ID</name>
          <t>The Client ID claim represents the security domain of the caller.</t>
          <t>In PSA, a security domain is represented by a signed
integer whereby negative values represent callers from the NSPE and where
positive IDs represent callers from the SPE. The value 0 is not permitted.</t>
          <t>For an example definition of client IDs, see the PSA Firmware Framework <xref target="PSA-FF"/>.</t>
          <t>It is essential that this claim is checked in the verification process to
ensure that a security domain, i.e., an attestation endpoint, cannot spoof a
report from another security domain.</t>
          <t>This claim MUST be present in a PSA attestation token.</t>
          <artwork><![CDATA[
psa-client-id-nspe-type = -2147483648...0
psa-client-id-spe-type = 1..2147483647

psa-client-id-type = psa-client-id-nspe-type / psa-client-id-spe-type

psa-client-id = (
    psa-client-id-key => psa-client-id-type
)
]]></artwork>
        </section>
      </section>
      <section anchor="target-identification-claims">
        <name>Target Identification Claims</name>
        <section anchor="sec-instance-id-claim">
          <name> Instance ID</name>
          <t>The Instance ID claim represents the unique identifier of the Initial
Attestation Key (IAK).  The full definition is in <xref target="PSA-SM"/>.</t>
          <t>The EAT <tt>ueid</tt> (claim key 256) of type RAND is used.  The following constraints
apply to the <tt>ueid-type</tt>:</t>
          <ul spacing="normal">
            <li>
              <t>The length MUST be 33 bytes.</t>
            </li>
            <li>
              <t>The first byte MUST be 0x01 (RAND) followed by the 32-bytes key hash.</t>
            </li>
          </ul>
          <t>This claim MUST be present in a PSA attestation token.</t>
          <artwork><![CDATA[
psa-instance-id-type = bytes .size 33

psa-instance-id = (
    ueid-label => psa-instance-id-type
)
]]></artwork>
        </section>
        <section anchor="sec-implementation-id">
          <name>Implementation ID</name>
          <t>The Implementation ID claim uniquely identifies the implementation of the
immutable PSA RoT. A verification service uses this claim to locate the
details of the PSA RoT implementation from an Endorser or manufacturer.
Such details are used by a verification service to determine the security properties
or certification status of the PSA RoT implementation.</t>
          <t>The value and format of the ID is decided by
the manufacturer or a particular certification scheme. For example, the ID
could take the form of a product serial number,
database ID, or other appropriate identifier.</t>
          <t>This claim MUST be present in a PSA attestation token.</t>
          <t>Note that this identifies the PSA RoT implementation, not a particular instance.
To uniquely identify an instance, see the Instance ID claim <xref target="sec-instance-id-claim"/>.</t>
          <artwork><![CDATA[
psa-implementation-id-type = bytes .size 32

psa-implementation-id = (
    psa-implementation-id-key => psa-implementation-id-type
)
]]></artwork>
        </section>
        <section anchor="sec-certification-reference">
          <name>Certification Reference</name>
          <t>The Certification Reference claim is used to link the class of chip and PSA RoT
of the attesting device to an associated entry in the PSA Certification
database. It MUST be represented as a string made of nineteen numeric
characters: a thirteen-digit <xref target="EAN-13"/>, followed by a dash "-", followed by
the five-digit versioning information described in <xref target="PSA-Cert-Guide"/>.</t>
          <t>Linking to the PSA Certification entry can still be achieved if this claim is
not present in the token by making an association at a Verifier between the
reference value and other token claim values - for example, the Implementation
ID.</t>
          <artwork><![CDATA[
psa-certification-reference-type = text .regexp "[0-9]{13}-[0-9]{5}"

psa-certification-reference = (
    ? psa-certification-reference-key => 
        psa-certification-reference-type
)
]]></artwork>
        </section>
      </section>
      <section anchor="target-state-claims">
        <name>Target State Claims</name>
        <section anchor="sec-security-lifecycle">
          <name>Security Lifecycle</name>
          <t>The Security Lifecycle claim represents the current lifecycle state of the PSA
RoT. The state is represented by an integer that is divided to convey a major
state and a minor state. A major state is mandatory and defined by <xref target="PSA-SM"/>.
A minor state is optional and 'IMPLEMENTATION DEFINED'. The PSA security
lifecycle state and implementation state are encoded as follows:</t>
          <ul spacing="normal">
            <li>
              <t>version[15:8] - PSA security lifecycle state, and</t>
            </li>
            <li>
              <t>version[7:0] - IMPLEMENTATION DEFINED state.</t>
            </li>
          </ul>
          <t>The PSA lifecycle states are illustrated in <xref target="fig-lifecycle-states"/>. For PSA,
a Verifier can only trust reports from the PSA RoT when it is in SECURED or
NON_PSA_ROT_DEBUG major states.</t>
          <t>This claim MUST be present in a PSA attestation token.</t>
          <figure anchor="fig-lifecycle-states">
            <name>PSA Lifecycle States</name>
            <artset>
              <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="368" width="488" viewBox="0 0 488 368" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                  <path d="M 8,272 L 8,288" fill="none" stroke="black"/>
                  <path d="M 64,288 L 64,304" fill="none" stroke="black"/>
                  <path d="M 128,144 L 128,256" fill="none" stroke="black"/>
                  <path d="M 144,256 L 144,272" fill="none" stroke="black"/>
                  <path d="M 152,48 L 152,64" fill="none" stroke="black"/>
                  <path d="M 168,208 L 168,240" fill="none" stroke="black"/>
                  <path d="M 184,304 L 184,336" fill="none" stroke="black"/>
                  <path d="M 208,128 L 208,160" fill="none" stroke="black"/>
                  <path d="M 224,160 L 224,200" fill="none" stroke="black"/>
                  <path d="M 248,64 L 248,120" fill="none" stroke="black"/>
                  <path d="M 248,240 L 248,272" fill="none" stroke="black"/>
                  <path d="M 272,96 L 272,120" fill="none" stroke="black"/>
                  <path d="M 272,168 L 272,208" fill="none" stroke="black"/>
                  <path d="M 288,128 L 288,160" fill="none" stroke="black"/>
                  <path d="M 320,304 L 320,336" fill="none" stroke="black"/>
                  <path d="M 328,208 L 328,240" fill="none" stroke="black"/>
                  <path d="M 344,32 L 344,48" fill="none" stroke="black"/>
                  <path d="M 352,208 L 352,256" fill="none" stroke="black"/>
                  <path d="M 392,160 L 392,200" fill="none" stroke="black"/>
                  <path d="M 408,256 L 408,272" fill="none" stroke="black"/>
                  <path d="M 440,96 L 440,208" fill="none" stroke="black"/>
                  <path d="M 480,208 L 480,256" fill="none" stroke="black"/>
                  <path d="M 168,32 L 344,32" fill="none" stroke="black"/>
                  <path d="M 152,64 L 328,64" fill="none" stroke="black"/>
                  <path d="M 288,80 L 424,80" fill="none" stroke="black"/>
                  <path d="M 208,128 L 288,128" fill="none" stroke="black"/>
                  <path d="M 128,144 L 208,144" fill="none" stroke="black"/>
                  <path d="M 288,144 L 376,144" fill="none" stroke="black"/>
                  <path d="M 208,160 L 288,160" fill="none" stroke="black"/>
                  <path d="M 168,208 L 328,208" fill="none" stroke="black"/>
                  <path d="M 352,208 L 480,208" fill="none" stroke="black"/>
                  <path d="M 168,240 L 328,240" fill="none" stroke="black"/>
                  <path d="M 24,256 L 144,256" fill="none" stroke="black"/>
                  <path d="M 352,256 L 480,256" fill="none" stroke="black"/>
                  <path d="M 144,272 L 408,272" fill="none" stroke="black"/>
                  <path d="M 8,288 L 128,288" fill="none" stroke="black"/>
                  <path d="M 184,304 L 320,304" fill="none" stroke="black"/>
                  <path d="M 80,320 L 176,320" fill="none" stroke="black"/>
                  <path d="M 184,336 L 320,336" fill="none" stroke="black"/>
                  <path d="M 168,32 C 159.16936,32 152,39.16936 152,48" fill="none" stroke="black"/>
                  <path d="M 328,64 C 336.83064,64 344,56.83064 344,48" fill="none" stroke="black"/>
                  <path d="M 288,80 C 279.16936,80 272,87.16936 272,96" fill="none" stroke="black"/>
                  <path d="M 424,80 C 432.83064,80 440,87.16936 440,96" fill="none" stroke="black"/>
                  <path d="M 376,144 C 384.83064,144 392,151.16936 392,160" fill="none" stroke="black"/>
                  <path d="M 24,256 C 15.16936,256 8,263.16936 8,272" fill="none" stroke="black"/>
                  <path d="M 128,288 C 136.83064,288 144,280.83064 144,272" fill="none" stroke="black"/>
                  <path d="M 80,320 C 71.16936,320 64,312.83064 64,304" fill="none" stroke="black"/>
                  <polygon class="arrowhead" points="400,200 388,194.4 388,205.6" fill="black" transform="rotate(90,392,200)"/>
                  <polygon class="arrowhead" points="280,168 268,162.4 268,173.6" fill="black" transform="rotate(270,272,168)"/>
                  <polygon class="arrowhead" points="280,120 268,114.4 268,125.6" fill="black" transform="rotate(90,272,120)"/>
                  <polygon class="arrowhead" points="256,120 244,114.4 244,125.6" fill="black" transform="rotate(90,248,120)"/>
                  <polygon class="arrowhead" points="232,200 220,194.4 220,205.6" fill="black" transform="rotate(90,224,200)"/>
                  <polygon class="arrowhead" points="184,320 172,314.4 172,325.6" fill="black" transform="rotate(0,176,320)"/>
                  <g class="text">
                    <text x="212" y="52">Provisioning</text>
                    <text x="300" y="52">Lockdown</text>
                    <text x="248" y="148">Secured</text>
                    <text x="208" y="228">Non-PSA</text>
                    <text x="256" y="228">RoT</text>
                    <text x="296" y="228">Debug</text>
                    <text x="408" y="228">Recoverable</text>
                    <text x="376" y="244">PSA</text>
                    <text x="408" y="244">RoT</text>
                    <text x="448" y="244">Debug</text>
                    <text x="80" y="276">Terminate</text>
                    <text x="252" y="324">Decommissioned</text>
                  </g>
                </svg>
              </artwork>
              <artwork type="ascii-art"><![CDATA[
                        .----------------------.
                       | Provisioning Lockdown |
                       '-----------+----------'
                                   |   .------------------.
                                   |  |                    |
                                   v  v                    |
                              .---------.                  |
                    .---------+ Secured +-----------.      |
                    |         '-+-------'            |     |
                    |           |     ^              |     |
                    |           v     |              v     |
                    |    .------------+------.  .----------+----.
                    |    | Non-PSA RoT Debug |  | Recoverable   |
                    |    '---------+---------'  | PSA RoT Debug |
      .-------------+-.            |            '------+--------'
     |    Terminate   +------------+-------------------'
     '------+--------'
            |              .----------------.
             '------------>| Decommissioned |
                           '----------------'
]]></artwork>
            </artset>
          </figure>
          <artwork><![CDATA[
psa-lifecycle-unknown-type = 0x0000..0x00ff
psa-lifecycle-assembly-and-test-type = 0x1000..0x10ff
psa-lifecycle-psa-rot-provisioning-type = 0x2000..0x20ff
psa-lifecycle-secured-type = 0x3000..0x30ff
psa-lifecycle-non-psa-rot-debug-type = 0x4000..0x40ff
psa-lifecycle-recoverable-psa-rot-debug-type = 0x5000..0x50ff
psa-lifecycle-decommissioned-type = 0x6000..0x60ff

psa-lifecycle-type = 
    psa-lifecycle-unknown-type /
    psa-lifecycle-assembly-and-test-type /
    psa-lifecycle-psa-rot-provisioning-type /
    psa-lifecycle-secured-type /
    psa-lifecycle-non-psa-rot-debug-type /
    psa-lifecycle-recoverable-psa-rot-debug-type /
    psa-lifecycle-decommissioned-type

psa-lifecycle = (
    psa-lifecycle-key => psa-lifecycle-type
)
]]></artwork>
        </section>
        <section anchor="sec-boot-seed">
          <name>Boot Seed</name>
          <t>The Boot Seed claim represents a value created at system boot time that
will allow differentiation of reports from different boot sessions.</t>
          <t>This claim MAY be present in a PSA attestation token.</t>
          <t>If present, it MUST be between 8 and 32 bytes.</t>
          <artwork><![CDATA[
psa-boot-seed-type = bytes .size (8..32)

psa-boot-seed = (
    psa-boot-seed-key => psa-boot-seed-type
)
]]></artwork>
        </section>
      </section>
      <section anchor="software-inventory-claims">
        <name>Software Inventory Claims</name>
        <section anchor="sec-sw-components">
          <name>Software Components</name>
          <t>The Software Components claim is a list of software components that includes
all the software (both code and configuration) loaded by the PSA RoT.  This
claim MUST be included in attestation tokens produced by an implementation
conformant with <xref target="PSA-SM"/>.</t>
          <t>Each entry in the Software Components list describes one software component
using the attributes described in the following subsections.  Unless explicitly
stated, the presence of an attribute is OPTIONAL.</t>
          <t>Note that, as described in <xref target="RFC9334"/>, a relying party will typically see the
result of the verification process from the Verifier in form of an attestation
result, rather than the PSA token from the attesting endpoint.
Therefore, a relying party is not expected to understand the Software
Components claim.  Instead, it is for the Verifier to check this claim against
the available endorsements and provide an answer in form of an "high level"
attestation result, which may or may not include the original Software
Components claim.</t>
          <artwork><![CDATA[
psa-software-component = {
  ? &(measurement-type: 1) => text
    &(measurement-value: 2) => psa-hash-type
  ? &(version: 4) => text
    &(signer-id: 5) => psa-hash-type
  ? &(measurement-desc: 6) => text
}

psa-software-components = (
    psa-software-components-key => [ + psa-software-component ]
)
]]></artwork>
          <section anchor="measurement-type">
            <name>Measurement Type</name>
            <t>The Measurement Type attribute (key=1) is short string representing the role of
this software component.</t>
            <t>The following measurement types MAY be used for code measurements:</t>
            <ul spacing="normal">
              <li>
                <t>"BL": a Boot Loader</t>
              </li>
              <li>
                <t>"PRoT": a component of the PSA Root of Trust</t>
              </li>
              <li>
                <t>"ARoT": a component of the Application Root of Trust</t>
              </li>
              <li>
                <t>"App": a component of the NSPE application</t>
              </li>
              <li>
                <t>"TS": a component of a Trusted Subsystem</t>
              </li>
            </ul>
            <t>The same labels with a "-cfg" postfix (e.g., "PRoT-cfg") MAY be used for
configuration measurements.</t>
            <t>This attribute SHOULD be present in a PSA software component unless
there is a very good reason to leave it out - for example in networks
with severely constrained bandwidth, where sparing a few bytes really
makes a difference.</t>
          </section>
          <section anchor="measurement-value">
            <name> Measurement Value</name>
            <t>The Measurement Value attribute (key=2) represents a hash of the invariant
software component in memory at startup time. The value MUST be a cryptographic
hash of 256 bits or stronger.</t>
            <t>This attribute MUST be present in a PSA software component.</t>
          </section>
          <section anchor="version">
            <name>Version</name>
            <t>The Version attribute (key=4) is the issued software version in the form of a
text string. The value of this attribute will correspond to the entry in the
original signed manifest of the component.</t>
          </section>
          <section anchor="signer-id">
            <name>Signer ID</name>
            <t>The Signer ID attribute (key=5) is the hash of a signing authority public key
for the software component. The value of this attribute will correspond to the
entry in the original manifest for the component. This can be used by a
Verifier to ensure the components were signed by an expected trusted source.</t>
            <t>This attribute MUST be present in a PSA software component to be compliant with
<xref target="PSA-SM"/>.</t>
          </section>
          <section anchor="measurement-description">
            <name>Measurement Description</name>
            <t>The Measurement Description attribute (key=6) contains a string identifying the
hash algorithm used to compute the corresponding Measurement Value.  The string
SHOULD be encoded according to <xref target="IANA-HashFunctionTextualNames"/>.</t>
          </section>
        </section>
      </section>
      <section anchor="verification-claims">
        <name>Verification Claims</name>
        <section anchor="sec-verification-service-indicator">
          <name>Verification Service Indicator</name>
          <t>The Verification Service Indicator claim is a hint used by a relying party to
locate a verification service for the token. The value is a text string that
can be used to locate the service (typically, a URL specifying the address of
the verification service API). A Relying Party may choose to ignore this claim
in favor of other information.</t>
          <artwork><![CDATA[
psa-verification-service-indicator-type = text

psa-verification-service-indicator = (
    ? psa-verification-service-indicator-key =>
        psa-verification-service-indicator-type
)
]]></artwork>
        </section>
        <section anchor="sec-profile-definition-claim">
          <name>Profile Definition</name>
          <t>The Profile Definition claim encodes the unique identifier that corresponds to
the EAT profile described by this document.  This allows a receiver to assign
the intended semantics to the rest of the claims found in the token.</t>
          <t>The EAT <tt>eat_profile</tt> (claim key 265) is used.</t>
          <t>The URI encoding MUST be used.</t>
          <t>The value MUST be <tt>tag:psacertified.org,2023:psa#tfm</tt> for the profile defined in <xref target="sec-tfm-profile"/>.</t>
          <t>Future profiles derived from the baseline PSA profile SHALL create their unique value, as described in <xref target="sec-profile-uri-structure"/>.</t>
          <t>This claim MUST be present in a PSA attestation token.</t>
          <t>See <xref target="sec-backwards-compat"/>, for considerations about backwards compatibility
with previous versions of the PSA attestation token format.</t>
          <artwork><![CDATA[
psa-profile-type = "tag:psacertified.org,2023:psa#tfm"

psa-profile = (
    profile-label => psa-profile-type
)
]]></artwork>
          <section anchor="sec-profile-uri-structure">
            <name>URI Structure for the Derived Profile Identifiers</name>
            <t>A new profile is associated with a unique string.</t>
            <t>The string MUST use the URI fragment syntax defined in <xref section="3.5" sectionFormat="of" target="RFC3986"/>.</t>
            <t>The string SHOULD be short to avoid unnecessary overhead.</t>
            <t>To avoid collisions, profile authors SHOULD communicate upfront their intent to use a certain string using the enquiry form on the <xref target="PSACertified"/> website.</t>
            <t>To derive the value to be used for the <tt>eat_profile</tt> claim, the string is added as a fragment to the <tt>tag:psacertified.org,2023:psa</tt> tag URI <xref target="RFC4151"/>.</t>
            <t>For example, an hypothetical profile using only COSE_Mac0 with the AES Message Authentication Code (AES-MAC) may decide to use the string "aes-mac".  The <tt>eat_profile</tt> value would then be: <tt>tag:psacertified.org,2023:psa#aes-mac</tt>.</t>
          </section>
        </section>
      </section>
      <section anchor="sec-backwards-compat">
        <name>Backwards Compatibility Considerations</name>
        <t>A previous version of this specification (identified by the <tt>PSA_IOT_PROFILE_1</tt>
profile) used claim key values from the "private use range" of the CWT Claims
registry.  These claim keys have now been retired and their use is deprecated.</t>
        <t><xref target="tab-claim-map"/> provides the mappings between the deprecated and new claim
keys.</t>
        <table anchor="tab-claim-map">
          <name>Claim Key Mappings</name>
          <thead>
            <tr>
              <th align="left"> </th>
              <th align="left">PSA_IOT_PROFILE_1</th>
              <th align="left">tag:psacertified.org,2023:psa#tfm</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">Nonce</td>
              <td align="left">-75008</td>
              <td align="left">10 (EAT nonce)</td>
            </tr>
            <tr>
              <td align="left">Instance ID</td>
              <td align="left">-75009</td>
              <td align="left">256 (EAT euid)</td>
            </tr>
            <tr>
              <td align="left">Profile Definition</td>
              <td align="left">-75000</td>
              <td align="left">265 (EAT eat_profile)</td>
            </tr>
            <tr>
              <td align="left">Client ID</td>
              <td align="left">-75001</td>
              <td align="left">2394</td>
            </tr>
            <tr>
              <td align="left">Security Lifecycle</td>
              <td align="left">-75002</td>
              <td align="left">2395</td>
            </tr>
            <tr>
              <td align="left">Implementation ID</td>
              <td align="left">-75003</td>
              <td align="left">2396</td>
            </tr>
            <tr>
              <td align="left">Boot Seed</td>
              <td align="left">-75004</td>
              <td align="left">2397</td>
            </tr>
            <tr>
              <td align="left">Certification Reference</td>
              <td align="left">-75005</td>
              <td align="left">2398</td>
            </tr>
            <tr>
              <td align="left">Software Components</td>
              <td align="left">-75006</td>
              <td align="left">2399</td>
            </tr>
            <tr>
              <td align="left">Verification Service Indicator</td>
              <td align="left">-75010</td>
              <td align="left">2400</td>
            </tr>
          </tbody>
        </table>
        <t>The new profile introduces three further changes:</t>
        <ul spacing="normal">
          <li>
            <t>the "Boot Seed" claim is now optional and of variable length (see
<xref target="sec-boot-seed"/>),</t>
          </li>
          <li>
            <t>the "No Software Measurements" claim has been retired,</t>
          </li>
          <li>
            <t>the "Certification Reference" claim syntax changed from EAN-13 to EAN-13+5 (see
<xref target="sec-certification-reference"/>).</t>
          </li>
        </ul>
        <t>To simplify the transition to the token format described in this
document it is RECOMMENDED that Verifiers
accept tokens encoded according to the old profile (<tt>PSA_IOT_PROFILE_1</tt>) as well as
to the new profile (<tt>tag:psacertified.org,2023:psa#tfm</tt>), at least for the time needed to
their devices to upgrade.</t>
      </section>
    </section>
    <section anchor="profiles">
      <name>Profiles</name>
      <t>This document defines a baseline with common requirements that all PSA profiles must satisfy.</t>
      <t>This document also defines a profile (<xref target="sec-tfm-profile"/>) that builds on the baseline while constraining the use of COSE algorithms to improve interoperability between PSA Attesters and Verifiers.</t>
      <section anchor="baseline-profile">
        <name>Baseline Profile</name>
        <section anchor="sec-token-encoding-and-signing">
          <name> Token Encoding and Signing</name>
          <t>The PSA attestation token is encoded in CBOR <xref target="RFC8949"/> format.  Only
definite-length string, arrays, and maps are allowed.
Given that a PSA attester is typically found in a constrained device, it MAY
NOT emit CBOR preferred serializations (<xref section="4.1" sectionFormat="of" target="RFC8949"/>).
Therefore, the Verifier MUST be a variation-tolerant CBOR decoder.</t>
          <t>Cryptographic protection is obtained by wrapping the <tt>psa-token</tt> claims-set in a COSE
Web Token (CWT) <xref target="RFC8392"/>.  For asymmetric key algorithms, the signature
structure MUST be a tagged (18) COSE_Sign1.  For symmetric key algorithms, the signature
structure MUST be a tagged (17) COSE_Mac0.</t>
          <t>Acknowledging the variety of markets, regulations and use cases in which the
PSA attestation token can be used, the baseline profile does not impose any
strong requirement on the cryptographic algorithms that need to be supported by
Attesters and Verifiers.  The flexibility provided by the COSE format should be
sufficient to deal with the level of cryptographic agility needed to adapt to
specific use cases.  It is RECOMMENDED that commonly adopted algorithms are
used, such as those discussed in <xref target="COSE-ALGS"/>.  It is expected that receivers
will accept a wider range of algorithms, while Attesters would produce PSA tokens
using only one such algorithm.</t>
          <t>The CWT CBOR tag (61) is not used.  An application that needs to exchange PSA
attestation tokens can wrap the serialised COSE_Sign1 or COSE_Mac0 in the media
type defined in <xref target="sec-iana-media-types"/> or the CoAP Content-Format defined in
<xref target="sec-iana-coap-content-format"/>.</t>
          <t>A PSA token is always directly signed by the PSA RoT.  Therefore, a PSA
claims-set (<xref target="sec-psa-claims"/>) is never carried in a Detached EAT bundle
(<xref section="5" sectionFormat="of" target="EAT"/>).</t>
        </section>
        <section anchor="freshness-model">
          <name>Freshness Model</name>
          <t>The PSA Token supports the freshness models for attestation Evidence based on
nonces and epoch handles (Section <xref target="RFC9334" section="10.2" sectionFormat="bare"/> and Section <xref target="RFC9334" section="10.3" sectionFormat="bare"/> of <xref target="RFC9334"/>) using
the <tt>nonce</tt> claim to convey the nonce or epoch handle supplied by the Verifier.
No further assumption on the specific remote attestation protocol is made.</t>
          <t>Note that use of epoch handles is constrained by the type restrictions imposed by the <tt>eat_nonce</tt> syntax.
For use in PSA tokens, it must be possible to encode the epoch handle as an opaque binary string between 8 and 64 octets.</t>
        </section>
        <section anchor="synopsis">
          <name>Synopsis</name>
          <t><xref target="tbl-baseline-profile"/> presents a concise view of the requirements described in the preceding sections.</t>
          <table anchor="tbl-baseline-profile">
            <name>Baseline Profile</name>
            <thead>
              <tr>
                <th align="left">Issue</th>
                <th align="left">Profile Definition</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">CBOR/JSON</td>
                <td align="left">CBOR MUST be used</td>
              </tr>
              <tr>
                <td align="left">CBOR Encoding</td>
                <td align="left">Definite length maps and arrays MUST be used</td>
              </tr>
              <tr>
                <td align="left">CBOR Encoding</td>
                <td align="left">Definite length strings MUST be used</td>
              </tr>
              <tr>
                <td align="left">CBOR Serialization</td>
                <td align="left">Variant serialization MAY be used</td>
              </tr>
              <tr>
                <td align="left">COSE Protection</td>
                <td align="left">COSE_Sign1 and/or COSE_Mac0 MUST be used</td>
              </tr>
              <tr>
                <td align="left">Algorithms</td>
                <td align="left">
                  <xref target="COSE-ALGS"/> SHOULD be used</td>
              </tr>
              <tr>
                <td align="left">Detached EAT Bundle Usage</td>
                <td align="left">Detached EAT bundles MUST NOT be sent</td>
              </tr>
              <tr>
                <td align="left">Verification Key Identification</td>
                <td align="left">Any identification method listed in <xref section="F.1" sectionFormat="of" target="EAT"/></td>
              </tr>
              <tr>
                <td align="left">Endorsements</td>
                <td align="left">See <xref target="sec-psa-endorsements"/></td>
              </tr>
              <tr>
                <td align="left">Freshness</td>
                <td align="left">nonce or epoch ID based</td>
              </tr>
              <tr>
                <td align="left">Claims</td>
                <td align="left">Those defined in <xref target="sec-psa-claims"/>. As per general EAT rules, the receiver MUST NOT error out on claims it does not understand.</td>
              </tr>
            </tbody>
          </table>
        </section>
      </section>
      <section anchor="sec-tfm-profile">
        <name>Profile TFM</name>
        <t>This profile is appropriate for the code base implemented in <xref target="TF-M"/> and should apply for most derivative implementations. If an implementation changes the requirements described below then, to ensure interoperability, a new profile value should be used (<xref target="sec-profile-uri-structure"/>). This includes a restriction of the profile to a subset of the COSE Protection scheme requirements.</t>
        <t><xref target="tbl-tfm-profile"/> presents a concise view of the requirements.</t>
        <t>The value of the <tt>eat_profile</tt> MUST be <tt>tag:psacertified.org,2023:psa#tfm</tt>.</t>
        <table anchor="tbl-tfm-profile">
          <name>TF-M Profile</name>
          <thead>
            <tr>
              <th align="left">Issue</th>
              <th align="left">Profile Definition</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">CBOR/JSON</td>
              <td align="left">See <xref target="baseline-profile"/></td>
            </tr>
            <tr>
              <td align="left">CBOR Encoding</td>
              <td align="left">See <xref target="baseline-profile"/></td>
            </tr>
            <tr>
              <td align="left">CBOR Encoding</td>
              <td align="left">See <xref target="baseline-profile"/></td>
            </tr>
            <tr>
              <td align="left">CBOR Serialization</td>
              <td align="left">See <xref target="baseline-profile"/></td>
            </tr>
            <tr>
              <td align="left">COSE Protection</td>
              <td align="left">COSE_Sign1 or COSE_Mac0 MUST be used</td>
            </tr>
            <tr>
              <td align="left">Algorithms</td>
              <td align="left">The receiver MUST accept ES256, ES384 and ES512 with COSE_Sign1 and HMAC256/256, HMAC384/384 and HMAC512/512 with COSE_Mac0; the sender MUST send one of these</td>
            </tr>
            <tr>
              <td align="left">Detached EAT Bundle Usage</td>
              <td align="left">See <xref target="baseline-profile"/></td>
            </tr>
            <tr>
              <td align="left">Verification Key Identification</td>
              <td align="left">Claim-Based Key Identification (<xref section="F.1.4" sectionFormat="of" target="EAT"/>) using Implementation ID and Instance ID</td>
            </tr>
            <tr>
              <td align="left">Endorsements</td>
              <td align="left">See <xref target="sec-psa-endorsements"/></td>
            </tr>
            <tr>
              <td align="left">Freshness</td>
              <td align="left">See <xref target="baseline-profile"/></td>
            </tr>
            <tr>
              <td align="left">Claims</td>
              <td align="left">See <xref target="baseline-profile"/></td>
            </tr>
          </tbody>
        </table>
      </section>
    </section>
    <section anchor="collated-cddl">
      <name>Collated CDDL</name>
      <artwork><![CDATA[
psa-token = {
    psa-nonce
    psa-instance-id
    psa-verification-service-indicator
    psa-profile
    psa-implementation-id
    psa-client-id
    psa-lifecycle
    psa-certification-reference
    ? psa-boot-seed
    psa-software-components
}

psa-client-id-key = 2394
psa-lifecycle-key = 2395
psa-implementation-id-key = 2396
psa-boot-seed-key = 2397
psa-certification-reference-key = 2398
psa-software-components-key = 2399
psa-verification-service-indicator-key = 2400

nonce-label = 10
ueid-label = 256
profile-label = 265

psa-hash-type = bytes .size 32 / bytes .size 48 / bytes .size 64

psa-boot-seed-type = bytes .size (8..32)

psa-boot-seed = (
    psa-boot-seed-key => psa-boot-seed-type
)

psa-client-id-nspe-type = -2147483648...0
psa-client-id-spe-type = 1..2147483647

psa-client-id-type = psa-client-id-nspe-type / psa-client-id-spe-type

psa-client-id = (
    psa-client-id-key => psa-client-id-type
)

psa-certification-reference-type = text .regexp "[0-9]{13}-[0-9]{5}"

psa-certification-reference = (
    ? psa-certification-reference-key => 
        psa-certification-reference-type
)

psa-implementation-id-type = bytes .size 32

psa-implementation-id = (
    psa-implementation-id-key => psa-implementation-id-type
)

psa-instance-id-type = bytes .size 33

psa-instance-id = (
    ueid-label => psa-instance-id-type
)

psa-nonce = (
    nonce-label => psa-hash-type
)

psa-profile-type = "tag:psacertified.org,2023:psa#tfm"

psa-profile = (
    profile-label => psa-profile-type
)

psa-lifecycle-unknown-type = 0x0000..0x00ff
psa-lifecycle-assembly-and-test-type = 0x1000..0x10ff
psa-lifecycle-psa-rot-provisioning-type = 0x2000..0x20ff
psa-lifecycle-secured-type = 0x3000..0x30ff
psa-lifecycle-non-psa-rot-debug-type = 0x4000..0x40ff
psa-lifecycle-recoverable-psa-rot-debug-type = 0x5000..0x50ff
psa-lifecycle-decommissioned-type = 0x6000..0x60ff

psa-lifecycle-type = 
    psa-lifecycle-unknown-type /
    psa-lifecycle-assembly-and-test-type /
    psa-lifecycle-psa-rot-provisioning-type /
    psa-lifecycle-secured-type /
    psa-lifecycle-non-psa-rot-debug-type /
    psa-lifecycle-recoverable-psa-rot-debug-type /
    psa-lifecycle-decommissioned-type

psa-lifecycle = (
    psa-lifecycle-key => psa-lifecycle-type
)

psa-software-component = {
  ? &(measurement-type: 1) => text
    &(measurement-value: 2) => psa-hash-type
  ? &(version: 4) => text
    &(signer-id: 5) => psa-hash-type
  ? &(measurement-desc: 6) => text
}

psa-software-components = (
    psa-software-components-key => [ + psa-software-component ]
)

psa-verification-service-indicator-type = text

psa-verification-service-indicator = (
    ? psa-verification-service-indicator-key =>
        psa-verification-service-indicator-type
)

]]></artwork>
    </section>
    <section anchor="sec-scalability">
      <name>Scalability Considerations</name>
      <t>IAKs can be either raw public keys or certified public keys.</t>
      <t>Certified public keys require the manufacturer to run the certification
authority (CA) that issues X.509 certs for the IAKs.  (Note that operating a CA
is a complex and expensive task that may be unaffordable to certain
manufacturers.)</t>
      <t>If applicable, such approach provides sensibly better scalability properties
compared to using raw public keys, namely:</t>
      <ul spacing="normal">
        <li>
          <t>storage requirements on the verifier side are minimised - the same
manufacturer's trust anchor is used for any number of devices,</t>
        </li>
        <li>
          <t>the provisioning model is simpler and more robust since there is no need to
notify the verifier about each newly manufactured device,</t>
        </li>
        <li>
          <t>already existing and well understood revocation mechanisms can be
used.</t>
        </li>
      </ul>
      <t>The IAK's X.509 cert can be inlined in the PSA token using the <tt>x5chain</tt> COSE
header parameter <xref target="COSE-X509"/> at the cost of an increase in the PSA token
size.  <xref section="4.4" sectionFormat="of" target="TLS12-IoT"/> and <xref section="15" sectionFormat="of" target="TLS13-IoT"/> provide
guidance for profiling X.509 certs used in IoT deployments.
Note that the exact split between pre-provisioned and inlined certs may vary
depending on the specific deployment.  In that respect, <tt>x5chain</tt> is quite
flexible: it can contain the end-entity (EE) cert only, the EE and a partial
chain, or the EE and the full chain up to the trust anchor (see <xref section="2" sectionFormat="of" target="COSE-X509"/> for the details).  Deciding on a sensible split point may depend on
constraints around network bandwidth and computing resources available to the
endpoints (especially network buffers).</t>
    </section>
    <section anchor="implementation-status">
      <name>Implementation Status</name>
      <t>Implementations of this specification are provided by the Trusted
Firmware-M project <xref target="TF-M"/>, <xref target="IAT-VERIFIER"/>, the Veraison project <xref target="Veraison"/>, and the Xclaim
<xref target="Xclaim"/> library.  All four implementations are released as open-source software.</t>
    </section>
    <section anchor="security-and-privacy-considerations">
      <name>Security and Privacy Considerations</name>
      <t>This specification re-uses the EAT specification and therefore the CWT specification.
Hence, the security and privacy considerations of those specifications apply here as well.</t>
      <t>Since CWTs offer different ways to protect the token, this specification
profiles those options and allows signatures using public key cryptography as
well as message authentication codes (MACs). COSE_Sign1 is used for digital
signatures and COSE_Mac0 for MACs, as defined in the COSE specification <xref target="STD96"/>.
Note, however, that the use of MAC authentication is NOT RECOMMENDED due to the associated
infrastructure costs for key management and protocol complexities.</t>
      <t>A PSA attester MUST NOT provide attestation evidence to an untrusted
challenger, as it may allow attackers to interpose and trick the verifier into
believing the attacker is a legitimate attester.</t>
      <t>Attestation tokens contain information that may be unique to a device and
therefore they may allow to single out an individual device for tracking
purposes.  Deployments that have privacy requirements must take appropriate
measures to ensure that the token is only used to provision anonymous/pseudonym
keys.</t>
    </section>
    <section anchor="verification">
      <name>Verification</name>
      <t>To verify the token, the primary need is to check correct encoding and signing
as detailed in <xref target="sec-token-encoding-and-signing"/>.
The key used for verification is either supplied to the Verifier by an
authorized Endorser along with the corresponding Attester's Instance ID or
inlined in the token using the <tt>x5chain</tt> header parameter as described in
<xref target="sec-scalability"/>.
If the IAK is a raw public key, the Instance and Implementation ID claims are
used (together with the kid in the COSE header, if present) to assist in
locating the key used to verify the signature covering the CWT token.
If the IAK is a certified public key, X.509 path construction and validation
(<xref section="6" sectionFormat="of" target="X509"/>) up to a trusted CA MUST be successful before the key is
used to verify the token signature.</t>
      <t>In addition, the Verifier will typically operate a policy where values of some
of the claims in this profile can be compared to reference values, registered
with the Verifier for a given deployment, in order to confirm that the device
is endorsed by the manufacturer supply chain.  The policy may require that the
relevant claims must have a match to a registered reference value.  All claims
may be worthy of additional appraisal.  It is likely that most deployments
would include a policy with appraisal for the following claims:</t>
      <ul spacing="normal">
        <li>
          <t>Implementation ID - the value of the Implementation ID can be used to
identify the verification requirements of the deployment.</t>
        </li>
        <li>
          <t>Software Component, Measurement Value - this value can uniquely identify a
firmware release from the supply chain. In some cases, a Verifier may
maintain a record for a series of firmware releases, being patches to an
original baseline release. A verification policy may then allow this value to
match any point on that release sequence or expect some minimum level of
maturity related to the sequence.</t>
        </li>
        <li>
          <t>Software Component, Signer ID - where present in a deployment, this could
allow a Verifier to operate a more general policy than that for Measurement
Value as above, by allowing a token to contain any firmware entries signed by
a known Signer ID, without checking for a uniquely registered version.</t>
        </li>
        <li>
          <t>Certification Reference - if present, this value could be used as a hint to
locate security certification information associated with the attesting
device. An example could be a reference to a <xref target="PSACertified"/> certificate.</t>
        </li>
      </ul>
      <section anchor="ar4si-trustworthiness-claims-mappings">
        <name> AR4SI Trustworthiness Claims Mappings</name>
        <t><xref target="RATS-AR4SI"/> defines an information model that Verifiers can employ to
produce Attestation Results.
AR4SI provides a set of standardized appraisal categories and tiers that
greatly simplifies the task of writing Relying Party policies in multi-attester
environments.</t>
        <t>The contents of <xref target="tab-ar4si-map"/> are intended as guidance for implementing a
PSA Verifier that computes its results using AR4SI.
The table describes which PSA Evidence claims (if any) are related to which
AR4SI trustworthiness claim, and therefore what the Verifier must consider when
deciding if and how to appraise a certain feature associated with the PSA
Attester.</t>
        <table anchor="tab-ar4si-map">
          <name>AR4SI Claims mappings</name>
          <thead>
            <tr>
              <th align="left">Trustworthiness Vector claims</th>
              <th align="left">Related PSA claims</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <tt>configuration</tt></td>
              <td align="left">Software Components (<xref target="sec-sw-components"/>)</td>
            </tr>
            <tr>
              <td align="left">
                <tt>executables</tt></td>
              <td align="left">ditto</td>
            </tr>
            <tr>
              <td align="left">
                <tt>file-system</tt></td>
              <td align="left">N/A</td>
            </tr>
            <tr>
              <td align="left">
                <tt>hardware</tt></td>
              <td align="left">Implementation ID (<xref target="sec-implementation-id"/>)</td>
            </tr>
            <tr>
              <td align="left">
                <tt>instance-identity</tt></td>
              <td align="left">Instance ID (<xref target="sec-instance-id-claim"/>).  The Security Lifecycle (<xref target="sec-security-lifecycle"/>) can also impact the derived identity.</td>
            </tr>
            <tr>
              <td align="left">
                <tt>runtime-opaque</tt></td>
              <td align="left">Indirectly derived from <tt>executables</tt>, <tt>hardware</tt>, and <tt>instance-identity</tt>.  The Security Lifecycle (<xref target="sec-security-lifecycle"/>) can also be relevant: for example, any debug state will expose otherwise protected memory.</td>
            </tr>
            <tr>
              <td align="left">
                <tt>sourced-data</tt></td>
              <td align="left">N/A</td>
            </tr>
            <tr>
              <td align="left">
                <tt>storage-opaque</tt></td>
              <td align="left">Indirectly derived from <tt>executables</tt>, <tt>hardware</tt>, and <tt>instance-identity</tt>.</td>
            </tr>
          </tbody>
        </table>
        <t>This document does not prescribe what value must be chosen based on each
possible situation: when assigning specific Trustworthiness Claim values, an
implementation is expected to follow the algorithm described in <xref section="2.3.3" sectionFormat="of" target="RATS-AR4SI"/>.</t>
      </section>
      <section anchor="sec-psa-endorsements">
        <name>Endorsements, Reference Values and Verification Key Material</name>
        <t><xref target="PSA-Endorsements"/> defines a protocol based on the <xref target="RATS-CoRIM"/> data model
that can be used to convey PSA Endorsements, Reference Values and verification
key material to the Verifier.</t>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <section anchor="cbor-web-token-claims-registration">
        <name>CBOR Web Token Claims Registration</name>
        <t>IANA is requested to make permanent the following claims that have been
assigned via early allocation in the "CBOR Web Token (CWT) Claims" registry
<xref target="IANA-CWT"/>.</t>
        <section anchor="client-id-claim">
          <name> Client ID Claim</name>
          <ul spacing="normal">
            <li>
              <t>Claim Name: psa-client-id</t>
            </li>
            <li>
              <t>Claim Description: PSA Client ID</t>
            </li>
            <li>
              <t>JWT Claim Name: N/A</t>
            </li>
            <li>
              <t>Claim Key: 2394</t>
            </li>
            <li>
              <t>Claim Value Type(s): signed integer</t>
            </li>
            <li>
              <t>Change Controller: Hannes Tschofenig</t>
            </li>
            <li>
              <t>Specification Document(s): <xref target="sec-client-id"/> of RFCthis</t>
            </li>
          </ul>
        </section>
        <section anchor="security-lifecycle-claim">
          <name> Security Lifecycle Claim</name>
          <ul spacing="normal">
            <li>
              <t>Claim Name: psa-security-lifecycle</t>
            </li>
            <li>
              <t>Claim Description: PSA Security Lifecycle</t>
            </li>
            <li>
              <t>JWT Claim Name: N/A</t>
            </li>
            <li>
              <t>Claim Key: 2395</t>
            </li>
            <li>
              <t>Claim Value Type(s): unsigned integer</t>
            </li>
            <li>
              <t>Change Controller: Hannes Tschofenig</t>
            </li>
            <li>
              <t>Specification Document(s): <xref target="sec-security-lifecycle"/> of RFCthis</t>
            </li>
          </ul>
        </section>
        <section anchor="implementation-id-claim">
          <name> Implementation ID Claim</name>
          <ul spacing="normal">
            <li>
              <t>Claim Name: psa-implementation-id</t>
            </li>
            <li>
              <t>Claim Description: PSA Implementation ID</t>
            </li>
            <li>
              <t>JWT Claim Name: N/A</t>
            </li>
            <li>
              <t>Claim Key: 2396</t>
            </li>
            <li>
              <t>Claim Value Type(s): byte string</t>
            </li>
            <li>
              <t>Change Controller: Hannes Tschofenig</t>
            </li>
            <li>
              <t>Specification Document(s): <xref target="sec-implementation-id"/> of RFCthis</t>
            </li>
          </ul>
        </section>
        <section anchor="boot-seed-claim">
          <name> Boot Seed Claim</name>
          <ul spacing="normal">
            <li>
              <t>Claim Name: psa-boot-seed</t>
            </li>
            <li>
              <t>Claim Description: PSA Boot Seed</t>
            </li>
            <li>
              <t>JWT Claim Name: N/A</t>
            </li>
            <li>
              <t>Claim Key: 2397</t>
            </li>
            <li>
              <t>Claim Value Type(s): byte string</t>
            </li>
            <li>
              <t>Change Controller: Hannes Tschofenig</t>
            </li>
            <li>
              <t>Specification Document(s): <xref target="sec-boot-seed"/> of RFCthis</t>
            </li>
          </ul>
        </section>
        <section anchor="certification-reference-claim">
          <name> Certification Reference Claim</name>
          <ul spacing="normal">
            <li>
              <t>Claim Name: psa-certification-reference</t>
            </li>
            <li>
              <t>Claim Description: PSA Certification Reference</t>
            </li>
            <li>
              <t>JWT Claim Name: N/A</t>
            </li>
            <li>
              <t>Claim Key: 2398</t>
            </li>
            <li>
              <t>Claim Value Type(s): text string</t>
            </li>
            <li>
              <t>Change Controller: Hannes Tschofenig</t>
            </li>
            <li>
              <t>Specification Document(s): <xref target="sec-certification-reference"/> of RFCthis</t>
            </li>
          </ul>
        </section>
        <section anchor="software-components-claim">
          <name> Software Components Claim</name>
          <ul spacing="normal">
            <li>
              <t>Claim Name: psa-software-components</t>
            </li>
            <li>
              <t>Claim Description: PSA Software Components</t>
            </li>
            <li>
              <t>JWT Claim Name: N/A</t>
            </li>
            <li>
              <t>Claim Key: 2399</t>
            </li>
            <li>
              <t>Claim Value Type(s): array</t>
            </li>
            <li>
              <t>Change Controller: Hannes Tschofenig</t>
            </li>
            <li>
              <t>Specification Document(s): <xref target="sec-sw-components"/> of RFCthis</t>
            </li>
          </ul>
        </section>
        <section anchor="verification-service-indicator-claim">
          <name> Verification Service Indicator Claim</name>
          <ul spacing="normal">
            <li>
              <t>Claim Name: psa-verification-service-indicator</t>
            </li>
            <li>
              <t>Claim Description: PSA Verification Service Indicator</t>
            </li>
            <li>
              <t>JWT Claim Name: N/A</t>
            </li>
            <li>
              <t>Claim Key: 2400</t>
            </li>
            <li>
              <t>Claim Value Type(s): text string</t>
            </li>
            <li>
              <t>Change Controller: Hannes Tschofenig</t>
            </li>
            <li>
              <t>Specification Document(s): <xref target="sec-verification-service-indicator"/> of RFCthis</t>
            </li>
          </ul>
        </section>
      </section>
      <section anchor="sec-iana-media-types">
        <name>Media Types</name>
        <t>No new media type registration is requested.
To indicate that the transmitted content is a PSA Attestation Token,
applications can use the <tt>application/eat+cwt</tt> media type defined in
<xref target="EAT-MEDIATYPES"/> with the <tt>eat_profile</tt> parameter set to
<tt>tag:psacertified.org,2023:psa#tfm</tt> (or <tt>PSA_IOT_PROFILE_1</tt> if the token is encoded
according to the old profile, see <xref target="sec-backwards-compat"/>).</t>
      </section>
      <section anchor="sec-iana-coap-content-format">
        <name>CoAP Content-Formats Registration</name>
        <t>IANA is requested to register two CoAP Content-Format IDs in the "CoAP
Content-Formats" registry <xref target="IANA-CoAP-Content-Formats"/>:</t>
        <ul spacing="normal">
          <li>
            <t>One for the <tt>application/eat+cwt</tt> media type with the <tt>eat_profile</tt> parameter
equal to <tt>tag:psacertified.org,2023:psa#tfm</tt></t>
          </li>
          <li>
            <t>Another for the <tt>application/eat+cwt</tt> media type with the <tt>eat_profile</tt>
parameter equal to <tt>PSA_IOT_PROFILE_1</tt></t>
          </li>
        </ul>
        <t>The Content-Formats should be allocated from the Expert review range (0-255).</t>
        <section anchor="registry-contents">
          <name>Registry Contents</name>
          <ul spacing="normal">
            <li>
              <t>Media Type: <tt>application/eat+cwt; eat_profile="tag:psacertified.org,2023:psa#tfm"</tt></t>
            </li>
            <li>
              <t>Encoding: -</t>
            </li>
            <li>
              <t>Id: [[To-be-assigned by IANA]]</t>
            </li>
            <li>
              <t>Reference: RFCthis</t>
            </li>
            <li>
              <t>Media Type: <tt>application/eat+cwt; eat_profile="PSA_IOT_PROFILE_1"</tt></t>
            </li>
            <li>
              <t>Encoding: -</t>
            </li>
            <li>
              <t>Id: [[To-be-assigned by IANA]]</t>
            </li>
            <li>
              <t>Reference: RFCthis</t>
            </li>
          </ul>
        </section>
      </section>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="PSA-SM" target="https://www.psacertified.org/app/uploads/2021/12/JSADEN014_PSA_Certified_SM_V1.1_BET0.pdf">
          <front>
            <title>Platform Security Model 1.1</title>
            <author>
              <organization>Arm</organization>
            </author>
            <date year="2021" month="December"/>
          </front>
        </reference>
        <reference anchor="EAN-13" target="https://www.gs1.org/standards/barcodes/ean-upc">
          <front>
            <title>International Article Number - EAN/UPC barcodes</title>
            <author>
              <organization>GS1</organization>
            </author>
            <date year="2019"/>
          </front>
        </reference>
        <reference anchor="PSA-FF" target="https://developer.arm.com/documentation/den0063/a">
          <front>
            <title>Platform Security Architecture Firmware Framework 1.0 (PSA-FF)</title>
            <author>
              <organization>Arm</organization>
            </author>
            <date year="2019" month="February"/>
          </front>
        </reference>
        <reference anchor="PSA-Cert-Guide" target="https://www.psacertified.org/app/uploads/2020/07/JSADEN011-PSA_Certified_Level_2_Step-by-Step-1.1-20200403.pdf">
          <front>
            <title>PSA Certified Level 2 Step by Step Guide Version 1.1</title>
            <author>
              <organization>PSA Certified</organization>
            </author>
            <date year="2020"/>
          </front>
        </reference>
        <reference anchor="STD96">
          <front>
            <title>CBOR Object Signing and Encryption (COSE): Structures and Process</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>Concise Binary Object Representation (CBOR) is a data format designed for small code size and small message size. There is a need to be able to define basic security services for this data format. This document defines the CBOR Object Signing and Encryption (COSE) protocol. This specification describes how to create and process signatures, message authentication codes, and encryption using CBOR for serialization. This specification additionally describes how to represent cryptographic keys using CBOR.</t>
              <t>This document, along with RFC 9053, obsoletes RFC 8152.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="96"/>
          <seriesInfo name="RFC" value="9052"/>
          <seriesInfo name="DOI" value="10.17487/RFC9052"/>
        </reference>
        <reference anchor="COSE-ALGS">
          <front>
            <title>CBOR Object Signing and Encryption (COSE): Initial Algorithms</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>Concise Binary Object Representation (CBOR) is a data format designed for small code size and small message size. There is a need to be able to define basic security services for this data format. This document defines a set of algorithms that can be used with the CBOR Object Signing and Encryption (COSE) protocol (RFC 9052).</t>
              <t>This document, along with RFC 9052, obsoletes RFC 8152.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9053"/>
          <seriesInfo name="DOI" value="10.17487/RFC9053"/>
        </reference>
        <reference anchor="IANA-CWT" target="https://www.iana.org/assignments/cwt/cwt.xhtml#claims-registry">
          <front>
            <title>CBOR Web Token (CWT) Claims</title>
            <author>
              <organization>IANA</organization>
            </author>
            <date year="2022"/>
          </front>
        </reference>
        <reference anchor="X509">
          <front>
            <title>Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile</title>
            <author fullname="D. Cooper" initials="D." surname="Cooper"/>
            <author fullname="S. Santesson" initials="S." surname="Santesson"/>
            <author fullname="S. Farrell" initials="S." surname="Farrell"/>
            <author fullname="S. Boeyen" initials="S." surname="Boeyen"/>
            <author fullname="R. Housley" initials="R." surname="Housley"/>
            <author fullname="W. Polk" initials="W." surname="Polk"/>
            <date month="May" year="2008"/>
            <abstract>
              <t>This memo profiles the X.509 v3 certificate and X.509 v2 certificate revocation list (CRL) for use in the Internet. An overview of this approach and model is provided as an introduction. The X.509 v3 certificate format is described in detail, with additional information regarding the format and semantics of Internet name forms. Standard certificate extensions are described and two Internet-specific extensions are defined. A set of required certificate extensions is specified. The X.509 v2 CRL format is described in detail along with standard and Internet-specific extensions. An algorithm for X.509 certification path validation is described. An ASN.1 module and examples are provided in the appendices. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5280"/>
          <seriesInfo name="DOI" value="10.17487/RFC5280"/>
        </reference>
        <reference anchor="EAT">
          <front>
            <title>The Entity Attestation Token (EAT)</title>
            <author fullname="Laurence Lundblade" initials="L." surname="Lundblade">
              <organization>Security Theory LLC</organization>
            </author>
            <author fullname="Giridhar Mandyam" initials="G." surname="Mandyam">
         </author>
            <author fullname="Jeremy O'Donoghue" initials="J." surname="O'Donoghue">
              <organization>Qualcomm Technologies Inc.</organization>
            </author>
            <author fullname="Carl Wallace" initials="C." surname="Wallace">
              <organization>Red Hound Software, Inc.</organization>
            </author>
            <date day="16" month="December" year="2023"/>
            <abstract>
              <t>   An Entity Attestation Token (EAT) provides an attested claims set
   that describes state and characteristics of an entity, a device like
   a smartphone, IoT device, network equipment or such.  This claims set
   is used by a relying party, server or service to determine the type
   and degree of trust placed in the entity.

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

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-rats-eat-24"/>
        </reference>
        <reference anchor="EAT-MEDIATYPES">
          <front>
            <title>EAT Media Types</title>
            <author fullname="Laurence Lundblade" initials="L." surname="Lundblade">
              <organization>Security Theory LLC</organization>
            </author>
            <author fullname="Henk Birkholz" initials="H." surname="Birkholz">
              <organization>Fraunhofer Institute for Secure Information Technology</organization>
            </author>
            <author fullname="Thomas Fossati" initials="T." surname="Fossati">
              <organization>Linaro</organization>
            </author>
            <date day="7" month="November" year="2023"/>
            <abstract>
              <t>   Payloads used in Remote Attestation Procedures may require an
   associated media type for their conveyance, for example when used in
   RESTful APIs.

   This memo defines media types to be used for Entity Attestation
   Tokens (EAT).

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-rats-eat-media-type-05"/>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <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="RFC3986">
          <front>
            <title>Uniform Resource Identifier (URI): Generic Syntax</title>
            <author fullname="T. Berners-Lee" initials="T." surname="Berners-Lee"/>
            <author fullname="R. Fielding" initials="R." surname="Fielding"/>
            <author fullname="L. Masinter" initials="L." surname="Masinter"/>
            <date month="January" year="2005"/>
            <abstract>
              <t>A Uniform Resource Identifier (URI) is a compact sequence of characters that identifies an abstract or physical resource. This specification defines the generic URI syntax and a process for resolving URI references that might be in relative form, along with guidelines and security considerations for the use of URIs on the Internet. The URI syntax defines a grammar that is a superset of all valid URIs, allowing an implementation to parse the common components of a URI reference without knowing the scheme-specific requirements of every possible identifier. This specification does not define a generative grammar for URIs; that task is performed by the individual specifications of each URI scheme. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="66"/>
          <seriesInfo name="RFC" value="3986"/>
          <seriesInfo name="DOI" value="10.17487/RFC3986"/>
        </reference>
        <reference anchor="RFC4151">
          <front>
            <title>The 'tag' URI Scheme</title>
            <author fullname="T. Kindberg" initials="T." surname="Kindberg"/>
            <author fullname="S. Hawke" initials="S." surname="Hawke"/>
            <date month="October" year="2005"/>
            <abstract>
              <t>This document describes the "tag" Uniform Resource Identifier (URI) scheme. Tag URIs (also known as "tags") are designed to be unique across space and time while being tractable to humans. They are distinct from most other URIs in that they have no authoritative resolution mechanism. A tag may be used purely as an entity identifier. Furthermore, using tags has some advantages over the common practice of using "http" URIs as identifiers for non-HTTP-accessible resources. This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4151"/>
          <seriesInfo name="DOI" value="10.17487/RFC4151"/>
        </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="RFC8392">
          <front>
            <title>CBOR Web Token (CWT)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="E. Wahlstroem" initials="E." surname="Wahlstroem"/>
            <author fullname="S. Erdtman" initials="S." surname="Erdtman"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <date month="May" year="2018"/>
            <abstract>
              <t>CBOR Web Token (CWT) is a compact means of representing claims to be transferred between two parties. The claims in a CWT are encoded in the Concise Binary Object Representation (CBOR), and CBOR Object Signing and Encryption (COSE) is used for added application-layer security protection. A claim is a piece of information asserted about a subject and is represented as a name/value pair consisting of a claim name and a claim value. CWT is derived from JSON Web Token (JWT) but uses CBOR rather than JSON.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8392"/>
          <seriesInfo name="DOI" value="10.17487/RFC8392"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="TLS12-IoT">
          <front>
            <title>Transport Layer Security (TLS) / Datagram Transport Layer Security (DTLS) Profiles for the Internet of Things</title>
            <author fullname="H. Tschofenig" initials="H." role="editor" surname="Tschofenig"/>
            <author fullname="T. Fossati" initials="T." surname="Fossati"/>
            <date month="July" year="2016"/>
            <abstract>
              <t>A common design pattern in Internet of Things (IoT) deployments is the use of a constrained device that collects data via sensors or controls actuators for use in home automation, industrial control systems, smart cities, and other IoT deployments.</t>
              <t>This document defines a Transport Layer Security (TLS) and Datagram Transport Layer Security (DTLS) 1.2 profile that offers communications security for this data exchange thereby preventing eavesdropping, tampering, and message forgery. The lack of communication security is a common vulnerability in IoT products that can easily be solved by using these well-researched and widely deployed Internet security protocols.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7925"/>
          <seriesInfo name="DOI" value="10.17487/RFC7925"/>
        </reference>
        <reference anchor="TLS13-IoT">
          <front>
            <title>TLS/DTLS 1.3 Profiles for the Internet of Things</title>
            <author fullname="Hannes Tschofenig" initials="H." surname="Tschofenig">
         </author>
            <author fullname="Thomas Fossati" initials="T." surname="Fossati">
              <organization>Linaro</organization>
            </author>
            <author fullname="Michael Richardson" initials="M." surname="Richardson">
              <organization>Sandelman Software Works</organization>
            </author>
            <date day="22" month="October" year="2023"/>
            <abstract>
              <t>   This document is a companion to RFC 7925 and defines TLS/DTLS 1.3
   profiles for Internet of Things devices.  It also updates RFC 7925
   with regards to the X.509 certificate profile.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-uta-tls13-iot-profile-08"/>
        </reference>
        <reference anchor="COSE-X509">
          <front>
            <title>CBOR Object Signing and Encryption (COSE): Header Parameters for Carrying and Referencing X.509 Certificates</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="February" year="2023"/>
            <abstract>
              <t>The CBOR Object Signing and Encryption (COSE) message structure uses references to keys in general. For some algorithms, additional properties are defined that carry parameters relating to keys as needed. The COSE Key structure is used for transporting keys outside of COSE messages. This document extends the way that keys can be identified and transported by providing attributes that refer to or contain X.509 certificates.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9360"/>
          <seriesInfo name="DOI" value="10.17487/RFC9360"/>
        </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="IANA-HashFunctionTextualNames" target="https://www.iana.org/assignments/hash-function-text-names">
          <front>
            <title>Hash Function Textual Names</title>
            <author>
              <organization>IANA</organization>
            </author>
            <date year="2022"/>
          </front>
        </reference>
        <reference anchor="IANA-CoAP-Content-Formats" target="https://www.iana.org/assignments/core-parameters">
          <front>
            <title>CoAP Content-Formats</title>
            <author>
              <organization>IANA</organization>
            </author>
            <date year="2022"/>
          </front>
        </reference>
        <reference anchor="TF-M" target="https://www.trustedfirmware.org/projects/tf-m/">
          <front>
            <title>Trusted Firmware-M</title>
            <author>
              <organization>Linaro</organization>
            </author>
            <date year="2022"/>
          </front>
        </reference>
        <reference anchor="IAT-VERIFIER" target="https://git.trustedfirmware.org/TF-M/tf-m-tools.git/tree/iat-verifier">
          <front>
            <title>iat-verifier</title>
            <author>
              <organization>Linaro</organization>
            </author>
            <date year="2023"/>
          </front>
        </reference>
        <reference anchor="Veraison" target="https://github.com/veraison/psatoken">
          <front>
            <title>Veraison psatoken package</title>
            <author>
              <organization>The Veraison Project</organization>
            </author>
            <date year="2022"/>
          </front>
        </reference>
        <reference anchor="Xclaim" target="https://github.com/laurencelundblade/xclaim">
          <front>
            <title>Xclaim</title>
            <author initials="L." surname="Lundblade" fullname="Laurence Lundblade">
              <organization/>
            </author>
            <date year="2022"/>
          </front>
        </reference>
        <reference anchor="PSA" target="https://developer.arm.com/architectures/security-architectures/platform-security-architecture/documentation">
          <front>
            <title>Platform Security Architecture Resources</title>
            <author>
              <organization>Arm</organization>
            </author>
            <date year="2022"/>
          </front>
        </reference>
        <reference anchor="PSACertified" target="https://psacertified.org">
          <front>
            <title>PSA Certified IoT Security Framework</title>
            <author>
              <organization>PSA Certified</organization>
            </author>
            <date year="2022"/>
          </front>
        </reference>
        <reference anchor="PSA-API" target="https://arm-software.github.io/psa-api/attestation/1.0/IHI0085-PSA_Certified_Attestation_API-1.0.3.pdf">
          <front>
            <title>PSA Attestation API 1.0.3</title>
            <author>
              <organization>Arm</organization>
            </author>
            <date year="2022"/>
          </front>
        </reference>
        <reference anchor="PSA-Endorsements">
          <front>
            <title>Arm's Platform Security Architecture (PSA) Attestation Verifier Endorsements</title>
            <author fullname="Thomas Fossati" initials="T." surname="Fossati">
              <organization>Linaro</organization>
            </author>
            <author fullname="Yogesh Deshpande" initials="Y." surname="Deshpande">
              <organization>Arm Ltd</organization>
            </author>
            <author fullname="Henk Birkholz" initials="H." surname="Birkholz">
              <organization>Fraunhofer SIT</organization>
            </author>
            <date day="10" month="September" year="2023"/>
            <abstract>
              <t>   PSA Endorsements include reference values, cryptographic key material
   and certification status information that a Verifier needs in order
   to appraise attestation Evidence produced by a PSA device.  This memo
   defines such PSA Endorsements as a profile of the CoRIM data model.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-fdb-rats-psa-endorsements-03"/>
        </reference>
        <reference anchor="RATS-CoRIM">
          <front>
            <title>Concise Reference Integrity Manifest</title>
            <author fullname="Henk Birkholz" initials="H." surname="Birkholz">
              <organization>Fraunhofer SIT</organization>
            </author>
            <author fullname="Thomas Fossati" initials="T." surname="Fossati">
              <organization>arm</organization>
            </author>
            <author fullname="Yogesh Deshpande" initials="Y." surname="Deshpande">
              <organization>arm</organization>
            </author>
            <author fullname="Ned Smith" initials="N." surname="Smith">
              <organization>Intel</organization>
            </author>
            <author fullname="Wei Pan" initials="W." surname="Pan">
              <organization>Huawei Technologies</organization>
            </author>
            <date day="23" month="October" year="2023"/>
            <abstract>
              <t>   Remote Attestation Procedures (RATS) enable Relying Parties to assess
   the trustworthiness of a remote Attester and therefore to decide
   whether to engage in secure interactions with it.  Evidence about
   trustworthiness can be rather complex and it is deemed unrealistic
   that every Relying Party is capable of the appraisal of Evidence.
   Therefore that burden is typically offloaded to a Verifier.  In order
   to conduct Evidence appraisal, a Verifier requires not only fresh
   Evidence from an Attester, but also trusted Endorsements and
   Reference Values from Endorsers and Reference Value Providers, such
   as manufacturers, distributors, or device owners.  This document
   specifies the information elements for representing Endorsements and
   Reference Values in CBOR format.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-rats-corim-03"/>
        </reference>
        <reference anchor="RATS-AR4SI">
          <front>
            <title>Attestation Results for Secure Interactions</title>
            <author fullname="Eric Voit" initials="E." surname="Voit">
              <organization>Cisco Systems</organization>
            </author>
            <author fullname="Henk Birkholz" initials="H." surname="Birkholz">
              <organization>Fraunhofer SIT</organization>
            </author>
            <author fullname="Thomas Hardjono" initials="T." surname="Hardjono">
              <organization>MIT</organization>
            </author>
            <author fullname="Thomas Fossati" initials="T." surname="Fossati">
              <organization>Arm Limited</organization>
            </author>
            <author fullname="Vincent Scarlata" initials="V." surname="Scarlata">
              <organization>Intel</organization>
            </author>
            <date day="30" month="August" year="2023"/>
            <abstract>
              <t>   This document defines reusable Attestation Result information
   elements.  When these elements are offered to Relying Parties as
   Evidence, different aspects of Attester trustworthiness can be
   evaluated.  Additionally, where the Relying Party is interfacing with
   a heterogeneous mix of Attesting Environment and Verifier types,
   consistent policies can be applied to subsequent information exchange
   between each Attester and the Relying Party.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-rats-ar4si-05"/>
        </reference>
      </references>
    </references>
    <?line 1230?>

<section anchor="examples">
      <name>Examples</name>
      <t>The following examples show PSA attestation tokens for an hypothetical system
comprising a single measured software component.
The attesting device is in a lifecycle state (<xref target="sec-security-lifecycle"/>) of
SECURED.  The attestation has been requested from a client residing in the
SPE.</t>
      <t>The example in <xref target="ex-sign1"/> illustrates the case where the IAK is an asymmetric key.  A COSE Sign1 envelope is used to wrap the PSA claims-set.</t>
      <t><xref target="ex-mac0"/> illustrates the case where the IAK is a symmetric key and a COSE Mac0 envelope is used instead.</t>
      <t>The claims sets are identical, except for the Instance ID which is synthesized from the key material.</t>
      <t>The examples have been created using the <tt>iat-verifier</tt> tool <xref target="IAT-VERIFIER"/>.</t>
      <section anchor="ex-sign1">
        <name>COSE Sign1 Token</name>
        <artwork><![CDATA[
{
  / ueid /                     256: h'01020202020202020202020202
0202020202020202020202020202020202020202',
  / psa-implementation-id /   2396: h'00000000000000000000000000
00000000000000000000000000000000000000',
  / eat_nonce /                 10: h'01010101010101010101010101
01010101010101010101010101010101010101',
  / psa-client-id /           2394: 2147483647,
  / psa-security-lifecycle /  2395: 12288,
  / eat_profile /              265: "tag:psacertified.org,2023:p
sa#tfm",
  / psa-boot-seed /           2397: h'0000000000000000',
  / psa-software-components / 2399: [
    {
      / signer ID /         5: h'0404040404040404040404040404040
404040404040404040404040404040404',
      / measurement value / 2: h'0303030303030303030303030303030
303030303030303030303030303030303'
    }
  ]
}
]]></artwork>
        <t>The JWK representation of the IAK used for creating the COSE Sign1 signature
over the PSA token is:</t>
        <artwork><![CDATA[
{
  "kty": "EC",
  "crv": "P-256",
  "alg": "ES256",
  "x": "Tl4iCZ47zrRbRG0TVf0dw7VFlHtv18HInYhnmMNybo8",
  "y": "gNcLhAslaqw0pi7eEEM2TwRAlfADR0uR4Bggkq-xPy4",
  "d": "Q__-y5X4CFp8QOHT6nkL7063jN131YUDpkwWAPkbM-c"
}
]]></artwork>
        <t>The resulting COSE object is:</t>
        <artwork><![CDATA[
18([
  h'A10126',  
  {},
  h'A81901005821010202020202020202020202020202020202020202020202
02020202020202020219095C5820000000000000000000000000000000000000
00000000000000000000000000000A5820010101010101010101010101010101
010101010101010101010101010101010119095A1A7FFFFFFF19095B19300019
010978217461673A7073616365727469666965642E6F72672C323032333A7073
612374666D19095D48000000000000000019095F81A205582004040404040404
0404040404040404040404040404040404040404040404040402582003030303
03030303030303030303030303030303030303030303030303030303',
  h'2F4C8152ED1691833EEBB6A182D2120E3D19220DF85B9AC51109113A423F
A024205CEDA0815968548DE4FBB6DC94B88C916F0D266E64CEA24183A84F977D
E475'
])
]]></artwork>
        <t>which has the following base16 encoding:</t>
        <artwork><![CDATA[
d28443a10126a058faa81901005821010202020202020202020202020202
02020202020202020202020202020202020219095c582000000000000000
000000000000000000000000000000000000000000000000000a58200101
010101010101010101010101010101010101010101010101010101010101
19095a1a7fffffff19095b19300019010978217461673a70736163657274
69666965642e6f72672c323032333a7073612374666d19095d4800000000
0000000019095f81a2055820040404040404040404040404040404040404
040404040404040404040404040402582003030303030303030303030303
0303030303030303030303030303030303030358402f4c8152ed1691833e
ebb6a182d2120e3d19220df85b9ac51109113a423fa024205ceda0815968
548de4fbb6dc94b88c916f0d266e64cea24183a84f977de475
]]></artwork>
      </section>
      <section anchor="ex-mac0">
        <name>COSE Mac0 Token</name>
        <artwork><![CDATA[
{
  / ueid /                     256: h'01C557BD4FADC83F756FCA2CD5
EA2DCC8B82159BB4E7453D6A744D4EECD6D0AC60',
  / psa-implementation-id /   2396: h'00000000000000000000000000
00000000000000000000000000000000000000',
  / eat_nonce /                 10: h'01010101010101010101010101
01010101010101010101010101010101010101',
  / psa-client-id /           2394: 2147483647,
  / psa-security-lifecycle /  2395: 12288,
  / eat_profile /              265: "tag:psacertified.org,2023:p
sa#tfm",
  / psa-boot-seed /           2397: h'0000000000000000',
  / psa-software-components / 2399: [
    {
      / signer ID /         5: h'0404040404040404040404040404040
404040404040404040404040404040404',
      / measurement value / 2: h'0303030303030303030303030303030
303030303030303030303030303030303'
    }
  ]
}
]]></artwork>
        <t>The JWK representation of the IAK used for creating the COSE Mac0 signature
over the PSA token is:</t>
        <artwork><![CDATA[
========== NOTE: '\\' line wrapping per RFC 8792 ==========

{
  "kty": "oct",
  "alg": "HS256",
  "k": "3gOLNKyhJXaMXjNXq40Gs2e5qw1-i-Ek7cpH_gM6W7epPTB_8imqNv8k\
       \bBKVlk-s9xq3qm7E_WECt7OYMlWtkg"
}
]]></artwork>
        <t>The resulting COSE object is:</t>
        <artwork><![CDATA[
17([
  h'A10105',
  {},
  h'A8190100582101C557BD4FADC83F756FCA2CD5EA2DCC8B82159BB4E7453D
6A744D4EECD6D0AC6019095C5820000000000000000000000000000000000000
00000000000000000000000000000A5820010101010101010101010101010101
010101010101010101010101010101010119095A1A7FFFFFFF19095B19300019
010978217461673A7073616365727469666965642E6F72672C323032333A7073
612374666D19095D48000000000000000019095F81A205582004040404040404
0404040404040404040404040404040404040404040404040402582003030303
03030303030303030303030303030303030303030303030303030303',
  h'9B9FAA23F25D630B620C40508C978FBDC46130A5898BA1E8014085B13E43
256E'
])
]]></artwork>
        <t>which has the following base16 encoding:</t>
        <artwork><![CDATA[
d18443a10105a058faa8190100582101c557bd4fadc83f756fca2cd5ea2d
cc8b82159bb4e7453d6a744d4eecd6d0ac6019095c582000000000000000
000000000000000000000000000000000000000000000000000a58200101
010101010101010101010101010101010101010101010101010101010101
19095a1a7fffffff19095b19300019010978217461673a70736163657274
69666965642e6f72672c323032333a7073612374666d19095d4800000000
0000000019095f81a2055820040404040404040404040404040404040404
040404040404040404040404040402582003030303030303030303030303
0303030303030303030303030303030303030358209b9faa23f25d630b62
0c40508c978fbdc46130a5898ba1e8014085b13e43256e
]]></artwork>
      </section>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>Thanks to Carsten Bormann for help with the CDDL and Nicholas Wood for ideas
and comments.</t>
    </section>
    <section anchor="contributors" numbered="false" toc="include" removeInRFC="false">
      <name>Contributors</name>
      <contact initials="L." surname="Lundblade" fullname="Laurence Lundblade">
        <organization>Security Theory LLC</organization>
        <address>
          <email>lgl@securitytheory.com</email>
        </address>
      </contact>
      <contact initials="T." surname="Ban" fullname="Tamas Ban">
        <organization>Arm Limited</organization>
        <address>
          <email>Tamas.Ban@arm.com</email>
        </address>
      </contact>
      <contact initials="S." surname="Trofimov" fullname="Sergei Trofimov">
        <organization>Arm Limited</organization>
        <address>
          <email>Sergei.Trofimov@arm.com</email>
        </address>
      </contact>
    </section>
  </back>
  <!-- ##markdown-source:
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

-->

</rfc>
