<?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-11" 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-11"/>
    <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>Arm Limited</organization>
      <address>
        <email>Thomas.Fossati@arm.com</email>
      </address>
    </author>
    <date year="2023" month="February" day="28"/>
    <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 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>
    <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="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 (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>"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>
            <t>The same labels with a "-config" postfix (e.g., "PRoT-config") MAY be used for
configuration measurements.</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>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 <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>
    </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>
      <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="endorsements-reference-values-and-verification-key-material">
        <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>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>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="I-D.ietf-rats-eat-media-type"/> with the <tt>eat_profile</tt> parameter set to
<tt>http://arm.com/psa/2.0.0</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>One for the <tt>application/eat-cwt</tt> media type with the <tt>eat_profile</tt> parameter
equal to <tt>http://arm.com/psa/2.0.0</tt></li>
          <li>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></li>
        </ul>
        <section anchor="registry-contents">
          <name>Registry Contents</name>
          <ul spacing="normal">
            <li>Media Type: <tt>application/eat-cwt; eat_profile="http://arm.com/psa/2.0.0"</tt></li>
            <li>Encoding: -</li>
            <li>Id: [[To-be-assigned by IANA]]</li>
            <li>Reference: RFCthis</li>
            <li>Media Type: <tt>application/eat-cwt; eat_profile="PSA_IOT_PROFILE_1"</tt></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" initials="L." surname="Lundblade">
              <organization>Security Theory LLC</organization>
            </author>
            <author fullname="Giridhar Mandyam" initials="G." surname="Mandyam">
              <organization>Qualcomm Technologies Inc.</organization>
            </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="19" month="December" 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 smartphone, 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.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-rats-eat-19"/>
        </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="I-D.ietf-rats-eat-media-type">
          <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>arm</organization>
            </author>
            <date day="19" month="October" year="2022"/>
            <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-01"/>
        </reference>
      </references>
      <references>
        <name>Informative References</name>
        <reference anchor="RFC9334">
          <front>
            <title>Remote ATtestation procedureS (RATS) Architecture</title>
            <author fullname="H. Birkholz" initials="H." surname="Birkholz">
              <organization/>
            </author>
            <author fullname="D. Thaler" initials="D." surname="Thaler">
              <organization/>
            </author>
            <author fullname="M. Richardson" initials="M." surname="Richardson">
              <organization/>
            </author>
            <author fullname="N. Smith" initials="N." surname="Smith">
              <organization/>
            </author>
            <author fullname="W. Pan" initials="W." surname="Pan">
              <organization/>
            </author>
            <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="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="PSA-Endorsements">
          <front>
            <title>Arm's Platform Security Architecture (PSA) Attestation Verifier Endorsements</title>
            <author fullname="Thomas Fossati" initials="T." surname="Fossati">
              <organization>Arm Ltd</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="11" month="May" year="2022"/>
            <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-01"/>
        </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="6" month="September" year="2022"/>
            <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 Concise Reference Integrity Manifests (CoRIM) that
   represent Endorsements and Reference Values in CBOR format.
   Composite devices or systems are represented by a collection of
   Concise Module Identifiers (CoMID) and Concise Software Identifiers
   (CoSWID) bundled in a CoRIM document.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-rats-corim-00"/>
        </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="6" month="September" year="2022"/>
            <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-03"/>
        </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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
l8Gi98fCwsk7r4LBJqNuM6fZkDS0me9sqBn6MmgdbIKWcxPw92RBm1LhKxlS
hc68mSNVJE5tZkkVxVpeBq/DTfCihOjfkxEVrYIq+DxznWMjqJ5JhtsItWeu
u74EgJjn9Yci3DN3b9fhKi8wM5RrSxTUGVNou5w+ShEPNaQbUcEbEPzSAG25
89WN8sUF0lfqwn37NLsqM45svnO+2QXz1Rs95O84w1WWMlxF1TspnMXim3a1
tfvOufv0zr5DhxwgaG5uvNsgtwG5Kq5LcE1bJ5SkrhmIpy5ecO3mTTccd1gD
r8jLzZ44nKrk3A3aqPbE4Uu2KtN/8X0RRsOE70VpGVa11LfJsZVXavX4SH7z
17G9f/3sqT53UEJK2Amr7ZsPC2btq9c2fObMMJ9FEjtzxR1JurV8rcGiQJEh
ABziOqpcx/92b+R9vTnNDPdlbsccSQ8/no2P5E8/3SbekHKSTPEEPJWff8YW
RjgeuTT/6cta2/Pvuh7P8+j+LppfA/YulCvSaD8svgE723R7mL3OsZytFogA
GFKPVPU3gQSWhlw4CzBfRYbHldXGtn0u9KZeIsVFhXUViuvb1zc77BxcqxXO
hWv9tarHT2raQhW6VY4ad1fObT1NwvymAP3WlTTIlBuQC5HQ+5K54CRg7657
iPDJ/Wl394+eyGqsU/diiqwzAFpzINxMUq5tXlE6epdMmyPZarcPDmzL9YzS
XRq4eyRnW83NP+KJ7+zPlp3Ipi8Xd9Crmsjptykrl/ZzANBrtTt7+93ewWET
/vLokwO4qhwx6noIVEL5VR9UltVuoeASu5SgJS2v8+SvePpr+KX98CSZiUZZ
OOzTJHtP/oqnv4Zfrrb6CP/9mffP+bY8TatJc7Re+iuqH6uDwZxfNXB7v6tG
br/sV2z6wjn0+yxE2IPapsgjA/q4V1lkDcWGdu9bu+adYR7lFYg4C2rikZPg
kI6/+/F7W4+JyVnHifvfO4W0MIpiUiIw9YLzk+ydu4QqSczc6nVh5lB57S5f
1WCxg2NCvtoovcePVx7Ah5+8x88X3786vr08G33/5uYkDFut1U3W2W93w5P/
OOiHt0nvdtn9/qr/t/veyR73okH3BnnUvbn+sf2X8PxNerl/P7n/4dvlbNF7
f3D1PsrnP/4YDYcXe2enqwvuNcZeB73mxavudLK8/W7v2/xN/Ob+Lxer7xbp
fvDmPy6v9l7d7XWGP4z/2gn6A4SZBRrHYegNcwgKfrmi3W7rABMZmXh2Hc8y
4sNsqw9Y0u4qhAdMid0GHx7184W/QsaukAi69VtAwM3D3kHroHvQA5bWa3b6
7dP2abfVa3dP2oNup3sK/56KXrPX6bbap512e9Bp4v+h6+F+v9XvnfIPfX7V
OsQEafr7eP+g/Ymsq+KHhjrZO1gbgL4Y9DqdVqfd6XT2OvudbqfXOejACvhZ
+8R+1zoU0Pz0oNUHpKeFPcs/yr+i9GCfhnmWQ9hfUfm4T8N8Dn/AXzrIJgzV
eoopbGQDxV8EbbfZO4DzV1gBYCa8EL1udx9Qo9U97CFqDKDJfu8APp/0mt3j
7n77tNftAJ4A4uDTY3zWHXR78M1JD6/w9DrQEDpC932DsDZPivF5v3u63zxp
dVqnfTjP3mF/0OzuDXrQq3ly3Ns/bvaar7onh4etvhgcNw/6J6eHp3ut4/6r
3mnrVW/QPt7rnXZ7J/3j/sGrV3uHgw7A51XvVX/Q6/UHsKaDw1a33Wt1Bs1j
cdw9acJq2r2DTgsWChh+sNfqI1+3NQqlvd/LiTUfjvhFO8H469rEj4ABUtzE
j+8oq+PYT0Flwfe2ou+btbNZEC2suk2vkUT16jIEEzcCbefHJGG+GI5BJAqu
5jpXMeH/B6GR6d3dnAAA

-->

</rfc>
