<?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.6.11 (Ruby 3.1.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-10" category="info" submissionType="independent" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.12.10 -->
  <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-10"/>
    <author initials="H." surname="Tschofenig" fullname="Hannes Tschofenig">
      <organization>Arm Limited</organization>
      <address>
        <email>Hannes.Tschofenig@arm.com</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>Arm Limited</organization>
      <address>
        <email>Thomas.Fossati@arm.com</email>
      </address>
    </author>
    <date year="2022" month="September" day="06"/>
    <area>Security</area>
    <workgroup>Remote ATtestation ProcedureS</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <t>The Platform Security Architecture (PSA) is a family of hardware and firmware
security specifications, as well as open-source reference implementations, to
help device makers and chip manufacturers build best-practice security into
products. Devices that are PSA compliant are able to produce attestation tokens
as described in this memo, which are the basis for a number of different
protocols, including secure provisioning and network access control.  This
document specifies the PSA attestation token structure and semantics.</t>
      <t>The PSA attestation token is a profiled Entity Attestation Token (EAT).</t>
      <t>This specification describes what claims are used in an attestation token
generated by PSA compliant systems, how these claims get serialized to the
wire, and how they are cryptographically protected.</t>
    </abstract>
    <note>
      <name>Note to Readers</name>
      <t>Source for this draft and an issue tracker can be found at
  <eref target="https://github.com/thomas-fossati/draft-psa-token">https://github.com/thomas-fossati/draft-psa-token</eref>.</t>
    </note>
  </front>
  <middle>
    <section anchor="introduction">
      <name>Introduction</name>
      <t>Trusted execution environments are now present in many devices, which provide a
safe environment to place 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. 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.</t>
      <section anchor="glossary">
        <name>Glossary</name>
        <dl>
          <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>
    <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="I-D.ietf-rats-architecture"/>.</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="448" width="560" viewBox="0 0 560 448" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px">
              <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 296,208 L 296,240" fill="none" stroke="black"/>
              <path d="M 328,288 L 328,336" fill="none" stroke="black"/>
              <path d="M 360,208 L 360,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 312,192 L 344,192" fill="none" stroke="black"/>
              <path d="M 408,192 L 520,192" fill="none" stroke="black"/>
              <path d="M 264,224 L 288,224" fill="none" stroke="black"/>
              <path d="M 368,224 L 408,224" fill="none" stroke="black"/>
              <path d="M 160,256 L 264,256" fill="none" stroke="black"/>
              <path d="M 312,256 L 344,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 312,192 C 303.16936,192 296,199.16936 296,208" fill="none" stroke="black"/>
              <path d="M 344,192 C 352.83064,192 360,199.16936 360,208" fill="none" stroke="black"/>
              <path d="M 312,256 C 303.16936,256 296,248.83064 296,240" fill="none" stroke="black"/>
              <path d="M 344,256 C 352.83064,256 360,248.83064 360,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="296,224 284,218.4 284,229.6 " fill="black" transform="rotate(0,288,224)"/>
              <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="360" cy="224" 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="324" y="212">Main</text>
                <text x="448" y="212">Initial</text>
                <text x="212" y="228">Bootloader</text>
                <text x="324" y="228">Boot</text>
                <text x="464" y="228">Attestation</text>
                <text x="328" y="244">State</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>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art"><![CDATA[
                                                    .----------.
                                                    | Verifier |
                                                    '----------'
                                                         ^
                                                         |
                                                Evidence |
                                                         |
.--------------------------------------------------------|----------.
| .------------------------------------------------------|--------. |
| | Attesting Environment                                |        | |
| |                .------------.    .-----.      .------+------. | |
| |                | Main       |   | Main  |     | Initial     | | |
| |                | Bootloader +-->| Boot  o-----+ Attestation | | |
| |                |            |   | State |     | Service     | | |
| |                '-----+------'    '-----'      '-------------' | |
| '----------------------|----------------------------------------' |
|           .------------+--------------+---------------.           |
| .--------|-------------|--------------|----------------|--------. |
| |        |             |              |                |        | |
| | .------o-----. .-----o-------. .----o--------. .-----o------. | |
| | | Updateable | | Application | | Application | | PSA RoT    | | |
| | | PSA RoT    | | RoT         | | Loader      | | Parameters | | |
| | '------------' '-------------' '-------------' '------------' | |
| | Target Environment                                            | |
| '---------------------------------------------------------------' |
'-------------------------------------------------------------------'
]]></artwork>
        </artset>
      </figure>
      <t>The PSA Attester is a relatively straightforward embodiment of the RATS
Attester with exactly one Attesting Environment and one Target Environment.</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>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) from where the Initial
Attestation Service will, when asked for a platform attestation report,
retrieve them.</li>
        <li>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 the attestation report.</li>
      </ul>
      <t>The Target Environment can be broken down into four macro "objects", some of
which may or may not be present depending on the device architecture:</t>
      <ul spacing="normal">
        <li>(A subset of) the PSA RoT parameters, including Instance and Implementation
IDs.</li>
        <li>The updateable PSA RoT, including the Secure Partition Manager and all PSA
RoT services.</li>
        <li>The (optional) Application RoT, that is any application-defined security
service, possibly making use of the PSA RoT services.</li>
        <li>The loader of the application software running in NSPE.</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="I-D.ietf-rats-eat"/> <tt>nonce</tt> (claim key 10) is used.  The following
constraints apply to the <tt>nonce-type</tt>:</t>
          <ul spacing="normal">
            <li>The length MUST be either 32, 48, or 64 bytes.</li>
            <li>Only a single nonce value is conveyed. Per <xref target="I-D.ietf-rats-eat"/> the array notation is not used for encoding the nonce value.</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>The length MUST be 33 bytes.</li>
            <li>The first byte MUST be 0x01 (RAND) followed by the 32-bytes key hash.</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>version[15:8] - PSA security lifecycle state, and</li>
            <li>version[7:0] - IMPLEMENTATION DEFINED state.</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="352" width="528" viewBox="0 0 528 352" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px">
                  <path d="M 48,272 L 48,288" fill="none" stroke="black"/>
                  <path d="M 72,64 L 72,120" fill="none" stroke="black"/>
                  <path d="M 72,168 L 72,192" fill="none" stroke="black"/>
                  <path d="M 72,224 L 72,256" fill="none" stroke="black"/>
                  <path d="M 104,288 L 104,304" fill="none" stroke="black"/>
                  <path d="M 168,144 L 168,256" fill="none" stroke="black"/>
                  <path d="M 184,256 L 184,272" fill="none" stroke="black"/>
                  <path d="M 192,48 L 192,64" fill="none" stroke="black"/>
                  <path d="M 208,208 L 208,240" fill="none" stroke="black"/>
                  <path d="M 224,304 L 224,336" fill="none" stroke="black"/>
                  <path d="M 248,128 L 248,160" fill="none" stroke="black"/>
                  <path d="M 264,160 L 264,200" fill="none" stroke="black"/>
                  <path d="M 288,64 L 288,120" fill="none" stroke="black"/>
                  <path d="M 288,240 L 288,272" fill="none" stroke="black"/>
                  <path d="M 312,96 L 312,120" fill="none" stroke="black"/>
                  <path d="M 312,168 L 312,208" fill="none" stroke="black"/>
                  <path d="M 328,128 L 328,160" fill="none" stroke="black"/>
                  <path d="M 360,304 L 360,336" fill="none" stroke="black"/>
                  <path d="M 368,208 L 368,240" fill="none" stroke="black"/>
                  <path d="M 384,32 L 384,48" fill="none" stroke="black"/>
                  <path d="M 392,208 L 392,256" fill="none" stroke="black"/>
                  <path d="M 432,160 L 432,200" fill="none" stroke="black"/>
                  <path d="M 448,256 L 448,272" fill="none" stroke="black"/>
                  <path d="M 480,96 L 480,208" fill="none" stroke="black"/>
                  <path d="M 520,208 L 520,256" fill="none" stroke="black"/>
                  <path d="M 208,32 L 384,32" fill="none" stroke="black"/>
                  <path d="M 88,48 L 104,48" fill="none" stroke="black"/>
                  <path d="M 168,48 L 192,48" fill="none" stroke="black"/>
                  <path d="M 192,64 L 368,64" fill="none" stroke="black"/>
                  <path d="M 328,80 L 464,80" fill="none" stroke="black"/>
                  <path d="M 24,128 L 128,128" fill="none" stroke="black"/>
                  <path d="M 248,128 L 328,128" fill="none" stroke="black"/>
                  <path d="M 168,144 L 248,144" fill="none" stroke="black"/>
                  <path d="M 328,144 L 416,144" fill="none" stroke="black"/>
                  <path d="M 24,160 L 128,160" fill="none" stroke="black"/>
                  <path d="M 248,160 L 328,160" fill="none" stroke="black"/>
                  <path d="M 208,208 L 368,208" fill="none" stroke="black"/>
                  <path d="M 392,208 L 520,208" fill="none" stroke="black"/>
                  <path d="M 208,240 L 368,240" fill="none" stroke="black"/>
                  <path d="M 64,256 L 184,256" fill="none" stroke="black"/>
                  <path d="M 392,256 L 520,256" fill="none" stroke="black"/>
                  <path d="M 184,272 L 448,272" fill="none" stroke="black"/>
                  <path d="M 48,288 L 168,288" fill="none" stroke="black"/>
                  <path d="M 224,304 L 360,304" fill="none" stroke="black"/>
                  <path d="M 120,320 L 216,320" fill="none" stroke="black"/>
                  <path d="M 224,336 L 360,336" fill="none" stroke="black"/>
                  <path d="M 208,32 C 199.16936,32 192,39.16936 192,48" fill="none" stroke="black"/>
                  <path d="M 88,48 C 79.16936,48 72,55.16936 72,64" fill="none" stroke="black"/>
                  <path d="M 368,64 C 376.83064,64 384,56.83064 384,48" fill="none" stroke="black"/>
                  <path d="M 328,80 C 319.16936,80 312,87.16936 312,96" fill="none" stroke="black"/>
                  <path d="M 464,80 C 472.83064,80 480,87.16936 480,96" fill="none" stroke="black"/>
                  <path d="M 24,128 C 15.16936,128 8,135.16936 8,144" fill="none" stroke="black"/>
                  <path d="M 128,128 C 136.83064,128 144,135.16936 144,144" fill="none" stroke="black"/>
                  <path d="M 416,144 C 424.83064,144 432,151.16936 432,160" fill="none" stroke="black"/>
                  <path d="M 24,160 C 15.16936,160 8,152.83064 8,144" fill="none" stroke="black"/>
                  <path d="M 128,160 C 136.83064,160 144,152.83064 144,144" fill="none" stroke="black"/>
                  <path d="M 64,256 C 55.16936,256 48,263.16936 48,272" fill="none" stroke="black"/>
                  <path d="M 168,288 C 176.83064,288 184,280.83064 184,272" fill="none" stroke="black"/>
                  <path d="M 120,320 C 111.16936,320 104,312.83064 104,304" fill="none" stroke="black"/>
                  <polygon class="arrowhead" points="440,200 428,194.4 428,205.6 " fill="black" transform="rotate(90,432,200)"/>
                  <polygon class="arrowhead" points="320,168 308,162.4 308,173.6 " fill="black" transform="rotate(270,312,168)"/>
                  <polygon class="arrowhead" points="320,120 308,114.4 308,125.6 " fill="black" transform="rotate(90,312,120)"/>
                  <polygon class="arrowhead" points="296,120 284,114.4 284,125.6 " fill="black" transform="rotate(90,288,120)"/>
                  <polygon class="arrowhead" points="272,200 260,194.4 260,205.6 " fill="black" transform="rotate(90,264,200)"/>
                  <polygon class="arrowhead" points="224,320 212,314.4 212,325.6 " fill="black" transform="rotate(0,216,320)"/>
                  <circle cx="72" cy="112" r="6" class="closeddot" fill="black"/>
                  <circle cx="72" cy="176" r="6" class="closeddot" fill="black"/>
                  <g class="text">
                    <text x="136" y="52">Enrol</text>
                    <text x="252" y="52">Provisioning</text>
                    <text x="340" y="52">Lockdown</text>
                    <text x="76" y="148">Verifier</text>
                    <text x="288" y="148">Secured</text>
                    <text x="72" y="212">Blocklist</text>
                    <text x="248" y="228">Non-PSA</text>
                    <text x="296" y="228">RoT</text>
                    <text x="336" y="228">Debug</text>
                    <text x="448" y="228">Recoverable</text>
                    <text x="416" y="244">PSA</text>
                    <text x="448" y="244">RoT</text>
                    <text x="488" y="244">Debug</text>
                    <text x="120" y="276">Terminate</text>
                    <text x="292" y="324">Decommissioned</text>
                  </g>
                </svg>
              </artwork>
              <artwork type="ascii-art"><![CDATA[
                        .----------------------.
         .--- Enrol ---+ Provisioning Lockdown |
        |              '-----------+----------'
        |                          |   .------------------.
        |                          |  |                    |
        *                          v  v                    |
 .--------------.             .---------.                  |
|    Verifier    |  .---------+ Secured +-----------.      |
 '--------------'   |         '-+-------'            |     |
        *           |           |     ^              |     |
        |           |           v     |              v     |
    Blocklist       |    .------------+------.  .----------+----.
        |           |    | 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 loaded by the PSA RoT. This claim SHALL 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="I-D.ietf-rats-architecture"/>, a relying party
will typically see the result of the verification process from the Verifier in
form of an attestation result, rather than the "naked" 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:</t>
            <ul spacing="normal">
              <li>"BL": a Boot Loader</li>
              <li>"PRoT": a component of the PSA Root of Trust</li>
              <li>"ARoT": a component of the Application Root of Trust</li>
              <li>"App": a component of the NSPE application</li>
              <li>"TS": a component of a Trusted Subsystem</li>
            </ul>
          </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>profile</tt> (claim key 265) is used.  The following constraints
apply to its type:</t>
          <ul spacing="normal">
            <li>The URI encoding MUST be used.</li>
            <li>The value MUST be <tt>http://arm.com/psa/2.0.0</tt>.</li>
          </ul>
          <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 = "http://arm.com/psa/2.0.0"

psa-profile = (
    profile-label => psa-profile-type
)
]]></artwork>
        </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">http://arm.com/psa/2.0.0</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>the "Boot Seed" claim is now optional and variable length (see
<xref target="sec-boot-seed"/>),</li>
        <li>the "No Software Measurements" claim has been retired,</li>
        <li>the "Certification Reference" syntax changed from EAN-13 to EAN-13+5 (see
<xref target="sec-certification-reference"/>).</li>
      </ul>
      <t>Unless compatibility with existing infrastructure is a concern, emitters (e.g.,
devices that implement the PSA Attestation API) SHOULD produce tokens with
the claim keys specified in this document.</t>
      <t>To simplify the transition to the token format described in this
document it is RECOMMENDED that receivers (e.g., PSA Attestation Verifiers)
accept tokens encoded according to the old profile (<tt>PSA_IOT_PROFILE_1</tt>) as well as
to the new profile (<tt>http://arm.com/psa/2.0.0</tt>), at least for the time needed to
their clients to upgrade.</t>
    </section>
    <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.</t>
      <t>Cryptographic protection is obtained by wrapping the <tt>psa-token</tt> map in a COSE
Web Token (CWT) <xref target="RFC8392"/>.  For asymmetric key algorithms, the signature
structure MUST be COSE_Sign1.  For symmetric key algorithms, the signature
structure MUST be COSE_Mac0.</t>
      <t>Acknowledging the variety of markets, regulations and use cases in which the
PSA attestation token can be used, this specification does not impose any
strong requirement on the cryptographic algorithms that need to be supported by
Attesters and Verifiers.  It is assumed that the flexibility provided by the
COSE format is sufficient to deal with the level of cryptographic agility
needed to adapt to specific use cases.  For interoperability considerations, it
is RECOMMENDED that commonly adopted algorithms are used, such as those
discussed in <xref target="COSE-ALGS"/>).  It is expected that receivers (Verifiers and
Relying Parties) 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>
    </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 10.2 and 10.3 of
<xref target="I-D.ietf-rats-architecture"/>) 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>
    </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 = "http://arm.com/psa/2.0.0"

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="implementation-status">
      <name>Implementation Status</name>
      <t>Implementations of this specification are provided by the Trusted
Firmware-M project <xref target="TF-M"/>, the Veraison project <xref target="Veraison"/>, and the Xclaim
<xref target="Xclaim"/> library.  All three 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>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"/>.  In particular, the Instance
ID claim is used (together with the kid in the COSE header, if present)
to assist in locating the public key used to verify the signature covering the CWT token.
The key used for verification is supplied to the Verifier by an authorized
Endorser along with the corresponding Attester's Instance ID.</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>Implementation ID - the value of the Implementation ID can be used to
identify the verification requirements of the deployment.</li>
        <li>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.</li>
        <li>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.</li>
        <li>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.</li>
      </ul>
      <t>The protocol used to convey Endorsements and Reference Values to the Verifier
is not in scope for this document.</t>
    </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 has registered the following claims 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>Claim Name: psa-client-id</li>
            <li>Claim Description: PSA Client ID</li>
            <li>JWT Claim Name: N/A</li>
            <li>Claim Key: 2394</li>
            <li>Claim Value Type(s): signed integer</li>
            <li>Change Controller: Hannes Tschofenig</li>
            <li>Specification Document(s): <xref target="sec-client-id"/> of RFCthis</li>
          </ul>
        </section>
        <section anchor="security-lifecycle-claim">
          <name> Security Lifecycle Claim</name>
          <ul spacing="normal">
            <li>Claim Name: psa-security-lifecycle</li>
            <li>Claim Description: PSA Security Lifecycle</li>
            <li>JWT Claim Name: N/A</li>
            <li>Claim Key: 2395</li>
            <li>Claim Value Type(s): unsigned integer</li>
            <li>Change Controller: Hannes Tschofenig</li>
            <li>Specification Document(s): <xref target="sec-security-lifecycle"/> of RFCthis</li>
          </ul>
        </section>
        <section anchor="implementation-id-claim">
          <name> Implementation ID Claim</name>
          <ul spacing="normal">
            <li>Claim Name: psa-implementation-id</li>
            <li>Claim Description: PSA Implementation ID</li>
            <li>JWT Claim Name: N/A</li>
            <li>Claim Key: 2396</li>
            <li>Claim Value Type(s): byte string</li>
            <li>Change Controller: Hannes Tschofenig</li>
            <li>Specification Document(s): <xref target="sec-implementation-id"/> of RFCthis</li>
          </ul>
        </section>
        <section anchor="boot-seed-claim">
          <name> Boot Seed Claim</name>
          <ul spacing="normal">
            <li>Claim Name: psa-boot-seed</li>
            <li>Claim Description: PSA Boot Seed</li>
            <li>JWT Claim Name: N/A</li>
            <li>Claim Key: 2397</li>
            <li>Claim Value Type(s): byte string</li>
            <li>Change Controller: Hannes Tschofenig</li>
            <li>Specification Document(s): <xref target="sec-boot-seed"/> of RFCthis</li>
          </ul>
        </section>
        <section anchor="certification-reference-claim">
          <name> Certification Reference Claim</name>
          <ul spacing="normal">
            <li>Claim Name: psa-certification-reference</li>
            <li>Claim Description: PSA Certification Reference</li>
            <li>JWT Claim Name: N/A</li>
            <li>Claim Key: 2398</li>
            <li>Claim Value Type(s): text string</li>
            <li>Change Controller: Hannes Tschofenig</li>
            <li>Specification Document(s): <xref target="sec-certification-reference"/> of RFCthis</li>
          </ul>
        </section>
        <section anchor="software-components-claim">
          <name> Software Components Claim</name>
          <ul spacing="normal">
            <li>Claim Name: psa-software-components</li>
            <li>Claim Description: PSA Software Components</li>
            <li>JWT Claim Name: N/A</li>
            <li>Claim Key: 2399</li>
            <li>Claim Value Type(s): array</li>
            <li>Change Controller: Hannes Tschofenig</li>
            <li>Specification Document(s): <xref target="sec-sw-components"/> of RFCthis</li>
          </ul>
        </section>
        <section anchor="verification-service-indicator-claim">
          <name> Verification Service Indicator Claim</name>
          <ul spacing="normal">
            <li>Claim Name: psa-verification-service-indicator</li>
            <li>Claim Description: PSA Verification Service Indicator</li>
            <li>JWT Claim Name: N/A</li>
            <li>Claim Key: 2400</li>
            <li>Claim Value Type(s): text string</li>
            <li>Change Controller: Hannes Tschofenig</li>
            <li>Specification Document(s): <xref target="sec-verification-service-indicator"/> of RFCthis</li>
          </ul>
        </section>
      </section>
      <section anchor="sec-iana-media-types">
        <name>Media Type Registration</name>
        <t>IANA is requested to register the "application/psa-attestation-token" media
type <xref target="RFC2046"/> in the "Media Types" registry <xref target="IANA-MediaTypes"/> in the
manner described in RFC 6838 <xref target="RFC6838"/>, which can be used to indicate that
the content is a PSA Attestation Token.</t>
        <ul spacing="normal">
          <li>Type name: application</li>
          <li>Subtype name: psa-attestation-token</li>
          <li>Required parameters: n/a</li>
          <li>Optional parameters: n/a</li>
          <li>Encoding considerations: binary</li>
          <li>Security considerations: See the Security Considerations section
of RFCthis</li>
          <li>Interoperability considerations: n/a</li>
          <li>Published specification: RFCthis</li>
          <li>Applications that use this media type: Attesters and Relying Parties sending
PSA attestation tokens over HTTP(S), CoAP(S), and other transports.</li>
          <li>Fragment identifier considerations: n/a</li>
          <li>
            <t>Additional information:  </t>
            <ul spacing="normal">
              <li>Magic number(s): n/a</li>
              <li>File extension(s): n/a</li>
              <li>Macintosh file type code(s): n/a</li>
            </ul>
          </li>
          <li>Person &amp; email address to contact for further information:
Hannes Tschofenig, Hannes.Tschofenig@arm.com</li>
          <li>Intended usage: COMMON</li>
          <li>Restrictions on usage: none</li>
          <li>Author: Hannes Tschofenig, Hannes.Tschofenig@arm.com</li>
          <li>Change controller: IESG</li>
          <li>Provisional registration?  No</li>
        </ul>
      </section>
      <section anchor="sec-iana-coap-content-format">
        <name>CoAP Content-Formats Registration</name>
        <t>IANA is requested to register the CoAP Content-Format ID for the
"application/psa-attestation-token" media type in the "CoAP Content-Formats"
registry <xref target="IANA-CoAP-Content-Formats"/>.</t>
        <section anchor="registry-contents">
          <name>Registry Contents</name>
          <ul spacing="normal">
            <li>Media Type: application/psa-attestation-token</li>
            <li>Encoding: -</li>
            <li>Id: [[To-be-assigned by IANA]]</li>
            <li>Reference: RFCthis</li>
          </ul>
        </section>
      </section>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <reference anchor="PSA-SM" target="https://developer.arm.com/-/media/Files/pdf/PlatformSecurityArchitecture/Architect/DEN0079_PSA_SM_ALPHA-03_RC01.pdf">
          <front>
            <title>Platform Security Architecture Security Model 1.0 (PSA-SM)</title>
            <author>
              <organization>Arm</organization>
            </author>
            <date year="2019" month="February"/>
          </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/-/media/Files/pdf/PlatformSecurityArchitecture/Architect/DEN0063-PSA_Firmware_Framework-1.0.0-2.pdf">
          <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">
              <organization/>
            </author>
            <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">
              <organization/>
            </author>
            <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="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner">
              <organization/>
            </author>
            <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">
              <organization/>
            </author>
            <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">
              <organization/>
            </author>
            <author fullname="C. Vigano" initials="C." surname="Vigano">
              <organization/>
            </author>
            <author fullname="C. Bormann" initials="C." surname="Bormann">
              <organization/>
            </author>
            <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="I-D.ietf-rats-eat">
          <front>
            <title>The Entity Attestation Token (EAT)</title>
            <author fullname="Laurence Lundblade">
              <organization>Security Theory LLC</organization>
            </author>
            <author fullname="Giridhar Mandyam">
              <organization>Qualcomm Technologies Inc.</organization>
            </author>
            <author fullname="Jeremy O'Donoghue">
              <organization>Qualcomm Technologies Inc.</organization>
            </author>
            <date day="10" month="July" year="2022"/>
            <abstract>
              <t>   An Entity Attestation Token (EAT) provides an attested claims set
   that describes state and characteristics of an entity, a device like
   a phone, IoT device, network equipment or such.  This claims set is
   used by a relying party, server or service to determine how much it
   wishes to trust the entity.

   An EAT is either a CBOR Web Token (CWT) or JSON Web Token (JWT) with
   attestation-oriented claims.  To a large degree, all this document
   does is extend CWT and JWT.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-rats-eat-14"/>
        </reference>
        <reference anchor="RFC8949">
          <front>
            <title>Concise Binary Object Representation (CBOR)</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann">
              <organization/>
            </author>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman">
              <organization/>
            </author>
            <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">
              <organization/>
            </author>
            <author fullname="E. Wahlstroem" initials="E." surname="Wahlstroem">
              <organization/>
            </author>
            <author fullname="S. Erdtman" initials="S." surname="Erdtman">
              <organization/>
            </author>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig">
              <organization/>
            </author>
            <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>
        <reference anchor="RFC2046">
          <front>
            <title>Multipurpose Internet Mail Extensions (MIME) Part Two: Media Types</title>
            <author fullname="N. Freed" initials="N." surname="Freed">
              <organization/>
            </author>
            <author fullname="N. Borenstein" initials="N." surname="Borenstein">
              <organization/>
            </author>
            <date month="November" year="1996"/>
            <abstract>
              <t>This second document defines the general structure of the MIME media typing system and defines an initial set of media types.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2046"/>
          <seriesInfo name="DOI" value="10.17487/RFC2046"/>
        </reference>
        <reference anchor="RFC6838">
          <front>
            <title>Media Type Specifications and Registration Procedures</title>
            <author fullname="N. Freed" initials="N." surname="Freed">
              <organization/>
            </author>
            <author fullname="J. Klensin" initials="J." surname="Klensin">
              <organization/>
            </author>
            <author fullname="T. Hansen" initials="T." surname="Hansen">
              <organization/>
            </author>
            <date month="January" year="2013"/>
            <abstract>
              <t>This document defines procedures for the specification and registration of media types for use in HTTP, MIME, and other Internet protocols.  This memo documents an Internet Best Current Practice.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="13"/>
          <seriesInfo name="RFC" value="6838"/>
          <seriesInfo name="DOI" value="10.17487/RFC6838"/>
        </reference>
      </references>
      <references>
        <name>Informative References</name>
        <reference anchor="IANA-MediaTypes" target="http://www.iana.org/assignments/media-types">
          <front>
            <title>Media Types</title>
            <author>
              <organization>IANA</organization>
            </author>
            <date year="2022"/>
          </front>
        </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="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://developer.arm.com/-/media/Files/pdf/PlatformSecurityArchitecture/Implement/IHI0085-PSA_Attestation_API-1.0.2.pdf">
          <front>
            <title>PSA Attestation API 1.0</title>
            <author>
              <organization>Arm</organization>
            </author>
            <date year="2019"/>
          </front>
        </reference>
        <reference anchor="I-D.ietf-rats-architecture">
          <front>
            <title>Remote Attestation Procedures Architecture</title>
            <author fullname="Henk Birkholz">
              <organization>Fraunhofer SIT</organization>
            </author>
            <author fullname="Dave Thaler">
              <organization>Microsoft</organization>
            </author>
            <author fullname="Michael Richardson">
              <organization>Sandelman Software Works</organization>
            </author>
            <author fullname="Ned Smith">
              <organization>Intel Corporation</organization>
            </author>
            <author fullname="Wei Pan">
              <organization>Huawei Technologies</organization>
            </author>
            <date day="16" month="August" year="2022"/>
            <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.
   An attempt is made to provide for a model that is neutral toward
   processor architectures, the content of claims, and protocols.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-rats-architecture-21"/>
        </reference>
      </references>
    </references>
    <section anchor="example">
      <name>Example</name>
      <t>The following example shows a PSA attestation token for an hypothetical system
comprising two measured software components (a boot loader and a trusted RTOS).
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>
      <artwork><![CDATA[
{
  / eat_profile /             265: "http://arm.com/psa/2.0.0",
  / psa-client-id /          2394: 2147483647,
  / psa-security-lifecycle / 2395: 12288,
  / psa-implementation-id /  2396: h'000000000000000000000000000
0000000000000000000000000000000000000',
  / psa-boot-seed /          2397: h'0000000000000000',
  / psa-certification-reference / 2398: "1234567890123-12345",
  / psa-software-components / 2399: [
    {
      / measurement value / 2: h'0303030303030303030303030303030
303030303030303030303030303030303',
      / signer ID /         5: h'0404040404040404040404040404040
404040404040404040404040404040404'
    }
  ],
  / nonce /     10: h'010101010101010101010101010101010101010101
0101010101010101010101',
  / ueid /     256: h'010202020202020202020202020202020202020202
020202020202020202020202',
  / psa-vsi / 2400: "https://veraison.example/v1/challenge-respo
nse"
}
]]></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",
  "x": "MKBCTNIcKUSDii11ySs3526iDZ8AiTo7Tu6KPAqv7D4",
  "y": "4Etl6SRW2YiLUrN5vfvVHuhp7x8PxltmWWlbbM4IFyM",
  "d": "870MB6gfuTJ4HtUnUvYMyJpr5eUZNP4Bk43bVdj3eAE"
}

]]></artwork>
      <t>The resulting COSE object is:</t>
      <artwork><![CDATA[
18(
  [
    / protected /   h'A10126',
    / unprotected / {},
    / payload /     h'AA1901097818687474703A2F2F61726D2E636F6D2F
7073612F322E302E3019095A1A7FFFFFFF19095B19300019095C582000000000
0000000000000000000000000000000000000000000000000000000019095D48
000000000000000019095E73313233343536373839303132332D313233343519
095F81A202582003030303030303030303030303030303030303030303030303
0303030303030305582004040404040404040404040404040404040404040404
040404040404040404040A582001010101010101010101010101010101010101
0101010101010101010101010119010058210102020202020202020202020202
02020202020202020202020202020202020202190960782E68747470733A2F2F
7665726169736F6E2E6578616D706C652F76312F6368616C6C656E67652D7265
73706F6E7365',
    / signature /   h'56F50D131FA83979AE064E76E70DC75C070B6D991A
EC08ADF9F41CAB7F1B7E2C47F67DACA8BB49E3119B7BAE77AEC6C89162713E0C
C6D0E7327831E67F32841A'
  ]
)
]]></artwork>
    </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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
Gq4h/j89ssyO2JYAAA==

-->

</rfc>
