<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.6.36 (Ruby 3.2.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-fv-rats-ear-01" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.17.4 -->
  <front>
    <title abbrev="EAR">EAT Attestation Results</title>
    <seriesInfo name="Internet-Draft" value="draft-fv-rats-ear-01"/>
    <author initials="T." surname="Fossati" fullname="Thomas Fossati">
      <organization>Arm Limited</organization>
      <address>
        <email>thomas.fossati@arm.com</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>
    <date year="2023" month="July" day="05"/>
    <area>Security</area>
    <workgroup>Remote ATtestation ProcedureS</workgroup>
    <keyword>EAT</keyword>
    <keyword>attestation result</keyword>
    <keyword>attestation verifier</keyword>
    <keyword>AR4SI</keyword>
    <abstract>
      <?line 65?>

<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-fv-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 84?>

<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[
EAR = {
  eat.profile => "tag:github.com,2023:veraison/ear"
  iat => int
  ear.verifier-id => ar4si.verifier-id
  ? ear.raw-evidence => ear-bytes
  eat.submods => { + text => EAR-appraisal }
  ? eat.nonce => eat.nonce-type
  * $$ear-extension
}
]]></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:github.com,2023:veraison/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 target="sec-verifier-id"/> 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>eat.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.
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-verifier-id">
        <name>Verifier Software Identification</name>
        <t><xref section="2.2.2" sectionFormat="of" target="I-D.ietf-rats-ar4si"/> defines an information model for identifying the
software that runs the verifier.  The <tt>ar4si.verifier-id</tt> claim provides its
serialization as follows:</t>
        <figure anchor="fig-cddl-verifier-id">
          <name>Verifier Software Identification Claim (CDDL Definition)</name>
          <sourcecode type="cddl"><![CDATA[
ar4si.verifier-id = {
  build => text
  developer => text
}
]]></sourcecode>
        </figure>
        <t>Where:</t>
        <dl>
          <dt><tt>build</tt> (mandatory)</dt>
          <dd>
            <t>A text string that uniquely identifies the software build running the verifier.</t>
          </dd>
          <dt><tt>developer</tt> (mandatory)</dt>
          <dd>
            <t>A text string that uniquely identifies the organizational unit responsible
for this <tt>build</tt>.</t>
          </dd>
        </dl>
      </section>
      <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[
EAR-appraisal = {
  ear.status => $ar4si.trust-tier
  ? ear.trustworthiness-vector => ar4si.trustworthiness-vector
  ? ear.appraisal-policy-id => text
  * $$ear-appraisal-extension
}
]]></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 target="sec-trusttiers"/>).
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 target="sec-tvector"/> 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 anchor="sec-tvector">
          <name>Trustworthiness Vector</name>
          <t>The <tt>ar4si-trustworthiness-vector</tt> claim is an embodiment of the AR4SI
trustworthiness vector (<xref section="2.3.5" sectionFormat="of" target="I-D.ietf-rats-ar4si"/>) and it is defined as
follows:</t>
          <figure anchor="fig-cddl-tvec">
            <name>Trustworthiness Vector (CDDL Definition)</name>
            <sourcecode type="cddl"><![CDATA[
ar4si.trustworthiness-vector = non-empty<{
  ? instance-identity => $ar4si.trustworthiness-claim
  ? configuration => $ar4si.trustworthiness-claim
  ? executables => $ar4si.trustworthiness-claim
  ? file-system => $ar4si.trustworthiness-claim
  ? hardware => $ar4si.trustworthiness-claim
  ? runtime-opaque => $ar4si.trustworthiness-claim
  ? storage-opaque => $ar4si.trustworthiness-claim
  ? sourced-data => $ar4si.trustworthiness-claim
}>

$ar4si.trustworthiness-claim = -128..127
]]></sourcecode>
          </figure>
          <t>It contains an entry for each one of the eight AR4SI appraisals that have been
conducted on the submitted evidence (<xref section="2.3.4" sectionFormat="of" target="I-D.ietf-rats-ar4si"/>).
The value of each entry is chosen in the -128..127 range according to the rules
described in Sections <xref target="I-D.ietf-rats-ar4si" section="2.3.3" sectionFormat="bare"/> and <xref target="I-D.ietf-rats-ar4si" section="2.3.4" sectionFormat="bare"/> of <xref target="I-D.ietf-rats-ar4si"/>.
All categories are optional.
A missing entry means that the verifier makes no claim about this specific
appraisal facet because the category is not applicable to the submitted
evidence.
As required by the <tt>non-empty</tt> macro, at least one entry <bcp14>MUST</bcp14> be present in the
vector.</t>
        </section>
        <section anchor="sec-trusttiers">
          <name>Trust Tiers</name>
          <t>The trust tier type represents one of the equivalency classes in which the
<tt>$ar4si-trustworthiness-claim</tt> space is partitioned.
See <xref section="2.3.2" sectionFormat="of" target="I-D.ietf-rats-ar4si"/> for the details.
The allowed values for the type are as follows:</t>
          <figure anchor="fig-cddl-ttiers">
            <name>Trustworthiness Tiers (CDDL Definition)</name>
            <sourcecode type="cddl"><![CDATA[
$ar4si.trust-tier /= ar4si.trust-tier-none
$ar4si.trust-tier /= ar4si.trust-tier-affirming
$ar4si.trust-tier /= ar4si.trust-tier-warning
$ar4si.trust-tier /= ar4si.trust-tier-contraindicated
]]></sourcecode>
          </figure>
        </section>
      </section>
      <section anchor="json-serialisation">
        <name>JSON Serialisation</name>
        <t>To serialize the EAR claims-set in JSON format, the following substitutions are
applied to the encoding-agnostic CDDL definitions in <xref target="sec-ear"/>,
<xref target="sec-tvector"/> and <xref target="sec-trusttiers"/>:</t>
        <sourcecode type="cddl"><![CDATA[
; $ar4si.trust-tier choice
ar4si.trust-tier-none = "none"
ar4si.trust-tier-affirming = "affirming"
ar4si.trust-tier-warning = "warning"
ar4si.trust-tier-contraindicated = "contraindicated"

; EAR JWT claims
ear.status = "ear.status"
ear.trustworthiness-vector = "ear.trustworthiness-vector"
ear.raw-evidence = "ear.raw-evidence"
ear.appraisal-policy-id = "ear.appraisal-policy-id"
ear.verifier-id = "ear.verifier-id"
; EAT JWT claims
eat.profile = "eat_profile"
eat.nonce = "eat_nonce"
eat.submods = "submods"
; JWT claims
iat = "iat"

; ar4si.trustworthiness-vector 
instance-identity = "instance-identity"
configuration = "configuration"
executables = "executables"
file-system = "file-system"
hardware = "hardware"
runtime-opaque = "runtime-opaque"
storage-opaque = "storage-opaque"
sourced-data = "sourced-data"

; JSON types mapping
ear-bytes = text .regexp "[A-Za-z0-9_=-]+"
ear-label = text

; ar4si.verifier-id labels
developer = "developer"
build = "build"

; EAT
eat.nonce-type = text .size (10..74)
]]></sourcecode>
        <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:github.com,2023:veraison/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>Instance Identity (affirming): recognized and not compromised</li>
            <li>Configuration (warning): known vulnerabilities</li>
            <li>Executables (contraindicated): contraindicated run-time</li>
            <li>File System (none): no claim being made</li>
            <li>Hardware (affirming): genuine</li>
            <li>Runtime Opaque (none): no claim being made</li>
            <li>Storage Opaque (none): no claim being made</li>
            <li>Sourced Data (none): no claim being made</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:github.com,2023:veraison/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>
        <sourcecode type="cddl"><![CDATA[
; $ar4si.trust-tier code-points
ar4si.trust-tier-none = 0
ar4si.trust-tier-affirming = 2
ar4si.trust-tier-warning = 32
ar4si.trust-tier-contraindicated = 96

; EAR CWT claims
ear.status = 1000
ear.trustworthiness-vector = 1001
ear.raw-evidence = 1002
ear.appraisal-policy-id = 1003
ear.verifier-id = 1004
; EAT CWT claims
eat.profile = 265
eat.nonce = 10
eat.submods= 266
; CWT claims
iat = 6

; ar4si.trustworthiness-vector keys
instance-identity = 0
configuration = 1
executables = 2
file-system = 3
hardware = 4
runtime-opaque = 5
storage-opaque = 6
sourced-data = 7

; CBOR type mappings
ear-bytes = bytes
ear-label = int / text

; ar4si.verifier-id keys
developer = 0
build = 1

; EAT
eat.nonce-type = bytes .size (8..64)
]]></sourcecode>
        <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:github.com,2023:veraison/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[
$$ear-appraisal-extension //= (
  ear.teep-claims => ear-teep-claims
)

ear-teep-claims = non-empty<{
  ? eat.nonce => eat.nonce-type
  ? eat.ueid => eat.ueid-type
  ? eat.oemid => eat.oemid-type
  ? eat.hardware-model => eat.hardware-model-type
  ? eat.hardware-version => eat.hardware-version-type
  ? eat.manifests => eat.manifests-type
}>
]]></sourcecode>
        </figure>
        <section anchor="json-serialization">
          <name>JSON Serialization</name>
          <sourcecode type="cddl"><![CDATA[
ear.teep-claims = "ear.teep-claims"

eat.ueid = "ueid"
eat.oemid = "oemid"
eat.hardware-model = "hwmodel"
eat.hardware-version = "hwversion"
eat.manifests = "manifests"

; cddl(1)-unsupported: .size (12..44)
eat.ueid-type = base64-url-text

eat.oemid-type = oemid-pen / oemid-ieee / oemid-random

; cddl(1)-unsupported: .size (4..44)
eat.hardware-model-type = base64-url-text

eat.hardware-version-type = [
  version:  tstr,
  ? scheme:  $version-scheme
]

eat.manifests-type = [ + manifest-format ]

manifest-format = [
  content-type:   coap-content-format,
  content-format: base64-url-text / text
]

coap-content-format = uint .le 65535

oemid-pen = int
; cddl(1)-unsupported: .size 4
oemid-ieee = base64-url-text
; cddl(1)-unsupported: .size 24
oemid-random = base64-url-text
]]></sourcecode>
          <t>Example:</t>
          <sourcecode type="cddl"><![CDATA[
{
  "eat_profile": "tag:github.com,2023:veraison/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">
          <name>CBOR Serialization</name>
          <sourcecode type="cddl"><![CDATA[
ear.teep-claims = 65000

eat.ueid = 256
eat.oemid = 258
eat.hardware-model = 259
eat.hardware-version = 260
eat.manifests = 273 ; XXX provisional

eat.ueid-type = bytes .size (7..33)
eat.oemid-type = oemid-pen / oemid-ieee / oemid-random
eat.hardware-model-type = bytes .size (1..32)

eat.hardware-version-type = [
  version: text
  ? scheme: $version-scheme
]

eat.manifests-type = [ + manifest-format ]

manifest-format = [
  content-type: coap-content-format
  content-format: bytes .cbor untagged-coswid
]

coap-content-format = uint .le 65535
untagged-coswid = bytes ; XXX should import coswid

oemid-pen = int
oemid-ieee = bytes .size 3
oemid-random = bytes .size 16
]]></sourcecode>
          <t>Example:</t>
          <sourcecode type="cddl"><![CDATA[
{
  265: "tag:github.com,2023:veraison/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[
$$ear-appraisal-extension //= (
  ear.veraison.annotated-evidence => ear-veraison-annotated-evidence
)

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

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

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

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

ear-veraison-key-attestation = {
   ear.veraison.attested-key-public => ear-bytes
}
]]></sourcecode>
        </figure>
        <section anchor="json-serialization-1">
          <name>JSON Serialization</name>
          <sourcecode type="cddl"><![CDATA[
ear.veraison.annotated-evidence = "ear.veraison.annotated-evidence"
ear.veraison.policy-claims = "ear.veraison.policy-claims"
ear.veraison.key-attestation = "ear.veraison.key-attestation"

ear.veraison.attested-key-public = "akpub"
]]></sourcecode>
          <t>Example:</t>
          <sourcecode type="cbor-diag"><![CDATA[
{
  "eat_profile": "tag:github.com,2023:veraison/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>
          <t>Key attestation example:</t>
          <sourcecode type="cbor-diag"><![CDATA[
{
  "eat_profile": "tag:github.com,2023:veraison/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-1">
          <name>CBOR Serialization</name>
          <sourcecode type="cddl"><![CDATA[
ear.veraison.annotated-evidence = -70000
ear.veraison.policy-claims = -70001
ear.veraison.key-attestation = -70002

ear.veraison.attested-key-public = 0
]]></sourcecode>
          <t>Example:</t>
          <sourcecode type="cbor-diag"><![CDATA[
{
  265: "tag:github.com,2023:veraison/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:github.com,2023:veraison/ear"
]]></artwork>
      <t>A CWT serialization would instead use:</t>
      <artwork><![CDATA[
application/eat-cwt; eat_profile="tag:github.com,2023:veraison/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>It <bcp14>SHOULD</bcp14> be possible to disable inclusion of the optional <tt>ear.raw-evidence</tt>
claim</li>
        <li>It <bcp14>SHOULD</bcp14> be possible to disable inclusion of the optional
<tt>ear.veraison.annotated-evidence</tt> claim</li>
        <li>It <bcp14>SHOULD</bcp14> be possible to allow redaction, anonymisation or removal of
specific claims from the <tt>ear.veraison.annotated-evidence</tt> object</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>Claim Name: ear.status</li>
            <li>Claim Description: EAR Status</li>
            <li>JWT Claim Name: ear.status</li>
            <li>Claim Key: 1000</li>
            <li>Claim Value Type(s): unsigned integer (0, 2, 32, 96)</li>
            <li>Change Controller: IESG</li>
            <li>Specification Document(s): <xref target="sec-ear-appraisal"/> of RFCthis</li>
          </ul>
        </section>
        <section anchor="ear-trustworthiness-vector">
          <name>EAR Trustworthiness Vector</name>
          <ul spacing="normal">
            <li>Claim Name: ear.trustworthiness-vector</li>
            <li>Claim Description: EAR Trustworthiness Vector</li>
            <li>JWT Claim Name: ear.trustworthiness-vector</li>
            <li>Claim Key: 1001</li>
            <li>Claim Value Type(s): map</li>
            <li>Change Controller: IESG</li>
            <li>Specification Document(s): <xref target="sec-tvector"/> of RFCthis</li>
          </ul>
        </section>
        <section anchor="ear-raw-evidence">
          <name>EAR Raw Evidence</name>
          <ul spacing="normal">
            <li>Claim Name: ear.raw-evidence</li>
            <li>Claim Description: EAR Raw Evidence</li>
            <li>JWT Claim Name: ear.raw-evidence</li>
            <li>Claim Key: 1002</li>
            <li>Claim Value Type(s): bytes</li>
            <li>Change Controller: IESG</li>
            <li>Specification Document(s): <xref target="sec-ear"/> of RFCthis</li>
          </ul>
        </section>
        <section anchor="ear-appraisal-policy-identifier">
          <name>EAR Appraisal Policy Identifier</name>
          <ul spacing="normal">
            <li>Claim Name: ear.appraisal-policy-id</li>
            <li>Claim Description: EAR Appraisal Policy Identifier</li>
            <li>JWT Claim Name: ear.appraisal-policy-id</li>
            <li>Claim Key: 1003</li>
            <li>Claim Value Type(s): text</li>
            <li>Change Controller: IESG</li>
            <li>Specification Document(s): <xref target="sec-ear-appraisal"/> of RFCthis</li>
          </ul>
        </section>
        <section anchor="ear-verifier-software-identifier">
          <name>EAR Verifier Software Identifier</name>
          <ul spacing="normal">
            <li>Claim Name: ear.verifier-id</li>
            <li>Claim Description: EAR Verifier Software Identifier</li>
            <li>JWT Claim Name: ear.verifier-id</li>
            <li>Claim Key: 1004</li>
            <li>Claim Value Type(s): map</li>
            <li>Change Controller: IESG</li>
            <li>Specification Document(s): <xref target="sec-verifier-id"/> of RFCthis</li>
          </ul>
        </section>
        <section anchor="ear-teep-claims">
          <name>EAR TEEP Claims</name>
          <t>TODO</t>
        </section>
      </section>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <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>Arm Limited</organization>
            </author>
            <author fullname="Vincent Scarlata" initials="V." surname="Scarlata">
              <organization>Intel</organization>
            </author>
            <date day="2" month="March" year="2023"/>
            <abstract>
              <t>   This document defines reusable Attestation Result information
   elements.  When these elements are offered to Relying Parties as
   Evidence, different aspects of Attester trustworthiness can be
   evaluated.  Additionally, where the Relying Party is interfacing with
   a heterogeneous mix of Attesting Environment and Verifier types,
   consistent policies can be applied to subsequent information exchange
   between each Attester and the Relying Party.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-rats-ar4si-04"/>
        </reference>
        <reference anchor="I-D.ietf-rats-eat">
          <front>
            <title>The Entity Attestation Token (EAT)</title>
            <author fullname="Laurence Lundblade" initials="L." surname="Lundblade">
              <organization>Security Theory LLC</organization>
            </author>
            <author fullname="Giridhar Mandyam" initials="G." surname="Mandyam">
              <organization>Qualcomm Technologies Inc.</organization>
            </author>
            <author fullname="Jeremy O'Donoghue" initials="J." surname="O'Donoghue">
              <organization>Qualcomm Technologies Inc.</organization>
            </author>
            <author fullname="Carl Wallace" initials="C." surname="Wallace">
              <organization>Red Hound Software, Inc.</organization>
            </author>
            <date day="30" month="June" year="2023"/>
            <abstract>
              <t>   An Entity Attestation Token (EAT) provides an attested claims set
   that describes state and characteristics of an entity, a device like
   a smartphone, IoT device, network equipment or such.  This claims set
   is used by a relying party, server or service to determine how much
   it wishes to trust the entity.

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

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-rats-eat-21"/>
        </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>ALAXALA Networks Corp.</organization>
            </author>
            <date day="3" month="July" year="2023"/>
            <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-15"/>
        </reference>
        <reference anchor="I-D.ietf-rats-eat-media-type">
          <front>
            <title>EAT Media Types</title>
            <author fullname="Laurence Lundblade" initials="L." surname="Lundblade">
              <organization>Security Theory LLC</organization>
            </author>
            <author fullname="Henk Birkholz" initials="H." surname="Birkholz">
              <organization>Fraunhofer Institute for Secure Information Technology</organization>
            </author>
            <author fullname="Thomas Fossati" initials="T." surname="Fossati">
              <organization>arm</organization>
            </author>
            <date day="4" month="July" year="2023"/>
            <abstract>
              <t>   Payloads used in Remote Attestation Procedures may require an
   associated media type for their conveyance, for example when used in
   RESTful APIs.

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

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-rats-eat-media-type-03"/>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="RFC4648">
          <front>
            <title>The Base16, Base32, and Base64 Data Encodings</title>
            <author fullname="S. Josefsson" initials="S." surname="Josefsson"/>
            <date month="October" year="2006"/>
            <abstract>
              <t>This document describes the commonly used base 64, base 32, and base 16 encoding schemes. It also discusses the use of line-feeds in encoded data, use of padding in encoded data, use of non-alphabet characters in encoded data, use of different encoding alphabets, and canonical encodings. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4648"/>
          <seriesInfo name="DOI" value="10.17487/RFC4648"/>
        </reference>
      </references>
      <references>
        <name>Informative References</name>
        <reference anchor="RFC9334">
          <front>
            <title>Remote ATtestation procedureS (RATS) Architecture</title>
            <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
            <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 1159?>

<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>
      <dl newline="true">
        <dt><tt>base64-url-text</tt></dt>
        <dd>
          <t>Base64 encoding using the URL- and filename-safe character set defined in
<xref section="5" sectionFormat="of" target="RFC4648"/>, with all trailing '=' characters omitted (as
permitted by Section 3.2) and without the inclusion of any line breaks,
whitespace, or other additional characters.</t>
        </dd>
      </dl>
      <sourcecode type="cddl"><![CDATA[
base64-url-text = tstr .regexp "[A-Za-z0-9_-]+"
]]></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>
    <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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
5JoAAA==

-->

</rfc>
