Internet-Draft | EAT Measured Component | March 2024 |
Frost, et al. | Expires 4 September 2024 | [Page] |
This document defines a "measured components" format that can be used with the EAT Measurements claim.¶
This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.¶
Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at https://datatracker.ietf.org/drafts/current/.¶
Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."¶
This Internet-Draft will expire on 4 September 2024.¶
Copyright (c) 2024 IETF Trust and the persons identified as the document authors. All rights reserved.¶
This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Revised BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Revised BSD License.¶
Section 4.2.16 of [I-D.ietf-rats-eat] defines a Measurements claim that:¶
"[c]ontains descriptions, lists, evidence or measurements of the software that exists on the entity or any other measurable subsystem of the entity."¶
This claim allows for different measurement formats, each identified by a different CoAP Content-Format (Section 12.3 of [RFC7252]). Initially, the only specified format is CoSWID of type "evidence", as per Section 2.9.4 of [RFC9393].¶
This document introduces the "measured components" format that can be used with the EAT Measurements claim in addition or as an alternative to CoSWID.¶
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here.¶
In this document, CDDL [RFC8610] [RFC9165] [I-D.ietf-cbor-cddl-modules] [I-D.ietf-cbor-cddl-more-control] is used to describe the data formats.¶
A measured component information element includes the computed digest on the software or configuration payload, along with metadata that helps in identifying the measurement and the authorizing entity for component installation.¶
Table 1 describes the information model of a measured component.¶
IE | Description | Requirement Level |
---|---|---|
Component Name | The name given to a 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 signaling from the appraisal procedure to the relying parties. | REQUIRED |
Component Version | A value representing the specific release or development version of the measured component. Using Semantic Versioning is RECOMMENDED. | OPTIONAL |
Digest Value | Hash of the invariant part of the component that is loaded in memory at startup time. | REQUIRED |
Digest Algorithm | Hash algorithm used to compute the Digest Value. | REQUIRED |
Signer | A unique identifier of the entity authorizing installation of the measured component. | REQUIRED |
Countersigners | One or more unique identifiers of further authorizing entities for component installation | OPTIONAL |
The data model is inspired by the "PSA software component" claim (Section 4.4.1 of [I-D.tschofenig-rats-psa-token]), which has been slightly refactored to take into account the recommendations about new EAT claims design in Appendix E of [I-D.ietf-rats-eat].¶
The following types and semantics have been reused:¶
COSE Key Thumbprint [I-D.ietf-cose-key-thumbprint], for signer and countersigners;¶
CoSWID software name and version [RFC9393], for component name and version;¶
CoRIM digest [I-D.ietf-rats-corim], for digest value and algorithm.¶
The measured-component
data item:¶
measured-component = [ id: component-id measurement: corim.digest signer: ckt ? countersigners: [ + ckt ] ] ; COSE Key Thumbprint ckt = bytes component-id = [ name: text ? version: version ] ;# import $version-scheme from rfc9393 as coswid version = [ val: text ? scheme: coswid.$version-scheme ] ; eventually: ";#import digest from rfcxxxx as corim" corim.digest = [ alg: (int / text) val: bytes ]¶
The CDDL extending the EAT Measurements format:¶
$mc-cbor = bstr .cbor measured-component $mc-json = tstr .json measured-component EAT CBOR (`.feature "cbor"`) $measurements-body-cbor /= $mc-cbor ; native $measurements-body-cbor /= tstr .b64u $mc-json ; tunnel ; EAT JSON (`.feature "json"`) $measurements-body-json /= $mc-json ; native $measurements-body-json /= tstr .b64u $mc-cbor ; tunnel¶
(The examples are CBOR only. JSON examples will be added in a future version of this document.)¶
The example in Figure 1 is a measured component with all the fields populated.¶
The example in Figure 2 is the same measured component as above but used as the format of a measurements
claim in a EAT claims-set.¶
Note that the example uses a CoAP Content-Format value from the experimental range (65000), which will change to the value assigned by IANA for the application/measured-component+cbor
Content-Format.¶
Note also 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.¶
RFC Editor: replace "RFCthis" with the RFC number assigned to this document.¶
IANA is requested to add the following media types to the "Media Types" registry [IANA.media-types].¶
Name | Template | Reference |
---|---|---|
mc+cbor
|
application/measured-component+cbor
|
RFCthis |
mc+json
|
application/measured-component+json
|
RFCthis |
application/measured-component+cbor
application¶
measured-component+cbor¶
n/a¶
n/a¶
binary (CBOR)¶
n/a¶
RFCthis¶
Attesters, Verifiers and Relying Parties¶
The syntax and semantics of fragment identifiers are as specified for "application/cbor". (No fragment identification syntax is currently defined for "application/cbor".)¶
RATS WG mailing list (rats@ietf.org)¶
COMMON¶
none¶
IETF¶
no¶
application/measured-component+json
application¶
measured-component+json¶
n/a¶
n/a¶
binary (JSON is UTF-8-encoded text)¶
n/a¶
RFCthis¶
Attesters, Verifiers and Relying Parties¶
The syntax and semantics of fragment identifiers are as specified for "application/json". (No fragment identification syntax is currently defined for "application/json".)¶
RATS WG mailing list (rats@ietf.org)¶
COMMON¶
none¶
IETF¶
no¶
IANA is requested to register two Content-Format numbers in the "CoAP Content-Formats" sub-registry, within the "Constrained RESTful Environments (CoRE) Parameters" Registry [IANA.core-parameters], as follows:¶
Content-Type | Content Coding | ID | Reference |
---|---|---|---|
application/measured-component+cbor | - | TBD1 | RFCthis |
application/measured-component+json | - | TBD2 | RFCthis |
The list of currently open issues for this documents can be found at https://github.com/thomas-fossati/draft-fft-rats-eat-measured-component/issues.¶
Note to RFC Editor: please remove before publication.¶
The authors would like to thank TBD for their comments, reviews and suggestions.¶