<?xml version="1.0" encoding="UTF-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc version 1.6.17 (Ruby 3.0.2) -->


<!DOCTYPE rfc  [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">

]>

<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<?rfc rfcedstyle="yes"?>

<rfc ipr="trust200902" docName="draft-ietf-rats-eat-21" category="std" consensus="true" submissionType="IETF" tocDepth="4" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title abbrev="EAT">The Entity Attestation Token (EAT)</title>

    <author initials="L." surname="Lundblade" fullname="Laurence Lundblade">
      <organization>Security Theory LLC</organization>
      <address>
        <email>lgl@securitytheory.com</email>
      </address>
    </author>
    <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="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>
    <author initials="C." surname="Wallace" fullname="Carl Wallace">
      <organization>Red Hound Software, Inc.</organization>
      <address>
        <email>carl@redhoundsoftware.com</email>
      </address>
    </author>

    <date year="2023" month="June" day="30"/>

    <area>Security</area>
    <workgroup>RATS</workgroup>
    <keyword>signing attestation cbor</keyword>

    <abstract>


<t>An Entity Attestation Token (EAT) provides an attested claims set
that describes state and characteristics of an entity,
a device like a smartphone, IoT device, network equipment or such.  This claims set is used by a
relying party, server or service to determine how much it wishes to trust the entity.</t>

<t>An EAT is either a CBOR Web Token (CWT) or JSON Web Token (JWT) with attestation-oriented
claims.</t>



    </abstract>



  </front>

  <middle>


<section anchor="introduction"><name>Introduction</name>

<t>An Entity Attestation Token (EAT) is a message made up of claims about an entity.
An entity may be a device, some hardware or some software.
The claims are ultimately used by a relying party who decides if and how it will interact with the entity.
The relying party may choose to trust, not trust or partially trust the entity.
For example, partial trust may be allowing a monetary transaction only up to a limit.</t>

<t>The security model and goal for attestation are unique and are not the same as for other security standards like those for server authentication, user authentication and secured messaging.
To give an example of one aspect of the difference, consider the association and life-cycle of key material.
For authentication, keys are associated with a user or service and set up by actions performed by a user or an operator of a service.
For attestation, the keys are associated with specific devices and are configured by device manufacturers.
The reader is assumed to be familiar with the goals and security model for attestation as described in <xref target="RATS.Architecture"/> and are not repeated here.</t>

<t>This document defines some common claims that are potentially of broad use.
EAT additionally allows proprietary claims and for further claims to be standardized.
Here are some examples:</t>

<t><list style="symbols">
  <t>Make and model of manufactured consumer device</t>
  <t>Make and model of a chip or processor, particularly for a security-oriented chip</t>
  <t>Identification and measurement of the software running on a device</t>
  <t>Configuration and state of a device</t>
  <t>Environmental characteristics of a device like its GPS location</t>
  <t>Formal certifications received</t>
</list></t>

<t>EAT is constructed to support a wide range of use cases.</t>

<t>No single set of claims can accommodate all use cases so EAT is constructed as a framework for defining specific attestation tokens for specific use cases.
In particular, EAT provides a profile mechanism to be able to clearly specify the claims needed, the cryptographic algorithms that should be used, and other characteristics for a particular token and use case.
<xref target="profiles"/> describes profile contents and provides a profile that is suitable for constrained device use cases.</t>

<t>The entity's EAT implementation generates the claims and typically signs them with an attestation key.
It is responsible for protecting the attestation key.
Some EAT implementations will use components with very high resistance to attack like TPMs or secure elements.
Others may rely solely on simple software defenses.</t>

<t>Nesting of tokens and claims sets is accommodated for composite devices that have multiple subsystems.</t>

<t>An EAT may be encoded in either JSON <xref target="RFC8259"/> or CBOR <xref target="RFC8949"/> as needed for each use case.
EAT is built on CBOR Web Token (CWT) <xref target="RFC8392"/> and JSON Web Token (JWT) <xref target="RFC7519"/> and inherits all their characteristics and their security mechanisms.
Like CWT and JWT, EAT does not imply any message flow.</t>

<section anchor="entity-overview"><name>Entity Overview</name>

<t>This document uses the term "entity" to refer to the target of an EAT.
Most of the claims defined in this document are claims about an entity.
An entity is equivalent to a target environment in an attester as defined in <xref target="RATS.Architecture"></xref>.</t>

<t>Layered attestation and composite devices, as described in <xref target="RATS.Architecture"></xref>, are supported by a submodule mechanism (see <xref target="submods"/>).
Submodules allow nesting of EATs and of claims-sets so that such hierarchies can be modeled.</t>

<t>An entity is the same as a "system component", as defined in the Internet Security Glossary <xref target="RFC4949"/>.</t>

<t>Note that <xref target="RFC4949"/> defines  "entity" and "system entity" as synonyms, and that they may be a person or organization in addition to being a system component.
In the EAT context, "entity" never refers to a person or organization.
The hardware and software that implement a web site server or service may be an entity in the EAT sense, but the organization that operates, maintains or hosts the web site is not an entity.</t>

<t>Some examples of entities:</t>

<t><list style="symbols">
  <t>A Secure Element</t>
  <t>A TEE</t>
  <t>A network card in a router</t>
  <t>A router, perhaps with each network card in the router a submodule</t>
  <t>An IoT device</t>
  <t>An individual process</t>
  <t>An app on a smartphone</t>
  <t>A smartphone with many submodules for its many subsystems</t>
  <t>A subsystem in a smartphone like the modem or the camera</t>
</list></t>

<t>An entity may have strong security defenses against hardware invasive attacks.
It may also have low security, having no special security defenses.
There is no minimum security requirement to be an entity.</t>

</section>
<section anchor="eat-as-a-framework"><name>EAT as a Framework</name>

<t>EAT is a framework for defining attestation tokens for specific use cases, not a specific token definition.
While EAT is based on and compatible with CWT and JWT, it can also be described as:</t>

<t><list style="symbols">
  <t>An identification and type system for claims in claims-sets</t>
  <t>Definitions of common attestation-oriented claims</t>
  <t>Claims defined in CDDL and serialized using CBOR or JSON</t>
  <t>Security envelopes based on COSE and JOSE</t>
  <t>Nesting of claims sets and tokens to represent complex and compound devices</t>
  <t>A profile mechanism for specifying and identifying specific tokens for specific use cases</t>
</list></t>

<t>EAT uses the name/value pairs the same as CWT and JWT to identify individual claims.
<xref target="theclaims"/> defines common attestation-oriented claims that are added to the CWT and JWT IANA registries.
As with CWT and JWT, no claims are mandatory and claims not recognized should be ignored.</t>

<t>Unlike, but compatible with CWT and JWT, EAT defines claims using Concise Data Definition Language (CDDL) <xref target="RFC8610"/>.
In most cases the same CDDL definition is used for both the CBOR/CWT serialization and the JSON/JWT serialization.</t>

<t>Like CWT and JWT, EAT uses COSE and JOSE to provide authenticity, integrity and optionally confidentiality.
EAT places no new restrictions on cryptographic algorithms, retaining all the cryptographic flexibility of CWT, COSE, JWT and JOSE.</t>

<t>EAT defines a means for nesting tokens and claims sets to accommodate composite devices that have multiple subsystems and multiple attesters.
Tokens with security envelopes or bare claims sets may be embedded in an enclosing token.
The nested token and the enclosing token do not have to use the same encoding (e.g., a CWT may be enclosed in a JWT).</t>

<t>EAT adds the ability to detach claims sets and send them separately from a security-enveloped EAT that contains a digest of the detached claims set.</t>

<t>This document registers no media or content types for the identification of the type of EAT, its serialization encoding or security envelope.
The definition and registration of EAT media types is addressed in <xref target="EAT.media-types"/>.</t>

<t>Finally, the notion of an EAT profile is introduced that facilitates the creation of narrowed definitions of EATs for specific use cases in follow-on documents.
One basic profile for constrained devices is normatively defined.</t>

</section>
<section anchor="operating-model-and-rats-architecture"><name>Operating Model and RATS Architecture</name>

<t>EAT follows the operational model described in Figure 1 in <xref target="RATS.Architecture"/>. To summarize, an attester generates evidence in the form of a claims set describing various characteristics of an entity.
Evidence is usually signed by a key that proves the attester and the evidence it produces are authentic.
The claims set includes a nonce or some other means to assure freshness.</t>

<t>A verifier confirms an EAT is valid by verifying the signature and may vet some claims using reference values.
The verifier then produces attestation results, which may also be represented as an EAT.
The attestation results are provided to the relying party, which is the ultimate consumer of the Remote Attestation Procedure.
The relying party uses the attestation results as needed for its use case, perhaps allowing an entity to access a network, allowing a financial transaction or such.
In some cases, the verifier and relying party are not distinct entities.</t>

<section anchor="relationship"><name>Relationship between Evidence and Attestation Results</name>

<t>Any claim defined in this document or in the IANA CWT or JWT registry may be used in evidence or attestation results. The relationship of claims in attestation results to evidence is fundamentally governed by the verifier and the verifier's policy.</t>

<t>A common use case is for the verifier and its policy to perform checks, calculations and processing with evidence as the input to produce a summary result in attestation results that indicates the overall health and status of the entity.
For example, measurements in evidence may be compared to reference values the results of which are represented as a simple pass/fail in attestation results.</t>

<t>It is also possible that some claims in the Evidence will be forwarded unmodified to the relying party in attestation results.
This forwarding is subject to the verifier's implementation and policy.
The relying party should be aware of the verifier's policy to know what checks it has performed on claims it forwards.</t>

<t>The verifier may modify claims it forwards, for example, to implement a privacy preservation functionality. It is also possible the verifier will put claims in the attestation results that give details about the entity that it has computed or looked up in a database.
For example, the verifier may be able to put an "oemid" claim in the attestation results by performing a look up based on a UEID (serial number) it received in evidence.</t>

<t>This specification does not establish any normative rules for the verifier to follow, as these are a matter of local policy.
It is up to each relying party to understand the processing rules of each verifier to know how to interpret claims in attestation results.</t>

</section>
</section>
</section>
<section anchor="terminology"><name>Terminology</name>

<t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>

<t>In this document, the structure of data is specified in CDDL <xref target="RFC8610"/> <xref target="RFC9165"/>.</t>

<t>The examples in <xref target="examples"/> use CBOR diagnostic notation defined in <xref section="8" sectionFormat="of" target="RFC8949"/> and <xref section="G" sectionFormat="of" target="RFC8610"/>.</t>

<t>This document reuses terminology from JWT <xref target="RFC7519"/> and CWT <xref target="RFC8392"/>:</t>

<dl>
  <dt>base64url-encoded:</dt>
  <dd>
    <t>base64url-encoded is as described in <xref target="RFC7515"/>, i.e., using URL- and filename-safe character set <xref target="RFC4648"/> with all trailing '=' characters omitted and without the inclusion of any line breaks, whitespace, or other additional characters.</t>
  </dd>
  <dt>Claim:</dt>
  <dd>
    <t>A piece of information asserted about a subject. A claim is represented as pair with a value and either a name or key to identify it.</t>
  </dd>
  <dt>Claim Name:</dt>
  <dd>
    <t>A unique text string that identifies the claim. It is used as the claim name for JSON encoding.</t>
  </dd>
  <dt>Claim Key:</dt>
  <dd>
    <t>The CBOR map key used to identify a claim. (The term "Claim Key" comes from CWT. This document, like COSE, uses the term "label" to refer to CBOR map keys to avoid confusion with cryptographic keys.)</t>
  </dd>
  <dt>Claim Value:</dt>
  <dd>
    <t>The value portion of the claim. A claim value can be any CBOR data item or JSON value.</t>
  </dd>
  <dt>Claims Set:</dt>
  <dd>
    <t>The CBOR map or JSON object that contains the claims conveyed by the CWT or JWT.</t>
  </dd>
</dl>

<t>This document reuses terminology from RATS Architecure <xref target="RATS.Architecture"/>:</t>

<dl>
  <dt>Attester:</dt>
  <dd>
    <t>A role performed by an entity (typically a device) whose evidence must be appraised in order to infer the extent to which the attester is considered trustworthy, such as when deciding whether it is authorized to perform some operation.</t>
  </dd>
  <dt>Verifier:</dt>
  <dd>
    <t>A role that appraises the validity of evidence about an attester and produces attestation results to be used by a relying party.</t>
  </dd>
  <dt>Relying Party:</dt>
  <dd>
    <t>A role that depends on the validity of information about an attester, for purposes of reliably applying application specific actions. Compare /relying party/ in <xref target="RFC4949"></xref>.</t>
  </dd>
  <dt>Evidence:</dt>
  <dd>
    <t>A set of claims generated by an attester to be appraised by a verifier. Evidence may include configuration data, measurements, telemetry, or inferences.</t>
  </dd>
  <dt>Attestation Results:</dt>
  <dd>
    <t>The output generated by a verifier, typically including information about an attester, where the verifier vouches for the validity of the results</t>
  </dd>
  <dt>Reference Values:</dt>
  <dd>
    <t>A set of values against which values of claims can be compared as part of applying an appraisal policy for evidence.  Reference Values are sometimes referred to in other documents as known-good values, golden measurements, or nominal values, although those terms typically assume comparison for equality, whereas here reference values might be more general and be used in any sort of comparison.</t>
  </dd>
  <dt>Endorsement:</dt>
  <dd>
    <t>A secure statement that an Endorser vouches for the integrity of an attester's various capabilities such as claims collection and evidence signing.</t>
  </dd>
</dl>

<t>This document reuses terminology from CDDL <xref target="RFC8610"/>:</t>

<dl>
  <dt>Group Socket:</dt>
  <dd>
    <t>refers to the mechanism by which a CDDL definition is extended, as described in <xref target="RFC8610"></xref> and <xref target="RFC9165"></xref></t>
  </dd>
</dl>

</section>
<section anchor="top-level-token-definition"><name>Top-Level Token Definition</name>

<t>An "EAT" is an encoded (serialized) message the purpose of which is to transfer a Claims-Set between two parties.
An EAT <bcp14>MUST</bcp14> always contain a Claims-Set.
In this document an EAT is always a CWT or JWT.</t>

<t>An EAT <bcp14>MUST</bcp14> have authenticity and integrity protection.
CWT and JWT provide that in this document.</t>

<t>Further documents may define other encodings and security mechanims for EAT.</t>

<t>The identification of a protocol element as an EAT follows the general conventions used for CWTs and JWTs.
Identification depends on the protocol carrying the EAT.
In some cases it may be by media type (e.g., in a HTTP Content-Type field).
In other cases it may be through use of CBOR tags.
There is no fixed mechanism across all use cases.</t>

<t>This document also defines another message, the detached EAT bundle (see <xref target="DEB"/>), which holds a collection of detached claims sets and an EAT that provides integrity and authenticity protection for them.
Detached EAT bundles can be either CBOR or JSON encoded.</t>

<t>The following CDDL defines the top-level <spanx style="verb">$EAT-CBOR-Tagged-Token</spanx>, <spanx style="verb">$EAT-CBOR-Untagged-Token</spanx> and <spanx style="verb">$EAT-JSON-Token-Formats</spanx> sockets (see <xref section="3.9" sectionFormat="of" target="RFC8610"/>), enabling future token formats to be defined.
Any new format that plugs into one or more of these sockets <bcp14>MUST</bcp14> be defined by an IETF standards action.
Of particular use may be a token type that provides no direct authenticity or integrity protection for use with transports mechanisms that do provide the necessary security services <xref target="UCCS"/>.</t>

<t>Nesting of EATs is allowed and defined in <xref target="Nested-Token"/>.
This includes the nesting of an EAT that is a different format than the enclosing EAT, i.e., the nested EAT may be encoded using CBOR and the enclosing EAT encoded using JSON or vice versa.
The definition of Nested-Token references the CDDL defined in this section.
When new token formats are defined, the means for identification in a nested token <bcp14>MUST</bcp14> also be defined.</t>

<t>The top-level CDDL type for CBOR-encoded EATs is EAT-CBOR-Token and for JSON is EAT-JSON-Token (while CDDL and CDDL tools provide enough support for shared definitions of most items in this document, they don’t provide enough support for this sharing at the top level).</t>

<figure><sourcecode type="CDDL"><![CDATA[
EAT-CBOR-Token = $EAT-CBOR-Tagged-Token / $EAT-CBOR-Untagged-Token

$EAT-CBOR-Tagged-Token /= CWT-Tagged-Message
$EAT-CBOR-Tagged-Token /= BUNDLE-Tagged-Message

$EAT-CBOR-Untagged-Token /= CWT-Untagged-Message
$EAT-CBOR-Untagged-Token /= BUNDLE-Untagged-Message
]]></sourcecode></figure>

<figure><sourcecode type="CDDL"><![CDATA[
EAT-JSON-Token = $EAT-JSON-Token-Formats

$EAT-JSON-Token-Formats /= JWT-Message
$EAT-JSON-Token-Formats /= BUNDLE-Untagged-Message
]]></sourcecode></figure>

</section>
<section anchor="theclaims"><name>The Claims</name>

<t>This section describes new claims defined for attestation that are to be added to the CWT <xref target="IANA.CWT.Claims"/> and JWT <xref target="IANA.JWT.Claims"/> IANA registries.</t>

<t>All definitions, requirements, creation and validation procedures, security considerations, IANA registrations and so on from CWT and JWT carry over to EAT.</t>

<t>This section also describes how several extant CWT and JWT claims apply in EAT.</t>

<t>The set of claims that an EAT must contain to be considered valid is context dependent and is outside the scope of this specification.
Specific applications of EATs will require implementations to understand and process some claims in particular ways.
However, in the absence of such requirements, all claims that are not understood by implementations <bcp14>MUST</bcp14> be ignored.</t>

<t>CDDL, along with a text description, is used to define each claim
independent of encoding.  Each claim is defined as a CDDL group.
In <xref target="encoding"/> on encoding, the CDDL groups turn into CBOR map entries and JSON name/value pairs.</t>

<t>Each claim defined in this document is added to the <spanx style="verb">$$Claims-Set-Claims</spanx> group socket. Claims defined by other specifications <bcp14>MUST</bcp14> also be added to the <spanx style="verb">$$Claims-Set-Claims</spanx> group socket.</t>

<t>All claims in an EAT <bcp14>MUST</bcp14> use the same encoding except where otherwise explicitly stated (e.g., in a CBOR-encoded token, all claims must be CBOR-encoded).</t>

<t>This specification includes a CDDL definition of most of what is defined in <xref target="RFC8392"/>.
Similarly, this specification includes CDDL for most of what is defined in <xref target="RFC7519"/>.
These definitions are in <xref target="CDDL_for_CWT"/> and are not normative.</t>

<t>Each claim described has a unique text string and integer that identifies it.
CBOR-encoded tokens <bcp14>MUST</bcp14> use only the integer for claim keys.
JSON-encoded tokens <bcp14>MUST</bcp14> use only the text string for claim names.</t>

<section anchor="nonce"><name>eat_nonce (EAT Nonce) Claim</name>

<t>An EAT nonce is either a byte or text string or an array of byte or text strings.
The array option supports multistage EAT verification and consumption.</t>

<t>A claim named "nonce" was defined and registered with IANA for JWT, but <bcp14>MUST NOT</bcp14> be used because it does not support multiple nonces.
No previous "nonce" claim was defined for CWT.
To distinguish from the previously defined JWT "nonce" claim, this claim is named "eat_nonce" in JSON-encoded EATs. The CWT nonce defined
here is intended for general purpose use and retains the "Nonce" claim name instead of an EAT-specific name.</t>

<t>An EAT nonce <bcp14>MUST</bcp14> have at least 64 bits of entropy.
A maximum EAT nonce size is set to limit the memory required for an implementation.
All receivers <bcp14>MUST</bcp14> be able to accommodate the maximum size.</t>

<t>In CBOR, an EAT nonce is a byte string.
The minimum size is 8 bytes.
The maximum size is 64 bytes.</t>

<t>In JSON, an EAT nonce is a text string.
It is assumed that only characters represented by the lower 7 bits of each byte will be used, so the text string must be one-seventh longer because the 8th bit doesn't contribute to entropy.
The minimum size for JSON-encoded EATs is 10 bytes and the maximum size is 74 bytes.</t>

<figure><sourcecode type="CDDL"><![CDATA[
$$Claims-Set-Claims //= 
    (nonce-label => nonce-type / [ 2* nonce-type ])

nonce-type = JC< tstr .size (10..74), bstr .size (8..64)>

]]></sourcecode></figure>

</section>
<section anchor="claims-describing-the-entity"><name>Claims Describing the Entity</name>

<t>The claims in this section describe the entity itself.
They describe the entity whether they occur in evidence or occur in attestation results.
See <xref target="relationship"/> for discussion on how attestation results relate to evidence.</t>

<section anchor="UEID"><name>ueid (Universal Entity ID) Claim</name>

<t>The "ueid" claim conveys a UEID, which identifies an individual manufactured entity like a
mobile phone, a water meter, a Bluetooth speaker or a networked
security camera. It may identify the entire entity or a submodule.
It does not identify types, models or classes of
entities. It is akin to a serial number, though it does not have to be
sequential.</t>

<t>UEIDs <bcp14>MUST</bcp14> be universally and globally unique across manufacturers
and countries. UEIDs <bcp14>MUST</bcp14> 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 entity to keep entities distinct
between manufacturers).</t>

<t>UEIDs 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>There are privacy considerations for UEIDs. See <xref target="ueidprivacyconsiderations"/>.</t>

<t>A Device Identifier URN is registered for UEIDs. See <xref target="registerueidurn"/>.</t>

<figure><sourcecode type="CDDL"><![CDATA[
$$Claims-Set-Claims //= (ueid-label => ueid-type)

ueid-type = JC<base64-url-text .size (12..44) , bstr .size (7..33)>
]]></sourcecode></figure>

<section anchor="rules-for-creating-ueids"><name>Rules for Creating UEIDs</name>

<t>These rules are solely for the creation of UEIDs.
The consumer need not have any awareness of them.</t>

<t>A UEID is constructed of a single type byte followed by the unique bytes for that type.
The type byte assures global uniqueness of a UEID even if the unique bytes for different types are accidentally the same.</t>

<t>UEIDS are variable length to accommodate the types defined here and future-defined types.</t>

<t>UEIDs <bcp14>SHOULD NOT</bcp14> be longer than 33 bytes.
If they are longer, there is no guarantee that a receiver will be able to accept them.
See <xref target="UEID-Design"/>.</t>

<t>A UEID is permanent. It <bcp14>MUST</bcp14> never change for a given entity.</t>

<t>The different types of UEIDs 1) accommodate different manufacturing processes, 2) accommodate small UEIDs, 3) provide an option that doesn't require registration fees and central administration.</t>

<t>In the unlikely event that a new UEID type is needed, it <bcp14>MUST</bcp14> be defined in a standards-track update to this document.</t>

<t>A manufacturer of entities <bcp14>MAY</bcp14> use different types for different products.
They <bcp14>MAY</bcp14> also change from one type to another for a given product or use one type for some items of a given produce and another type for other.</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 entity. 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 entity and stored. It <bcp14>MUST NOT</bcp14> be smaller than 128 bits. See the length analysis in <xref target="UEID-Design"/>.</c>
      <c>0x02</c>
      <c>IEEE EUI</c>
      <c>This uses 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-entity 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 entities with multiple network interfaces may have multiple MAC addresses, there is only one UEID for an entity) <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 <bcp14>SHALL</bcp14> 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 <bcp14>SHALL NOT</bcp14> include Luhn checksum or SVN information. See <xref target="ThreeGPP.IMEI"/>.</c>
</texttable>

</section>
<section anchor="rules-for-consuming-ueids"><name>Rules for Consuming UEIDs</name>

<t>For the consumer, a UEID is solely a globally unique opaque identifier.
The consumer does not and should not have any awareness of the rules and structure used to achieve global uniqueness.</t>

<t>All implementations <bcp14>MUST</bcp14> be able to receive UEIDs up to 33 bytes long.
33 bytes is the longest defined in this document and gives necessary entropy for probabilistic uniqueness.</t>

<t>The consumer of a UEID <bcp14>MUST</bcp14> treat it as a completely opaque string of bytes and <bcp14>MUST NOT</bcp14> make any use of its internal structure.
The reasons for this are:</t>

<t><list style="symbols">
  <t>UEIDs types vary freely from one manufacturer to the next.</t>
  <t>New types of UEIDs may be defined.</t>
  <t>The manufacturer of an entity is allowed to change from one type of UEID to another anytime they want.</t>
</list></t>

<t>For example, when the consumer receives a type 0x02 UEID, they should not use the OUI part to identify the manufacturer of the device because there is no guarantee all UEIDs will be type 0x02.
Different manufacturers may use different types.
A manufacturer may make some of their product with one type and others with a different type or even change to a different type for newer versions of their product.
Instead, the consumer should use the "oemid" claim.</t>

</section>
</section>
<section anchor="sueids-semi-permanent-ueids-claim-sueids"><name>sueids (Semi-permanent UEIDs) Claim (SUEIDs)</name>

<t>The "sueids" claim conveys one or more semi-permanent UEIDs (SUEIDs). An SUEID has the same format, characteristics and requirements as a UEID, but <bcp14>MAY</bcp14> change to a different value on entity life-cycle events.
An entity <bcp14>MAY</bcp14> have both a UEID and SUEIDs, neither, one or the other.</t>

<t>Examples of life-cycle events are change of ownership, factory reset and on-boarding into an IoT device management system.
It is beyond the scope of this document to specify particular types of SUEIDs and the life-cycle events that trigger their change.
An EAT profile <bcp14>MAY</bcp14> provide this specification.</t>

<t>There <bcp14>MAY</bcp14> be multiple SUEIDs.
Each has a text string label the purpose of which is to distinguish it from others.
The label <bcp14>MAY</bcp14> name the purpose, application or type of the SUEID.
For example, the label for the SUEID used by XYZ Onboarding Protocol could thus be "XYZ".
It is beyond the scope of this document to specify any SUEID labeling schemes.
They are use case specific and <bcp14>MAY</bcp14> be specified in an EAT profile.</t>

<t>If there is only one SUEID, the claim remains a map and there still <bcp14>MUST</bcp14> be a label.</t>

<t>An SUEID provides functionality similar to an IEEE LDevID <xref target="IEEE.802.1AR"/>.</t>

<t>There are privacy considerations for SUEIDs. See <xref target="ueidprivacyconsiderations"/>.</t>

<t>A Device Identifier URN is registered for SUEIDs. See <xref target="registerueidurn"/>.</t>

<figure><sourcecode type="CDDL"><![CDATA[
$$Claims-Set-Claims //= (sueids-label => sueids-type)

sueids-type = {
    + tstr => ueid-type
}
]]></sourcecode></figure>

</section>
<section anchor="oemid"><name>oemid (Hardware OEM Identification) Claim</name>

<t>The "oemid" claim identifies the Original Equipment Manufacturer (OEM) of the hardware.
Any of the three forms described below <bcp14>MAY</bcp14> be used at the convenience of the claim sender.
The receiver of this claim <bcp14>MUST</bcp14> be able to handle all three forms.</t>

<section anchor="random-number-based-oemid"><name>Random Number Based OEMID</name>

<t>The random number based OEMID <bcp14>MUST</bcp14> always be 16 bytes (128 bits) long.</t>

<t>The OEM <bcp14>MAY</bcp14> create their own ID by using a cryptographic-quality random number generator.
They would perform this only once in the life of the company to generate the single ID for said company.
They would use that same ID in every entity they make.
This uniquely identifies the OEM on a statistical basis and is large enough should there be ten billion companies.</t>

<t>In JSON-encoded tokens this <bcp14>MUST</bcp14> be base64url-encoded.</t>

</section>
<section anchor="ieee-based-oemid"><name>IEEE Based OEMID</name>

<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
service <xref target="OUI.Lookup"/>.</t>

<t>Companies that have more than one of these IDs or MAC address blocks
<bcp14>SHOULD</bcp14> select one and prefer that for all their entities.</t>

<t>Commonly, these are expressed in Hexadecimal Representation as described in
<xref target="IEEE.802-2001"/>. It is 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.</t>

<t>This format is always 3 bytes in size in CBOR.</t>

<t>In JSON-encoded tokens, this <bcp14>MUST</bcp14> be base64url-encoded and always 4 bytes.</t>

</section>
<section anchor="iana-private-enterprise-number-based-oemid"><name>IANA Private Enterprise Number Based OEMID</name>

<t>IANA maintains a registry for Private Enterprise Numbers (PEN) <xref target="PEN"/>. A PEN is an integer that identifies an enterprise and may be
used to construct an object identifier (OID) relative to the following OID arc that is managed by IANA:  iso(1) identified-organization(3) dod(6) internet(1) private(4) enterprise(1).</t>

<t>For EAT purposes, only the integer value assigned by IANA as the PEN is relevant, not the full OID value.</t>

<t>In CBOR this value <bcp14>MUST</bcp14> be encoded as a major type 0 integer and is typically 3 bytes.
In JSON, this value <bcp14>MUST</bcp14> be encoded as a number.</t>

<figure><sourcecode type="CDDL"><![CDATA[
$$Claims-Set-Claims //= (
    oemid-label => oemid-pen / oemid-ieee / oemid-random
)

oemid-pen = int

oemid-ieee = JC<oemid-ieee-json, oemid-ieee-cbor>
oemid-ieee-cbor = bstr .size 3
oemid-ieee-json = base64-url-text .size 4

oemid-random = JC<oemid-random-json, oemid-random-cbor>
oemid-random-cbor = bstr .size 16
oemid-random-json = base64-url-text .size 24

]]></sourcecode></figure>

</section>
</section>
<section anchor="hwmodel"><name>hwmodel (Hardware Model) Claim</name>

<t>The "hwmodel" claim differentiates hardware models, products and variants manufactured by a particular OEM, the one identified by OEM ID in <xref target="oemid"/>.
It <bcp14>MUST</bcp14> be unique within a given OEM ID.
The concatenation of the OEM ID and "hwmodel" give a global identifier of a particular product.
The "hwmodel" claim <bcp14>MUST</bcp14> only be present if an "oemid" claim described in <xref target="oemid"/> is present.</t>

<t>The granularity of the model identification is for each OEM to decide.
It may be very granular, perhaps including some version information.
It may be very general, perhaps only indicating top-level products.</t>

<t>The "hwmodel" claim is for use in protocols and not for human consumption.
The format and encoding of this claim should not be human-readable to discourage use other than in protocols.
If this claim is to be derived from an already-in-use human-readable identifier, it can be run through a hash function.</t>

<t>There is no minimum length so that an OEM with a very small number of models can use a one-byte encoding.
The maximum length is 32 bytes.
All receivers of this claim <bcp14>MUST</bcp14> be able to receive this maximum size.</t>

<t>The receiver of this claim <bcp14>MUST</bcp14> treat it as a completely opaque string of bytes, even if there is some apparent naming or structure.
The OEM is free to alter the internal structure of these bytes as long as the claim continues to uniquely identify its models.</t>

<figure><sourcecode type="CDDL"><![CDATA[
$$Claims-Set-Claims //= (
    hardware-model-label => hardware-model-type
)

hardware-model-type = JC<base64-url-text .size (4..44),
                         bytes .size (1..32)>
]]></sourcecode></figure>

</section>
<section anchor="hwversion-hardware-version-claim"><name>hwversion (Hardware Version) Claim</name>

<t>The "hwversion" claim is a 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"/>.
It is useful to know how to sort versions so the newer can be distinguished from the older.
A "hwversion" claim <bcp14>MUST</bcp14> only be present if a "hwmodel" claim described in <xref target="hwmodel"/> is present.</t>

<figure><sourcecode type="CDDL"><![CDATA[
$$Claims-Set-Claims //=  (
    hardware-version-label => hardware-version-type
)

hardware-version-type = [
    version:  tstr,
    ? scheme:  $version-scheme
]
]]></sourcecode></figure>

</section>
<section anchor="swname"><name>swname (Software Name) Claim</name>

<t>The "swname" claim contains a very simple free-form text value for naming the software used by the entity.
Intentionally, no general rules or structure are set.
This will make it unsuitable for use cases that wish precise naming.</t>

<t>If precise and rigourous naming of the software for the entity is needed, the "manifests" claim described in <xref target="manifests"/> may be used instead.</t>

<figure><sourcecode type="CDDL"><![CDATA[
$$Claims-Set-Claims //= ( sw-name-label => tstr )
]]></sourcecode></figure>

</section>
<section anchor="swversion-software-version-claim"><name>swversion (Software Version) Claim</name>

<t>The "swversion" claim makes use of the CoSWID version-scheme item to give a simple version for the software.
A full CoSWID manifest or other type of manifest can be instead if this is too simple.
A "swversion" claim <bcp14>MUST</bcp14> only be present if a "swname" claim described in <xref target="swname"/> is present.</t>

<figure><sourcecode type="CDDL"><![CDATA[
$$Claims-Set-Claims //= (sw-version-label => sw-version-type)

sw-version-type = [
    version:  tstr
    ? scheme:  $version-scheme 
]
]]></sourcecode></figure>

</section>
<section anchor="oemboot-oem-authorized-boot-claim"><name>oemboot (OEM Authorized Boot) Claim</name>

<t>An "oemboot" claim with value of true indicates the entity booted with software authorized by the manufacturer of the entity as indicated by the "oemid" claim described in <xref target="oemid"/>.
It indicates the firmware and operating system are fully under control of the OEM and may not be replaced by the end user or even the enterprise that owns the device.
The means of control may be by cryptographic authentication of the software, by the software being in ROM, a combination of the two or other.
If this claim is present the "oemid" claim <bcp14>SHOULD</bcp14> always also be present.</t>

<figure><sourcecode type="CDDL"><![CDATA[
$$Claims-Set-Claims //= (oem-boot-label => bool)
]]></sourcecode></figure>

</section>
<section anchor="dbgstat-debug-status-claim"><name>dbgstat (Debug Status) Claim</name>

<t>The "dbgstat" claim applies to entity-wide or submodule-wide debug facilities of the
entity like <xref target="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-entity
public keys.</t>

<t>As with all claims, the absence of the "dbgstat" claim means it is not reported.</t>

<t>This claim is not extensible so as to provide a common interoperable description of debug status.
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 receiver of an EAT <bcp14>MUST NOT</bcp14>
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 entity 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 receiver can know the debug status
of the submodules since there is no inheritance.</t>

<section anchor="enabled"><name>Enabled</name>

<t>If any debug facility, even manufacturer hardware diagnostics, is
currently enabled, then this level must be indicated.</t>

</section>
<section anchor="disabled"><name>Disabled</name>

<t>This level indicates all debug facilities are currently disabled. It
may be possible to enable them in the future. It may also be
that they were enabled in the past, but they are currently disabled.</t>

</section>
<section anchor="disabled-since-boot"><name>Disabled Since Boot</name>

<t>This level indicates all debug facilities are currently disabled and
have been so since the entity booted/started.</t>

</section>
<section anchor="disabled-permanently"><name>Disabled Permanently</name>

<t>This level indicates all non-manufacturer facilities are permanently
disabled such that no end user or developer can 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"><name>Disabled Fully and Permanently</name>

<t>This level indicates that all debug facilities for the entity are permanently disabled.</t>

<figure><sourcecode type="CDDL"><![CDATA[
$$Claims-Set-Claims //= ( debug-status-label => debug-status-type )

debug-status-type = ds-enabled /
                    disabled /
                    disabled-since-boot /
                    disabled-permanently /
                    disabled-fully-and-permanently

ds-enabled                     = JC< "enabled", 0 >
disabled                       = JC< "disabled", 1 >
disabled-since-boot            = JC< "disabled-since-boot", 2 >
disabled-permanently           = JC< "disabled-permanently", 3 >
disabled-fully-and-permanently = 
                       JC< "disabled-fully-and-permanently", 4 >
]]></sourcecode></figure>

</section>
</section>
<section anchor="location"><name>location (Location) Claim</name>

<t>The "location" claim gives the geographic position of the entity from which the attestation originates.
Latitude, longitude, altitude, accuracy, altitude-accuracy, heading and speed <bcp14>MUST</bcp14> be as defined in the W3C Geolocation API <xref target="W3C.GeoLoc"/>
(which, in turn, is based on <xref target="WGS84"/>).
If the entity is stationary, the heading is NaN (floating-point not-a-number).
Latitude and longitude <bcp14>MUST</bcp14> always be provided.
If any other of these values are unknown, they are omitted.</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.
If the entity has no clock or the clock is unset but has a means to measure the time interval between the acquisition of the location and the token creation the age may be reported instead.
The age is in seconds.</t>

<t>See location-related privacy considerations in <xref target="locationprivacyconsiderations"/>.</t>

<figure><sourcecode type="CDDL"><![CDATA[
$$Claims-Set-Claims //= (location-label => location-type)

location-type = {
    latitude => number,
    longitude => number,
    ? altitude => number,
    ? accuracy => number,
    ? altitude-accuracy => number,
    ? heading => number,
    ? speed => number,
    ? timestamp => ~time-int,
    ? age => uint
}

latitude          = JC< "latitude",          1 >
longitude         = JC< "longitude",         2 >
altitude          = JC< "altitude",          3 >
accuracy          = JC< "accuracy",          4 >
altitude-accuracy = JC< "altitude-accuracy", 5 >
heading           = JC< "heading",           6 >
speed             = JC< "speed",             7 >
timestamp         = JC< "timestamp",         8 >
age               = JC< "age",               9 >
]]></sourcecode></figure>

</section>
<section anchor="uptime-uptime-claim"><name>uptime (Uptime) Claim</name>

<t>The "uptime" claim <bcp14>MUST</bcp14> contain a value that represents the number of
seconds that have elapsed since the entity or submodule was last booted.</t>

<figure><sourcecode type="CDDL"><![CDATA[
$$Claims-Set-Claims //= (uptime-label => uint)
]]></sourcecode></figure>

</section>
<section anchor="bootcount-boot-count-claim"><name>bootcount (Boot Count) Claim</name>

<t>The "bootcount" claim contains a count of the number
times the entity or submodule has been booted. Support for this claim
requires a persistent storage on the device.</t>

<figure><sourcecode type="CDDL"><![CDATA[
$$Claims-Set-Claims //= (boot-count-label => uint)
]]></sourcecode></figure>

</section>
<section anchor="bootseed-boot-seed-claim"><name>bootseed (Boot Seed) Claim</name>

<t>The "bootseed" claim contains a value created at system boot time that allows differentiation of attestation reports from different boot sessions of a particular entity (e.g., a certain UEID).</t>

<t>This value is usually public.
It is not a secret and <bcp14>MUST NOT</bcp14> be used for any purpose that a secret seed is needed, such as seeding a random number generator.</t>

<t>There are privacy considerations for this claim. See <xref target="bootseedprivacyconsiderations"/>.</t>

<figure><sourcecode type="CDDL"><![CDATA[
$$Claims-Set-Claims //=  (boot-seed-label => binary-data)
]]></sourcecode></figure>

</section>
<section anchor="dloas"><name>dloas (Digital Letters of Approval) Claim</name>

<t>The "dloas" claim conveys one or more Digital Letters of Approval (DLOAs)). A DLOA <xref target="DLOA"/> is a document that describes a certification that an entity has received.
Examples of certifications represented by a DLOA include those issued by Global Platform and those based on Common Criteria.
The DLOA is unspecific to any particular certification type or those issued by any particular organization.</t>

<t>This claim is typically issued by a verifier, not an attester.
Verifiers <bcp14>MUST NOT</bcp14> issue this claim unless the entity has received the certification indicated by the DLOA.</t>

<t>This claim <bcp14>MAY</bcp14> contain more than one DLOA.
If multiple DLOAs are present, verifiers <bcp14>MUST NOT</bcp14> issue this claim unless the entity has received all of the certifications.</t>

<t>DLOA documents are always fetched from a registrar that stores them.
This claim contains several data items used to construct a URL for fetching the DLOA from the particular registrar.</t>

<t>This claim <bcp14>MUST</bcp14> be encoded as an array with either two or three elements.
The first element <bcp14>MUST</bcp14> be the URI for the registrar.
The second element <bcp14>MUST</bcp14> be a platform label indicating which platform was certified.
If the DLOA applies to an application, then the third element is added which <bcp14>MUST</bcp14> be an application label.
The method of constructing the registrar URI, platform label and possibly application label is specified in <xref target="DLOA"/>.</t>

<t>The retriever of a DLOA <bcp14>MUST</bcp14> follow the recommendation in <xref target="DLOA"/> and use TLS or some other means to be sure the DLOA registrar they are accessing is authentic.
The platform and application labels in the claim indicate the correct DLOA for the entity.</t>

<figure><sourcecode type="CDDL"><![CDATA[
$$Claims-Set-Claims //= (
    dloas-label => [ + dloa-type ]
)

dloa-type = [
    dloa_registrar: general-uri
    dloa_platform_label: text 
    ? dloa_application_label: text
]
]]></sourcecode></figure>

</section>
<section anchor="manifests"><name>manifests (Software Manifests) Claim</name>

<t>The "manifests" claim contains descriptions of software present on the entity.
These manifests are installed on the entity when the software is installed or are created as part of the installation process.
Installation is anything that adds software to the entity, possibly factory installation, the user installing elective applications and so on.
The defining characteristic is 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 possibly to the relying party.</t>

<t>Some manifests are signed by their software manufacturer independently, and some are not either because they do not support signing or the manufacturer chose not to sign them.
For example, a CoSWID might be signed independently before it is included in an EAT.
When signed manifests are put into an EAT, the manufacturer's signature <bcp14>SHOULD</bcp14> be included even though an EAT's signature will also cover the manifest.</t>

<t>This claim allows multiple formats for the manifest.
For example, the manifest may be a CBOR-encoded CoSWID, an XML-encoded SWID or other.
Identification of the type of manifest is always by a CoAP Content-Format integer <xref target="RFC7252"/>.
If there is no CoAP identifier registered for the manifest format, one <bcp14>MUST</bcp14> be registered.</t>

<t>This claim <bcp14>MUST</bcp14> be an array of one or more manifests.
Each manifest in the claim <bcp14>MUST</bcp14> be an array of two.
The first item in the array of two <bcp14>MUST</bcp14> be an integer CoAP Content-Format identifier.
The second item is <bcp14>MUST</bcp14> be the actual manifest.</t>

<t>In JSON-encoded tokens the manifest, whatever encoding it is, <bcp14>MUST</bcp14> be placed in a text string.
When a non-text encoded manifest like a CBOR-encoded CoSWID is put in a JSON-encoded token, the manifest <bcp14>MUST</bcp14> be base-64 encoded.</t>

<t>This claim allows for multiple manifests in one token since multiple software packages are likely to be present.
The multiple manifests <bcp14>MAY</bcp14> be of different encodings.
In some cases EAT submodules may be used instead of the array structure in this claim for multiple manifests.</t>

<t>A CoSWID manifest <bcp14>MUST</bcp14> be a payload CoSWID, not an evidence CoSWID.
These are defined in <xref target="CoSWID"/>.</t>

<t>A <xref target="SUIT.Manifest"/> may be used as a manifest.</t>

<t>This claim is extensible for use of manifest formats beyond those mentioned in this document.
No particular manifest format is preferred.
For manifest interoperability, an EAT profile as defined in <xref target="profiles"/>, should be used to specify which manifest format(s) are allowed.</t>

<figure><sourcecode type="CDDL"><![CDATA[
$$Claims-Set-Claims //= (
    manifests-label => manifests-type
)

manifests-type = [+ manifest-format]

manifest-format = [
    content-type:   coap-content-format,
    content-format: JC< $manifest-body-json,
                        $manifest-body-cbor >
]

$manifest-body-cbor /= bytes .cbor untagged-coswid
$manifest-body-json /= base64-url-text

$manifest-body-cbor /= bytes .cbor SUIT_Envelope
$manifest-body-json /= base64-url-text

]]></sourcecode></figure>

</section>
<section anchor="measurements"><name>measurements (Measurements) Claim</name>

<t>The "measurements" claim contains descriptions, lists, evidence or measurements of the software that exists on the entity or any other measurable
subsystem of the entity (e.g. hash of sections of a file system or non-volatile memory).
The defining characteristic of this claim is that its contents are created by processes on the entity that inventory, measure or otherwise characterize the software on the entity.
The contents of this claim do not originate from the manufacturer of the measurable subsystem (e.g. developer of a software library).</t>

<t>This claim can be a <xref target="CoSWID"/>.
When the CoSWID format is used, it <bcp14>MUST</bcp14> be an evidence CoSWID, not a payload CoSWID.</t>

<t>Formats other than CoSWID <bcp14>MAY</bcp14> be used.
The identification of format is by CoAP Content Format, the same as the "manifests" claim in <xref target="manifests"/>.</t>

<figure><sourcecode type="CDDL"><![CDATA[
$$Claims-Set-Claims //= (
    measurements-label => measurements-type
)

measurements-type = [+ measurements-format]

measurements-format = [
    content-type:   coap-content-format,
    content-format: JC< $measurements-body-json,
                        $measurements-body-cbor >
]

$measurements-body-cbor /= bytes .cbor untagged-coswid
$measurements-body-json /= base64-url-text

]]></sourcecode></figure>

</section>
<section anchor="measurementresults"><name>measres (Software Measurement Results) Claim</name>

<t>The "measres" claim is a general-purpose structure for reporting comparison of measurements to expected reference values.
This claim provides a simple standard way to report the result of a comparison as success, failure, fail to run, ...</t>

<t>It is the nature of measurement systems that they are specific to the operating system, software and hardware of the entity that is being measured.
It is not possible to standardize what is measured and how it is measured across platforms, OS's, software and hardware.
The recipient must obtain the information about what was measured and what it indicates for the characterization of the security of the entity from the provider of the measurement system.
What this claim provides is a standard way to report basic success or failure of the measurement.
In some use cases it is valuable to know if measurements succeeded or failed in a general way even if the details of what was measured is not characterized.</t>

<t>This claim <bcp14>MAY</bcp14> be generated by the verifier and sent to the relying party.
For example, it could be the results of the verifier comparing the contents of the "measurements" claim, <xref target="measurements"/>, to reference values.</t>

<t>This claim <bcp14>MAY</bcp14> also be generated on the entity if the entity has the ability for one subsystem to measure and evaluate another subsystem.
For example, a TEE might have the ability to measure the software of the rich OS and may have the reference values for the rich OS.</t>

<t>Within an entity, attestation target or submodule, multiple results can be reported.
For example, it may be desirable to report the results for measurements of the file system, chip configuration, installed software, running software and so on.</t>

<t>Note that this claim is not for reporting the overall result of a verifier.
It is solely for reporting the result of comparison to reference values.</t>

<t>An individual measurement result (individual-result) is an array consisting of two elements, an identifier of the measurement (result-id) and an enumerated type of the result (result).
Different measurement systems will measure different things and perhaps measure the same thing in different ways.
It is up to each measurement system to define identifiers (result-id) for the measurements it reports.</t>

<t>Each individual measurement result is part of a group that may contain many individual results.
Each group has a text string that names it, typically the name of the measurement scheme or system.</t>

<t>The claim itself consists of one or more groups.</t>

<t>The values for the results enumerated type are as follows:</t>

<dl>
  <dt>1 -- comparison successful:</dt>
  <dd>
    <t>Indicates successful comparison to reference values.</t>
  </dd>
  <dt>2 -- comparison fail:</dt>
  <dd>
    <t>The comparison was completed and did not compare correctly to the reference values.</t>
  </dd>
  <dt>3 -- comparison not run:</dt>
  <dd>
    <t>The comparison was not run. This includes error conditions such as running out of memory.</t>
  </dd>
  <dt>4 -- measurement absent:</dt>
  <dd>
    <t>The particular measurement was not available for comparison.</t>
  </dd>
</dl>

<figure><sourcecode type="CDDL"><![CDATA[
$$Claims-Set-Claims //= ( 
    measurement-results-label => 
        [ + measurement-results-group ] )

measurement-results-group = [
    measurement-system: tstr,
    measurement-results: [ + individual-result ]
]

individual-result = [
    result-id:  tstr / binary-data,
    result:     result-type, 
]

result-type = comparison-successful /
              comparison-fail /
              comparison-not-run /
              measurement-absent 

comparison-successful    = JC< "success",       1 >
comparison-fail          = JC< "fail",          2 >
comparison-not-run       = JC< "not-run",       3 >
measurement-absent       = JC< "absent",        4 >

]]></sourcecode></figure>

</section>
<section anchor="submods"><name>submods (Submodules)</name>

<t>Some devices are complex and have many subsystems.  A mobile phone is a good example. It may have subsystems for communications (e.g., Wi-Fi and cellular), low-power audio and video playback, multiple
security-oriented subsystems like a TEE and a Secure Element, and etc. The claims for a subsystem can be grouped together in a submodule.</t>

<t>Submodules may be used in either evidence or attestation results.</t>

<t>Because system architecture will vary greatly from use case to use case, there are no set requirements for what a submodule represents either in evidence or in attestation results.
Profiles, <xref target="profiles"/>, may wish to impose requirements.
An attester that outputs evidence with submodules should document the semantics it associates with particular submodules for the verifier.
Likewise, a verifier that outputs attestation results with submodules should document the semantics it associates with the submodules for the relying party.</t>

<t>A submodule claim is a map that holds some number of submodules.
Each submodule is named by its label in the submodule claim map.
The value of each entry in a submodule may be a Claims-Set, nested token or Detached-Submodule-Digest.
This allows for the submodule to serve as its own attester or not and allows for claims
for each submodule to be represented directly or indirectly, i.e., detached.</t>

<t>A submodule may include a submodule, allowing for arbitrary levels of nesting.
However, submodules do not inherit anything from the containing token and must explicitly include all claims.
Submodules may contain claims that are present in any surrounding token or submodule.
For example, the top-level of the token may have a UEID, a submodule may have a different UEID and a further subordinate submodule may also have a UEID.</t>

<t>The following sub-sections define the three types for representing submodules:</t>

<t><list style="symbols">
  <t>A submodule Claims-Set</t>
  <t>The digest of a detached Claims-Set</t>
  <t>A nested token, which can be any EAT</t>
</list></t>

<t>The Submodule type definition and Nested-Token type definition vary with the type of encoding. The definitions for CBOR-encoded EATs are as follows:</t>

<figure><sourcecode type="CDDL"><![CDATA[
Nested-Token = CBOR-Nested-Token

CBOR-Nested-Token =
    JSON-Token-Inside-CBOR-Token /
    CBOR-Token-Inside-CBOR-Token

CBOR-Token-Inside-CBOR-Token = bstr .cbor $EAT-CBOR-Tagged-Token

JSON-Token-Inside-CBOR-Token = tstr 

$$Claims-Set-Claims //= (submods-label => { + text => Submodule })

Submodule = Claims-Set / CBOR-Nested-Token / 
            Detached-Submodule-Digest
]]></sourcecode></figure>

<t>The Submodule and Nested-Token definitions for JSON-encoded EATs is as below. This difference in definitions vs. CBOR is necessary because JSON has no tag mechanism and no byte string type to help indicate the nested token is CBOR.</t>

<figure><sourcecode type="CDDL"><![CDATA[
Nested-Token = JSON-Selector

$JSON-Selector-Type /= "JWT" / "CBOR" / "BUNDLE" / "DIGEST"
$JSON-Selector-Value /= JWT-Message /
                  CBOR-Token-Inside-JSON-Token /
                  Detached-EAT-Bundle /
                  Detached-Submodule-Digest

JSON-Selector = [
   type : $JSON-Selector-Type,
   nested-token : $JSON-Selector-Value
]

CBOR-Token-Inside-JSON-Token = base64-url-text

$$Claims-Set-Claims //= (submods-label => { + text => Submodule })

Submodule = Claims-Set / JSON-Selector
]]></sourcecode></figure>

<t>The Detached-Submodule-Digest type is defined as follows:</t>

<figure><sourcecode type="CDDL"><![CDATA[
Detached-Submodule-Digest = [
   hash-algorithm : text / int,
   digest         : binary-data
]
]]></sourcecode></figure>

<t>Nested tokens can be one of three types as defined in this document or types standardized in follow-on documents (e.g., <xref target="UCCS"/>).
Nested tokens are the only mechanism by which JSON can be embedded in CBOR and vice versa.</t>

<t>The addition of further types is accomplished by augmenting the $EAT-CBOR-Tagged-Token socket or the $JSON-Selector-Type and $JSON-Selector-Value sockets.</t>

<t>When decoding a JSON-encoded EAT, the type of submodule is determined as follows.
A JSON object indicates the submodule is a Claims-Set.
In all other cases, it is a JSON-Selector, which is an array of two elements that indicates whether the submodule is a nested token or a Detached-Submodule-Digest.The first element in the array indicates the type present in the second element.
If the value is “JWT”, “CBOR”, “BUNDLE” or a future-standardized token types, e.g., <xref target="UCCS"/>, the submodule is a nested token of the indicated type, i.e., JWT-Message, CBOR-Token-Inside-JSON-Token, Detached-EAT-Bundle, or a future type.
If the value is "DIGEST", the submodule is a Detached-Submodule-Digest.
Any other value indicates a standardized extension to this specification.</t>

<t>When decoding a CBOR-encoded EAT, the CBOR item type indicates the type of the submodule as follows.
A map indicates a CBOR-encoded submodule Claims-Set.
An array indicates a CBOR-encoded Detached-Submodule-Digest.
A byte string indicates a CBOR-encoded CBOR-Nested-Token.
A text string indicates a JSON-encoded JSON-Selector. Where JSON-Selector is used in a CBOR-encoded EAT, the "DIGEST" type and corresponding Detached-Submodule-Digest type <bcp14>MUST NOT</bcp14> be used.</t>

<t>The type of a CBOR-encoded nested token is always determined by the CBOR tag encountered after the byte string wrapping is removed in a CBOR-encoded enclosing token or after the base64 wrapping is removed in JSON-encoded enclosing token.</t>

<t>The type of a JSON-encoded nested token is always determined by the string name in JSON-Selector and is always “JWT”, “BUNDLE” or a new name standardized outside this document for a further type (e.g., “UCCS”).
This string name may also be “CBOR” to indicate the nested token is CBOR-encoded.</t>

<dl>
  <dt>"JWT":</dt>
  <dd>
    <t>The second array item <bcp14>MUST</bcp14> be a JWT formatted according to <xref target="RFC7519"/></t>
  </dd>
  <dt>"CBOR":</dt>
  <dd>
    <t>The second array item <bcp14>MUST</bcp14> be some base64url-encoded CBOR that is a tag, typically a CWT or CBOR-encoded detached EAT bundle</t>
  </dd>
  <dt>"BUNDLE":</dt>
  <dd>
    <t>The second array item <bcp14>MUST</bcp14> be a JSON-encoded Detached EAT Bundle as defined in this document.</t>
  </dd>
  <dt>"DIGEST":</dt>
  <dd>
    <t>The second array item <bcp14>MUST</bcp14> be a JSON-encoded Detached-Submodule-Digest as defined in this document.</t>
  </dd>
</dl>

<t>As noted elsewhere, additional EAT types may be defined by a standards action. New type specifications <bcp14>MUST</bcp14> address the integration of the new type into the Submodule claim type for submodules.</t>

<section anchor="submodule-claims-set"><name>Submodule Claims-Set</name>

<t>The Claims-Set type provides a means of representing claims from a submodule that does not have its own attesting environment,
i.e., it has no keys distinct from the attester producing the surrounding token. Claims are represented as a Claims-Set. Submodule claims represented in this way are secured by the same
mechanism as the enclosing token (e.g., it is signed by the same attestation key).</t>

<t>The encoding of a submodule Claims-Set <bcp14>MUST</bcp14> be the same as the encoding as the surrounding EAT, e.g., all submodule Claims-Sets in a CBOR-encoded token must be CBOR-encoded.</t>

</section>
<section anchor="Detached-Submodule-Digest"><name>Detached Submodule Digest</name>

<t>The Detached-Submodule-Digest type is similar to a submodule Claims-Set, except a digest of the Claims-Set is included in the claim with the Claims-Set contents conveyed separately.
The separately-conveyed Claims-Set is called a detached claims set.
The input to the digest algorithm is directly the CBOR or JSON-encoded Claims-Set for the submodule.
There is no byte-string wrapping or base 64 encoding.</t>

<t>The data type for this type of submodule is an array consisting of two data items: an algorithm identifier and a byte string containing the digest. The hash algorithm identifier is always from the COSE Algorithm registry, <xref target="IANA.COSE.Algorithms"/>. Either the integer or string identifier may be used. The hash algorithm identifier is never from the JOSE Algorithm registry.</t>

<t>A detached EAT bundle, described in <xref target="DEB"/>, may be used to convey detached claims sets and the EAT containing the corresponding detached digests.
EAT, however, doesn't require use of a detached EAT bundle.
Any other protocols may be used to convey detached claims sets and the EAT containing the corresponding detached digests.
Detached Claims-Sets must not be modified in transit, else validation will fail.</t>

</section>
<section anchor="Nested-Token"><name>Nested Tokens</name>

<t>The CBOR-Nested-Token and JSON-Selector types provide a means of representing claims from a submodule that has its own attesting environment,
i.e., it has keys distinct from the attester producing the surrounding token. Claims are represented in a signed EAT token.</t>

<t>Inclusion of a signed EAT as a claim cryptographically binds the EAT to the surrounding token.
If it was conveyed in parallel with the surrounding token, there would be no such binding and attackers could substitute a good attestation from another device for the attestation of an errant subsystem.</t>

<t>A nested token need not use the same encoding as the enclosing token.
This enables composite devices to be built without regards to the encoding used by components.
Thus, a CBOR-encoded EAT can have a JSON-encoded EAT as a nested token and vice versa.</t>

</section>
</section>
</section>
<section anchor="claims-describing-the-token"><name>Claims Describing the Token</name>

<t>The claims in this section provide meta data about the token they occur in.
They do not describe the entity. They may appear in evidence or attestation results.</t>

<section anchor="iat-claim"><name>iat (Timestamp) Claim</name>

<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. An EAT token <bcp14>MUST NOT</bcp14> contain an "iat" claim in
floating-point format. Any recipient of a token with a floating-point
format "iat" claim <bcp14>MUST</bcp14> consider it an error.</t>

<t>A 64-bit integer representation of the CBOR epoch-based time
<xref target="RFC8949"/> used by this claim 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="profile-claim"><name>eat_profile (EAT Profile) Claim</name>

<t>See <xref target="profiles"/> for the detailed description of an EAT profile.</t>

<t>The "eat_profile" claim identifies an EAT profile 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 "eat_profile" claim is to uniquely identify the profile even if it is a private profile.</t>

<t>The OID is always absolute and never relative.</t>

<t>See <xref target="common-types"/> for OID and URI encoding.</t>

<figure><sourcecode type="CDDL"><![CDATA[
$$Claims-Set-Claims //= (profile-label => general-uri / general-oid)
]]></sourcecode></figure>

</section>
<section anchor="intuse-intended-use-claim"><name>intuse (Intended Use) Claim</name>

<t>EATs may be employed in the context of several different applications.  The "intuse"
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 utilizes EAT.
5 possible values for "intuse" are currently defined, but an IANA registry can be created in the future to extend these values  based on new use cases of EAT.</t>

<dl>
  <dt>1 -- Generic:</dt>
  <dd>
    <t>Generic attestation describes an application where the EAT consumer
requires 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>
  </dd>
  <dt>2-- Registration:</dt>
  <dd>
    <t>Entities that are registering for a new service may be expected to
provide an attestation as part of the registration process.  This "intuse"
setting indicates that the attestation is not intended for any use but registration.</t>
  </dd>
  <dt>3 -- Provisioning:</dt>
  <dd>
    <t>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 entity security state of the entity prior to provisioning.</t>
  </dd>
  <dt>4 -- Certificate Issuance:</dt>
  <dd>
    <t>Certification Authorities (CAs) may require attestation results (which in a background check model might require receiving evidence to be passed to a verifier) to make decisions about the issuance of certificates.
An EAT may be used as part of the certificate signing request (CSR).</t>
  </dd>
  <dt>5 -- Proof-of-Possession:</dt>
  <dd>
    <t>An EAT consumer may require an attestation as part of an accompanying
proof-of-possession (PoP) application. More precisely, a PoP transaction is intended
to provide to the recipient cryptographically-verifiable proof that the sender has possession
of a key.  This kind of attestation may be necessary to verify the
security state of the entity storing the private key used in a PoP application.</t>
  </dd>
</dl>

<figure><sourcecode type="CDDL"><![CDATA[
$$Claims-Set-Claims //= ( intended-use-label => intended-use-type )

intended-use-type = generic /
                    registration / 
                    provisioning / 
                    csr /
                    pop

generic      = JC< "generic",      1 >
registration = JC< "registration", 2 >
provisioning = JC< "provisioning", 3 >
csr          = JC< "csr",          4 >
pop          = JC< "pop",          5 >
]]></sourcecode></figure>

</section>
</section>
</section>
<section anchor="DEB"><name>Detached EAT Bundles</name>

<t>A detached EAT bundle is a message to convey an EAT plus detached claims sets secured by that EAT.
It is a top-level message like a CWT or JWT.
It can occur in any place that a CWT or JWT occurs, for example as a submodule nested token as defined in <xref target="Nested-Token"/>.</t>

<t>A detached EAT bundle may be either CBOR or JSON-encoded.</t>

<t>A detached EAT bundle consists of two parts.</t>

<t>The first part is an encoded EAT as follows:</t>

<t><list style="symbols">
  <t><bcp14>MUST</bcp14> have at least one submodule that is a detached submodule digest as defined in <xref target="Detached-Submodule-Digest"/></t>
  <t><bcp14>MAY</bcp14> be either CBOR or JSON-encoded and doesn't have to the the same as the encoding of the bundle</t>
  <t><bcp14>MAY</bcp14> be a CWT, or JWT or some future-defined token type, but <bcp14>MUST NOT</bcp14> be a detached EAT bundle</t>
  <t><bcp14>MUST</bcp14> be authenticity and integrity protected</t>
</list></t>

<t>The same mechanism for distinguishing the type for nested token submodules is employed here.</t>

<t>The second part is a map/object as follows:</t>

<t><list style="symbols">
  <t><bcp14>MUST</bcp14> be a Claims-Set</t>
  <t><bcp14>MUST</bcp14> use the same encoding as the bundle</t>
  <t><bcp14>MUST</bcp14> be wrapped in a byte string when the encoding is CBOR and be base64url-encoded when the encoding is JSON</t>
</list></t>

<t>For CBOR-encoded detached EAT bundles, tag TBD602 can be used to identify it.
The standard rules apply for use or non-use of a tag.
When it is sent as a submodule, it is always sent as a tag to distinguish it from the other types of nested tokens.</t>

<t>The digests of the detached claims sets are associated with detached Claims-Sets by label/name.
It is up to the constructor of the detached EAT bundle to ensure the names uniquely identify the detached claims sets.
Since the names are used only in the detached EAT bundle, they can be very short, perhaps one byte.</t>

<figure><sourcecode type="CDDL"><![CDATA[
BUNDLE-Messages = BUNDLE-Tagged-Message / BUNDLE-Untagged-Message

BUNDLE-Tagged-Message   = #6.TBD(BUNDLE-Untagged-Message)
BUNDLE-Untagged-Message = Detached-EAT-Bundle

Detached-EAT-Bundle = [
    main-token : Nested-Token,
    detached-claims-sets: {
        + tstr => JC<json-wrapped-claims-set,
                     cbor-wrapped-claims-set>
    }
]

json-wrapped-claims-set = base64-url-text

cbor-wrapped-claims-set = bstr .cbor Claims-Set

]]></sourcecode></figure>

</section>
<section anchor="profiles"><name>Profiles</name>

<t>EAT makes normative use of CBOR, JSON, COSE, JOSE, CWT and JWT.
Most of these have implementation options to accommodate a range of use cases.</t>

<t>For example, COSE doesn't require a particular set of cryptographic algorithms so as to accommodate different usage scenarios and evolution of algorithms over time.
Section 10 of <xref target="RFC9052"/> describes the profiling considerations for COSE.</t>

<t>The use of encryption is optional for both CWT and JWT.
Section 8 of <xref target="RFC7519"/> describes implementation requirement and recommendations for JWT.</t>

<t>Similarly, CBOR provides indefinite length encoding, which is not commonly used, but valuable for very constrained devices.
For EAT itself, in a particular use case some claims will be used and others will not.
Section 4 of <xref target="RFC8949"/> describes serialization considerations for CBOR.</t>

<t>For example a mobile phone use case may require the device make and model, and prohibit UEID and location for privacy reasons.
The general EAT standard retains all this flexibility because it too is aimed to accommodate a broad range of use cases.</t>

<t>It is necessary to explicitly narrow these implementation options to guarantee interoperability.
EAT chooses one general and explicit mechanism, the profile, to indicate the choices made for these implementation options for all aspects of the token.</t>

<t>Below is a list of the various issues that should be addressed by a profile.</t>

<t>The "eat_profile" claim in <xref target="profile-claim"/> provides a unique identifier for the profile a particular token uses.</t>

<t>A profile can apply to evidence or to attestation results or both.</t>

<section anchor="format-of-a-profile-document"><name>Format of a Profile Document</name>

<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>A profile may define, and possibly register, one or more new claims if needed. A profile may also reuse one or more already defined claims, either as-is or with values constrained to a subset or subrange.</t>

</section>
<section anchor="list-of-profile-issues"><name>List of Profile Issues</name>

<t>The following is a list of EAT, CWT, JWT, COSE, JOSE and CBOR options that a profile should address.</t>

<section anchor="use-of-json-cbor-or-both"><name>Use of JSON, CBOR or both</name>

<t>A profile should specify whether CBOR, JSON or both may be sent.
A profile should specify that the receiver can accept all encodings that the sender is allowed to send.</t>

<t>This should be specified for the top-level and all 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"><name>CBOR Map and Array Encoding</name>

<t>A profile should specify whether definite-length arrays/maps, indefinite-length arrays/maps or both may be sent.
A profile should specify that the receiver be able to accept all length encodings that the sender is allowed to send.</t>

<t>This applies to individual EAT claims, CWT and COSE parts of the implementation.</t>

<t>For most use cases, specifying that only definite-length arrays/maps may be sent is suitable.</t>

</section>
<section anchor="cbor-string-encoding"><name>CBOR String Encoding</name>

<t>A profile should specify whether definite-length strings, indefinite-length strings or both may be sent.
A profile should specify that the receiver be able to accept all types of string encodings that the sender is allowed to send.</t>

<t>For most use cases, specifying that only definite-length strings may be sent is suitable.</t>

</section>
<section anchor="cbor-preferred-serialization"><name>CBOR Preferred Serialization</name>

<t>A profile should specify whether or not CBOR preferred serialization must be sent or not.
A profile should specify the receiver be able to accept preferred and/or non-preferred serialization so it will be able to accept anything sent by the sender.</t>

</section>
<section anchor="cbor-tags"><name>CBOR Tags</name>

<t>The profile should specify whether the token should be a CWT 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 unnecessary because the surrounding or carrying protocol identifies the object as an EAT.</t>

</section>
<section anchor="message-type"><name>COSE/JOSE Protection</name>

<t>COSE and JOSE have several options for signed, MACed and encrypted messages.
JWT may use the JOSE 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, and CWT are allowed by EAT.</t>

<t>A profile should specify all signing, encryption and MAC message formats that may be sent.
For example, a profile might allow only COSE_Sign1 to be sent.
For another example, a profile might allow COSE_Sign and COSE_Encrypt to be sent to carry multiple signatures for post quantum cryptography and to use encryption to provide confidentiality.</t>

<t>A profile should specify the receiver accepts all message formats that are allowed to be sent.</t>

<t>When both signing and encryption are allowed, a profile should specify which is applied first.</t>

</section>
<section anchor="cosejose-algorithms"><name>COSE/JOSE Algorithms</name>

<t>See the section on "Application Profiling Considerations" in <xref target="RFC9052"/> for a discussion on selection of cryptographic algorithms and related issues.</t>

<t>The profile <bcp14>MAY</bcp14> require the protocol or system using EAT provide an algorithm negotiation mechanism.</t>

<t>If not, The profile document should list a set of algorithms for each COSE and JOSE message type allowed by the profile per <xref target="message-type"/>.
The verifier should implement all of them.
The attester may implement any of them it wishes, possibly just one for each message type.</t>

<t>If detached submodule digests are used the profile should address the determination of the hash algorithm(s) for the digests.</t>

</section>
<section anchor="detached-eat-bundle-support"><name>Detached EAT Bundle Support</name>

<t>A profile should specify whether or not a detached EAT bundle (<xref target="DEB"/>) can be sent.
A profile should specify that a receiver be able to accept a detached EAT bundle if the sender is allowed to send it.</t>

</section>
<section anchor="key-identification"><name>Key Identification</name>

<t>A profile should specify what must be sent to identify the verification, decryption or MAC key or keys.
If multiple methods of key identification may be sent, a profile should require the receiver support them all.</t>

<t><xref target="keyid"/> describes a number of methods for identifying verification keys.
When encryption is used, there are further considerations.
In some cases key identification may be very simple and in others involve multiple components.
For example, it may be simple through use of COSE key ID or it may be complex through use of an X.509 certificate hierarchy.</t>

<t>While not always possible, a profile should specify or make reference to, a full end-end specification for key identification.
For example, a profile should specify in full detail how COSE key IDs are to be created, their lifecycle and such rather than just specifying that a COSE key ID be used.
For example, a profile should specify the full details of an X.509 hierarchy including extension processing, algorithms allowed and so on rather than just saying X.509 certificates are used.</t>

</section>
<section anchor="endorsement-identification"><name>Endorsement Identification</name>

<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, whereas key identification is not.</t>

</section>
<section anchor="freshness"><name>Freshness</name>

<t>Security considerations, see <xref target="sec-con-freshness"/>, require a mechanism to provide freshness.
This may be the EAT nonce claim in <xref target="nonce"/>, or some claim or mechanism defined outside this document.
The section on freshness in <xref target="RATS.Architecture"/> describes several options.
A profile should specify which freshness mechanism or mechanisms can be used.</t>

<t>If the EAT nonce claim is used, a profile should specify whether multiple nonces may be sent.
If a profile allows multiple nonces to be sent, it should require the receiver to process multiple nonces.</t>

</section>
<section anchor="claims-requirements"><name>Claims Requirements</name>

<t>A profile may define new claims that are not defined in this document.</t>

<t>This document requires an EAT receiver must accept all claims it does not understand.
A profile for a specific use case may reverse this and allow a receiver to reject tokens with claims it does not understand.
A profile for a specific use case may specify that specific claims are prohibited.</t>

<t>A profile for a specific use case may modify this and specify that some claims are required.</t>

<t>A profile may constrain the definition of claims that are defined in this document or elsewhere.
For example, a profile may require the EAT nonce be a certain length or the "location" claim always include the altitude.</t>

<t>Some claims are "pluggable" in that they allow different formats for their content.
The "manifests" claim (<xref target="manifests"/>) along with the measurement and "measurements" (<xref target="measurements"/>)) claims are examples of this, allowing the use of CoSWID, TEEP Manifests and other formats.
A profile should specify which formats are allowed to be sent, with the assumption that the corresponding COAP content types have been registered.
A profile should require the receiver to accept all formats that are allowed to be sent.</t>

<t>Further, if there is variation within a format that is allowed, the profile should specify which variations can be sent.
For example, there are variations in the CoSWID format.
A profile that require the receiver to accept all variations that are allowed to be sent.</t>

</section>
</section>
<section anchor="the-constrained-device-standard-profile"><name>The Constrained Device Standard Profile</name>

<t>It is anticipated that there will be many profiles defined for EAT for many different use cases.
This section gives a normative definition of one profile that is good for many constrained device use cases.</t>

<t>The identifier for this profile is "https://www.rfc-editor.org/rfc/rfcTBD".</t>

<t><cref anchor="to-be-removed">RFC Editor: please replace rfcTBD with this RFC number and remove this note.</cref></t>

<texttable>
      <ttcol align='left'>Issue</ttcol>
      <ttcol align='left'>Profile Definition</ttcol>
      <c>CBOR/JSON</c>
      <c>CBOR <bcp14>MUST</bcp14> be used</c>
      <c>CBOR Encoding</c>
      <c>Definite length maps and arrays <bcp14>MUST</bcp14> be used</c>
      <c>CBOR Encoding</c>
      <c>Definite length strings <bcp14>MUST</bcp14> be used</c>
      <c>CBOR Serialization</c>
      <c>Preferred serialization <bcp14>MUST</bcp14> be used</c>
      <c>COSE Protection</c>
      <c>COSE_Sign1 <bcp14>MUST</bcp14> be used</c>
      <c>Algorithms</c>
      <c>The receiver <bcp14>MUST</bcp14> accept ES256, ES384 and ES512; the sender <bcp14>MUST</bcp14> send one of these</c>
      <c>Detached EAT Bundle Usage</c>
      <c>Detached EAT bundles <bcp14>MUST</bcp14> not be sent with this profile</c>
      <c>Verification Key Identification</c>
      <c>Either the COSE kid or the UEID <bcp14>MUST</bcp14> be used to identify the verification key. If both are present, the kid takes precedence</c>
      <c>Endorsements</c>
      <c>This profile contains no endorsement identifier</c>
      <c>Nonce</c>
      <c>A new single unique nonce <bcp14>MUST</bcp14> be used for every token request</c>
      <c>Claims</c>
      <c>No requirement is made on the presence or absence of claims other than requiring an EAT nonce. As per general EAT rules, the receiver <bcp14>MUST NOT</bcp14> error out on claims it doesn't understand.</c>
</texttable>

<t>Any profile with different requirements than those above <bcp14>MUST</bcp14> have a different profile identifier.</t>

<t>Note that many claims can be present for tokens conforming to this profile, even claims not defined in this document.
Note also that even slight deviation from the above requirements is considered a different profile that <bcp14>MUST</bcp14> have a different identifier.
For example, if a kid (key identifier) or UEID is not used for key identification, it is not in conformance with this profile.
For another example, requiring the presence of some claim is also not in conformance and requires another profile.</t>

<t>Derivations of this profile are encouraged.
For example another profile may be simply defined as The Constrained Device Standard Profile plus the requirement for the presence of claim xxxx and claim yyyy.</t>

</section>
</section>
<section anchor="encoding"><name>Encoding and Collected CDDL</name>

<t>An EAT is fundamentally defined using CDDL.
This document specifies how to encode the CDDL in CBOR or JSON.
Since CBOR can express some things that JSON can't (e.g., tags) or that are expressed differently (e.g., labels) there is some CDDL that is specific to the encoding.</t>

<section anchor="claims-set-and-cddl-for-cwt-and-jwt"><name>Claims-Set and CDDL for CWT and JWT</name>

<t>CDDL was not used to define CWT or JWT.
It was not available at the time.</t>

<t>This document defines CDDL for both CWT and JWT.
This document does not change the encoding or semantics of anything in a CWT or JWT.</t>

<t>A Claims-Set is the central data structure for EAT, CWT and JWT.
It holds all the claims and is the structure that is secured by signing or other means.
It is not possible to define EAT, CWT, or JWT in CDDL without it.
The CDDL definition of Claims-Set here is applicable to EAT, CWT and JWT.</t>

<t>This document specifies how to encode a Claims-Set in CBOR or JSON.</t>

<t>With the exception of nested tokens and some other externally defined structures (e.g., SWIDs) an entire Claims-Set must be in encoded in either CBOR or JSON, never a mixture.</t>

<t>CDDL for the seven claims defined by <xref target="RFC8392"/> and <xref target="RFC7519"/> is included here.</t>

</section>
<section anchor="encoding-data-types"><name>Encoding Data Types</name>

<t>This makes use of the types defined in <xref target="RFC8610"/> Appendix D, Standard Prelude.</t>

<section anchor="common-types"><name>Common Data Types</name>

<t>time-int is identical to the epoch-based time, but disallows
floating-point representation.</t>

<t>The OID encoding from <xref target="RFC9090"/> is used without the tag number in CBOR-encoded tokens.
In JSON tokens OIDs are a text string in the common form of "nn.nn.nn...".</t>

<t>Unless expliclity indicated, URIs are not the URI tag defined in <xref target="RFC8949"/>.
They are just text strings that contain a URI conforming to the format defined in <xref target="RFC3986"/>.</t>

<figure><sourcecode type="CDDL"><![CDATA[
time-int = #6.1(int)

binary-data = JC< base64-url-text, bstr>

base64-url-text = tstr .regexp "[A-Za-z0-9_-]+"

general-oid = JC< json-oid, ~oid >

json-oid = tstr .regexp "([0-2])((\\.0)|(\\.[1-9][0-9]*))*"

general-uri = JC< text, ~uri >

coap-content-format = uint .le 65535

]]></sourcecode></figure>

</section>
<section anchor="jsoninterop"><name>JSON Interoperability</name>

<t>JSON should be encoded per <xref target="RFC8610"/>, Appendix E. In addition, the
following CDDL types are encoded in JSON as follows:</t>

<t><list style="symbols">
  <t>bstr -- <bcp14>MUST</bcp14> be base64url-encoded</t>
  <t>time -- <bcp14>MUST</bcp14> be encoded as NumericDate as described in Section 2 of <xref target="RFC7519"/>.</t>
  <t>string-or-uri -- <bcp14>MUST</bcp14> be encoded as StringOrURI as described in Section 2 of <xref target="RFC7519"/>.</t>
  <t>uri -- <bcp14>MUST</bcp14> be a URI <xref target="RFC3986"/>.</t>
  <t>oid -- <bcp14>MUST</bcp14> be encoded as a string using the well established dotted-decimal notation (e.g., the text "1.2.250.1") <xref target="RFC2252"/>.</t>
</list></t>

<t>The CDDL generic "JC&lt; &gt;" is used in most places where there is a variance between CBOR and JSON.
The first argument is the CDDL for JSON and the second is CDDL for CBOR.</t>

</section>
<section anchor="labels"><name>Labels</name>

<t>Most map labels, Claims-Keys, Claim-Names and enumerated-type values are integers for CBOR-encoded tokens and strings for JSON-encoded tokens.
When this is the case the "JC &lt; &gt;" CDDL construct is used to give both the integer and string values.</t>

</section>
<section anchor="cbor-interoperability"><name>CBOR Interoperability</name>

<t>CBOR allows data items to be serialized in more than one form to accommodate a variety of use cases.
This is addressed in <xref target="profiles"/>.</t>

</section>
</section>
<section anchor="collected-cddl"><name>Collected CDDL</name>

<section anchor="payload-cddl"><name>Payload CDDL</name>

<t>This CDDL defines all the EAT Claims that are added to the main definition of a Claim-Set in <xref target="CDDL_for_CWT"/>.
Claims-Set is the payload for CWT, JWT and potentially other token types.
This is for both CBOR and JSON.
When there is variation between CBOR and JSON, the JC&lt;&gt; CDDL generic defined in <xref target="CDDL_for_CWT"/>.</t>

<t>This CDDL uses, but doesn't define Submodule or nested tokens because the definition for these types varies between CBOR and JSON and the JC&lt;&gt; generic can't be used to define it.
The submodule claim is the one place that that a CBOR token can be nested inside a JSON token and vice versa.
Encoding-specific definitions are provided in the following sections.</t>

<figure><sourcecode type="CDDL"><![CDATA[
time-int = #6.1(int)

binary-data = JC< base64-url-text, bstr>

base64-url-text = tstr .regexp "[A-Za-z0-9_-]+"

general-oid = JC< json-oid, ~oid >

json-oid = tstr .regexp "([0-2])((\\.0)|(\\.[1-9][0-9]*))*"

general-uri = JC< text, ~uri >

coap-content-format = uint .le 65535


$$Claims-Set-Claims //= 
    (nonce-label => nonce-type / [ 2* nonce-type ])

nonce-type = JC< tstr .size (10..74), bstr .size (8..64)>


$$Claims-Set-Claims //= (ueid-label => ueid-type)

ueid-type = JC<base64-url-text .size (12..44) , bstr .size (7..33)>

$$Claims-Set-Claims //= (sueids-label => sueids-type)

sueids-type = {
    + tstr => ueid-type
}

$$Claims-Set-Claims //= (
    oemid-label => oemid-pen / oemid-ieee / oemid-random
)

oemid-pen = int

oemid-ieee = JC<oemid-ieee-json, oemid-ieee-cbor>
oemid-ieee-cbor = bstr .size 3
oemid-ieee-json = base64-url-text .size 4

oemid-random = JC<oemid-random-json, oemid-random-cbor>
oemid-random-cbor = bstr .size 16
oemid-random-json = base64-url-text .size 24


$$Claims-Set-Claims //=  (
    hardware-version-label => hardware-version-type
)

hardware-version-type = [
    version:  tstr,
    ? scheme:  $version-scheme
]

$$Claims-Set-Claims //= (
    hardware-model-label => hardware-model-type
)

hardware-model-type = JC<base64-url-text .size (4..44),
                         bytes .size (1..32)>

$$Claims-Set-Claims //= ( sw-name-label => tstr )

$$Claims-Set-Claims //= (sw-version-label => sw-version-type)

sw-version-type = [
    version:  tstr
    ? scheme:  $version-scheme 
]

$$Claims-Set-Claims //= (oem-boot-label => bool)

$$Claims-Set-Claims //= ( debug-status-label => debug-status-type )

debug-status-type = ds-enabled /
                    disabled /
                    disabled-since-boot /
                    disabled-permanently /
                    disabled-fully-and-permanently

ds-enabled                     = JC< "enabled", 0 >
disabled                       = JC< "disabled", 1 >
disabled-since-boot            = JC< "disabled-since-boot", 2 >
disabled-permanently           = JC< "disabled-permanently", 3 >
disabled-fully-and-permanently = 
                       JC< "disabled-fully-and-permanently", 4 >

$$Claims-Set-Claims //= (location-label => location-type)

location-type = {
    latitude => number,
    longitude => number,
    ? altitude => number,
    ? accuracy => number,
    ? altitude-accuracy => number,
    ? heading => number,
    ? speed => number,
    ? timestamp => ~time-int,
    ? age => uint
}

latitude          = JC< "latitude",          1 >
longitude         = JC< "longitude",         2 >
altitude          = JC< "altitude",          3 >
accuracy          = JC< "accuracy",          4 >
altitude-accuracy = JC< "altitude-accuracy", 5 >
heading           = JC< "heading",           6 >
speed             = JC< "speed",             7 >
timestamp         = JC< "timestamp",         8 >
age               = JC< "age",               9 >

$$Claims-Set-Claims //= (uptime-label => uint)

$$Claims-Set-Claims //=  (boot-seed-label => binary-data)

$$Claims-Set-Claims //= (boot-count-label => uint)

$$Claims-Set-Claims //= ( intended-use-label => intended-use-type )

intended-use-type = generic /
                    registration / 
                    provisioning / 
                    csr /
                    pop

generic      = JC< "generic",      1 >
registration = JC< "registration", 2 >
provisioning = JC< "provisioning", 3 >
csr          = JC< "csr",          4 >
pop          = JC< "pop",          5 >

$$Claims-Set-Claims //= (
    dloas-label => [ + dloa-type ]
)

dloa-type = [
    dloa_registrar: general-uri
    dloa_platform_label: text 
    ? dloa_application_label: text
]

$$Claims-Set-Claims //= (profile-label => general-uri / general-oid)

$$Claims-Set-Claims //= (
    manifests-label => manifests-type
)

manifests-type = [+ manifest-format]

manifest-format = [
    content-type:   coap-content-format,
    content-format: JC< $manifest-body-json,
                        $manifest-body-cbor >
]

$manifest-body-cbor /= bytes .cbor untagged-coswid
$manifest-body-json /= base64-url-text

$manifest-body-cbor /= bytes .cbor SUIT_Envelope
$manifest-body-json /= base64-url-text


$$Claims-Set-Claims //= (
    measurements-label => measurements-type
)

measurements-type = [+ measurements-format]

measurements-format = [
    content-type:   coap-content-format,
    content-format: JC< $measurements-body-json,
                        $measurements-body-cbor >
]

$measurements-body-cbor /= bytes .cbor untagged-coswid
$measurements-body-json /= base64-url-text


$$Claims-Set-Claims //= ( 
    measurement-results-label => 
        [ + measurement-results-group ] )

measurement-results-group = [
    measurement-system: tstr,
    measurement-results: [ + individual-result ]
]

individual-result = [
    result-id:  tstr / binary-data,
    result:     result-type, 
]

result-type = comparison-successful /
              comparison-fail /
              comparison-not-run /
              measurement-absent 

comparison-successful    = JC< "success",       1 >
comparison-fail          = JC< "fail",          2 >
comparison-not-run       = JC< "not-run",       3 >
measurement-absent       = JC< "absent",        4 >



Detached-Submodule-Digest = [
   hash-algorithm : text / int,
   digest         : binary-data
]


BUNDLE-Messages = BUNDLE-Tagged-Message / BUNDLE-Untagged-Message

BUNDLE-Tagged-Message   = #6.TBD(BUNDLE-Untagged-Message)
BUNDLE-Untagged-Message = Detached-EAT-Bundle

Detached-EAT-Bundle = [
    main-token : Nested-Token,
    detached-claims-sets: {
        + tstr => JC<json-wrapped-claims-set,
                     cbor-wrapped-claims-set>
    }
]

json-wrapped-claims-set = base64-url-text

cbor-wrapped-claims-set = bstr .cbor Claims-Set



nonce-label            = JC< "eat_nonce",  10 >
ueid-label             = JC< "ueid",       256 >
sueids-label           = JC< "sueids",     257 >
oemid-label            = JC< "oemid",      258 >
hardware-model-label   = JC< "hwmodel",    259 >
hardware-version-label = JC< "hwversion",  260 >
oem-boot-label         = JC< "oemboot",    262 >
debug-status-label     = JC< "dbgstat",    263 >
location-label         = JC< "location",   264 >
profile-label          = JC< "eat_profile",265 >
submods-label          = JC< "submods",    266 >

uptime-label           = JC< "uptime",     TBD >
boot-seed-label        = JC< "bootseed",   TBD >
intended-use-label     = JC< "intuse",     TBD >
dloas-label            = JC< "dloas",      TBD >
sw-name-label          = JC< "swname",     TBD >
sw-version-label       = JC< "swversion",  TBD >
manifests-label        = JC< "manifests",  TBD >
measurements-label     = JC< "measurements", TBD >
measurement-results-label = JC< "measres" , TBD >
boot-count-label       = JC< "bootcount",  TBD >


]]></sourcecode></figure>

</section>
<section anchor="cbor-specific-cddl"><name>CBOR-Specific CDDL</name>

<figure><sourcecode type="CDDL"><![CDATA[
EAT-CBOR-Token = $EAT-CBOR-Tagged-Token / $EAT-CBOR-Untagged-Token

$EAT-CBOR-Tagged-Token /= CWT-Tagged-Message
$EAT-CBOR-Tagged-Token /= BUNDLE-Tagged-Message

$EAT-CBOR-Untagged-Token /= CWT-Untagged-Message
$EAT-CBOR-Untagged-Token /= BUNDLE-Untagged-Message


Nested-Token = CBOR-Nested-Token

CBOR-Nested-Token =
    JSON-Token-Inside-CBOR-Token /
    CBOR-Token-Inside-CBOR-Token

CBOR-Token-Inside-CBOR-Token = bstr .cbor $EAT-CBOR-Tagged-Token

JSON-Token-Inside-CBOR-Token = tstr 

$$Claims-Set-Claims //= (submods-label => { + text => Submodule })

Submodule = Claims-Set / CBOR-Nested-Token / 
            Detached-Submodule-Digest

]]></sourcecode></figure>

</section>
<section anchor="json-specific-cddl"><name>JSON-Specific CDDL</name>

<figure><sourcecode type="CDDL"><![CDATA[
EAT-JSON-Token = $EAT-JSON-Token-Formats

$EAT-JSON-Token-Formats /= JWT-Message
$EAT-JSON-Token-Formats /= BUNDLE-Untagged-Message


Nested-Token = JSON-Selector

$JSON-Selector-Type /= "JWT" / "CBOR" / "BUNDLE" / "DIGEST"
$JSON-Selector-Value /= JWT-Message /
                  CBOR-Token-Inside-JSON-Token /
                  Detached-EAT-Bundle /
                  Detached-Submodule-Digest

JSON-Selector = [
   type : $JSON-Selector-Type,
   nested-token : $JSON-Selector-Value
]

CBOR-Token-Inside-JSON-Token = base64-url-text

$$Claims-Set-Claims //= (submods-label => { + text => Submodule })

Submodule = Claims-Set / JSON-Selector

]]></sourcecode></figure>

</section>
</section>
</section>
<section anchor="privacyconsiderations"><name>Privacy Considerations</name>

<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"><name>UEID and SUEID Privacy Considerations</name>

<t>A UEID is usually not privacy-preserving. Relying parties
receiving tokens that happen to be from a particular entity will be
able to know the tokens are  from the same entity and be able to
identify the entity issuing those tokens.</t>

<t>Thus the use of the claim may violate privacy policies. 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 entity obtains explicit permission from the user of the entity
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 entity 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 entity, then
the entity generates a UEID just for that relying party by hashing a
proofed relying party ID with the main entity UEID/SUEID.</t>
</list></t>

<t>Note that some of these privacy preservation strategies result in
multiple UEIDs and SUEIDs per entity. Each UEID/SUEID is used in a
different context, use case or system on the entity. 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"><name>Location Privacy Considerations</name>

<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 entity generating the attestation.
For example, many mobile phones prompt the user for permission before sending location data.</t>

</section>
<section anchor="bootseedprivacyconsiderations"><name>Boot Seed Privacy Considerations</name>

<t>The "bootseed" claim is effectively a stable entity identifier within a given boot epoch.  Therefore, it is not suitable for use in attestation schemes that are privacy-preserving.</t>

</section>
<section anchor="replayprivacyconsiderations"><name>Replay Protection and Privacy</name>

<t>EAT defines the EAT nonce claim for replay protection and token freshness.
The nonce claim is based on a value usually derived remotely (outside of the entity).
This claim might be used to extract and convey personally identifying information either inadvertently or by intention.
For instance, an implementor may choose a nonce equivalent to a username associated with the device (e.g., account login).
If the token is inspected by a 3rd-party then this information could be used to identify the source of the token or an account associated with the token.
To avoid the conveyance of privacy-related information in the nonce claim, it should be derived using a salt that originates from a true and reliable random number generator or any other source of randomness that would still meet the target system requirements for replay protection and token freshness.</t>

</section>
</section>
<section anchor="securitycons"><name>Security Considerations</name>

<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.  Moreover, Chapter 12
of <xref target="RATS.Architecture"/> is also applicable to implementations of EAT.  In addition,
implementors should consider the following.</t>

<section anchor="claim-trustworthiness"><name>Claim Trustworthiness</name>

<t>This specification defines semantics for each claim.
It does not require any particular level of security in the implementation of the claims or even the attester itself.
Such specification is far beyond the scope of this document which is about a message format not the security level of an implementation.</t>

<t>The receiver of an EAT comes to know the trustworthiness of the claims in it by understanding the implementation made by the attester vendor and/or understanding the checks and processing performed by the verifier.</t>

<t>For example, this document says that a UEID is permanent and that it must not change, but it doesn't say what degree of attack to change it must be defended.</t>

<t>The degree of security will vary from use case to use case.
In some cases the receiver may only need to know something of the implementation such as that it was implemented in a TEE.
In other cases the receiver may require the attester be certified by a particular certification program.
Or perhaps the receiver is content with very little security.</t>

</section>
<section anchor="key-provisioning"><name>Key Provisioning</name>

<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 manufacturer 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"><name>Transmission of Key Material</name>

<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="sec-con-freshness"><name>Freshness</name>

<t>All EAT use <bcp14>MUST</bcp14> provide a freshness mechanism to prevent replay and related attacks.
The extensive discussions on freshness in <xref target="RATS.Architecture"/> including security considerations apply here.
The EAT nonce claim, in <xref target="nonce"/>, is one option to provide freshness.</t>

</section>
<section anchor="multiple-eat-consumers"><name>Multiple EAT Consumers</name>

<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 <bcp14>MUST</bcp14> leverage an equivalent communication security protocol
(e.g. Transport Layer Security).</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 the nested EAT is itself encrypted and cryptographically verifiable (due to its
COSE envelope)
by a downstream consumer (unlike the previous example where a claims set
without a COSE envelope is sent to a downstream consumer).  Therefore, Transport Layer 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 anchor="detached-eat-bundle-digest-security-considerations"><name>Detached EAT Bundle Digest Security Considerations</name>

<t>A detached EAT bundle is composed of a nested EAT and
an unsigned claims set as per <xref target="DEB"/> .  Although the attached claims set is vulnerable to
modification in transit, any modification can be detected by the receiver through the associated
digest, which is a claim fully contained within an EAT.  Moreover, the digest itself can only be derived using
an appropriate COSE hash algorithm, implying that an attacker cannot induce false detection
of a modified detached claims because the algorithms in the COSE registry are assumed to be
of sufficient cryptographic strength.</t>

</section>
<section anchor="verfication-key-sc"><name>Verification Keys</name>

<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="iana-cons"><name>IANA Considerations</name>

<section anchor="reuse-of-cbor-and-json-web-token-cwt-and-jwt-claims-registries"><name>Reuse of CBOR and JSON Web Token (CWT and JWT) Claims Registries</name>

<t>Claims defined for EAT are compatible with those of CWT and JWT
so the CWT and JWT Claims Registries, <xref target="IANA.CWT.Claims"/> and <xref target="IANA.JWT.Claims"/>, are re-used. No new IANA registry
is created.</t>

<t>All EAT claims defined in this document are placed in both registries.
All new EAT claims defined subsequently should be placed in both registries.</t>

<t><xref target="Claim_Characteristics"/> describes some considerations when defining new claims.</t>

</section>
<section anchor="cwt-and-jwt-claims-registered-by-this-document"><name>CWT and JWT Claims Registered by This Document</name>

<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.</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>

<t>IANA is requested to register the following claims.</t>

<t><cref anchor="remove">RFC editor: please remove this paragraph.</cref></t>

<t>RFC Editor: Please make the following adjustments and remove this paragraph.
Replace "<strong>this document</strong>" with this RFC number.
In the following, the claims with "Claim Key: TBD" need to be assigned a value in the Specification Required Range, preferably starting around 267.
Those below already with a Claim Key number were given early assignment.
No change is requested for them except for Claim Key 262.
Claim 262 should be renamed from "secboot" to "oemboot" in the JWT registry and its description changed in both the CWT and JWT registries.</t>

<t><list style="symbols">
  <t>Claim Name: Nonce</t>
  <t>Claim Description: Nonce</t>
  <t>JWT Claim Name: "eat_nonce"</t>
  <t>Claim Key: 10</t>
  <t>Claim Value Type(s): byte string</t>
  <t>Change Controller: IESG</t>
  <t>Specification Document(s): <strong>this document</strong></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: 256</t>
  <t>Claim Value Type(s): byte string</t>
  <t>Change Controller: IESG</t>
  <t>Specification Document(s): <strong>this document</strong></t>
</list></t>

<t> </t>

<t><list style="symbols">
  <t>Claim Name: SUEIDs</t>
  <t>Claim Description: Semi-permanent UEIDs</t>
  <t>JWT Claim Name: "sueids"</t>
  <t>CWT Claim Key: 257</t>
  <t>Claim Value Type(s): map</t>
  <t>Change Controller: IESG</t>
  <t>Specification Document(s): <strong>this document</strong></t>
</list></t>

<t> </t>

<t><list style="symbols">
  <t>Claim Name: Hardware OEMID</t>
  <t>Claim Description: Hardware OEM ID</t>
  <t>JWT Claim Name: "oemid"</t>
  <t>Claim Key: 258</t>
  <t>Claim Value Type(s): byte string or integer</t>
  <t>Change Controller: IESG</t>
  <t>Specification Document(s): <strong>this document</strong></t>
</list></t>

<t> </t>

<t><list style="symbols">
  <t>Claim Name: Hardware Model</t>
  <t>Claim Description: Model identifier for hardware</t>
  <t>JWT Claim Name: "hwmodel"</t>
  <t>Claim Key: 259</t>
  <t>Claim Value Type(s): byte string</t>
  <t>Change Controller: IESG</t>
  <t>Specification Document(s): <strong>this document</strong></t>
</list></t>

<t> </t>

<t><list style="symbols">
  <t>Claim Name: Hardware Version</t>
  <t>Claim Description: Hardware Version Identifier</t>
  <t>JWT Claim Name: "hwversion"</t>
  <t>Claim Key: TBD 260</t>
  <t>Claim Value Type(s): array</t>
  <t>Change Controller: IESG</t>
  <t>Specification Document(s): <strong>this document</strong></t>
</list></t>

<t> </t>

<t><list style="symbols">
  <t>Claim Name: OEM Authortised Boot</t>
  <t>Claim Description: Indicate whether the software booted was OEM authorized</t>
  <t>JWT Claim Name: "oemboot"</t>
  <t>Claim Key: 262</t>
  <t>Claim Value Type(s): Boolean</t>
  <t>Change Controller: IESG</t>
  <t>Specification Document(s): <strong>this document</strong></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: 263</t>
  <t>Claim Value Type(s): integer or string</t>
  <t>Change Controller: IESG</t>
  <t>Specification Document(s): <strong>this document</strong></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: 264</t>
  <t>Claim Value Type(s): map</t>
  <t>Change Controller: IESG</t>
  <t>Specification Document(s): <strong>this document</strong></t>
</list></t>

<t> </t>

<t><list style="symbols">
  <t>Claim Name: EAT Profile</t>
  <t>Claim Description: Indicates the EAT profile followed</t>
  <t>JWT Claim Name: "eat_profile"</t>
  <t>Claim Key: 265</t>
  <t>Claim Value Type(s): URI or OID</t>
  <t>Change Controller: IESG</t>
  <t>Specification Document(s): <strong>this document</strong></t>
</list></t>

<t> </t>

<t><list style="symbols">
  <t>Claim Name: Submodules Section</t>
  <t>Claim Description: The section containing submodules</t>
  <t>JWT Claim Name: "submods"</t>
  <t>Claim Key: 266</t>
  <t>Claim Value Type(s): map</t>
  <t>Change Controller: IESG</t>
  <t>Specification Document(s): <strong>this document</strong></t>
</list></t>

<t> </t>

<t><list style="symbols">
  <t>Claim Name: Uptime</t>
  <t>Claim Description: Uptime</t>
  <t>JWT Claim Name: "uptime"</t>
  <t>Claim Key: TBD</t>
  <t>Claim Value Type(s): unsigned integer</t>
  <t>Change Controller: IESG</t>
  <t>Specification Document(s): <strong>this document</strong></t>
</list></t>

<t> </t>

<t><list style="symbols">
  <t>Claim Name: Boot Count</t>
  <t>Claim Description: The number times the entity or submodule has been booted</t>
  <t>JWT Claim Name: "bootcount"</t>
  <t>Claim Key: TBD</t>
  <t>Claim Value Type(s): uint</t>
  <t>Change Controller: IESG</t>
  <t>Specification Document(s): <strong>this document</strong></t>
</list></t>

<t> </t>

<t><list style="symbols">
  <t>Claim Name: Boot Seed</t>
  <t>Claim Description: Identifies a boot cycle</t>
  <t>JWT Claim Name: "bootseed"</t>
  <t>Claim Key: TBD</t>
  <t>Claim Value Type(s): bytes</t>
  <t>Change Controller: IESG</t>
  <t>Specification Document(s): <strong>this document</strong></t>
</list></t>

<t> </t>

<t><list style="symbols">
  <t>Claim Name: DLOAs</t>
  <t>Claim Description: Certifications received as Digital Letters of Approval</t>
  <t>JWT Claim Name: "dloas"</t>
  <t>Claim Key: TBD</t>
  <t>Claim Value Type(s): array</t>
  <t>Change Controller: IESG</t>
  <t>Specification Document(s): <strong>this document</strong></t>
</list></t>

<t> </t>

<t><list style="symbols">
  <t>Claim Name: Software Name</t>
  <t>Claim Description: The name of the software running in the entity</t>
  <t>JWT Claim Name: "swname"</t>
  <t>Claim Key: TBD</t>
  <t>Claim Value Type(s): map</t>
  <t>Change Controller: IESG</t>
  <t>Specification Document(s): <strong>this document</strong></t>
</list></t>

<t> </t>

<t><list style="symbols">
  <t>Claim Name: Software Version</t>
  <t>Claim Description: The version of software running in the entity</t>
  <t>JWT Claim Name: "swversion"</t>
  <t>Claim Key: TBD</t>
  <t>Claim Value Type(s): map</t>
  <t>Change Controller: IESG</t>
  <t>Specification Document(s): <strong>this document</strong></t>
</list></t>

<t> </t>

<t><list style="symbols">
  <t>Claim Name: Software Manifests</t>
  <t>Claim Description: Manifests describing the software installed on the entity</t>
  <t>JWT Claim Name: "manifests"</t>
  <t>Claim Key: TBD</t>
  <t>Claim Value Type(s): array</t>
  <t>Change Controller: IESG</t>
  <t>Specification Document(s): <strong>this document</strong></t>
</list></t>

<t> </t>

<t><list style="symbols">
  <t>Claim Name: Measurements</t>
  <t>Claim Description: Measurements of the software, memory configuration and such on the entity</t>
  <t>JWT Claim Name: "measurements"</t>
  <t>Claim Key: TBD</t>
  <t>Claim Value Type(s): array</t>
  <t>Change Controller: IESG</t>
  <t>Specification Document(s): <strong>this document</strong></t>
</list></t>

<t> </t>

<t><list style="symbols">
  <t>Claim Name: Software Measurement Results</t>
  <t>Claim Description: The results of comparing software measurements to reference values</t>
  <t>JWT Claim Name: "measres"</t>
  <t>Claim Key: TBD</t>
  <t>Claim Value Type(s): array</t>
  <t>Change Controller: IESG</t>
  <t>Specification Document(s): <strong>this document</strong></t>
</list></t>

<t> </t>

<t><list style="symbols">
  <t>Claim Name: Intended Use</t>
  <t>Claim Description: Indicates intended use of the EAT</t>
  <t>JWT Claim Name: "intuse"</t>
  <t>Claim Key: TBD</t>
  <t>Claim Value Type(s): integer or string</t>
  <t>Change Controller: IESG</t>
  <t>Specification Document(s): <strong>this document</strong></t>
</list></t>

</section>
<section anchor="registerueidurn"><name>UEID URN Registered by this Document</name>

<t>IANA is requested to register the following new subtypes in the "DEV URN Subtypes" registry under "Device Identification". See <xref target="RFC9039"/>.</t>

<texttable>
      <ttcol align='left'>Subtype</ttcol>
      <ttcol align='left'>Description</ttcol>
      <ttcol align='left'>Reference</ttcol>
      <c>ueid</c>
      <c>Universal Entity Identifier</c>
      <c>This document</c>
      <c>sueid</c>
      <c>Semi-permanent Universal Entity Identifier</c>
      <c>This document</c>
</texttable>

</section>
<section anchor="cbor-tag-for-detached-eat-bundle-registered-by-this-document"><name>CBOR Tag for Detached EAT Bundle Registered by this Document</name>

<t>In the registry <xref target="IANA.cbor-tags"/>, IANA is requested to allocate the
following tag from the  FCFS space, with the present document as the
specification reference.</t>

<texttable>
      <ttcol align='left'>Tag</ttcol>
      <ttcol align='left'>Data Items</ttcol>
      <ttcol align='left'>Semantics</ttcol>
      <c>TBD602</c>
      <c>array</c>
      <c>Detached EAT Bundle <xref target="DEB"/></c>
</texttable>

</section>
</section>


  </middle>

  <back>


    <references title='Normative References'>



<reference anchor='RFC7515' target='https://www.rfc-editor.org/info/rfc7515'>
  <front>
    <title>JSON Web Signature (JWS)</title>
    <author fullname='M. Jones' initials='M.' surname='Jones'/>
    <author fullname='J. Bradley' initials='J.' surname='Bradley'/>
    <author fullname='N. Sakimura' initials='N.' surname='Sakimura'/>
    <date month='May' year='2015'/>
    <abstract>
      <t>JSON Web 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 fullname='C. Bormann' initials='C.' surname='Bormann'/>
    <author fullname='P. Hoffman' initials='P.' surname='Hoffman'/>
    <date month='December' year='2020'/>
    <abstract>
      <t>The Concise Binary Object Representation (CBOR) is a data format whose design goals include the possibility of extremely small code size, fairly small message size, and extensibility without the need for version negotiation. These design goals make it different from earlier binary serializations such as ASN.1 and MessagePack.</t>
      <t>This document obsoletes RFC 7049, providing editorial improvements, new details, and errata fixes while keeping full compatibility with the interchange format of RFC 7049. It does not create a new version of the format.</t>
    </abstract>
  </front>
  <seriesInfo name='STD' value='94'/>
  <seriesInfo name='RFC' value='8949'/>
  <seriesInfo name='DOI' value='10.17487/RFC8949'/>
</reference>

<reference anchor='RFC7252' target='https://www.rfc-editor.org/info/rfc7252'>
  <front>
    <title>The Constrained Application Protocol (CoAP)</title>
    <author fullname='Z. Shelby' initials='Z.' surname='Shelby'/>
    <author fullname='K. Hartke' initials='K.' surname='Hartke'/>
    <author fullname='C. Bormann' initials='C.' surname='Bormann'/>
    <date month='June' year='2014'/>
    <abstract>
      <t>The Constrained Application Protocol (CoAP) is a specialized web transfer protocol for use with constrained nodes and constrained (e.g., low-power, lossy) networks. The nodes often have 8-bit microcontrollers with small amounts of ROM and RAM, while constrained networks such as IPv6 over Low-Power Wireless Personal Area Networks (6LoWPANs) often have high packet error rates and a typical throughput of 10s of kbit/s. The protocol is designed for machine- to-machine (M2M) applications such as smart energy and building automation.</t>
      <t>CoAP provides a request/response interaction model between application endpoints, supports built-in discovery of services and resources, and includes key concepts of the Web such as URIs and Internet media types. CoAP is designed to easily interface with HTTP for integration with the Web while meeting specialized requirements such as multicast support, very low overhead, and simplicity for constrained environments.</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='7252'/>
  <seriesInfo name='DOI' value='10.17487/RFC7252'/>
</reference>

<reference anchor='RFC7519' target='https://www.rfc-editor.org/info/rfc7519'>
  <front>
    <title>JSON Web Token (JWT)</title>
    <author fullname='M. Jones' initials='M.' surname='Jones'/>
    <author fullname='J. Bradley' initials='J.' surname='Bradley'/>
    <author fullname='N. Sakimura' initials='N.' surname='Sakimura'/>
    <date month='May' year='2015'/>
    <abstract>
      <t>JSON Web Token (JWT) is a compact, URL-safe means of representing claims to be transferred between two parties.  The claims in a JWT are encoded as a JSON object that is used as the payload of a JSON Web Signature (JWS) structure or as the plaintext of a JSON Web Encryption (JWE) structure, enabling the claims to be digitally signed or integrity protected with a Message Authentication Code (MAC) and/or encrypted.</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='7519'/>
  <seriesInfo name='DOI' value='10.17487/RFC7519'/>
</reference>

<reference anchor='RFC8259' target='https://www.rfc-editor.org/info/rfc8259'>
  <front>
    <title>The JavaScript Object Notation (JSON) Data Interchange Format</title>
    <author fullname='T. Bray' initials='T.' role='editor' surname='Bray'/>
    <date month='December' year='2017'/>
    <abstract>
      <t>JavaScript Object Notation (JSON) is a lightweight, text-based, language-independent data interchange format. It was derived from the ECMAScript Programming Language Standard. JSON defines a small set of formatting rules for the portable representation of structured data.</t>
      <t>This document removes inconsistencies with other specifications of JSON, repairs specification errors, and offers experience-based interoperability guidance.</t>
    </abstract>
  </front>
  <seriesInfo name='STD' value='90'/>
  <seriesInfo name='RFC' value='8259'/>
  <seriesInfo name='DOI' value='10.17487/RFC8259'/>
</reference>

<reference anchor='RFC8392' target='https://www.rfc-editor.org/info/rfc8392'>
  <front>
    <title>CBOR Web Token (CWT)</title>
    <author fullname='M. Jones' initials='M.' surname='Jones'/>
    <author fullname='E. Wahlstroem' initials='E.' surname='Wahlstroem'/>
    <author fullname='S. Erdtman' initials='S.' surname='Erdtman'/>
    <author fullname='H. Tschofenig' initials='H.' surname='Tschofenig'/>
    <date month='May' year='2018'/>
    <abstract>
      <t>CBOR Web Token (CWT) is a compact means of representing claims to be transferred between two parties.  The claims in a CWT are encoded in the Concise Binary Object Representation (CBOR), and CBOR Object Signing and Encryption (COSE) is used for added application-layer security protection.  A claim is a piece of information asserted about a subject and is represented as a name/value pair consisting of a claim name and a claim value.  CWT is derived from JSON Web Token (JWT) but uses CBOR rather than JSON.</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='8392'/>
  <seriesInfo name='DOI' value='10.17487/RFC8392'/>
</reference>

<reference anchor='RFC8610' 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 fullname='H. Birkholz' initials='H.' surname='Birkholz'/>
    <author fullname='C. Vigano' initials='C.' surname='Vigano'/>
    <author fullname='C. Bormann' initials='C.' surname='Bormann'/>
    <date month='June' year='2019'/>
    <abstract>
      <t>This document proposes a notational convention to express Concise Binary Object Representation (CBOR) data structures (RFC 7049).  Its main goal is to provide an easy and unambiguous way to express structures for protocol messages and data formats that use CBOR or JSON.</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='8610'/>
  <seriesInfo name='DOI' value='10.17487/RFC8610'/>
</reference>

<reference anchor='RFC8792' target='https://www.rfc-editor.org/info/rfc8792'>
  <front>
    <title>Handling Long Lines in Content of Internet-Drafts and RFCs</title>
    <author fullname='K. Watsen' initials='K.' surname='Watsen'/>
    <author fullname='E. Auerswald' initials='E.' surname='Auerswald'/>
    <author fullname='A. Farrel' initials='A.' surname='Farrel'/>
    <author fullname='Q. Wu' initials='Q.' surname='Wu'/>
    <date month='June' year='2020'/>
    <abstract>
      <t>This document defines two strategies for handling long lines in width-bounded text content.  One strategy, called the "single backslash" strategy, is based on the historical use of a single backslash ('\') character to indicate where line-folding has occurred, with the continuation occurring with the first character that is not a space character (' ') on the next line.  The second strategy, called the "double backslash" strategy, extends the first strategy by adding a second backslash character to identify where the continuation begins and is thereby able to handle cases not supported by the first strategy.  Both strategies use a self-describing header enabling automated reconstitution of the original content.</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='8792'/>
  <seriesInfo name='DOI' value='10.17487/RFC8792'/>
</reference>

<reference anchor='RFC3986' target='https://www.rfc-editor.org/info/rfc3986'>
  <front>
    <title>Uniform Resource Identifier (URI): Generic Syntax</title>
    <author fullname='T. Berners-Lee' initials='T.' surname='Berners-Lee'/>
    <author fullname='R. Fielding' initials='R.' surname='Fielding'/>
    <author fullname='L. Masinter' initials='L.' surname='Masinter'/>
    <date month='January' year='2005'/>
    <abstract>
      <t>A Uniform Resource Identifier (URI) is a compact sequence of characters that identifies an abstract or physical resource.  This specification defines the generic URI syntax and a process for resolving URI references that might be in relative form, along with guidelines and security considerations for the use of URIs on the Internet.  The URI syntax defines a grammar that is a superset of all valid URIs, allowing an implementation to parse the common components of a URI reference without knowing the scheme-specific requirements of every possible identifier.  This specification does not define a generative grammar for URIs; that task is performed by the individual specifications of each URI scheme. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name='STD' value='66'/>
  <seriesInfo name='RFC' value='3986'/>
  <seriesInfo name='DOI' value='10.17487/RFC3986'/>
</reference>

<reference anchor='RFC9052' target='https://www.rfc-editor.org/info/rfc9052'>
  <front>
    <title>CBOR Object Signing and Encryption (COSE): Structures and Process</title>
    <author fullname='J. Schaad' initials='J.' surname='Schaad'/>
    <date month='August' year='2022'/>
    <abstract>
      <t>Concise Binary Object Representation (CBOR) is a data format designed for small code size and small message size. There is a need to be able to define basic security services for this data format. This document defines the CBOR Object Signing and Encryption (COSE) protocol. This specification describes how to create and process signatures, message authentication codes, and encryption using CBOR for serialization. This specification additionally describes how to represent cryptographic keys using CBOR.</t>
      <t>This document, along with RFC 9053, obsoletes RFC 8152.</t>
    </abstract>
  </front>
  <seriesInfo name='STD' value='96'/>
  <seriesInfo name='RFC' value='9052'/>
  <seriesInfo name='DOI' value='10.17487/RFC9052'/>
</reference>

<reference anchor='RFC9090' target='https://www.rfc-editor.org/info/rfc9090'>
  <front>
    <title>Concise Binary Object Representation (CBOR) Tags for Object Identifiers</title>
    <author fullname='C. Bormann' initials='C.' surname='Bormann'/>
    <date month='July' year='2021'/>
    <abstract>
      <t>The Concise Binary Object Representation (CBOR), defined in 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.</t>
      <t>This document defines CBOR tags for object identifiers (OIDs) and is the reference document for the IANA registration of the CBOR tags so defined.</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='9090'/>
  <seriesInfo name='DOI' value='10.17487/RFC9090'/>
</reference>

<reference anchor='RFC9165' target='https://www.rfc-editor.org/info/rfc9165'>
  <front>
    <title>Additional Control Operators for the Concise Data Definition Language (CDDL)</title>
    <author fullname='C. Bormann' initials='C.' surname='Bormann'/>
    <date month='December' year='2021'/>
    <abstract>
      <t>The Concise Data Definition Language (CDDL), standardized in RFC 8610, provides "control operators" as its main language extension point.</t>
      <t>The present document defines a number of control operators that were not yet ready at the time RFC 8610 was completed:,, and for the construction of constants; / for including ABNF (RFC 5234 and RFC 7405) in CDDL specifications; and for indicating the use of a non-basic feature in an instance.</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='9165'/>
  <seriesInfo name='DOI' value='10.17487/RFC9165'/>
</reference>

<reference anchor='RFC4648' target='https://www.rfc-editor.org/info/rfc4648'>
  <front>
    <title>The Base16, Base32, and Base64 Data Encodings</title>
    <author fullname='S. Josefsson' initials='S.' surname='Josefsson'/>
    <date month='October' year='2006'/>
    <abstract>
      <t>This document describes the commonly used base 64, base 32, and base 16 encoding schemes.  It also discusses the use of line-feeds in encoded data, use of padding in encoded data, use of non-alphabet characters in encoded data, use of different encoding alphabets, and canonical encodings. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='4648'/>
  <seriesInfo name='DOI' value='10.17487/RFC4648'/>
</reference>

<reference anchor='RFC2252' target='https://www.rfc-editor.org/info/rfc2252'>
  <front>
    <title>Lightweight Directory Access Protocol (v3): Attribute Syntax Definitions</title>
    <author fullname='M. Wahl' initials='M.' surname='Wahl'/>
    <author fullname='A. Coulbeck' initials='A.' surname='Coulbeck'/>
    <author fullname='T. Howes' initials='T.' surname='Howes'/>
    <author fullname='S. Kille' initials='S.' surname='Kille'/>
    <date month='December' year='1997'/>
    <abstract>
      <t>This document defines a set of syntaxes for LDAPv3, and the rules by which attribute values of these syntaxes are represented as octet strings for transmission in the LDAP protocol. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='2252'/>
  <seriesInfo name='DOI' value='10.17487/RFC2252'/>
</reference>


<reference anchor="WGS84" target="https://earth-info.nga.mil/php/download.php?file=coord-wgs84">
  <front>
    <title>WORLD GEODETIC SYSTEM 1984, NGA.STND.0036_1.0.0_WGS84</title>
    <author >
      <organization>National Geospatial-Intelligence Agency (NGA)</organization>
    </author>
    <date year="2014" month="July" day="08"/>
  </front>
</reference>


<reference anchor='IANA.CWT.Claims' target='https://www.iana.org/assignments/cwt'>
  <front>
    <title>CBOR Web Token (CWT) Claims</title>
    <author>
      <organization>IANA</organization>
    </author>
  </front>
</reference>

<reference anchor='IANA.JWT.Claims' target='https://www.iana.org/assignments/jwt'>
  <front>
    <title>JSON Web Token (JWT)</title>
    <author>
      <organization>IANA</organization>
    </author>
  </front>
</reference>

<reference anchor='IANA.COSE.Algorithms' target='https://www.iana.org/assignments/cose'>
  <front>
    <title>CBOR Object Signing and Encryption (COSE)</title>
    <author>
      <organization>IANA</organization>
    </author>
  </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='CoSWID' target='https://datatracker.ietf.org/doc/html/draft-ietf-sacm-coswid-24'>
   <front>
      <title>Concise Software Identification Tags</title>
      <author fullname='Henk Birkholz' initials='H.' surname='Birkholz'>
         <organization>Fraunhofer SIT</organization>
      </author>
      <author fullname='Jessica Fitzgerald-McKay' initials='J.' surname='Fitzgerald-McKay'>
         <organization>National Security Agency</organization>
      </author>
      <author fullname='Charles Schmidt' initials='C.' surname='Schmidt'>
         <organization>The MITRE Corporation</organization>
      </author>
      <author fullname='David Waltermire' initials='D.' surname='Waltermire'>
         <organization>National Institute of Standards and Technology</organization>
      </author>
      <date day='24' month='February' year='2023'/>
      <abstract>
	 <t>ISO/IEC 19770-2:2015 Software Identification (SWID) tags provide an extensible XML-based structure to identify and describe individual software components, patches, and installation bundles.  SWID tag representations can be too large for devices with network and storage constraints.  This document defines a concise representation of SWID tags: Concise SWID (CoSWID) tags.  CoSWID supports a set of semantics and features that are similar to those for SWID tags, as well as new semantics that allow CoSWIDs to describe additional types of information, all in a more memory-efficient format.
	 </t>
      </abstract>
   </front>
   <seriesInfo name='Internet-Draft' value='draft-ietf-sacm-coswid-24'/>
   
</reference>


<reference anchor="DLOA" target="https://globalplatform.org/wp-content/uploads/2015/12/GPC_DigitalLetterOfApproval_v1.0.pdf">
  <front>
    <title>Digital Letter of Approval</title>
    <author >
      <organization></organization>
    </author>
    <date year="2015" month="November"/>
  </front>
</reference>
<reference anchor="PEN" target="https://pen.iana.org/pen/PenApplication.page">
  <front>
    <title>Private Enterprise Number (PEN) Request</title>
    <author >
      <organization></organization>
    </author>
    <date year="n.d."/>
  </front>
</reference>


<reference anchor='IANA.cbor-tags' target='https://www.iana.org/assignments/cbor-tags'>
  <front>
    <title>Concise Binary Object Representation (CBOR) Tags</title>
    <author>
      <organization>IANA</organization>
    </author>
  </front>
</reference>


<reference anchor='SUIT.Manifest' target='https://datatracker.ietf.org/doc/html/draft-ietf-suit-manifest-22'>
   <front>
      <title>A Concise Binary Object Representation (CBOR)-based Serialization Format for the Software Updates for Internet of Things (SUIT) Manifest</title>
      <author fullname='Brendan Moran' initials='B.' surname='Moran'>
         <organization>Arm Limited</organization>
      </author>
      <author fullname='Hannes Tschofenig' initials='H.' surname='Tschofenig'>
         <organization>Arm Limited</organization>
      </author>
      <author fullname='Henk Birkholz' initials='H.' surname='Birkholz'>
         <organization>Fraunhofer SIT</organization>
      </author>
      <author fullname='Koen Zandberg' initials='K.' surname='Zandberg'>
         <organization>Inria</organization>
      </author>
      <author fullname='Øyvind Rønningstad' initials='O.' surname='Rønningstad'>
         <organization>Nordic Semiconductor</organization>
      </author>
      <date day='27' month='February' year='2023'/>
      <abstract>
	 <t>   This specification describes the format of a manifest.  A manifest is
   a bundle of metadata about code/data obtained by a recipient (chiefly
   the firmware for an IoT device), where to find the that code/data,
   the devices to which it applies, and cryptographic information
   protecting the manifest.  Software updates and Trusted Invocation
   both tend to use sequences of common operations, so the manifest
   encodes those sequences of operations, rather than declaring the
   metadata.

	 </t>
      </abstract>
   </front>
   <seriesInfo name='Internet-Draft' value='draft-ietf-suit-manifest-22'/>
   
</reference>

<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 fullname='S. Bradner' initials='S.' surname='Bradner'/>
    <date month='March' year='1997'/>
    <abstract>
      <t>In many standards track documents several words are used to signify the requirements in the specification.  These words are often capitalized.  This document defines these words as they should be interpreted in IETF documents.  This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
    </abstract>
  </front>
  <seriesInfo name='BCP' value='14'/>
  <seriesInfo name='RFC' value='2119'/>
  <seriesInfo name='DOI' value='10.17487/RFC2119'/>
</reference>

<reference anchor='RFC8174' target='https://www.rfc-editor.org/info/rfc8174'>
  <front>
    <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
    <author fullname='B. Leiba' initials='B.' surname='Leiba'/>
    <date month='May' year='2017'/>
    <abstract>
      <t>RFC 2119 specifies common key words that may be used in protocol specifications.  This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
    </abstract>
  </front>
  <seriesInfo name='BCP' value='14'/>
  <seriesInfo name='RFC' value='8174'/>
  <seriesInfo name='DOI' value='10.17487/RFC8174'/>
</reference>




    </references>

    <references 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 fullname='P. Leach' initials='P.' surname='Leach'/>
    <author fullname='M. Mealling' initials='M.' surname='Mealling'/>
    <author fullname='R. Salz' initials='R.' surname='Salz'/>
    <date month='July' year='2005'/>
    <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 fullname='R. Shirey' initials='R.' surname='Shirey'/>
    <date month='August' year='2007'/>
    <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 fullname='M. Cotton' initials='M.' surname='Cotton'/>
    <date month='January' year='2014'/>
    <abstract>
      <t>This memo describes the process for early allocation of code points by IANA from registries for which "Specification Required", "RFC Required", "IETF Review", or "Standards Action" 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='RFC9039' target='https://www.rfc-editor.org/info/rfc9039'>
  <front>
    <title>Uniform Resource Names for Device Identifiers</title>
    <author fullname='J. Arkko' initials='J.' surname='Arkko'/>
    <author fullname='C. Jennings' initials='C.' surname='Jennings'/>
    <author fullname='Z. Shelby' initials='Z.' surname='Shelby'/>
    <date month='June' year='2021'/>
    <abstract>
      <t>This document describes a new Uniform Resource Name (URN) namespace for hardware device identifiers.  A general representation of device identity can be useful in many applications, such as in sensor data streams and storage or in equipment inventories.  A URN-based representation can be passed along in applications that need the information.</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='9039'/>
  <seriesInfo name='DOI' value='10.17487/RFC9039'/>
</reference>


<reference anchor='RATS.Architecture' target='https://datatracker.ietf.org/doc/html/draft-ietf-rats-architecture-22'>
   <front>
      <title>Remote ATtestation procedureS (RATS) Architecture</title>
      <author fullname='Henk Birkholz' initials='H.' surname='Birkholz'>
         <organization>Fraunhofer SIT</organization>
      </author>
      <author fullname='Dave Thaler' initials='D.' surname='Thaler'>
         <organization>Microsoft</organization>
      </author>
      <author fullname='Michael Richardson' initials='M.' surname='Richardson'>
         <organization>Sandelman Software Works</organization>
      </author>
      <author fullname='Ned Smith' initials='N.' surname='Smith'>
         <organization>Intel Corporation</organization>
      </author>
      <author fullname='Wei Pan' initials='W.' surname='Pan'>
         <organization>Huawei Technologies</organization>
      </author>
      <date day='28' month='September' year='2022'/>
      <abstract>
	 <t>In network protocol exchanges, it is often useful for one end of a communication to know whether the other end is in an intended operating state.  This document provides an architectural overview of the entities involved that make such tests possible through the process of generating, conveying, and evaluating evidentiary Claims.  It provides a model that is neutral toward processor architectures, the content of Claims, and protocols.
	 </t>
      </abstract>
   </front>
   <seriesInfo name='Internet-Draft' value='draft-ietf-rats-architecture-22'/>
   
</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'>
  <front>
    <title>IEEE Standard for Local and Metropolitan Area Networks - Secure Device Identity</title>
    <author>
      <organization/>
    </author>
    <date month='July' year='2018'/>
  </front>
  <seriesInfo name='IEEE' value='standard'/>
  <seriesInfo name='DOI' value='10.1109/ieeestd.2018.8423794'/>
</reference>

<reference anchor='W3C.GeoLoc' target='https://www.w3.org/TR/2013/REC-geolocation-API-20131024/'>
  <front>
    <title>Geolocation API Specification</title>
    <author fullname='Andrei Popescu' role='editor'/>
    <date day='24' month='October' year='2013'/>
  </front>
  <seriesInfo name='W3C REC' value='REC-geolocation-API-20131024'/>
  <seriesInfo name='W3C' value='REC-geolocation-API-20131024'/>
</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'>
  <front>
    <title>IEEE Standard for Local and Metropolitan Area Networks: Overview and Architecture</title>
    <author>
      <organization/>
    </author>
    <date month='July' year='2014'/>
  </front>
  <seriesInfo name='IEEE' value='standard'/>
  <seriesInfo name='DOI' value='10.1109/ieeestd.2014.6847097'/>
</reference>


<reference anchor='COSE.X509.Draft' target='https://datatracker.ietf.org/doc/html/draft-ietf-cose-x509-09'>
   <front>
      <title>CBOR Object Signing and Encryption (COSE): Header Parameters for Carrying and Referencing X.509 Certificates</title>
      <author fullname='Jim Schaad' initials='J.' surname='Schaad'>
         <organization>August Cellars</organization>
      </author>
      <date day='13' month='October' year='2022'/>
      <abstract>
	 <t>The CBOR Object Signing and Encryption (COSE) message structure uses references to keys in general.  For some algorithms, additional properties are defined that carry parameters relating to keys as needed.  The COSE Key structure is used for transporting keys outside of COSE messages.  This document extends the way that keys can be identified and transported by providing attributes that refer to or contain X.509 certificates.
	 </t>
      </abstract>
   </front>
   <seriesInfo name='Internet-Draft' value='draft-ietf-cose-x509-09'/>
   
</reference>


<reference anchor='CBOR.Cert.Draft' target='https://datatracker.ietf.org/doc/html/draft-ietf-cose-cbor-encoded-cert-05'>
   <front>
      <title>CBOR Encoded X.509 Certificates (C509 Certificates)</title>
      <author fullname='John Preuß Mattsson' initials='J. P.' surname='Mattsson'>
         <organization>Ericsson AB</organization>
      </author>
      <author fullname='Göran Selander' initials='G.' surname='Selander'>
         <organization>Ericsson AB</organization>
      </author>
      <author fullname='Shahid Raza' initials='S.' surname='Raza'>
         <organization>RISE AB</organization>
      </author>
      <author fullname='Joel Höglund' initials='J.' surname='Höglund'>
         <organization>RISE AB</organization>
      </author>
      <author fullname='Martin Furuhed' initials='M.' surname='Furuhed'>
         <organization>Nexus Group</organization>
      </author>
      <date day='10' month='January' year='2023'/>
      <abstract>
	 <t>   This document specifies a CBOR encoding of X.509 certificates.  The
   resulting certificates are called C509 Certificates.  The CBOR
   encoding supports a large subset of RFC 5280 and all certificates
   compatible with the RFC 7925, IEEE 802.1AR (DevID), CNSA, RPKI, GSMA
   eUICC, and CA/Browser Forum Baseline Requirements profiles.  When
   used to re-encode DER encoded X.509 certificates, the CBOR encoding
   can in many cases reduce the size of RFC 7925 profiled certificates
   with over 50%.  The CBOR encoded structure can alternatively be
   signed directly (&quot;natively signed&quot;), which does not require re-
   encoding for the signature to be verified.  The document also
   specifies C509 COSE headers, a C509 TLS certificate type, and a C509
   file format.

	 </t>
      </abstract>
   </front>
   <seriesInfo name='Internet-Draft' value='draft-ietf-cose-cbor-encoded-cert-05'/>
   
</reference>


<reference anchor='UCCS' target='https://datatracker.ietf.org/doc/html/draft-ietf-rats-uccs-05'>
   <front>
      <title>A CBOR Tag for Unprotected CWT Claims Sets</title>
      <author fullname='Henk Birkholz' initials='H.' surname='Birkholz'>
         <organization>Fraunhofer SIT</organization>
      </author>
      <author fullname='Jeremy O&#x27;Donoghue' initials='J.' surname='O&#x27;Donoghue'>
         <organization>Qualcomm Technologies Inc.</organization>
      </author>
      <author fullname='Nancy Cam-Winget' initials='N.' surname='Cam-Winget'>
         <organization>Cisco Systems</organization>
      </author>
      <author fullname='Carsten Bormann' initials='C.' surname='Bormann'>
         <organization>Universität Bremen TZI</organization>
      </author>
      <date day='1' month='February' year='2023'/>
      <abstract>
	 <t>   CBOR Web Token (CWT, RFC 8392) Claims Sets sometimes do not need the
   protection afforded by wrapping them into COSE, as is required for a
   true CWT.  This specification defines a CBOR tag for such unprotected
   CWT Claims Sets (UCCS) and discusses conditions for its proper use.

	 </t>
      </abstract>
   </front>
   <seriesInfo name='Internet-Draft' value='draft-ietf-rats-uccs-05'/>
   
</reference>


<reference anchor="JTAG" target="https://ieeexplore.ieee.org/document/5412866">
  <front>
    <title>IEEE Standard for Reduced-Pin and Enhanced-Functionality Test Access Port and Boundary-Scan Architecture</title>
    <author >
      <organization></organization>
    </author>
    <date year="2010" month="February"/>
  </front>
</reference>



<reference anchor='EAT.media-types' target='https://datatracker.ietf.org/doc/html/draft-ietf-rats-eat-media-type-02'>
   <front>
      <title>EAT Media Types</title>
      <author fullname='Laurence Lundblade' initials='L.' surname='Lundblade'>
         <organization>Security Theory LLC</organization>
      </author>
      <author fullname='Henk Birkholz' initials='H.' surname='Birkholz'>
         <organization>Fraunhofer Institute for Secure Information Technology</organization>
      </author>
      <author fullname='Thomas Fossati' initials='T.' surname='Fossati'>
         <organization>arm</organization>
      </author>
      <date day='10' month='March' year='2023'/>
      <abstract>
	 <t>   Payloads used in Remote Attestation Procedures may require an
   associated media type for their conveyance, for example when used in
   RESTful APIs.

   This memo defines media types to be used for Entity Attestation
   Tokens (EAT).

	 </t>
      </abstract>
   </front>
   <seriesInfo name='Internet-Draft' value='draft-ietf-rats-eat-media-type-02'/>
   
</reference>




    </references>


<section anchor="examples"><name>Examples</name>

<t>Most examples are shown as just a Claims-Set that would be a payload for a CWT, JWT, detached EAT bundle or future token types.
The signing is left off so the Claims-Set is easier to see.
Some examples of signed tokens are also given.</t>

<t>WARNING: These examples use tag and label numbers not yet assigned by IANA.</t>

<section anchor="claims-set-examples"><name>Claims Set Examples</name>

<section anchor="simple-tee-attestation"><name>Simple TEE Attestation</name>

<t>This is a simple attestation of a TEE that includes a manifest that is a payload CoSWID to describe the TEE's software.</t>

<figure><artwork><![CDATA[
/ This is an EAT payload that describes a simple TEE. /

{
    / eat_nonce /       10: h'48df7b172d70b5a18935d0460a73dd71',
    / oemboot /        262: true,
    / dbgstat /        263: 2, / disabled-since-boot /
    / manifests /      273: [
                              [
                               121, / CoAP Content ID. A     /
                                    / made up one until one  /
                                    / is assigned for CoSWID /

                               / This is byte-string wrapped      /
                               / payload CoSWID. It gives the TEE /
                               / software name, the version and   /
                               / the  name of the file it is in.  /
                               / {0: "3a24",                      /
                               /  12: 1,                          /
                               /   1: "Acme TEE OS",              /
                               /  13: "3.1.4",                    /
                               /   2: [{31: "Acme TEE OS", 33: 1}, /
                               /       {31: "Acme TEE OS", 33: 2}], /
                               /   6: {                           /
                               /       17: {                      /
                               /           24: "acme_tee_3.exe"   /
                               /       }                          /
                               /    }                             /
                               /  }                               /
                               h' a60064336132340c01016b
                                  41636d6520544545204f530d65332e31
                                  2e340282a2181f6b41636d6520544545
                                  204f53182101a2181f6b41636d652054
                                  4545204f5318210206a111a118186e61
                                  636d655f7465655f332e657865'
                              ]
                            ]
}
]]></artwork></figure>

<figure><artwork><![CDATA[
/ A payload CoSWID created by the SW vendor. All this really does /
/ is name the TEE SW, its version and lists the one file that     /
/ makes up the TEE. /

1398229316({
    / Unique CoSWID ID /    0: "3a24",
    / tag-version /        12: 1,
    / software-name /       1: "Acme TEE OS",
    / software-version /   13: "3.1.4",
    / entity /              2: [
                                   {
        / entity-name /                31: "Acme TEE OS",
        / role        /                33: 1 / tag-creator /
                                   },
                                   {
        / entity-name /                31: "Acme TEE OS",
        / role        /                33: 2 / software-creator /
                                   }
                               ],
    / payload /                6: {
        / ...file /                17: {
            / ...fs-name /             24: "acme_tee_3.exe"
                                   }
                               }
})
]]></artwork></figure>

</section>
<section anchor="submodules-for-board-and-device"><name>Submodules for Board and Device</name>

<figure><artwork><![CDATA[
/ This example shows use of submodules to give information  /
/ about the chip, board and overall device.                 /
/                                                           /
/ The main attestation is associated with the chip with the /
/ CPU and running the main OS. It is what has the keys and  /
/ produces the token.                                       /
/                                                           /
/ The board is made by a different vendor than the chip.    /
/ Perhaps it is some generic IoT board.                     /
/                                                           /
/ The device is some specific appliance that is made by a   /
/ different vendor than either the chip or the board.       /
/                                                           /
/ Here the board and device submodules aren't the typical   /
/ target environments as described by the RATS architecture /
/ document, but they are a valid use of submodules.         /

{
    / eat_nonce /       10: h'e253cabedc9eec24ac4e25bcbeaf7765'
    / ueid /           256: h'0198f50a4ff6c05861c8860d13a638ea',
    / oemid /          258: h'894823', / IEEE OUI format OEM ID /
    / hwmodel /        259: h'549dcecc8b987c737b44e40f7c635ce8'
                              / Hash of chip model name /,
    / hwversion /      260: ["1.3.4", 1], / Multipartnumeric  /
    / swname /         271: "Acme OS",
    / swversion /      272: ["3.5.5", 1],
    / oemboot /        262: true,
    / dbgstat /        263: 3, / permanent-disable  /
    / timestamp (iat) /  6: 1526542894,
    / submods / 266: {
        / A submodule to hold some claims about the circuit board /
        "board" :  {
            / oemid /     258: h'9bef8787eba13e2c8f6e7cb4b1f4619a',
            / hwmodel /   259: h'ee80f5a66c1fb9742999a8fdab930893'
                                  / Hash of board module name /,
            / hwversion / 260: ["2.0a", 2] / multipartnumeric+sfx /
        },

        / A submodule to hold claims about the overall device /
        "device" :  {
            / oemid /     258: 61234, / PEN Format OEM ID / 
            / hwversion / 260: ["4.0", 1] / Multipartnumeric /
        }
    }
}
]]></artwork></figure>

</section>
<section anchor="eat-produced-by-attestation-hardware-block"><name>EAT Produced by Attestation Hardware Block</name>

<figure><artwork><![CDATA[
/ This is an example of a token produced by a HW block            /
/ purpose-built for attestation.  Only the nonce claim changes    /
/ from one attestation to the next as the rest  either come       /
/ directly from the hardware or from one-time-programmable memory /
/ (e.g. a fuse). 47 bytes encoded in CBOR (8 byte nonce, 16 byte  /
/ UEID). /

{
    / eat_nonce /       10: h'd79b964ddd5471c1393c8888',
    / ueid /           256: h'0198f50a4ff6c05861c8860d13a638ea',
    / oemid /          258: 64242, / Private Enterprise Number /
    / oemboot /        262: true,
    / dbgstat /        263: 3, / disabled-permanently /
    / hwversion /      260: [ "3.1", 1 ] / Type is multipartnumeric /
}

]]></artwork></figure>

</section>
<section anchor="key-key-store-attestation"><name>Key / Key Store Attestation</name>

<figure><artwork><![CDATA[
/ This is an attestation of a public key and the key store     /
/ implementation that protects and manages it. The key store   /
/ implementation is in a security-oriented execution           /
/ environment separate from the high-level OS, for example a   /
/ TEE. The key store is the Attester.                          /
/                                                              /
/ There is some attestation of the high-level OS, just version /
/ and boot & debug status. It is a Claims-Set submodule because/
/ it has lower security level than the key store. The key      /
/ store's implementation has access to info about the HLOS, so /
/ it is able to include it.                                    /
/                                                              /
/ A key and an indication of the user authentication given to  /
/ allow access to the key is given. The labels for these are   /
/ in the private space since this is just a hypothetical       /
/ example, not part of a standard protocol.                    /
/                                                              /
/ This is similar to Android Key Attestation.                  /


{
    / eat_nonce /       10: h'99b67438dba40743266f70bf75feb1026d5134
                              97a229bfe8'
    / oemboot /        262: true,
    / dbgstat /        263: 2, / disabled-since-boot /
    / manifests /      273: [
                                [ 121, / CoAP Content ID. A      /
                                       / made up one until one   /
                                       / is assigned for CoSWID  /
                                  h'a600683762623334383766
                                    0c000169436172626f6e6974650d6331
                                    2e320e0102a2181f75496e6475737472
                                    69616c204175746f6d6174696f6e1821
                                    02'
                                 ]
                                 / Above is an encoded CoSWID     /
                                 / with the following data        /
                                 /   SW Name: "Carbonite"         /
                                 /   SW Vers: "1.2"               /
                                 /   SW Creator:                  /
                                 /      "Industrial Automation"   /
                            ],
    / exp /              4: 1634324274, / 2021-10-15T18:57:54Z /
    / iat /              6: 1634317080, / 2021-10-15T16:58:00Z /
                   -80000 : "fingerprint",
                   -80001 : { / The key -- A COSE_Key  / 
                / kty /       1: 2, / EC2, eliptic curve with x & y /
                / kid /       2: h'36675c206f96236c3f51f54637b94ced',
                / curve /    -1: 2, / curve is P-256 /
                / x-coord /  -2: h'65eda5a12577c2bae829437fe338701a
                                   10aaa375e1bb5b5de108de439c08551d',
                / y-coord /  -3: h'1e52ed75701163f7f9e40ddf9f341b3d
                                   c9ba860af7e0ca7ca7e9eecd0084d19c'
             },

    / submods /        266 : { 
                           "HLOS" : { / submod for high-level OS /
         / eat_nonce /         10: h'8b0b28782a23d3f6',
           / oemboot /        262: true,
           / manifests /      273: [ 
                                [ 121, / CoAP Content ID. A      /
                                       / made up one until one   /
                                       / is assigned for CoSWID  /
                                    h'a600687337
                                      6537346b78380c000168
                                      44726f6964204f530d65
                                      52322e44320e0302a218
                                      1F75496E647573747269
                                      616c204175746f6d6174
                                      696f6e182102' 
                                  ]
                                  / Above is an encoded CoSWID /
                                  / with the following data:   /
                                  /   SW Name: "Droid OS"      /
                                  /   SW Vers: "R2.D2"         /
                                  /   SW Creator:              /
                                  /     "Industrial Automation"/
                               ]
                           }
                       }
}
           
   
]]></artwork></figure>

</section>
<section anchor="software-measurements-of-an-iot-device"><name>Software Measurements of an IoT Device</name>

<t>This is a simple token that might be for and IoT device.
It includes CoSWID format measurments of the SW.
The CoSWID is in byte-string wrapped in the token and also shown in diagnostic form.</t>

<figure><artwork><![CDATA[
/ This EAT payload is for an IoT device with a TEE. The attestation /
/ is produced by the TEE. There is a submodule for the IoT OS (the  /
/ main OS of the IoT device that is not as secure as the TEE). The  /
/ submodule contains claims for the IoT OS. The TEE also measures   /
/ the IoT OS and puts the measurements in the submodule.            /

{
    / eat_nonce / 10: h'5e19fba4483c7896'
    / oemboot /  262: true,
    / dbgstat /  263: 2, / disabled-since-boot /
    / oemid /    258: h'8945ad', / IEEE CID based /
    / ueid /     256: h'0198f50a4ff6c05861c8860d13a638ea', 
    / submods /  266: {
                        "OS" : {
        / oemboot /         262: true,
        / dbgstat /         263: 2, / disabled-since-boot /
        / measurements /    274: [
                                   [
                                     121, / CoAP Content ID. A     /
                                          / made up one until one  /
                                          / is assigned for CoSWID /

                                    / This is a byte-string wrapped /
                                    / evidence CoSWID. It has       /
                                    / hashes of the main files of   /
                                    / the IoT OS.  /
                                    h'a600663463613234350c
                                      17016d41636d6520522d496f542d4f
                                      530d65332e312e3402a2181f724163
                                      6d6520426173652041747465737465
                                      7218210103a11183a318187161636d
                                      655f725f696f745f6f732e65786514
                                      1a0044b349078201582005f6b327c1
                                      73b4192bd2c3ec248a292215eab456
                                      611bf7a783e25c1782479905a31818
                                      6d7265736f75726365732e72736314
                                      1a000c38b10782015820c142b9aba4
                                      280c4bb8c75f716a43c99526694caa
                                      be529571f5569bb7dc542f98a31818
                                      6a636f6d6d6f6e2e6c6962141a0023
                                      3d3b0782015820a6a9dcdfb3884da5
                                      f884e4e1e8e8629958c2dbc7027414
                                      43a913e34de9333be6'
                                   ]
                                 ]
                               }
                            }
}

]]></artwork></figure>

<figure><artwork><![CDATA[
/ An evidence CoSWID created for the "Acme R-IoT-OS" created by /
/ the "Acme Base Attester" (both fictious names).  It provides  /
/ measurements of the SW (other than the attester SW) on the    /
/ device. /

1398229316({
    / Unique CoSWID ID /    0: "4ca245",
    / tag-version /        12: 23, / Attester-maintained counter /
    / software-name /       1: "Acme R-IoT-OS",
    / software-version /   13: "3.1.4",
    / entity /              2: {
        / entity-name /        31: "Acme Base Attester",
        / role        /        33: 1 / tag-creator /
                            },
    / evidence /            3: {
        / ...file /             17: [
                                    {
            / ...fs-name /              24: "acme_r_iot_os.exe",
            / ...size    /              20: 4502345,
            / ...hash    /               7: [
                                             1, / SHA-256 /
                                             h'05f6b327c173b419
                                               2bd2c3ec248a2922
                                               15eab456611bf7a7
                                               83e25c1782479905'
                                         ]
                                    },
                                    {
            / ...fs-name /              24: "resources.rsc",
            / ...size    /              20: 800945,
            / ...hash    /               7: [
                                              1, / SHA-256 /
                                             h'c142b9aba4280c4b
                                               b8c75f716a43c995
                                               26694caabe529571
                                               f5569bb7dc542f98'
                                         ]
                                    },
                                    {
            / ...fs-name /              24: "common.lib",
            / ...size    /              20: 2309435,
            / ...hash    /               7: [
                                             1, / SHA-256 /
                                             h'a6a9dcdfb3884da5
                                               f884e4e1e8e86299
                                               58c2dbc702741443
                                               a913e34de9333be6'
                                         ]
                                    }
                                ]
                            }
})
]]></artwork></figure>

</section>
<section anchor="attestation-results-in-json"><name>Attestation Results in JSON</name>

<t>This is a JSON-encoded payload that might be the output of a verifier that evaluated the IoT Attestation example immediately above.</t>

<t>This particular verifier knows enough about the TEE attester to be able to pass claims like debug status directly through to the relying party.
The verifier also knows the reference values for the measured software components and is able to check them.
It informs the relying party that they were correct in the "measres" claim.
"Trustus Verifications" is the name of the services that verifies the software component measurements.</t>

<figure><artwork><![CDATA[
{
   "eat_nonce": "jkd8KL-8=Qlzg4",
   "oemboot": true,
   "dbgstat": "disabled-since-boot",
   "oemid": "iUWt",
   "ueid": "AZj1Ck_2wFhhyIYNE6Y4",
   "swname": "Acme R-IoT-OS",
   "swversion": [
      "3.1.4"
   ],
   "measres": [
      [
         "Trustus Measurements",
         [
            [
               "all",
               "success"
            ]
         ]
      ]
   ]
}
]]></artwork></figure>

</section>
<section anchor="json-encoded-token-with-sumodules"><name>JSON-encoded Token with Sumodules</name>

<t>This example has its lines wrapped per <xref target="RFC8792"/>.</t>

<figure><artwork><![CDATA[
{
   "eat_nonce": "lI-IYNE6Rj6O",
   "ueid": "AJj1Ck_2wFhhyIYNE6Y46g==",
   "secboot": true,
   "dbgstat": "disabled-permanently",
   "iat": 1526542894,
   "submods": {
      "Android App Foo": {
         "swname": "Foo.app"
      },
      "Secure Element Eat": [
         "CBOR",
         "2D3ShEOhASagWGaoCkiUj4hg0TpGPhkBAFABmPUKT_bAWGHIhg0TpjjqGQ\
ECGfryGQEFBBkBBvUZAQcDGQEEgmMzLjEBGQEKoWNURUWCL1gg5c-V_ST6txRGdC3VjU\
Pa4XjlX-K5QpGpKRCC_8JjWgtYQPaQywOIZ3-mJKN3X9fLxOhAnsmBa-MvpHRzOw-Ywn\
-67bvJljuctezAPD41s6_At7NbSV3qwJlxIuqGfwe41es="
      ],
      "Linux Android": {
         "swname": "Android"
      },
      "Subsystem J": [
         "JWT",
         "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJKLUF0dGVzd\
GVyIiwiaWF0IjoxNjUxNzc0ODY4LCJleHAiOm51bGwsImF1ZCI6IiIsInN1YiI6IiJ9.\
gjw4nFMhLpJUuPXvMPzK1GMjhyJq2vWXg1416XKszwQ"
      ]
   }
}
]]></artwork></figure>

</section>
</section>
<section anchor="signed-token-examples"><name>Signed Token Examples</name>

<section anchor="basic-cwt-example"><name>Basic CWT Example</name>

<t>This is a simple ECDSA signed CWT-format token.</t>

<figure><artwork><![CDATA[
/ This is a full CWT-format token with a very simple payloal. / 
/ The main structure visible here is that of the COSE_Sign1.  /

61( 18( [
    h'A10126',                           / protected headers  /
    {},                           / empty unprotected headers / 
    h'A20B46024A6B0978DE0A49000102030405060708',    / payload /
    h'9B9B2F5E470000F6A20C8A4157B5763FC45BE759
      9A5334028517768C21AFFB845A56AB557E0C8973
      A07417391243A79C478562D285612E292C622162
      AB233787'                                   / signature / 
] ) )
]]></artwork></figure>

</section>
<section anchor="detached-eat-bundle"><name>Detached EAT Bundle</name>

<t>In this detached EAT bundle, the main token is produced by a HW attestation block.
The detached Claims-Set is produced by a TEE and is largely identical to the Simple TEE examples above.
The TEE digests its Claims-Set and feeds that digest to the HW block.</t>

<t>In a better example the attestation produced by the HW block would be a CWT and thus signed and secured by the HW block.
Since the signature covers the digest from the TEE that Claims-Set is also secured.</t>

<t>The detached EAT bundle itself can be assembled by untrusted software.</t>

<figure><artwork><![CDATA[
/ This is a detached EAT bundle tag.  Note that 602, the tag /
/ identifying a detached EAT bundle is not yet registered /
/ with IANA /

602([

    / First part is a full EAT token with claims like nonce and /
    / UEID. Most importantly, it includes a submodule that is a /
    / detached digest which is the hash of the "TEE" claims set /
    / in the next section. The COSE payload follows:            /
    / { /
    /      10: h'948F8860D13A463E', /
    /     256: h'0198F50A4FF6C05861C8860D13A638EA', /
    /     258: 64242, /
    /     262: true, /
    /     263: 3, /
    /     260: ["3.1", 1], /
    /     266: { /
    /         "TEE": [ /
    /             -16, /
    /              h'8DEF652F47000710D9F466A4C666E209  /
    /                DD74F927A1CEA352B03143E188838ABE' /
    /         ] /
    /     } /
    /   }  /
    h'D83DD28443A10126A05866A80A48948F8860D13A463E1901
      00500198F50A4FF6C05861C8860D13A638EA19010219FAF2
      19010504190106F5190107031901048263332E310119010A
      A163544545822F58208DEF652F47000710D9F466A4C666E2
      09DD74F927A1CEA352B03143E188838ABE5840F690CB0388
      677FA624A3775FD7CBC4E8409EC9816BE32FA474733B0F98
      C27FBAEDBBC9963B9CB5ECC03C3E35B3AFC0B7B35B495DEA
      C0997122EA867F07B8D5EB',
    {
       / A CBOR-encoded byte-string wrapped EAT claims-set. It /
       / contains claims suitable for a TEE                    /
       "TEE" : h'a40a48948f8860d13a463e190106f519010702
                 190111818218795858a60064336132340c0101
                 6b41636d6520544545204f530d65332e312e34
                 0282a2181f6b41636d6520544545204f531821
                 01a2181f6b41636d6520544545204f53182102
                 06a111a118186e61636d655f7465655f332e65
                 7865'
    }
 ])
 
]]></artwork></figure>

<figure><artwork><![CDATA[
/ This example contains submodule that is a detached digest,   /
/ which is the hash of a Claims-Set convey outside this token. /
/ Other than that is is the other example of a token from an   /
/ attestation HW block                                         /

{
    / eat_nonce /       10: h'3515744961254b41a6cf9c02',
    / ueid /           256: h'0198f50a4ff6c05861c8860d13a638ea',
    / oemid /          258: 64242, / Private Enterprise Number /
    / oemboot /        262: true,
    / dbgstat /        263: 3, / disabled-permanently /
    / hwversion /      260: [ "3.1", 1 ], / multipartnumeric /
    / submods/         266: {
                                "TEE": [ / detached digest submod /
                                           -16, / SHA-256 /
                                           h'e5cf95fd24fab7144674
                                             2dd58d43dae178e55fe2
                                             b94291a9291082ffc263
                                             5a0b'
                                       ]
                            }
}

]]></artwork></figure>

</section>
<section anchor="json-encoded-detached-eat-bundle"><name>JSON-encoded Detached EAT Bundle</name>

<t>In this bundle there are two detached Claims-Sets, "CS1" and "CS2".
The JWT at the start of the bundle has detached signature submodules with hashes of "CS1" and "CS2".
TODO: make the JWT actually be correct verifiable JWT.</t>

<t>This example has its lines wrapped per <xref target="RFC8792"/>.</t>

<figure><artwork><![CDATA[
[
   [
      "JWT",
      "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJKLUF0dGVzdGVy\
IiwiaWF0IjoxNjUxNzc0ODY4LCJleHAiOm51bGwsImF1ZCI6IiIsInN1YiI6IiJ9.gjw\
4nFMhLpJUuPXvMPzK1GMjhyJq2vWXg1416XKszwQ"
   ],
   {
      "Audio Subsystem Claims": "ewogICAgICAgICAgICAibm9uY2UiOiAgICA\
gImxJK0lZTkU2Umo2TyIsCiAgICAgICAgICAgICJpYXQiOiAgICAgIDE1MjY1NDI4OTQ\
KICAgICAgICAgfQo=",
      "Graphics Subsystem Claims": "ewogICAgICAgICAgICAibm9uY2UiOiAg\
ICJsSStJWU5FNlJqNk8iLAogICAgICAgICAgICAiaWF0IjogICAgIDE1MjY1NDI4OTQK\
ICAgICAgICB9"
   }
]
]]></artwork></figure>

</section>
</section>
</section>
<section anchor="UEID-Design"><name>UEID Design Rationale</name>

<section anchor="collision-probability"><name>Collision Probability</name>

<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 database 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 software 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"><name>No Use of UUID</name>

<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>The design of UUID accommodates the construction of a unique identifier by combination of several identifiers that separately do not provide sufficient uniqueness.
UEID takes the view that this construction is no longer needed, in particular because cryptographic-quality random number generators are readily available.
It takes the view that hardware, software and/or manufacturing process implement UEID in a simple and direct way.</t>

<t>Note also that that a type 2 UEID (EUI/MAC) is only 7 bytes compared to 16 for a UUID.</t>

</section>
</section>
<section anchor="eat-relation-to-ieee8021ar-secure-device-identity-devid"><name>EAT Relation to IEEE.802.1AR Secure Device Identity (DevID)</name>

<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 can be used with any network protocol or message format.
In these protocols and message formats the DevID secret is used to sign a nonce or similar to prove the association of the DevID certificates with the device.</t>

<t>By contrast, EAT standardizes a message format that is sent to a relying party, the very thing that is not defined in <xref target="IEEE.802.1AR"/>.
Nor does EAT 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"><name>DevID Used With EAT</name>

<t>As just described, EAT standardizes a message format 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 message format 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"><name>How EAT Provides an Equivalent Secure Device Identity</name>

<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"><name>An X.509 Format EAT</name>

<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"><name>Device Identifier Permanence</name>

<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="CDDL_for_CWT"><name>CDDL for CWT and JWT</name>

<t><xref target="RFC8392"/> was published before CDDL was available and thus is specified in prose, not CDDL.
Following is CDDL specifying CWT as it is needed to complete this specification.
This CDDL also covers the Claims-Set for JWT.</t>

<t>Note that <xref target="iat-claim"/> requires that the iat claim be the type ~time-int (<xref target="common-types"/>), not the type ~time when it is used in an EAT as floating-point values are not allowed for the "iat" claim in EAT.</t>

<t>The COSE-related types in this CDDL are defined in <xref target="RFC9052"/>.</t>

<t>This however is NOT a normative or standard definition of CWT or JWT in CDDL.
The prose in CWT and JWT remain the normative definition.</t>

<figure><sourcecode type="CDDL"><![CDATA[
; This is replicated from draft-ietf-rats-uccs

Claims-Set = {
    * $$Claims-Set-Claims
    * Claim-Label .feature "extended-claims-label" => any
}
Claim-Label = int / text
string-or-uri = text

$$Claims-Set-Claims //= ( iss-claim-label => string-or-uri  )
$$Claims-Set-Claims //= ( sub-claim-label => string-or-uri  )
$$Claims-Set-Claims //= ( aud-claim-label => string-or-uri  )
$$Claims-Set-Claims //= ( exp-claim-label => ~time )
$$Claims-Set-Claims //= ( nbf-claim-label => ~time )
$$Claims-Set-Claims //= ( iat-claim-label => ~time )
$$Claims-Set-Claims //= ( cti-claim-label => bytes )

iss-claim-label = JC<"iss", 1>
sub-claim-label = JC<"sub", 2>
aud-claim-label = JC<"aud", 3>
exp-claim-label = JC<"exp", 4>
nbf-claim-label = JC<"nbf", 5>
iat-claim-label = JC<"iat", 6>
cti-claim-label = CBOR-ONLY<7>  ; jti in JWT: different name and text

JSON-ONLY<J> = J .feature "json"
CBOR-ONLY<C> = C .feature "cbor"

JC<J,C> = JSON-ONLY<J> / CBOR-ONLY<C>

]]></sourcecode></figure>

<figure><sourcecode type="CDDL"><![CDATA[
; A JWT message is either a JWS or JWE in compact serialization form
; with the payload a Claims-Set. Compact serialization is the
; protected headers, payload and signature, each b64url encoded and
; separated by a ".". This CDDL simply matches top-level syntax of of
; a JWS or JWE since it is not possible to do more in CDDL.

JWT-Message =
   text .regexp "[A-Za-z0-9_-]+\\.[A-Za-z0-9_-]+\\.[A-Za-z0-9_-]+"


; Note that the payload of a JWT is defined in claims-set.cddl. That 
; definition is common to CBOR and JSON.
]]></sourcecode></figure>

<figure><sourcecode type="CDDL"><![CDATA[
; This is some CDDL describing a CWT at the top level This is
; not normative. RFC 8392 is the normative definition of CWT.

CWT-Messages = CWT-Tagged-Message / CWT-Untagged-Message

; The payload of the COSE_Message is always a Claims-Set

; The contents of a CWT Tag must always be a COSE tag
CWT-Tagged-Message = #6.61(COSE_Tagged_Message)

; An untagged CWT may be a COSE tag or not
CWT-Untagged-Message = COSE_Messages
]]></sourcecode></figure>

</section>
<section anchor="Claim_Characteristics"><name>New Claim Design Considerations</name>

<t>The following are design considerations that may be helpful to take into account when creating new EAT claims.
It is the product of discussion in the working group.</t>

<t>EAT reuses the CWT and JWT claims registries.
There is no registriy exclusively for EAT claims.
This is not an update to the expert review criteria for the JWT and CWT claims registries as that would be an overreach for this document.</t>

<section anchor="interoperability-and-relying-party-orientation"><name>Interoperability and Relying Party Orientation</name>

<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"><name>Operating System and Technology Neutral</name>

<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 software 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"><name>Security Level Neutral</name>

<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"><name>Reuse of Extant Data Formats</name>

<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 encoding 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"><name>Proprietary Claims</name>

<t>It is not always possible or convenient to achieve the above goals, so the definition and use of proprietary claims is an option.</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="keyid"><name>Endorsements and Verification Keys</name>

<t>The verifier must possess the correct key when it performs the cryptographic part of an EAT verification (e.g., verifying the COSE/JOSE 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 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>

<t>See also security consideration in <xref target="verfication-key-sc"/>.</t>

<section anchor="identification-methods"><name>Identification Methods</name>

<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"><name>COSE/JWS Key ID</name>

<t>The COSE standard header parameter for Key ID (kid) may be used. See <xref target="RFC9052"/> 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"><name>JWS and COSE X.509 Header Parameters</name>

<t>COSE X.509 <xref target="COSE.X509.Draft"/> and JSON Web Signature <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"><name>CBOR Certificate COSE Header Parameters</name>

<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"><name>Claim-Based Key Identification</name>

<t>For some attestation systems, a claim may be re-used as a key identifier. For example, the UEID uniquely identifies the entity 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>
<section anchor="changes-from-previous-drafts"><name>Changes from Previous Drafts</name>

<t><cref anchor="remove_1">RFC editor: please remove this paragraph.</cref></t>

<t>The following is a list of known changes since the immediately previous drafts.  This list is
non-authoritative.  It is meant to help reviewers see the significant
differences. A comprehensive history is available via the IETF Datatracker's record for this document.</t>

<section anchor="from-draft-ietf-rats-eat-20"><name>From draft-ietf-rats-eat-20</name>
<t><list style="symbols">
  <t>Uniformly use term "base64url-encoded"</t>
  <t>Add comment that MAC-based UEIDs are shorter than UUIDs</t>
  <t>Clarify that DLOAs must be authentic</t>
  <t>Require equivalent encryption when relaying between multiple EAT consumers</t>
  <t>"<bcp14>MUST</bcp14>" instead of "must" for freshness security considerations.</t>
  <t>Spelling and grammar fixes</t>
</list></t>

</section>
</section>

    <section anchor="contributors" numbered="false" toc="include" removeInRFC="false">
        <name>Contributors</name>

<t>Many thanks to the following contributors to draft versions of this
document:</t>

    <contact initials="H." surname="Birkholz" fullname="Henk Birkholz">
      <organization abbrev="Fraunhofer SIT">Fraunhofer SIT</organization>
      <address>
        <email>henk.birkholz@sit.fraunhofer.de</email>
      </address>
    </contact>
    <contact initials="T." surname="Fossati" fullname="Thomas Fossati">
      <organization>Arm Limited</organization>
      <address>
        <email>thomas.fossati@arm.com</email>
      </address>
    </contact>
    <contact initials="M." surname="Ballesteros" fullname="Miguel Ballesteros">
      <organization></organization>
      <address>
      </address>
    </contact>
    <contact initials="M." surname="Richardson" fullname="Michael Richardson">
      <organization>Sandelman Software Works</organization>
      <address>
        <email>mcr+ietf@sandelman.ca</email>
      </address>
    </contact>
    <contact initials="P." surname="Uiterwijk" fullname="Patrick Uiterwijk">
      <organization></organization>
      <address>
      </address>
    </contact>
    <contact initials="M." surname="Brossard" fullname="Mathias Brossard">
      <organization></organization>
      <address>
      </address>
    </contact>
    <contact initials="H." surname="Tschofenig" fullname="Hannes Tschofenig">
      <organization>Arm Limited</organization>
      <address>
        <email>hannes.tschofenig@arm.com</email>
      </address>
    </contact>
    <contact initials="P." surname="Crowley" fullname="Paul Crowley">
      <organization></organization>
      <address>
      </address>
    </contact>
    </section>

  </back>

<!-- ##markdown-source:
H4sIAAAAAAAAA+y923LcWHYo+I6vwLA6osjuzKRIUSpJPio3i2RVs6zbEaku
+/SpKYOZYBKtTCANIEVlq+Xwb5yImYj5lvkUf8ms+14bQFLsbntiJsIKu4sJ
bOzr2ut+GY/HyYdn6cMkaYt2kT9LL2/y9KyEH5v0uG3zps3aoirTy+p9Xqa7
Z8eXe0l2dVXn8BH8SGbVtMyW8N2szq7bcZG31+M6a5txnrXjw4NkmrXP0qad
Jcm0Kpu8bNbNs7St13nStHWeLZ+l52eX3yfFqqbHTXv44MHTB4dJBi+fpRf5
dF3DVJLb+bP07fHlRfL+Fror5mVRztPMzW96VdVJsiqeJWnaVtNn6debvPma
f8zyVXsDT47wd1PVMPB1E1o0m2X8YFotV9m0dS3WV+FZWeGj+nqaz5p2g1vG
zeBftm5vqvpZMk6LEvp7MUlfrMvZ1SKb5fAJ79OLbF3n5TSPXlX1PCwWj6Cq
N+mLFyfwKl9mxeJZupgvfttIg5beT2BKOtIPk/RlVs422dLG+aGoi9lNVrsX
NMp/X2cL+HKZXubTm7JaVPMib9LzcjrBhcLW5LDIR9988yh9WdX5TbVu8vS0
Lj7gNKcwOMwzK9PTIp9XuA35HHb/WXqSLYrrqi6LjPZvXbY1tHx3cQw/VzdV
CRPa+c1B+uTRk/Txo4P0GzjlnbC4JU/xt//SFpN/kfn55f04SV9/fVqV1fxm
HXbyx7zOl5v4zf2XePjN0/T7rC4Bbqr1/CZ9W2UzW6J7QeuZ4Ya+OzhKv3lx
ES2wLNp8lv4DQOOsWoa1/uboKD04fHSYPnz88ODJ07DSP1YzmuzWpZ5M0p+y
xSKbhnWeZPXCPaQlvoVRfwezmKUX1XV7C7dlpAuUkabw1W/rfHaDrRppRCPh
TWzr4mrdMqzyKL/Ly/fpd0X9/qZa/EmH+b7O1uVNdZ3X6cX5JTzVq997IaPe
QC+TK+nlt03RTq6t5QRAXUe7vKmWWZN+XzUN3F8d7rhepi+KJe5p6LKlppNr
bvrbrNb94p5eFvN1vki/g/0BZJDXVeNeTW8yePcW/1vDJpR21QDg8gWAnW1f
+lNVv28cSE7r3yAy+22jTSfTzHp+k8EGTt+n72Cq9W3xx/dhzKy9KWBl39U4
33oW9jcrS4DCy2aKm1EW8zsXfUOtJ6217q37TbZepCd1dbvIN0lSVvUSdudD
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
d07hObO2yV21cIiNCtz8Jyx2g5Im/B0O7fOe4wlwj6w34Jv7u7MfB/luxZLC
58UA0gOI7uFG/iN0uAWlfKVcNCJt6aXjYiy+hw/A/1Gm9cIXO1R/NexbIyDb
bO7SLXG+46hKpxY7vskXq9hBNaITMJCUAtgKc7SkC/JBrGo4ruj3mGqQwmnt
/PjT5Q5s7g52R3989+7V6Ysz+vP0/Iezi8ud7re/J0oHH8O345e42nk+GMPe
B8UAWoMf2KkiZH63pnI/d7brnX4STVVFM9rVZ+nAHpBUxls75q3tNaPlonh2
53KGHAb+M29IfLwB6LdujZUAV0+ULahreweymWjAH2eLOYgU7c0yFWfk/VRD
NAXH679nXgg2f+RXDppNp2tlTAK16capO4cdrezWeAsTNeNljQHRhwAJEak+
fXp3cnJBQerxFLQ+CCWhCVf0St1w6BZrhjlgImfi+En3nmUwS+0kaX5mM4tK
VtrM80XcMiWRkhMCo3/jer4UeoqzGEbNwMNO37OGnBoNXGmcyeB15U9RiiJT
/ywXT72sh/tGEVGM2GIg2Xm97EAPZjal3dHyG1EqzOh7z/mSXSqk3yLD1Egs
U1kM3qOQHLrjJ2kqZ/Xa0KFvb/JWQ+I7U+gy3NkdLHfwwrRYDe+IGS+Vtsxx
hm1wtpSvLVDEAgP//d/+D8Ci//5v/+cI/8QT178ZD8MvniNn7hlHoN4ac4MO
PRF8j768cnWU10Ao1kMxO+8w++hOND4awtkjP2Xqt79wJS6DE71DBjo2jyPp
KiTwifGAeAeqM3vRr1vZvQhdDo+nxoSdVPxc17x35N08VJ27gXKon2U0zBCv
zKJ/B8A63921QxFDsbWHHouFX3qDgP8ywhHR3aSaTHUeP1S/IRaAh/dVASCU
1iV1ebOqWI76AiHrhsoK0tUD6YzaZZ7EsdzhMzE1c8Ec4NLwy3XJfuLZtdYJ
8Dt7W2erlYQh1fmy+jC4XvjvomoiwdB1RyzDtp6iTe/001tu1Pjey5WlkHlH
R7RDlBJA8nGMqTrYqcxvuZPoClbrtrGqsUa2rwU5BIqoxBn6RewFve6JssPP
zyUsc7iS1Gdf4pNddUBieNXOIdhZ7hre8eDlDO3EBY3MO0Cva5HvJdzg0cHT
z5+hQ+Kcv9wj6Z/6NbmkQpMU/kLQ87Y3ACaYRlf6NMkZfYyvCOXCPIRxv9fa
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

-->

</rfc>

