<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.5 (Ruby 3.2.2) -->
<?rfc rfcedstyle="yes"?>
<?rfc tocindent="yes"?>
<?rfc strict="yes"?>
<?rfc comments="yes"?>
<?rfc text-list-symbols="-o*+"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-tschofenig-rats-psa-token-21" category="info" submissionType="independent" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.19.3 -->
  <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-21"/>
    <author initials="H." surname="Tschofenig" fullname="Hannes Tschofenig">
      <organization/>
      <address>
        <email>Hannes.Tschofenig@gmx.net</email>
      </address>
    </author>
    <author initials="S." surname="Frost" fullname="Simon Frost">
      <organization>Arm Limited</organization>
      <address>
        <email>Simon.Frost@arm.com</email>
      </address>
    </author>
    <author initials="M." surname="Brossard" fullname="Mathias Brossard">
      <organization>Arm Limited</organization>
      <address>
        <email>Mathias.Brossard@arm.com</email>
      </address>
    </author>
    <author initials="A." surname="Shaw" fullname="Adrian Shaw">
      <organization>HP Labs</organization>
      <address>
        <email>adrianlshaw@acm.org</email>
      </address>
    </author>
    <author initials="T." surname="Fossati" fullname="Thomas Fossati">
      <organization>Linaro</organization>
      <address>
        <email>thomas.fossati@linaro.org</email>
      </address>
    </author>
    <date year="2024" month="February" day="19"/>
    <area/>
    <workgroup/>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <?line 170?>

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

<section anchor="introduction">
      <name>Introduction</name>
      <t>The Platform Security Architecture (PSA) <xref target="PSA"/> is a set of hardware and firmware
specifications, backed by reference implementations and a security
certification program <xref target="PSACertified"/>.  The security specifications have been published by Arm,
while the certification program and reference implementations are the result of
a collaborative effort by companies from multiple sectors, including evaluation
laboratories, IP semiconductor vendors and security consultancies.  The main objective of
the PSA initiative is to assist device manufacturers and chip makers in
incorporating best-practice security measures into their products.</t>
      <t>Many devices now have trusted execution environments that provide a safe
space for security-sensitive code, such as cryptography, secure boot, secure
storage, and other essential security functions.  These security
functions are typically exposed through a narrow and well-defined interface,
and can be used by operating system libraries and applications.</t>
      <t>As outlined in the RATS Architecture <xref target="RFC9334"/>, an Attester produces a signed collection
of Claims that constitutes Evidence about its target environment. This document focuses
on the output provided by PSA's Initial Attestation API <xref target="PSA-API"/>. This output
corresponds to Evidence in <xref target="RFC9334"/> and, as a design decision, the PSA attestation token
is a profile of the Entity Attestation Token (EAT) <xref target="EAT"/>. Note that there are other profiles
of EAT available, such as <xref target="I-D.kdyxy-rats-tdx-eat-profile"/> and <xref target="I-D.mandyam-rats-qwestoken"/>,
for use with different use cases and by different attestation technologies.</t>
      <t>Since the PSA 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>
      <t>This document was published via the IETF Independent RFC Stream, see <xref target="RFC8730"/> and <xref target="RFC9280"/>.</t>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL
NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED",
"MAY", and "OPTIONAL" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.
<?line -6?>
      </t>
      <t>The terms Attester, Relying Party, Verifier, Attestation Result, Target Environment, Attesting Environment and Evidence
are defined in <xref target="RFC9334"/>. We use the term "receiver" to refer to Relying Parties
and Verifiers.</t>
      <t>We use the terms Evidence, "PSA attestation token", and "PSA token" interchangeably.
The terms "sender" and Attester are used interchangeably. Likewise, we use the terms
Verifier and "verification service" interchangeably.</t>
      <dl newline="true">
        <dt>RoT:</dt>
        <dd>
          <t>Root of Trust, the minimal set of software, hardware and data that has to be
implicitly trusted in the platform - there is no software or hardware at a
deeper level that can verify that the Root of Trust is authentic and
unmodified.  An example of RoT is an initial bootloader in ROM, which contains
cryptographic functions and credentials, running on a specific hardware
platform.</t>
        </dd>
        <dt>SPE:</dt>
        <dd>
          <t>Secure Processing Environment, a platform's processing environment for
software that provides confidentiality and integrity for its runtime state,
from software and hardware, outside of the SPE. Contains trusted code and
trusted hardware.  (Equivalent to Trusted Execution Environment (TEE),
"secure world", or "secure enclave".)</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,
real-time operating systems, applications and general hardware.  (Equivalent to Rich Execution
Environment (REE), or "normal world".)</t>
        </dd>
      </dl>
      <t>In this document, the structure of data is specified in Concise Data Definition Language (CDDL) <xref target="RFC8610"/>.</t>
    </section>
    <section anchor="psa-attester-model">
      <name>PSA Attester Model</name>
      <t><xref target="fig-psa-attester"/> outlines the structure of the PSA Attester according to
the conceptual model described in <xref section="3.1" sectionFormat="of" target="RFC9334"/>.</t>
      <figure anchor="fig-psa-attester">
        <name>PSA Attester</name>
        <artset>
          <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="496" width="560" viewBox="0 0 560 496" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 8,144 L 8,432" fill="none" stroke="black"/>
              <path d="M 24,160 L 24,272" fill="none" stroke="black"/>
              <path d="M 24,304 L 24,416" fill="none" stroke="black"/>
              <path d="M 40,336 L 40,384" fill="none" stroke="black"/>
              <path d="M 96,304 L 96,336" fill="none" stroke="black"/>
              <path d="M 144,336 L 144,384" fill="none" stroke="black"/>
              <path d="M 160,192 L 160,256" fill="none" stroke="black"/>
              <path d="M 160,336 L 160,384" fill="none" stroke="black"/>
              <path d="M 208,256 L 208,336" fill="none" stroke="black"/>
              <path d="M 264,192 L 264,256" fill="none" stroke="black"/>
              <path d="M 272,336 L 272,384" fill="none" stroke="black"/>
              <path d="M 288,336 L 288,384" fill="none" stroke="black"/>
              <path d="M 304,208 L 304,240" fill="none" stroke="black"/>
              <path d="M 328,288 L 328,336" fill="none" stroke="black"/>
              <path d="M 368,208 L 368,240" fill="none" stroke="black"/>
              <path d="M 400,336 L 400,384" fill="none" stroke="black"/>
              <path d="M 408,192 L 408,256" fill="none" stroke="black"/>
              <path d="M 416,336 L 416,384" fill="none" stroke="black"/>
              <path d="M 424,32 L 424,64" fill="none" stroke="black"/>
              <path d="M 464,72 L 464,192" fill="none" stroke="black"/>
              <path d="M 464,304 L 464,336" fill="none" stroke="black"/>
              <path d="M 512,32 L 512,64" fill="none" stroke="black"/>
              <path d="M 520,192 L 520,256" fill="none" stroke="black"/>
              <path d="M 520,336 L 520,384" fill="none" stroke="black"/>
              <path d="M 536,160 L 536,272" fill="none" stroke="black"/>
              <path d="M 536,304 L 536,416" fill="none" stroke="black"/>
              <path d="M 552,144 L 552,432" fill="none" stroke="black"/>
              <path d="M 424,32 L 512,32" fill="none" stroke="black"/>
              <path d="M 424,64 L 512,64" fill="none" stroke="black"/>
              <path d="M 8,144 L 456,144" fill="none" stroke="black"/>
              <path d="M 472,144 L 552,144" fill="none" stroke="black"/>
              <path d="M 24,160 L 456,160" fill="none" stroke="black"/>
              <path d="M 472,160 L 536,160" fill="none" stroke="black"/>
              <path d="M 160,192 L 264,192" fill="none" stroke="black"/>
              <path d="M 320,192 L 352,192" fill="none" stroke="black"/>
              <path d="M 408,192 L 520,192" fill="none" stroke="black"/>
              <path d="M 264,224 L 296,224" fill="none" stroke="black"/>
              <path d="M 376,224 L 408,224" fill="none" stroke="black"/>
              <path d="M 160,256 L 264,256" fill="none" stroke="black"/>
              <path d="M 320,256 L 352,256" fill="none" stroke="black"/>
              <path d="M 408,256 L 520,256" fill="none" stroke="black"/>
              <path d="M 24,272 L 200,272" fill="none" stroke="black"/>
              <path d="M 216,272 L 536,272" fill="none" stroke="black"/>
              <path d="M 112,288 L 448,288" fill="none" stroke="black"/>
              <path d="M 24,304 L 88,304" fill="none" stroke="black"/>
              <path d="M 104,304 L 200,304" fill="none" stroke="black"/>
              <path d="M 216,304 L 320,304" fill="none" stroke="black"/>
              <path d="M 336,304 L 456,304" fill="none" stroke="black"/>
              <path d="M 472,304 L 536,304" fill="none" stroke="black"/>
              <path d="M 40,336 L 88,336" fill="none" stroke="black"/>
              <path d="M 104,336 L 144,336" fill="none" stroke="black"/>
              <path d="M 160,336 L 200,336" fill="none" stroke="black"/>
              <path d="M 216,336 L 272,336" fill="none" stroke="black"/>
              <path d="M 288,336 L 320,336" fill="none" stroke="black"/>
              <path d="M 336,336 L 400,336" fill="none" stroke="black"/>
              <path d="M 416,336 L 456,336" fill="none" stroke="black"/>
              <path d="M 472,336 L 520,336" fill="none" stroke="black"/>
              <path d="M 40,384 L 144,384" fill="none" stroke="black"/>
              <path d="M 160,384 L 272,384" fill="none" stroke="black"/>
              <path d="M 288,384 L 400,384" fill="none" stroke="black"/>
              <path d="M 416,384 L 520,384" fill="none" stroke="black"/>
              <path d="M 24,416 L 536,416" fill="none" stroke="black"/>
              <path d="M 8,432 L 552,432" fill="none" stroke="black"/>
              <path d="M 112,464 L 136,464" fill="none" stroke="black"/>
              <path d="M 216,464 L 240,464" fill="none" stroke="black"/>
              <path d="M 328,464 L 344,464" fill="none" stroke="black"/>
              <path d="M 320,192 C 311.16936,192 304,199.16936 304,208" fill="none" stroke="black"/>
              <path d="M 352,192 C 360.83064,192 368,199.16936 368,208" fill="none" stroke="black"/>
              <path d="M 320,256 C 311.16936,256 304,248.83064 304,240" fill="none" stroke="black"/>
              <path d="M 352,256 C 360.83064,256 368,248.83064 368,240" fill="none" stroke="black"/>
              <path d="M 112,288 C 103.16936,288 96,295.16936 96,304" fill="none" stroke="black"/>
              <path d="M 448,288 C 456.83064,288 464,295.16936 464,304" fill="none" stroke="black"/>
              <polygon class="arrowhead" points="472,72 460,66.4 460,77.6" fill="black" transform="rotate(270,464,72)"/>
              <polygon class="arrowhead" points="384,224 372,218.4 372,229.6" fill="black" transform="rotate(180,376,224)"/>
              <polygon class="arrowhead" points="304,224 292,218.4 292,229.6" fill="black" transform="rotate(0,296,224)"/>
              <polygon class="arrowhead" points="248,464 236,458.4 236,469.6" fill="black" transform="rotate(0,240,464)"/>
              <polygon class="arrowhead" points="144,464 132,458.4 132,469.6" fill="black" transform="rotate(0,136,464)"/>
              <circle cx="96" cy="336" r="6" class="opendot" fill="white" stroke="black"/>
              <circle cx="208" cy="336" r="6" class="opendot" fill="white" stroke="black"/>
              <circle cx="328" cy="336" r="6" class="opendot" fill="white" stroke="black"/>
              <circle cx="352" cy="464" r="6" class="opendot" fill="white" stroke="black"/>
              <circle cx="464" cy="336" r="6" class="opendot" fill="white" stroke="black"/>
              <g class="text">
                <text x="468" y="52">Verifier</text>
                <text x="392" y="116">PSA</text>
                <text x="432" y="116">Token</text>
                <text x="72" y="180">Attesting</text>
                <text x="160" y="180">Environment</text>
                <text x="188" y="212">Main</text>
                <text x="332" y="212">Main</text>
                <text x="448" y="212">Initial</text>
                <text x="212" y="228">Bootloader</text>
                <text x="332" y="228">Boot</text>
                <text x="464" y="228">Attestation</text>
                <text x="280" y="244">W</text>
                <text x="336" y="244">State</text>
                <text x="392" y="244">R</text>
                <text x="448" y="244">Service</text>
                <text x="92" y="356">Updateable</text>
                <text x="216" y="356">Application</text>
                <text x="344" y="356">Application</text>
                <text x="440" y="356">PSA</text>
                <text x="472" y="356">RoT</text>
                <text x="64" y="372">PSA</text>
                <text x="96" y="372">RoT</text>
                <text x="184" y="372">RoT</text>
                <text x="324" y="372">Loader</text>
                <text x="468" y="372">Parameters</text>
                <text x="60" y="404">Target</text>
                <text x="136" y="404">Environment</text>
                <text x="32" y="452">Legend:</text>
                <text x="164" y="468">read</text>
                <text x="272" y="468">write</text>
                <text x="392" y="468">measure</text>
                <text x="120" y="484">R</text>
                <text x="224" y="484">W</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art"><![CDATA[
                                                    .----------.
                                                    | Verifier |
                                                    '----------'
                                                         ^
                                                         |
                                               PSA Token |
                                                         |
.--------------------------------------------------------|----------.
| .------------------------------------------------------|--------. |
| | Attesting Environment                                |        | |
| |                .------------.     .-----.     .------+------. | |
| |                | Main       |    | Main  |    | Initial     | | |
| |                | Bootloader +--->| Boot  |<---+ Attestation | | |
| |                |            | W  | State |  R | Service     | | |
| |                '-----+------'     '-----'     '-------------' | |
| '----------------------|----------------------------------------' |
|           .------------+--------------+---------------.           |
| .--------|-------------|--------------|----------------|--------. |
| |        |             |              |                |        | |
| | .------o-----. .-----o-------. .----o--------. .-----o------. | |
| | | Updateable | | Application | | Application | | PSA RoT    | | |
| | | PSA RoT    | | RoT         | | Loader      | | Parameters | | |
| | '------------' '-------------' '-------------' '------------' | |
| | Target Environment                                            | |
| '---------------------------------------------------------------' |
'-------------------------------------------------------------------'
Legend:
             ---> read    ---> write    ---o measure
              R            W
]]></artwork>
        </artset>
      </figure>
      <t>The PSA Attester is a relatively straightforward embodiment of the RATS
Attester with exactly one Attesting Environment and one or more Target Environments.</t>
      <t>The Attesting Environment is responsible for collecting the information to be
represented in PSA claims and to assemble them into Evidence. It is made of two
cooperating components:</t>
      <ul spacing="normal">
        <li>
          <t>The Main Bootloader, executing at boot-time, measures the Target Environments - i.e., loaded software
components, and all the relevant PSA RoT parameters -, and stores the recorded
information in secure memory (Main Boot State). See <xref target="fig-psa-attester-boot"/>.</t>
        </li>
      </ul>
      <figure anchor="fig-psa-attester-boot">
        <name>PSA Attester Boot Phase</name>
        <artset>
          <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="224" width="352" viewBox="0 0 352 224" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 8,80 L 8,192" fill="none" stroke="black"/>
              <path d="M 80,64 L 80,208" fill="none" stroke="black"/>
              <path d="M 192,64 L 192,208" fill="none" stroke="black"/>
              <path d="M 304,64 L 304,208" fill="none" stroke="black"/>
              <path d="M 344,80 L 344,192" fill="none" stroke="black"/>
              <path d="M 8,80 L 72,80" fill="none" stroke="black"/>
              <path d="M 88,80 L 184,80" fill="none" stroke="black"/>
              <path d="M 200,80 L 296,80" fill="none" stroke="black"/>
              <path d="M 312,80 L 344,80" fill="none" stroke="black"/>
              <path d="M 96,128 L 192,128" fill="none" stroke="black"/>
              <path d="M 192,176 L 296,176" fill="none" stroke="black"/>
              <path d="M 8,192 L 72,192" fill="none" stroke="black"/>
              <path d="M 88,192 L 184,192" fill="none" stroke="black"/>
              <path d="M 200,192 L 296,192" fill="none" stroke="black"/>
              <path d="M 312,192 L 344,192" fill="none" stroke="black"/>
              <polygon class="arrowhead" points="304,176 292,170.4 292,181.6" fill="black" transform="rotate(0,296,176)"/>
              <circle cx="88" cy="128" r="6" class="opendot" fill="white" stroke="black"/>
              <g class="text">
                <text x="52" y="36">i-th</text>
                <text x="100" y="36">Target</text>
                <text x="172" y="36">Main</text>
                <text x="212" y="36">Boot</text>
                <text x="284" y="36">Main</text>
                <text x="324" y="36">Boot</text>
                <text x="80" y="52">Environment</text>
                <text x="196" y="52">Loader</text>
                <text x="304" y="52">State</text>
                <text x="36" y="100">loop</text>
                <text x="64" y="100">i</text>
                <text x="120" y="116">measure</text>
                <text x="224" y="148">write</text>
                <text x="248" y="164">measurement</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art"><![CDATA[
    i-th Target    Main Boot     Main Boot
    Environment      Loader        State
         |             |             |
.--------|-------------|-------------|----.
| loop i |             |             |    |
|        | measure     |             |    |
|        |o------------+             |    |
|        |             | write       |    |
|        |             | measurement |    |
|        |             +------------>|    |
'--------|-------------|-------------|----'
         |             |             |
]]></artwork>
        </artset>
      </figure>
      <ul spacing="normal">
        <li>
          <t anchor="para-ias-intro">The Initial Attestation Service (executing at run-time in SPE) answers
requests coming from NSPE via the PSA attestation API <xref target="PSA-API"/>, collects
and formats the claims from Main Boot State, and uses the Initial Attestation
Key (IAK) to sign them and produce Evidence. See <xref target="fig-psa-attester-runtime"/>.</t>
        </li>
      </ul>
      <t>The word "Initial" in "Initial Attestation Service" refers to a limited set of
Target Environments, namely those representing the first, foundational stages
establishing the chain of trust of a PSA device.
Collecting measurements from Target Environments after this initial phase is outside the scope of this specification. Extensions of this specification could collect up-to-date measurements from additional Target Environments and define additional claims for use within those environments, but these are, by definition, custom.</t>
      <figure anchor="fig-psa-attester-runtime">
        <name>PSA Attester Run-time Phase</name>
        <artset>
          <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="304" width="360" viewBox="0 0 360 304" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 8,96 L 8,192" fill="none" stroke="black"/>
              <path d="M 80,80 L 80,288" fill="none" stroke="black"/>
              <path d="M 184,208 L 184,240" fill="none" stroke="black"/>
              <path d="M 216,80 L 216,288" fill="none" stroke="black"/>
              <path d="M 312,80 L 312,288" fill="none" stroke="black"/>
              <path d="M 352,96 L 352,192" fill="none" stroke="black"/>
              <path d="M 8,96 L 72,96" fill="none" stroke="black"/>
              <path d="M 88,96 L 208,96" fill="none" stroke="black"/>
              <path d="M 224,96 L 304,96" fill="none" stroke="black"/>
              <path d="M 320,96 L 352,96" fill="none" stroke="black"/>
              <path d="M 88,176 L 216,176" fill="none" stroke="black"/>
              <path d="M 8,192 L 72,192" fill="none" stroke="black"/>
              <path d="M 88,192 L 208,192" fill="none" stroke="black"/>
              <path d="M 224,192 L 304,192" fill="none" stroke="black"/>
              <path d="M 320,192 L 352,192" fill="none" stroke="black"/>
              <path d="M 184,208 L 216,208" fill="none" stroke="black"/>
              <path d="M 184,240 L 208,240" fill="none" stroke="black"/>
              <path d="M 216,272 L 304,272" fill="none" stroke="black"/>
              <polygon class="arrowhead" points="312,272 300,266.4 300,277.6" fill="black" transform="rotate(0,304,272)"/>
              <polygon class="arrowhead" points="216,240 204,234.4 204,245.6" fill="black" transform="rotate(0,208,240)"/>
              <polygon class="arrowhead" points="96,176 84,170.4 84,181.6" fill="black" transform="rotate(180,88,176)"/>
              <g class="text">
                <text x="216" y="36">Initial</text>
                <text x="60" y="52">Main</text>
                <text x="100" y="52">Boot</text>
                <text x="216" y="52">Attestation</text>
                <text x="80" y="68">State</text>
                <text x="216" y="68">Service</text>
                <text x="316" y="68">Verifier</text>
                <text x="36" y="116">loop</text>
                <text x="64" y="116">i</text>
                <text x="108" y="116">read</text>
                <text x="136" y="132">measurement</text>
                <text x="196" y="132">of</text>
                <text x="108" y="148">i-th</text>
                <text x="156" y="148">Target</text>
                <text x="136" y="164">Environment</text>
                <text x="156" y="228">sign</text>
                <text x="240" y="260">PSA</text>
                <text x="280" y="260">Token</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art"><![CDATA[
                       Initial
     Main Boot       Attestation
       State           Service     Verifier
         |                |           |
.--------|----------------|-----------|----.
| loop i | read           |           |    |
|        | measurement of |           |    |
|        | i-th Target    |           |    |
|        | Environment    |           |    |
|        |<---------------+           |    |
'--------|----------------|-----------|----'
         |            .---+           |
         |       sign |   |           |
         |            '-->|           |
         |                | PSA Token |
         |                +---------->|
         |                |           |
]]></artwork>
        </artset>
      </figure>
      <t>The Target Environments can be of four types, some of
which may or may not be present depending on the device architecture:</t>
      <ul spacing="normal">
        <li>
          <t>(A subset of) the PSA RoT parameters, including Instance and Implementation
IDs.</t>
        </li>
        <li>
          <t>The updateable PSA RoT, including the Secure Partition Manager and all PSA
RoT services.</t>
        </li>
        <li>
          <t>The (optional) Application RoT, that is any application-defined security
service, possibly making use of the PSA RoT services.</t>
        </li>
        <li>
          <t>The loader of the application software running in NSPE.</t>
        </li>
      </ul>
      <t>A reference implementation of the PSA Attester is provided by <xref target="TF-M"/>.</t>
    </section>
    <section anchor="sec-psa-claims">
      <name>PSA Claims</name>
      <t>This section describes the claims to be used in a PSA attestation token.
A more comprehensive treatment of the EAT profile(s) defined by PSA is found in <xref target="sec-profiles"/>.</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>
      <t>Two conventions are used to encode the Right-Hand-Side (RHS) of a claim: the postfix <tt>-label</tt> is used for EAT-defined claims, and the postfix <tt>-key</tt> for PSA-originated claims.</t>
      <section anchor="caller-claims">
        <name>Caller Claims</name>
        <section anchor="sec-nonce-claim">
          <name>Nonce</name>
          <t>The Nonce claim is used to carry the challenge provided by the caller to demonstrate freshness of the generated token.</t>
          <t>The EAT <xref target="EAT"/> <tt>nonce</tt> (claim key 10) is used.  Since the EAT nonce claim offers flexiblity for different
attestation technologies, this specifications applies the following constraints
 to the <tt>nonce-type</tt>:</t>
          <ul spacing="normal">
            <li>
              <t>The length MUST be either 32, 48, or 64 bytes.</t>
            </li>
            <li>
              <t>Only a single nonce value is conveyed. The array notation MUST NOT be used for encoding the nonce value.</t>
            </li>
          </ul>
          <t>This claim MUST be present in a PSA attestation token.</t>
          <artwork><![CDATA[
psa-nonce = (
    nonce-label => psa-hash-type
)
]]></artwork>
        </section>
        <section anchor="sec-client-id">
          <name>Client ID</name>
          <t>The Client ID claim represents the security domain of the caller.</t>
          <t>In PSA, a security domain is represented by a signed
integer whereby negative values represent callers from the NSPE and where
positive IDs represent callers from the SPE. The value 0 is not permitted.</t>
          <t>For an example definition of client IDs, see the PSA Firmware Framework <xref target="PSA-FF"/>.</t>
          <t>It is essential that this claim is checked in the verification process to
ensure that a security domain, i.e., an attestation endpoint, cannot spoof a
report from another security domain.</t>
          <t>This claim MUST be present in a PSA attestation token.</t>
          <artwork><![CDATA[
psa-client-id-nspe-type = -2147483648...0
psa-client-id-spe-type = 1..2147483647

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

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

psa-instance-id = (
    ueid-label => psa-instance-id-type
)
]]></artwork>
        </section>
        <section anchor="sec-implementation-id">
          <name>Implementation ID</name>
          <t>The Implementation ID claim uniquely identifies the hardware assembly 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>
          <t>This claim MAY be present in a PSA attestation token.</t>
          <artwork><![CDATA[
psa-certification-reference-type = text .regexp "[0-9]{13}-[0-9]{5}"

psa-certification-reference = (
    ? psa-certification-reference-key => 
        psa-certification-reference-type
)
]]></artwork>
        </section>
      </section>
      <section anchor="target-state-claims">
        <name>Target State Claims</name>
        <section anchor="sec-security-lifecycle">
          <name>Security Lifecycle</name>
          <t>The Security Lifecycle claim represents the current lifecycle state of the PSA
RoT. The state is represented by an integer that is divided to convey a major
state and a minor state. A major state is mandatory and defined by <xref target="PSA-SM"/>.
A minor state is optional and 'IMPLEMENTATION DEFINED'. The PSA security
lifecycle state and implementation state are encoded as follows:</t>
          <ul spacing="normal">
            <li>
              <t>major[15:8] - PSA security lifecycle state, and</t>
            </li>
            <li>
              <t>minor[7:0] - IMPLEMENTATION DEFINED state.</t>
            </li>
          </ul>
          <t>The PSA lifecycle states are illustrated in <xref target="fig-lifecycle-states"/>. For PSA,
a Verifier can only trust reports from the PSA RoT when it is in SECURED or
NON_PSA_ROT_DEBUG major states.</t>
          <t>This claim MUST be present in a PSA attestation token.</t>
          <figure anchor="fig-lifecycle-states">
            <name>PSA Lifecycle States</name>
            <artset>
              <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="528" width="472" viewBox="0 0 472 528" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                  <path d="M 24,272 L 24,416" fill="none" stroke="black"/>
                  <path d="M 24,448 L 24,480" fill="none" stroke="black"/>
                  <path d="M 104,48 L 104,64" fill="none" stroke="black"/>
                  <path d="M 112,144 L 112,160" fill="none" stroke="black"/>
                  <path d="M 128,352 L 128,400" fill="none" stroke="black"/>
                  <path d="M 144,240 L 144,272" fill="none" stroke="black"/>
                  <path d="M 144,480 L 144,512" fill="none" stroke="black"/>
                  <path d="M 160,272 L 160,288" fill="none" stroke="black"/>
                  <path d="M 160,320 L 160,344" fill="none" stroke="black"/>
                  <path d="M 208,64 L 208,120" fill="none" stroke="black"/>
                  <path d="M 208,160 L 208,232" fill="none" stroke="black"/>
                  <path d="M 208,400 L 208,416" fill="none" stroke="black"/>
                  <path d="M 208,448 L 208,472" fill="none" stroke="black"/>
                  <path d="M 232,208 L 232,232" fill="none" stroke="black"/>
                  <path d="M 264,280 L 264,304" fill="none" stroke="black"/>
                  <path d="M 264,336 L 264,352" fill="none" stroke="black"/>
                  <path d="M 280,240 L 280,272" fill="none" stroke="black"/>
                  <path d="M 280,480 L 280,512" fill="none" stroke="black"/>
                  <path d="M 288,352 L 288,400" fill="none" stroke="black"/>
                  <path d="M 304,128 L 304,144" fill="none" stroke="black"/>
                  <path d="M 312,352 L 312,400" fill="none" stroke="black"/>
                  <path d="M 320,32 L 320,48" fill="none" stroke="black"/>
                  <path d="M 352,304 L 352,344" fill="none" stroke="black"/>
                  <path d="M 368,400 L 368,416" fill="none" stroke="black"/>
                  <path d="M 368,448 L 368,496" fill="none" stroke="black"/>
                  <path d="M 400,208 L 400,304" fill="none" stroke="black"/>
                  <path d="M 400,336 L 400,352" fill="none" stroke="black"/>
                  <path d="M 440,352 L 440,400" fill="none" stroke="black"/>
                  <path d="M 120,32 L 320,32" fill="none" stroke="black"/>
                  <path d="M 104,64 L 304,64" fill="none" stroke="black"/>
                  <path d="M 128,128 L 304,128" fill="none" stroke="black"/>
                  <path d="M 112,160 L 288,160" fill="none" stroke="black"/>
                  <path d="M 248,192 L 384,192" fill="none" stroke="black"/>
                  <path d="M 144,240 L 280,240" fill="none" stroke="black"/>
                  <path d="M 40,256 L 144,256" fill="none" stroke="black"/>
                  <path d="M 280,256 L 336,256" fill="none" stroke="black"/>
                  <path d="M 144,272 L 280,272" fill="none" stroke="black"/>
                  <path d="M 128,352 L 288,352" fill="none" stroke="black"/>
                  <path d="M 312,352 L 440,352" fill="none" stroke="black"/>
                  <path d="M 128,400 L 288,400" fill="none" stroke="black"/>
                  <path d="M 312,400 L 440,400" fill="none" stroke="black"/>
                  <path d="M 144,480 L 280,480" fill="none" stroke="black"/>
                  <path d="M 40,496 L 136,496" fill="none" stroke="black"/>
                  <path d="M 288,496 L 368,496" fill="none" stroke="black"/>
                  <path d="M 144,512 L 280,512" fill="none" stroke="black"/>
                  <path d="M 120,32 C 111.16936,32 104,39.16936 104,48" fill="none" stroke="black"/>
                  <path d="M 304,64 C 312.83064,64 320,56.83064 320,48" fill="none" stroke="black"/>
                  <path d="M 128,128 C 119.16936,128 112,135.16936 112,144" fill="none" stroke="black"/>
                  <path d="M 288,160 C 296.83064,160 304,152.83064 304,144" fill="none" stroke="black"/>
                  <path d="M 248,192 C 239.16936,192 232,199.16936 232,208" fill="none" stroke="black"/>
                  <path d="M 384,192 C 392.83064,192 400,199.16936 400,208" fill="none" stroke="black"/>
                  <path d="M 40,256 C 31.16936,256 24,263.16936 24,272" fill="none" stroke="black"/>
                  <path d="M 336,256 C 344.83064,256 352,263.16936 352,272" fill="none" stroke="black"/>
                  <path d="M 40,496 C 31.16936,496 24,488.83064 24,480" fill="none" stroke="black"/>
                  <polygon class="arrowhead" points="360,344 348,338.4 348,349.6" fill="black" transform="rotate(90,352,344)"/>
                  <polygon class="arrowhead" points="296,496 284,490.4 284,501.6" fill="black" transform="rotate(180,288,496)"/>
                  <polygon class="arrowhead" points="272,280 260,274.4 260,285.6" fill="black" transform="rotate(270,264,280)"/>
                  <polygon class="arrowhead" points="240,232 228,226.4 228,237.6" fill="black" transform="rotate(90,232,232)"/>
                  <polygon class="arrowhead" points="216,472 204,466.4 204,477.6" fill="black" transform="rotate(90,208,472)"/>
                  <polygon class="arrowhead" points="216,232 204,226.4 204,237.6" fill="black" transform="rotate(90,208,232)"/>
                  <polygon class="arrowhead" points="216,120 204,114.4 204,125.6" fill="black" transform="rotate(90,208,120)"/>
                  <polygon class="arrowhead" points="168,344 156,338.4 156,349.6" fill="black" transform="rotate(90,160,344)"/>
                  <polygon class="arrowhead" points="144,496 132,490.4 132,501.6" fill="black" transform="rotate(0,136,496)"/>
                  <g class="text">
                    <text x="140" y="52">Device</text>
                    <text x="204" y="52">Assembly</text>
                    <text x="256" y="52">and</text>
                    <text x="292" y="52">Test</text>
                    <text x="244" y="84">Device</text>
                    <text x="252" y="100">Lockdown</text>
                    <text x="136" y="148">PSA</text>
                    <text x="168" y="148">RoT</text>
                    <text x="236" y="148">Provisioning</text>
                    <text x="148" y="196">Provisioning</text>
                    <text x="148" y="212">Lockdown</text>
                    <text x="208" y="260">Secured</text>
                    <text x="352" y="292">Debug</text>
                    <text x="160" y="308">Debug</text>
                    <text x="272" y="324">Recoverable</text>
                    <text x="416" y="324">Recoverable</text>
                    <text x="208" y="372">(Non-Recoverable)</text>
                    <text x="368" y="372">Recoverable</text>
                    <text x="168" y="388">Non-PSA</text>
                    <text x="216" y="388">RoT</text>
                    <text x="256" y="388">Debug</text>
                    <text x="336" y="388">PSA</text>
                    <text x="368" y="388">RoT</text>
                    <text x="408" y="388">Debug</text>
                    <text x="40" y="436">Terminate</text>
                    <text x="208" y="436">Non-Recoverable</text>
                    <text x="328" y="436">PSA</text>
                    <text x="360" y="436">RoT</text>
                    <text x="424" y="436">Compromised</text>
                    <text x="212" y="500">Decommissioned</text>
                  </g>
                </svg>
              </artwork>
              <artwork type="ascii-art"><![CDATA[
             .-------------------------.
            | Device Assembly and Test |
            '------------+------------'
                         | Device
                         | Lockdown
                         v
              .----------------------.
             | PSA RoT Provisioning  |
             '-----------+----------'
                         |
            Provisioning |   .------------------.
              Lockdown   |  |                    |
                         v  v                    |
                 .----------------.              |
   .-------------+    Secured     +-------.      |
  |              '-+--------------'        |     |
  |                |            ^        Debug   |
  |              Debug          |          |     |
  |                |        Recoverable    |  Recoverable
  |                v            |          v     |
  |            .----------------+--.  .----------+----.
  |            | (Non-Recoverable) |  | Recoverable   |
  |            | Non-PSA RoT Debug |  | PSA RoT Debug |
  |            '---------+---------'  '------+--------'
  |                      |                   |
Terminate         Non-Recoverable      PSA RoT Compromised
  |                      |                   |
  |                      v                   |
  |              .----------------.          |
   '------------>| Decommissioned |<---------'
                 '----------------'
]]></artwork>
            </artset>
          </figure>
          <t>The CDDL representation is shown below.
<xref target="tab-states-map"/> provides the mappings between <xref target="fig-lifecycle-states"/> and the data model.</t>
          <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>
          <t><tt>psa-lifecycle-unknown-type</tt> is not shown in <xref target="fig-lifecycle-states"/>; it represents an invalid state that must not occur in a system.</t>
          <table anchor="tab-states-map">
            <name>Lifecycle States Mappings</name>
            <thead>
              <tr>
                <th align="left">CDDL</th>
                <th align="left">Lifecycle States</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">
                  <tt>psa-lifecycle-unknown-type</tt></td>
                <td align="left"> </td>
              </tr>
              <tr>
                <td align="left">
                  <tt>psa-lifecycle-assembly-and-test-type</tt></td>
                <td align="left">Assembly and Test</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>psa-lifecycle-psa-rot-provisioning-type</tt></td>
                <td align="left">PSA RoT Provisioning</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>psa-lifecycle-secured-type</tt></td>
                <td align="left">Secured</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>psa-lifecycle-non-psa-rot-debug-type</tt></td>
                <td align="left">Non-Recoverable PSA RoT Debug</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>psa-lifecycle-recoverable-psa-rot-debug-type</tt></td>
                <td align="left">Recoverable PSA RoT Debug</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>psa-lifecycle-decommissioned-type</tt></td>
                <td align="left">Decommissioned</td>
              </tr>
            </tbody>
          </table>
        </section>
        <section anchor="sec-boot-seed">
          <name>Boot Seed</name>
          <t>The Boot Seed claim contains a value created at system boot time
that allows differentiation of attestation reports from different
boot sessions of a particular entity (i.e., a certain Instance ID).</t>
          <t>The EAT <tt>bootseed</tt> (claim key 268) is used.
The following constraints apply to the <tt>binary-data</tt> type:</t>
          <ul spacing="normal">
            <li>
              <t>The length MUST be between 8 and 32 bytes.</t>
            </li>
          </ul>
          <t>This claim MAY be present in a PSA attestation token.</t>
          <artwork><![CDATA[
psa-boot-seed-type = bytes .size (8..32)

psa-boot-seed = (
    boot-seed-label => 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 appraisal 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 Reference Values 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 a short string representing the role of
this software component.</t>
            <t>The following measurement types MAY be used for code measurements:</t>
            <ul spacing="normal">
              <li>
                <t>"BL": a Boot Loader</t>
              </li>
              <li>
                <t>"PRoT": a component of the PSA Root of Trust</t>
              </li>
              <li>
                <t>"ARoT": a component of the Application Root of Trust</t>
              </li>
              <li>
                <t>"App": a component of the NSPE application</t>
              </li>
              <li>
                <t>"TS": a component of a Trusted Subsystem</t>
              </li>
            </ul>
            <t>The same labels with a "-cfg" postfix (e.g., "PRoT-cfg") MAY be used for
configuration measurements.</t>
            <t>This attribute SHOULD be present in a PSA software component unless
there is a very good reason to leave it out - for example in networks
with severely constrained bandwidth, where sparing a few bytes really
makes a difference.</t>
          </section>
          <section anchor="measurement-value">
            <name> Measurement Value</name>
            <t>The Measurement Value attribute (key=2) represents a hash of the invariant
software component in memory at startup time. The value MUST be a cryptographic
hash of 256 bits or stronger.</t>
            <t>This attribute MUST be present in a PSA software component.</t>
          </section>
          <section anchor="version">
            <name>Version</name>
            <t>The Version attribute (key=4) is the issued software version in the form of a
text string. The value of this attribute will correspond to the entry in the
original signed manifest of the component.</t>
          </section>
          <section anchor="signer-id">
            <name>Signer ID</name>
            <t>The Signer ID attribute (key=5) uniquely identifies the signer of the software component. The identification is typically accomplished by hashing the signer's public key.
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>
        <t>The following claims are part of the PSA token (and therefore still Evidence)
but aim to help receivers, including relying parties, with the
processing of the received attestation Evidence.</t>
        <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>
          <t>It is assumed that the relying party is pre-configured with a list of trusted
verification services and that the contents of this hint can be used to look
up the correct one. Under no circumstances must the relying party be tricked
into contacting an unknown and untrusted verification service since the
returned Attestation Result cannot be relied on.</t>
          <t>Note: This hint requires the relying party to parse the content of the
PSA token. Since the relying party may not be in possession of a trust
anchor to verify the digital signature, it uses the hint in the same way
as it would treat any other information provided by an external party,
which includes attacker-provided data.</t>
        </section>
        <section anchor="sec-profile-definition-claim">
          <name>Profile Definition</name>
          <t>The Profile Definition claim encodes the unique identifier that corresponds to
the EAT profile described by this document.  This allows a receiver to assign
the intended semantics to the rest of the claims found in the token.</t>
          <t>The EAT <tt>eat_profile</tt> (claim key 265) is used.</t>
          <t>The URI encoding MUST be used.</t>
          <t>The value MUST be <tt>tag:psacertified.org,2023:psa#tfm</tt> for the profile defined in <xref target="sec-tfm-profile"/>.</t>
          <t>Future profiles derived from the baseline PSA profile SHALL create their unique value, as described in <xref target="sec-profile-uri-structure"/>.</t>
          <t>This claim MUST be present in a PSA attestation token.</t>
          <t>See <xref target="sec-backwards-compat"/>, for considerations about backwards compatibility
with previous versions of the PSA attestation token format.</t>
          <artwork><![CDATA[
psa-profile-type = "tag:psacertified.org,2023:psa#tfm"

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

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

nonce-label = 10
ueid-label = 256
boot-seed-label = 268
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 = (
    boot-seed-label => psa-boot-seed-type
)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

psa-verification-service-indicator-type = text

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

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

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

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

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

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-rats-eat-media-type-05"/>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="RFC8610">
          <front>
            <title>Concise Data Definition Language (CDDL): A Notational Convention to Express Concise Binary Object Representation (CBOR) and JSON Data Structures</title>
            <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
            <author fullname="C. Vigano" initials="C." surname="Vigano"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="June" year="2019"/>
            <abstract>
              <t>This document proposes a notational convention to express Concise Binary Object Representation (CBOR) data structures (RFC 7049). Its main goal is to provide an easy and unambiguous way to express structures for protocol messages and data formats that use CBOR or JSON.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8610"/>
          <seriesInfo name="DOI" value="10.17487/RFC8610"/>
        </reference>
        <reference anchor="RFC3986">
          <front>
            <title>Uniform Resource Identifier (URI): Generic Syntax</title>
            <author fullname="T. Berners-Lee" initials="T." surname="Berners-Lee"/>
            <author fullname="R. Fielding" initials="R." surname="Fielding"/>
            <author fullname="L. Masinter" initials="L." surname="Masinter"/>
            <date month="January" year="2005"/>
            <abstract>
              <t>A Uniform Resource Identifier (URI) is a compact sequence of characters that identifies an abstract or physical resource. This specification defines the generic URI syntax and a process for resolving URI references that might be in relative form, along with guidelines and security considerations for the use of URIs on the Internet. The URI syntax defines a grammar that is a superset of all valid URIs, allowing an implementation to parse the common components of a URI reference without knowing the scheme-specific requirements of every possible identifier. This specification does not define a generative grammar for URIs; that task is performed by the individual specifications of each URI scheme. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="66"/>
          <seriesInfo name="RFC" value="3986"/>
          <seriesInfo name="DOI" value="10.17487/RFC3986"/>
        </reference>
        <reference anchor="RFC4151">
          <front>
            <title>The 'tag' URI Scheme</title>
            <author fullname="T. Kindberg" initials="T." surname="Kindberg"/>
            <author fullname="S. Hawke" initials="S." surname="Hawke"/>
            <date month="October" year="2005"/>
            <abstract>
              <t>This document describes the "tag" Uniform Resource Identifier (URI) scheme. Tag URIs (also known as "tags") are designed to be unique across space and time while being tractable to humans. They are distinct from most other URIs in that they have no authoritative resolution mechanism. A tag may be used purely as an entity identifier. Furthermore, using tags has some advantages over the common practice of using "http" URIs as identifiers for non-HTTP-accessible resources. This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4151"/>
          <seriesInfo name="DOI" value="10.17487/RFC4151"/>
        </reference>
        <reference anchor="RFC8392">
          <front>
            <title>CBOR Web Token (CWT)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="E. Wahlstroem" initials="E." surname="Wahlstroem"/>
            <author fullname="S. Erdtman" initials="S." surname="Erdtman"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <date month="May" year="2018"/>
            <abstract>
              <t>CBOR Web Token (CWT) is a compact means of representing claims to be transferred between two parties. The claims in a CWT are encoded in the Concise Binary Object Representation (CBOR), and CBOR Object Signing and Encryption (COSE) is used for added application-layer security protection. A claim is a piece of information asserted about a subject and is represented as a name/value pair consisting of a claim name and a claim value. CWT is derived from JSON Web Token (JWT) but uses CBOR rather than JSON.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8392"/>
          <seriesInfo name="DOI" value="10.17487/RFC8392"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC8730">
          <front>
            <title>Independent Submission Editor Model</title>
            <author fullname="N. Brownlee" initials="N." role="editor" surname="Brownlee"/>
            <author fullname="B. Hinden" initials="B." role="editor" surname="Hinden"/>
            <date month="February" year="2020"/>
            <abstract>
              <t>This document describes the function and responsibilities of the RFC Independent Submission Editor (ISE). The Independent Submission stream is one of the stream producers that create draft RFCs, with the ISE as its stream approver. The ISE is overall responsible for activities within the Independent Submission stream, working with draft editors and reviewers, and interacts with the RFC Production Center and Publisher, and the RFC Series Editor (RSE). The ISE is appointed by the IAB, and also interacts with the IETF Administration Limited Liability Company (LLC).</t>
              <t>This version obsoletes RFC 6548 to replace all references to the Internet Administrative Support Activity (IASA) and related structures with those defined by the IASA 2.0 structure.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8730"/>
          <seriesInfo name="DOI" value="10.17487/RFC8730"/>
        </reference>
        <reference anchor="I-D.kdyxy-rats-tdx-eat-profile">
          <front>
            <title>EAT profile for Intel® Trust Domain Extensions (TDX) attestation result</title>
            <author fullname="Greg Kostal" initials="G." surname="Kostal">
              <organization>Microsoft</organization>
            </author>
            <author fullname="Sindhuri Dittakavi" initials="S." surname="Dittakavi">
              <organization>Microsoft</organization>
            </author>
            <author fullname="Raghuram Yeluri" initials="R." surname="Yeluri">
              <organization>Intel</organization>
            </author>
            <author fullname="Haidong Xia" initials="H." surname="Xia">
              <organization>Intel</organization>
            </author>
            <author fullname="Jerry Yu" initials="J." surname="Yu">
              <organization>Intel</organization>
            </author>
            <date day="19" month="October" year="2023"/>
            <abstract>
              <t>   Intel® Trust Domain Extensions (TDX) introduces architectural
   elements designed for the deployment of hardware-isolated virtual
   machines (VMs) known as trust domains (TDs).  TDX is designed to
   provide a secure and isolated environment for running sensitive
   workloads or applications.  This Entity Attestation Token (EAT)
   profile outlines claims for an Intel TDX attestation result which
   facilitate the establishment of trust between a relying party and the
   environment.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-kdyxy-rats-tdx-eat-profile-00"/>
        </reference>
        <reference anchor="I-D.mandyam-rats-qwestoken">
          <front>
            <title>The Qualcomm Wireless Edge Services (QWES) Attestation Token</title>
            <author fullname="Giridhar Mandyam" initials="G." surname="Mandyam">
              <organization>Qualcomm Technologies Inc.</organization>
            </author>
            <author fullname="Vivek Sekhar" initials="V." surname="Sekhar">
              <organization>Qualcomm Technologies Inc.</organization>
            </author>
            <author fullname="Shahid Mohammed" initials="S." surname="Mohammed">
              <organization>Qualcomm Technologies Inc.</organization>
            </author>
            <date day="1" month="November" year="2019"/>
            <abstract>
              <t>   An attestation format based on the Entity Attestation Token (EAT) is
   described.  The Qualcomm Wireless Edge Services (QWES) token is used
   in the context of device onboarding and authentication.  It is
   verified in the same manner as any CBOR Web Token (CWT).

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-mandyam-rats-qwestoken-00"/>
        </reference>
        <reference anchor="RFC9280">
          <front>
            <title>RFC Editor Model (Version 3)</title>
            <author fullname="P. Saint-Andre" initials="P." role="editor" surname="Saint-Andre"/>
            <date month="June" year="2022"/>
            <abstract>
              <t>This document specifies version 3 of the RFC Editor Model. The model defines two high-level tasks related to the RFC Series. First, policy definition is the joint responsibility of the RFC Series Working Group (RSWG), which produces policy proposals, and the RFC Series Approval Board (RSAB), which approves such proposals. Second, policy implementation is primarily the responsibility of the RFC Production Center (RPC) as contractually overseen by the IETF Administration Limited Liability Company (IETF LLC). In addition, various responsibilities of the RFC Editor function are now performed alone or in combination by the RSWG, RSAB, RPC, RFC Series Consulting Editor (RSCE), and IETF LLC. Finally, this document establishes the Editorial Stream for publication of future policy definition documents produced through the processes defined herein.</t>
              <t>This document obsoletes RFC 8728. This document updates RFCs 7841, 8729, and 8730.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9280"/>
          <seriesInfo name="DOI" value="10.17487/RFC9280"/>
        </reference>
        <reference anchor="TLS12-IoT">
          <front>
            <title>Transport Layer Security (TLS) / Datagram Transport Layer Security (DTLS) Profiles for the Internet of Things</title>
            <author fullname="H. Tschofenig" initials="H." role="editor" surname="Tschofenig"/>
            <author fullname="T. Fossati" initials="T." surname="Fossati"/>
            <date month="July" year="2016"/>
            <abstract>
              <t>A common design pattern in Internet of Things (IoT) deployments is the use of a constrained device that collects data via sensors or controls actuators for use in home automation, industrial control systems, smart cities, and other IoT deployments.</t>
              <t>This document defines a Transport Layer Security (TLS) and Datagram Transport Layer Security (DTLS) 1.2 profile that offers communications security for this data exchange thereby preventing eavesdropping, tampering, and message forgery. The lack of communication security is a common vulnerability in IoT products that can easily be solved by using these well-researched and widely deployed Internet security protocols.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7925"/>
          <seriesInfo name="DOI" value="10.17487/RFC7925"/>
        </reference>
        <reference anchor="TLS13-IoT">
          <front>
            <title>TLS/DTLS 1.3 Profiles for the Internet of Things</title>
            <author fullname="Hannes Tschofenig" initials="H." surname="Tschofenig">
         </author>
            <author fullname="Thomas Fossati" initials="T." surname="Fossati">
              <organization>Linaro</organization>
            </author>
            <author fullname="Michael Richardson" initials="M." surname="Richardson">
              <organization>Sandelman Software Works</organization>
            </author>
            <date day="22" month="October" year="2023"/>
            <abstract>
              <t>   This document is a companion to RFC 7925 and defines TLS/DTLS 1.3
   profiles for Internet of Things devices.  It also updates RFC 7925
   with regards to the X.509 certificate profile.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-uta-tls13-iot-profile-08"/>
        </reference>
        <reference anchor="COSE-X509">
          <front>
            <title>CBOR Object Signing and Encryption (COSE): Header Parameters for Carrying and Referencing X.509 Certificates</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="February" year="2023"/>
            <abstract>
              <t>The CBOR Object Signing and Encryption (COSE) message structure uses references to keys in general. For some algorithms, additional properties are defined that carry parameters relating to keys as needed. The COSE Key structure is used for transporting keys outside of COSE messages. This document extends the way that keys can be identified and transported by providing attributes that refer to or contain X.509 certificates.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9360"/>
          <seriesInfo name="DOI" value="10.17487/RFC9360"/>
        </reference>
        <reference anchor="RFC9334">
          <front>
            <title>Remote ATtestation procedureS (RATS) Architecture</title>
            <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
            <author fullname="D. Thaler" initials="D." surname="Thaler"/>
            <author fullname="M. Richardson" initials="M." surname="Richardson"/>
            <author fullname="N. Smith" initials="N." surname="Smith"/>
            <author fullname="W. Pan" initials="W." surname="Pan"/>
            <date month="January" year="2023"/>
            <abstract>
              <t>In network protocol exchanges, it is often useful for one end of a communication to know whether the other end is in an intended operating state. This document provides an architectural overview of the entities involved that make such tests possible through the process of generating, conveying, and evaluating evidentiary Claims. It provides a model that is neutral toward processor architectures, the content of Claims, and protocols.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9334"/>
          <seriesInfo name="DOI" value="10.17487/RFC9334"/>
        </reference>
        <reference anchor="IANA-HashFunctionTextualNames" target="https://www.iana.org/assignments/hash-function-text-names">
          <front>
            <title>Hash Function Textual Names</title>
            <author>
              <organization>IANA</organization>
            </author>
            <date year="2022"/>
          </front>
        </reference>
        <reference anchor="IANA-CoAP-Content-Formats" target="https://www.iana.org/assignments/core-parameters">
          <front>
            <title>CoAP Content-Formats</title>
            <author>
              <organization>IANA</organization>
            </author>
            <date year="2022"/>
          </front>
        </reference>
        <reference anchor="TF-M" target="https://www.trustedfirmware.org/projects/tf-m/">
          <front>
            <title>Trusted Firmware-M</title>
            <author>
              <organization>Linaro</organization>
            </author>
            <date year="2022"/>
          </front>
        </reference>
        <reference anchor="IAT-VERIFIER" target="https://git.trustedfirmware.org/TF-M/tf-m-tools.git/tree/iat-verifier">
          <front>
            <title>iat-verifier</title>
            <author>
              <organization>Linaro</organization>
            </author>
            <date year="2023"/>
          </front>
        </reference>
        <reference anchor="Veraison" target="https://github.com/veraison/psatoken">
          <front>
            <title>Veraison psatoken package</title>
            <author>
              <organization>The Veraison Project</organization>
            </author>
            <date year="2022"/>
          </front>
        </reference>
        <reference anchor="Xclaim" target="https://github.com/laurencelundblade/xclaim">
          <front>
            <title>Xclaim</title>
            <author initials="L." surname="Lundblade" fullname="Laurence Lundblade">
              <organization/>
            </author>
            <date year="2022"/>
          </front>
        </reference>
        <reference anchor="PSA" target="https://developer.arm.com/architectures/security-architectures/platform-security-architecture/documentation">
          <front>
            <title>Platform Security Architecture Resources</title>
            <author>
              <organization>Arm</organization>
            </author>
            <date year="2022"/>
          </front>
        </reference>
        <reference anchor="PSACertified" target="https://psacertified.org">
          <front>
            <title>PSA Certified IoT Security Framework</title>
            <author>
              <organization>PSA Certified</organization>
            </author>
            <date year="2022"/>
          </front>
        </reference>
        <reference anchor="PSA-API" target="https://arm-software.github.io/psa-api/attestation/1.0/IHI0085-PSA_Certified_Attestation_API-1.0.3.pdf">
          <front>
            <title>PSA Attestation API 1.0.3</title>
            <author>
              <organization>Arm</organization>
            </author>
            <date year="2022"/>
          </front>
        </reference>
        <reference anchor="PSA-Endorsements">
          <front>
            <title>Arm's Platform Security Architecture (PSA) Attestation Verifier Endorsements</title>
            <author fullname="Thomas Fossati" initials="T." surname="Fossati">
              <organization>Linaro</organization>
            </author>
            <author fullname="Yogesh Deshpande" initials="Y." surname="Deshpande">
              <organization>Arm Ltd</organization>
            </author>
            <author fullname="Henk Birkholz" initials="H." surname="Birkholz">
              <organization>Fraunhofer SIT</organization>
            </author>
            <date day="10" month="September" year="2023"/>
            <abstract>
              <t>   PSA Endorsements include reference values, cryptographic key material
   and certification status information that a Verifier needs in order
   to appraise attestation Evidence produced by a PSA device.  This memo
   defines such PSA Endorsements as a profile of the CoRIM data model.

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

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

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-rats-ar4si-05"/>
        </reference>
        <reference anchor="PSA-OLD">
          <front>
            <title>Arm's Platform Security Architecture (PSA) Attestation Token</title>
            <author fullname="Hannes Tschofenig" initials="H." surname="Tschofenig">
              <organization>Arm Limited</organization>
            </author>
            <author fullname="Simon Frost" initials="S." surname="Frost">
              <organization>Arm Limited</organization>
            </author>
            <author fullname="Mathias Brossard" initials="M." surname="Brossard">
              <organization>Arm Limited</organization>
            </author>
            <author fullname="Adrian L. Shaw" initials="A. L." surname="Shaw">
              <organization>Arm Limited</organization>
            </author>
            <author fullname="Thomas Fossati" initials="T." surname="Fossati">
              <organization>Arm Limited</organization>
            </author>
            <date day="1" month="February" year="2021"/>
            <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.

   At its core, the CWT (COSE Web Token) format is used and populated
   with a set of claims in a way similar to EAT (Entity Attestation
   Token).  This specification describes what claims are used by PSA
   compliant systems.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-tschofenig-rats-psa-token-07"/>
        </reference>
      </references>
    </references>
    <?line 1303?>

<section anchor="examples">
      <name>Examples</name>
      <t>The following examples show PSA attestation tokens for an hypothetical system
comprising a single measured software component.
The attesting device is in a lifecycle state (<xref target="sec-security-lifecycle"/>) of
SECURED.  The attestation has been requested from a client residing in the
SPE.</t>
      <t>The example in <xref target="ex-sign1"/> illustrates the case where the IAK is an asymmetric key.  A COSE Sign1 envelope is used to wrap the PSA claims-set.</t>
      <t><xref target="ex-mac0"/> illustrates the case where the IAK is a symmetric key and a COSE Mac0 envelope is used instead.</t>
      <t>The claims sets are identical, except for the Instance ID which is synthesized from the key material.</t>
      <t>The examples have been created using the <tt>iat-verifier</tt> tool <xref target="IAT-VERIFIER"/>.</t>
      <section anchor="ex-sign1">
        <name>COSE Sign1 Token</name>
        <artwork><![CDATA[
{
  / ueid /                     256: h'01020202020202020202020202
0202020202020202020202020202020202020202',
  / psa-implementation-id /   2396: h'00000000000000000000000000
00000000000000000000000000000000000000',
  / eat_nonce /                 10: h'01010101010101010101010101
01010101010101010101010101010101010101',
  / psa-client-id /           2394: 2147483647,
  / psa-security-lifecycle /  2395: 12288,
  / eat_profile /              265: "tag:psacertified.org,2023:psa#tfm",
  / bootseed /                 268: h'0000000000000000',
  / psa-software-components / 2399: [
    {
      / signer ID /         5: h'0404040404040404040404040404040
404040404040404040404040404040404',
      / measurement value / 2: h'0303030303030303030303030303030
303030303030303030303030303030303',
      / measurement type /  1: "PRoT"
    }
  ]
}
]]></artwork>
        <t>The JWK representation of the IAK used for creating the COSE Sign1 signature
over the PSA token is:</t>
        <artwork><![CDATA[
{
  "kty": "EC",
  "crv": "P-256",
  "alg": "ES256",
  "x": "Tl4iCZ47zrRbRG0TVf0dw7VFlHtv18HInYhnmMNybo8",
  "y": "gNcLhAslaqw0pi7eEEM2TwRAlfADR0uR4Bggkq-xPy4",
  "d": "Q__-y5X4CFp8QOHT6nkL7063jN131YUDpkwWAPkbM-c"
}
]]></artwork>
        <t>The resulting COSE object is:</t>
        <artwork><![CDATA[
18([
  h'A10126',
  {},
  h'A81901005821010202020202020202020202020202020202020202020202
02020202020202020219095C5820000000000000000000000000000000000000
00000000000000000000000000000A5820010101010101010101010101010101
010101010101010101010101010101010119095A1A7FFFFFFF19095B19300019
010978217461673A7073616365727469666965642E6F72672C323032333A7073
612374666D19010C48000000000000000019095F81A305582004040404040404
0404040404040404040404040404040404040404040404040402582003030303
0303030303030303030303030303030303030303030303030303030301645052
6F54',
  h'786E937A4C42667AF3847399319CA95C7E7DBABDC9B50FDB8DE3F6BFF4AB
82FF80C42140E2A488000219E3E10663193DA69C75F52B798EA10B2F7041A90E
8E5A'
])
]]></artwork>
        <t>which has the following base16 encoding:</t>
        <artwork><![CDATA[
d28443a10126a0590100a819010058210102020202020202020202020202
0202020202020202020202020202020202020219095c5820000000000000
00000000000000000000000000000000000000000000000000000a582001
010101010101010101010101010101010101010101010101010101010101
0119095a1a7fffffff19095b19300019010978217461673a707361636572
7469666965642e6f72672c323032333a7073612374666d19010c48000000
000000000019095f81a30558200404040404040404040404040404040404
040404040404040404040404040404025820030303030303030303030303
0303030303030303030303030303030303030303016450526f545840786e
937a4c42667af3847399319ca95c7e7dbabdc9b50fdb8de3f6bff4ab82ff
80c42140e2a488000219e3e10663193da69c75f52b798ea10b2f7041a90e
8e5a
]]></artwork>
      </section>
      <section anchor="ex-mac0">
        <name>COSE Mac0 Token</name>
        <artwork><![CDATA[
{
  / ueid /                     256: h'01C557BD4FADC83F756FCA2CD5
EA2DCC8B82159BB4E7453D6A744D4EECD6D0AC60',
  / psa-implementation-id /   2396: h'00000000000000000000000000
00000000000000000000000000000000000000',
  / eat_nonce /                 10: h'01010101010101010101010101
01010101010101010101010101010101010101',
  / psa-client-id /           2394: 2147483647,
  / psa-security-lifecycle /  2395: 12288,
  / eat_profile /              265: "tag:psacertified.org,2023:psa#tfm",
  / psa-boot-seed /            268: h'0000000000000000',
  / psa-software-components / 2399: [
    {
      / signer ID /         5: h'0404040404040404040404040404040
404040404040404040404040404040404',
      / measurement value / 2: h'0303030303030303030303030303030
303030303030303030303030303030303',
      / measurement type /  1: "PRoT"
    }
  ]
}
]]></artwork>
        <t>The JWK representation of the IAK used for creating the COSE Mac0 signature
over the PSA token is:</t>
        <artwork><![CDATA[
========== NOTE: '\\' line wrapping per RFC 8792 ==========

{
  "kty": "oct",
  "alg": "HS256",
  "k": "3gOLNKyhJXaMXjNXq40Gs2e5qw1-i-Ek7cpH_gM6W7epPTB_8imqNv8k\
       \bBKVlk-s9xq3qm7E_WECt7OYMlWtkg"
}
]]></artwork>
        <t>The resulting COSE object is:</t>
        <artwork><![CDATA[
17([
  h'A10105',
  {},
  h'A8190100582101C557BD4FADC83F756FCA2CD5EA2DCC8B82159BB4E7453D
6A744D4EECD6D0AC6019095C5820000000000000000000000000000000000000
00000000000000000000000000000A5820010101010101010101010101010101
010101010101010101010101010101010119095A1A7FFFFFFF19095B19300019
010978217461673A7073616365727469666965642E6F72672C323032333A7073
612374666D19010C48000000000000000019095F81A305582004040404040404
0404040404040404040404040404040404040404040404040402582003030303
0303030303030303030303030303030303030303030303030303030301645052
6F54',
  h'CF88D330E7A5366A95CF744A4DBF0D50304D405EDD8B2530E243EDDBD317
7820'
])
]]></artwork>
        <t>which has the following base16 encoding:</t>
        <artwork><![CDATA[
d18443a10105a0590100a8190100582101c557bd4fadc83f756fca2cd5ea
2dcc8b82159bb4e7453d6a744d4eecd6d0ac6019095c5820000000000000
00000000000000000000000000000000000000000000000000000a582001
010101010101010101010101010101010101010101010101010101010101
0119095a1a7fffffff19095b19300019010978217461673a707361636572
7469666965642e6f72672c323032333a7073612374666d19010c48000000
000000000019095f81a30558200404040404040404040404040404040404
040404040404040404040404040404025820030303030303030303030303
0303030303030303030303030303030303030303016450526f545820cf88
d330e7a5366a95cf744a4dbf0d50304d405edd8b2530e243eddbd3177820
]]></artwork>
      </section>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>Thank you Carsten Bormann for help with the CDDL.
Thanks to
Nicholas Wood,
Eliot Lear,
Yaron Sheffer,
Kathleen Moriarty and
Ned Smith
for ideas, comments and suggestions.</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:
H4sIAAAAAAAAA+1963rbyJHofzwFjub7VlKGoHjXZXeyoSQqVkayvZLmdpJZ
CyRBCTEJcABQMmN7nyXPkic7desbAMryzGz2ZL/IyUgEuxvd1dV1r+ogCLyH
I7/reUVczKMjf2uYLbZz//U8LGZptvCvo8kqi4u1P8wm93ERTYpVFvk7r6+H
u/6wKKK8CIs4Tfyb9G2UbHnheJxFMOAWNKj7fppOknAB75lm4awIinxyn86i
JL4LsrDIg2UeBgW2DOD90NebwK+7NFsf+XEyS718NV7EeQ4D3qyXET6cRssI
/pMUnhcvsyO/yFZ50Wm1DlsdL8yiEKay5T2m2du7LF0t6dPbaA0Ppkf+eVJE
WRIVwSlOxvNgrsn0TThPExh6HeWet4yPPN/PZpNomhfruTz2/SKdWH/GNAH1
IE+zIotmuf68Xjgfiyye6MaTdLGAvvrbInpXBPM4LwLoNk7n8EWQ/uZLzwtX
xX2awWwC32cIvgiTJMr9Gw1C6O77aXYXJvFfCOhH9CRahPFcNW+a5r+7W7xr
wuqtIa/jBWzVWZYC5CuDAQYs/It4AUgwtQemTk3q9LswWzRhSdaQl2FxH4e5
fwzf52E2ff640rOpetYMPpxmcZj41/fhY824L177F+E4t8cMqcM8hw6/CyeL
JnSwhru5Txcw1TN8XxHXjHgRJ2GW2gMW1KU54y6/m1MDGtabpAls9XhVuNt2
EcIBSiaRf7FKpuN5OI1qXqRP3c19BNjvX1yc2G+d381/l0uTglqUAHMT4kKO
w+T54KYuTehSA+frKLuLYv8mS2ew2Q+fgRvUsak66qG9BGgLdH2IEEeBVgTX
l4ytGs99eQmNTR+FQlVJ02U6jeZ+u9nmZiG8Ew7YfVEs86O9vcfHxybQlUmU
FfEsjqa4O3vhcrm3Ws7TcJrvdVqd9l67s/eH6+Hp6GWr3XsDE3pzotq/ub58
8y0M/uZ4dNNqLqczessUCNOR32o3/dNo0vRxDHg+Gr4M2t2NK/n9ddteCdMf
gmA4h2UW8WQe+S9Xi3GUAfBhsL1vXp/44zCbwArzjau7y9u0KKJfcFLyPdVl
LwqTYLWcWFPutNqHAvOzs58Pc4cdnMXZ4jHEPzLAF6S2sBst4hLwkt3aiU+j
h2ieLqOsKUixB7xhhcSQAALfJ63WoLsXOnNv+mfRuGkvAvcp+P0qnkYbF4O8
SG+nsyz7C/8CZ+R3/OsiWvrjNf+mkf1vowyZzi/CsdZea1/jWDtwcYze/abz
Bt8ZjNcB/Ya3Bdix1Wt1S4iHj+Hj9c3pYY/XGhz5k3Ga0d9fHflXZycHh71D
aTMwbdI8stoctvod+Hjy6noUDC9+f60eduHh+fAlgPe7m41wxQY2OE+OX135
30VjZvb+DvTd9U/mYbzYjLtAjkOGFrD1u4SY4d7kscD/N9/dF4v5FxMaIcii
O+CL2dqFAs7++37rkCbe7xy06BTewOSC02YcFTMWLKKw4C+Cy9Hp+fDmh9ej
65o2wSKaxiCCgHDhgUCRzGwyhSDd77bwT+z4drp+t+aexfQd9V4inZtHqsUC
juM6XHCbnx5BnkG4yFCHMFf88+biut0JztMbWsH+YacvD7v8EAdiYYlmuipg
evMcvo1T/UK1gxoQh91BS17T7RKC0Ga+CPP7s1UywQN2A5LGKpy/hAObP3uH
cQBfjeDLED6N8Xk7fA8DBTMZKCCpJ9GjOJvLWJgOX8N/gF4mRXBGm/L8SWNn
v9T5M/ExzaJgGSJxA4pdM8mbs2Az/7KkBpnRDQqpQHEU3QwuN86n4KYzaUlT
g13/M1DefA/wYbFXB7Kb4NvR1fnZ+ejqM2YVAwY/RBkSpKx2PndxUTsfXD3N
BWR3EFmb0G4PROBorzKinibSFyCqYZwrMbVmiiD86Eb+a160PWH9HZBeOlr+
Mpy8De+iTbO/X42J0zxIxz3VsYamENWpm1qcgFB+0SzJb58Q72TGPOqnpjeX
MeZqiL13pp8zS2AivxILv4rydJVNNpzjKrMOrc75nhJGA/fxUt4Z1H7vMvza
xWkG+Ut5O5BSs3AtpdSutczHaycWDF+fPxvyJVUYuqJ41OzWvj5EcKWzgk6X
IEWc4qyCcBnvhWagPRhk7/zFeat10C+JE9br3sDrAnpdVYRQixkl0zTLI9FE
kePMpmOjkUfW18hVhjfXQIyvzi/LHBToJGEptRhe9a7Pyy3CrJfH8tZXF6f8
9WYrQGvf8+CtsGkI4OvRxRlo8MDVQDPMtzwvCAIfNLwiC4EweEguUA95lu0i
zv3Qn4WLeL7205l/D2IzSbDAsn1F3DyFtn6+jCYA2QlBNG/4oFw9RvM5/oZT
kQR8dnzQ8yM+/fFiOY80bkOPIvXuo/nSh5MUw/eL8C0wEnobTG0Jn5PVLKQJ
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
ko3EZQaHVstTJkK4qYw+NcdL2X7KChXnbOjjAbqf0aAsXVV0Xdt7YRWYMTFI
UybiJnJdwYGrgXJtfpavWKmm+75TCkoniytd2uveSdz0z2fVaHhlhnqKNPB9
kgXfR7jxfs2GFURY6CWyJVzLgoztO0863nYl9Mq4fm0irciY3hAsKK5L2hop
1Dq1XCbIWV1T0U/HkvA5pNNxhsr3rhPgMzykn0tj+czV0P46QvkrNy5T0qd7
PEVAP4N43lTOtIjZo+tOf9CAX92DHt9Ded1vd1i/cGm1/+JyeAKN96gDfoAu
e6obfoaOe25nnNm/iuhL8SX0avybLyahbQck+RT5fhJGn6bYRBmDY6KUNQ12
XGrd7Bk5U5xhjgfhF5Lwp/db0fAnWinaah09RVaRvDkk1cfi/OSuwWxL481m
+ZgzFTiyiTiLKTVlalp5z4t90s1kSpurVlXrLFbzWE2benO3FcSlLfZP5Sio
9IZSaUfy0ZSykfUX/Q31u3SDwZPFh3Szg02JFabJ4XNi3aR1r9XyPKfwK6gc
nl3sDz1bXiULDp1EyvFoPet7v7xI898tZe9/bzXRf+Q6Vv9/1Ln7u5TL/Pwa
zH/34KF/1rL4Zy2L//21LP6ZfPlZyZf/uLH0EgzpX0/Cefh0EFdumgBAz4df
k6G2dPsWyPTiJZI7AbLw0cqNorQ3TZftL9DRV/dcabUSNGUV3wXVOluJI8mp
W8oxilTc4WQo7nfKd8v975v91iE1N6nTuBK8E9sYac2diKF/MvTiXBI859E7
tla/W6pLR8L8LffBcDzUD5NwBgNPQ7GwStijZ888x6iCb0jzqQWFuuphHBXo
ubXgblU85nqBFE6XSRI5jViCt7qpjOJ48L5E1PgcQ0olgxwdygtQ7anElh/o
6HnALnsV23JBuy+R+fY9HxhRz5WL6RJwDgFRYTs2VZUrtjHojyQPvmyHbnfJ
0jHFbaicAU5JTVLlF/RQNihUKI6ZPcUq0+0rSfRIN+joOWsPN4Zwk2l/QU6V
6F2cFyrEAKNlAjG3ceLrQ6rtkGiOivOFTrzD67dieIkVfw7otG0jmmoaJ3MT
bmO7UUwo7O27Pt0Gd8suaozHhRXpm4+UjfZ7GBqtbCovRW6Nw/ACjC5n67/z
Dg/Fs6bv2556UsNvLq7bneA8vRGrneV46avvu/K9eFO9u1U8JW0dd5qlI1yA
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
Gk3jIs2OvP8HZOOW4p7gAAA=

-->

</rfc>
