rfc9781.original | rfc9781.txt | |||
---|---|---|---|---|
RATS Working Group H. Birkholz | Internet Engineering Task Force (IETF) H. Birkholz | |||
Internet-Draft Fraunhofer SIT | Request for Comments: 9781 Fraunhofer SIT | |||
Intended status: Standards Track J. O'Donoghue | Category: Standards Track J. O'Donoghue | |||
Expires: 7 May 2025 Qualcomm Technologies Inc. | ISSN: 2070-1721 Qualcomm Technologies Inc. | |||
N. Cam-Winget | N. Cam-Winget | |||
Cisco Systems | Cisco Systems | |||
C. Bormann | C. Bormann | |||
Universität Bremen TZI | Universität Bremen TZI | |||
3 November 2024 | April 2025 | |||
A CBOR Tag for Unprotected CWT Claims Sets | A Concise Binary Object Representation (CBOR) Tag for Unprotected CBOR | |||
draft-ietf-rats-uccs-12 | Web Token Claims Sets (UCCS) | |||
Abstract | Abstract | |||
This document defines the Unprotected CWT Claims Set (UCCS), a data | This document defines the Unprotected CWT Claims Set (UCCS), a data | |||
format for representing a CBOR Web Token (CWT) Claims Set without | format for representing a CBOR Web Token (CWT) Claims Set without | |||
protecting it by a signature, message authentication code (MAC), or | protecting it by a signature, Message Authentication Code (MAC), or | |||
encryption. UCCS enables the use of CWT claims in environments where | encryption. UCCS enables the use of CWT claims in environments where | |||
protection is provided by other means, such as secure communication | protection is provided by other means, such as secure communication | |||
channels or trusted execution environments. This specification | channels or trusted execution environments. This specification | |||
defines a CBOR tag for UCCS and describes the UCCS format, its | defines a CBOR tag for UCCS and describes the UCCS format, its | |||
encoding, and processing considerations, and discusses security | encoding, and its processing considerations. It also discusses | |||
implications of using unprotected claims sets. | security implications of using unprotected claims sets. | |||
// (This editors' note will be removed by the RFC editor:) The | ||||
// present revision (–12) contains remaining document changes based | ||||
// on feedback from the IESG evaluation and has been submitted as | ||||
// input to IETF 121. | ||||
About This Document | ||||
This note is to be removed before publishing as an RFC. | ||||
Status information for this document may be found at | ||||
https://datatracker.ietf.org/doc/draft-ietf-rats-uccs/. | ||||
Discussion of this document takes place on the Remote ATtestation | ||||
procedureS (rats) Working Group mailing list (mailto:rats@ietf.org), | ||||
which is archived at https://mailarchive.ietf.org/arch/browse/rats/. | ||||
Subscribe at https://www.ietf.org/mailman/listinfo/rats/. | ||||
Source for this draft and an issue tracker can be found at | ||||
https://github.com/ietf-rats-wg/draft-ietf-rats-uccs. | ||||
Status of This Memo | Status of This Memo | |||
This Internet-Draft is submitted in full conformance with the | This is an Internet Standards Track document. | |||
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 | This document is a product of the Internet Engineering Task Force | |||
and may be updated, replaced, or obsoleted by other documents at any | (IETF). It represents the consensus of the IETF community. It has | |||
time. It is inappropriate to use Internet-Drafts as reference | received public review and has been approved for publication by the | |||
material or to cite them other than as "work in progress." | Internet Engineering Steering Group (IESG). Further information on | |||
Internet Standards is available in Section 2 of RFC 7841. | ||||
This Internet-Draft will expire on 7 May 2025. | Information about the current status of this document, any errata, | |||
and how to provide feedback on it may be obtained at | ||||
https://www.rfc-editor.org/info/rfc9781. | ||||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2024 IETF Trust and the persons identified as the | Copyright (c) 2025 IETF Trust and the persons identified as the | |||
document authors. All rights reserved. | document authors. All rights reserved. | |||
This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
Provisions Relating to IETF Documents (https://trustee.ietf.org/ | Provisions Relating to IETF Documents | |||
license-info) in effect on the date of publication of this document. | (https://trustee.ietf.org/license-info) in effect on the date of | |||
Please review these documents carefully, as they describe your rights | publication of this document. Please review these documents | |||
and restrictions with respect to this document. Code Components | carefully, as they describe your rights and restrictions with respect | |||
extracted from this document must include Revised BSD License text as | to this document. Code Components extracted from this document must | |||
described in Section 4.e of the Trust Legal Provisions and are | include Revised BSD License text as described in Section 4.e of the | |||
provided without warranty as described in the Revised BSD License. | Trust Legal Provisions and are provided without warranty as described | |||
in the Revised BSD License. | ||||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Introduction | |||
1.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 4 | 1.1. Terminology | |||
1.2. Structure of this document . . . . . . . . . . . . . . . 5 | 1.2. Structure of This Document | |||
2. Deployment and Usage of UCCS . . . . . . . . . . . . . . . . 5 | 2. Deployment and Usage of UCCS | |||
3. Characteristics of a Secure Channel . . . . . . . . . . . . . 6 | 3. Characteristics of a Secure Channel | |||
4. UCCS in RATS Conceptual Message Conveyance . . . . . . . . . 7 | 4. UCCS in RATS Conceptual Message Conveyance | |||
5. Considerations for Using UCCS in Other RATS Contexts . . . . 8 | 5. Considerations for Using UCCS in Other RATS Contexts | |||
5.1. Delegated Attestation . . . . . . . . . . . . . . . . . . 8 | 5.1. Delegated Attestation | |||
5.2. Privacy Preservation . . . . . . . . . . . . . . . . . . 9 | 5.2. Privacy Preservation | |||
6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 9 | 6. IANA Considerations | |||
6.1. CBOR Tag registration . . . . . . . . . . . . . . . . . . 9 | 6.1. CBOR Tag Registration | |||
6.2. Media-Type application/uccs+cbor Registration . . . . . . 10 | 6.2. Media-Type application/uccs+cbor Registration | |||
6.3. Media-Type application/ujcs+json Registration . . . . . . 10 | 6.3. Media-Type application/ujcs+json Registration | |||
6.4. Content-Format registration . . . . . . . . . . . . . . . 11 | 6.4. Content-Format Registration | |||
7. Security Considerations . . . . . . . . . . . . . . . . . . . 12 | 7. Security Considerations | |||
7.1. General Considerations . . . . . . . . . . . . . . . . . 12 | 7.1. General Considerations | |||
7.2. Algorithm-specific Security Considerations . . . . . . . 13 | 7.2. Algorithm-Specific Security Considerations | |||
8. References . . . . . . . . . . . . . . . . . . . . . . . . . 13 | 8. References | |||
8.1. Normative References . . . . . . . . . . . . . . . . . . 14 | 8.1. Normative References | |||
8.2. Informative References . . . . . . . . . . . . . . . . . 15 | 8.2. Informative References | |||
Appendix A. CDDL . . . . . . . . . . . . . . . . . . . . . . . . 16 | Appendix A. CDDL | |||
Appendix B. Example . . . . . . . . . . . . . . . . . . . . . . 18 | Appendix B. Example | |||
Appendix C. EAT . . . . . . . . . . . . . . . . . . . . . . . . 19 | Appendix C. EAT | |||
Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . 19 | Acknowledgements | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 19 | Authors' Addresses | |||
1. Introduction | 1. Introduction | |||
A CBOR Web Token (CWT) as specified by [RFC8392] is always wrapped in | A CBOR Web Token (CWT) as specified by [RFC8392] is always wrapped in | |||
a CBOR Object Signing and Encryption (COSE, [STD96]) envelope. COSE | a CBOR Object Signing and Encryption (COSE) envelope [STD96]. Among | |||
provides -- among other things -- end-to-end data origin | other things, COSE provides end-to-end data origin authentication and | |||
authentication and integrity protection employed by RFC 8392 as well | integrity protection employed by [RFC8392] as well as optional | |||
as optional encryption for CWTs. Under the right circumstances | encryption for CWTs. Under the right circumstances (Section 3), a | |||
(Section 3), though, a signature providing proof for authenticity and | signature providing proof for authenticity and integrity can be | |||
integrity can be provided through the transfer protocol and thus | provided through the transfer protocol and thus omitted from the | |||
omitted from the information in a CWT without compromising the | information in a CWT without compromising the intended goal of | |||
intended goal of authenticity and integrity. In other words, if | authenticity and integrity. In other words, if communicating parties | |||
communicating parties have a preexisting security association, they | have a preexisting security association, they can reuse it to provide | |||
can reuse it to provide authenticity and integrity for their | authenticity and integrity for their messages, enabling the basic | |||
messages, enabling the basic principle of using resources | principle of using resources parsimoniously. Specifically, if a | |||
parsimoniously. Specifically, if a mutually secured channel is | mutually secured channel is established between two remote peers, and | |||
established between two remote peers, and if that secure channel | if that secure channel provides the required properties (as discussed | |||
provides the required properties (as discussed below), it is possible | below), it is possible to omit the protection provided by COSE, | |||
to omit the protection provided by COSE, creating a use case for | creating a use case for unprotected CWT Claims Sets. Similarly, if | |||
unprotected CWT Claims Sets. Similarly, if there is one-way | there is one-way authentication, the party that did not authenticate | |||
authentication, the party that did not authenticate may be in a | may be in a position to send authentication information through this | |||
position to send authentication information through this channel that | channel that allows the already authenticated party to authenticate | |||
allows the already authenticated party to authenticate the other | the other party; this effectively turns the channel into a mutually | |||
party; this effectively turns the channel into a mutually secured | secured channel. | |||
channel. | ||||
This specification allocates a CBOR tag to mark Unprotected CWT | This specification allocates a CBOR tag to mark Unprotected CWT | |||
Claims Sets (UCCS) as such and discusses conditions for its proper | Claims Sets (UCCS) as such and discusses conditions for its proper | |||
use in the scope of Remote Attestation Procedures (RATS [RFC9334]) | use in the scope of Remote Attestation Procedures (RATS [RFC9334]) | |||
for the conveyance of RATS Conceptual Messages. | for the conveyance of RATS Conceptual Messages. | |||
This specification does not change [RFC8392]: An actual RFC 8392 CWT | This specification does not change [RFC8392]: A CWT as defined by | |||
does not make use of the tag allocated here; the UCCS tag is an | [RFC8392] does not make use of the tag allocated here; the UCCS tag | |||
alternative to using COSE protection and a CWT tag. Consequently, | is an alternative to using COSE protection and a CWT tag. | |||
within the well-defined scope of a secure channel, it can be | Consequently, within the well-defined scope of a secure channel, it | |||
acceptable and economic to use the contents of a CWT without its COSE | can be acceptable and economic to use the contents of a CWT without | |||
container and tag it with a UCCS CBOR tag for further processing | its COSE container and tag it with a UCCS CBOR tag for further | |||
within that scope -- or to use the contents of a UCCS CBOR tag for | processing within that scope -- or to use the contents of a UCCS CBOR | |||
building a CWT to be signed by some entity that can vouch for those | tag for building a CWT to be signed by some entity that can vouch for | |||
contents. | those contents. | |||
1.1. Terminology | 1.1. Terminology | |||
The term Claim is used as in [RFC7519]. | The term Claim is used as in [RFC7519]. | |||
The terms Claim Key, Claim Value, and CWT Claims Set are used as in | The terms Claim Key, Claim Value, and CWT Claims Set are used as in | |||
[RFC8392]. | [RFC8392]. | |||
The terms Attester, Attesting Environment, Evidence, Relying Party | The terms Attester, Attesting Environment, Evidence, Relying Party | |||
and Verifier are used as in [RFC9334]. | and Verifier are used as in [RFC9334]. | |||
UCCS: Unprotected CWT Claims Set(s); CBOR map(s) of Claims as | UCCS: Unprotected CWT Claims Set(s); CBOR map(s) of Claims as | |||
defined by the CWT Claims Registry that are composed of pairs of | defined by the CWT Claims Registry that are composed of pairs of | |||
Claim Keys and Claim Values. | Claim Keys and Claim Values. | |||
Secure Channel: [NIST-SP800-90Ar1] defines a Secure Channel as | Secure Channel: [NIST-SP800-90Ar1] defines a Secure Channel as | |||
follows: | follows: | |||
| "A path for transferring data between two entities or | "A path for transferring data between two entities or | |||
| components that ensures confidentiality, integrity and | components that ensures confidentiality, integrity and replay | |||
| replay protection, as well as mutual authentication between | protection, as well as mutual authentication between the | |||
| the entities or components. The secure channel may be | entities or components. The secure channel may be provided | |||
| provided using approved cryptographic, physical or | using approved cryptographic, physical or procedural methods, | |||
| procedural methods, or a combination thereof." | or a combination thereof." | |||
For the purposes of the present document, we focus on a protected | For the purposes of the present document, we focus on a protected | |||
communication channel used for conveyance that can ensure the same | communication channel used for conveyance that can ensure the same | |||
qualities as CWT without having the COSE protection available: | qualities as a CWT without having COSE protection available, which | |||
mutual authentication, integrity protection, confidentiality. | includes mutual authentication, integrity protection, and | |||
(Replay protection can be added by including a nonce claim such as | confidentiality. (Replay protection can be added by including a | |||
Nonce (claim 10 [IANA.cwt]).) Examples include conveyance via | nonce claim such as Nonce (claim 10 [IANA.cwt]).) Examples | |||
PCIe (Peripheral Component Interconnect Express) IDE (Integrity | include conveyance via PCIe (Peripheral Component Interconnect | |||
and Data Encryption) or a TLS tunnel. | Express), IDE (Integrity and Data Encryption), or a TLS tunnel. | |||
All terms referenced or defined in this section are capitalized in | All terms referenced or defined in this section are capitalized in | |||
the remainder of this document. | the remainder of this document. | |||
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | |||
"OPTIONAL" in this document are to be interpreted as described in | "OPTIONAL" in this document are to be interpreted as described in | |||
[BCP14] (RFC2119) (RFC8174) when, and only when, they appear in all | BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all | |||
capitals, as shown here. | capitals, as shown here. | |||
1.2. Structure of this document | 1.2. Structure of This Document | |||
Section 2 briefly discusses use cases for UCCS. Section 3 addresses | Section 2 briefly discusses use cases for UCCS. Section 3 addresses | |||
general characteristics of secure channels, followed by a specific | general characteristics of secure channels, followed by a specific | |||
discussion of using them in the context of RATS Conceptual Message | discussion of using them in the context of RATS Conceptual Message | |||
Conveyance in Section 4, and finally some more forward-looking | Conveyance in Section 4, and more forward-looking considerations for | |||
considerations for using UCCS in other RATS contexts in Section 5. | using UCCS in other RATS contexts are discussed in Section 5. This | |||
Conventional sections (IANA Considerations, Security Considerations, | is followed by the IANA Considerations, Security Considerations, | |||
Normative References, and Informative References) follow. The | Normative References, and Informative References. The normative | |||
normative Appendix A provides a formal definition of the structure of | Appendix A provides a formal definition of the structure of UCCS, as | |||
UCCS as no formal definition of CWT Claims Sets was provided in | no formal definition of CWT Claims Sets was provided in [RFC8392]. | |||
[RFC8392]. This employs the Concise Data Definition Language (CDDL) | This employs the Concise Data Definition Language (CDDL) [RFC8610], | |||
[RFC8610], using its ability to also describe the structurally | using its ability to also describe the structurally similar | |||
similar Unprotected JWT Claims Sets [RFC7519] (UJCS) in the same | Unprotected JWT Claims Sets (UJCS) [RFC7519] in the same definition. | |||
definition. Appendix B provides an (informative) example for CBOR- | Appendix B provides an (informative) example for CBOR-Tagged UCCS. | |||
Tagged UCCS. The normative Appendix C provides CDDL rules that add | The normative Appendix C provides CDDL rules that add UCCS-format | |||
UCCS-format tokens to Entity Attestation Tokens (EATs, see | tokens to Entity Attestation Tokens (EATs) [RFC9711] using its | |||
[I-D.ietf-rats-eat]) using its predefined extension points. | predefined extension points. | |||
2. Deployment and Usage of UCCS | 2. Deployment and Usage of UCCS | |||
Usage scenarios involving the conveyance of Claims, in particular | Usage scenarios involving the conveyance of Claims (RATS, in | |||
RATS, require a standardized data definition and encoding format that | particular) require a standardized data definition and encoding | |||
can be transferred and transported using different communication | format that can be transferred and transported using different | |||
channels. As these are Claims, the Claims Sets defined in [RFC8392] | communication channels. As these are Claims, the Claims Sets defined | |||
are a suitable format. However, the way these Claims are secured | in [RFC8392] are a suitable format. However, the way these Claims | |||
depends on the deployment, the security capabilities of the device, | are secured depends on the deployment, the security capabilities of | |||
as well as their software stack. For example, a Claim may be | the device, as well as their software stack. For example, a Claim | |||
securely stored and conveyed using a device's Trusted Execution | may be securely stored and conveyed using a device's Trusted | |||
Environment (TEE, see [RFC9397]) or a Trusted Platform Module (TPM, | Execution Environment (TEE) [RFC9397] or a Trusted Platform Module | |||
see [TPM2]). Especially in some resource-constrained environments, | (TPM) [TPM2]. Especially in some resource-constrained environments, | |||
the same process that provides the secure communication transport is | the same process that provides the secure communication transport is | |||
also the delegate to compose the Claim to be conveyed. Whether it is | also the delegate to compose the Claim to be conveyed. Whether it is | |||
a transfer or transport, a Secure Channel is presumed to be used for | a transfer or transport, a Secure Channel is presumed to be used for | |||
conveying such UCCS. The following sections elaborate on Secure | conveying such UCCS. The following sections elaborate on Secure | |||
Channel characteristics in general and further describe RATS usage | Channel characteristics in general and further describe RATS usage | |||
scenarios and corresponding requirements for UCCS deployment. | scenarios and corresponding requirements for UCCS deployment. | |||
3. Characteristics of a Secure Channel | 3. Characteristics of a Secure Channel | |||
A Secure Channel for the conveyance of UCCS needs to provide the | A Secure Channel for the conveyance of UCCS needs to provide the | |||
skipping to change at page 7, line 9 ¶ | skipping to change at line 251 ¶ | |||
As UCCS were initially created for use in RATS Secure Channels, the | As UCCS were initially created for use in RATS Secure Channels, the | |||
following section provides a discussion of their use in these | following section provides a discussion of their use in these | |||
channels. Where other environments are intended to be used to convey | channels. Where other environments are intended to be used to convey | |||
UCCS, similar considerations need to be documented before UCCS can be | UCCS, similar considerations need to be documented before UCCS can be | |||
used. | used. | |||
4. UCCS in RATS Conceptual Message Conveyance | 4. UCCS in RATS Conceptual Message Conveyance | |||
This section describes a detailed usage scenario for UCCS in the | This section describes a detailed usage scenario for UCCS in the | |||
context of RATS in conjunction with its attendant security | context of RATS in conjunction with its attendant security | |||
requirements. The use of UCCS tag CPA601 outside of the RATS context | requirements. The use of UCCS tag 601 outside of the RATS context | |||
MUST come with additional instruction leaflets and security | MUST come with additional instruction leaflets and security | |||
considerations. | considerations. | |||
For the purposes of this section, any RATS role can be the sender or | For the purposes of this section, any RATS role can be the sender or | |||
the receiver of the UCCS. | the receiver of the UCCS. | |||
Secure Channels can be transient in nature. For the purposes of this | Secure Channels can be transient in nature. For the purposes of this | |||
specification, the mechanisms used to establish a Secure Channel are | specification, the mechanisms used to establish a Secure Channel are | |||
out of scope. | out of scope. | |||
In the scope of RATS Claims, the receiver MUST authenticate the | In the scope of RATS Claims, the receiver MUST authenticate the | |||
sender as part of the establishment of the Secure Channel. | sender as part of the establishment of the Secure Channel. | |||
Furthermore, the channel MUST provide integrity of the communication | Furthermore, the channel MUST provide integrity of the communication | |||
between the communicating RATS roles. For data confidentiality | between the communicating RATS roles. For data confidentiality | |||
[RFC4949], the receiving side MUST be authenticated as well; this is | [RFC4949], the receiving side MUST be authenticated as well. This is | |||
achieved if the sender and receiver mutually authenticate when | achieved if the sender and receiver mutually authenticate when | |||
establishing the Secure Channel. The quality of the receiver's | establishing the Secure Channel. The quality of the receiver's | |||
authentication and authorization will influence whether the sender | authentication and authorization will influence whether the sender | |||
can disclose the UCCS. | can disclose the UCCS. | |||
The extent to which a Secure Channel can provide assurances that UCCS | The extent to which a Secure Channel can provide assurances that UCCS | |||
originate from a trustworthy Attesting Environment depends on the | originate from a trustworthy Attesting Environment depends on the | |||
characteristics of both the cryptographic mechanisms used to | characteristics of both the cryptographic mechanisms used to | |||
establish the channel and the characteristics of the Attesting | establish the channel and the characteristics of the Attesting | |||
Environment itself. The assurance provided to a Relying Party | Environment itself. The assurance provided to a Relying Party | |||
skipping to change at page 8, line 10 ¶ | skipping to change at line 293 ¶ | |||
cryptographic algorithms used are similar to COSE, the considerations | cryptographic algorithms used are similar to COSE, the considerations | |||
of the Secure Channel should also adhere to the policy configured at | of the Secure Channel should also adhere to the policy configured at | |||
each of end of the Secure Channel. However, the policy controls and | each of end of the Secure Channel. However, the policy controls and | |||
definitions are out of scope for this document. | definitions are out of scope for this document. | |||
Where an Attesting Environment serves as an endpoint of a Secure | Where an Attesting Environment serves as an endpoint of a Secure | |||
Channel used to convey a UCCS, the security assurance required of | Channel used to convey a UCCS, the security assurance required of | |||
that Attesting Environment by a Relying Party generally calls for the | that Attesting Environment by a Relying Party generally calls for the | |||
Attesting Environment to be implemented using techniques designed to | Attesting Environment to be implemented using techniques designed to | |||
provide enhanced protection from an attacker wishing to tamper with | provide enhanced protection from an attacker wishing to tamper with | |||
or forge UCCS originating from that Attesting Environment. A | or forge a UCCS originating from that Attesting Environment. A | |||
possible approach might be to implement the Attesting Environment in | possible approach might be to implement the Attesting Environment in | |||
a hardened environment such as a TEE [RFC9397] or a TPM [TPM2]. | a hardened environment, such as a TEE [RFC9397] or a TPM [TPM2]. | |||
When UCCS emerge from the Secure Channel and into the receiver, the | When UCCS emerge from the Secure Channel and into the receiver, the | |||
security properties of the secure channel no longer protect the UCCS, | security properties of the secure channel no longer protect the UCCS, | |||
which now are subject to the same security properties as any other | which now are subject to the same security properties as any other | |||
unprotected data in the Verifier environment. If the receiver | unprotected data in the Verifier environment. If the receiver | |||
subsequently forwards UCCS, they are treated as though they | subsequently forwards UCCS, they are treated as though they | |||
originated within the receiver. | originated within the receiver. | |||
The Secure Channel context does not govern fully formed CWTs in the | The Secure Channel context does not govern fully formed CWTs in the | |||
same way it governs UCCS. As with Entity Attestation Tokens (EATs, | same way it governs UCCS. As with EATs (see [RFC9711]) nested in | |||
see [I-D.ietf-rats-eat]) nested in other EATs (Section 4.2.18.3 | other EATs (Section 4.2.18.3 (Nested Tokens) of [RFC9711]), the | |||
(Nested Tokens) of [I-D.ietf-rats-eat]), the Secure Channel does not | Secure Channel does not endorse fully formed CWTs transferred through | |||
endorse fully formed CWTs transferred through it. Effectively, the | it. Effectively, the COSE envelope of a CWT (or a nested EAT) | |||
COSE envelope of a CWT (or a nested EAT) shields the CWT Claims Set | shields the CWT Claims Set from the endorsement of the secure | |||
from the endorsement of the secure channel. (Note that EAT might add | channel. (Note that an EAT might add a nested UCCS Claim, and this | |||
a nested UCCS Claim, and this statement does not apply to UCCS nested | statement does not apply to UCCS nested into UCCS; it only applies to | |||
into UCCS, only to fully formed CWTs.) | fully formed CWTs.) | |||
5. Considerations for Using UCCS in Other RATS Contexts | 5. Considerations for Using UCCS in Other RATS Contexts | |||
This section discusses two additional usage scenarios for UCCS in the | This section discusses two additional usage scenarios for UCCS in the | |||
context of RATS. | context of RATS. | |||
5.1. Delegated Attestation | 5.1. Delegated Attestation | |||
Another usage scenario is that of a sub-Attester that has no signing | Another usage scenario is that of a sub-Attester that has no signing | |||
keys (for example, to keep the implementation complexity to a | keys (for example, to keep the implementation complexity to a | |||
minimum) and has a Secure Channel, such as local inter-process | minimum) and has a Secure Channel, such as local inter-process | |||
communication, to interact with a lead Attester (see "Composite | communication, to interact with a lead Attester (see "Composite | |||
Device", Section 3.3 of [RFC9334]). The sub-Attester produces a UCCS | Device", Section 3.3 of [RFC9334]). The sub-Attester produces a UCCS | |||
with the required CWT Claims Set and sends the UCCS through the | with the required CWT Claims Set and sends the UCCS through the | |||
Secure Channel to the lead Attester. The lead Attester then computes | Secure Channel to the lead Attester. The lead Attester then computes | |||
a cryptographic hash of the UCCS and protects that hash using its | a cryptographic hash of the UCCS and protects that hash using its | |||
signing key for Evidence, for example, using a Detached-Submodule- | signing key for Evidence, for example, using a Detached-Submodule- | |||
Digest or Detached EAT Bundle (Section 5 of [I-D.ietf-rats-eat]). | Digest or Detached EAT Bundle (Section 5 of [RFC9711]). | |||
5.2. Privacy Preservation | 5.2. Privacy Preservation | |||
A Secure Channel which preserves the privacy of the Attester may | A Secure Channel that preserves the privacy of the Attester may | |||
provide security properties equivalent to COSE, but only inside the | provide security properties equivalent to COSE, but only inside the | |||
life-span of the session established. In general, when a privacy | life-span of the session established. In general, when a privacy- | |||
preserving Secure Channel is employed for conveying a conceptual | preserving Secure Channel is employed to convey a conceptual message, | |||
message, the receiver cannot correlate the message with the senders | the receiver cannot correlate the message with the senders of other | |||
of other received UCCS messages beyond the information the Secure | received UCCS messages beyond the information the Secure Channel | |||
Channel authentication provides. | authentication provides. | |||
An Attester must consider whether any UCCS it returns over a privacy | An Attester must consider whether any UCCS it returns over a privacy- | |||
preserving Secure Channel compromises the privacy in unacceptable | preserving Secure Channel compromises the privacy in unacceptable | |||
ways. As an example, the use of the EAT UEID Claim (Section 4.2.1 of | ways. As an example, the use of the EAT UEID Claim (Section 4.2.1 of | |||
[I-D.ietf-rats-eat]) in UCCS over a privacy preserving Secure Channel | [RFC9711]) in UCCS over a privacy-preserving Secure Channel allows a | |||
allows a Verifier to correlate UCCS from a single Attesting | Verifier to correlate UCCS from a single Attesting Environment across | |||
Environment across many Secure Channel sessions. This may be | many Secure Channel sessions. This may be acceptable in some use | |||
acceptable in some use-cases (e.g., if the Attesting Environment is a | cases (e.g., if the Attesting Environment is a physical sensor in a | |||
physical sensor in a factory) and unacceptable in others (e.g., if | factory) and unacceptable in others (e.g., if the Attesting | |||
the Attesting Environment is a user device belonging to a child). | Environment is a user device belonging to a child). | |||
6. IANA Considerations | 6. IANA Considerations | |||
6.1. CBOR Tag registration | 6.1. CBOR Tag Registration | |||
In the CBOR Tags registry [IANA.cbor-tags] as defined in Section 9.2 | ||||
of RFC 8949 [STD94], IANA is requested to allocate the tag in Table 1 | ||||
from the Specification Required space (1+2 size), with the present | ||||
document as the specification reference. | ||||
+========+==========================+======================+ | In the "CBOR Tags" registry [IANA.cbor-tags] as defined in | |||
| Tag | Data Item | Semantics | | Section 9.2 of RFC 8949 [STD94], IANA has allocated the tag in | |||
+========+==========================+======================+ | Table 1 from the Specification Required space (1+2 size), with the | |||
| CPA601 | map (Claims-Set as per | Unprotected CWT | | present document as the specification reference. | |||
| | Appendix A of [RFCthis]) | Claims Set [RFCthis] | | ||||
+--------+--------------------------+----------------------+ | ||||
Table 1: Values for Tags | +=====+==========================+======================+ | |||
| Tag | Data Item | Semantics | | ||||
+=====+==========================+======================+ | ||||
| 601 | map (Claims-Set as per | Unprotected CWT | | ||||
| | Appendix A of [RFC9781]) | Claims Set [RFC9781] | | ||||
+-----+--------------------------+----------------------+ | ||||
// RFC-Editor: This document uses the CPA (code point allocation) | Table 1: Values for Tags | |||
// convention described in [I-D.bormann-cbor-draft-numbers]. For | ||||
// each usage of the term "CPA", please remove the prefix "CPA" from | ||||
// the indicated value and replace the residue with the value | ||||
// assigned by IANA; perform an analogous substitution for all other | ||||
// occurrences of the prefix "CPA" in the document. Finally, please | ||||
// remove this note. | ||||
6.2. Media-Type application/uccs+cbor Registration | 6.2. Media-Type application/uccs+cbor Registration | |||
IANA is requested to add the following Media-Type to the "Media | IANA has added the following to the "Media Types" registry | |||
Types" registry [IANA.media-types]. | [IANA.media-types]. | |||
+===========+=======================+========================+ | +===========+=======================+=========================+ | |||
| Name | Template | Reference | | | Name | Template | Reference | | |||
+===========+=======================+========================+ | +===========+=======================+=========================+ | |||
| uccs+cbor | application/uccs+cbor | Section 6.2 of RFCthis | | | uccs+cbor | application/uccs+cbor | Section 6.2 of RFC 9781 | | |||
+-----------+-----------------------+------------------------+ | +-----------+-----------------------+-------------------------+ | |||
Table 2: Media Type Registration | Table 2: Media Type Registration | |||
Type name: application | Type name: application | |||
Subtype name: uccs+cbor | Subtype name: uccs+cbor | |||
Required parameters: n/a | Required parameters: n/a | |||
Optional parameters: n/a | Optional parameters: n/a | |||
Encoding considerations: binary (CBOR data item) | Encoding considerations: binary (CBOR data item) | |||
Security considerations: Section 7 of RFCthis | ||||
Security considerations: Section 7 of RFC 9781 | ||||
Interoperability considerations: none | Interoperability considerations: none | |||
Published specification: RFCthis | ||||
Published specification: RFC 9781 | ||||
Applications that use this media type: Applications that transfer | Applications that use this media type: Applications that transfer | |||
Unprotected CWT Claims Set(s) (UCCS) over Secure Channels | Unprotected CWT Claims Set(s) (UCCS) over Secure Channels | |||
Fragment identifier considerations: The syntax and semantics of | Fragment identifier considerations: The syntax and semantics of | |||
fragment identifiers is as specified for "application/cbor". (At | fragment identifiers is as specified for "application/cbor". (At | |||
publication of this document, there is no fragment identification | publication of this document, there is no fragment identification | |||
syntax defined for "application/cbor".) | syntax defined for "application/cbor".) | |||
Additional information: Deprecated alias names for this type: N/A | ||||
Magic number(s): N/A | Additional information: | |||
File extension(s): .uccs | Deprecated alias names for this type: N/A | |||
Magic number(s): N/A | ||||
File extension(s): .uccs | ||||
Macintosh file type code(s): N/A | ||||
Macintosh file type code(s): N/A | ||||
Person and email address to contact for further information: RATS WG | Person and email address to contact for further information: RATS WG | |||
mailing list (rats@ietf.org) | mailing list (rats@ietf.org) | |||
Intended usage: COMMON | Intended usage: COMMON | |||
Restrictions on usage: none | Restrictions on usage: none | |||
Author/Change controller: IETF | Author/Change controller: IETF | |||
6.3. Media-Type application/ujcs+json Registration | 6.3. Media-Type application/ujcs+json Registration | |||
IANA is requested to add the following Media-Type to the "Media | IANA has added the following to the "Media Types" registry | |||
Types" registry [IANA.media-types]. | [IANA.media-types]. | |||
+===========+=======================+========================+ | +===========+=======================+=========================+ | |||
| Name | Template | Reference | | | Name | Template | Reference | | |||
+===========+=======================+========================+ | +===========+=======================+=========================+ | |||
| ujcs+json | application/ujcs+json | Section 6.3 of RFCthis | | | ujcs+json | application/ujcs+json | Section 6.3 of RFC 9781 | | |||
+-----------+-----------------------+------------------------+ | +-----------+-----------------------+-------------------------+ | |||
Table 3: JSON Media Type Registration | Table 3: JSON Media Type Registration | |||
Type name: application | Type name: application | |||
Subtype name: ujcs+json | Subtype name: ujcs+json | |||
Required parameters: n/a | Required parameters: n/a | |||
Optional parameters: n/a | Optional parameters: n/a | |||
Encoding considerations: binary (UTF-8) | Encoding considerations: binary (UTF-8) | |||
Security considerations: Section 7 of RFCthis | ||||
Security considerations: Section 7 of RFC 9781 | ||||
Interoperability considerations: none | Interoperability considerations: none | |||
Published specification: RFCthis | ||||
Published specification: RFC 9781 | ||||
Applications that use this media type: Applications that transfer | Applications that use this media type: Applications that transfer | |||
Unprotected JWT Claims Set(s) (UJCS) over Secure Channels | Unprotected JWT Claims Set(s) (UJCS) over Secure Channels | |||
Fragment identifier considerations: The syntax and semantics of | Fragment identifier considerations: The syntax and semantics of | |||
fragment identifiers is as specified for "application/json". (At | fragment identifiers is as specified for "application/json". (At | |||
publication of this document, there is no fragment identification | publication of this document, there is no fragment identification | |||
syntax defined for "application/json".) | syntax defined for "application/json".) | |||
Additional information: Deprecated alias names for this type: N/A | ||||
Magic number(s): N/A | Additional information: | |||
File extension(s): .ujcs | Deprecated alias names for this type: N/A | |||
Magic number(s): N/A | ||||
File extension(s): .ujcs | ||||
Macintosh file type code(s): N/A | ||||
Macintosh file type code(s): N/A | ||||
Person and email address to contact for further information: RATS WG | Person and email address to contact for further information: RATS WG | |||
mailing list (rats@ietf.org) | mailing list (rats@ietf.org) | |||
Intended usage: COMMON | Intended usage: COMMON | |||
Restrictions on usage: none | Restrictions on usage: none | |||
Author/Change controller: IETF | ||||
6.4. Content-Format registration | Author/Change controller: IETF | |||
IANA is requested to register a Content-Format number in the "CoAP | 6.4. Content-Format Registration | |||
Content-Formats" subregistry, within the "Constrained RESTful | ||||
Environments (CoRE) Parameters" registry [IANA.core-parameters], as | ||||
follows: | ||||
+=======================+================+========+=============+ | IANA has registered the following in the "CoAP Content-Formats" | |||
| Content Type | Content Coding | ID | Reference | | registry within the "Constrained RESTful Environments (CoRE) | |||
+=======================+================+========+=============+ | Parameters" registry group [IANA.core-parameters]. | |||
| application/uccs+cbor | - | TBD601 | Section 6.4 | | ||||
| | | | of RFCthis | | ||||
+-----------------------+----------------+--------+-------------+ | ||||
Table 4: Content-Format Registration | +=======================+================+=====+=============+ | |||
| Content Type | Content Coding | ID | Reference | | ||||
+=======================+================+=====+=============+ | ||||
| application/uccs+cbor | - | 601 | Section 6.4 | | ||||
| | | | of RFC 9781 | | ||||
+-----------------------+----------------+-----+-------------+ | ||||
// RFC editor: please replace TBD601 by the number actually assigned | Table 4: Content-Format Registration | |||
// by IANA (601 is suggested). | ||||
7. Security Considerations | 7. Security Considerations | |||
The security considerations of [STD94] apply. The security | The security considerations of [STD94] apply. The security | |||
considerations of [RFC8392] need to be applied analogously, replacing | considerations of [RFC8392] need to be applied analogously, replacing | |||
the function of COSE with that of the Secure Channel; in particular | the function of COSE with that of the Secure Channel; in particular, | |||
"it is not only important to protect the CWT in transit but also to | "it is not only important to protect the CWT in transit but also to | |||
ensure that the recipient can authenticate the party that assembled | ensure that the recipient can authenticate the party that assembled | |||
the claims and created the CWT". | the claims and created the CWT". | |||
Section 3 discusses security considerations for Secure Channels, in | Section 3 discusses security considerations for Secure Channels in | |||
which UCCS might be used. This document provides the CBOR tag | which UCCS might be used. This document provides the CBOR tag | |||
definition for UCCS and a discussion on security consideration for | definition for UCCS and a discussion on security consideration for | |||
the use of UCCS in RATS. Uses of UCCS outside the scope of RATS are | the use of UCCS in RATS. Uses of UCCS outside the scope of RATS are | |||
not covered by this document. The UCCS specification -- and the use | not covered by this document. The UCCS specification -- and the use | |||
of the UCCS CBOR tag, correspondingly -- is not intended for use in a | of the UCCS CBOR tag, correspondingly -- is not intended for use in a | |||
scope where a scope-specific security consideration discussion has | scope where a scope-specific security consideration discussion has | |||
not been conducted, vetted and approved for that use. In order to be | not been conducted, vetted, and approved for that use. In order to | |||
able to use the UCCS CBOR tag in another such scope, the secure | be able to use the UCCS CBOR tag in another such scope, the secure | |||
channel and/or the application protocol (e.g., TLS and the protocol | channel and/or the application protocol (e.g., TLS and the protocol | |||
identified by ALPN) MUST specify the roles of the endpoints in a | identified by ALPN) MUST specify the roles of the endpoints in a | |||
fashion that the security properties of conveying UCCS via a Secure | fashion that the security properties of conveying UCCS via a Secure | |||
Channel between the roles are well-defined. | Channel between the roles are well-defined. | |||
7.1. General Considerations | 7.1. General Considerations | |||
Implementations of Secure Channels are often separate from the | Implementations of Secure Channels are often separate from the | |||
application logic that has security requirements on them. Similar | application logic that has security requirements on them. Similar | |||
security considerations to those described in [STD96] for obtaining | security considerations to those described in [STD96] for obtaining | |||
skipping to change at page 13, line 32 ¶ | skipping to change at line 552 ¶ | |||
respected in the establishment of the Secure Channel. | respected in the establishment of the Secure Channel. | |||
* Using cryptographic algorithms appropriately. | * Using cryptographic algorithms appropriately. | |||
* Using key material in accordance with any usage restrictions such | * Using key material in accordance with any usage restrictions such | |||
as freshness or algorithm restrictions. | as freshness or algorithm restrictions. | |||
* Ensuring that appropriate protections are in place to address | * Ensuring that appropriate protections are in place to address | |||
potential traffic analysis attacks. | potential traffic analysis attacks. | |||
7.2. Algorithm-specific Security Considerations | 7.2. Algorithm-Specific Security Considerations | |||
Table 5 provides references to some security considerations of | Table 5 provides references to some security considerations of | |||
specific cryptography choices that are discussed in [RFC9053]. | specific cryptography choices that are discussed in [RFC9053]. | |||
+===================+============================+ | +===================+============================+ | |||
| Algorithm | Reference | | | Algorithm | Reference | | |||
+===================+============================+ | +===================+============================+ | |||
| AES-CBC-MAC | Section 3.2.1 of [RFC9053] | | | AES-CBC-MAC | Section 3.2.1 of [RFC9053] | | |||
+-------------------+----------------------------+ | +-------------------+----------------------------+ | |||
| AES-GCM | Section 4.1.1 of [RFC9053] | | | AES-GCM | Section 4.1.1 of [RFC9053] | | |||
+-------------------+----------------------------+ | +-------------------+----------------------------+ | |||
| AES-CCM | Section 4.2.1 of [RFC9053] | | | AES-CCM | Section 4.2.1 of [RFC9053] | | |||
+-------------------+----------------------------+ | +-------------------+----------------------------+ | |||
| ChaCha20/Poly1305 | Section 4.3.1 of [RFC9053] | | | ChaCha20/Poly1305 | Section 4.3.1 of [RFC9053] | | |||
+-------------------+----------------------------+ | +-------------------+----------------------------+ | |||
Table 5: Algorithm-specific Security | Table 5: Algorithm-Specific Security | |||
Considerations | Considerations | |||
8. References | 8. References | |||
8.1. Normative References | ||||
[BCP14] Best Current Practice 14, | 8.1. Normative References | |||
<https://www.rfc-editor.org/info/bcp14>. | ||||
At the time of writing, this BCP comprises the following: | ||||
Bradner, S., "Key words for use in RFCs to Indicate | ||||
Requirement Levels", BCP 14, RFC 2119, | ||||
DOI 10.17487/RFC2119, March 1997, | ||||
<https://www.rfc-editor.org/info/rfc2119>. | ||||
Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | ||||
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | ||||
May 2017, <https://www.rfc-editor.org/info/rfc8174>. | ||||
[BCP225] Best Current Practice 225, | [BCP225] Best Current Practice 225, | |||
<https://www.rfc-editor.org/info/bcp225>. | <https://www.rfc-editor.org/info/bcp225>. | |||
At the time of writing, this BCP comprises the following: | At the time of writing, this BCP comprises the following: | |||
Sheffer, Y., Hardt, D., and M. Jones, "JSON Web Token Best | Sheffer, Y., Hardt, D., and M. Jones, "JSON Web Token Best | |||
Current Practices", BCP 225, RFC 8725, | Current Practices", BCP 225, RFC 8725, | |||
DOI 10.17487/RFC8725, February 2020, | DOI 10.17487/RFC8725, February 2020, | |||
<https://www.rfc-editor.org/info/rfc8725>. | <https://www.rfc-editor.org/info/rfc8725>. | |||
[IANA.cbor-tags] | [IANA.cbor-tags] | |||
IANA, "Concise Binary Object Representation (CBOR) Tags", | IANA, "Concise Binary Object Representation (CBOR) Tags", | |||
<https://www.iana.org/assignments/cbor-tags>. | <https://www.iana.org/assignments/cbor-tags>. | |||
[IANA.cwt] IANA, "CBOR Web Token (CWT) Claims", | [IANA.cwt] IANA, "CBOR Web Token (CWT) Claims", | |||
<https://www.iana.org/assignments/cwt>. | <https://www.iana.org/assignments/cwt>. | |||
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | ||||
Requirement Levels", BCP 14, RFC 2119, | ||||
DOI 10.17487/RFC2119, March 1997, | ||||
<https://www.rfc-editor.org/info/rfc2119>. | ||||
[RFC7519] Jones, M., Bradley, J., and N. Sakimura, "JSON Web Token | [RFC7519] Jones, M., Bradley, J., and N. Sakimura, "JSON Web Token | |||
(JWT)", RFC 7519, DOI 10.17487/RFC7519, May 2015, | (JWT)", RFC 7519, DOI 10.17487/RFC7519, May 2015, | |||
<https://www.rfc-editor.org/rfc/rfc7519>. | <https://www.rfc-editor.org/info/rfc7519>. | |||
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | ||||
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | ||||
May 2017, <https://www.rfc-editor.org/info/rfc8174>. | ||||
[RFC8392] Jones, M., Wahlstroem, E., Erdtman, S., and H. Tschofenig, | [RFC8392] Jones, M., Wahlstroem, E., Erdtman, S., and H. Tschofenig, | |||
"CBOR Web Token (CWT)", RFC 8392, DOI 10.17487/RFC8392, | "CBOR Web Token (CWT)", RFC 8392, DOI 10.17487/RFC8392, | |||
May 2018, <https://www.rfc-editor.org/rfc/rfc8392>. | May 2018, <https://www.rfc-editor.org/info/rfc8392>. | |||
[RFC8610] Birkholz, H., Vigano, C., and C. Bormann, "Concise Data | [RFC8610] Birkholz, H., Vigano, C., and C. Bormann, "Concise Data | |||
Definition Language (CDDL): A Notational Convention to | Definition Language (CDDL): A Notational Convention to | |||
Express Concise Binary Object Representation (CBOR) and | Express Concise Binary Object Representation (CBOR) and | |||
JSON Data Structures", RFC 8610, DOI 10.17487/RFC8610, | JSON Data Structures", RFC 8610, DOI 10.17487/RFC8610, | |||
June 2019, <https://www.rfc-editor.org/rfc/rfc8610>. | June 2019, <https://www.rfc-editor.org/info/rfc8610>. | |||
[RFC9165] Bormann, C., "Additional Control Operators for the Concise | [RFC9165] Bormann, C., "Additional Control Operators for the Concise | |||
Data Definition Language (CDDL)", RFC 9165, | Data Definition Language (CDDL)", RFC 9165, | |||
DOI 10.17487/RFC9165, December 2021, | DOI 10.17487/RFC9165, December 2021, | |||
<https://www.rfc-editor.org/rfc/rfc9165>. | <https://www.rfc-editor.org/info/rfc9165>. | |||
[STD94] Internet Standard 94, | [STD94] Internet Standard 94, | |||
<https://www.rfc-editor.org/info/std94>. | <https://www.rfc-editor.org/info/std94>. | |||
At the time of writing, this STD comprises the following: | At the time of writing, this STD comprises the following: | |||
Bormann, C. and P. Hoffman, "Concise Binary Object | Bormann, C. and P. Hoffman, "Concise Binary Object | |||
Representation (CBOR)", STD 94, RFC 8949, | Representation (CBOR)", STD 94, RFC 8949, | |||
DOI 10.17487/RFC8949, December 2020, | DOI 10.17487/RFC8949, December 2020, | |||
<https://www.rfc-editor.org/info/rfc8949>. | <https://www.rfc-editor.org/info/rfc8949>. | |||
8.2. Informative References | 8.2. Informative References | |||
[I-D.ietf-rats-eat] | ||||
Lundblade, L., Mandyam, G., O'Donoghue, J., and C. | ||||
Wallace, "The Entity Attestation Token (EAT)", Work in | ||||
Progress, Internet-Draft, draft-ietf-rats-eat-31, 6 | ||||
September 2024, <https://datatracker.ietf.org/doc/html/ | ||||
draft-ietf-rats-eat-31>. | ||||
[IANA.core-parameters] | [IANA.core-parameters] | |||
IANA, "Constrained RESTful Environments (CoRE) | IANA, "Constrained RESTful Environments (CoRE) | |||
Parameters", | Parameters", | |||
<https://www.iana.org/assignments/core-parameters>. | <https://www.iana.org/assignments/core-parameters>. | |||
[IANA.media-types] | [IANA.media-types] | |||
IANA, "Media Types", | IANA, "Media Types", | |||
<https://www.iana.org/assignments/media-types>. | <https://www.iana.org/assignments/media-types>. | |||
[NIST-SP800-90Ar1] | [NIST-SP800-90Ar1] | |||
Barker, E. and J. Kelsey, "Recommendation for Random | Barker, E. and J. Kelsey, "Recommendation for Random | |||
Number Generation Using Deterministic Random Bit | Number Generation Using Deterministic Random Bit | |||
Generators", National Institute of Standards and | Generators", NIST SP 800-90Ar1, | |||
Technology, DOI 10.6028/nist.sp.800-90ar1, June 2015, | DOI 10.6028/nist.sp.800-90ar1, June 2015, | |||
<https://doi.org/10.6028/nist.sp.800-90ar1>. | <https://doi.org/10.6028/nist.sp.800-90ar1>. | |||
[RFC4949] Shirey, R., "Internet Security Glossary, Version 2", | [RFC4949] Shirey, R., "Internet Security Glossary, Version 2", | |||
FYI 36, RFC 4949, DOI 10.17487/RFC4949, August 2007, | FYI 36, RFC 4949, DOI 10.17487/RFC4949, August 2007, | |||
<https://www.rfc-editor.org/rfc/rfc4949>. | <https://www.rfc-editor.org/info/rfc4949>. | |||
[RFC8446] Rescorla, E., "The Transport Layer Security (TLS) Protocol | [RFC8446] Rescorla, E., "The Transport Layer Security (TLS) Protocol | |||
Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018, | Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018, | |||
<https://www.rfc-editor.org/rfc/rfc8446>. | <https://www.rfc-editor.org/info/rfc8446>. | |||
[RFC8747] Jones, M., Seitz, L., Selander, G., Erdtman, S., and H. | [RFC8747] Jones, M., Seitz, L., Selander, G., Erdtman, S., and H. | |||
Tschofenig, "Proof-of-Possession Key Semantics for CBOR | Tschofenig, "Proof-of-Possession Key Semantics for CBOR | |||
Web Tokens (CWTs)", RFC 8747, DOI 10.17487/RFC8747, March | Web Tokens (CWTs)", RFC 8747, DOI 10.17487/RFC8747, March | |||
2020, <https://www.rfc-editor.org/rfc/rfc8747>. | 2020, <https://www.rfc-editor.org/info/rfc8747>. | |||
[RFC9053] Schaad, J., "CBOR Object Signing and Encryption (COSE): | [RFC9053] Schaad, J., "CBOR Object Signing and Encryption (COSE): | |||
Initial Algorithms", RFC 9053, DOI 10.17487/RFC9053, | Initial Algorithms", RFC 9053, DOI 10.17487/RFC9053, | |||
August 2022, <https://www.rfc-editor.org/rfc/rfc9053>. | August 2022, <https://www.rfc-editor.org/info/rfc9053>. | |||
[RFC9334] Birkholz, H., Thaler, D., Richardson, M., Smith, N., and | [RFC9334] 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/rfc/rfc9334>. | 2023, <https://www.rfc-editor.org/info/rfc9334>. | |||
[RFC9397] Pei, M., Tschofenig, H., Thaler, D., and D. Wheeler, | [RFC9397] Pei, M., Tschofenig, H., Thaler, D., and D. Wheeler, | |||
"Trusted Execution Environment Provisioning (TEEP) | "Trusted Execution Environment Provisioning (TEEP) | |||
Architecture", RFC 9397, DOI 10.17487/RFC9397, July 2023, | Architecture", RFC 9397, DOI 10.17487/RFC9397, July 2023, | |||
<https://www.rfc-editor.org/rfc/rfc9397>. | <https://www.rfc-editor.org/info/rfc9397>. | |||
[RFC9711] Lundblade, L., Mandyam, G., O'Donoghue, J., and C. | ||||
Wallace, "The Entity Attestation Token (EAT)", RFC 9711, | ||||
DOI 10.17487/RFC9711, April 2025, | ||||
<https://www.rfc-editor.org/info/rfc9711>. | ||||
[STD96] Internet Standard 96, | [STD96] Internet Standard 96, | |||
<https://www.rfc-editor.org/info/std96>. | <https://www.rfc-editor.org/info/std96>. | |||
At the time of writing, this STD comprises the following: | At the time of writing, this STD comprises the following: | |||
Schaad, J., "CBOR Object Signing and Encryption (COSE): | Schaad, J., "CBOR Object Signing and Encryption (COSE): | |||
Structures and Process", STD 96, RFC 9052, | Structures and Process", STD 96, RFC 9052, | |||
DOI 10.17487/RFC9052, August 2022, | DOI 10.17487/RFC9052, August 2022, | |||
<https://www.rfc-editor.org/info/rfc9052>. | <https://www.rfc-editor.org/info/rfc9052>. | |||
Schaad, J., "CBOR Object Signing and Encryption (COSE): | Schaad, J., "CBOR Object Signing and Encryption (COSE): | |||
Countersignatures", STD 96, RFC 9338, | Countersignatures", STD 96, RFC 9338, | |||
DOI 10.17487/RFC9338, December 2022, | DOI 10.17487/RFC9338, December 2022, | |||
<https://www.rfc-editor.org/info/rfc9338>. | <https://www.rfc-editor.org/info/rfc9338>. | |||
[TPM2] "Trusted Platform Module Library Specification, Family | [TPM2] Trusted Computing Group, "Trusted Platform Module Library | |||
“2.0”, Level 00, Revision 01.59 ed., Trusted Computing | Specification", Family "2.0", Level 00, Revision 01.59, | |||
Group", 2019. | 2019. | |||
Appendix A. CDDL | Appendix A. CDDL | |||
The Concise Data Definition Language (CDDL), as defined in [RFC8610] | The Concise Data Definition Language (CDDL), as defined in [RFC8610] | |||
and [RFC9165], provides an easy and unambiguous way to express | and [RFC9165], provides an easy and unambiguous way to express | |||
structures for protocol messages and data formats that use CBOR or | structures for protocol messages and data formats that use CBOR or | |||
JSON. | JSON. | |||
[RFC8392] does not define CDDL for CWT Claims Sets. | [RFC8392] does not define CDDL for CWT Claims Sets. | |||
// RFC-Editor: This document uses the CPA (code point allocation) | ||||
// convention described in [I-D.bormann-cbor-draft-numbers]. Please | ||||
// replace the number 601 in the code blocks below by the value that | ||||
// has been assigned for CPA601 and remove this note. | ||||
The CDDL model in Figure 1 shows how to use CDDL for defining the CWT | The CDDL model in Figure 1 shows how to use CDDL for defining the CWT | |||
Claims Set defined in [RFC8392]. These CDDL rules have been built | Claims Set defined in [RFC8392]. These CDDL rules have been built | |||
such that they also can describe [RFC7519] Claims sets by disabling | such that they also can describe [RFC7519] Claims sets by disabling | |||
feature "cbor" and enabling feature "json". | feature "cbor" and enabling feature "json". | |||
UCCS-Untagged = Claims-Set | UCCS-Untagged = Claims-Set | |||
UCCS-Tagged = #6.601(UCCS-Untagged) | UCCS-Tagged = #6.601(UCCS-Untagged) | |||
Claims-Set = { | Claims-Set = { | |||
* $$Claims-Set-Claims | * $$Claims-Set-Claims | |||
skipping to change at page 18, line 22 ¶ | skipping to change at line 763 ¶ | |||
CWT-COSE-Key = COSE_Key | CWT-COSE-Key = COSE_Key | |||
CWT-Encrypted_COSE_Key = COSE_Encrypt / COSE_Encrypt0 | CWT-Encrypted_COSE_Key = COSE_Encrypt / COSE_Encrypt0 | |||
CWT-kid = bytes | CWT-kid = bytes | |||
;;; Insert the required CDDL from RFC 9052 to complete these | ;;; Insert the required CDDL from RFC 9052 to complete these | |||
;;; definitions. This can be done manually or automated by a | ;;; definitions. This can be done manually or automated by a | |||
;;; tool that implements an import directive such as: | ;;; tool that implements an import directive such as: | |||
;# import rfc9052 | ;# import rfc9052 | |||
The above definitions, concepts and security considerations also | The above definitions, concepts, and security considerations also | |||
define a JSON-encoded Claims-Set as encapsulated in a JWT. Such an | define a JSON-encoded Claims-Set as encapsulated in a JWT. Such an | |||
unsigned Claims-Set can be referred to as a "Unprotected JWT Claims | unsigned Claims-Set can be referred to as a "Unprotected JWT Claims | |||
Set", a "UJCS". The CDDL definition of Claims-Set in Figure 1 can be | Set", or a "UJCS". The CDDL definition of Claims-Set in Figure 1 can | |||
used for a "UJCS": | be used for a UJCS: | |||
UJCS = Claims-Set | UJCS = Claims-Set | |||
Appendix B. Example | Appendix B. Example | |||
This appendix is informative. | This appendix is informative. | |||
The example CWT Claims Set from Appendix A.1 of [RFC8392] can be | The example CWT Claims Set from Appendix A.1 of [RFC8392] can be | |||
turned into a UCCS by enclosing it with a tag number CPA601: | turned into a UCCS by enclosing it with a tag number 601: | |||
601( | 601( | |||
{ | { | |||
/ iss / 1: "coap://as.example.com", | / iss / 1: "coap://as.example.com", | |||
/ sub / 2: "erikw", | / sub / 2: "erikw", | |||
/ aud / 3: "coap://light.example.com", | / aud / 3: "coap://light.example.com", | |||
/ exp / 4: 1444064944, | / exp / 4: 1444064944, | |||
/ nbf / 5: 1443944944, | / nbf / 5: 1443944944, | |||
/ iat / 6: 1443944944, | / iat / 6: 1443944944, | |||
/ cti / 7: h'0b71' | / cti / 7: h'0b71' | |||
} | } | |||
) | ) | |||
Appendix C. EAT | Appendix C. EAT | |||
The following CDDL adds UCCS-format and UJCS-format tokens to EAT | The following CDDL adds UCCS-format and UJCS-format tokens to EAT | |||
using its predefined extension points (see Section 4.2.18 (submods) | using its predefined extension points (see Section 4.2.18 (submods) | |||
of [I-D.ietf-rats-eat]). | of [RFC9711]). | |||
$EAT-CBOR-Tagged-Token /= UCCS-Tagged | $EAT-CBOR-Tagged-Token /= UCCS-Tagged | |||
$EAT-CBOR-Untagged-Token /= UCCS-Untagged | $EAT-CBOR-Untagged-Token /= UCCS-Untagged | |||
$JSON-Selector /= [type: "UJCS", nested-token: UJCS] | $JSON-Selector /= [type: "UJCS", nested-token: UJCS] | |||
Acknowledgements | Acknowledgements | |||
Laurence Lundblade suggested some improvements to the CDDL. Carl | Laurence Lundblade suggested some improvements to the CDDL. Carl | |||
Wallace provided a very useful review. | Wallace provided a very useful review. | |||
End of changes. 98 change blocks. | ||||
282 lines changed or deleted | 263 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. |