<?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.29 (Ruby 3.4.4) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-rats-ear-01" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.30.0 -->
  <front>
    <title abbrev="EAR">EAT Attestation Results</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-rats-ear-01"/>
    <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="2025" month="July" day="24"/>
    <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="I-D.ietf-rats-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" <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="I-D.ietf-rats-eat"/>) 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="I-D.ietf-rats-eat"/> 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="I-D.ietf-rats-eat"/>) 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="I-D.ietf-rats-eat"/>.</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="I-D.ietf-rats-eat-media-type"/> 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="I-D.ietf-rats-eat"/>
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="6" month="February" 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-08"/>
        </reference>
        <reference anchor="I-D.ietf-rats-eat">
          <front>
            <title>The Entity Attestation Token (EAT)</title>
            <author fullname="Laurence Lundblade" initials="L." surname="Lundblade">
              <organization>Security Theory LLC</organization>
            </author>
            <author fullname="Giridhar Mandyam" initials="G." surname="Mandyam">
              <organization>Mediatek USA</organization>
            </author>
            <author fullname="Jeremy O'Donoghue" initials="J." surname="O'Donoghue">
              <organization>Qualcomm Technologies Inc.</organization>
            </author>
            <author fullname="Carl Wallace" initials="C." surname="Wallace">
              <organization>Red Hound Software, Inc.</organization>
            </author>
            <date day="6" month="September" 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-31"/>
        </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="I-D.ietf-rats-eat-media-type">
          <front>
            <title>EAT Media Types</title>
            <author fullname="Laurence Lundblade" initials="L." surname="Lundblade">
              <organization>Security Theory LLC</organization>
            </author>
            <author fullname="Henk Birkholz" initials="H." surname="Birkholz">
              <organization>Fraunhofer Institute for Secure Information Technology</organization>
            </author>
            <author fullname="Thomas Fossati" initials="T." surname="Fossati">
              <organization>Linaro</organization>
            </author>
            <date day="3" month="November" year="2024"/>
            <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-12"/>
        </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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
2VEjHbaBUR+iI5n/Ycr/D4IqZ9IqhgAA

-->

</rfc>
