<?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.30 (Ruby 3.4.8) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-rats-ear-02" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.31.0 -->
  <front>
    <title abbrev="EAR">EAT Attestation Results</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-rats-ear-02"/>
    <author initials="T." surname="Fossati" fullname="Thomas Fossati">
      <organization>Linaro</organization>
      <address>
        <email>thomas.fossati@linaro.org</email>
      </address>
    </author>
    <author initials="E." surname="Voit" fullname="Eric Voit">
      <organization>Cisco</organization>
      <address>
        <email>evoit@cisco.com</email>
      </address>
    </author>
    <author initials="S." surname="Trofimov" fullname="Sergei Trofimov">
      <organization>Arm Limited</organization>
      <address>
        <email>sergei.trofimov@arm.com</email>
      </address>
    </author>
    <author initials="H." surname="Birkholz" fullname="Henk Birkholz">
      <organization>Fraunhofer SIT</organization>
      <address>
        <postal>
          <street>Rheinstrasse 75</street>
          <city>Darmstadt</city>
          <code>64295</code>
          <country>Germany</country>
        </postal>
        <email>henk.birkholz@ietf.contact</email>
      </address>
    </author>
    <date year="2026" month="January" day="27"/>
    <area>Security</area>
    <workgroup>Remote ATtestation ProcedureS</workgroup>
    <keyword>EAT</keyword>
    <keyword>attestation result</keyword>
    <keyword>attestation verifier</keyword>
    <keyword>AR4SI</keyword>
    <abstract>
      <?line 72?>

<t>This document defines the EAT Attestation Result (EAR) message format.</t>
      <t>EAR is used by a verifier to encode the result of the appraisal over an
attester's evidence.
It embeds an AR4SI's "trustworthiness vector" to present a normalized view of
the evaluation results, thus easing the task of defining and computing
authorization policies by relying parties.
Alongside the trustworthiness vector, EAR provides contextual information bound
to the appraisal process.
This allows a relying party (or an auditor) to reconstruct the frame of
reference in which the trustworthiness vector was originally computed.
EAR supports simple devices with one attester as well as composite devices that
are made of multiple attesters, allowing the state of each attester to be
separately examined.
EAR can also accommodate registered and unregistered extensions.
It can be serialized and protected using either CWT or JWT.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://thomas-fossati.github.io/draft-ear/draft-fv-rats-ear.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ietf-rats-ear/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Remote ATtestation ProcedureS Working Group mailing list (<eref target="mailto:rats@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/rats/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/rats/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/thomas-fossati/draft-ear"/>.</t>
    </note>
  </front>
  <middle>
    <?line 91?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>This document defines the EAT <xref target="RFC9711"/> Attestation Result (EAR) message format.</t>
      <t>EAR is used by a verifier to encode the result of the appraisal over an
attester's evidence.
It embeds an AR4SI's "trustworthiness vector" <xref target="I-D.ietf-rats-ar4si"/> to present a
normalized view of the evaluation results, thus easing the task of defining and
computing authorization policies by relying parties.
Alongside the trustworthiness vector, EAR provides contextual information bound
to the appraisal process.
This allows a relying party (or an auditor) to reconstruct the frame of
reference in which the trustworthiness vector was originally computed.
EAR supports simple devices with one attester as well as composite devices that
are made of multiple attesters (see <xref section="3.3" sectionFormat="of" target="RFC9334"/>) allowing the
state of each attester to be separately examined.
EAR can also accommodate registered and unregistered extensions.
It can be serialized and protected using either CWT <xref target="RFC8392"/> or JWT <xref target="RFC7519"/>.</t>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>This document uses terms and concepts defined by the RATS architecture.
For a complete glossary see <xref section="4" sectionFormat="of" target="RFC9334"/>.</t>
      <t>The terminology from CBOR <xref target="STD94"/>, CDDL <xref target="RFC8610"/> and COSE <xref target="STD96"/> applies;
in particular, CBOR diagnostic notation is defined in <xref section="8" sectionFormat="of" target="STD94"/>
and <xref section="G" sectionFormat="of" target="RFC8610"/>.</t>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <?line -18?>

</section>
    <section anchor="sec-ear">
      <name>EAT Attestation Result</name>
      <t>EAR is an EAT token which can be serialized as JWT <xref target="RFC7519"/> or CWT <xref target="RFC8392"/>.</t>
      <t>The EAR claims-set is as follows:</t>
      <figure anchor="fig-cddl-ear">
        <name>EAR (CDDL Definition)</name>
        <sourcecode type="cddl"><![CDATA[
;# import rfc9711 as eat
;# import ar4si as ar4si

EAR = {
  eat.profile-label => "tag:ietf.org,2025-07:ear"
  eat.iat-claim-label => int
  verifier-id-label => ar4si.verifier-id
  ? raw-evidence-label => eat.binary-data
  eat.submods-label => { + text => EAR-appraisal }
  ? eat.nonce-label => eat.nonce-type
  * $$ear-extension
}

; EAR-specific claims
raw-evidence-label = eat.JC<"ear.raw-evidence", 1002>
verifier-id-label = eat.JC<"ear.verifier-id", 1004>
]]></sourcecode>
      </figure>
      <t>Where:</t>
      <dl>
        <dt><tt>eat_profile</tt> (mandatory)</dt>
        <dd>
          <t>The EAT profile (<xref section="6" sectionFormat="of" target="RFC9711"/>) associated with the EAR claims-set
and encodings defined by this document.
It <bcp14>MUST</bcp14> be the following tag URI (<xref target="RFC4151"/>)
<tt>tag:ietf.org,2025-07:ear</tt>.</t>
        </dd>
        <dt><tt>iat</tt> (mandatory)</dt>
        <dd>
          <t>"Issued At" claim -- the time at which the EAR is issued.
See <xref section="4.1.6" sectionFormat="of" target="RFC7519"/> and <xref section="4.3.1" sectionFormat="of" target="RFC9711"/> for the
EAT-specific encoding restrictions (i.e., disallowing the floating point
representation).</t>
        </dd>
        <dt><tt>ear.verifier-id</tt> (mandatory)</dt>
        <dd>
          <t>Identifying information about the appraising verifier.
See <xref section="3.3" sectionFormat="of" target="I-D.ietf-rats-ar4si"/> for further details on its structure and serialization.</t>
        </dd>
        <dt><tt>ear.raw-evidence</tt> (optional)</dt>
        <dd>
          <t>The unabridged evidence submitted for appraisal, including any signed
container/envelope.
This field may be consumed by other Verifiers in multi-stage verification
scenarios or by auditors.
There are privacy considerations associated with this claim.  See
<xref target="sec-priv-cons"/>.</t>
        </dd>
        <dt><tt>submods</tt> (mandatory)</dt>
        <dd>
          <t>A submodule map (<xref section="4.2.18" sectionFormat="of" target="RFC9711"/>) holding one <tt>EAR-appraisal</tt> for
each separately appraised attester.
The map <bcp14>MUST</bcp14> contain at least one entry.
For each appraised attester the verifier chooses a unique label.
For example, when evidence is in EAT format, the label could be constructed
from the associated EAT profile.
A verifier <bcp14>SHOULD</bcp14> publicly and permanently document its labelling scheme for
each supported evidence type, unless EAR payloads are produced and consumed
entirely within a private deployment.
See <xref target="sec-ear-appraisal"/> for the details about the contents of an
<tt>EAR-appraisal</tt>.</t>
        </dd>
        <dt><tt>eat_nonce</tt> (optional)</dt>
        <dd>
          <t>A user supplied nonce that is echoed by the verifier to provide freshness.
The nonce is a sequence of bytes between 8 and 64 bytes long. When serialized
as JWT, the nonce <bcp14>MUST</bcp14> be base64 encoded, resulting in a string between 12 and
88 bytes long.
See <xref section="4.1" sectionFormat="of" target="RFC9711"/>.</t>
        </dd>
        <dt><tt>$$ear-extension</tt> (optional)</dt>
        <dd>
          <t>Any registered or unregistered extension.
An EAR extension <bcp14>MUST</bcp14> be a map.
See <xref target="sec-extensions"/> for further details.</t>
        </dd>
      </dl>
      <section anchor="sec-ear-appraisal">
        <name>EAR Appraisal Claims</name>
        <figure anchor="fig-cddl-ear-appraisal">
          <name>EAR Appraisal Claims (CDDL Definition)</name>
          <sourcecode type="cddl"><![CDATA[
;# import ar4si as ar4si

EAR-appraisal = {
  status-label => ar4si.trustworthiness-tier
  ? trustworthiness-vector-label => ar4si.trustworthiness-vector
  ? appraisal-policy-id-label => text
  * $$ear-appraisal-extension
}

status-label = eat.JC<"ear.status", 1000>
trustworthiness-vector-label = eat.JC<"ear.trustworthiness-vector", 1001>
appraisal-policy-id-label = eat.JC<"ear.appraisal-policy-id", 1003>
]]></sourcecode>
        </figure>
        <dl newline="true">
          <dt><tt>ear.status</tt> (mandatory)</dt>
          <dd>
            <t>The overall appraisal status for this attester represented as one of the four
trustworthiness tiers (<xref section="3.2" sectionFormat="of" target="I-D.ietf-rats-ar4si"/>).
The value of this claim <bcp14>MUST</bcp14> be set to a tier of no higher trust than the tier
corresponding to the worst trustworthiness claim across the entire
trustworthiness vector.</t>
          </dd>
          <dt><tt>ear.trustworthiness-vector</tt> (optional)</dt>
          <dd>
            <t>The AR4SI trustworthiness vector providing the breakdown of the appraisal for
this attester.
See <xref section="3.1" sectionFormat="of" target="I-D.ietf-rats-ar4si"/> for the details.
This claim <bcp14>MUST</bcp14> be present unless the party requesting Evidence appraisal
explicitly asks for it to be dropped, e.g., via an API parameter or similar
arrangement.  Such consumer would therefore rely entirely on the semantics of
the <tt>ear.status</tt> claim.  This behaviour is <bcp14>NOT RECOMMENDED</bcp14> because of the
resulting loss of quality of the appraisal result.</t>
          </dd>
          <dt><tt>ear.appraisal-policy-id</tt> (optional)</dt>
          <dd>
            <t>An unique identifier of the appraisal policy used to evaluate the attestation
result.</t>
          </dd>
          <dt><tt>$$ear-appraisal-extension</tt> (optional)</dt>
          <dd>
            <t>Any registered or unregistered extension.
An EAR appraisal extension <bcp14>MUST</bcp14> be a map.
See <xref target="sec-extensions"/> for further details.</t>
          </dd>
        </dl>
      </section>
      <section anchor="json-serialisation">
        <name>JSON Serialisation</name>
        <section anchor="examples">
          <name>Examples</name>
          <t>The example in <xref target="fig-ex-json-1"/> shows an EAR claims-set corresponding to a
"contraindicated" appraisal, meaning the verifier has found some problems with
the attester's state reported in the submitted evidence.
Specifically, the identified issue is related to unauthorized code or
configuration loaded in runtime memory (i.e., value 96 in the executables
category).
The appraisal is for a device with one attester labelled "PSA".  Note that in
case there is only one attester, the labelling can be freely chosen because
there is no ambiguity.</t>
          <figure anchor="fig-ex-json-1">
            <name>JSON claims-set: contraindicated appraisal</name>
            <sourcecode type="cbor-diag"><![CDATA[
{
  "eat_profile": "tag:ietf.org,2025-07:ear",
  "iat": 1666529184,
  "ear.verifier-id": {
    "developer": "https://veraison-project.org",
    "build": "vts 0.0.1"
  },
  "ear.raw-evidence": "NzQ3MjY5NzM2NTYzNzQK",
  "submods": {
    "PSA": {
      "ear.status": "contraindicated",
      "ear.trustworthiness-vector": {
        "instance-identity": 2,
        "executables": 96,
        "hardware": 2
      },
      "ear.appraisal-policy-id":
        "https://veraison.example/policy/1/60a0068d"
    }
  }
}
]]></sourcecode>
          </figure>
          <t>The breakdown of the trustworthiness vector is as follows:</t>
          <ul spacing="normal">
            <li>
              <t>Instance Identity (affirming): recognized and not compromised</t>
            </li>
            <li>
              <t>Configuration (warning): known vulnerabilities</t>
            </li>
            <li>
              <t>Executables (contraindicated): contraindicated run-time</t>
            </li>
            <li>
              <t>File System (none): no claim being made</t>
            </li>
            <li>
              <t>Hardware (affirming): genuine</t>
            </li>
            <li>
              <t>Runtime Opaque (none): no claim being made</t>
            </li>
            <li>
              <t>Storage Opaque (none): no claim being made</t>
            </li>
            <li>
              <t>Sourced Data (none): no claim being made</t>
            </li>
          </ul>
          <t>The example in <xref target="fig-ex-json-2"/> contains the appraisal for a composite device
with two attesters named "CCA Platform" and "CCA Realm" respectively.
Both attesters have either "affirming" or (implicit) "none" values in their
associated trustworthiness vectors.
Note that the "none" values can refer to either an AR4SI category that is
unapplicable for the specific attester (ideally, the applicability should be
specified by the evidence format itself), or to the genuine lack of information
at the attester site regarding the specific category.  For example, the
reference values for the "CCA Realm" executables (i.e., the confidential
computing workload) may not be known to the CCA platform verifier.
In such cases, it is up to the downstream entity (typically, the relying party)
to complete the partial appraisal.</t>
          <figure anchor="fig-ex-json-2">
            <name>JSON claims-set: simple affirming appraisal</name>
            <sourcecode type="cbor-diag"><![CDATA[
{
  "eat_profile": "tag:ietf.org,2025-07:ear",
  "iat": 1666529300,
  "ear.verifier-id": {
    "developer": "https://veraison-project.org",
    "build": "vts 0.0.1"
  },
  "ear.raw-evidence": "NzQ3MjY5NzM2NTYzNzQKNzQ3MjY5NzM2NTYzNzQK",
  "submods": {
    "CCA Platform": {
      "ear.status": "affirming",
      "ear.trustworthiness-vector": {
        "instance-identity": 2,
        "executables": 2,
        "hardware": 2
      },
      "ear.appraisal-policy-id":
        "https://veraison.example/policy/1/60a0068d"
    },
    "CCA Realm": {
      "ear.status": "affirming",
      "ear.trustworthiness-vector": {
        "instance-identity": 2
      },
      "ear.appraisal-policy-id":
        "https://veraison.example/policy/1/60a0068d"
    }
  }
}
]]></sourcecode>
          </figure>
        </section>
      </section>
      <section anchor="cbor-serialisation">
        <name>CBOR Serialisation</name>
        <section anchor="examples-1">
          <name>Examples</name>
          <t>The example in <xref target="fig-ex-cbor-1"/> is semantically equivalent to that in
<xref target="fig-ex-json-1"/>.  It shows the same "contraindicated" appraisal using the
more compact CBOR serialization of the EAR claims-set.</t>
          <figure anchor="fig-ex-cbor-1">
            <name>CBOR claims-set: contraindicated appraisal</name>
            <sourcecode type="cbor-diag"><![CDATA[
{
  265: "tag:ietf.org,2025-07:ear",
  6: 1666529184,
  1004: {
    0: "https://veraison-project.org",
    1: "vts 0.0.1"
  },
  1002: h'6C696665626F61746D616E',
  266: {
    "PSA": {
      1000: 96,
      1001: {
        0: 2,
        2: 96,
        4: 2
      },
      1003: "https://veraison.example/policy/1/60a0068d"
    }
  }
}
]]></sourcecode>
          </figure>
        </section>
      </section>
    </section>
    <section anchor="sec-extensions">
      <name>EAR Extensions</name>
      <t>EAR provides core semantics for describing the result of appraising attestation
evidence.
However, a given application may offer extra functionality to its relying
parties, or tailor the attestation result to the needs of the application (e.g.,
TEEP <xref target="I-D.ietf-teep-protocol"/>).
To accommodate such cases, both <tt>EAR</tt> and <tt>EAR-appraisal</tt> claims-sets can be
extended by plugging new claims into the <tt>$$ear-extension</tt> (or
<tt>$$ear-appraisal-extension</tt>, respectively) CDDL socket.</t>
      <t>The rules that govern extensibility of EAR are those defined in <xref target="RFC8392"/> and
<xref target="RFC7519"/> for CWTs and JWTs respectively.</t>
      <t>An extension <bcp14>MUST NOT</bcp14> change the semantics of the <tt>EAR</tt> and <tt>EAR-appraisal</tt>
claims-sets.</t>
      <t>A receiver <bcp14>MUST</bcp14> ignore any unknown claim.</t>
      <section anchor="unregistered-claims">
        <name>Unregistered claims</name>
        <t>An application-specific extension will normally mint its claim from the "private
space" - using integer values less than -65536 for CWT, and Public or
Private Claim Names as defined in Sections <xref target="RFC7519" section="4.2" sectionFormat="bare"/> and <xref target="RFC7519" section="4.3" sectionFormat="bare"/> of <xref target="RFC7519"/> when
serializing to JWT.</t>
        <t>It is <bcp14>RECOMMENDED</bcp14> that JWT EARs use Collision-Resistant Public Claim Names
(<xref section="2" sectionFormat="of" target="RFC7519"/>) rather than Private Claim Names.</t>
      </section>
      <section anchor="sec-registered-claims">
        <name>Registered claims</name>
        <t>If an extension will be used across multiple applications, or is intended to be
used across multiple environments, the associated extension claims
<bcp14>SHOULD</bcp14> be registered in one, or both, the CWT and JWT claim registries.</t>
        <t>In general, if the registration policy requires an accompanying specification
document (as it is the case for "specification required" and "standards
action"), such document <bcp14>SHOULD</bcp14> explicitly say that the extension is expected to
be used in EAR claims-sets identified by this profile.</t>
        <t>An up-to-date view of the registered claims can be obtained via the
<xref target="IANA.cwt"/> and <xref target="IANA.jwt"/> registries.</t>
      </section>
      <section anchor="choosing-between-registered-and-unregistered-claims">
        <name>Choosing between registered and unregistered claims</name>
        <t>If an extension supports functionality of a specific application (e.g.
Project Veraison Services), its claims <bcp14>MAY</bcp14> be registered.</t>
        <t>If an extension supports a protocol that may be applicable across multiple
applications or environments (e.g., TEEP), its claims <bcp14>SHOULD</bcp14> be registered.</t>
        <t>Since, in general, there is no guarantee that an application will be confined
within an environment, it is <bcp14>RECOMMENDED</bcp14> that extension claims that have
meaning outside the application's context are always registered.</t>
        <t>It is also possible that claims that start out as application-specific acquire
a more stable meaning over time. In such cases, it is <bcp14>RECOMMENDED</bcp14> that new
equivalent claims are created in the "public space" and are registered as
described in <xref target="sec-registered-claims"/>. The original "private space" claims
<bcp14>SHOULD</bcp14> then be deprecated by the application.</t>
      </section>
      <section anchor="sec-extensions-teep">
        <name>TEEP Extension</name>
        <t>The TEEP protocol <xref target="I-D.ietf-teep-protocol"/> specifies the required claims that an attestation
result must carry for a TAM (Trusted Application Manager) to make decisions on
how to remediate a TEE (Trusted Execution Environment) that is out of
compliance, or update a TEE that is requesting an authorized change.</t>
        <t>The list is provided in <xref section="4.3.1" sectionFormat="of" target="I-D.ietf-teep-protocol"/>.</t>
        <t>EAR defines a TEEP application extension for the purpose of conveying such claims.</t>
        <figure anchor="fig-cddl-teep">
          <name>TEEP Extension (CDDL Definition)</name>
          <sourcecode type="cddl"><![CDATA[
;# import rfc9711 as eat
;# import rfc9393

$$ear-appraisal-extension //= (
  ear.teep-claims-label => ear-teep-claims
)

ear-teep-claims = non-empty<{
  ? eat.nonce-label => eat.nonce-type
  ? eat.ueid-label => eat.ueid-type
  ? eat.oemid-label => eat.oemid-pen / eat.oemid-ieee / eat.oemid-random
  ? eat.hardware-model-label => eat.hardware-model-type
  ? eat.hardware-version-label => eat.hardware-version-type
  ? eat.manifests-label => eat.manifests-type
}>

ear.teep-claims-label = eat.JC<"ear.teep-claims", 65000>
]]></sourcecode>
        </figure>
        <section anchor="json-serialization-example">
          <name>JSON Serialization Example</name>
          <sourcecode type="cddl"><![CDATA[
{
  "eat_profile": "tag:ietf.org,2025-07:ear",
  "iat": 1666529184,
  "ear.verifier-id": {
    "developer": "https://veraison-project.org",
    "build": "vts 0.0.1"
  },
  "ear.raw-evidence": "NzQ3MjY5NzM2NTYzNzQK",
  "submods": {
    "PSA": {
      "ear.status": "contraindicated",
      "ear.trustworthiness-vector": {
        "instance-identity": 2,
        "executables": 96,
        "hardware": 2
      },
      "ear.appraisal-policy-id":
        "https://veraison.example/policy/1/60a0068d",
      "ear.teep-claims": {
        "eat_nonce": "80FH7byS7VjfARIq0_KLqu6B9j-F79QtV6p",
        "ueid": "AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyAh",
        "oemid": "Av8B",
        "hwmodel": "fJYq",
        "hwversion": ["1.2.5", 16384]
      }
    }
  }
}
]]></sourcecode>
        </section>
        <section anchor="cbor-serialization-example">
          <name>CBOR Serialization Example</name>
          <sourcecode type="cddl"><![CDATA[
{
  265: "tag:ietf.org,2025-07:ear",
  6: 1666529184,
  1004: {
    0: "https://veraison-project.org",
    1: "vts 0.0.1"
  },
  1002: h'6C696665626F61746D616E',
  266: {
    "PSA": {
      1000: 0,
      1001: {
        0: 2,
        1: 2,
        2: 2,
        4: 2
      },
      1003: "https://veraison.example/policy/1/60a0068d",
      65000: {
        10: h'948f8860d13a463e',
        256: h'0198f50a4ff6c05861c8860d13a638ea',
        258: 64242,
        259: h'ee80f5a66c1fb9742999a8fdab930893',
        260: ["1.2.5", 16384]
      }
    }
  }
}
]]></sourcecode>
        </section>
      </section>
      <section anchor="sec-extensions-veraison">
        <name>Project Veraison Extensions</name>
        <t>The Project Veraison verifier defines three private, application-specific
extensions:</t>
        <dl newline="true">
          <dt><tt>ear.veraison.annotated-evidence</tt></dt>
          <dd>
            <t>JSON representation of the evidence claims-set, including any annotations
provided by the Project Veraison verifier.
There are privacy considerations associated with this claim.  See
<xref target="sec-priv-cons"/>.</t>
          </dd>
          <dt><tt>ear.veraison.policy-claims</tt></dt>
          <dd>
            <t>any extra claims added by the policy engine in the Project Veraison verifier.</t>
          </dd>
          <dt><tt>ear.veraison.key-attestation</tt></dt>
          <dd>
            <t>contains the public key part of a successfully verified attested key.
The key is a DER encoded ASN.1 SubjectPublicKeyInfo structure (<xref section="4.1.2.7" sectionFormat="of" target="RFC5280"/>).</t>
          </dd>
        </dl>
        <figure anchor="fig-cddl-veraison">
          <name>Project Veraison Extensions (CDDL Definition)</name>
          <sourcecode type="cddl"><![CDATA[
;# import rfc9711 as eat

$$ear-appraisal-extension //= (
  ear.veraison.annotated-evidence-label => ear-veraison-annotated-evidence
)

ear-veraison-annotated-evidence = {
  + text => any
}

$$ear-appraisal-extension //= (
  ear.veraison.policy-claims-label => ear-veraison-policy-claims
)

ear-veraison-policy-claims = {
  + text => any
}

$$ear-appraisal-extension //= (
  ear.veraison.key-attestation-label => ear-veraison-key-attestation
)

ear-veraison-key-attestation = {
  "akpub" => eat.binary-data
}

ear.veraison.annotated-evidence-label = eat.JC<"ear.veraison.annotated-evidence", -70000>
ear.veraison.policy-claims-label = eat.JC<"ear.veraison.policy-claims", -70001>
ear.veraison.key-attestation-label = eat.JC<"ear.veraison.key-attestation", -70002>
]]></sourcecode>
        </figure>
        <section anchor="json-serialization-examples">
          <name>JSON Serialization Examples</name>
          <sourcecode type="cbor-diag"><![CDATA[
{
  "eat_profile": "tag:ietf.org,2025-07:ear",
  "iat": 1666529184,
  "ear.verifier-id": {
    "developer": "https://veraison-project.org",
    "build": "vts 0.0.1"
  },
  "ear.raw-evidence": "NzQ3MjY5NzM2NTYzNzQK",
  "submods": {
    "PSA_IOT": {
      "ear.status": "contraindicated",
      "ear.trustworthiness-vector": {
        "instance-identity": 2,
        "executables": 96,
        "hardware": 2
      },
      "ear.appraisal-policy-id":
        "https://veraison.example/policy/1/60a0068d",
      "ear.veraison.annotated-evidence": {
        "eat-profile": "http://arm.com/psa/2.0.0",
        "psa-client-id": 1,
        "psa-security-lifecycle": 12288,
        "psa-implementation-id":
          "AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA=",
        "psa-software-components": [
          {
            "measurement-value":
              "AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA=",
            "signer-id":
              "AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA="
          },
          {
            "measurement-value":
              "AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA=",
            "signer-id":
              "AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA="
          }
        ],
        "psa-nonce":
          "AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA=",
        "psa-instance-id":
          "AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyAh",
        "psa-certification-reference": "1234567890123-12345"
      },
      "ear.veraison.policy-claims": {
        "psa-certified": {
          "certificate-number": "1234567890123-12345",
          "date-of-issue": "23/06/2022",
          "test-lab": "Riscure",
          "certification-holder": "ACME Inc.",
          "certified-product": "RoadRunner",
          "hardware-version": "Gizmo v1.0.2",
          "software-version": "TrustedFirmware-M v1.0.6",
          "certification-type": "PSA Certified Level 1 v2.1",
          "developer-type": "PSA Certified – Device"
        }
      }
    }
  }
}
]]></sourcecode>
          <sourcecode type="cbor-diag"><![CDATA[
{
  "eat_profile": "tag:ietf.org,2025-07:ear",
  "iat": 1666529184,
  "ear.verifier-id": {
    "developer": "https://veraison-project.org",
    "build": "vts 0.0.1"
  },
  "ear.raw-evidence": "NzQ3MjY5NzM2NTYzNzQK",
  "submods": {
    "PARSEC_TPM": {
      "ear.status": "affirming",
      "ear.trustworthiness-vector": {
        "instance-identity": 2,
        "executables": 2,
        "hardware": 2
      },
      "ear.appraisal-policy-id":
        "https://veraison.example/policy/1/60a0068d",
      "ear.veraison.key-attestation": {
        "akpub":
          "MFkwEwYHKoZIzj0CAQYIKoZIz___"
      }
    }
  }
}
]]></sourcecode>
        </section>
        <section anchor="cbor-serialization-example-1">
          <name>CBOR Serialization Example</name>
          <sourcecode type="cbor-diag"><![CDATA[
{
  265: "tag:ietf.org,2025-07:ear",
  6: 1666529184,
  1004: {
    0: "https://veraison-project.org",
    1: "vts 0.0.1"
  },
  1002: h'6C696665626F61746D616E',
  266: {
    "PSA_IOT": {
      1000: 0,
      1001: {
        0: 2,
        1: 2,
        2: 2,
        4: 2
      },
      1003: "https://veraison.example/policy/1/60a0068d",
      -70000: {
        "eat-profile": "http://arm.com/psa/2.0.0",
        "psa-client-id": 1,
        "psa-security-lifecycle": 12288,
        "psa-implementation-id":
          "AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA=",
        "psa-software-components": [
          {
            "measurement-value":
              "AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA=",
            "signer-id":
              "AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA="
          },
          {
            "measurement-value":
              "AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA=",
            "signer-id":
              "AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA="
          }
        ],
        "psa-nonce":
          "AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA=",
        "psa-instance-id":
          "AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyAh",
        "psa-certification-reference": "1234567890123-12345"
      },
      -70001: {
        "psa-certified": {
          "certificate-number": "1234567890123-12345",
          "date-of-issue": "23/06/2022",
          "test-lab": "Riscure",
          "certification-holder": "ACME Inc.",
          "certified-product": "RoadRunner",
          "hardware-version": "Gizmo v1.0.2",
          "software-version": "TrustedFirmware-M v1.0.6",
          "certification-type": "PSA Certified Level 1 v2.1",
          "developer-type": "PSA Certified – Device"
        }
      }
    }
  }
}
]]></sourcecode>
        </section>
      </section>
    </section>
    <section anchor="media-types">
      <name>Media Types</name>
      <t>Media types for EAR are automatically derived from the base EAT media type
<xref target="RFC9782"/> using the profile string defined in <xref target="sec-ear"/>.</t>
      <t>For example, a JWT serialization would use:</t>
      <artwork><![CDATA[
application/eat-jwt; eat_profile="tag:ietf.org,2025-07:ear"
]]></artwork>
      <t>A CWT serialization would instead use:</t>
      <artwork><![CDATA[
application/eat-cwt; eat_profile="tag:ietf.org,2025-07:ear"
]]></artwork>
    </section>
    <section anchor="implementation-status">
      <name>Implementation Status</name>
      <t>This section records the status of known implementations of the protocol
defined by this specification at the time of posting of this Internet-Draft,
and is based on a proposal described in <xref target="RFC7942"/>.
The description of implementations in this section is intended to assist the
IETF in its decision processes in progressing drafts to RFCs.
Please note that the listing of any individual implementation here does not
imply endorsement by the IETF.
Furthermore, no effort has been spent to verify the information presented here
that was supplied by IETF contributors.
This is not intended as, and must not be construed to be, a catalog of
available implementations or their features.
Readers are advised to note that other implementations may exist.</t>
      <t>According to <xref target="RFC7942"/>, "this will allow reviewers and working groups to
assign due consideration to documents that have the benefit of running code,
which may serve as evidence of valuable experimentation and feedback that have
made the implemented protocols more mature.
It is up to the individual working groups to use this information as they see
fit".</t>
      <section anchor="project-veraison">
        <name>Project Veraison</name>
        <t>The organization responsible for this implementation is Project Veraison, a
Linux Foundation project hosted at the Confidential Computing Consortium.</t>
        <t>The organization currently provides two separate implementations: one in Golang
another in C17.</t>
        <t>The developers can be contacted on the Zulip channel:
<eref target="https://veraison.zulipchat.com/#narrow/stream/357929-EAR/"/>.</t>
        <section anchor="githubcomveraisonear">
          <name><tt>github.com/veraison/ear</tt></name>
          <t>The software, hosted at <eref target="https://github.com/veraison/ear"/>, provides a Golang
package that allows encoding, decoding, signing and verification of EAR
payloads together with a CLI (<tt>arc</tt>) to create, verify and visualize EARs on
the command line.
The maturity level is currently alpha, and only the JWT serialization is
implemented.
The license is Apache 2.0.
The package is used by the Project Veraison verifier to produce attestation
results.</t>
        </section>
        <section anchor="githubcomveraisonc-ear">
          <name><tt>github.com/veraison/c-ear</tt></name>
          <t>The software, hosted at <eref target="https://github.com/veraison/c-ear"/>, provides a C17
library that allows verification and partial decoding of EAR payloads.
The maturity level is currently pre-alpha, and only the JWT serialization is
implemented.
The license is Apache 2.0.
The library targets relying party applications that need to verify attestation
results.</t>
        </section>
        <section anchor="githubcomveraisonrust-ear">
          <name><tt>github.com/veraison/rust-ear</tt></name>
          <t>The software, hosted at <eref target="https://github.com/veraison/rust-ear"/>, provides a
Rust (2021 edition) library that allows verification and partial decoding of
EAR payloads. The maturity level is currently pre-alpha, with limitted
algorithm support.  Both JWT and COSE serializations are implemented.  The
license is Apache 2.0.  The library targets verifiers that need to produce
attestation results as well as relying party applications that need to verify
and consume attestation results.</t>
        </section>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>TODO Security</t>
    </section>
    <section anchor="sec-priv-cons">
      <name>Privacy Considerations</name>
      <t>EAR is designed to expose as little identifying information as possible about
the attester.
However, certain EAR claims have direct privacy implications.
Implementations should therefore allow applying privacy-preserving techniques
to those claims, for example allowing their redaction, anonymisation or
outright removal.
Specifically:</t>
      <ul spacing="normal">
        <li>
          <t>It <bcp14>SHOULD</bcp14> be possible to disable inclusion of the optional <tt>ear.raw-evidence</tt>
claim</t>
        </li>
        <li>
          <t>It <bcp14>SHOULD</bcp14> be possible to disable inclusion of the optional
<tt>ear.veraison.annotated-evidence</tt> claim</t>
        </li>
        <li>
          <t>It <bcp14>SHOULD</bcp14> be possible to allow redaction, anonymisation or removal of
specific claims from the <tt>ear.veraison.annotated-evidence</tt> object</t>
        </li>
      </ul>
      <t>EAR is an EAT, therefore the privacy considerations in <xref section="8" sectionFormat="of" target="RFC9711"/>
apply.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <section anchor="sec-iana-ear-claims">
        <name>New EAT Claims</name>
        <t>This specification adds the following values to the "JSON Web Token Claims"
registry <xref target="IANA.jwt"/> and the "CBOR Web Token Claims" registry <xref target="IANA.cwt"/>.</t>
        <t>Each entry below is an addition to both registries.</t>
        <t>The "Claim Description", "Change Controller" and "Specification Documents" are
common and equivalent for the JWT and CWT registries.
The "Claim Key" and "Claim Value Types(s)" are for the CWT registry only.
The "Claim Name" is as defined for the CWT registry, not the JWT registry.
The "JWT Claim Name" is equivalent to the "Claim Name" in the JWT registry.</t>
        <section anchor="ear-status">
          <name>EAR Status</name>
          <ul spacing="normal">
            <li>
              <t>Claim Name: ear.status</t>
            </li>
            <li>
              <t>Claim Description: EAR Status</t>
            </li>
            <li>
              <t>JWT Claim Name: ear.status</t>
            </li>
            <li>
              <t>Claim Key: 1000 (suggested)</t>
            </li>
            <li>
              <t>Claim Value Type(s): unsigned integer (0, 2, 32, 96)</t>
            </li>
            <li>
              <t>Change Controller: IESG</t>
            </li>
            <li>
              <t>Specification Document(s): <xref target="sec-ear-appraisal"/> of RFCthis</t>
            </li>
          </ul>
        </section>
        <section anchor="trustworthiness-vector">
          <name>Trustworthiness Vector</name>
          <ul spacing="normal">
            <li>
              <t>Claim Name: ear.trustworthiness-vector</t>
            </li>
            <li>
              <t>Claim Description: EAR Trustworthiness Vector</t>
            </li>
            <li>
              <t>JWT Claim Name: ear.trustworthiness-vector</t>
            </li>
            <li>
              <t>Claim Key: 1001 (suggested)</t>
            </li>
            <li>
              <t>Claim Value Type(s): map</t>
            </li>
            <li>
              <t>Change Controller: IESG</t>
            </li>
            <li>
              <t>Specification Document(s): <xref target="sec-ear-appraisal"/> of RFCthis</t>
            </li>
          </ul>
        </section>
        <section anchor="ear-raw-evidence">
          <name>EAR Raw Evidence</name>
          <ul spacing="normal">
            <li>
              <t>Claim Name: ear.raw-evidence</t>
            </li>
            <li>
              <t>Claim Description: EAR Raw Evidence</t>
            </li>
            <li>
              <t>JWT Claim Name: ear.raw-evidence</t>
            </li>
            <li>
              <t>Claim Key: 1002 (suggested)</t>
            </li>
            <li>
              <t>Claim Value Type(s): bytes</t>
            </li>
            <li>
              <t>Change Controller: IESG</t>
            </li>
            <li>
              <t>Specification Document(s): <xref target="sec-ear"/> of RFCthis</t>
            </li>
          </ul>
        </section>
        <section anchor="ear-appraisal-policy-identifier">
          <name>EAR Appraisal Policy Identifier</name>
          <ul spacing="normal">
            <li>
              <t>Claim Name: ear.appraisal-policy-id</t>
            </li>
            <li>
              <t>Claim Description: EAR Appraisal Policy Identifier</t>
            </li>
            <li>
              <t>JWT Claim Name: ear.appraisal-policy-id</t>
            </li>
            <li>
              <t>Claim Key: 1003 (suggested)</t>
            </li>
            <li>
              <t>Claim Value Type(s): text</t>
            </li>
            <li>
              <t>Change Controller: IESG</t>
            </li>
            <li>
              <t>Specification Document(s): <xref target="sec-ear-appraisal"/> of RFCthis</t>
            </li>
          </ul>
        </section>
        <section anchor="verifier-software-identifier">
          <name>Verifier Software Identifier</name>
          <ul spacing="normal">
            <li>
              <t>Claim Name: ear.verifier-id</t>
            </li>
            <li>
              <t>Claim Description: AR4SI Verifier Software Identifier</t>
            </li>
            <li>
              <t>JWT Claim Name: ear.verifier-id</t>
            </li>
            <li>
              <t>Claim Key: 1004 (suggested)</t>
            </li>
            <li>
              <t>Claim Value Type(s): map</t>
            </li>
            <li>
              <t>Change Controller: IESG</t>
            </li>
            <li>
              <t>Specification Document(s): <xref target="sec-ear"/> of RFCthis</t>
            </li>
          </ul>
        </section>
        <section anchor="ear-teep-claims">
          <name>EAR TEEP Claims</name>
          <t>TODO</t>
        </section>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC7519">
          <front>
            <title>JSON Web Token (JWT)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
            <date month="May" year="2015"/>
            <abstract>
              <t>JSON Web Token (JWT) is a compact, URL-safe means of representing claims to be transferred between two parties. The claims in a JWT are encoded as a JSON object that is used as the payload of a JSON Web Signature (JWS) structure or as the plaintext of a JSON Web Encryption (JWE) structure, enabling the claims to be digitally signed or integrity protected with a Message Authentication Code (MAC) and/or encrypted.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7519"/>
          <seriesInfo name="DOI" value="10.17487/RFC7519"/>
        </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>
        <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="RFC5280">
          <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="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="I-D.ietf-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>Linaro</organization>
            </author>
            <author fullname="Vincent Scarlata" initials="V." surname="Scarlata">
              <organization>Intel</organization>
            </author>
            <date day="15" month="August" year="2025"/>
            <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.

   This document also defines two serialisations of the proposed
   information model, utilising CBOR and JSON.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-rats-ar4si-09"/>
        </reference>
        <reference anchor="RFC9711">
          <front>
            <title>The Entity Attestation Token (EAT)</title>
            <author fullname="L. Lundblade" initials="L." surname="Lundblade"/>
            <author fullname="G. Mandyam" initials="G." surname="Mandyam"/>
            <author fullname="J. O'Donoghue" initials="J." surname="O'Donoghue"/>
            <author fullname="C. Wallace" initials="C." surname="Wallace"/>
            <date month="April" year="2025"/>
            <abstract>
              <t>An Entity Attestation Token (EAT) provides an attested claims set that describes the state and characteristics of an entity, a device such as a smartphone, an Internet of Things (IoT) device, network equipment, or such. This claims set is used by a relying party, server, or service to determine the type and degree of trust placed in the entity.</t>
              <t>An EAT is either a CBOR Web Token (CWT) or a JSON Web Token (JWT) with attestation-oriented claims.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9711"/>
          <seriesInfo name="DOI" value="10.17487/RFC9711"/>
        </reference>
        <reference anchor="I-D.ietf-teep-protocol">
          <front>
            <title>Trusted Execution Environment Provisioning (TEEP) Protocol</title>
            <author fullname="Hannes Tschofenig" initials="H." surname="Tschofenig">
         </author>
            <author fullname="Mingliang Pei" initials="M." surname="Pei">
              <organization>Broadcom</organization>
            </author>
            <author fullname="Dave Wheeler" initials="D. M." surname="Wheeler">
              <organization>Amazon</organization>
            </author>
            <author fullname="Dave Thaler" initials="D." surname="Thaler">
              <organization>Microsoft</organization>
            </author>
            <author fullname="Akira Tsukamoto" initials="A." surname="Tsukamoto">
              <organization>Openchip &amp; Software Technologies, S.L.</organization>
            </author>
            <date day="3" month="March" year="2025"/>
            <abstract>
              <t>   This document specifies a protocol that installs, updates, and
   deletes Trusted Components in a device with a Trusted Execution
   Environment (TEE).  This specification defines an interoperable
   protocol for managing the lifecycle of Trusted Components.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-teep-protocol-21"/>
        </reference>
        <reference anchor="RFC9782">
          <front>
            <title>Entity Attestation Token (EAT) Media Types</title>
            <author fullname="L. Lundblade" initials="L." surname="Lundblade"/>
            <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
            <author fullname="T. Fossati" initials="T." surname="Fossati"/>
            <date month="May" year="2025"/>
            <abstract>
              <t>The payloads used in Remote ATtestation procedureS (RATS) may require an associated media type for their conveyance, for example, when the payloads are used in RESTful APIs.</t>
              <t>This memo defines media types to be used for Entity Attestation Tokens (EATs).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9782"/>
          <seriesInfo name="DOI" value="10.17487/RFC9782"/>
        </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>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <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="RFC7942">
          <front>
            <title>Improving Awareness of Running Code: The Implementation Status Section</title>
            <author fullname="Y. Sheffer" initials="Y." surname="Sheffer"/>
            <author fullname="A. Farrel" initials="A." surname="Farrel"/>
            <date month="July" year="2016"/>
            <abstract>
              <t>This document describes a simple process that allows authors of Internet-Drafts to record the status of known implementations by including an Implementation Status section. This will allow reviewers and working groups to assign due consideration to documents that have the benefit of running code, which may serve as evidence of valuable experimentation and feedback that have made the implemented protocols more mature.</t>
              <t>This process is not mandatory. Authors of Internet-Drafts are encouraged to consider using the process for their documents, and working groups are invited to think about applying the process to all of their protocol specifications. This document obsoletes RFC 6982, advancing it to a Best Current Practice.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="205"/>
          <seriesInfo name="RFC" value="7942"/>
          <seriesInfo name="DOI" value="10.17487/RFC7942"/>
        </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="IANA.cwt" target="https://www.iana.org/assignments/cwt">
          <front>
            <title>CBOR Web Token (CWT) Claims</title>
            <author>
              <organization>IANA</organization>
            </author>
          </front>
        </reference>
        <reference anchor="IANA.jwt" target="https://www.iana.org/assignments/jwt">
          <front>
            <title>JSON Web Token (JWT)</title>
            <author>
              <organization>IANA</organization>
            </author>
          </front>
        </reference>
      </references>
    </references>
    <?line 937?>

<section anchor="common-cddl-types">
      <name>Common CDDL Types</name>
      <dl newline="true">
        <dt><tt>non-empty</tt></dt>
        <dd>
          <t>A CDDL generic that can be used to ensure the presence of at least one item
in an object with only optional fields.</t>
        </dd>
      </dl>
      <sourcecode type="cddl"><![CDATA[
non-empty<M> = (M) .within ({ + any => any })
]]></sourcecode>
    </section>
    <section anchor="open-policy-agent-example">
      <name>Open Policy Agent Example</name>
      <t>Open Policy Agent <eref target="https://www.openpolicyagent.org">OPA</eref> is a popular and
flexible policy engine that is used in a variety of contexts, from cloud to
IoT.  OPA policies are written using a purpose-built, declarative programming
language called
<eref target="https://www.openpolicyagent.org/docs/latest/policy-language/">Rego</eref>.  Rego has
been designed to handle JSON claim-sets and their JWT envelopes as first class
objects, which makes it an excellent fit for dealing with JWT EARs.</t>
      <t>The following example illustrates an OPA policy that a Relying Party would use
to make decisions based on a JWT EAR received from a trusted verifier.</t>
      <sourcecode type="rego"><![CDATA[
package ear

ear_appraisal = {
    "verified": signature_verified,
    "appraisal-status": status,
    "trustworthiness-vector": trust_vector,
} {
    # verify EAR signature is correct and from one of the known and
    # trusted verifiers
    signature_verified := io.jwt.verify_es256(
        input.ear_token,
        json.marshal(input.trusted_verifiers)
    )

    # extract the EAR claims-set
    [_, payload, _] := io.jwt.decode(input.ear_token)

    # access the attester-specific appraisal record
    app_rec := payload.submods.PARSEC_TPM
    status := app_rec["ear.status"] == "affirming"

    # extract the trustworhiness vector for further inspection
    trust_vector := app_rec["ear.trustworthiness-vector"]
}

# add further conditions on the trust_vector here
# ...
]]></sourcecode>
      <t>The result of the policy appraisal is the following JSON object:</t>
      <sourcecode type="json"><![CDATA[
{
    "ear_appraisal": {
        "appraisal-status": true,
        "trustworthiness-vector": {
            "executables": 2,
            "hardware": 2,
            "instance-identity": 2
        },
        "verified": true
    }
}
]]></sourcecode>
      <t>For completeness, the trusted verifier public key and the EAR JWT used in the
example are provided below.</t>
      <artwork><![CDATA[
=============== NOTE: '\' line wrapping per RFC 8792 ================
{
    "ear_token": "eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCJ9.eyJlYXIucmF3L\
WV2aWRlbmNlIjoiTnpRM01qWTVOek0yTlRZek56UUsiLCJlYXIudmVyaWZpZXItaWQiO\
nsiYnVpbGQiOiJ2dHMgMC4wLjEiLCJkZXZlbG9wZXIiOiJodHRwczovL3ZlcmFpc29uL\
XByb2plY3Qub3JnIn0sImVhdF9wcm9maWxlIjoidGFnOmdpdGh1Yi5jb20sMjAyMzp2Z\
XJhaXNvbi9lYXIiLCJpYXQiOjEuNjY2NTI5MTg0ZSswOSwianRpIjoiNTViOGIzZmFkO\
GRkMWQ4ZWFjNGU0OGYxMTdmZTUwOGIxMWY4NDRkOWYwMTg5YmZlZDliODc1MTVhNjc1N\
DI2NCIsIm5iZiI6MTY3NzI0Nzg3OSwic3VibW9kcyI6eyJQQVJTRUNfVFBNIjp7ImVhc\
i5hcHByYWlzYWwtcG9saWN5LWlkIjoiaHR0cHM6Ly92ZXJhaXNvbi5leGFtcGxlL3Bvb\
GljeS8xLzYwYTAwNjhkIiwiZWFyLnN0YXR1cyI6ImFmZmlybWluZyIsImVhci50cnVzd\
HdvcnRoaW5lc3MtdmVjdG9yIjp7ImV4ZWN1dGFibGVzIjoyLCJoYXJkd2FyZSI6Miwia\
W5zdGFuY2UtaWRlbnRpdHkiOjJ9LCJlYXIudmVyYWlzb24ua2V5LWF0dGVzdGF0aW9uI\
jp7ImFrcHViIjoiTUZrd0V3WUhLb1pJemowQ0FRWUlLb1pJemowREFRY0RRZ0FFY2pTc\
DhfTVdNM2d5OFR1Z1dPMVRwUVNqX3ZJa3NMcEMtZzhsNVMzbHBHYjdQV1dHb0NBakVQO\
F9BNTlWWndMWGd3b1p6TjBXeHVCUGpwYVdpV3NmQ1EifX19fQ.3Ym-f1LEgamxePUM7h\
6Y2RJDGh9eeL0xKor0n1wE9jdAnLNwm3rTKFV2S2LbqVFoDtK9QGalT2t5RnUdfwZNmg\
",
    "trusted_verifiers": {
        "keys": [
            {
                "alg": "ES256",
                "crv": "P-256",
                "kty": "EC",
                "x": "usWxHK2PmfnHKwXPS54m0kTcGJ90UiglWiGahtagnv8",
                "y": "IBOL-C3BttVivg-lSreASjpkttcsz-1rb7btKLv8EX4"
            }
        ]
    }
}
]]></artwork>
    </section>
    <section anchor="open-issues">
      <name>Open Issues</name>
      <t><cref>Note to RFC Editor: please remove before publication.</cref></t>
      <t>The list of currently open issues for this documents can be found at
<eref target="https://github.com/thomas-fossati/draft-ear/issues"/>.</t>
    </section>
    <section anchor="document-history">
      <name>Document History</name>
      <t><cref>Note to RFC Editor: please remove before publication.</cref></t>
      <section anchor="draft-fv-rats-ear-00">
        <name>draft-fv-rats-ear-00</name>
        <t>Initial release.</t>
      </section>
      <section anchor="draft-fv-rats-ear-01">
        <name>draft-fv-rats-ear-01</name>
        <ul spacing="normal">
          <li>
            <t>privacy considerations</t>
          </li>
          <li>
            <t>OPA policy example</t>
          </li>
          <li>
            <t>add rust-ear crate to the implementation status section</t>
          </li>
        </ul>
      </section>
      <section anchor="draft-fv-rats-ear-02">
        <name>draft-fv-rats-ear-02</name>
        <ul spacing="normal">
          <li>
            <t>align JWT and CWT representations of eat_nonce</t>
          </li>
        </ul>
      </section>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>Many thanks to
Dave Thaler,
Greg Kostal,
Simon Frost,
Yogesh Deshpande
for helpful comments and discussions that have shaped this document.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
gVKiHV09Q9mKmYmb1nTywO3Akg6ygkOKYB0wgDVJF+0ducLpaZe1eKvYOJVR
0+pCKOqkjssygMIxL2sAQaKpFaTxQeBjSnv/WKznzlhJ38QobVGYkOLTH/VD
lU2VCfA0xUn+od4/mddELz6qL9xZj2rOFzrGQ9+H05NS8AOL9tqJjLDj+oyK
4vJsDJlAjlFceEzPF9fAtl4zN0BXQkrU+UcRNzZaK+lRquuH06SK6KFvM2VH
s1hYqzrhUTzm3opspSb9mE66Sq1XLQUUXblRX9MrfBsHG/z4sawDQGX28WcD
NAoTiZUCLOm4nO7O5AoeVsziEmkNajxuoT7w8CP8xCnUjPpjSdUsg02iTB4/
QkPV50czm+1n9vq1mdC2bKV6//N1Uc2qz64vKwUFPnU36WJh4ieo6We8u/EC
vbd0VBurO6vjKz+DRA9MB2wvWLValTK6Py5+i1LxZa7icd5vJfEihYU8ICaq
sBTz5HiqkO+2yDN4LGcke3xFNqCc5KmMv1yKw5JXz9XWy+X8mEKAPj4ucwpU
PgGe1+sqkghoOcO0wX7mpS/tsCMHoNzSagkPetMgk/wOirpEh+65lFzW6/x/
WENqf4u9/OklnSaAegLMUoAL5uwd7LLNV+0GK3R6bW4QcRJmVYj5m/Hg0HZP
3TcH5w+detftxB2/t2Hvdlqd2/DDxe6bdhUaeVcfOlN7ctA8/sm6vGjwy543
mHS9zk3g9v2wd1Kr/3LZvzgVt7V53+tdi9uN1vl57B7vyp7O5GLOL6/D6w+d
hF++d09/ssCjvPIvwsHhe5y84RydjE5212fHN/vY6/b6w7U3OGzPoAe+D5yj
3sx+CO6Om9cewBHajfYUYPmwMx80Qu+q+X46aL7xO34t7kwuxs5Be2ZP2hN+
eU8wOocH/unECZ3Dcf3K3bgZNGrxyc32/OQhbFzDKG/G/EP3buC2EVqcP7z6
AHDd7E+7N1eNbr+zcdIf1a7P4tnp2czlfi/EUbv9C/f0sPNwPTm4hRUd9m5P
Lt+vX18e3HQPz2unh1f3J31nct0/n0Gr+5PLq/XuXu/29PJqBqNtXE2uves9
zz3ds+sn/Ytx98aud3+y9jqN7i5swmTDvXY7rZP+VbP70Kl1H0ZNnNtuXriD
y/atPe+0YF/ev7940++dd4cXBzvdzk34Cldv/2S5G2P7aGd+dek9XF3OEvuw
HfPL7sbxpXeLkPOjXs0+Omkdz9uN63T1G544PIC2995xc+duACvybsTZ5v3x
w9Xsqr89696MbzvuzIUVzo/9bu3qQ6+OcHQmB5PriTcfXHrT63mHdsB2N2q2
f/Hg/GQdOXe23wv45YZnN08SoIUb57A9V9ACvrp12B93cHjxALDNAfvB1Yc3
t07jYH59BhiAGTlQ3cYDtJpeNc4Toj7YA+foFvboTdukMlzxoLE+5Y0LWO1B
zYFRoV+NX7annZ8smvMgso8uXKLd8+vIqV00L8/Hx4N6+EZMgtn72kHv8txL
f/f2D3pXtV7vunZwcNUI+4DdvfGwf+F0TxrOxulBr35dd96dXPRm5xfdXz40
r9/wZvfE3j9Jrh/Gcffi5GFwtHN0deO8v6g7R4Nad4ffXrwHejlo73T73uWl
75xcHjpNmK/Vv9n5II4uds8Pw9nVhRNeNLuT9/V9d/ih3h6+rzavJpVh/Xh/
xCf34t35yavxT1brqtF7s3c4bgtxXLt/G0Q1vz7bb9842/5xdzZpRv23BxeN
s8bx4JeLg2Avedt+f8i9fiPZ6PnnznB23Z2MfrJKptliKvO8BAdJVkz0LCZH
SknvjVC67J+BVVHIbqT3dnRHOV2VJ97fkmAu7e8ue3mPr6bx5f3R28a7ydA/
ejv78O5sY31Su+3bh2/atXN35F26h3yc8JF/t7lsDBq+s3N6XNlt7iTJhXs3
qnhnkdg+uwlvk8SOHyr1aPBqkLw9vtvc/7Beyg1hZFPm9YJyeehLe+ADfm9H
YviDLD5NeTlsnz6UtsVCmZ1D4XBMx6CYtVQXsgTQ92vU1yhbg25LehCGfoP8
LoLxDZos20N/NoC+08ATa/k5XzIOJjyuDPHLtYm7RhlE6OCuyYHp8D71gdkR
ABFE899nVeAxy+mGd/LruBiFqNWwHpxLZ4SRoLGqTzWtY+BheYAfXhgOhlKu
8BDNJH2iyWzKoNCpJvlUD2X9qQytpyBoIATgBI38QszavEofy08pq/IaiM9t
G612cAdHtFXg7csUU+G8Lg25F4sS2HQn6EdjAcFbSvHZw6OwPpjcAlyGQ/Bj
2NsAgPTK1pmLIYWDCH6WratgJOIxhlrGIYAjrCFZfF44nHqUf0C0gYA6mHUa
x9lRIx22gVEfoiOZ/zDl/wdbXTIBC4YAAA==

-->

</rfc>
