rfc9782v1.txt | rfc9782.txt | |||
---|---|---|---|---|
skipping to change at line 14 ¶ | skipping to change at line 14 ¶ | |||
Category: Standards Track H. Birkholz | Category: Standards Track H. Birkholz | |||
ISSN: 2070-1721 Fraunhofer SIT | ISSN: 2070-1721 Fraunhofer SIT | |||
T. Fossati | T. Fossati | |||
Linaro | Linaro | |||
April 2025 | April 2025 | |||
Entity Attestation Token (EAT) Media Types | Entity Attestation Token (EAT) Media Types | |||
Abstract | Abstract | |||
Payloads used in Remote ATtestation procedureS (RATS) may require an | The payloads used in Remote ATtestation procedureS (RATS) may require | |||
associated media type for their conveyance, for example, when used in | an associated media type for their conveyance, for example, when the | |||
RESTful APIs. | payloads are used in RESTful APIs. | |||
This memo defines media types to be used for Entity Attestation | This memo defines media types to be used for Entity Attestation | |||
Tokens (EATs). | Tokens (EATs). | |||
Status of This Memo | Status of This Memo | |||
This is an Internet Standards Track document. | This is an Internet Standards Track document. | |||
This document is a product of the Internet Engineering Task Force | This document is a product of the Internet Engineering Task Force | |||
(IETF). It represents the consensus of the IETF community. It has | (IETF). It represents the consensus of the IETF community. It has | |||
skipping to change at line 116 ¶ | skipping to change at line 116 ¶ | |||
[REST-IoT]. | [REST-IoT]. | |||
1.1. Terminology | 1.1. Terminology | |||
This document uses the terms and concepts defined in [RATS-ARCH]. | This document uses the terms and concepts defined in [RATS-ARCH]. | |||
2. EAT Types | 2. EAT Types | |||
Figure 2 illustrates the six EAT wire formats and how they relate to | Figure 2 illustrates the six EAT wire formats and how they relate to | |||
each other. [EAT] defines four of them (CBOR Web Token (CWT), JSON | each other. [EAT] defines four of them (CBOR Web Token (CWT), JSON | |||
Web Token (JWT), and the detached EAT bundle in its JSON and CBOR | Web Token (JWT) [JWT], and the detached EAT bundle in its JSON and | |||
flavours), while [UCCS] defines the Unprotected CWT Claims Set (UCCS) | CBOR flavours), while [UCCS] defines the Unprotected CWT Claims Set | |||
and Unprotected JWT Claims Sets (UJCS). | (UCCS) and Unprotected JWT Claims Sets (UJCS). | |||
.-----. | .-----. | |||
.----+ UJCS |<-------------------------. | .----+ UJCS |<-------------------------. | |||
| '-----' | | | '-----' | | |||
| | | | | | |||
| .-----. | | | .-----. | | |||
+-----+ UCCS |<-----------------------. | | +-----+ UCCS |<-----------------------. | | |||
| '-----' | | | | '-----' | | | |||
| | | | | | | | |||
| .------. | | | | .------. | | | |||
skipping to change at line 163 ¶ | skipping to change at line 163 ¶ | |||
Figure 2: EAT Types | Figure 2: EAT Types | |||
3. A Media Type Parameter for EAT Profiles | 3. A Media Type Parameter for EAT Profiles | |||
EAT is an open and flexible format. To improve interoperability, | EAT is an open and flexible format. To improve interoperability, | |||
Section 6 of [EAT] defines the concept of EAT profiles. Profiles are | Section 6 of [EAT] defines the concept of EAT profiles. Profiles are | |||
used to constrain the parameters that producers and consumers of a | used to constrain the parameters that producers and consumers of a | |||
specific EAT profile need to understand in order to interoperate, | specific EAT profile need to understand in order to interoperate, | |||
e.g., the number and type of claims, which serialisation format, the | e.g., the number and type of claims, which serialisation format, the | |||
supported signature schemes, etc. EATs carry an in-band profile | supported signature schemes, etc. EATs carry an in-band profile | |||
identifier using the eat_profile claim (see Section 4.3.2 of [EAT]). | identifier using the "eat_profile" claim (see Section 4.3.2 of | |||
The value of the eat_profile claim is either an OID or a URI. | [EAT]). The value of the "eat_profile" claim is either an OID or a | |||
URI. | ||||
The media types defined in this document include an optional | The media types defined in this document include an optional | |||
eat_profile parameter that can be used to mirror the eat_profile | "eat_profile" parameter that can be used to mirror the "eat_profile" | |||
claim of the transported EAT. Exposing the EAT profile at the API | claim of the transported EAT. Exposing the EAT profile at the API | |||
layer allows API routers to dispatch payloads directly to the | layer allows API routers to dispatch payloads directly to the | |||
profile-specific processor without having to snoop into the request | profile-specific processor without having to snoop into the request | |||
bodies. This design also provides a finer-grained and scalable type | bodies. This design also provides a finer-grained and scalable type | |||
system that matches the inherent extensibility of EAT. The | system that matches the inherent extensibility of EAT. The | |||
expectation being that a certain EAT profile automatically obtains a | expectation being that a certain EAT profile automatically obtains a | |||
media type derived from the base (e.g., application/eat+cwt) by | media type derived from the base (e.g., application/eat+cwt) by | |||
populating the eat_profile parameter with the corresponding OID or | populating the "eat_profile" parameter with the corresponding OID or | |||
URL. | URL. | |||
When the parameterised version of the EAT media type is used in HTTP | When the parameterised version of the EAT media type is used in HTTP | |||
(for example, with the "Content-Type" and "Accept" headers) and the | (for example, with the "Content-Type" and "Accept" headers) and the | |||
value is an absolute URI (Section 4.3 of [URI]), the parameter-value | value is an absolute URI (Section 4.3 of [URI]), the parameter-value | |||
(Appendix A of [HTTP]) uses the quoted-string encoding, for example: | (Appendix A of [HTTP]) uses the quoted-string encoding, for example: | |||
application/eat+jwt; eat_profile="tag:evidence.example,2022" | application/eat+jwt; eat_profile="tag:evidence.example,2022" | |||
Instead, when the EAT profile is an OID, the token encoding (i.e., | Instead, when the EAT profile is an OID, the token encoding (i.e., | |||
skipping to change at line 638 ¶ | skipping to change at line 639 ¶ | |||
<https://www.rfc-editor.org/info/rfc9205>. | <https://www.rfc-editor.org/info/rfc9205>. | |||
[RATS-ARCH] | [RATS-ARCH] | |||
Birkholz, H., Thaler, D., Richardson, M., Smith, N., and | Birkholz, H., Thaler, D., Richardson, M., Smith, N., and | |||
W. Pan, "Remote ATtestation procedureS (RATS) | W. Pan, "Remote ATtestation procedureS (RATS) | |||
Architecture", RFC 9334, DOI 10.17487/RFC9334, January | Architecture", RFC 9334, DOI 10.17487/RFC9334, January | |||
2023, <https://www.rfc-editor.org/info/rfc9334>. | 2023, <https://www.rfc-editor.org/info/rfc9334>. | |||
[REST-IoT] Keränen, A., Kovatsch, M., and K. Hartke, "Guidance on | [REST-IoT] Keränen, A., Kovatsch, M., and K. Hartke, "Guidance on | |||
RESTful Design for Internet of Things Systems", Work in | RESTful Design for Internet of Things Systems", Work in | |||
Progress, Internet-Draft, draft-irtf-t2trg-rest-iot-15, 21 | Progress, Internet-Draft, draft-irtf-t2trg-rest-iot-16, 23 | |||
October 2024, <https://datatracker.ietf.org/doc/html/ | April 2025, <https://datatracker.ietf.org/doc/html/draft- | |||
draft-irtf-t2trg-rest-iot-15>. | irtf-t2trg-rest-iot-16>. | |||
[TAG] Kindberg, T. and S. Hawke, "The 'tag' URI Scheme", | [TAG] Kindberg, T. and S. Hawke, "The 'tag' URI Scheme", | |||
RFC 4151, DOI 10.17487/RFC4151, October 2005, | RFC 4151, DOI 10.17487/RFC4151, October 2005, | |||
<https://www.rfc-editor.org/info/rfc4151>. | <https://www.rfc-editor.org/info/rfc4151>. | |||
Acknowledgments | Acknowledgments | |||
Thank you Carl Wallace, Carsten Bormann, Dave Thaler, Deb Cooley, | Thank you Carl Wallace, Carsten Bormann, Dave Thaler, Deb Cooley, | |||
Éric Vyncke, Francesca Palombini, Jouni Korhonen, Kathleen Moriarty, | Éric Vyncke, Francesca Palombini, Jouni Korhonen, Kathleen Moriarty, | |||
Michael Richardson, Murray Kucherawy, Orie Steele, Paul Howard, Roman | Michael Richardson, Murray Kucherawy, Orie Steele, Paul Howard, Roman | |||
End of changes. 6 change blocks. | ||||
13 lines changed or deleted | 14 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. |