<?xml version="1.0" encoding="UTF-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc2629 version 1.3.17 -->

<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
]>

<?rfc toc="yes"?>
<?rfc tocdepth="4"?>
<?rfc sortrefs="yes"?>
<?rfc symrefs="yes"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<?rfc rfcedstyle="yes"?>

<rfc ipr="trust200902" docName="draft-ietf-rats-eat-10" category="std">

  <front>
    <title abbrev="EAT">The Entity Attestation Token (EAT)</title>

    <author initials="G." surname="Mandyam" fullname="Giridhar Mandyam">
      <organization>Qualcomm Technologies Inc.</organization>
      <address>
        <postal>
          <street>5775 Morehouse Drive</street>
          <city>San Diego</city>
          <region>California</region>
          <country>USA</country>
        </postal>
        <phone>+1 858 651 7200</phone>
        <email>mandyam@qti.qualcomm.com</email>
      </address>
    </author>
    <author initials="L." surname="Lundblade" fullname="Laurence Lundblade">
      <organization>Security Theory LLC</organization>
      <address>
        <email>lgl@island-resort.com</email>
      </address>
    </author>
    <author initials="M." surname="Ballesteros" fullname="Miguel Ballesteros">
      <organization>Qualcomm Technologies Inc.</organization>
      <address>
        <postal>
          <street>5775 Morehouse Drive</street>
          <city>San Diego</city>
          <region>California</region>
          <country>USA</country>
        </postal>
        <phone>+1 858 651 4299</phone>
        <email>mballest@qti.qualcomm.com</email>
      </address>
    </author>
    <author initials="J." surname="O'Donoghue" fullname="Jeremy O'Donoghue">
      <organization>Qualcomm Technologies Inc.</organization>
      <address>
        <postal>
          <street>279 Farnborough Road</street>
          <city>Farnborough</city>
          <code>GU14 7LS</code>
          <country>United Kingdom</country>
        </postal>
        <phone>+44 1252 363189</phone>
        <email>jodonogh@qti.qualcomm.com</email>
      </address>
    </author>

    <date year="2021" month="June" day="07"/>

    <area>Internet</area>
    <workgroup>RATS Working Group</workgroup>
    <keyword>signing attestation cbor</keyword>

    <abstract>


<t>An Entity Attestation Token (EAT) provides a signed (attested) set of
claims that describe state and characteristics of an entity, typically
a device like a phone or an IoT device.  These claims are used by a
relying party to determine how much it wishes to trust the entity.</t>

<t>An EAT is either a CWT or JWT with some attestation-oriented 
claims. To a large degree, all this document does is extend
CWT and JWT.</t>



    </abstract>


    <note title="Contributing">


<t>TBD</t>


    </note>


  </front>

  <middle>


<section anchor="introduction" title="Introduction">

<t>Remote device attestation is a fundamental service that allows a remote
device such as a mobile phone, an Internet-of-Things (IoT) device, or
other endpoint to prove itself to a relying party, a server or a
service.  This allows the relying party to know some characteristics
about the device and decide whether it trusts the device.</t>

<t>Remote attestation is a fundamental service that can underlie other
protocols and services that need to know about the trustworthiness of
the device before proceeding. One good example is biometric
authentication where the biometric matching is done on the device. The
relying party needs to know that the device is one that is known to do
biometric matching correctly.  Another example is content protection
where the relying party wants to know the device will protect the
data.  This generalizes on to corporate enterprises that might want to
know that a device is trustworthy before allowing corporate data to be
accessed by it.</t>

<t>The notion of attestation here is large and may include, but is not
limited to the following:</t>

<t><list style="symbols">
  <t>Proof of the make and model of the device hardware (HW)</t>
  <t>Proof of the make and model of the device processor, particularly
for security-oriented chips</t>
  <t>Measurement of the software (SW) running on the device</t>
  <t>Configuration and state of the device</t>
  <t>Environmental characteristics of the device such as its GPS location</t>
</list></t>

<section anchor="cwt-jwt-and-uccs" title="CWT, JWT and UCCS">

<t>For flexibility and ease of imlpementation in a wide variety of environments, EATs can be either CBOR <xref target="RFC8949"/> or JSON <xref target="ECMAScript"/> format.
This specification simultaneously describes both formats.</t>

<t>An EAT is either a CWT as defined in <xref target="RFC8392"/>, a UCCS as defined in <xref target="UCCS.Draft"/>, or a JWT as defined in <xref target="RFC7519"/>.
This specification extends those specifications with additional claims for attestation.</t>

<t>The identification of a protocol element as an EAT, whether CBOR or JSON format, follows the general conventions used by CWT, JWT and UCCS.
Largely this depends on the protocol carrying the EAT.
In some cases it may be by content type (e.g., MIME type).
In other cases it may be through use of CBOR tags.
There is no fixed mechanism across all use cases.</t>

</section>
<section anchor="cddl" title="CDDL">

<t>This specification uses CDDL, <xref target="RFC8610"/>, as the primary formalism to
define each claim.  The implementor then interprets the CDDL to come
to either the CBOR <xref target="RFC8949"/> or JSON <xref target="ECMAScript"/>
representation. In the case of JSON, Appendix E of <xref target="RFC8610"/> is
followed. Additional rules are given in <xref target="jsoninterop"/> of this
document where Appendix E is insufficient.  (Note that this is not to
define a general means to translate between CBOR and JSON, but only to
define enough such that the claims defined in this document can be
rendered unambiguously in JSON).</t>

<t>The CWT specification was authored before CDDL was available and did not use it.
This specification includes a CDDL definition of most of what is described in <xref target="RFC8392"/>.</t>

</section>
<section anchor="entity-overview" title="Entity Overview">

<t>An “entity” can be any device or device subassembly (“submodule”) that
can generate its own attestation in the form of an EAT.  The
attestation should be cryptographically verifiable by the EAT
consumer. An EAT at the device-level can be composed of several
submodule EAT’s.</t>

<t>Modern devices such as a mobile phone have many different execution
environments operating with different security levels. For example, it
is common for a mobile phone to have an “apps” environment that runs
an operating system (OS) that hosts a plethora of downloadable
apps. It may also have a TEE (Trusted Execution Environment) that is
distinct, isolated, and hosts security-oriented functionality like
biometric authentication. Additionally, it may have an eSE (embedded
Secure Element) - a high security chip with defenses against HW
attacks that is used to produce attestations.  This device attestation format
allows the attested data to be tagged at a security level from which
it originates.  In general, any discrete execution environment that
has an identifiable security level can be considered an entity.</t>

</section>
<section anchor="use-as-evidence-and-attestation-results" title="Use as Evidence and Attestation Results">

<t>Here, normative reference is made to <xref target="RATS-Architecture"/>, particularly the definition of Evidence, the Verifier, Attestation Results and the Relying Party.
Per Figure 1 in <xref target="RATS-Architecture"/>, Evidence is a protocol message that goes from the Attester to the Verifier and Attestation Results a message that goes from the Verifier to the Relying Party.
EAT is defined such that it can be used to represent either Evidence, Attestation Results or both.
No claims defined here are considered exclusive to or are prohibited in either use.
It is useful to create EAT profiles as described in <xref target="profiles"/> for either use.</t>

<t>It is useful to characterize the relationship of claims in Evidence to those in Attestation Results.</t>

<t>Many claims in Evidence simply will pass through the Verifier to the Relying Party without modification.
They will be verified as authentic from the device by the Verifier just through normal verification of the Attester’s signature.
They will be protected from modification when they are conveyed to the Relying Party by whatever means is used to protect Attestation Results. 
(The details of that protection are out of scope of this document.)</t>

<t>Some claims in Evidence will be verified by the Verifier by comparison to Reference Values.
In this case the claims in Evidence will not likely be conveyed to the Relying Party.
Instead, some claim indicating they were checked may be added to the Attestation Results or it may be tacitly known that the Verifier always does this check.</t>

<t>In some cases the Verifier may provide privacy-preserving functionality by stripping or modifying claims that do not posses sufficient privacy-preserving characteristics.</t>

</section>
<section anchor="eat-operating-models" title="EAT Operating Models">

<t>TODO: Rewrite (or eliminate) this section in light of the RATS architecture draft.</t>

<t>At least the following three participants exist in all EAT operating
models. Some operating models have additional participants.</t>

<t><list style="hanging">
  <t hangText="The Entity.">
  This is the phone, the IoT device, the sensor, the sub-assembly or
such that the attestation provides information about.</t>
  <t hangText="The Manufacturer.">
  The company that made the entity.  This may be a chip vendor, a
circuit board module vendor or a vendor of finished consumer products.</t>
  <t hangText="The Relying Party.">
  The server, service or company that makes use of the information in
the EAT about the entity.</t>
</list></t>

<t>In all operating models, the manufacturer provisions some secret
attestation key material (AKM) into the entity during manufacturing.
This might be during the manufacturer of a chip at a fabrication
facility (fab) or during final assembly of a consumer product or any
time in between. This attestation key material is used for signing
EATs.</t>

<t>In all operating models, hardware and/or software on the entity create
an EAT of the format described in this document. The EAT is always
signed by the attestation key material provisioned by the
manufacturer.</t>

<t>In all operating models, the relying party must end up knowing that
the signature on the EAT is valid and consistent with data from claims
in the EAT.  This can happen in many different ways. Here are some
examples.</t>

<t><list style="symbols">
  <t>The EAT is transmitted to the relying party. The relying party gets
corresponding key material (e.g. a root certificate) from the
manufacturer. The relying party performs the verification.</t>
  <t>The EAT is transmitted to the relying party. The relying party
transmits the EAT to a verification service offered by the
manufacturer. The server returns the validated claims.</t>
  <t>The EAT is transmitted directly to a verification service, perhaps
operated by the manufacturer or perhaps by another party. It
verifies the EAT and makes the validated claims available to the
relying party. It may even modify the claims in some way and re-sign
the EAT (with a different signing key).</t>
</list></t>

<t>All these operating models are supported and there is no preference
of one over the other. It is important to support this variety of
operating models to generally facilitate deployment and to allow for
some special scenarios. One special scenario has a validation service
that is monetized, most likely by the manufacturer.  In another, a
privacy proxy service processes the EAT before it is transmitted to
the relying party. In yet another, symmetric key material is used for
signing. In this case the manufacturer should perform the
verification, because any release of the key material would enable a
participant other than the entity to create valid signed EATs.</t>

</section>
<section anchor="what-is-not-standardized" title="What is Not Standardized">

<t>The following is not standardized for EAT, just the same they are not
standardized for CWT or JWT.</t>

<section anchor="transmission-protocol" title="Transmission Protocol">

<t>EATs may be transmitted by any protocol the same as CWTs and JWTs. For
example, they might be added in extension fields of other protocols,
bundled into an HTTP header, or just transmitted as files. This
flexibility is intentional to allow broader adoption. This flexibility
is possible because EAT’s are self-secured with signing (and possibly
additionally with encryption and anti-replay). The transmission
protocol is not required to fulfill any additional security
requirements.</t>

<t>For certain devices, a direct connection may not exist between the
EAT-producing device and the Relying Party. In such cases, the EAT
should be protected against malicious access. The use of COSE and JOSE
allows for signing and encryption of the EAT. Therefore, even if the
EAT is conveyed through intermediaries between the device and Relying
Party, such intermediaries cannot easily modify the EAT payload or
alter the signature.</t>

</section>
<section anchor="signing-scheme" title="Signing Scheme">

<t>The term “signing scheme” is used to refer to the system that includes
end-end process of establishing signing attestation key material in
the entity, signing the EAT, and verifying it. This might involve key
IDs and X.509 certificate chains or something similar but
different. The term “signing algorithm” refers just to the algorithm
ID in the COSE signing structure. No particular signing algorithm or
signing scheme is required by this standard.</t>

<t>There are three main implementation issues driving this. First, secure
non-volatile storage space in the entity for the attestation key
material may be highly limited, perhaps to only a few hundred bits, on
some small IoT chips. Second, the factory cost of provisioning key
material in each chip or device may be high, with even millisecond
delays adding to the cost of a chip. Third, privacy-preserving signing
schemes like ECDAA (Elliptic Curve Direct Anonymous Attestation) are
complex and not suitable for all use cases.</t>

<t>Over time to faciliate interoperability, some signing schemes may be
defined in EAT profiles or other documents either in the IETF or outside.</t>

</section>
</section>
</section>
<section anchor="terminology" title="Terminology">

<t>The key words “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”,
“SHOULD”, “SHOULD NOT”, “RECOMMENDED”, “NOT RECOMMENDED”, “MAY”, and
“OPTIONAL” in this document are to be interpreted as described in
BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they appear in all
capitals, as shown here.</t>

<t>This document reuses terminology from JWT <xref target="RFC7519"/>, COSE
<xref target="RFC8152"/>, and CWT <xref target="RFC8392"/>.</t>

<t><list style="hanging">
  <t hangText="Claim Name.">
  The human-readable name used to identify a claim.</t>
  <t hangText="Claim Key.">
  The CBOR map key or JSON name used to identify a claim.</t>
  <t hangText="Claim Value.">
  The value portion of the claim. A claim value can be any CBOR data item or JSON value.</t>
  <t hangText="CWT Claims Set.">
  The CBOR map or JSON object that contains the claims conveyed by the CWT or JWT.</t>
  <t hangText="Attestation Key Material (AKM).">
  The key material used to sign the EAT token. If it is done
symmetrically with HMAC, then this is a simple symmetric key.
If it is done with ECC, such as an IEEE DevID <xref target="IEEE.802.1AR"/>, then this
is the private part of the EC key pair. If ECDAA 
is used, (e.g., as used by Enhanced Privacy ID, i.e. EPID) then it is the key material 
needed for ECDAA.</t>
</list></t>

</section>
<section anchor="the-claims" title="The Claims">

<t>This section describes new claims defined for attestation. It also
mentions several claims defined by CWT and JWT that are particularly
important for EAT.</t>

<t>Note also:
* Any claim defined for CWT or JWT may be used in an EAT including 
  those in the CWT <xref target="IANA.CWT.Claims"/> and JWT IANA <xref target="IANA.JWT.Claims"/>
  claims registries.</t>

<t><list style="symbols">
  <t>All claims are optional</t>
  <t>No claims are mandatory</t>
  <t>All claims that are not understood by implementations MUST be ignored</t>
</list></t>

<t>There are no default values or meanings assigned to absent claims
other than they are not reported. The reason for a claim’s absence may
be the implementation not supporting the claim, an inability to
determine its value, or a preference to report in a different way such
as a proprietary claim.</t>

<t>CDDL along with text descriptions is used to define each claim
indepdent of encoding.  Each claim is defined as a CDDL group (the
group is a general aggregation and type definition feature of
CDDL). In the encoding section <xref target="encoding"/>, the CDDL groups turn into
CBOR map entries and JSON name/value pairs.</t>

<t>Map labels are assigned both an integer and string value.
CBOR encoded tokens MUST use only integer labels.
JSON encoded tokens MUST use only string labels.</t>

<t>TODO: add paragraph here about use for Attestation Evidence and for Results.</t>

<section anchor="token-id-claim-cti-and-jti" title="Token ID Claim (cti and jti)">

<t>CWT defines the “cti” claim. JWT defines the “jti” claim. These are
equivalent to each other in EAT and carry a unique token identifier as
they do in JWT and CWT.  They may be used to defend against re use of
the token but are distinct from the nonce that is used by the relying
party to guarantee freshness and defend against replay.</t>

</section>
<section anchor="timestamp-claim-iat" title="Timestamp claim (iat)">

<t>The “iat” claim defined in CWT and JWT is used to indicate the
date-of-creation of the token, the time at which the claims are
collected and the token is composed and signed.</t>

<t>The data for some claims may be held or cached for some period of
time before the token is created. This period may be long, even 
days. Examples are measurements taken at boot or a geographic
position fix taken the last time a satellite signal was received.
There are individual timestamps associated with these claims to
indicate their age is older than the “iat” timestamp.</t>

<t>CWT allows the use floating-point for this claim. EAT disallows
the use of floating-point. No token may contain an iat claim in
float-point format. Any recipient of a token with a floating-point
format iat claim may consider it an error.  A 64-bit integer 
representation of epoch time can represent a range of +/- 500 billion
years, so the only point of a floating-point timestamp is to 
have precession greater than one second. This is not needed for EAT.</t>

</section>
<section anchor="nonce-claim-nonce" title="Nonce Claim (nonce)">

<t>All EATs should have a nonce to prevent replay attacks. The nonce is
generated by the relying party, the end consumer of the token. It is
conveyed to the entity over whatever transport is in use before the
token is generated and then included in the token as the nonce claim.</t>

<t>This documents the nonce claim for registration in the IANA CWT 
claims registry. This is equivalent to the JWT nonce claim that is
already registered.</t>

<t>The nonce must be at least 8 bytes (64 bits) as fewer are unlikely
to be secure. A maximum of 64 bytes is set to limit the memory
a constrained implementation uses. This size range is not set
for the already-registered JWT nonce, but it should follow
this size recommendation when used in an EAT.</t>

<t>Multiple nonces are allowed to accommodate multistage verification
and consumption.</t>

<section anchor="nonce-cddl" title="nonce CDDL">

<figure><artwork type="CDDL"><![CDATA[
nonce-type = bstr .size (8..64)

nonce-claim = (
    nonce => nonce-type / [ 2* nonce-type ]
)
]]></artwork></figure>

</section>
</section>
<section anchor="universal-entity-id-claim-ueid" title="Universal Entity ID Claim (ueid)">

<t>UEID’s identify individual manufactured entities / devices such as a
mobile phone, a water meter, a Bluetooth speaker or a networked
security camera. It may identify the entire device or a submodule or
subsystem. It does not identify types, models or classes of
devices. It is akin to a serial number, though it does not have to be
sequential.</t>

<t>UEID’s must be universally and globally unique across manufacturers
and countries. UEIDs must also be unique across protocols and systems,
as tokens are intended to be embedded in many different protocols and
systems. No two products anywhere, even in completely different
industries made by two different manufacturers in two different
countries should have the same UEID (if they are not global and
universal in this way, then relying parties receiving them will have
to track other characteristics of the device to keep devices distinct
between manufacturers).</t>

<t>There are privacy considerations for UEID’s. See <xref target="ueidprivacyconsiderations"/>.</t>

<t>The UEID is permanent. It never change for a given
device / entity.</t>

<t>UEIDs are variable length. All implementations MUST be able to receive
UEIDs that are 33 bytes long (1 type byte and 256 bits).  The
recommended maximum sent is also 33 bytes.</t>

<t>When the entity constructs the UEID, the first byte is a type and the
following bytes the ID for that type. Several types are allowed to
accommodate different industries and different manufacturing processes
and to give options to avoid paying fees for certain types of
manufacturer registrations.</t>

<t>Creation of new types requires a Standards Action <xref target="RFC8126"/>.</t>

<texttable title="UEID Composition Types" anchor="ueid-types-table">
      <ttcol align='left'>Type Byte</ttcol>
      <ttcol align='left'>Type Name</ttcol>
      <ttcol align='left'>Specification</ttcol>
      <c>0x01</c>
      <c>RAND</c>
      <c>This is a 128, 192 or 256 bit random number generated once and stored in the device. This may be constructed by concatenating enough identifiers to make up an equivalent number of random bits and then feeding the concatenation through a cryptographic hash function. It may also be a cryptographic quality random number generated once at the beginning of the life of the device and stored. It may not be smaller than 128 bits.</c>
      <c>0x02</c>
      <c>IEEE EUI</c>
      <c>This makes use of the IEEE company identification registry. An EUI is either an EUI-48, EUI-60 or EUI-64 and made up of an OUI, OUI-36 or a CID, different registered company identifiers, and some unique per-device identifier. EUIs are often the same as or similar to MAC addresses. This type includes MAC-48, an obsolete name for EUI-48. (Note that while devices with multiple network interfaces may have multiple MAC addresses, there is only one UEID for a device) <xref target="IEEE.802-2001"/>, <xref target="OUI.Guide"/></c>
      <c>0x03</c>
      <c>IMEI</c>
      <c>This is a 14-digit identifier consisting of an 8-digit Type Allocation Code and a 6-digit serial number allocated by the manufacturer, which SHALL be encoded as byte string of length 14 with each byte as the digit’s value (not the ASCII encoding of the digit; the digit 3 encodes as 0x03, not 0x33). The IMEI value encoded SHALL NOT include Luhn checksum or SVN information. <xref target="ThreeGPP.IMEI"/></c>
</texttable>

<t>UEID’s are not designed for direct use by humans (e.g., printing on
the case of a device), so no textual representation is defined.</t>

<t>The consumer (the relying party) of a UEID MUST treat a UEID as a
completely opaque string of bytes and not make any use of its internal
structure. For example, they should not use the OUI part of a type
0x02 UEID to identify the manufacturer of the device. Instead they
should use the oemid claim that is defined elsewhere. The reasons for
this are:</t>

<t><list style="symbols">
  <t>UEIDs types may vary freely from one manufacturer to the next.</t>
  <t>New types of UEIDs may be created. For example, a type 0x07 UEID may
be created based on some other manufacturer registration scheme.</t>
  <t>Device manufacturers are allowed to change from one type of UEID to
another anytime they want. For example, they may find they can
optimize their manufacturing by switching from type 0x01 to type
0x02 or vice versa.  The main requirement on the manufacturer is
that UEIDs be universally unique.</t>
</list></t>

<section anchor="ueid-cddl" title="ueid CDDL">

<figure><artwork type="CDDL"><![CDATA[
ueid-type = bstr .size (7..33)

ueid-claim = (
     ueid => ueid-type
)
]]></artwork></figure>

</section>
</section>
<section anchor="semi-permanent-ueids-sueids" title="Semi-permanent UEIDs (SUEIDs)">

<t>An SEUID is of the same format as a UEID, but it may change to a different value on device life-cycle events.
Examples of these events are change of ownership, factory reset and on-boarding into an IoT device management system.
A device may have both a UEID and SUEIDs, neither, one or the other.</t>

<t>There may be multiple SUEIDs.
Each one has a text string label the purpose of which is to distinguish it from others in the token.
The label may name the purpose, application or type of the SUEID.
Typically, there will be few SUEDs so there is no need for a formal labeling mechanism like a registry.
The EAT profile may describe how SUEIDs should be labeled.
If there is only one SUEID, the claim remains a map and there still must be a label.
For example, the label for the SUEID used by FIDO Onboarding Protocol could simply be “FDO”.</t>

<t>There are privacy considerations for SUEID’s. See <xref target="ueidprivacyconsiderations"/>.</t>

<figure><artwork type="CDDL"><![CDATA[
sueids-type = {
    + tstr => ueid-type
}

sueids-claim = (
     sueids => sueids-type
)
]]></artwork></figure>

</section>
<section anchor="oemid" title="OEM Identification by IEEE (oemid)">

<t>The IEEE operates a global registry for MAC addresses and company IDs.
This claim uses that database to identify OEMs. The contents of the
claim may be either an IEEE MA-L, MA-M, MA-S or an IEEE CID
<xref target="IEEE.RA"/>.  An MA-L, formerly known as an OUI, is a 24-bit value
used as the first half of a MAC address. MA-M similarly is a 28-bit
value uses as the first part of a MAC address, and MA-S, formerly
known as OUI-36, a 36-bit value.  Many companies already have purchased
one of these. A CID is also a 24-bit value from the same space as an
MA-L, but not for use as a MAC address.  IEEE has published Guidelines
for Use of EUI, OUI, and CID <xref target="OUI.Guide"/> and provides a lookup
services <xref target="OUI.Lookup"/></t>

<t>Companies that have more than one of these IDs or MAC address blocks
should pick one and prefer that for all their devices.</t>

<t>Commonly, these are expressed in Hexadecimal Representation
<xref target="IEEE.802-2001"/> also called the Canonical format. When this claim is
encoded the order of bytes in the bstr are the same as the order in the
Hexadecimal Representation. For example, an MA-L like “AC-DE-48” would
be encoded in 3 bytes with values 0xAC, 0xDE, 0x48. For JSON encoded
tokens, this is further base64url encoded.</t>

<section anchor="oemid-cddl" title="oemid CDDL">

<figure><artwork type="CDDL"><![CDATA[
oemid-claim = (
    oemid => bstr
)
]]></artwork></figure>

</section>
</section>
<section anchor="hardware-version-claims-hardware-version-claims" title="Hardware Version Claims (hardware-version-claims)">

<t>The hardware version can be claimed at three different levels, the chip, the circuit board and the final device assembly.
An EAT can include any combination these claims.</t>

<t>The hardware version is a simple text string the format of which is set by each manufacturer.
The structure and sorting order of this text string can be specified using the version-scheme item from CoSWID <xref target="CoSWID"/>.</t>

<t>The hardware version can also be given by a 13-digit <xref target="EAN-13"/>.
A new CoSWID version scheme is registered with IANA by this document in <xref target="registerversionscheme"/>.
An EAN-13 is also known as an International Article Number or most commonly as a bar code.</t>

<figure><artwork type="CDDL"><![CDATA[
chip-version-claim = (
    chip-version => tstr
)

chip-version-scheme-claim = (
    chip-version-scheme => $version-scheme
)

board-version-claim = (
    board-version => tstr
)

board-version-scheme-claim = (
    board-version-scheme => $version-scheme
)

device-version-claim = (
    device-version => tstr
)

device-version-scheme-claim = (
    device-version-scheme => $version-scheme
)


hardware-version-claims = (
    ? chip-version-claim,
    ? board-version-claim,
    ? device-version-claim,
    ? chip-version-scheme-claim,
    ? board-version-scheme-claim,
    ? device-version-scheme-claim,
)

]]></artwork></figure>

</section>
<section anchor="software-description-and-version" title="Software Description and Version">

<t>TODO: Add claims that reference CoSWID.</t>

</section>
<section anchor="the-security-level-claim-security-level" title="The Security Level Claim (security-level)">

<t>This claim characterizes the device/entity 
ability to defend against attacks aimed at capturing the signing
key, forging claims and at forging EATs. This is done by
defining four security levels as described below. This is similar
to the key protection types defined by the Fast Identity Online (FIDO) Alliance <xref target="FIDO.Registry"/>.</t>

<t>These claims describe security environment and countermeasures
available on the end-entity / client device where the attestation key
reside and the claims originate.</t>

<t><list style="hanging">
  <t hangText="1 – Unrestricted">
  There is some expectation that implementor will
protect the attestation signing keys at this level. Otherwise
the EAT provides no meaningful security assurances.</t>
  <t hangText="2– Restricted">
  Entities at this level should not be general-purpose
operating environments that host features such as app download
systems, web browsers and complex productivity applications.
It is akin to the Secure Restricted level (see below) without the
security orientation. Examples include a Wi-Fi subsystem,
an IoT camera, or sensor device.</t>
  <t hangText="3 – Secure Restricted">
  Entities at this level must meet the criteria defined by FIDO Allowed
Restricted Operating Environments <xref target="FIDO.AROE"/>. Examples include TEE’s and 
schemes using virtualization-based security. Like the FIDO security goal,
security at this level is aimed at defending well against large-scale
network / remote attacks against the device.</t>
  <t hangText="4 – Hardware">
  Entities at this level must include substantial defense 
against physical or electrical attacks against the device itself.
It is assumed any potential attacker has captured the device and can 
disassemble it. Example include TPMs and Secure Elements.</t>
</list></t>

<t>The entity should claim the highest security level it achieves and no higher.
This set is not extensible so as to provide a common interoperable description of security level to the relying party.
If a particular implementation considers this claim to be inadequate, it can define its own proprietary claim.
It may consider including both this claim as a coarse indication of security and its own proprietary claim as a refined indication.</t>

<t>This claim is not intended as a replacement for a proper end-device
security certification schemes such as those based on FIPS 140 <xref target="FIPS-140"/> 
or those based on Common Criteria <xref target="Common.Criteria"/>. The 
claim made here is solely a self-claim made by the Entity Originator.</t>

<section anchor="security-level-cddl" title="security-level CDDL">

<figure><artwork type="CDDL"><![CDATA[
security-level-cbor-type = &(
    unrestricted: 1,
    restricted: 2,
    secure-restricted: 3,
    hardware: 4
)

security-level-json-type = 
    "unrestricted" /
    "restricted" /
    "secure-restricted" /
    "hardware"

security-level-claim = (
    security-level => security-level-cbor-type / security-level-json-type
)
]]></artwork></figure>

</section>
</section>
<section anchor="secure-boot-claim-secure-boot" title="Secure Boot Claim (secure-boot)">

<t>The value of true indicates secure boot is enabled. Secure boot is
considered enabled when base software, the firmware and operating
system, are under control of the entity manufacturer identified in the
oemid claimd described in <xref target="oemid"/>. This may because the software is
in ROM or because it is cryptographically authenticated or some
combination of the two or other.</t>

<section anchor="secure-boot-cddl" title="secure-boot CDDL">

<figure><artwork type="CDDL"><![CDATA[
secure-boot-claim = (
    secure-boot => bool
)
]]></artwork></figure>

</section>
</section>
<section anchor="debug-status-claim-debug-status" title="Debug Status Claim (debug-status)">

<t>This applies to system-wide or submodule-wide debug facilities of the
target device / submodule like JTAG and diagnostic hardware built into
chips. It applies to any software debug facilities related to root,
operating system or privileged software that allow system-wide memory
inspection, tracing or modification of non-system software like user
mode applications.</t>

<t>This characterization assumes that debug facilities can be enabled and
disabled in a dynamic way or be disabled in some permanent way such
that no enabling is possible. An example of dynamic enabling is one
where some authentication is required to enable debugging. An example
of permanent disabling is blowing a hardware fuse in a chip. The specific
type of the mechanism is not taken into account. For example, it does
not matter if authentication is by a global password or by per-device
public keys.</t>

<t>As with all claims, the absence of the debug level claim means
it is not reported. A conservative interpretation might assume
the Not Disabled state. It could however be that it is reported
in a proprietary claim.</t>

<t>This claim is not extensible so as to provide a common interoperable description of debug status to the relying party.
If a particular implementation considers this claim to be inadequate, it can define its own proprietary claim.
It may consider including both this claim as a coarse indication of debug status and its own proprietary claim as a refined indication.</t>

<t>The higher levels of debug disabling requires that all debug disabling
of the levels below it be in effect. Since the lowest level requires
that all of the target’s debug be currently disabled, all other levels
require that too.</t>

<t>There is no inheritance of claims from a submodule to a superior
module or vice versa. There is no assumption, requirement or guarantee
that the target of a superior module encompasses the targets of
submodules. Thus, every submodule must explicitly describe its own
debug state. The verifier or relying party receiving an EAT cannot
assume that debug is turned off in a submodule because there is a claim
indicating it is turned off in a superior module.</t>

<t>An individual target device / submodule may have multiple debug
facilities. The use of plural in the description of the states
refers to that, not to any aggregation or inheritance.</t>

<t>The architecture of some chips or devices may be such that a debug
facility operates for the whole chip or device. If the EAT for such
a chip includes submodules, then each submodule should independently
report the status of the whole-chip or whole-device debug facility.
This is the only way the relying party can know the debug status
of the submodules since there is no inheritance.</t>

<section anchor="enabled" title="Enabled">

<t>If any debug facility, even manufacturer hardware diagnostics, is
currently enabled, then this level must be indicated.</t>

</section>
<section anchor="disabled" title="Disabled">

<t>This level indicates all debug facilities are currently disabled. It
may be possible to enable them in the future, and it may also be
possible that they were enabled in the past after the
target device/sub-system booted/started, but they are currently disabled.</t>

</section>
<section anchor="disabled-since-boot" title="Disabled Since Boot">

<t>This level indicates all debug facilities are currently disabled and
have been so since the target device/sub-system booted/started.</t>

</section>
<section anchor="disabled-permanently" title="Disabled Permanently">

<t>This level indicates all non-manufacturer facilities are permanently
disabled such that no end user or developer cannot enable them. Only
the manufacturer indicated in the OEMID claim can enable them. This
also indicates that all debug facilities are currently disabled and
have been so since boot/start.</t>

</section>
<section anchor="disabled-fully-and-permanently" title="Disabled Fully and Permanently">

<t>This level indicates that all debug capabilities for the target
device/sub-module are permanently disabled.</t>

</section>
<section anchor="debug-status-cddl" title="debug-status CDDL">

<figure><artwork type="CDDL"><![CDATA[
debug-status-cbor-type = &(
    enabled: 0,
    disabled: 1,
    disabled-since-boot: 2,
    disabled-permanently: 3,
    disabled-fully-and-permanently: 4
)

debug-status-json-type = 
    "enabled" /
    "disabled" /
    "disabled-since-boot" /
    "disabled-permanently" /
    "disabled-fully-and-permanently"

debug-status-claim = (
    debug-status => debug-status-cbor-type / debug-status-json-type
)
]]></artwork></figure>

</section>
</section>
<section anchor="including-keys" title="Including Keys">

<t>An EAT may include a cryptographic key such as a public key.
The signing of the EAT binds the key to all the other claims in the token.</t>

<t>The purpose for inclusion of the key may vary by use case.
For example, the key may be included as part of an IoT device onboarding protocol.
When the FIDO protocol includes a pubic key in its attestation message, the key represents the binding of a user, device and relying party.
This document describes how claims containing keys should be defined for the various use cases.
It does not define specific claims for specific use cases.</t>

<t>Keys in CBOR format tokens SHOULD be the COSE_Key format <xref target="RFC8152"/> and keys in JSON format tokens SHOULD be the JSON Web Key format <xref target="RFC7517"/>.
These two formats support many common key types.
Their use avoids the need to decode other serialization formats.
These two formats can be extended to support further key types through their IANA registries.</t>

<t>The general confirmation claim format <xref target="RFC8747"/>, <xref target="RFC7800"/> may also be used.
It provides key encryption. 
It also allows for inclusion by reference through a key ID.
The confirmation claim format may employed in the definition of some new claim for a a particular use case.</t>

<t>When the actual confirmation claim is included in an EAT, this document associates no use case semantics other than proof of posession.
Different EAT use cases may choose to associate further semantics.
The key in the confirmation claim MUST be protected the same as the key used to sign the EAT. 
That is, the same, equivalent or better hardware defenses, access controls, key generation and such must be used.</t>

</section>
<section anchor="the-location-claim-location" title="The Location Claim (location)">

<t>The location claim gives the location of the device entity from which the attestation originates.
It is derived from the W3C Geolocation API <xref target="W3C.GeoLoc"/>.
The latitude, longitude, altitude and accuracy must conform to <xref target="WGS84"/>.
The altitude is in meters above the <xref target="WGS84"/> ellipsoid.
The two accuracy values are positive numbers in meters.
The heading is in degrees relative to true north.
If the device is stationary, the heading is NaN (floating-point not-a-number).
The speed is the horizontal component of the device velocity in meters per second.</t>

<t>When encoding floating-point numbers half-precision should not be used.
It usually does not provide enough precision for a geographic location.
It is not a requirement that the receiver of an EAT implement half-precision, so the receiver may not be able to decode the location.</t>

<t>The location may have been cached for a period of time before token
creation. For example, it might have been minutes or hours or more
since the last contact with a GPS satellite. Either the timestamp or
age data item can be used to quantify the cached period.  The timestamp
data item is preferred as it a non-relative time.</t>

<t>The age data item can be used when the entity doesn’t know what time
it is either because it doesn’t have a clock or it isn’t set. The
entity must still have a “ticker” that can measure a time
interval. The age is the interval between acquisition of the location
data and token creation.</t>

<t>See location-related privacy considerations in <xref target="locationprivacyconsiderations"/> below.</t>

<section anchor="location-cddl" title="location CDDL">

<figure><artwork type="CDDL"><![CDATA[
location-type = {
    latitude => number,
    longitude => number,
    ? altitude => number,
    ? accuracy => number,
    ? altitude-accuracy => number,
    ? heading => number,
    ? speed => number,
    ? timestamp => ~time-int,
    ? age => uint
}

latitude = 1 / "latitude"
longitude = 2 / "longitude"
altitude = 3 / "altitude"
accuracy = 4 / "accuracy"
altitude-accuracy = 5 / "altitude-accuracy"
heading = 6 / "heading"
speed = 7 / "speed"
timestamp = 8 / "timestamp"
age = 9 / "age"

location-claim = (
    location-label => location-type
)
]]></artwork></figure>

</section>
</section>
<section anchor="the-uptime-claim-uptime" title="The Uptime Claim (uptime)">

<t>The “uptime” claim contains a value that represents the number of
seconds that have elapsed since the entity or submod was last booted.</t>

<section anchor="uptime-cddl" title="uptime CDDL">

<figure><artwork type="CDDL"><![CDATA[
uptime-claim = (
    uptime => uint
)
]]></artwork></figure>

</section>
</section>
<section anchor="the-boot-seed-claim-boot-seed" title="The Boot Seed Claim (boot-seed)">

<t>The Boot Seed claim is a random value created at system boot time that will allow differentiation of reports from different boot sessions.
This value is usually public and not protected.
It is not the same as a seed for a random number generator which must be kept secret.</t>

<figure><artwork type="CDDL"><![CDATA[
boot-seed-claim = (
    boot-seed => bytes
)
]]></artwork></figure>

</section>
<section anchor="the-intended-use-claim-intended-use" title="The Intended Use Claim (intended-use)">

<t>EAT’s may be used in the context of several different applications.  The intended-use
claim provides an indication to an EAT consumer about  the intended usage
of the token. This claim can be used as a way for an application using EAT to internally distinguish between different ways it uses EAT.</t>

<t><list style="hanging">
  <t hangText="1 – Generic">
  Generic attestation describes an application where the EAT consumer
requres the most up-to-date security assessment of the attesting entity. It
is expected that this is the most commonly-used application of EAT.</t>
  <t hangText="2– Registration">
  Entities that are registering for a new service may be expected to 
provide an attestation as part of the registration process.  This intended-use
setting indicates that the attestation is not intended for any use but registration.</t>
  <t hangText="3 – Provisioning">
  Entities may be provisioned with different values or settings by an EAT
consumer.  Examples include key material or device management trees.  The consumer
may require an EAT to assess device security state of the entity prior to provisioning.</t>
  <t hangText="4 – Certificate Issuance (Certificate Signing Request)">
  Certifying authorities (CA’s) may require attestations prior to
the issuance of certificates related to keypairs hosted at the entity.  An
EAT may be used as part of the certificate signing request (CSR).</t>
  <t hangText="5 – Proof-of-Possession">
  An EAT consumer may require an attestation as part of an accompanying 
proof-of-possession (PoP) appication. More precisely, a PoP transaction is intended
to provide to the recipient cryptographically-verifiable proof that the sender has posession
of a key.  This kind of attestation may be neceesary to verify the
security state of the entity storing the private key used in a PoP application.</t>
</list></t>

<section anchor="intended-use-cddl" title="intended-use CDDL">

<figure><artwork type="CDDL"><![CDATA[
intended-use-cbor-type = &(
    generic: 1,
    registration: 2,
    provisioning: 3,
    csr: 4,
    pop:  5
)

intended-use-json-type = 
    "generic" /
    "registration" /
    "provisioning" /
    "csr" /
    "pop" 

intended-use-claim = (
    intended-use => intended-use-cbor-type / intended-use-json-type
)
]]></artwork></figure>

</section>
</section>
<section anchor="profile-claim" title="The Profile Claim (profile)">

<t>See <xref target="profiles"/> for the detailed description of a profile.</t>

<t>A profile is identified by either a URL or an OID.
Typically, the URI will reference a document describing the profile.
An OID is just a unique identifier for the profile.
It may exist anywhere in the OID tree.
There is no requirement that the named document be publicly accessible.
The primary purpose of the profile claim is to uniquely identify the profile even if it is a private profile.</t>

<t>The OID is encoded in CBOR according to <xref target="CBOR-OID"/> and the URI according to <xref target="RFC8949"/>.
Both are unwrapped and thus not tags.
The OID is always absolute and never relative.
If the claims CBOR type is a text string it is a URI and if a byte string it is an OID.</t>

<t>Note that this named “eat_profile” for JWT and is distinct from the already registered “profile” claim in the JWT claims registry.</t>

<figure><artwork type="CDDL"><![CDATA[
oid = #6.4000(bstr) ; TODO: fill this in with correct CDDL from OID RFC

profile-claim = (
    profile => ~uri / ~oid
)
]]></artwork></figure>

</section>
<section anchor="the-software-manifests-claim-manifests" title="The Software Manifests Claim (manifests)">

<t>This claim contains descriptions of software that is present on the device.
These manifests are installed on the device when the software is installed or are created as part of the installation process.
Installation is anything that adds software to the device, possibly factory installation, the user installing elective applications and so on.
The defining characteristic is that they are created by the software manufacturer.
The purpose of these claims in an EAT is to relay them without modification to the Verifier and/or the Relying Party.</t>

<t>In some cases these will be signed by the software manufacturer independent of any signing for the purpose of EAT attestation.
Manifest claims should include the manufacturer’s signature (which will be signed over  by the attestation signature).
In other cases the attestation signature will be the only one.</t>

<t>This claim allows multiple formats for the manifest.
For example the manifest may be a CBOR-format CoSWID, an XML-format SWID or other.
Identification of the type of manifest is always by a CBOR tag.
In many cases, for examples CoSWID, a tag will already be registered with IANA.
If not, a tag MUST be registered.
It can be in the first-come-first-served space which has minimal requirements for registration.</t>

<t>The claim is an array of one or more manifests.
To facilitate hand off of the manifest to a decoding library, each manifest is contained in a byte string.
This occurs for CBOR-format manifests as well as non-CBOR format manifests.</t>

<t>If a particular manifest type uses CBOR encoding, then the item in the array for it MUST be a byte string that contains a CBOR tag.
The EAT decoder must decode the byte string and then the CBOR within it to find the tag number to identify the type of manifest.
The contents of the byte string is then handed to the particular manifest processor for that type of manifest.
CoSWID and SUIT manifest are examples of this.</t>

<t>If a particular manifest type does not use CBOR encoding, then the item in the array for it must be a CBOR tag that contains a byte string.
The EAT decoder uses the tag to identify the processor for that type of manifest.
The contents of the tag, the byte string, are handed to the manifest processor.
Note that a byte string is used to contain the manifest whether it is a text based format or not.
An example of this is an XML format ISO/IEC 19770 SWID.</t>

<t>It is not possible to describe the above requirements in CDDL so the type for an individual manifest is any in the CDDL below.
The above text sets the encoding requirement.</t>

<t>This claim allows for multiple manifests in one token since multiple software packages are likely to be present.
The multiple manifests may be of multiple formats.
In some cases EAT submodules may be used instead of the array structure in this claim for multiple manifests.</t>

<t>When the <xref target="CoSWID"/> format is used, it MUST be a payload CoSWID, not an evidence CoSWID.</t>

<figure><artwork type="CDDL"><![CDATA[
manifests-claim = (
    manifests => manifests-type
)

manifests-type = [+ $manifest-formats]

; Must be a CoSWID payload type
$manifest-formats /= bytes .cbor concise-swid-tag

$manifest-formats /= bytes .cbor SUIT_Envelope_Tagged

]]></artwork></figure>

</section>
<section anchor="the-software-evidence-claim-swevidence" title="The Software Evidence Claim {swevidence}">

<t>This claim contains descriptions, lists, evidence or measurements of the software that exists on the device.
The defining characteristic of this claim is that its contents are created by processes on the device that inventory, measure or otherwise characterize the software on the device.
The contents of this claim do not originate from the software manufacturer.</t>

<t>In most cases the contents of this claim are signed as part of attestation signing, but independent signing in addition to the attestation signing is not ruled out when a particular evidence format supports it.</t>

<t>This claim uses the same mechanism for identification of the type of the swevidence as is used for the type of the manifest in the manifests claim.
It also uses the same byte string based mechanism for containing the claim and easing the hand off to a processing library.
See the discussion above in the manifests claim.</t>

<t>When the <xref target="CoSWID"/> format is used, it MUST be evidence CoSWIDs, not payload CoSWIDS.</t>

<figure><artwork type="CDDL"><![CDATA[
swevidence-claim = (
    swevidence => swevidence-type
)

swevidence-type = [+ $swevidence-formats]

; Must be a CoSWID evidence type
$swevidence-formats /= bytes .cbor concise-swid-tag

]]></artwork></figure>

</section>
<section anchor="the-submodules-part-of-a-token-submods" title="The Submodules Part of a Token (submods)">

<t>Some devices are complex, having many subsystems or submodules.  A
mobile phone is a good example. It may have several connectivity
submodules for communications (e.g., Wi-Fi and cellular). It may have
subsystems for low-power audio and video playback. It may have one or
more security-oriented subsystems like a TEE or a Secure Element.</t>

<t>The claims for each these can be grouped together in a submodule.</t>

<t>The submods part of a token are in a single map/object with many entries, one
per submodule.  There is only one submods map in a token. It is
identified by its specific label. It is a peer to other claims, but it
is not called a claim because it is a container for a claim set rather
than an individual claim. This submods part of a token allows what
might be called recursion. It allows claim sets inside of claim sets
inside of claims sets…</t>

<section anchor="two-types-of-submodules" title="Two Types of Submodules">

<t>Each entry in the submod map is one of two types:</t>

<t><list style="symbols">
  <t>A non-token submodule that is a map or object directly containing claims for the submodule.</t>
  <t>A nested EAT that is a fully formed, independently signed EAT token</t>
</list></t>

<section anchor="non-token-submodules" title="Non-token Submodules">

<t>This is simply a map or object containing claims about the submodule.</t>

<t>It may contain claims that are the same as its surrounding token or superior submodules. 
For example, the top-level of the token may have a UEID, a submod may have a different UEID and a further subordinate submodule may also have a UEID.</t>

<t>It is signed/encrypted along with the rest of the token and thus the claims are secured by the same Attester with the same signing key as the rest of the token.</t>

<t>If a token is in CBOR format (a CWT or a UCCS), all non-token submodules must be CBOR format.
If a token in in JSON format (a JWT), all non-token submodules must be in JSON format.</t>

<t>When decoding, this type of submodule is recognized from the other type by being a data item of type map for CBOR or type object for JSON.</t>

</section>
<section anchor="nested-eats" title="Nested EATs">

<t>This type of submodule is a fully formed secured EAT as defined in this document except that it MUST NOT be a UCCS or an unsecured JWT.
A nested token that is one that is always secured using COSE or JOSE, usually by an independent Attester.
When the surrounding EAT is a CWT or secured JWT, the nested token becomes securely bound with the other claims in the surrounding token.</t>

<t>It is allowed to have a CWT as a submodule in a JWT and vice versa, but this SHOULD be avoided unless necessary.</t>

<section anchor="surrounding-eat-is-cbor-format" title="Surrounding EAT is CBOR format">
<t>They type of an EAT nested in a CWT is determined by whether the CBOR type is a text string or a byte string.
If a text string, then it is a JWT.
If a byte string, then it is a CWT.</t>

<t>A CWT nested in a CBOR-format token is always wrapped by a byte string for easier handling with standard CBOR decoders and token processing APIs that will typically take a byte buffer as input.</t>

<t>Nested CWTs may be either a CWT CBOR tag or a CWT Protocol Message.
COSE layers in nested CWT EATs MUST be a COSE_Tagged_Message, never a COSE_Untagged_Message.
If a nested EAT has more than one level of COSE, for example one that is both encrypted and signed, a COSE_Tagged_message must be used at every level.</t>

</section>
<section anchor="surrounding-eat-is-json-format" title="Surrounding EAT is JSON format">
<t>When a CWT is nested in a JWT, it must be as a 55799 tag in order to distinguish it from a nested JWT.</t>

<t>When a nested EAT in a JWT is decoded, first remove the base64url encoding.
Next, check to see if it starts with the bytes 0xd9d9f7.
If so, then it is a CWT as a JWT will never start with these four bytes. 
If not if it is a JWT.</t>

<t>Other than the 55799 tag requirement, tag usage for CWT’s nested in a JSON format token follow the same rules as for CWTs nested in CBOR-format tokens.
It may be a CWT CBOR tag or a CWT Protocol Message and COSE_Tagged_Message MUST be used at all COSE layers.</t>

</section>
</section>
<section anchor="unsecured-jwts-and-uccs-tokens-as-submodules" title="Unsecured JWTs and UCCS Tokens as Submodules">

<t>To incorporate a UCCS token as a submodule, it MUST be as a non-token submodule. 
This can be accomplished inserting the content of the UCCS Tag into the submodule map.
The content of a UCCS tag is exactly a map of claims as required for a non-token submodule.
If the UCCS is not a UCCS tag, then it can just be inserted into the submodule map directly.</t>

<t>The definition of a nested EAT type of submodule is that it is one that is secured (signed) by an Attester.
Since UCCS tokens are unsecured, they do not fulfill this definition and must be non-token submodules.</t>

<t>To incorporate an Unsecured JWT as a submodule, the null-security JOSE wrapping should be removed.
The resulting claims set should be inserted as a non-token submodule.</t>

<t>To incorporate a UCCS token in a surrounding JSON token, the UCCS token claims should be translated from CBOR to JSON.
To incorporate an Unsecured JWT into a surrounding CBOR-format token, the null-security JOSE should be removed and the claims translated from JSON to CBOR.</t>

</section>
</section>
<section anchor="no-inheritance" title="No Inheritance">

<t>The subordinate modules do not inherit anything from the containing
token.  The subordinate modules must explicitly include all of their
claims. This is the case even for claims like the nonce and age.</t>

<t>This rule is in place for simplicity. It avoids complex inheritance
rules that might vary from one type of claim to another.</t>

</section>
<section anchor="security-levels" title="Security Levels">

<t>The security level of the non-token subordinate modules should always
be less than or equal to that of the containing modules in the case of non-token
submodules. It makes no sense for a module of lesser security to be
signing claims of a module of higher security. An example of this is a
TEE signing claims made by the non-TEE parts (e.g. the high-level OS)
of the device.</t>

<t>The opposite may be true for the nested tokens. They usually have
their own more secure key material. An example of this is an embedded
secure element.</t>

</section>
<section anchor="submodule-names" title="Submodule Names">

<t>The label or name for each submodule in the submods map is a text
string naming the submodule. No submodules may have the same name.</t>

</section>
<section anchor="submods-cddl" title="submods CDDL">

<figure><artwork type="CDDL"><![CDATA[
; The part of a token that contains all the submodules.  It is a peer
; with the claims in the token, but not a claim, only a map/object to
; hold all the submodules.

submods-part = (
    submods => submods-type
)

submods-type = { + submod-type }


; The type of a submodule which can either be a nested claim set or a
; nested separately signed token. Nested tokens are wrapped in a bstr
; or a tstr.

submod-type = (
    submod-name => eat-claim-set / nested-token
)


; When this is a bstr, the contents are an eat-token in CWT or UCCS
; format.  When this is a tstr, the contents are an eat-token in JWT
; format.

nested-token = bstr / tstr; 


; Each submodule has a unique text string name.

submod-name = tstr 


]]></artwork></figure>

</section>
</section>
</section>
<section anchor="keyid" title="Endorsements and Verification Keys">

<t>The Verifier must possess the correct key when it performs the cryptographic part of an EAT verification (e.g., verifying the COSE signature).
This section describes several ways to identify the verification key.
There is not one standard method.</t>

<t>The verification key itself may be a public key, a symmetric key or something complicated in the case of a scheme like Direct Anonymous Attestation (DAA).</t>

<t>RATS Architecture <xref target="RATS.Architecture"/> describes what is called an Endorsement.
This is an input to the Verifier that is usually the basis of the trust placed in an EAT and the Attester that generated it.
It may contain the public key for verification of the signature on the EAT.
It may contain Reference Values to which EAT claims are compared as part of the verification process.
It may contain implied claims, those that are passed on to the Relying Party in Attestation Results.</t>

<t>There is not yet any standard format(s) for an Endorsement.
One format that may be used for an Endorsement is an X.509 certificate.
Endorsement data like Reference Values and implied claims can be carried in X.509 v3 extensions.
In this use, the public key in the X.509 certificate becomes the verification key, so identification of the Endorsement is also identification of the verification key.</t>

<t>The verification key identification and establishment of trust in the EAT and the attester may also be by some other means than an Endorsement.</t>

<t>For the components (Attester, Verifier, Relying Party,…) of a particular end-end attestation system to reliably interoperate, its definition should specify how the verification key is identified.
Usually, this will be in the profile document for a particular attestation system.</t>

<section anchor="identification-methods" title="Identification Methods">

<t>Following is a list of possible methods of key identification. A specific attestation system may employ any one of these or one not listed here.</t>

<t>The following assumes Endorsements are X.509 certificates or equivalent and thus does not mention or define any identifier for Endorsements in other formats. If such an Endorsement format is created, new identifiers for them will also need to be created.</t>

<section anchor="cosejws-key-id" title="COSE/JWS Key ID">

<t>The COSE standard header parameter for Key ID (kid) may be used. See <xref target="RFC8152"/> and <xref target="RFC7515"/></t>

<t>COSE leaves the semantics of the key ID open-ended.
It could be a record locator in a database, a hash of a public key, an input to a KDF, an authority key identifier (AKI) for an X.509 certificate or other.
The profile document should specify what the key ID’s semantics are.</t>

</section>
<section anchor="jws-and-cose-x509-header-parameters" title="JWS and COSE X.509 Header Parameters">

<t>COSE X.509 <xref target="COSE.X509.Draft"/> and JSON Web Siganture <xref target="RFC7515"/> define several header parameters (x5t, x5u,…) for referencing or carrying X.509 certificates any of which may be used.</t>

<t>The X.509 certificate may be an Endorsement and thus carrying additional input to the Verifier. It may be just an X.509 certificate, not an Endorsement. The same header parameters are used in both cases. It is up to the attestation system design and the Verifier to determine which.</t>

</section>
<section anchor="cbor-certificate-cose-header-parameters" title="CBOR Certificate COSE Header Parameters">

<t>Compressed X.509 and CBOR Native certificates are defined by CBOR Certificates <xref target="CBOR.Cert.Draft"/>. These are semantically compatible with X.509 and therefore can be used as an equivalent to X.509 as described above.</t>

<t>These are identified by their own header parameters (c5t, c5u,…).</t>

</section>
<section anchor="claim-based-key-identification" title="Claim-Based Key Identification">

<t>For some attestation systems, a claim may be re-used as a key identifier. For example, the UEID uniquely identifies the device and therefore can work well as a key identifier or Endorsement identifier.</t>

<t>This has the advantage that key identification requires no additional bytes in the EAT and makes the EAT smaller.</t>

<t>This has the disadvantage that the unverified EAT must be substantially decoded to obtain the identifier since the identifier is in the COSE/JOSE payload, not in the headers.</t>

</section>
</section>
<section anchor="other-considerations" title="Other Considerations">

<t>In all cases there must be some way that the verification key is itself verified or determined to be trustworthy.
The key identification itself is never enough.
This will always be by some out-of-band mechanism that is not described here.
For example, the Verifier may be configured with a root certificate or a master key by the Verifier system administrator.</t>

<t>Often an X.509 certificate or an Endorsement carries more than just the verification key.
For example, an X.509 certificate might have key usage constraints and an Endorsement might have Reference Values.
When this is the case, the key identifier must be either a protected header or in the payload such that it is cryptographically bound to the EAT.
This is in line with the requirements in section 6 on Key Identification in JSON Web Signature <xref target="RFC7515"/>.</t>

</section>
</section>
<section anchor="profiles" title="Profiles">

<t>This EAT specification does not gaurantee that implementations of it will interoperate.
The variability in this specification is necessary to accommodate the widely varying use cases.
An EAT profile narrows the specification for a specific use case.
An ideal EAT profile will gauarantee interoperability.</t>

<t>The profile can be named in the token using the profile claim described in <xref target="profile-claim"/>.</t>

<section anchor="format-of-a-profile-document" title="Format of a Profile Document">

<t>A profile document doesn’t have to be in any particular format. It may be simple text, something more formal or a combination.</t>

<t>In some cases CDDL may be created that replaces CDDL in this or other document to express some profile requirements.
For example, to require the altitude data item in the location claim, CDDL can be written that replicates the location claim with the altitude no longer optional.</t>

</section>
<section anchor="list-of-profile-issues" title="List of Profile Issues">

<t>The following is a list of EAT, CWT, UCCS, JWS, COSE, JOSE and CBOR options that a profile should address.</t>

<section anchor="use-of-json-cbor-or-both" title="Use of JSON, CBOR or both">

<t>The profile should indicate whether the token format should be CBOR, JSON, both or even some other encoding.
If some other encoding, a specification for how the CDDL described here is serialized in that encoding is necessary.</t>

<t>This should be addressed for the top-level token and for any nested tokens.
For example, a profile might require all nested tokens to be of the same encoding of the top level token.</t>

</section>
<section anchor="cbor-map-and-array-encoding" title="CBOR Map and Array Encoding">

<t>The profile should indicate whether definite-length arrays/maps, indefinite-length arrays/maps or both are allowed.
A good default is to allow only definite-length arrays/maps.</t>

<t>An alternate is to allow both definite and indefinite-length arrays/maps.
The decoder should accept either.
Encoders that need to fit on very small hardware or be actually implement in hardware can use indefinite-length encoding.</t>

<t>This applies to individual EAT claims, CWT and COSE parts of the implementation.</t>

</section>
<section anchor="cbor-string-encoding" title="CBOR String Encoding">

<t>The profile should indicate whether definite-length strings, indefinite-length strings or both are allowed.
A good default is to allow only definite-length strings.
As with map and array encoding, allowing indefinite-length strings can be beneficial for some smaller implementations.</t>

</section>
<section anchor="cbor-preferred-serialization" title="CBOR Preferred Serialization">

<t>The profile should indicate whether encoders must use preferred serialization.
The profile should indicate whether decoders must accept non-preferred serialization.</t>

</section>
<section anchor="cosejose-protection" title="COSE/JOSE Protection">

<t>COSE and JOSE have several options for signed, MACed and encrypted messages.
EAT/CWT has the option to have no protection using UCCS and JOSE has a NULL protection option.
It is possible to implement no protection, sign only, MAC only, sign then encrypt and so on.
All combinations allowed by COSE, JOSE, JWT, CWT and UCCS are allowed by EAT.</t>

<t>The profile should list the protections that must be supported by all decoders implementing the profile.
The encoders them must implement a subset of what is listed for the decoders, perhaps only one.</t>

<t>Implementations may choose to sign or MAC before encryption so that the implementation layer doing the signing or MACing can be the smallest.
It is often easier to make smaller implementations more secure, perhaps even implementing in solely in hardware.
The key material for a signature or MAC is a private key, while for encryption it is likely to be a public key.
The key for encryption requires less protection.</t>

</section>
<section anchor="cosejose-algorithms" title="COSE/JOSE Algorithms">

<t>The profile document should list the COSE algorithms that a Verifier must implement.
The Attester will select one of them. 
Since there is no negotiation, the Verifier should implement all algorithms listed in the profile.</t>

</section>
<section anchor="verification-key-identification" title="Verification Key Identification">

<t>Section <xref target="keyid"/> describes a number of methods for identifying a verification key.
The profile document should specify one of these or one that is not described.
The ones described in this document are only roughly described.
The profile document should go into the full detail.</t>

</section>
<section anchor="endorsement-identification" title="Endorsement Identification">

<t>Similar to, or perhaps the same as Verification Key Identification, the profile may wish to specify how Endorsements are to be identified.
However note that Endorsement Identification is optional, where as key identification is not.</t>

</section>
<section anchor="freshness" title="Freshness">

<t>Just about every use case will require some means of knowing the EAT is recent enough and not a replay of an old token.
The profile should describe how freshness is achieved.
The section on Freshness in <xref target="RATS-Architecture"/> describes some of the possible solutions to achieve this.</t>

</section>
<section anchor="required-claims" title="Required Claims">

<t>The profile can list claims whose absence results in Verification failure.</t>

</section>
<section anchor="prohibited-claims" title="Prohibited Claims">

<t>The profile can list claims whose presence results in Verification failure.</t>

</section>
<section anchor="additional-claims" title="Additional Claims">
<t>The profile may describe entirely new claims.
These claims can be required or optional.</t>

</section>
<section anchor="refined-claim-definition" title="Refined Claim Definition">

<t>The profile may lock down optional aspects of individual claims.
For example, it may require altitude in the location claim, or it may require that HW Versions always be described using EAN-13.</t>

</section>
<section anchor="cbor-tags" title="CBOR Tags">

<t>The profile should specify whether the token should be a CWT Tag or not.
Similarly, the profile should specify whether the token should be a UCCS tag or not.</t>

<t>When COSE protection is used, the profile should specify whether COSE tags are used or not.
Note that RFC 8392 requires COSE tags be used in a CWT tag.</t>

<t>Often a tag is unncessary because the surrounding or carrying protocol identifies the object as an EAT.</t>

</section>
<section anchor="manifests-and-software-evidence-claims" title="Manifests and Software Evidence Claims">

<t>The profile should specify which formats are allowed for the manifests and software evidence claims.
The profile may also go on to say which parts and options of these formats are used, allowed and prohibited.</t>

</section>
</section>
</section>
<section anchor="encoding" title="Encoding">
<t>This makes use of the types defined in CDDL Appendix D, Standard Prelude.</t>

<t>Some of the CDDL included here is for claims that are defined in CWT <xref target="RFC8392"/> or JWT <xref target="RFC7519"/> or are in the IANA CWT or JWT registries.
CDDL was not in use when these claims where defined.</t>

<section anchor="common-cddl-types" title="Common CDDL Types">

<t>time-int is identical to the epoch-based time, but disallows
floating-point representation.</t>

<t>Note that unless expliclity indicated, URIs are not the URI tag defined in <xref target="RFC8949"/>.
They are just text strings that contain a URI.</t>

<figure><artwork type="CDDL"><![CDATA[
string-or-uri = tstr 

time-int = #6.1(int)
]]></artwork></figure>

</section>
<section anchor="cddl-for-cwt-defined-claims" title="CDDL for CWT-defined Claims">

<t>This section provides CDDL for the claims defined in CWT. It is
non-normative as <xref target="RFC8392"/> is the authoritative definition of these
claims.</t>

<t>Note that the subject, issue and audience claims may be a text string containing a URI per <xref target="RFC8392"/> and <xref target="RFC7519"/>.
These are never the URI tag defined in <xref target="RFC8949"/>.</t>

<figure><artwork type="CDDL"><![CDATA[
$$eat-extension //= (
    ? issuer => text,
    ? subject => text,
    ? audience => text,
    ? expiration => time,
    ? not-before => time,
    ? issued-at => time,
    ? cwt-id => bytes,
)

issuer = 1
subject = 2
audience = 3
expiration = 4
not-before = 5
issued-at = 6
cwt-id = 7

]]></artwork></figure>

</section>
<section anchor="json" title="JSON">

<section anchor="json-labels" title="JSON Labels">

<figure><artwork type="JSON"><![CDATA[
; The following are Claim Keys (labels) assigned for JSON-encoded tokens.

ueid /= "ueid"
sueids /= "sueids"
nonce /= "nonce"
oemid /= "oemid"
security-level /= "seclevel"
secure-boot /= "secboot"
debug-status /= "dbgstat"
location /= "location"
uptime /= "uptime"
profile /= "eat-profile"
intended-use /= "intuse"
boot-seed /= "bootseed"
submods /= "submods"
timestamp /= "timestamp"
manifests /= "manifests"
swevidence /= "swevidence"

latitude /= "lat"
longitude /= "long"
altitude /= "alt"
accuracy /= "accry"
altitude-accuracy /= "alt-accry"
heading /= "heading"
speed /= "speed"
]]></artwork></figure>

</section>
<section anchor="jsoninterop" title="JSON Interoperability">

<t>JSON should be encoded per RFC 8610 Appendix E. In addition, the
following CDDL types are encoded in JSON as follows:</t>

<t><list style="symbols">
  <t>bstr – must be base64url encoded</t>
  <t>time – must be encoded as NumericDate as described section 2 of <xref target="RFC7519"/>.</t>
  <t>string-or-uri – must be encoded as StringOrURI as described section 2 of <xref target="RFC7519"/>.</t>
  <t>uri – must be a URI <xref target="RFC3986"/>.</t>
  <t>oid – encoded as a string using the well established dotted-decimal notation (e.g., the text “1.2.250.1”).</t>
</list></t>

</section>
</section>
<section anchor="cbor" title="CBOR">

<section anchor="cbor-interoperability" title="CBOR Interoperability">

<t>CBOR allows data items to be serialized in more than one form.
If the sender uses a form that the receiver can’t decode, there will not be interoperability.</t>

<t>This specification gives no blanket requirements to narrow CBOR serialization for all uses of EAT.
This allows individual uses to tailor serialization to the environment.
It also may result in EAT implementations that don’t interoperate.</t>

<t>One way to guarantee interoperability is to clearly specify CBOR serialization in a profile document.
See <xref target="profiles"/> for a list of serialization issues that should be addressed.</t>

<t>EAT will be commonly used where the device generating the attestation is constrained and the receiver/verifier of the attestation is a capacious server.
Following is a set of serialization requirements that work well for that use case and are guaranteed to interoperate.
Use of this serialization is recommended where possible, but not required.
An EAT profile may just reference the following section rather than spell out serialization details.</t>

<section anchor="eat-constrained-device-serialization" title="EAT Constrained Device Serialization">

<t><list style="symbols">
  <t>Preferred serialization described in section 4.1 of <xref target="RFC8949"/> is not required.
The EAT decoder must accept all forms of number serialization.
The EAT encoder may use any form it wishes.</t>
  <t>The EAT decoder must accept indefinite length arrays and maps as described in section 3.2.2 of <xref target="RFC8949"/>.
The EAT encoder may use indefinite length arrays and maps if it wishes.</t>
  <t>The EAT decoder must accept indefinite length strings as described in section 3.2.3 of <xref target="RFC8949"/>.
The EAT encoder may use indefinite length strings if it wishes.</t>
  <t>Sorting of maps by key is not required.
The EAT decoder must not rely on sorting.</t>
  <t>Deterministic encoding described in Section 4.2 of <xref target="RFC8949"/> is not required.</t>
  <t>Basic validity described in section 5.3.1 of <xref target="RFC8949"/> must be followed.
The EAT encoder must not send duplicate map keys/labels or invalid UTF-8 strings.</t>
</list></t>

</section>
</section>
</section>
<section anchor="collected-cddl" title="Collected CDDL">

<figure><artwork type="CDDL"><![CDATA[
; This is the top-level definition of the claims in EAT tokens.  To
; form an actual EAT Token, this claim set is enclosed in a COSE, JOSE
; or UCCS message.

eat-claim-set = {
    ? ueid-claim,
    ? sueids-claim,
    ? nonce-claim,
    ? oemid-claim,
    ? hardware-version-claims,
    ? security-level-claim,
    ? secure-boot-claim,
    ? debug-status-claim,
    ? location-claim,
    ? intended-use-claim,
    ? profile-claim,
    ? uptime-claim,
    ? manifests-claim,
    ? swevidence-claim,
    ? submods-part,
    * $$eat-extension,
}


; This is the top-level definition of an EAT Token.  It is a CWT, JWT
; or UCSS where the payload is an eat-claim-set. A JWT_Message is what
; is defined by JWT in RFC 7519. (RFC 7519 doesn't use CDDL so a there
; is no actual CDDL definition of JWT_Message).

eat-token = EAT_Tagged_Message / EAT_Untagged_Message / JWT_Message


; This is CBOR-format EAT token in the CWT or UCCS format that is a
; tag.  COSE_Tagged_message is defined in RFC 8152.  Tag 601 is
; proposed by the UCCS draft, but not yet assigned.

EAT_Tagged_Message = #6.61(COSE_Tagged_Message) / #6.601(eat-claim-set)


; This is a CBOR-format EAT token that is a CWT or UCSS that is not a
; tag COSE_Tagged_message and COSE_Untagged_Message are defined in RFC
; 8152.

EAT_Untagged_Message = COSE_Tagged_Message / COSE_Untagged_Message / UCCS_Untagged_Message


; This is an "unwrapped" UCCS tag. Unwrapping a tag means to use the
; definition of its content without the preceding type 6 tag
; integer. Since a UCCS is nothing but a tag for an unsecured CWT
; claim set, unwrapping reduces to a bare eat-claim-set.

UCCS_Untagged_Message = eat-claim-set

string-or-uri = tstr 

time-int = #6.1(int)
$$eat-extension //= (
    ? issuer => text,
    ? subject => text,
    ? audience => text,
    ? expiration => time,
    ? not-before => time,
    ? issued-at => time,
    ? cwt-id => bytes,
)

issuer = 1
subject = 2
audience = 3
expiration = 4
not-before = 5
issued-at = 6
cwt-id = 7

debug-status-cbor-type = &(
    enabled: 0,
    disabled: 1,
    disabled-since-boot: 2,
    disabled-permanently: 3,
    disabled-fully-and-permanently: 4
)

debug-status-json-type = 
    "enabled" /
    "disabled" /
    "disabled-since-boot" /
    "disabled-permanently" /
    "disabled-fully-and-permanently"

debug-status-claim = (
    debug-status => debug-status-cbor-type / debug-status-json-type
)
location-type = {
    latitude => number,
    longitude => number,
    ? altitude => number,
    ? accuracy => number,
    ? altitude-accuracy => number,
    ? heading => number,
    ? speed => number,
    ? timestamp => ~time-int,
    ? age => uint
}

latitude = 1 / "latitude"
longitude = 2 / "longitude"
altitude = 3 / "altitude"
accuracy = 4 / "accuracy"
altitude-accuracy = 5 / "altitude-accuracy"
heading = 6 / "heading"
speed = 7 / "speed"
timestamp = 8 / "timestamp"
age = 9 / "age"

location-claim = (
    location-label => location-type
)
nonce-type = bstr .size (8..64)

nonce-claim = (
    nonce => nonce-type / [ 2* nonce-type ]
)
oemid-claim = (
    oemid => bstr
)
chip-version-claim = (
    chip-version => tstr
)

chip-version-scheme-claim = (
    chip-version-scheme => $version-scheme
)

board-version-claim = (
    board-version => tstr
)

board-version-scheme-claim = (
    board-version-scheme => $version-scheme
)

device-version-claim = (
    device-version => tstr
)

device-version-scheme-claim = (
    device-version-scheme => $version-scheme
)


hardware-version-claims = (
    ? chip-version-claim,
    ? board-version-claim,
    ? device-version-claim,
    ? chip-version-scheme-claim,
    ? board-version-scheme-claim,
    ? device-version-scheme-claim,
)

secure-boot-claim = (
    secure-boot => bool
)
security-level-cbor-type = &(
    unrestricted: 1,
    restricted: 2,
    secure-restricted: 3,
    hardware: 4
)

security-level-json-type = 
    "unrestricted" /
    "restricted" /
    "secure-restricted" /
    "hardware"

security-level-claim = (
    security-level => security-level-cbor-type / security-level-json-type
)
; The part of a token that contains all the submodules.  It is a peer
; with the claims in the token, but not a claim, only a map/object to
; hold all the submodules.

submods-part = (
    submods => submods-type
)

submods-type = { + submod-type }


; The type of a submodule which can either be a nested claim set or a
; nested separately signed token. Nested tokens are wrapped in a bstr
; or a tstr.

submod-type = (
    submod-name => eat-claim-set / nested-token
)


; When this is a bstr, the contents are an eat-token in CWT or UCCS
; format.  When this is a tstr, the contents are an eat-token in JWT
; format.

nested-token = bstr / tstr; 


; Each submodule has a unique text string name.

submod-name = tstr 


ueid-type = bstr .size (7..33)

ueid-claim = (
     ueid => ueid-type
)
sueids-type = {
    + tstr => ueid-type
}

sueids-claim = (
     sueids => sueids-type
)
intended-use-cbor-type = &(
    generic: 1,
    registration: 2,
    provisioning: 3,
    csr: 4,
    pop:  5
)

intended-use-json-type = 
    "generic" /
    "registration" /
    "provisioning" /
    "csr" /
    "pop" 

intended-use-claim = (
    intended-use => intended-use-cbor-type / intended-use-json-type
)
oid = #6.4000(bstr) ; TODO: fill this in with correct CDDL from OID RFC

uptime-claim = (
    uptime => uint
)

manifests-claim = (
    manifests => manifests-type
)

manifests-type = [+ $manifest-formats]

; Must be a CoSWID payload type
$manifest-formats /= bytes .cbor concise-swid-tag

$manifest-formats /= bytes .cbor SUIT_Envelope_Tagged

swevidence-claim = (
    swevidence => swevidence-type
)

swevidence-type = [+ $swevidence-formats]

; Must be a CoSWID evidence type
$swevidence-formats /= bytes .cbor concise-swid-tag

oid = #6.4000(bstr) ; TODO: fill this in with correct CDDL from OID RFC

profile-claim = (
    profile => ~uri / ~oid
)

boot-seed-claim = (
    boot-seed => bytes
)
]]></artwork></figure>

</section>
</section>
<section anchor="iana-considerations" title="IANA Considerations">

<section anchor="reuse-of-cbor-web-token-cwt-claims-registry" title="Reuse of CBOR Web Token (CWT) Claims Registry">

<t>Claims defined for EAT are compatible with those of CWT
so the CWT Claims Registry is re used. No new IANA registry
is created. All EAT claims should be registered in the
CWT and JWT Claims Registries.</t>

</section>
<section anchor="claim-characteristics" title="Claim Characteristics">

<t>The following is design guidance for creating new EAT claims, particularly those to be registered with IANA.</t>

<t>Much of this guidance is generic and could also be considered when designing new CWT or JWT claims.</t>

<section anchor="interoperability-and-relying-party-orientation" title="Interoperability and Relying Party Orientation">

<t>It is a broad goal that EATs can be processed by relying parties in a general way regardless of the type, manufacturer or technology of the device from which they originate. 
It is a goal that there be general-purpose verification implementations that can verify tokens for large numbers of use cases with special cases and configurations for different device types.
This is a goal of interoperability of the semantics of claims themselves, not just of the signing, encoding and serialization formats.</t>

<t>This is a lofty goal and difficult to achieve broadly requiring careful definition of claims in a technology neutral way.
Sometimes it will be difficult to design a claim that can represent the semantics of data from very different device types.
However, the goal remains even when difficult.</t>

</section>
<section anchor="operating-system-and-technology-neutral" title="Operating System and Technology Neutral">

<t>Claims should be defined such that they are not specific to an operating system.
They should be applicable to multiple large high-level operating systems from different vendors.
They should also be applicable to multiple small embedded operating systems from multiple vendors and everything in between.</t>

<t>Claims should not be defined such that they are specific to a SW environment or programming language.</t>

<t>Claims should not be defined such that they are specific to a chip or particular hardware. 
For example, they should not just be the contents of some HW status register as it is unlikely that the same HW status register with the same bits exists on a chip of a different manufacturer.</t>

<t>The boot and debug state claims in this document are an example of a claim that has been defined in this neutral way.</t>

</section>
<section anchor="security-level-neutral" title="Security Level Neutral">

<t>Many use cases will have EATs generated by some of the most secure hardware and software that exists. 
Secure Elements and smart cards are examples of this. 
However, EAT is intended for use in low-security use cases the same as high-security use case.
For example, an app on a mobile device may generate EATs on its own.</t>

<t>Claims should be defined and registered on the basis of whether they are useful and interoperable, not based on security level.
In particular, there should be no exclusion of claims because they are just used only in low-security environments.</t>

</section>
<section anchor="reuse-of-extant-data-formats" title="Reuse of Extant Data Formats">

<t>Where possible, claims should use already standardized data items, identifiers and formats.
This takes advantage of the expertise put into creating those formats and improves interoperability.</t>

<t>Often extant claims will not be defined in an encoding or serialization format used by EAT.
It is preferred to define a CBOR and JSON format for them so that EAT implementations do not require a plethora of encoders and decoders for serialization formats.</t>

<t>In some cases, it may be better to use the encoding and serialization as is.
For example, signed X.509 certificates and CRLs can be carried as-is in a byte string.
This retains interoperability with the extensive infrastructure for creating and processing X.509 certificates and CRLs.</t>

</section>
<section anchor="proprietary-claims" title="Proprietary Claims">

<t>EAT allows the definition and use of proprietary claims.</t>

<t>For example, a device manufacturer may generate a token with proprietary claims intended only for verification by a service offered by that device manufacturer. 
This is a supported use case.</t>

<t>In many cases proprietary claims will be the easiest and most obvious way to proceed, however for better interoperability, use of general standardized claims is preferred.</t>

</section>
</section>
<section anchor="claims-registered-by-this-document" title="Claims Registered by This Document">

<t>This specification adds the following values to the “JSON Web Token
Claims” registry established by <xref target="RFC7519"/> and the “CBOR Web Token Claims Registry”
established by <xref target="RFC8392"/>. Each entry below is an addition to both registries (except
for the nonce claim which is already registered for JWT, but not registered for CWT).</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="claims-for-early-assignment" title="Claims for Early Assignment">
<t>RFC Editor: in the final publication this section should be combined with the following
section as it will no longer be necessary to distinguish claims with early assignment.
Also, the following paragraph should be removed.</t>

<t>The claims in this section have been (requested for / given) early assignment according to <xref target="RFC7120"/>.
They have been assigned values and registered before final publication of this document.
While their semantics is not expected to change in final publication, it is possible that they will.
The JWT Claim Names and CWT Claim Keys are not expected to change.</t>

<t><list style="symbols">
  <t>Claim Name: Nonce</t>
  <t>Claim Description: Nonce</t>
  <t>JWT Claim Name: “nonce” (already registered for JWT)</t>
  <t>Claim Key: 10</t>
  <t>Claim Value Type(s): byte string</t>
  <t>Change Controller: IESG</t>
  <t>Specification Document(s): <xref target="OpenIDConnectCore"/>, <spanx style="strong">this document</spanx></t>
</list></t>

<t> </t>

<t><list style="symbols">
  <t>Claim Name: UEID</t>
  <t>Claim Description: The Universal Entity ID</t>
  <t>JWT Claim Name: “ueid”</t>
  <t>CWT Claim Key: 11</t>
  <t>Claim Value Type(s): byte string</t>
  <t>Change Controller: IESG</t>
  <t>Specification Document(s): <spanx style="strong">this document</spanx></t>
</list></t>

<t> </t>

<t><list style="symbols">
  <t>Claim Name: OEMID</t>
  <t>Claim Description: IEEE-based OEM ID</t>
  <t>JWT Claim Name: “oemid”</t>
  <t>Claim Key: 13</t>
  <t>Claim Value Type(s): byte string</t>
  <t>Change Controller: IESG</t>
  <t>Specification Document(s): <spanx style="strong">this document</spanx></t>
</list></t>

<t> </t>

<t><list style="symbols">
  <t>Claim Name: Security Level</t>
  <t>Claim Description: Characterization of the security of an Attester or submodule</t>
  <t>JWT Claim Name: “seclevel”</t>
  <t>Claim Key: 14</t>
  <t>Claim Value Type(s): integer</t>
  <t>Change Controller: IESG</t>
  <t>Specification Document(s): <spanx style="strong">this document</spanx></t>
</list></t>

<t> </t>

<t><list style="symbols">
  <t>Claim Name: Secure Boot</t>
  <t>Claim Description: Indicate whether the boot was secure</t>
  <t>JWT Claim Name: “secboot”</t>
  <t>Claim Key: 15</t>
  <t>Claim Value Type(s): Boolean</t>
  <t>Change Controller: IESG</t>
  <t>Specification Document(s): <spanx style="strong">this document</spanx></t>
</list></t>

<t> </t>

<t><list style="symbols">
  <t>Claim Name: Debug Status</t>
  <t>Claim Description: Indicate status of debug facilities</t>
  <t>JWT Claim Name: “dbgstat”</t>
  <t>Claim Key: 16</t>
  <t>Claim Value Type(s): integer</t>
  <t>Change Controller: IESG</t>
  <t>Specification Document(s): <spanx style="strong">this document</spanx></t>
</list></t>

<t> </t>

<t><list style="symbols">
  <t>Claim Name: Location</t>
  <t>Claim Description: The geographic location</t>
  <t>JWT Claim Name: “location”</t>
  <t>Claim Key: 17</t>
  <t>Claim Value Type(s): map</t>
  <t>Change Controller: IESG</t>
  <t>Specification Document(s): <spanx style="strong">this document</spanx></t>
</list></t>

<t> </t>

<t><list style="symbols">
  <t>Claim Name: Profile</t>
  <t>Claim Description: Indicates the EAT profile followed</t>
  <t>JWT Claim Name: “eat_profile”</t>
  <t>Claim Key: 18</t>
  <t>Claim Value Type(s): map</t>
  <t>Change Controller: IESG</t>
  <t>Specification Document(s): <spanx style="strong">this document</spanx></t>
</list></t>

<t> </t>

<t><list style="symbols">
  <t>Claim Name: Submodules Section</t>
  <t>Claim Description: The section containing submodules (not actually a claim)</t>
  <t>JWT Claim Name: “submods”</t>
  <t>Claim Key: 20</t>
  <t>Claim Value Type(s): map</t>
  <t>Change Controller: IESG</t>
  <t>Specification Document(s): <spanx style="strong">this document</spanx></t>
</list></t>

</section>
<section anchor="to-be-assigned-claims" title="To be Assigned Claims">

<t>TODO: add the rest of the claims in here</t>

</section>
<section anchor="registerversionscheme" title="Version Schemes Registered by this Document">

<t>IANA is requested to register a new value in the “Software Tag Version Scheme Values” established by <xref target="CoSWID"/>.</t>

<t>The new value is a version scheme a 13-digit European Article Number <xref target="EAN-13"/>.
An EAN-13 is also known as an International Article Number or most commonly as a bar code.
This version scheme is the ASCII text representation of EAN-13 digits, the same ones often printed with a bar code.
This version scheme must comply with the EAN allocation and assignment rules.
For example, this requires the manufacturer to obtain a manufacture code from GS1.</t>

<texttable>
      <ttcol align='left'>Index</ttcol>
      <ttcol align='left'>Version Scheme Name</ttcol>
      <ttcol align='left'>Specification</ttcol>
      <c>5</c>
      <c>ean-13</c>
      <c>This document</c>
</texttable>

</section>
</section>
</section>
<section anchor="privacyconsiderations" title="Privacy Considerations">

<t>Certain EAT claims can be used to track the owner of an entity and
therefore, implementations should consider providing privacy-preserving
options dependent on the intended usage of the EAT.  Examples would
include suppression of location claims for EAT’s provided to
unauthenticated consumers.</t>

<section anchor="ueidprivacyconsiderations" title="UEID and SUEID Privacy Considerations">

<t>A UEID is usually not privacy-preserving. Any set of relying parties
that receives tokens that happen to be from a single device will be
able to know the tokens are all from the same device and be able to
track the device. Thus, in many usage situations UEID violates
governmental privacy regulation. In other usage situations a UEID will
not be allowed for certain products like browsers that give privacy
for the end user. It will often be the case that tokens will not have
a UEID for these reasons.</t>

<t>An SUEID is also usually not privacy-preserving.  In some cases it may
have fewer privacy issues than a UEID depending on when and how and
when it is generated.</t>

<t>There are several strategies that can be used to still be able to put
UEIDs and SUEIDs in tokens:</t>

<t><list style="symbols">
  <t>The device obtains explicit permission from the user of the device
to use the UEID/SUEID. This may be through a prompt. It may also be through
a license agreement.  For example, agreements for some online banking
and brokerage services might already cover use of a UEID/SUEID.</t>
  <t>The UEID/SUEID is used only in a particular context or particular use
case. It is used only by one relying party.</t>
  <t>The device authenticates the relying party and generates a derived
UEID/SUEID just for that particular relying party.  For example, the relying
party could prove their identity cryptographically to the device, then
the device generates a UEID just for that relying party by hashing a
proofed relying party ID with the main device UEID/SUEID.</t>
</list></t>

<t>Note that some of these privacy preservation strategies result in
multiple UEIDs and SUEIDs per device. Each UEID/SUEID is used in a
different context, use case or system on the device. However, from the
view of the relying party, there is just one UEID and it is still
globally universal across manufacturers.</t>

</section>
<section anchor="locationprivacyconsiderations" title="Location Privacy Considerations">

<t>Geographic location is most always considered personally identifiable information.
Implementers should consider laws and regulations governing the transmission of location data from end user devices to servers and services.
Implementers should consider using location management facilities offered by the operating system on the device generating the attestation.
For example, many mobile phones prompt the user for permission when before sending location data.</t>

</section>
</section>
<section anchor="securitycons" title="Security Considerations">

<t>The security considerations provided in Section 8 of <xref target="RFC8392"/> and Section 11
of <xref target="RFC7519"/> apply to EAT in its CWT and JWT form, respectively.  In addition, 
implementors should consider the following.</t>

<section anchor="key-provisioning" title="Key Provisioning">

<t>Private key material can be used to sign and/or encrypt the EAT, or
can be used to derive the keys used for signing and/or encryption.  In
some instances, the manufacturer of the entity may create the key
material separately and provision the key material in the entity
itself.  The manfuacturer of any entity that is capable of producing
an EAT should take care to ensure that any private key material be
suitably protected prior to provisioning the key material in the
entity itself.  This can require creation of key material in an
enclave (see <xref target="RFC4949"/> for definition of “enclave”), secure
transmission of the key material from the enclave to the entity using
an appropriate protocol, and persistence of the private key material
in some form of secure storage to which (preferably) only the entity
has access.</t>

<section anchor="transmission-of-key-material" title="Transmission of Key Material">

<t>Regarding transmission of key material from the enclave to the entity,
the key material may pass through one or more intermediaries.
Therefore some form of protection (“key wrapping”) may be necessary.
The transmission itself may be performed electronically, but can also
be done by human courier.  In the latter case, there should be minimal
to no exposure of the key material to the human (e.g. encrypted
portable memory).  Moreover, the human should transport the key
material directly from the secure enclave where it was created to a
destination secure enclave where it can be provisioned.</t>

</section>
</section>
<section anchor="transport-security" title="Transport Security">

<t>As stated in Section 8 of <xref target="RFC8392"/>, “The security of the CWT relies
upon on the protections offered by COSE”.  Similar considerations
apply to EAT when sent as a CWT.  However, EAT introduces the concept
of a nonce to protect against replay.  Since an EAT may be created by
an entity that may not support the same type of transport security as
the consumer of the EAT, intermediaries may be required to bridge
communications between the entity and consumer.  As a result, it is
RECOMMENDED that both the consumer create a nonce, and the entity
leverage the nonce along with COSE mechanisms for encryption and/or
signing to create the EAT.</t>

<t>Similar considerations apply to the use of EAT as a JWT.  Although the
security of a JWT leverages the JSON Web Encryption (JWE) and JSON Web
Signature (JWS) specifications, it is still recommended to make use of
the EAT nonce.</t>

</section>
<section anchor="multiple-eat-consumers" title="Multiple EAT Consumers">

<t>In many cases, more than one EAT consumer may be required to fully
verify the entity attestation.  Examples include individual consumers
for nested EATs, or consumers for individual claims with an EAT.  When
multiple consumers are required for verification of an EAT, it is
important to minimize information exposure to each consumer.  In
addition, the communication between multiple consumers should be
secure.</t>

<t>For instance, consider the example of an encrypted and signed EAT with
multiple claims.  A consumer may receive the EAT (denoted as the
“receiving consumer”), decrypt its payload, verify its signature, but
then pass specific subsets of claims to other consumers for evaluation
(“downstream consumers”).  Since any COSE encryption will be removed
by the receiving consumer, the communication of claim subsets to any
downstream consumer should leverage a secure protocol (e.g.one that
uses transport-layer security, i.e. TLS),</t>

<t>However, assume the EAT of the previous example is hierarchical and
each claim subset for a downstream consumer is created in the form of
a nested EAT.  Then transport security between the receiving and
downstream consumers is not strictly required.  Nevertheless,
downstream consumers of a nested EAT should provide a nonce unique to
the EAT they are consuming.</t>

</section>
</section>


  </middle>

  <back>

    <references title='Normative References'>





<reference  anchor="RFC2119" target='https://www.rfc-editor.org/info/rfc2119'>
<front>
<title>Key words for use in RFCs to Indicate Requirement Levels</title>
<author initials='S.' surname='Bradner' fullname='S. Bradner'><organization /></author>
<date year='1997' month='March' />
<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="RFC7515" target='https://www.rfc-editor.org/info/rfc7515'>
<front>
<title>JSON Web Signature (JWS)</title>
<author initials='M.' surname='Jones' fullname='M. Jones'><organization /></author>
<author initials='J.' surname='Bradley' fullname='J. Bradley'><organization /></author>
<author initials='N.' surname='Sakimura' fullname='N. Sakimura'><organization /></author>
<date year='2015' month='May' />
<abstract><t>JSON Web Signature (JWS) represents content secured with digital signatures or Message Authentication Codes (MACs) using JSON-based data structures.  Cryptographic algorithms and identifiers for use with this specification are described in the separate JSON Web Algorithms (JWA) specification and an IANA registry defined by that specification.  Related encryption capabilities are described in the separate JSON Web Encryption (JWE) specification.</t></abstract>
</front>
<seriesInfo name='RFC' value='7515'/>
<seriesInfo name='DOI' value='10.17487/RFC7515'/>
</reference>



<reference  anchor="RFC8949" target='https://www.rfc-editor.org/info/rfc8949'>
<front>
<title>Concise Binary Object Representation (CBOR)</title>
<author initials='C.' surname='Bormann' fullname='C. Bormann'><organization /></author>
<author initials='P.' surname='Hoffman' fullname='P. Hoffman'><organization /></author>
<date year='2020' month='December' />
<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="RFC7517" target='https://www.rfc-editor.org/info/rfc7517'>
<front>
<title>JSON Web Key (JWK)</title>
<author initials='M.' surname='Jones' fullname='M. Jones'><organization /></author>
<date year='2015' month='May' />
<abstract><t>A JSON Web Key (JWK) is a JavaScript Object Notation (JSON) data structure that represents a cryptographic key.  This specification also defines a JWK Set JSON data structure that represents a set of JWKs.  Cryptographic algorithms and identifiers for use with this specification are described in the separate JSON Web Algorithms (JWA) specification and IANA registries established by that specification.</t></abstract>
</front>
<seriesInfo name='RFC' value='7517'/>
<seriesInfo name='DOI' value='10.17487/RFC7517'/>
</reference>



<reference  anchor="RFC7519" target='https://www.rfc-editor.org/info/rfc7519'>
<front>
<title>JSON Web Token (JWT)</title>
<author initials='M.' surname='Jones' fullname='M. Jones'><organization /></author>
<author initials='J.' surname='Bradley' fullname='J. Bradley'><organization /></author>
<author initials='N.' surname='Sakimura' fullname='N. Sakimura'><organization /></author>
<date year='2015' month='May' />
<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="RFC7800" target='https://www.rfc-editor.org/info/rfc7800'>
<front>
<title>Proof-of-Possession Key Semantics for JSON Web Tokens (JWTs)</title>
<author initials='M.' surname='Jones' fullname='M. Jones'><organization /></author>
<author initials='J.' surname='Bradley' fullname='J. Bradley'><organization /></author>
<author initials='H.' surname='Tschofenig' fullname='H. Tschofenig'><organization /></author>
<date year='2016' month='April' />
<abstract><t>This specification describes how to declare in a JSON Web Token (JWT) that the presenter of the JWT possesses a particular proof-of- possession key and how the recipient can cryptographically confirm proof of possession of the key by the presenter.  Being able to prove possession of a key is also sometimes described as the presenter being a holder-of-key.</t></abstract>
</front>
<seriesInfo name='RFC' value='7800'/>
<seriesInfo name='DOI' value='10.17487/RFC7800'/>
</reference>



<reference  anchor="RFC8126" target='https://www.rfc-editor.org/info/rfc8126'>
<front>
<title>Guidelines for Writing an IANA Considerations Section in RFCs</title>
<author initials='M.' surname='Cotton' fullname='M. Cotton'><organization /></author>
<author initials='B.' surname='Leiba' fullname='B. Leiba'><organization /></author>
<author initials='T.' surname='Narten' fullname='T. Narten'><organization /></author>
<date year='2017' month='June' />
<abstract><t>Many protocols make use of points of extensibility that use constants to identify various protocol parameters.  To ensure that the values in these fields do not have conflicting uses and to promote interoperability, their allocations are often coordinated by a central record keeper.  For IETF protocols, that role is filled by the Internet Assigned Numbers Authority (IANA).</t><t>To make assignments in a given registry prudently, guidance describing the conditions under which new values should be assigned, as well as when and how modifications to existing values can be made, is needed.  This document defines a framework for the documentation of these guidelines by specification authors, in order to assure that the provided guidance for the IANA Considerations is clear and addresses the various issues that are likely in the operation of a registry.</t><t>This is the third edition of this document; it obsoletes RFC 5226.</t></abstract>
</front>
<seriesInfo name='BCP' value='26'/>
<seriesInfo name='RFC' value='8126'/>
<seriesInfo name='DOI' value='10.17487/RFC8126'/>
</reference>



<reference  anchor="RFC8174" target='https://www.rfc-editor.org/info/rfc8174'>
<front>
<title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
<author initials='B.' surname='Leiba' fullname='B. Leiba'><organization /></author>
<date year='2017' month='May' />
<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="RFC8152" target='https://www.rfc-editor.org/info/rfc8152'>
<front>
<title>CBOR Object Signing and Encryption (COSE)</title>
<author initials='J.' surname='Schaad' fullname='J. Schaad'><organization /></author>
<date year='2017' month='July' />
<abstract><t>Concise Binary Object Representation (CBOR) is a data format designed for small code size and small message size.  There is a need for the ability to have basic security services defined 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></abstract>
</front>
<seriesInfo name='RFC' value='8152'/>
<seriesInfo name='DOI' value='10.17487/RFC8152'/>
</reference>



<reference  anchor="RFC8392" target='https://www.rfc-editor.org/info/rfc8392'>
<front>
<title>CBOR Web Token (CWT)</title>
<author initials='M.' surname='Jones' fullname='M. Jones'><organization /></author>
<author initials='E.' surname='Wahlstroem' fullname='E. Wahlstroem'><organization /></author>
<author initials='S.' surname='Erdtman' fullname='S. Erdtman'><organization /></author>
<author initials='H.' surname='Tschofenig' fullname='H. Tschofenig'><organization /></author>
<date year='2018' month='May' />
<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" target='https://www.rfc-editor.org/info/rfc8610'>
<front>
<title>Concise Data Definition Language (CDDL): A Notational Convention to Express Concise Binary Object Representation (CBOR) and JSON Data Structures</title>
<author initials='H.' surname='Birkholz' fullname='H. Birkholz'><organization /></author>
<author initials='C.' surname='Vigano' fullname='C. Vigano'><organization /></author>
<author initials='C.' surname='Bormann' fullname='C. Bormann'><organization /></author>
<date year='2019' month='June' />
<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="RFC8747" target='https://www.rfc-editor.org/info/rfc8747'>
<front>
<title>Proof-of-Possession Key Semantics for CBOR Web Tokens (CWTs)</title>
<author initials='M.' surname='Jones' fullname='M. Jones'><organization /></author>
<author initials='L.' surname='Seitz' fullname='L. Seitz'><organization /></author>
<author initials='G.' surname='Selander' fullname='G. Selander'><organization /></author>
<author initials='S.' surname='Erdtman' fullname='S. Erdtman'><organization /></author>
<author initials='H.' surname='Tschofenig' fullname='H. Tschofenig'><organization /></author>
<date year='2020' month='March' />
<abstract><t>This specification describes how to declare in a CBOR Web Token (CWT) (which is defined by RFC 8392) that the presenter of the CWT possesses a particular proof-of-possession key. Being able to prove possession of a key is also sometimes described as being the holder-of-key. This specification provides equivalent functionality to &quot;Proof-of-Possession Key Semantics for JSON Web Tokens (JWTs)&quot; (RFC 7800) but using Concise Binary Object Representation (CBOR) and CWTs rather than JavaScript Object Notation (JSON) and JSON Web Tokens (JWTs).</t></abstract>
</front>
<seriesInfo name='RFC' value='8747'/>
<seriesInfo name='DOI' value='10.17487/RFC8747'/>
</reference>



<reference  anchor="RFC3986" target='https://www.rfc-editor.org/info/rfc3986'>
<front>
<title>Uniform Resource Identifier (URI): Generic Syntax</title>
<author initials='T.' surname='Berners-Lee' fullname='T. Berners-Lee'><organization /></author>
<author initials='R.' surname='Fielding' fullname='R. Fielding'><organization /></author>
<author initials='L.' surname='Masinter' fullname='L. Masinter'><organization /></author>
<date year='2005' month='January' />
<abstract><t>A Uniform Resource Identifier (URI) is a compact sequence of characters that identifies an abstract or physical resource.  This specification defines the generic URI syntax and a process for resolving URI references that might be in relative form, along with guidelines and security considerations for the use of URIs on the Internet.  The URI syntax defines a grammar that is a superset of all valid URIs, allowing an implementation to parse the common components of a URI reference without knowing the scheme-specific requirements of every possible identifier.  This specification does not define a generative grammar for URIs; that task is performed by the individual specifications of each URI scheme.  [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='STD' value='66'/>
<seriesInfo name='RFC' value='3986'/>
<seriesInfo name='DOI' value='10.17487/RFC3986'/>
</reference>


<reference anchor="RATS.Architecture" target="https://tools.ietf.org/html/draft-ietf-rats-architecture-08">
  <front>
    <title>Remote Attestation Procedures Architecture</title>
    <author fullname="Henk Birkholz">
      <organization></organization>
    </author>
    <date year="2020"/>
  </front>
</reference>
<reference anchor="COSE.X509.Draft" target="https://tools.ietf.org/html/draft-ietf-cose-x509-08">
  <front>
    <title>CBOR Object Signing and Encryption (COSE): Header parameters for carrying and referencing X.509 certificates</title>
    <author fullname="J. Schaad">
      <organization></organization>
    </author>
    <date year="2020"/>
  </front>
</reference>
<reference anchor="CBOR.Cert.Draft" target="https://tools.ietf.org/html/draft-mattsson-cose-cbor-cert-compress-05">
  <front>
    <title>CBOR Encoding of X.509 Certificates (CBOR Certificates)</title>
    <author fullname="S. Raza">
      <organization></organization>
    </author>
    <date year="2020"/>
  </front>
</reference>
<reference anchor="WGS84" target="http://earth-info.nga.mil/GandG/publications/tr8350.2/wgs84fin.pdf">
  <front>
    <title>National Imagery and Mapping Agency Technical Report 8350.2, Third Edition</title>
    <author >
      <organization>National Imagery and Mapping Agency</organization>
    </author>
    <date year="2000"/>
  </front>
</reference>
<reference anchor="IANA.CWT.Claims" target="http://www.iana.org/assignments/cwt">
  <front>
    <title>CBOR Web Token (CWT) Claims</title>
    <author >
      <organization>IANA</organization>
    </author>
    <date />
  </front>
</reference>
<reference anchor="IANA.JWT.Claims" target="https://www.iana.org/assignments/jwt">
  <front>
    <title>JSON Web Token (JWT) Claims</title>
    <author >
      <organization>IANA</organization>
    </author>
    <date />
  </front>
</reference>
<reference anchor="UCCS.Draft" target="https://tools.ietf.org/html/draft-birkholz-rats-uccs-01">
  <front>
    <title>A CBOR Tag for Unprotected CWT Claims Sets</title>
    <author fullname="Henk Birkholz">
      <organization></organization>
    </author>
    <date year="2020"/>
  </front>
</reference>
<reference anchor="ThreeGPP.IMEI" target="https://portal.3gpp.org/desktopmodules/Specifications/SpecificationDetails.aspx?specificationId=729">
  <front>
    <title>3rd Generation Partnership Project; Technical Specification Group Core Network and Terminals; Numbering, addressing and identification</title>
    <author >
      <organization>3GPP</organization>
    </author>
    <date year="2019"/>
  </front>
</reference>
<reference anchor="FIDO.AROE" target="https://fidoalliance.org/specs/fido-uaf-v1.0-fd-20191115/fido-allowed-AROE-v1.0-fd-20191115.html">
  <front>
    <title>FIDO Authenticator Allowed Restricted Operating Environments List</title>
    <author >
      <organization>The FIDO Alliance</organization>
    </author>
    <date year="2019" month="November"/>
  </front>
</reference>
<reference anchor="EAN-13" target="https://www.gs1.org/standards/barcodes/ean-upc">
  <front>
    <title>International Article Number - EAN/UPC barcodes</title>
    <author >
      <organization>GS1</organization>
    </author>
    <date year="2019"/>
  </front>
</reference>
<reference anchor="CoSWID" target="https://tools.ietf.org/html/draft-ietf-sacm-coswid-16">
  <front>
    <title>Concise Software Identification Tags</title>
    <author >
      <organization></organization>
    </author>
    <date year="2020" month="November"/>
  </front>
</reference>
<reference anchor="OpenIDConnectCore" target="https://openid.net/specs/openid-connect-core-1_0.html">
  <front>
    <title>OpenID Connect Core 1.0 incorporating errata set 1</title>
    <author fullname="N. Sakimura">
      <organization></organization>
    </author>
    <author fullname="J. Bradley">
      <organization></organization>
    </author>
    <author fullname="M. Jones">
      <organization></organization>
    </author>
    <author fullname="B. de Medeiros">
      <organization></organization>
    </author>
    <author fullname="C. Mortimore">
      <organization></organization>
    </author>
    <date year="2014" month="November"/>
  </front>
</reference>



<reference anchor="CBOR-OID">
   <front>
      <title>Concise Binary Object Representation (CBOR) Tags for Object Identifiers</title>
      <author fullname="Carsten Bormann">
	 <organization>Universität Bremen TZI</organization>
      </author>
      <date month="March" day="30" year="2021" />
      <abstract>
	 <t>   The Concise Binary Object Representation (CBOR, RFC 8949) 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.

   The present document defines CBOR tags for object identifiers (OIDs).
   It is intended as the reference document for the IANA registration of
   the CBOR tags so defined.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-ietf-cbor-tags-oid-06" />
   <format type="TXT" target="https://www.ietf.org/archive/id/draft-ietf-cbor-tags-oid-06.txt" />
</reference>


<reference anchor="RATS-Architecture">
   <front>
      <title>Remote Attestation Procedures Architecture</title>
      <author fullname="Henk Birkholz">
	 <organization>Fraunhofer SIT</organization>
      </author>
      <author fullname="Dave Thaler">
	 <organization>Microsoft</organization>
      </author>
      <author fullname="Michael Richardson">
	 <organization>Sandelman Software Works</organization>
      </author>
      <author fullname="Ned Smith">
	 <organization>Intel Corporation</organization>
      </author>
      <author fullname="Wei Pan">
	 <organization>Huawei Technologies</organization>
      </author>
      <date month="April" day="23" year="2021" />
      <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.
   An attempt is made to provide for a model that is neutral toward
   processor architectures, the content of claims, and protocols.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-ietf-rats-architecture-12" />
   <format type="TXT" target="https://www.ietf.org/archive/id/draft-ietf-rats-architecture-12.txt" />
</reference>




    </references>

    <references title='Informative References'>





<reference  anchor="RFC4122" target='https://www.rfc-editor.org/info/rfc4122'>
<front>
<title>A Universally Unique IDentifier (UUID) URN Namespace</title>
<author initials='P.' surname='Leach' fullname='P. Leach'><organization /></author>
<author initials='M.' surname='Mealling' fullname='M. Mealling'><organization /></author>
<author initials='R.' surname='Salz' fullname='R. Salz'><organization /></author>
<date year='2005' month='July' />
<abstract><t>This specification defines a Uniform Resource Name namespace for UUIDs (Universally Unique IDentifier), also known as GUIDs (Globally Unique IDentifier).  A UUID is 128 bits long, and can guarantee uniqueness across space and time.  UUIDs were originally used in the Apollo Network Computing System and later in the Open Software Foundation\'s (OSF) Distributed Computing Environment (DCE), and then in Microsoft Windows platforms.</t><t>This specification is derived from the DCE specification with the kind permission of the OSF (now known as The Open Group).  Information from earlier versions of the DCE specification have been incorporated into this document.  [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='RFC' value='4122'/>
<seriesInfo name='DOI' value='10.17487/RFC4122'/>
</reference>



<reference  anchor="RFC4949" target='https://www.rfc-editor.org/info/rfc4949'>
<front>
<title>Internet Security Glossary, Version 2</title>
<author initials='R.' surname='Shirey' fullname='R. Shirey'><organization /></author>
<date year='2007' month='August' />
<abstract><t>This Glossary provides definitions, abbreviations, and explanations of terminology for information system security. The 334 pages of entries offer recommendations to improve the comprehensibility of written material that is generated in the Internet Standards Process (RFC 2026). The recommendations follow the principles that such writing should (a) use the same term or definition whenever the same concept is mentioned; (b) use terms in their plainest, dictionary sense; (c) use terms that are already well-established in open publications; and (d) avoid terms that either favor a particular vendor or favor a particular technology or mechanism over other, competing techniques that already exist or could be developed.  This memo provides information for the Internet community.</t></abstract>
</front>
<seriesInfo name='FYI' value='36'/>
<seriesInfo name='RFC' value='4949'/>
<seriesInfo name='DOI' value='10.17487/RFC4949'/>
</reference>



<reference  anchor="RFC7120" target='https://www.rfc-editor.org/info/rfc7120'>
<front>
<title>Early IANA Allocation of Standards Track Code Points</title>
<author initials='M.' surname='Cotton' fullname='M. Cotton'><organization /></author>
<date year='2014' month='January' />
<abstract><t>This memo describes the process for early allocation of code points by IANA from registries for which &quot;Specification Required&quot;, &quot;RFC                        Required&quot;, &quot;IETF Review&quot;, or &quot;Standards Action&quot; policies apply.  This process can be used to alleviate the problem where code point allocation is needed to facilitate desired or required implementation and deployment experience prior to publication of an RFC, which would normally trigger code point allocation.  The procedures in this document are intended to apply only to IETF Stream documents.</t></abstract>
</front>
<seriesInfo name='BCP' value='100'/>
<seriesInfo name='RFC' value='7120'/>
<seriesInfo name='DOI' value='10.17487/RFC7120'/>
</reference>


<reference anchor="BirthdayAttack" target="https://en.wikipedia.org/wiki/Birthday_attack.">
  <front>
    <title>Birthday attack</title>
    <author >
      <organization></organization>
    </author>
    <date />
  </front>
</reference>
<reference anchor="IEEE.802.1AR" target="http://standards.ieee.org/findstds/standard/802.1AR-2009.html">
  <front>
    <title>IEEE Standard, "IEEE 802.1AR Secure Device Identifier"</title>
    <author >
      <organization></organization>
    </author>
    <date year="2009" month="December"/>
  </front>
</reference>
<reference anchor="ECMAScript" target="http://www.ecma-international.org/ecma-262/5.1/ECMA-262.pdf">
  <front>
    <title>Ecma International, "ECMAScript Language Specification, 5.1 Edition", ECMA Standard 262</title>
    <author >
      <organization></organization>
    </author>
    <date year="2011" month="June"/>
  </front>
</reference>
<reference anchor="W3C.GeoLoc" target="https://www.w3.org/TR/geolocation-API/#coordinates_interface">
  <front>
    <title>Geolocation API Specification 2nd Edition</title>
    <author >
      <organization>Worldwide Web Consortium</organization>
    </author>
    <date year="2018" month="January"/>
  </front>
</reference>
<reference anchor="OUI.Guide" target="https://standards.ieee.org/content/dam/ieee-standards/standards/web/documents/tutorials/eui.pdf">
  <front>
    <title>Guidelines for Use of Extended Unique Identifier (EUI), Organizationally Unique Identifier (OUI), and Company ID (CID)</title>
    <author >
      <organization></organization>
    </author>
    <date year="2017" month="August"/>
  </front>
</reference>
<reference anchor="OUI.Lookup" target="https://regauth.standards.ieee.org/standards-ra-web/pub/view.html#registries">
  <front>
    <title>IEEE Registration Authority Assignments</title>
    <author >
      <organization></organization>
    </author>
    <date />
  </front>
</reference>
<reference anchor="IEEE.RA" target="https://standards.ieee.org/products-services/regauth/index.html">
  <front>
    <title>IEEE Registration Authority</title>
    <author >
      <organization></organization>
    </author>
    <date />
  </front>
</reference>
<reference anchor="IEEE.802-2001" target="https://webstore.ansi.org/standards/ieee/ieee8022001r2007">
  <front>
    <title>IEEE Standard For Local And Metropolitan Area Networks Overview And Architecture</title>
    <author >
      <organization></organization>
    </author>
    <date year="2007"/>
  </front>
</reference>
<reference anchor="FIDO.Registry" target="https://fidoalliance.org/specs/common-specs/fido-registry-v2.1-ps-20191217.html">
  <front>
    <title>FIDO Registry of Predefined Values</title>
    <author >
      <organization>The FIDO Alliance</organization>
    </author>
    <date year="2019" month="December"/>
  </front>
</reference>
<reference anchor="FIPS-140" target="https://csrc.nist.gov/publications/detail/fips/140/2/final">
  <front>
    <title>Security Requirements for Cryptographic Modules</title>
    <author >
      <organization>National Institue of Standards</organization>
    </author>
    <date year="2001" month="May"/>
  </front>
</reference>
<reference anchor="Common.Criteria" target="https://www.commoncriteriaportal.org/cc/">
  <front>
    <title>Common Criteria for Information Technology Security Evaluation</title>
    <author >
      <organization></organization>
    </author>
    <date year="2017" month="April"/>
  </front>
</reference>


    </references>


<section anchor="examples" title="Examples">

<section anchor="very-simple-eat" title="Very Simple EAT">

<t>This is shown in CBOR diagnostic form. Only the payload signed by COSE
is shown.</t>

<figure><artwork><![CDATA[
{
    / issuer /           1: "joe",
    / nonce /           10: h'948f8860d13a463e8e',
    / UEID /            11: h'0198f50a4ff6c05861c8860d13a638ea',
    / secure-boot /     15: true,
    / debug-disable /   16: 3, / permanent-disable /
    / timestamp (iat) /  6: 1(1526542894)
}
]]></artwork></figure>

</section>
<section anchor="example-with-submodules-nesting-and-security-levels" title="Example with Submodules, Nesting and Security Levels">

<figure><artwork><![CDATA[
{
    / nonce /                 10: h'948f8860d13a463e8e',
    / UEID /                  11: h'0198f50a4ff6c05861c8860d13a638ea',
    / secure-boot /           15: true,
    / debug-disable /         16: 3, / permanent-disable  /
    / timestamp (iat) /        6: 1(1526542894),
    / security-level /        14: 3, / secure restricted OS /
    / submods / 20: {
        / first submod, an Android Application /
        "Android App Foo" :  {
            / security-level /  14: 1 / unrestricted /
        },

        / 2nd submod, A nested EAT from a secure element /
        "Secure Element Eat" :
            / an embedded EAT, bytes of which are not shown /
            h'420123',

        / 3rd submod, information about Linux Android /
        "Linux Android": {
            / security-level /  14: 1 / unrestricted /
        }
    }
}
]]></artwork></figure>

</section>
</section>
<section anchor="ueid-design-rationale" title="UEID Design Rationale">

<section anchor="collision-probability" title="Collision Probability">

<t>This calculation is to determine the probability of a collision of
UEIDs given the total possible entity population and the number of
entities in a particular entity management database.</t>

<t>Three different sized databases are considered. The number of devices
per person roughly models non-personal devices such as traffic lights,
devices in stores they shop in, facilities they work in and so on,
even considering individual light bulbs. A device may have
individually attested subsystems, for example parts of a car or a
mobile phone. It is assumed that the largest database will have at
most 10% of the world’s population of devices. Note that databases
that handle more than a trillion records exist today.</t>

<t>The trillion-record database size models an easy-to-imagine reality
over the next decades. The quadrillion-record database is roughly at
the limit of what is imaginable and should probably be accommodated.
The 100 quadrillion datadbase is highly speculative perhaps involving
nanorobots for every person, livestock animal and domesticated
bird. It is included to round out the analysis.</t>

<t>Note that the items counted here certainly do not have IP address and
are not individually connected to the network. They may be connected
to internal buses, via serial links, Bluetooth and so on.  This is
not the same problem as sizing IP addresses.</t>

<texttable>
      <ttcol align='left'>People</ttcol>
      <ttcol align='left'>Devices / Person</ttcol>
      <ttcol align='left'>Subsystems / Device</ttcol>
      <ttcol align='left'>Database Portion</ttcol>
      <ttcol align='left'>Database Size</ttcol>
      <c>10 billion</c>
      <c>100</c>
      <c>10</c>
      <c>10%</c>
      <c>trillion (10^12)</c>
      <c>10 billion</c>
      <c>100,000</c>
      <c>10</c>
      <c>10%</c>
      <c>quadrillion (10^15)</c>
      <c>100 billion</c>
      <c>1,000,000</c>
      <c>10</c>
      <c>10%</c>
      <c>100 quadrillion (10^17)</c>
</texttable>

<t>This is conceptually similar to the Birthday Problem where m is the
number of possible birthdays, always 365, and k is the number of
people. It is also conceptually similar to the Birthday Attack where
collisions of the output of hash functions are considered.</t>

<t>The proper formula for the collision calculation is</t>

<figure><artwork><![CDATA[
   p = 1 - e^{-k^2/(2n)}

   p   Collision Probability
   n   Total possible population
   k   Actual population
]]></artwork></figure>

<t>However, for the very large values involved here, this formula requires floating
point precision higher than commonly available in calculators and SW so this
simple approximation is used. See <xref target="BirthdayAttack"/>.</t>

<figure><artwork><![CDATA[
    p = k^2 / 2n 
]]></artwork></figure>

<t>For this calculation:</t>

<figure><artwork><![CDATA[
    p  Collision Probability
    n  Total population based on number of bits in UEID
    k  Population in a database
]]></artwork></figure>

<texttable>
      <ttcol align='left'>Database Size</ttcol>
      <ttcol align='left'>128-bit UEID</ttcol>
      <ttcol align='left'>192-bit UEID</ttcol>
      <ttcol align='left'>256-bit UEID</ttcol>
      <c>trillion (10^12)</c>
      <c>2 * 10^-15</c>
      <c>8 * 10^-35</c>
      <c>5 * 10^-55</c>
      <c>quadrillion (10^15)</c>
      <c>2 * 10^-09</c>
      <c>8 * 10^-29</c>
      <c>5 * 10^-49</c>
      <c>100 quadrillion (10^17)</c>
      <c>2 * 10^-05</c>
      <c>8 * 10^-25</c>
      <c>5 * 10^-45</c>
</texttable>

<t>Next, to calculate the probability of a collision occurring in one year’s 
operation of a database, it is assumed that the database size is in
a steady state and that 10% of the database changes per year. For example,
a trillion record database would have 100 billion states per year. Each
of those states has the above calculated probability of a collision.</t>

<t>This assumption is a worst-case since it assumes that each
state of the database is completely independent from the previous state.
In reality this is unlikely as state changes will be the addition or
deletion of a few records.</t>

<t>The following tables gives the time interval until there is a probability of 
a collision based on there being one tenth the number of states per year
as the number of records in the database.</t>

<figure><artwork><![CDATA[
  t = 1 / ((k / 10) * p)
  
  t  Time until a collision
  p  Collision probability for UEID size
  k  Database size
]]></artwork></figure>

<texttable>
      <ttcol align='left'>Database Size</ttcol>
      <ttcol align='left'>128-bit UEID</ttcol>
      <ttcol align='left'>192-bit UEID</ttcol>
      <ttcol align='left'>256-bit UEID</ttcol>
      <c>trillion (10^12)</c>
      <c>60,000 years</c>
      <c>10^24 years</c>
      <c>10^44 years</c>
      <c>quadrillion (10^15)</c>
      <c>8 seconds</c>
      <c>10^14 years</c>
      <c>10^34 years</c>
      <c>100 quadrillion (10^17)</c>
      <c>8 microseconds</c>
      <c>10^11 years</c>
      <c>10^31 years</c>
</texttable>

<t>Clearly, 128 bits is enough for the near future thus the requirement that UEIDs
be a minimum of 128 bits.</t>

<t>There is no requirement for 256 bits today as quadrillion-record databases
are not expected in the near future and because this time-to-collision
calculation is a very worst case.  A future update of the standard may
increase the requirement to 256 bits, so there is a requirement that
implementations be able to receive 256-bit UEIDs.</t>

</section>
<section anchor="no-use-of-uuid" title="No Use of UUID">

<t>A UEID is not a UUID <xref target="RFC4122"/> by conscious choice for the following
reasons.</t>

<t>UUIDs are limited to 128 bits which may not be enough for some future
use cases.</t>

<t>Today, cryptographic-quality random numbers are available from common
CPUs and hardware. This hardware was introduced between 2010 and 2015.
Operating systems and cryptographic libraries give access to this 
hardware. Consequently, there is little need for implementations
to construct such random values from multiple sources on their own.</t>

<t>Version 4 UUIDs do allow for use of such cryptographic-quality 
random numbers, but do so by mapping into the overall UUID 
structure of time and clock values. This structure is of no
value here yet adds complexity. It also slightly reduces the
number of actual bits with entropy.</t>

<t>UUIDs seem to have been designed for scenarios where the implementor
does not have full control over the environment and uniqueness has to
be constructed from identifiers at hand. UEID takes the view that
hardware, software and/or manufacturing process directly implement
UEID in a simple and direct way. It takes the view that cryptographic
quality random number generators are readily available as they are
implemented in commonly used CPU hardware.</t>

</section>
</section>
<section anchor="eat-relation-to-ieee8021ar-secure-device-identity-devid" title="EAT Relation to IEEE.802.1AR Secure Device Identity (DevID)">

<t>This section describes several distinct ways in which an IEEE IDevID <xref target="IEEE.802.1AR"/> relates to EAT, particularly to UEID and SUEID.</t>

<t><xref target="IEEE.802.1AR"/> orients around the definition of an implementation called a “DevID Module.”
It describes how IDevIDs and LDevIDs are stored, protected and accessed using a DevID Module.
A particular level of defense against attack that should be achieved to be a DevID is defined.
The intent is that IDevIDs and LDevIDs are used with an open set of network protocols for authentication and such.
In these protocols the DevID secret is used to sign a nonce or similar to proof the association of the DevID certificates with the device.</t>

<t>By contrast, EAT defines network protocol for proving trustworthiness to a relying party, the very thing that is not defined in <xref target="IEEE.802.1AR"/>.
Nor does not give details on how keys, data and such are stored protected and accessed.
EAT is intended to work with a variety of different on-device implementations ranging from minimal protection of assets to the highest levels of asset protection.
It does not define any particular level of defense against attack, instead providing a set of security considerations.</t>

<t>EAT and DevID can be viewed as complimentary when used together or as competing to provide a device identity service.</t>

<section anchor="devid-used-with-eat" title="DevID Used With EAT">

<t>As just described, EAT defines a network protocol and <xref target="IEEE.802.1AR"/> doesn’t.
Vice versa, EAT doesn’t define a an device implementation and DevID does.</t>

<t>Hence, EAT can be the network protocol that a DevID is used with.
The DevID secret becomes the attestation key used to sign EATs.
The DevID and its certificate chain become the Endorsement sent to the Verifier.</t>

<t>In this case the EAT and the DevID are likely to both provide a device identifier (e.g. a serial number).
In the EAT it is the UEID (or SUEID).
In the DevID (used as an endorsement), it is a device serial number included in the subject field of the DevID certificate.
It is probably a good idea in this use for them to be the same serial number or for the UEID to be a hash of the DevID serial number.</t>

</section>
<section anchor="how-eat-provides-an-equivalent-secure-device-identity" title="How EAT Provides an Equivalent Secure Device Identity">

<t>The UEID, SUEID and other claims like OEM ID are equivalent to the secure device identity put into the subject field of a DevID certificate.
These EAT claims can represent all the same fields and values that can be put in a DevID certificate subject.
EAT explicitly and carefully defines a variety of useful claims.</t>

<t>EAT secures the conveyance of these claims by having them signed on the device by the attestation key when the EAT is generated.
EAT also signs the nonce that gives freshness at this time.
Since these claims are signed for every EAT generated, they can include things that vary over time like GPS location.</t>

<t>DevID secures the device identity fields by having them signed by the manufacturer of the device sign them into a certificate.
That certificate is created once during the manufacturing of the device and never changes so the fields cannot change.</t>

<t>So in one case the signing of the identity happens on the device and the other in a manufacturing facility,
but in both cases the signing of the nonce that proves the binding to the actual device happens on the device.</t>

<t>While EAT does not specify how the signing keys, signature process and storage of the identity values should be secured against attack,
an EAT implementation may have equal defenses against attack.
One reason EAT uses CBOR is because it is simple enough that a basic EAT implementation can be constructed entirely in hardware.
This allows EAT to be implemented with the strongest defenses possible.</t>

</section>
<section anchor="an-x509-format-eat" title="An X.509 Format EAT">

<t>It is possible to define a way to encode EAT claims in an X.509 certificate.
For example, the EAT claims might be mapped to X.509 v3 extensions.
It is even possible to stuff a whole CBOR-encoded unsigned EAT token into a X.509 certificate.</t>

<t>If that X.509 certificate is an IDevID or LDevID, this becomes another way to use EAT and DevID together.</t>

<t>Note that the DevID must still be used with an authentication protocol that has a nonce or equivalent.
The EAT here is not being used as the protocol to interact with the rely party.</t>

</section>
<section anchor="device-identifier-permanence" title="Device Identifier Permanence">

<t>In terms of permanence, an IDevID is similar to a UEID in that they do not change over the life of the device.
They cease to exist only when the device is destroyed.</t>

<t>An SUEID is similar to an LDevID.
They change on device life-cycle events.</t>

<t><xref target="IEEE.802.1AR"/> describes much of this permanence as resistant to attacks that seek to change the ID.
IDevID permanence can be described this way because <xref target="IEEE.802.1AR"/> is oriented around the definition of an implementation with a particular level of defense against attack.</t>

<t>EAT is not defined around a particular implementation and must work on a range of devices that have a range of defenses against attack.
EAT thus can’t be defined permanence in terms of defense against attack.
EAT’s definition of permanence is in terms of operations and device lifecycle.</t>

</section>
</section>
<section anchor="changes-from-previous-drafts" title="Changes from Previous Drafts">

<t>The following is a list of known changes from the previous drafts.  This list is
non-authoritative.  It is meant to help reviewers see the significant
differences.</t>

<section anchor="from-draft-rats-eat-01" title="From draft-rats-eat-01">

<t><list style="symbols">
  <t>Added UEID design rationale appendix</t>
</list></t>

</section>
<section anchor="from-draft-mandyam-rats-eat-00" title="From draft-mandyam-rats-eat-00">

<t>This is a fairly large change in the orientation of the document, but
no new claims have been added.</t>

<t><list style="symbols">
  <t>Separate information and data model using CDDL.</t>
  <t>Say an EAT is a CWT or JWT</t>
  <t>Use a map to structure the boot_state and location claims</t>
</list></t>

</section>
<section anchor="from-draft-ietf-rats-eat-01" title="From draft-ietf-rats-eat-01">

<t><list style="symbols">
  <t>Clarifications and corrections for OEMID claim</t>
  <t>Minor spelling and other fixes</t>
  <t>Add the nonce claim, clarify jti claim</t>
</list></t>

</section>
<section anchor="from-draft-ietf-rats-eat-02" title="From draft-ietf-rats-eat-02">

<t><list style="symbols">
  <t>Roll all EUIs back into one UEID type</t>
  <t>UEIDs can be one of three lengths, 128, 192 and 256.</t>
  <t>Added appendix justifying UEID design and size.</t>
  <t>Submods part now includes nested eat tokens so they can be named and
there can be more tha one of them</t>
  <t>Lots of fixes to the CDDL</t>
  <t>Added security considerations</t>
</list></t>

</section>
<section anchor="from-draft-ietf-rats-eat-03" title="From draft-ietf-rats-eat-03">

<t><list style="symbols">
  <t>Split boot_state into secure-boot and debug-disable claims</t>
  <t>Debug disable is an enumerated type rather than Booleans</t>
</list></t>

</section>
<section anchor="from-draft-ietf-rats-eat-04" title="From draft-ietf-rats-eat-04">

<t><list style="symbols">
  <t>Change IMEI-based UEIDs to be encoded as a 14-byte string</t>
  <t>CDDL cleaned up some more</t>
  <t>CDDL allows for JWTs and UCCSs</t>
  <t>CWT format submodules are byte string wrapped</t>
  <t>Allows for JWT nested in CWT and vice versa</t>
  <t>Allows UCCS (unsigned CWTs) and JWT unsecured tokens</t>
  <t>Clarify tag usage when nesting tokens</t>
  <t>Add section on key inclusion</t>
  <t>Add hardware version claims</t>
  <t>Collected CDDL is now filled in. Other CDDL corrections.</t>
  <t>Rename debug-disable to debug-status; clarify that it is not extensible</t>
  <t>Security level claim is not extensible</t>
  <t>Improve specification of location claim and added a location privacy section</t>
  <t>Add intended use claim</t>
</list></t>

</section>
<section anchor="from-draft-ietf-rats-05" title="From draft-ietf-rats-05">

<t><list style="symbols">
  <t>CDDL format issues resolved</t>
  <t>Corrected reference to Location Privacy section</t>
</list></t>

</section>
<section anchor="from-draft-ietf-rats-06" title="From draft-ietf-rats-06">

<t><list style="symbols">
  <t>Added boot-seed claim</t>
  <t>Rework CBOR interoperability section</t>
  <t>Added profiles claim and section</t>
</list></t>

</section>
<section anchor="from-draft-ietf-rats-07" title="From draft-ietf-rats-07">

<t><list style="symbols">
  <t>Filled in IANA and other sections for possible preassignment of claim keys for well understood claims</t>
</list></t>

</section>
<section anchor="from-draft-ietf-rats-08" title="From draft-ietf-rats-08">

<t><list style="symbols">
  <t>Change profile claim to be either a URL or an OID rather than a test string</t>
</list></t>

</section>
<section anchor="from-draft-ietf-rats-09" title="From draft-ietf-rats-09">

<t><list style="symbols">
  <t>Add SUEIDs</t>
  <t>Add appendix comparing IDevID to EAT</t>
  <t>Added section on use for Evidence and Attestation Results</t>
  <t>Fill in the key ID and endorsements identificaiton section</t>
  <t>Remove origination claim as it is replaced by key IDs and endorsements</t>
  <t>Added manifests and software evidence claims</t>
  <t>Add string labels non-claim labels for use with JSON (e.g. labels for members of location claim)</t>
  <t>EAN-13 HW versions are no longer a separate claim. Now they are folded in as a CoSWID version scheme.</t>
</list></t>

</section>
</section>


  </back>

<!-- ##markdown-source:
H4sIANe6vmAAA+y963Lj2JUu+B9PgVB1nJLKJJXKe2aN7aOSVFUq5+2klK6e
6DhRAZIgBScJ0AAoJZ3ODr9GR8z8nQfzk8y677UBMKtsd5+OOdMOh60EgX3f
676+NR6Pk6bNyvlP2aoq8+dpW2/zpNjU9FfT3r9379m9+8ksa5+nTTtPknk1
K7M1vDivs0U7LvJ2Ma6zthnnWTs+uZckd8vn6dvT66v0x6p+X5TL9Lu62m6S
L9JZVTZ52Wyb5+mXu7z5Eh412+m6aJqiKtvdBtq8vLj+NtkUz5M0bauZvkf/
mOeb9gaePMR/N1Xd1vmiCW80u3X8YFatN9msdW9sp+FZWeGjejHL5027W+X6
Wlu0+I/rmzy9KOEfu/S0bXNYoBbGmF5X7/MyPbw4vT5Ksum0zm+fp/CPJKvz
DAZftnld5m3y/g7WqliWOPnMfT6bVjVMep610MX9eycPcL2ybXtT1c+TcVqU
MPzvJulL2I1dtobx8UJ/V9TF/Car3Q9VDYv8P7bZCma0Tq/z2U1ZraplkTcw
itkEZwvrk8NMHz158ih9WdX5TbVt8vS8Lm5zXB2Y2vP0KivT8yJfVrgW+RLG
+Dw9y1bFoqrLIqNF3JZtDW++uzqFf25u6Igc/Ookffroafr40Un6BA7IAfyU
r7Ni9Txd8xD/+x/bYvJHGd8E/ken92KSvtiW8+kqm+c2wRfZts7LWR79RFO8
ymfbGncBNqSqd+mLF2ehr9Vy9d+LZgU9juscT4Tv6OUk/SZbrWDt87pqrKuX
xXKbrzo//eeuplvMh/efPXNrOeVR7l3MHybp6y/Pq7Ja3mzDav6Q1/l6F//y
y2d4/8mz9NusLuGoVtvlTfq2yuY2Q/cDTWeOp/PdycP0yYuraH5l0ebz9Hdw
AebV2k314cP05P6j++mDxw9Onrqp/qGa02D7U03Kql7D9bnNkSi8/fbs/snJ
M/nzyaOTR/Ln02cP3dMn4U97+vTePX335P5j+/PJQ/vz0X3988Ez+/PxiX32
5KG2++DZU2oB/4NPgNpNTuvZDcx61sJZ5t/arF7ikt607aZ5fnzcVtWqmSDB
nMB+HN+069Vxl4hmrpXxvafcDtOkt/m6avOIHr2pKyBg8GqT+u7pK6Ur+Pc4
XWxXKz4e3+fl+/Sbon5/U63+RL8qPboPxDtNz15fXUz++dG9Z5NzHNvfNZVZ
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

-->

</rfc>

