<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.30 (Ruby 3.4.7) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-rats-eat-measured-component-10" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.31.0 -->
  <front>
    <title abbrev="EAT Measured Component">EAT Measured Component</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-rats-eat-measured-component-10"/>
    <author initials="S." surname="Frost" fullname="Simon Frost">
      <organization>Arm</organization>
      <address>
        <email>Simon.Frost@arm.com</email>
      </address>
    </author>
    <author initials="T." surname="Fossati" fullname="Thomas Fossati">
      <organization>Linaro</organization>
      <address>
        <email>Thomas.Fossati@linaro.org</email>
      </address>
    </author>
    <author initials="H." surname="Tschofenig" fullname="Hannes Tschofenig">
      <organization abbrev="H-BRS">University of Applied Sciences Bonn-Rhein-Sieg</organization>
      <address>
        <email>Hannes.Tschofenig@gmx.net</email>
      </address>
    </author>
    <author initials="H." surname="Birkholz" fullname="Henk Birkholz">
      <organization>Fraunhofer SIT</organization>
      <address>
        <email>henk.birkholz@ietf.contact</email>
      </address>
    </author>
    <date year="2026" month="January" day="12"/>
    <area>Security</area>
    <workgroup>Remote ATtestation ProcedureS</workgroup>
    <keyword>EAT</keyword>
    <keyword>measurements</keyword>
    <keyword>claim</keyword>
    <keyword>measured</keyword>
    <keyword>component</keyword>
    <abstract>
      <?line 71?>

<t>The term "measured component" refers to an object within the attester's target environment whose state can be sampled and typically digested using a cryptographic hash function.
Examples of measured components include firmware stored in flash memory, software loaded into memory at start time, data stored in a file system, or values in a CPU register.
This document provides the information model for the "measured component" and two associated data models.
This separation is intentional: the JSON and CBOR serializations, coupled with the media types and associated Constrained Application Protocol (CoAP) Content-Formats, enable the immediate use of the semantics within the Entity Attestation Token (EAT) framework.
Meanwhile, the information model can be reused in future specifications to provide additional serializations, for example using ASN.1.</t>
    </abstract>
    <note removeInRFC="true">
      <name>Discussion Venues</name>
      <t>Discussion of this document takes place on the
    Remote ATtestation ProcedureS Working Group mailing list (rats@ietf.org),
    which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/rats/"/>.</t>
      <t>Source for this draft and an issue tracker can be found at
    <eref target="https://github.com/thomas-fossati/draft-fft-rats-eat-measured-component"/>.</t>
    </note>
  </front>
  <middle>
    <?line 79?>

<section anchor="introduction">
      <name>Introduction</name>
      <t><xref section="4.2.16" sectionFormat="of" target="RFC9711"/> defines a <tt>Measurements</tt> claim that:</t>
      <ul empty="true">
        <li>
          <t>"[c]ontains descriptions, lists, evidence or measurements of the software that exists on the entity or any other measurable subsystem of the entity."</t>
        </li>
      </ul>
      <t>This claim allows for different measurement formats, each identified by a different CoAP Content-Format (<xref section="12.3" sectionFormat="of" target="RFC7252"/>).
Currently, the only specified format is Concise Software Identification (CoSWID) Tags of type "evidence", as per <xref section="2.9.4" sectionFormat="of" target="RFC9393"/>.
However, CoSWID is not suitable for measurements that cannot be anchored to a file system, such as those in early boot environments.
To address this gap, this document introduces a "measured component" format that can be used with the EAT <tt>Measurements</tt> claim alongside or instead of CoSWID.</t>
      <t>The term "measured component" refers to an object within the attester's target environment whose state can be sampled and typically digested using a cryptographic hash function.
This includes, for example: the invariant part of a firmware component that is loaded in memory at startup time, a run-time integrity check (RTIC), a file system object, or a CPU register.</t>
      <t>This document provides the information model for the "measured component" and two associated data models <xref target="RFC3444"/>.
This separation is intentional: the JSON and CBOR serializations, coupled with the media types and associated CoAP Content-Formats, enable the immediate use of the semantics within the EAT framework.
Meanwhile, the information model can be reused in future specifications to provide additional serializations, for example using ASN.1.</t>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</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>
      <?line -18?>

<t>In this document, CDDL <xref target="RFC8610"/> <xref target="RFC9165"/> <xref target="RFC9741"/> is used to describe the data formats.</t>
    </section>
    <section anchor="measured-component">
      <name>Information Model</name>
      <t>This section presents the information model of a "measured component".</t>
      <t>A "measured component" information element includes the component's sampled state (in digested or raw form) along with metadata that helps in identifying the component.
Optionally, any entities responsible for signing the installed component can also be specified.</t>
      <t>The information elements (IE) that constitute a "measured component" are described in <xref target="tab-mc-info-elems"/>.</t>
      <table anchor="tab-mc-info-elems">
        <name>Measured Component Information Elements</name>
        <thead>
          <tr>
            <th align="left">IE</th>
            <th align="left">Description</th>
            <th align="left">Requirement Level</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">Component Name</td>
            <td align="left">The name given to the measured component. It is important that this name remains consistent across different releases to allow for better tracking of the same measured item across updates. When combined with a consistent versioning scheme, it enables better signalling from the appraisal procedure to the relying parties.</td>
            <td align="left">
              <bcp14>REQUIRED</bcp14></td>
          </tr>
          <tr>
            <td align="left">Component Version</td>
            <td align="left">A value representing the specific release or development version of the measured component.  Using Semantic Versioning <xref target="SEMVER"/> is <bcp14>RECOMMENDED</bcp14>.</td>
            <td align="left">
              <bcp14>OPTIONAL</bcp14></td>
          </tr>
          <tr>
            <td align="left">Digested or Raw Value</td>
            <td align="left">Either the raw value or the digested value of the measured component.</td>
            <td align="left">
              <bcp14>REQUIRED</bcp14></td>
          </tr>
          <tr>
            <td align="left">Digest Algorithm</td>
            <td align="left">Hash algorithm used to compute the Digest Value.</td>
            <td align="left">
              <bcp14>REQUIRED</bcp14> only if the value is in the digested form</td>
          </tr>
          <tr>
            <td align="left">Authorities</td>
            <td align="left">One or more entities that can authoritatively identify the component being measured.</td>
            <td align="left">
              <bcp14>OPTIONAL</bcp14></td>
          </tr>
        </tbody>
      </table>
      <t>A data model implementing this information model <bcp14>SHOULD</bcp14> also allow a limited amount of extensibility to accommodate profile-specific semantics.</t>
    </section>
    <section anchor="data-model">
      <name>Data Model</name>
      <t>This section presents a JSON and CBOR data model that implements the information model outlined in <xref target="measured-component"/>.</t>
      <t>The data model is inspired by the "PSA software component" claim (<xref section="4.4.1" sectionFormat="of" target="RFC9783"/>), which has been refactored to take into account the recommendations about the design of new EAT claims described in <xref section="E" sectionFormat="of" target="RFC9711"/>.</t>
      <t>CDDL is used to express rules and constraints of the data model for both JSON and CBOR.
These rules must be strictly followed when creating or validating "measured component" data items.
When there is variation between CBOR and JSON, the CDDL generic <tt>JC&lt;&gt;</tt>, defined in <xref section="D" sectionFormat="of" target="RFC9711"/>, is used.</t>
      <section anchor="common-types">
        <name> Common Types</name>
        <t>The following three basic types are used at various places within the measured component data model:</t>
        <sourcecode type="cddl"><![CDATA[
bytes-b64u = text .b64u bytes
bytes8 = bytes .size 8
bytes8-b64u = text .b64u bytes8
]]></sourcecode>
      </section>
      <section anchor="digest">
        <name>The <tt>digest</tt> Type</name>
        <t>A digest represents the result of a hashing operation together with the hash algorithm used.
The type of the digest algorithm identifier can be either <tt>int</tt> or <tt>text</tt> and is interpreted according to the <xref target="IANA.named-information"/> registry.
Specifically, <tt>int</tt> values are matched against "ID" entries and <tt>text</tt> values are matched against "Hash Name String" entries.
Whenever possible, using the <tt>int</tt> encoding is <bcp14>RECOMMENDED</bcp14>.</t>
        <sourcecode type="cddl"><![CDATA[
digest = [
  alg: (int / text)
  val: digest-value-type
]

digest-value-type = eat.JC<bytes-b64u, bytes>
]]></sourcecode>
      </section>
      <section anchor="the-measured-component-data-item">
        <name>The <tt>measured-component</tt> Data Item</name>
        <t>The <tt>measured-component</tt> data item is as follows:</t>
        <sourcecode type="cddl"><![CDATA[
measured-component = {
  component-id-label => component-id
  measurement
  ? authorities-label => [ + authority-id-type ]
  ? flags-label => flags-type
}

measurement //= ( digested-measurement-label => digest )
measurement //= ( raw-measurement-label => bytes )

authority-id-type = eat.JC<bytes-b64u, bytes>
flags-type = eat.JC<bytes8-b64u, bytes8>

component-id-label = eat.JC<"id", 1>
digested-measurement-label = eat.JC<"digested-measurement", 2>
raw-measurement-label = eat.JC<"raw-measurement", 5>
authorities-label = eat.JC<"authorities", 3>
flags-label = eat.JC<"flags", 4>
]]></sourcecode>
        <t>The members of the <tt>measured-component</tt> CBOR map / JSON object are:</t>
        <dl newline="true">
          <dt><tt>"id"</tt> (index 1):</dt>
          <dd>
            <t>The measured component identifier encoded according to the format described in <xref target="component-id"/>.</t>
          </dd>
          <dt><tt>"measurement"</tt>:</dt>
          <dd>
            <t>Either a digest value and digest algorithm (index 2), encoded using the digest format (<xref target="digest"/>), or the "raw" measurement (index 5), encoded as a byte string.
Note that, while the size of the digested form is constrained by the digest function, the size of the raw form can vary greatly depending on what is being measured (it could be a CPU register or an entire configuration blob, for example).
Therefore, a decoder implementation may decide to limit the amount of memory it allocates to this specific field.</t>
          </dd>
          <dt><tt>"authorities"</tt> (index 3):</dt>
          <dd>
            <t>One or more authorities, see <xref target="authority"/>.</t>
          </dd>
          <dt><tt>"flags"</tt> (index 4):</dt>
          <dd>
            <t>a 64-bit field with profile-defined semantics, see <xref target="profile-flags"/>.</t>
          </dd>
        </dl>
        <section anchor="component-id">
          <name>Component Identifier</name>
          <t>The <tt>component-id</tt> data item is as follows:</t>
          <sourcecode type="cddl"><![CDATA[
component-id = [
  name:      text
  ? version: version
]

;# import coswid.$version-scheme from rfc9393 as coswid

version = [
  val:      text
  ? scheme: coswid.$version-scheme
]
]]></sourcecode>
          <dl>
            <dt><tt>name</tt></dt>
            <dd>
              <t>A string that provides a human readable identifier for the component in question.  Format and adopted conventions depend on the component type.</t>
            </dd>
            <dt><tt>version</tt></dt>
            <dd>
              <t>A compound <tt>version</tt> data item that reuses the encoding and semantics of <xref target="RFC9711"/> <tt>sw-version-type</tt>, extending it to non-software components.</t>
            </dd>
          </dl>
        </section>
        <section anchor="authority">
          <name>Authority Identifier</name>
          <t>An authority is an entity that can authoritatively identify a given component by digitally signing it.
This signature is usually verified during installation, or when the measured component is executed by the boot ROM, operating system, or application launcher.
For example, as in Unified Extensible Firmware Interface (UEFI) Secure Boot <xref target="UEFI2"/> and Arm Trusted Board Boot <xref target="TBBR-CLIENT"/>.
Another example may be the controlling entity in an app store.</t>
          <t>An authority is identified by its signing public key.
It could be an X.509 certificate, a raw public key, a public key thumbprint, or some other identifier that can be uniquely associated with the signing entity.
In some cases, multiple parties may need to sign a component to indicate their endorsement or approval.
This could include roles such as a firmware update system, fleet owner, or third-party auditor.
The specific purpose of each signature may depend on the deployment, and the order of authorities within the array could indicate meaning.</t>
          <t>If an EAT profile (<xref section="6" sectionFormat="of" target="RFC9711"/>) uses measured components, it <bcp14>MUST</bcp14> specify whether the <tt>authorities</tt> field is used.
If it is used, the profile <bcp14>MUST</bcp14> also specify what each of the entries in the <tt>authorities</tt> array represents, and how to interpret the corresponding <tt>authority-id-type</tt>.</t>
          <t>The <tt>authority-id-type</tt> is defined as follows:</t>
          <sourcecode type="cddl"><![CDATA[
authority-id-type = eat.JC<bytes-b64u, bytes>
]]></sourcecode>
        </section>
        <section anchor="profile-flags">
          <name>Profile-specific Flags</name>
          <t>This optional field can contain up to 64 bits of profile-defined semantics, enabling a profile of this specification to encode additional information and extend the base type.
It can be used to carry information in fixed-size chunks, such as a bit mask or a single value within a predetermined set of codepoints.
Regardless of its internal structure, the size of this field is exactly 8 bytes.</t>
          <t>The <tt>flags-type</tt> is defined as follows:</t>
          <sourcecode type="cddl"><![CDATA[
flags-type = eat.JC<bytes8-b64u, bytes8>
]]></sourcecode>
          <t>If an EAT profile (<xref section="6" sectionFormat="of" target="RFC9711"/>) uses measured components, it <bcp14>MUST</bcp14> specify whether the <tt>flags</tt> field is used.
If it is used, the profile <bcp14>MUST</bcp14> also specify how to interpret the 64 bits.</t>
        </section>
      </section>
      <section anchor="eat-measurements-format-extensions">
        <name>EAT <tt>measurements-format</tt> Extensions</name>
        <t>The CDDL in <xref target="fig-eat-plug"/> extends the <tt>$measurements-body-cbor</tt> and <tt>$measurements-body-json</tt> EAT sockets to add support for <tt>measured-component</tt>s to the <tt>Measurements</tt> claim.</t>
        <figure anchor="fig-eat-plug">
          <name>EAT measurements-format Extensions</name>
          <sourcecode type="cddl"><![CDATA[
mc-cbor = bytes .cbor measured-component
mc-json = text .json measured-component

; EAT CBOR (`.feature "cbor"`)
$measurements-body-cbor /= mc-cbor ; native
$measurements-body-cbor /= mc-json ; tunnel

; EAT JSON (`.feature "json"`)
$measurements-body-json /= mc-json            ; native
$measurements-body-json /= text .b64u mc-cbor ; tunnel
]]></sourcecode>
        </figure>
        <t>Each socket is extended with two new types: a "native" representation that is used when <tt>measured-component</tt> and the EAT have the same serialization (e.g., they are both CBOR), and a "tunnel" representation that is used when the serializations differ.</t>
      </section>
      <section anchor="measurements-format-for-cbor-eat">
        <name><tt>measurements-format</tt> for CBOR EAT</name>
        <t>The entries in <xref target="tab-mf-cbor"/> are the allowed <tt>content-type</tt> / <tt>content-format</tt> pairs when the <tt>measured-component</tt> is carried in a CBOR EAT.</t>
        <t>Note the use of the "native" and "tunnel" formats from <xref target="fig-eat-plug"/>, and how the associated CoAP Content-Format is used to describe the original serialization.</t>
        <table anchor="tab-mf-cbor">
          <name>measurement-format for EAT CWT</name>
          <thead>
            <tr>
              <th align="left">content-type (CoAP C-F equivalent)</th>
              <th align="left">content-format</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <tt>application/measured-component+cbor</tt></td>
              <td align="left">
                <tt>mc-cbor</tt></td>
            </tr>
            <tr>
              <td align="left">
                <tt>application/measured-component+json</tt></td>
              <td align="left">
                <tt>mc-json</tt></td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="measurements-format-for-json-eat">
        <name><tt>measurements-format</tt> for JSON EAT</name>
        <t><xref target="tab-mf-json"/> is the equivalent of <xref target="tab-mf-cbor"/> for JSON-serialized EAT.</t>
        <table anchor="tab-mf-json">
          <name>measurement-format for EAT JWT</name>
          <thead>
            <tr>
              <th align="left">content-type (CoAP C-F equivalent)</th>
              <th align="left">content-format</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <tt>application/measured-component+json</tt></td>
              <td align="left">
                <tt>mc-json</tt></td>
            </tr>
            <tr>
              <td align="left">
                <tt>application/measured-component+cbor</tt></td>
              <td align="left">
                <tt>tstr .b64u mc-cbor</tt></td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="eat-profiles-and-measured-components">
        <name>EAT Profiles and Measured Components</name>
        <t>The semantics of the <tt>authorities</tt> and profile <tt>flags</tt> fields are defined by the applicable EAT profile, i.e., the profile of the wrapping EAT.</t>
        <t>If the profile of the EAT is not known to the consumer and one or more Measured Components within that EAT include <tt>authorities</tt> and/or profile <tt>flags</tt>, the consumer <bcp14>MUST</bcp14> reject the EAT.</t>
      </section>
      <section anchor="examples">
        <name>Examples</name>
        <t>The example in <xref target="ex-1"/> is a digested measured component with all the fields populated.</t>
        <figure anchor="ex-1">
          <name>Complete Measured Component</name>
          <sourcecode type="cbor-edn"><![CDATA[
{
  / id / 1: [
    / name / "boot loader X",
    / version / [
      "1.2.3rc2",
      16384 / semver /
    ]
  ],
  / measurement / 2: [
    / alg / "sha-256",
    / val / h'3996003d486fb91ffb056f7d03f2b2992b215b31dbe7af4b37
              3431fc7d319da3'
  ],
  / authorities / 3: [
    h'492e9b676c21f6012b1ceeb9032feb4141a880797355f6675015ec59c5
      1ca1ec',
    h'4277bb97ba7b51577a0d38151d3e08b40bdf946753f5b5bdeb814d6ff5
      7a8a5e'
  ],
  / flags / 4: h'0000000000000101'
}
]]></sourcecode>
        </figure>
        <t>The example in <xref target="ex-eat-1"/> is the same measured component as above but used as the format of a <tt>measurements</tt> claim in a EAT claims-set.</t>
        <t>This example uses TBD1 as the <tt>content-type</tt> value of the <tt>measurements-format</tt> entry.
(This will change to the value assigned by IANA to the <tt>mc+cbor</tt> Content-Format.)</t>
        <t>Note that the array contains only one measured component, but additional entries could be added if the measured TCB is made of multiple, individually measured components.</t>
        <figure anchor="ex-eat-1">
          <name>EAT Measurements Claim using a Measured Component (CBOR)</name>
          <sourcecode type="cbor-edn"><![CDATA[
{
  273: [
    [
      TBD1, / mc+cbor /
      <<
        {
          / id / 1: [
            / name / "boot loader X",
            / version / [
              "1.2.3rc2",
              16384 / semver /
            ]
          ],
          / measurement / 2: [
            / alg / "sha-256",
            / val / h'3996003d486fb91ffb056f7d03f2b2992b215b31db
                      e7af4b373431fc7d319da3'
          ],
          / authorities / 3: [
            h'492e9b676c21f6012b1ceeb9032feb4141a880797355f66750
              15ec59c51ca1ec',
            h'4277bb97ba7b51577a0d38151d3e08b40bdf946753f5b5bdeb
              814d6ff57a8a5e'
          ]
        }
      >>
    ]
  ]
}
]]></sourcecode>
        </figure>
        <t>The example in <xref target="ex-eat-2"/> illustrates the inclusion of a JSON measured component inside a JSON EAT.</t>
        <t>This example uses TBD2 as the <tt>content-type</tt> value of the <tt>measurements-format</tt> entry.
(This will change to the value assigned by IANA to the <tt>mc+json</tt> Content-Format.)</t>
        <figure anchor="ex-eat-2">
          <name>EAT Measurements Claim using a Measured Component (JSON)</name>
          <sourcecode type="cbor-edn"><![CDATA[
=============== NOTE: '\' line wrapping per RFC 8792 ================

{
  "measurements": [
    [
      TBD2, / mc+json /
      "{ \"id\": [ \"boot loader X\", [ \"1.2.3rc2\", 16384 ] ], \"\
digested-measurement\": [ \"sha-256\", \"\
OZYAPUhvuR_7BW99A_KymSshWzHb569LNzQx_H0xnaM\" ], \"authorities\": [ \
\"SS6bZ2wh9gErHO65Ay_rQUGogHlzVfZnUBXsWcUcoew\", \"\
                   Qne7l7p7UVd6DTgVHT4ItAvflGdT9bW964FNb_V6il4\" ] }"
    ]
  ]
}
]]></sourcecode>
        </figure>
        <t>The example in <xref target="ex-2"/> is a measured component representing a boot loader identified by its path name:</t>
        <figure anchor="ex-2">
          <name>Digested Measured Component using File Path as Identifier</name>
          <sourcecode type="cbor-edn"><![CDATA[
{
  / id / 1: [
    / name / "/boot/loader.bin"
  ],
  / measurement / 2: [
    / alg / "sha-384",
    / val / h'66ec2fb4e02d8c8b3eee320e750d9389d66c52c51db11cc6
              9cc5e410816283ed60ba573795f5fcc85e513af57b3f6def'
  ],
  / flags / 4: h'0000000000000101'
}
]]></sourcecode>
        </figure>
        <t>The example in <xref target="ex-3"/> is a raw measured component.</t>
        <figure anchor="ex-3">
          <name>Raw Measured Component</name>
          <sourcecode type="cbor-edn"><![CDATA[
{
  / id / 1: [
    / name / "hardware-config"
  ],
  / measurement / 5: h'4f6d616861'
}
]]></sourcecode>
        </figure>
      </section>
    </section>
    <section anchor="seccons">
      <name>Security Considerations</name>
      <t>Please review Sections <xref target="RFC9711" section="9.1" sectionFormat="bare">Claim Trustworthiness</xref>, <xref target="RFC9711" section="9.4" sectionFormat="bare">Multiple EAT Consumers</xref> and <xref target="RFC9711" section="9.5" sectionFormat="bare">Detached EAT Bundle Digest Security Considerations</xref> of <xref target="RFC9711"/>; these considerations apply to this document as well.
Note that similar security considerations may apply when the Measured Component information model is serialized using different data models than the ones specified in this document.</t>
      <t>The Component Name and Component Version can give an attacker detailed information about the software running on a device and its configuration settings.
This information could offer an attacker valuable insights.</t>
      <t>Any textual fields (e.g., Component Name and Component Version) that are stored in a file, inserted into a database, or displayed to humans must be properly sanitized to prevent attacks and undesirable behavior.
Further discussion and references on this topic can be found in <xref section="7" sectionFormat="of" target="RFC9839"/>.</t>
      <t>If the component measurement is digested, the digest must be computed using a strong cryptographic hash function.</t>
    </section>
    <section anchor="privcons">
      <name>Privacy Considerations</name>
      <t>Please review Section <xref target="RFC9711" section="9.1" sectionFormat="bare">Multiple EAT Consumers</xref> of <xref target="RFC9711"/>; the differential encryption considerations discussed there also apply to this document.</t>
      <t>The Component Name and Component Version could reveal private information about a device and its owner.</t>
      <t>Additionally, the stability requirement of the Component Name could enable tracking.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t><cref anchor="rfced">RFC Editor:</cref> replace "RFCthis" with the RFC number assigned to this document.</t>
      <section anchor="media-types-registrations">
        <name>Media Types Registrations</name>
        <t>IANA is requested to add the following media types to the "Media Types" registry <xref target="IANA.media-types"/>.</t>
        <table anchor="tab-mc-regs">
          <name>Measured Component Media Types</name>
          <thead>
            <tr>
              <th align="left">Name</th>
              <th align="left">Template</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <tt>mc+cbor</tt></td>
              <td align="left">
                <tt>application/measured-component+cbor</tt></td>
              <td align="left">RFCthis</td>
            </tr>
            <tr>
              <td align="left">
                <tt>mc+json</tt></td>
              <td align="left">
                <tt>application/measured-component+json</tt></td>
              <td align="left">RFCthis</td>
            </tr>
          </tbody>
        </table>
        <section anchor="applicationmeasured-componentcbor">
          <name><tt>application/measured-component+cbor</tt></name>
          <dl spacing="compact">
            <dt>Type name:</dt>
            <dd>
              <t>application</t>
            </dd>
            <dt>Subtype name:</dt>
            <dd>
              <t>measured-component+cbor</t>
            </dd>
            <dt>Required parameters:</dt>
            <dd>
              <t>n/a</t>
            </dd>
            <dt>Optional parameters:</dt>
            <dd>
              <t>n/a</t>
            </dd>
            <dt>Encoding considerations:</dt>
            <dd>
              <t>binary (CBOR)</t>
            </dd>
            <dt>Security considerations:</dt>
            <dd>
              <t><xref target="seccons"/> of RFCthis</t>
            </dd>
            <dt>Interoperability considerations:</dt>
            <dd>
              <t>n/a</t>
            </dd>
            <dt>Published specification:</dt>
            <dd>
              <t>RFCthis</t>
            </dd>
            <dt>Applications that use this media type:</dt>
            <dd>
              <t>Attesters, Verifiers and Relying Parties</t>
            </dd>
            <dt>Fragment identifier considerations:</dt>
            <dd>
              <t>The syntax and semantics of fragment identifiers are as specified for "application/cbor". (No fragment identification syntax is currently defined for "application/cbor".)</t>
            </dd>
            <dt>Person &amp; email address to contact for further information:</dt>
            <dd>
              <t>RATS WG mailing list (rats@ietf.org)</t>
            </dd>
            <dt>Intended usage:</dt>
            <dd>
              <t>COMMON</t>
            </dd>
            <dt>Restrictions on usage:</dt>
            <dd>
              <t>none</t>
            </dd>
            <dt>Author/Change controller:</dt>
            <dd>
              <t>IETF</t>
            </dd>
            <dt>Provisional registration:</dt>
            <dd>
              <t>no</t>
            </dd>
          </dl>
        </section>
        <section anchor="applicationmeasured-componentjson">
          <name><tt>application/measured-component+json</tt></name>
          <dl spacing="compact">
            <dt>Type name:</dt>
            <dd>
              <t>application</t>
            </dd>
            <dt>Subtype name:</dt>
            <dd>
              <t>measured-component+json</t>
            </dd>
            <dt>Required parameters:</dt>
            <dd>
              <t>n/a</t>
            </dd>
            <dt>Optional parameters:</dt>
            <dd>
              <t>n/a</t>
            </dd>
            <dt>Encoding considerations:</dt>
            <dd>
              <t>binary (JSON is UTF-8-encoded text)</t>
            </dd>
            <dt>Security considerations:</dt>
            <dd>
              <t><xref target="seccons"/> of RFCthis</t>
            </dd>
            <dt>Interoperability considerations:</dt>
            <dd>
              <t>n/a</t>
            </dd>
            <dt>Published specification:</dt>
            <dd>
              <t>RFCthis</t>
            </dd>
            <dt>Applications that use this media type:</dt>
            <dd>
              <t>Attesters, Verifiers and Relying Parties</t>
            </dd>
            <dt>Fragment identifier considerations:</dt>
            <dd>
              <t>The syntax and semantics of fragment identifiers are as specified for "application/json". (No fragment identification syntax is currently defined for "application/json".)</t>
            </dd>
            <dt>Person &amp; email address to contact for further information:</dt>
            <dd>
              <t>RATS WG mailing list (rats@ietf.org)</t>
            </dd>
            <dt>Intended usage:</dt>
            <dd>
              <t>COMMON</t>
            </dd>
            <dt>Restrictions on usage:</dt>
            <dd>
              <t>none</t>
            </dd>
            <dt>Author/Change controller:</dt>
            <dd>
              <t>IETF</t>
            </dd>
            <dt>Provisional registration:</dt>
            <dd>
              <t>no</t>
            </dd>
          </dl>
        </section>
      </section>
      <section anchor="measured-component-content-format-registrations">
        <name>Measured Component Content-Format Registrations</name>
        <t>IANA is requested to register two Content-Format numbers in the "CoAP Content-Formats" sub-registry, within the "Constrained RESTful Environments (CoRE) Parameters" Registry <xref target="IANA.core-parameters"/>, as follows:</t>
        <table>
          <thead>
            <tr>
              <th align="left">Content-Type</th>
              <th align="left">Content Coding</th>
              <th align="left">ID</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">application/measured-component+cbor</td>
              <td align="left">-</td>
              <td align="left">TBD1</td>
              <td align="left">RFCthis</td>
            </tr>
            <tr>
              <td align="left">application/measured-component+json</td>
              <td align="left">-</td>
              <td align="left">TBD2</td>
              <td align="left">RFCthis</td>
            </tr>
          </tbody>
        </table>
        <t>If possible, TBD1 and TBD2 should be assigned in the 256..9999 range.</t>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="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="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="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:.plus,.cat, and.det for the construction of constants;.abnf/.abnfb for including ABNF (RFC 5234 and RFC 7405) in CDDL specifications; and.feature 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="RFC9741">
          <front>
            <title>Concise Data Definition Language (CDDL): Additional Control Operators for the Conversion and Processing of Text</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="March" year="2025"/>
            <abstract>
              <t>The Concise Data Definition Language (CDDL), standardized in RFC 8610, provides "control operators" as its main language extension point. RFCs have added to this extension point in both an application-specific and a more general way.</t>
              <t>The present document defines a number of additional generally applicable control operators for text conversion (bytes, integers, printf-style formatting, and JSON) and for an operation on text.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9741"/>
          <seriesInfo name="DOI" value="10.17487/RFC9741"/>
        </reference>
        <reference anchor="RFC9711">
          <front>
            <title>The Entity Attestation Token (EAT)</title>
            <author fullname="L. Lundblade" initials="L." surname="Lundblade"/>
            <author fullname="G. Mandyam" initials="G." surname="Mandyam"/>
            <author fullname="J. O'Donoghue" initials="J." surname="O'Donoghue"/>
            <author fullname="C. Wallace" initials="C." surname="Wallace"/>
            <date month="April" year="2025"/>
            <abstract>
              <t>An Entity Attestation Token (EAT) provides an attested claims set that describes the state and characteristics of an entity, a device such as a smartphone, an Internet of Things (IoT) device, network equipment, or such. This claims set is used by a relying party, server, or service to determine the type and degree of trust placed in the entity.</t>
              <t>An EAT is either a CBOR Web Token (CWT) or a JSON Web Token (JWT) with attestation-oriented claims.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9711"/>
          <seriesInfo name="DOI" value="10.17487/RFC9711"/>
        </reference>
        <reference anchor="SEMVER" target="https://semver.org/spec/v2.0.0.html">
          <front>
            <title>Semantic Versioning 2.0.0</title>
            <author>
              <organization/>
            </author>
            <date year="2013"/>
          </front>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="IANA.named-information" target="https://www.iana.org/assignments/named-information">
          <front>
            <title>Named Information</title>
            <author>
              <organization>IANA</organization>
            </author>
          </front>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC3444">
          <front>
            <title>On the Difference between Information Models and Data Models</title>
            <author fullname="A. Pras" initials="A." surname="Pras"/>
            <author fullname="J. Schoenwaelder" initials="J." surname="Schoenwaelder"/>
            <date month="January" year="2003"/>
            <abstract>
              <t>There has been ongoing confusion about the differences between Information Models and Data Models for defining managed objects in network management. This document explains the differences between these terms by analyzing how existing network management model specifications (from the IETF and other bodies such as the International Telecommunication Union (ITU) or the Distributed Management Task Force (DMTF)) fit into the universe of Information Models and Data Models. This memo documents the main results of the 8th workshop of the Network Management Research Group (NMRG) of the Internet Research Task Force (IRTF) hosted by the University of Texas at Austin. This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3444"/>
          <seriesInfo name="DOI" value="10.17487/RFC3444"/>
        </reference>
        <reference anchor="RFC9783">
          <front>
            <title>Arm's Platform Security Architecture (PSA) Attestation Token</title>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <author fullname="S. Frost" initials="S." surname="Frost"/>
            <author fullname="M. Brossard" initials="M." surname="Brossard"/>
            <author fullname="A. Shaw" initials="A." surname="Shaw"/>
            <author fullname="T. Fossati" initials="T." surname="Fossati"/>
            <date month="June" year="2025"/>
            <abstract>
              <t>Arm's Platform Security Architecture (PSA) is a family of hardware and firmware security specifications, along with open-source reference implementations, aimed at helping device makers and chip manufacturers integrate best-practice security into their products. Devices that comply with PSA can generate attestation tokens as described in this document, which serve as the foundation for various protocols, including secure provisioning and network access control. This document specifies the structure and semantics of the PSA attestation token.</t>
              <t>The PSA attestation token is a profile of the Entity Attestation Token (EAT). This specification describes the claims used in an attestation token generated by PSA-compliant systems, how these claims are serialized for transmission, and how they are cryptographically protected.</t>
              <t>This Informational document is published as an Independent Submission to improve interoperability with Arm's architecture. It is not a standard nor a product of the IETF.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9783"/>
          <seriesInfo name="DOI" value="10.17487/RFC9783"/>
        </reference>
        <reference anchor="RFC9393">
          <front>
            <title>Concise Software Identification Tags</title>
            <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
            <author fullname="J. Fitzgerald-McKay" initials="J." surname="Fitzgerald-McKay"/>
            <author fullname="C. Schmidt" initials="C." surname="Schmidt"/>
            <author fullname="D. Waltermire" initials="D." surname="Waltermire"/>
            <date month="June" 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="RFC" value="9393"/>
          <seriesInfo name="DOI" value="10.17487/RFC9393"/>
        </reference>
        <reference anchor="RFC9839">
          <front>
            <title>Unicode Character Repertoire Subsets</title>
            <author fullname="T. Bray" initials="T." surname="Bray"/>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
            <date month="August" year="2025"/>
            <abstract>
              <t>This document discusses subsets of the Unicode character repertoire for use in protocols and data formats and specifies three subsets recommended for use in IETF specifications.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9839"/>
          <seriesInfo name="DOI" value="10.17487/RFC9839"/>
        </reference>
        <reference anchor="UEFI2" target="https://uefi.org/sites/default/files/resources/UEFI_Spec_2_10_Aug29.pdf">
          <front>
            <title>Unified Extensible Firmware Interface (UEFI) Specification</title>
            <author>
              <organization>UEFI Forum, Inc.</organization>
            </author>
            <date year="2022" month="August"/>
          </front>
        </reference>
        <reference anchor="TBBR-CLIENT" target="https://developer.arm.com/documentation/den0006">
          <front>
            <title>Trusted Board Boot Requirements Client (TBBR-CLIENT) Armv8-A</title>
            <author>
              <organization>Arm Ltd</organization>
            </author>
            <date year="2018" month="September"/>
          </front>
          <seriesInfo name="ARM" value="DEN0006D"/>
        </reference>
        <reference anchor="IANA.media-types" target="https://www.iana.org/assignments/media-types">
          <front>
            <title>Media Types</title>
            <author>
              <organization>IANA</organization>
            </author>
          </front>
        </reference>
        <reference anchor="IANA.core-parameters" target="https://www.iana.org/assignments/core-parameters">
          <front>
            <title>Constrained RESTful Environments (CoRE) Parameters</title>
            <author>
              <organization>IANA</organization>
            </author>
          </front>
        </reference>
      </references>
    </references>
    <?line 593?>

<section anchor="collected-cddl">
      <name>Collected CDDL</name>
      <t>This appendix contains all the CDDL definitions included in this specification.</t>
      <sourcecode type="cddl"><![CDATA[
=============== NOTE: '\' line wrapping per RFC 8792 ================

measured-component = {
  component-id-label => component-id,
  measurement,
  ? authorities-label => [+ authority-id-type],
  ? flags-label => flags-type,
}
measurement //= (digested-measurement-label => digest // raw-\
                                          measurement-label => bytes)
authority-id-type = eat.JC<bytes-b64u, bytes>
flags-type = eat.JC<bytes8-b64u, bytes8>
component-id = [
  name: text,
  ? version: version,
]
version = [
  val: text,
  ? scheme: coswid.$version-scheme,
]
digest = [
  alg: int / text,
  val: digest-value-type,
]
digest-value-type = eat.JC<bytes-b64u, bytes>
bytes-b64u = text .b64u bytes
bytes8 = bytes .size 8
bytes8-b64u = text .b64u bytes8
component-id-label = eat.JC<"id", 1>
digested-measurement-label = eat.JC<"digested-measurement", 2>
raw-measurement-label = eat.JC<"raw-measurement", 5>
authorities-label = eat.JC<"authorities", 3>
flags-label = eat.JC<"flags", 4>
mc-cbor = bytes .cbor measured-component
mc-json = text .json measured-component
$measurements-body-cbor /= mc-cbor / mc-json
$measurements-body-json /= mc-json / text .b64u mc-cbor
eat.JSON-ONLY<J> = J .feature "json"
eat.CBOR-ONLY<C> = C .feature "cbor"
eat.JC<J, C> = eat.JSON-ONLY<J> / eat.CBOR-ONLY<C>
coswid.$version-scheme /= coswid.multipartnumeric / coswid.\
multipartnumeric-suffix / coswid.alphanumeric / coswid.decimal / \
                                           coswid.semver / int / text
coswid.multipartnumeric = 1
coswid.multipartnumeric-suffix = 2
coswid.alphanumeric = 3
coswid.decimal = 4
coswid.semver = 16384
]]></sourcecode>
    </section>
    <section anchor="open-issues">
      <name>Open Issues</name>
      <t>The list of currently open issues for this documents can be found at <eref target="https://github.com/ietf-rats-wg/draft-ietf-rats-eat-measured-component/issues"/>.</t>
      <t><cref>Note to RFC Editor: please remove before publication.</cref></t>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The authors would like to thank
Carl Wallace,
Carsten Bormann,
Deb Cooley,
Dionna Glaze,
Giridhar Mandyam,
Houda Labiod,
<contact fullname="Ionuț Mihalcea"/>,
Jun Zhang,
Laurence Lundblade,
Michael Richardson,
Muhammad Usama Sardar
and
Yogesh Deshpande
for providing comments, reviews and suggestions that greatly improved this document.</t>
      <t>The authors would also like to thank Ken Takayama for providing an implementation of this specification in the veraison/eat package.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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

-->

</rfc>
