Movatterモバイル変換


[0]ホーム

URL:


RFC 9781Unprotected CWT Claims SetsMay 2025
Birkholz, et al.Standards Track[Page]
Stream:
Internet Engineering Task Force (IETF)
RFC:
9781
Category:
Standards Track
Published:
ISSN:
2070-1721
Authors:
H. Birkholz
Fraunhofer SIT
J. O'Donoghue
Qualcomm Technologies Inc.
N. Cam-Winget
Cisco Systems
C. Bormann
Universität Bremen TZI

RFC 9781

A Concise Binary Object Representation (CBOR) Tag for Unprotected CBOR Web Token Claims Sets (UCCS)

Abstract

This document defines the Unprotected CWT Claims Set (UCCS), a data format forrepresenting a CBOR Web Token (CWT) Claims Set without protecting itby a signature, Message Authentication Code (MAC), or encryption.UCCS enables the use of CWT claims in environments where protection isprovided by other means, such as secure communication channels ortrusted execution environments.This specification defines a CBOR tag for UCCS and describes the UCCSformat, its encoding, and its processing considerations. It also discussessecurity implications of using unprotected claims sets.

Status of This Memo

This is an Internet Standards Track document.

This document is a product of the Internet Engineering Task Force (IETF). It represents the consensus of the IETF community. It has received public review and has been approved for publication by the Internet Engineering Steering Group (IESG). Further information on Internet Standards is available in Section 2 of RFC 7841.

Information about the current status of this document, any errata, and how to provide feedback on it may be obtained athttps://www.rfc-editor.org/info/rfc9781.

Copyright Notice

Copyright (c) 2025 IETF Trust and the persons identified as the document authors. All rights reserved.

This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Revised BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Revised BSD License.

Table of Contents

1.Introduction

A CBOR Web Token (CWT) as specified by[RFC8392] is always wrapped in aCBOR Object Signing and Encryption (COSE) envelope[STD96].Among other things, COSE provides end-to-end data originauthentication and integrity protection employed by[RFC8392] as well asoptional encryption for CWTs.Under the right circumstances (Section 3), a signature providing proof for authenticity and integrity can beprovided through the transfer protocol and thus omitted from theinformation in a CWT without compromising the intended goal of authenticityand integrity.In other words, if communicating parties have a preexisting securityassociation, they can reuse it to provide authenticity and integrityfor their messages, enabling the basic principle of using resourcesparsimoniously.Specifically, if a mutually secured channel is established between tworemote peers, and if that secure channel provides the requiredproperties (as discussed below), it is possible to omit the protectionprovided by COSE, creating a use case for unprotected CWT Claims Sets.Similarly, if there is one-way authentication, the party that did notauthenticate may be in a position to send authentication information throughthis channel that allows the already authenticated party to authenticate theother party; this effectively turns the channel into a mutuallysecured channel.

This specification allocates a CBOR tag to mark Unprotected CWT Claims Sets(UCCS) as such and discusses conditions for its proper use in the scope ofRemote Attestation Procedures (RATS[RFC9334]) for theconveyance of RATS Conceptual Messages.

This specification does not change[RFC8392]: A CWT as defined by[RFC8392] does not make use ofthe tag allocated here; the UCCS tag is an alternative to using COSEprotection and a CWT tag.Consequently, within the well-defined scope of a secure channel, itcan be acceptable and economic to use the contents of a CWT withoutits COSE container and tag it with a UCCS CBOR tag for furtherprocessing within that scope -- or to use the contents of a UCCS CBORtag for building a CWT to be signed by some entity that can vouch forthose contents.

1.1.Terminology

The term Claim is used as in[RFC7519].

The terms Claim Key, Claim Value, and CWT Claims Set are used as in[RFC8392].

The terms Attester, Attesting Environment, Evidence, Relying Party and Verifier are used as in[RFC9334].

UCCS:

Unprotected CWT Claims Set(s); CBOR map(s) of Claims as defined by the CWT Claims Registry that are composed of pairs of Claim Keys and Claim Values.

Secure Channel:

[NIST-SP800-90Ar1] defines a Secure Channel as follows:

"A path for transferring data between two entities or components that ensures confidentiality, integrity and replay protection, as well as mutual authentication between the entities or components. The secure channel may be provided using approved cryptographic, physical or procedural methods, or a combination thereof."

For the purposes of the present document, we focus on a protected communication channel used for conveyance that can ensure the same qualities as a CWT without having COSE protection available, which includes mutual authentication, integrity protection, and confidentiality. (Replay protection can be added by including a nonce claim such as Nonce (claim 10[IANA.cwt]).) Examples include conveyance via PCIe (Peripheral Component Interconnect Express) IDE (Integrity and Data Encryption) or a TLS tunnel.

All terms referenced or defined in this section are capitalized in the remainder ofthis document.

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14[RFC2119][RFC8174] when, and only when, they appear in all capitals, as shown here.

1.2.Structure of This Document

Section 2 briefly discusses use cases for UCCS.Section 3 addresses general characteristics of secure channels,followed by a specific discussion of using them in the context of RATS ConceptualMessage Conveyance inSection 4, and moreforward-looking considerations for using UCCS in other RATS contextsare discussed inSection 5.This is followed by theIANA Considerations,Security Considerations,Normative References, andInformative References. The normativeAppendix A provides a formal definition of the structure ofUCCS, as noformal definition of CWT Claims Sets was provided in[RFC8392].This employs the Concise Data Definition Language (CDDL)[RFC8610], using its ability to also describe in the same definitionthe structurally similar use of JWT Claims Sets[RFC7519],without any protective wrapper (such as JWS) applied, as Unprotected JWTClaims Sets (UJCS).Appendix B provides an (informative) example for CBOR-Tagged UCCS.The normativeAppendix C provides CDDL rules that add UCCS-format tokens toEntity Attestation Tokens (EATs)[RFC9711] using its predefinedextension points.

2.Deployment and Usage of UCCS

Usage scenarios involving the conveyance of Claims (RATS, in particular)require a standardized data definition and encoding format thatcan be transferredand transported using different communication channels. As these areClaims, the Claims Sets defined in[RFC8392] area suitable format. However, the way these Claims are secured depends on the deployment, the securitycapabilities of the device, as well as their software stack. For example, a Claim may be securelystored and conveyed using a device's Trusted Execution Environment (TEE)[RFC9397] ora Trusted Platform Module (TPM)[TPM2].Especially in some resource-constrained environments,the same process that provides the secure communicationtransport is also the delegate to compose the Claim to be conveyed. Whether it is a transferor transport, a Secure Channel is presumed to be used for conveying such UCCS. The following sectionselaborate on Secure Channel characteristics in general and further describe RATS usage scenarios andcorresponding requirements for UCCS deployment.

3.Characteristics of a Secure Channel

A Secure Channel for the conveyance of UCCS needs to provide the securityproperties that would otherwise be provided by COSE for a CWT.In this regard, UCCS are similar in security considerations to JWTs[BCP225]using the algorithm "none". Section3.2 of RFC 8725[BCP225] states:

[...] if a JWT is cryptographicallyprotected end-to-end by a transport layer, such as TLS usingcryptographically current algorithms, there may be no need to apply anotherlayer of cryptographic protections to the JWT. In such cases, the use ofthe "none" algorithm can be perfectly acceptable.

The security considerations discussed, e.g., in Sections2.1,3.1, and3.2 of RFC 8725[BCP225] apply in an analogous way to the use of UCCS aselaborated on in this document.In particular, the need to "Use Appropriate Algorithms" (Section3.2 of RFC 8725[BCP225]) includes choosing appropriate cryptographicalgorithms for setting up and protecting the Secure Channel.For instance, their cryptographic strength should be at least asstrong as any cryptographic keys the Secure Channel will be used forto protect in transport.Table 5 inSection 7.2 provides references to some more securityconsiderations for specific cryptography choices that are discussed inthe COSE initial algorithms specification[RFC9053].

Secure Channels are often set up in a handshake protocol that mutuallyderives a session key, where the handshake protocol establishes the (identity and thus) authenticity of one or both ends of the communication.The session key canthen be used to provide confidentiality and integrity of the transfer ofinformation inside the Secure Channel.(Where the handshake did not provide a mutually secure channel,further authentication information can be conveyed by the party notyet authenticated, leading to a mutually secured channel.)A well-known example of such aSecure Channel setup protocol is the TLS[RFC8446] handshake; theTLS record protocol can then be used for secure conveyance.

As UCCS were initially created for use in RATS Secure Channels, the followingsection provides a discussion oftheir use in these channels. Where other environments are intended to beused to convey UCCS, similar considerations need to be documented beforeUCCS can be used.

4.UCCS in RATS Conceptual Message Conveyance

This section describes a detailed usage scenario for UCCS in thecontext of RATS in conjunction with its attendant securityrequirements.The use of UCCS tag 601 outside of the RATS contextMUST come with additional instruction leaflets and security considerations.

For the purposes of this section, any RATS role can be the sender or the receiver of the UCCS.

Secure Channels can be transient in nature. For the purposes of thisspecification, the mechanisms used to establish a Secure Channel are out ofscope.

In the scope of RATS Claims, the receiverMUSTauthenticate the sender as part of the establishment of the Secure Channel.Furthermore, the channelMUST provide integrity of the communication between thecommunicating RATS roles.For data confidentiality[RFC4949], the receiving sideMUST beauthenticated as well. This is achieved if the sender and receivermutually authenticate when establishing the Secure Channel.The quality of the receiver's authentication and authorization willinfluence whether the sender can disclose the UCCS.

The extent to which a Secure Channel can provide assurances that UCCSoriginate from a trustworthy Attesting Environment depends on thecharacteristics of both the cryptographic mechanisms used to establish thechannel and the characteristics of the Attesting Environment itself.The assurance provided to a Relying Party depends, among others, on the authenticityand integrity properties of the Secure Channel used for conveyingthe UCCS to the Relying Party.

Ultimately, it is up to the receiver's policy to determine whether to accepta UCCS from the sender and to determine the type of Secure Channel it must negotiate.While the security considerations of the cryptographic algorithms used are similarto COSE, the considerations of the Secure Channel should also adhere to the policyconfigured at each of end of the Secure Channel. However, the policy controlsand definitions are out of scope for this document.

Where an Attesting Environment serves as an endpoint of a SecureChannel used to convey a UCCS, the security assurance required of thatAttesting Environment by a Relying Party generally calls for theAttesting Environment to be implemented using techniques designed toprovide enhanced protection from an attacker wishing to tamper with orforge a UCCS originating from that Attesting Environment.A possible approach might be to implement the Attesting Environment ina hardened environment, such as a TEE[RFC9397] or a TPM[TPM2].

When a UCCS emerges from the Secure Channel and into the receiver, the securityproperties of the secure channel no longer protect the UCCS, which is now subject to the same security propertiesas any other unprotected data in the Verifier environment.If the receiver subsequently forwards UCCS, they are treated as though they originated within the receiver.

The Secure Channel context does not govern fully formed CWTs in thesame way it governs UCCS.As with EATs (see[RFC9711]) nested in other EATs (Section4.2.18.3 (Nested Tokens) of[RFC9711]), the SecureChannel does not endorse fully formed CWTs transferred through it.Effectively, the COSE envelope of a CWT (or a nested EAT) shields theCWT Claims Set from the endorsement of the secure channel.(Note that a nested UCCS Claim might be added to EAT, and this statement does not apply to UCCS nested into UCCS; it only applies tofully formed CWTs.)

5.Considerations for Using UCCS in Other RATS Contexts

This section discusses two additional usage scenarios for UCCS in thecontext of RATS.

5.1.Delegated Attestation

Another usage scenario is that of a sub-Attester that has no signingkeys (for example, to keep the implementation complexity to a minimum)and has a Secure Channel, such as local inter-process communication,to interact with a lead Attester (see "Composite Device",Section 3.3 of [RFC9334]).The sub-Attester produces a UCCS with the required CWT Claims Set and sends the UCCS through the Secure Channel to the lead Attester.The lead Attester then computes a cryptographic hash of the UCCS andprotects that hash using its signing key for Evidence, for example,using a Detached-Submodule-Digest or Detached EAT Bundle (Section 5 of [RFC9711]).

5.2.Privacy Preservation

A Secure Channel that preserves the privacy of the Attester may providesecurity properties equivalent to COSE, but only inside the life-span of thesession established. In general, when a privacy-preserving SecureChannel is employed to convey a conceptual message, the receivercannot correlate the message with the senders ofother received UCCS messages beyond the information the Secure Channelauthentication provides.

An Attester must consider whether any UCCS it returns over a privacy-preserving Secure Channel compromises the privacy in unacceptable ways. Asan example, the use of the EAT UEID Claim (Section 4.2.1 of [RFC9711]) in UCCS over a privacy-preserving Secure Channel allows a Verifier to correlate UCCS from a singleAttesting Environment across many Secure Channel sessions. This may beacceptable in some use cases (e.g., if the Attesting Environment is aphysical sensor in a factory) and unacceptable in others (e.g., if theAttesting Environment is a user device belonging to a child).

6.IANA Considerations

6.1.CBOR Tag Registration

In the "CBOR Tags" registry[IANA.cbor-tags] as defined in Section9.2 of RFC 8949[STD94], IANA has allocated the tag inTable 1 fromthe Specification Required space (1+2 size), with the present documentas the specification reference.

Table 1:Values for Tags
TagData ItemSemantics
601map (Claims-Set as perAppendix A of [RFC9781])Unprotected CWT Claims Set [RFC9781]

6.2.Media-Type application/uccs+cbor Registration

IANA has added the following to the "Media Types"registry[IANA.media-types].

Table 2:Media Type Registration
NameTemplateReference
uccs+cborapplication/uccs+cborSection 6.2 of RFC 9781
Type name:
application
Subtype name:
uccs+cbor
Required parameters:
N/A
Optional parameters:
N/A
Encoding considerations:
binary (CBOR data item)
Security considerations:
Section 7 of RFC 9781
Interoperability considerations:
none
Published specification:
RFC 9781
Applications that use this media type:
Applications that transfer Unprotected CWT Claims Set(s) (UCCS) over Secure Channels
Fragment identifier considerations:
The syntax and semantics of fragment identifiers is as specified for "application/cbor". (At publication of this document, there is no fragment identification syntax defined for "application/cbor".)
Additional information:


Deprecated alias names for this type:
N/A
Magic number(s):
N/A
File extension(s):
.uccs
Macintosh file type code(s):
N/A
Person and email address to contact for further information:
RATS WG mailing list (rats@ietf.org)
Intended usage:
COMMON
Restrictions on usage:
none
Author/Change controller:
IETF

6.3.Media-Type application/ujcs+json Registration

IANA has added the following to the "Media Types"registry[IANA.media-types].

Table 3:JSON Media Type Registration
NameTemplateReference
ujcs+jsonapplication/ujcs+jsonSection 6.3 of RFC 9781
Type name:
application
Subtype name:
ujcs+json
Required parameters:
N/A
Optional parameters:
N/A
Encoding considerations:
binary (UTF-8)
Security considerations:
Section 7 of RFC 9781
Interoperability considerations:
none
Published specification:
RFC 9781
Applications that use this media type:
Applications that transfer Unprotected JWT Claims Set(s) (UJCS) over Secure Channels
Fragment identifier considerations:
The syntax and semantics of fragment identifiers is as specified for "application/json". (At publication of this document, there is no fragment identification syntax defined for "application/json".)
Additional information:


Deprecated alias names for this type:
N/A
Magic number(s):
N/A
File extension(s):
.ujcs
Macintosh file type code(s):
N/A
Person and email address to contact for further information:
RATS WG mailing list (rats@ietf.org)
Intended usage:
COMMON
Restrictions on usage:
none
Author/Change controller:
IETF

6.4.Content-Format Registration

IANA has registered the following in the "CoAPContent-Formats" registry within the "Constrained RESTfulEnvironments (CoRE) Parameters" registry group[IANA.core-parameters].

Table 4:Content-Format Registration
Content TypeContent CodingIDReference
application/uccs+cbor-601Section 6.4 of RFC 9781

7.Security Considerations

The security considerations of[STD94] apply.The security considerations of[RFC8392] need to be applied analogously,replacing the function of COSE with that of the Secure Channel; inparticular, "it is not only important to protect the CWT in transit but also to ensure that the recipient can authenticate the party that assembled the claims and created the CWT".

Section 3 discusses security considerations for Secure Channels in whichUCCS might be used.This document provides the CBOR tag definition for UCCS and a discussionon security consideration for the use of UCCS in RATS. Uses of UCCS outside the scope ofRATS are not covered by this document. The UCCS specification -- and theuse of the UCCS CBOR tag, correspondingly -- is not intended for use in ascope where a scope-specific security consideration discussion has notbeen conducted, vetted, and approved for that use.In order to be able to use the UCCS CBOR tag in another such scope,the secure channel and/or the application protocol (e.g., TLS and theprotocol identified by ALPN)MUST specify the roles of the endpointsin a fashion that the security properties of conveying UCCS via aSecure Channel between the roles are well-defined.

7.1.General Considerations

Implementations of Secure Channels are often separate from the applicationlogic that has security requirements on them. Similar securityconsiderations to those described in[STD96] for obtaining therequired levels of assurance include:

  • Implementations need to provide sufficient protection for private orsecret key material used to establish or protect the Secure Channel.

  • Using a key for more than one algorithm can leak information about thekey and is not recommended.

  • An algorithm used to establish or protect the Secure Channel may havelimits on the number of times that a key can be used without leakinginformation about the key.

  • Evidence in a UCCS conveyed in a Secure Channel generally cannot beused to support trust in the credentials that were used to establishthat secure channel, as this would create a circular dependency.

The Verifier needs to ensure that the management of key material used toestablish or protect the Secure Channel is acceptable. This may includefactors such as:

  • Ensuring that any permissions associated with key ownership are respectedin the establishment of the Secure Channel.

  • Using cryptographic algorithms appropriately.

  • Using key material in accordance with any usage restrictions such asfreshness or algorithm restrictions.

  • Ensuring that appropriate protections are in place to address potentialtraffic analysis attacks.

7.2.Algorithm-Specific Security Considerations

Table 5 provides references to some security considerations ofspecific cryptography choices that are discussed in[RFC9053].

Table 5:Algorithm-Specific Security Considerations
AlgorithmReference
AES-CBC-MACSection 3.2.1 of [RFC9053]
AES-GCMSection 4.1.1 of [RFC9053]
AES-CCMSection 4.2.1 of [RFC9053]
ChaCha20/Poly1305Section 4.3.1 of [RFC9053]

8.References

8.1.Normative References

[BCP225]
Best Current Practice 225,<https://www.rfc-editor.org/info/bcp225>.
At the time of writing, this BCP comprises the following:
Sheffer, Y.,Hardt, D., andM. Jones,"JSON Web Token Best Current Practices",BCP 225,RFC 8725,DOI 10.17487/RFC8725,,<https://www.rfc-editor.org/info/rfc8725>.
[IANA.cbor-tags]
IANA,"Concise Binary Object Representation (CBOR) Tags",<https://www.iana.org/assignments/cbor-tags>.
[IANA.cwt]
IANA,"CBOR Web Token (CWT) Claims",<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,,<https://www.rfc-editor.org/info/rfc2119>.
[RFC7519]
Jones, M.,Bradley, J., andN. Sakimura,"JSON Web Token (JWT)",RFC 7519,DOI 10.17487/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,,<https://www.rfc-editor.org/info/rfc8174>.
[RFC8392]
Jones, M.,Wahlstroem, E.,Erdtman, S., andH. Tschofenig,"CBOR Web Token (CWT)",RFC 8392,DOI 10.17487/RFC8392,,<https://www.rfc-editor.org/info/rfc8392>.
[RFC8610]
Birkholz, H.,Vigano, C., andC. Bormann,"Concise Data Definition Language (CDDL): A Notational Convention to Express Concise Binary Object Representation (CBOR) and JSON Data Structures",RFC 8610,DOI 10.17487/RFC8610,,<https://www.rfc-editor.org/info/rfc8610>.
[RFC9165]
Bormann, C.,"Additional Control Operators for the Concise Data Definition Language (CDDL)",RFC 9165,DOI 10.17487/RFC9165,,<https://www.rfc-editor.org/info/rfc9165>.
[STD94]
Internet Standard 94,<https://www.rfc-editor.org/info/std94>.
At the time of writing, this STD comprises the following:
Bormann, C. andP. Hoffman,"Concise Binary Object Representation (CBOR)",STD 94,RFC 8949,DOI 10.17487/RFC8949,,<https://www.rfc-editor.org/info/rfc8949>.

8.2.Informative References

[IANA.core-parameters]
IANA,"Constrained RESTful Environments (CoRE) Parameters",<https://www.iana.org/assignments/core-parameters>.
[IANA.media-types]
IANA,"Media Types",<https://www.iana.org/assignments/media-types>.
[NIST-SP800-90Ar1]
Barker, E. andJ. Kelsey,"Recommendation for Random Number Generation Using Deterministic Random Bit Generators",NIST SP 800-90Ar1,DOI 10.6028/nist.sp.800-90ar1,,<https://doi.org/10.6028/nist.sp.800-90ar1>.
[RFC4949]
Shirey, R.,"Internet Security Glossary, Version 2",FYI 36,RFC 4949,DOI 10.17487/RFC4949,,<https://www.rfc-editor.org/info/rfc4949>.
[RFC8446]
Rescorla, E.,"The Transport Layer Security (TLS) Protocol Version 1.3",RFC 8446,DOI 10.17487/RFC8446,,<https://www.rfc-editor.org/info/rfc8446>.
[RFC8747]
Jones, M.,Seitz, L.,Selander, G.,Erdtman, S., andH. Tschofenig,"Proof-of-Possession Key Semantics for CBOR Web Tokens (CWTs)",RFC 8747,DOI 10.17487/RFC8747,,<https://www.rfc-editor.org/info/rfc8747>.
[RFC9053]
Schaad, J.,"CBOR Object Signing and Encryption (COSE): Initial Algorithms",RFC 9053,DOI 10.17487/RFC9053,,<https://www.rfc-editor.org/info/rfc9053>.
[RFC9334]
Birkholz, H.,Thaler, D.,Richardson, M.,Smith, N., andW. Pan,"Remote ATtestation procedureS (RATS) Architecture",RFC 9334,DOI 10.17487/RFC9334,,<https://www.rfc-editor.org/info/rfc9334>.
[RFC9397]
Pei, M.,Tschofenig, H.,Thaler, D., andD. Wheeler,"Trusted Execution Environment Provisioning (TEEP) Architecture",RFC 9397,DOI 10.17487/RFC9397,,<https://www.rfc-editor.org/info/rfc9397>.
[RFC9711]
Lundblade, L.,Mandyam, G.,O'Donoghue, J., andC. Wallace,"The Entity Attestation Token (EAT)",RFC 9711,DOI 10.17487/RFC9711,,<https://www.rfc-editor.org/info/rfc9711>.
[STD96]
Internet Standard 96,<https://www.rfc-editor.org/info/std96>.
At the time of writing, this STD comprises the following:
Schaad, J.,"CBOR Object Signing and Encryption (COSE): Structures and Process",STD 96,RFC 9052,DOI 10.17487/RFC9052,,<https://www.rfc-editor.org/info/rfc9052>.
Schaad, J.,"CBOR Object Signing and Encryption (COSE): Countersignatures",STD 96,RFC 9338,DOI 10.17487/RFC9338,,<https://www.rfc-editor.org/info/rfc9338>.
[TPM2]
Trusted Computing Group,"Trusted Platform Module 2.0 Library",Version 184,,<https://trustedcomputinggroup.org/resource/tpm-library-specification/>.

Appendix A.CDDL

The Concise Data Definition Language (CDDL), as defined in[RFC8610] and[RFC9165], provides an easy and unambiguous way to expressstructures for protocol messages and data formats that use CBOR orJSON.

[RFC8392] does not define CDDL for CWT Claims Sets.

The CDDL model inFigure 1 shows how to use CDDLfor defining the CWT Claims Set defined in[RFC8392].These CDDL ruleshave been built such that they also can describe[RFC7519] Claims sets bydisabling feature "cbor" and enabling feature "json".

UCCS-Untagged = Claims-SetUCCS-Tagged = #6.601(UCCS-Untagged)Claims-Set = { * $$Claims-Set-Claims * Claim-Label .feature "extended-claims-label" => any}Claim-Label = CBOR-ONLY<int> / textstring-or-uri = text$$Claims-Set-Claims //= ( iss-claim-label => string-or-uri )$$Claims-Set-Claims //= ( sub-claim-label => string-or-uri )$$Claims-Set-Claims //= ( aud-claim-label => string-or-uri )$$Claims-Set-Claims //= ( exp-claim-label => ~time )$$Claims-Set-Claims //= ( nbf-claim-label => ~time )$$Claims-Set-Claims //= ( iat-claim-label => ~time )$$Claims-Set-Claims //= ( cti-claim-label => bytes )iss-claim-label = JC<"iss", 1>sub-claim-label = JC<"sub", 2>aud-claim-label = JC<"aud", 3>exp-claim-label = JC<"exp", 4>nbf-claim-label = JC<"nbf", 5>iat-claim-label = JC<"iat", 6>cti-claim-label = CBOR-ONLY<7>  ; jti in JWT: different name and textJSON-ONLY<J> = J .feature "json"CBOR-ONLY<C> = C .feature "cbor"JC<J,C> = JSON-ONLY<J> / CBOR-ONLY<C>
Figure 1:CDDL definition for Claims-Set

Specifications that define additional Claims should also supplyadditions to the $$Claims-Set-Claims socket, e.g.:

; [RFC8747]$$Claims-Set-Claims //= ( 8: CWT-cnf ) ; cnfCWT-cnf = {  (1: CWT-COSE-Key) //  (2: CWT-Encrypted_COSE_Key) //  (3: CWT-kid)}CWT-COSE-Key = COSE_KeyCWT-Encrypted_COSE_Key = COSE_Encrypt / COSE_Encrypt0CWT-kid = bytes;;; Insert the required CDDL from RFC 9052 to complete these;;; definitions.  This can be done manually or automated by a;;; tool that implements an import directive such as:;# import rfc9052

The above definitions, concepts, and security considerations also define a JSON-encoded Claims-Set as encapsulated in a JWT.Such an unsigned Claims-Set can be referred to as a "Unprotected JWTClaims Set", or a "UJCS".The CDDL definition ofClaims-Set inFigure 1 can be used for a UJCS:

UJCS = Claims-Set

Appendix B.Example

This appendix is informative.

The example CWT Claims Set fromAppendix A.1 of [RFC8392] can be turned intoa UCCS by enclosing it with a tag number 601:

 601(   {     / iss / 1: "coap://as.example.com",     / sub / 2: "erikw",     / aud / 3: "coap://light.example.com",     / exp / 4: 1444064944,     / nbf / 5: 1443944944,     / iat / 6: 1443944944,     / cti / 7: h'0b71'   } )

Appendix C.EAT

The following CDDL adds UCCS-format and UJCS-format tokens to EAT using its predefined extension points (see Section4.2.18 (submods) of[RFC9711]).

$EAT-CBOR-Tagged-Token /= UCCS-Tagged$EAT-CBOR-Untagged-Token /= UCCS-Untagged$JSON-Selector /= [type: "UJCS", nested-token: UJCS]

Acknowledgements

Laurence Lundblade suggested some improvements to the CDDL.Carl Wallace provided a very useful review.

Authors' Addresses

Henk Birkholz
Fraunhofer SIT
Rheinstrasse 75
64295Darmstadt
Germany
Email:henk.birkholz@ietf.contact
Jeremy O'Donoghue
Qualcomm Technologies Inc.
279 Farnborough Road
Farnborough
GU14 7LS
United Kingdom
Email:jodonogh@qti.qualcomm.com
Nancy Cam-Winget
Cisco Systems
3550 Cisco Way
San Jose,CA95134
United States of America
Email:ncamwing@cisco.com
Carsten Bormann
Universität Bremen TZI
Postfach 330440
D-28359Bremen
Germany
Phone:+49-421-218-63921
Email:cabo@tzi.org

[8]ページ先頭

©2009-2025 Movatter.jp