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.