<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.7 (Ruby 3.2.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-rats-uccs-09" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.20.0 -->
  <front>
    <title abbrev="Unprotected CWT Claims Sets">A CBOR Tag for Unprotected CWT Claims Sets</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-rats-uccs-09"/>
    <author initials="H." surname="Birkholz" fullname="Henk Birkholz">
      <organization abbrev="Fraunhofer SIT">Fraunhofer SIT</organization>
      <address>
        <postal>
          <street>Rheinstrasse 75</street>
          <city>Darmstadt</city>
          <code>64295</code>
          <country>Germany</country>
        </postal>
        <email>henk.birkholz@sit.fraunhofer.de</email>
      </address>
    </author>
    <author initials="J." surname="O'Donoghue" fullname="Jeremy O'Donoghue">
      <organization abbrev="Qualcomm Technologies Inc.">Qualcomm Technologies Inc.</organization>
      <address>
        <postal>
          <street>279 Farnborough Road</street>
          <city>Farnborough</city>
          <code>GU14 7LS</code>
          <country>United Kingdom</country>
        </postal>
        <email>jodonogh@qti.qualcomm.com</email>
      </address>
    </author>
    <author initials="N." surname="Cam-Winget" fullname="Nancy Cam-Winget">
      <organization>Cisco Systems</organization>
      <address>
        <postal>
          <street>3550 Cisco Way</street>
          <city>San Jose</city>
          <region>CA</region>
          <code>95134</code>
          <country>USA</country>
        </postal>
        <email>ncamwing@cisco.com</email>
      </address>
    </author>
    <author initials="C." surname="Bormann" fullname="Carsten Bormann">
      <organization>Universität Bremen TZI</organization>
      <address>
        <postal>
          <street>Postfach 330440</street>
          <city>Bremen</city>
          <code>D-28359</code>
          <country>Germany</country>
        </postal>
        <phone>+49-421-218-63921</phone>
        <email>cabo@tzi.org</email>
      </address>
    </author>
    <date year="2024" month="March" day="04"/>
    <area>Security</area>
    <workgroup>RATS Working Group</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <?line 86?>

<t>When transported over secure channels, CBOR Web Token (CWT, RFC 8392) Claims Sets may not need the protection afforded by wrapping them into COSE, as is required for a true CWT.
This specification defines a CBOR tag for such unprotected CWT Claims Sets (UCCS) and discusses conditions for its proper use.</t>
      <!--
[^status]

[^status]:
    The present version (-03)
 -->



    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ietf-rats-uccs/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Remote ATtestation procedureS (rats) Working Group mailing list (<eref target="mailto:rats@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/rats/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/rats/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/ietf-rats-wg/draft-ietf-rats-uccs"/>.</t>
    </note>
  </front>
  <middle>
    <?line 98?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>A CBOR Web Token (CWT) as specified by <xref target="RFC8392"/> is always wrapped in a
CBOR Object Signing and Encryption (COSE, <xref target="RFC9052"/>) envelope.
COSE provides -- amongst other things -- end-to-end data origin
authentication and integrity protection employed by RFC 8392 as well as
optional encryption for CWTs.
Under the right circumstances (<xref target="secchan"/>),
though, a signature providing proof for authenticity and integrity can be
provided through the transfer protocol and thus omitted from the
information in a CWT without compromising the intended goal of authenticity
and integrity.
In other words, if communicating parties have a pre-existing security
association, they can reuse it to provide authenticity and integrity
for their messages, enabling the basic principle of using resources
parsimoniously.
Specifically, if a mutually secured channel is established between two
remote peers, and if that secure channel provides the required
properties (as discussed below), it is possible to omit the protection
provided by COSE, creating a use case for unprotected CWT Claims Sets.
Similarly, if there is one-way authentication, the party that did not
authenticate may be in a position to send authentication information through
this channel that allows the already authenticated party to authenticate the
other party; this effectively turns the channel into a mutually
secured channel.</t>
      <t>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 of
Remote Attestation Procedures (RATS <xref target="RFC9334"/>) for the
conveyance of RATS Conceptual Messages.</t>
      <t>This specification does not change <xref target="RFC8392"/>: A true CWT does not make use of
the tag allocated here; the UCCS tag is an alternative to using COSE
protection and a CWT tag.
Consequently, within the well-defined scope of a secure channel, it
can be acceptable and economic to use the contents of a CWT without
its COSE container and tag it with a UCCS CBOR tag for further
processing within that scope -- or to use the contents of a UCCS CBOR
tag for building a CWT to be signed by some entity that can vouch for
those contents.</t>
      <section anchor="terminology">
        <name>Terminology</name>
        <t>The term Claim is used as in <xref target="RFC7519"/>.</t>
        <t>The terms Claim Key, Claim Value, and CWT Claims Set are used as in
<xref target="RFC8392"/>.</t>
        <t>The terms Attester, Attesting Environment, Evidence, Relying Party and Verifier are used as in <xref target="RFC9334"/>.</t>
        <dl>
          <dt>UCCS:</dt>
          <dd>
            <t>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.</t>
          </dd>
          <dt>Secure Channel:</dt>
          <dd>
            <t><xref target="NIST-SP800-90Ar1"/> defines a Secure Channel as follows:
</t>
            <aside>
              <!-- This really is a block quote, but RFCXMLv3 doesn't allow that -->
      <t>"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"</t>
            </aside>
            <t>For the purposes of the present document, we focus on a protected communication
channel used for conveyance that can ensure the same qualities as CWT without
having the COSE protection available: mutual authentication,
integrity protection, confidentiality.
(Replay protection can be added by including a nonce claim such as
Nonce (claim 10 <xref target="IANA.cwt"/>).)
Examples include conveyance via PCIe
(Peripheral Component Interconnect Express) IDE (Integrity and Data
Encryption), or a TLS tunnel.</t>
          </dd>
        </dl>
        <t>All terms referenced or defined in this section are capitalized in the remainder of
this document.</t>
        <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
        <?line -18?>

</section>
    </section>
    <section anchor="deployment-and-usage-of-uccs">
      <name>Deployment and Usage of UCCS</name>
      <t>Usage scenarios involving the conveyance of Claims, in particular
RATS, require a standardized data definition and encoding format that
can be transferred
and transported using different communication channels.  As these are
Claims, the Claims sets defined in <xref target="RFC8392"/> are
a suitable format.  However, the way these Claims are secured depends on the deployment, the security
capabilities of the device, as well as their software stack.  For example, a Claim may be securely
stored and conveyed using a device's Trusted Execution Environment (TEE, see <xref target="RFC9397"/>) or
a Trusted Platform Module (TPM, see <xref target="TPM2"/>).
Especially in some resource constrained environments, the same process that provides the secure communication
transport 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 conveying such UCCS.  The following sections
elaborate on Secure Channel characteristics in general and further describe RATS usage scenarios and
corresponding requirements for UCCS deployment.</t>
    </section>
    <section anchor="secchan">
      <name>Characteristics of a Secure Channel</name>
      <t>A Secure Channel for the conveyance of UCCS needs to provide the security
properties that would otherwise be provided by COSE for a CWT.
In this regard, UCCS is similar in security considerations to JWTs <xref target="RFC8725"/>
using the algorithm "none".  RFC 8725 states:</t>
      <blockquote>
        <t>[...] if a JWT is cryptographically
protected end-to-end by a transport layer, such as TLS using
cryptographically current algorithms, there may be no need to apply another
layer of cryptographic protections to the JWT.  In such cases, the use of
the "none" algorithm can be perfectly acceptable.</t>
      </blockquote>
      <t>The security considerations discussed, e.g., in Sections <xref target="RFC8725" section="2.1" sectionFormat="bare"/>, <xref target="RFC8725" section="3.1" sectionFormat="bare"/>, and <xref target="RFC8725" section="3.2" sectionFormat="bare"/> of <xref target="RFC8725"/> apply in an analogous way to the use of UCCS as
elaborated on in this document.</t>
      <t>Secure Channels are often set up in a handshake protocol that mutually
derives a session key, where the handshake protocol establishes the
(identity and thus) authenticity of one or both ends of the communication.
The session key can
then be used to provide confidentiality and integrity of the transfer of
information inside the Secure Channel.
(Where the handshake did not provide a mutually secure channel,
further authentication information can be conveyed by the party not
yet authenticated, leading to a mutually secured channel.)
A well-known example of a such a
Secure Channel setup protocol is the TLS <xref target="RFC8446"/> handshake; the
TLS record protocol can then be used for secure conveyance.</t>
      <t>As UCCS were initially created for use in RATS Secure Channels, the following
section provides a discussion of
their use in these channels.  Where other environments are intended to be
used to convey UCCS, similar considerations need to be documented before
UCCS can be used.</t>
    </section>
    <section anchor="uccs-in-rats-conceptual-message-conveyance">
      <name>UCCS in RATS Conceptual Message Conveyance</name>
      <t>This section describes a detailed usage scenario for UCCS in the
context of RATS in conjunction with its attendant security
requirements.
The use of UCCS tag CPA601 outside of the RATS context <bcp14>MUST</bcp14> come with additional instruction leaflets and security considerations.</t>
      <t>For the purposes of this section, any RATS role can be the sender or the receiver of the UCCS.</t>
      <t>Secure Channels can be transient in nature.  For the purposes of this
specification, the mechanisms used to establish a Secure Channel are out of
scope.</t>
      <t>In the scope of RATS Claims, the receiver <bcp14>MUST</bcp14>
authenticate the sender as part of the establishment of the Secure Channel.
Furthermore, the channel <bcp14>MUST</bcp14> provide integrity of the communication between the
communicating RATS roles.
For data confidentiality <xref target="RFC4949"/>, the receiving side <bcp14>MUST</bcp14> be
authenticated as well; this is achieved if the sender and receiver
mutually authenticate when establishing the Secure Channel.
The quality of the receiver's authentication and authorization will
influence whether the sender can disclose the UCCS.</t>
      <t>The extent to which a Secure Channel can provide assurances that UCCS
originate from a trustworthy Attesting Environment depends on the
characteristics of both the cryptographic mechanisms used to establish the
channel and the characteristics of the Attesting Environment itself.
The assurance provided to a Relying Party depends on the authenticity
and integrity properties of the Secure Channel used for conveying
the UCCS to it.</t>
      <t>Ultimately, it is up to the receiver's policy to determine whether to accept
a UCCS from the sender and to the type of Secure Channel it must negotiate.
While the security considerations of the cryptographic algorithms used are similar
to COSE, the considerations of the Secure Channel should also adhere to the policy
configured at each of end of the Secure Channel.  However, the policy controls
and definitions are out of scope for this document.</t>
      <t>Where an Attesting Environment serves as an endpoint of a Secure
Channel used to convey a UCCS, the security assurance required of that
Attesting Environment by a Relying Party generally calls for the
Attesting Environment to be implemented using techniques designed to
provide enhanced protection from an attacker wishing to tamper with or
forge UCCS originating from that Attesting Environment.
A possible approach might be to implement the Attesting Environment in
a hardened environment such as a TEE <xref target="RFC9397"/> or a TPM <xref target="TPM2"/>.</t>
      <t>When UCCS emerge from the Secure Channel and into the receiver, the security
properties of the secure channel no longer protect the UCCS, which now are subject to the same security properties
as any other unprotected data in the Verifier environment.
If the receiver subsequently forwards UCCS, they are treated as though they originated within the receiver.</t>
      <t>The Secure Channel context does not govern fully formed CWTs in the
same way it governs UCCS.
As with EATs nested in other EATs (Section <xref target="I-D.ietf-rats-eat" section="4.2.18.3" sectionFormat="bare">Nested Tokens</xref> of <xref target="I-D.ietf-rats-eat"/>), the Secure
Channel does not endorse fully formed CWTs transferred through it.
Effectively, the COSE envelope of a CWT (or a nested EAT) shields the
CWT Claims Set from the endorsement of the secure channel.
(Note that EAT might add a nested UCCS
Claim, and this statement does not apply to UCCS nested into UCCS, only to
fully formed CWTs.)</t>
    </section>
    <section anchor="considerations-for-using-uccs-in-other-rats-contexts">
      <name>Considerations for Using UCCS in Other RATS Contexts</name>
      <t>This section discusses two additional usage scenarios for UCCS in the
context of RATS.</t>
      <section anchor="delegated-attestation">
        <name>Delegated Attestation</name>
        <t>Another usage scenario is that of a sub-Attester that has no signing
keys (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, <xref section="3.3" sectionFormat="of" target="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 and
protects that hash using its signing key for Evidence, for example,
using a Detached-Submodule-Digest or Detached EAT Bundle (<xref section="5" sectionFormat="of" target="I-D.ietf-rats-eat"/>).</t>
      </section>
      <section anchor="privacy-preservation">
        <name>Privacy Preservation</name>
        <t>A Secure Channel which preserves the privacy of the Attester may provide
security properties equivalent to COSE, but only inside the life-span of the
session established.  In general, when a privacy preserving Secure Channel is employed for conveying a conceptual message the receiver cannot correlate the message with the senders of other received UCCS messages.</t>
        <t>An Attester must consider whether any UCCS it returns over a privacy
preserving Secure Channel compromises the privacy in unacceptable ways.  As
an example, the use of the EAT UEID Claim <xref section="4.2.1" sectionFormat="of" target="I-D.ietf-rats-eat"/> in UCCS over a privacy
preserving Secure Channel allows a Verifier to correlate UCCS from a single
Attesting Environment across many Secure Channel sessions. This may be
acceptable in some use-cases (e.g., if the Attesting Environment is a
physical sensor in a factory) and unacceptable in others (e.g., if the
Attesting Environment is a user device belonging to a child).</t>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>In the CBOR Tags registry <xref target="IANA.cbor-tags"/> as defined in <xref section="9.2" sectionFormat="of" target="RFC8949"/>, IANA is requested to allocate the tag in <xref target="tab-tag-values"/> from
the Specification Required space (1+2 size), with the present document
as the specification reference.</t>
      <table anchor="tab-tag-values">
        <name>Values for Tags</name>
        <thead>
          <tr>
            <th align="right">Tag</th>
            <th align="left">Data Item</th>
            <th align="left">Semantics</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="right">CPA601</td>
            <td align="left">map (Claims-Set as per <xref target="cddl"/> of [RFCthis])</td>
            <td align="left">Unprotected CWT Claims Set [RFCthis]</td>
          </tr>
        </tbody>
      </table>
      <t><cref anchor="cpa">RFC-Editor: This document uses the CPA (code point allocation)
  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.</cref></t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>The security considerations of <xref target="RFC8949"/> apply.
The security considerations of <xref target="RFC8392"/> need to be applied analogously,
replacing the function of COSE with that of the Secure Channel.</t>
      <t><xref target="secchan"/> discusses security considerations for Secure Channels, in which
UCCS might be used.
This document provides the CBOR tag 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 not covered by this document.  The UCCS specification -- and the
use of the UCCS CBOR tag, correspondingly -- is not intended for use in a
scope where a scope-specific security consideration discussion has not
been 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 the
protocol identified by ALPN) <bcp14>MUST</bcp14> specify the roles of the endpoints
in a fashion that the security properties of conveying UCCS via a
Secure Channel between the roles are well-defined.</t>
      <section anchor="general-considerations">
        <name>General Considerations</name>
        <t>Implementations of Secure Channels are often separate from the application
logic that has security requirements on them.  Similar security
considerations to those described in <xref target="RFC9052"/> for obtaining the
required levels of assurance include:</t>
        <ul spacing="normal">
          <li>
            <t>Implementations need to provide sufficient protection for private or
secret key material used to establish or protect the Secure Channel.</t>
          </li>
          <li>
            <t>Using a key for more than one algorithm can leak information about the
key and is not recommended.</t>
          </li>
          <li>
            <t>An algorithm used to establish or protect the Secure Channel may have
limits on the number of times that a key can be used without leaking
information about the key.</t>
          </li>
          <li>
            <t>Evidence in a UCCS conveyed in a Secure Channel generally cannot be
used to support trust in the credentials that were used to establish
that secure channel, as this would create a circular dependency.</t>
          </li>
        </ul>
        <t>The Verifier needs to ensure that the management of key material used to
establish or protect the Secure Channel is acceptable. This may include
factors such as:</t>
        <ul spacing="normal">
          <li>
            <t>Ensuring that any permissions associated with key ownership are respected
in the establishment of the Secure Channel.</t>
          </li>
          <li>
            <t>Using cryptographic algorithms appropriately.</t>
          </li>
          <li>
            <t>Using key material in accordance with any usage restrictions such as
freshness or algorithm restrictions.</t>
          </li>
          <li>
            <t>Ensuring that appropriate protections are in place to address potential
traffic analysis attacks.</t>
          </li>
        </ul>
        <t>The remaining subsections of this section highlight some aspects of specific cryptography choices that are detailed further in <xref target="RFC9053"/>.</t>
      </section>
      <section anchor="aes-cbcmac">
        <name>AES-CBC_MAC</name>
        <ul spacing="normal">
          <li>
            <t>A given key should only be used for messages of fixed or known length.</t>
          </li>
          <li>
            <t>Different keys should be used for authentication and encryption operations.</t>
          </li>
          <li>
            <t>A mechanism to ensure that IV cannot be modified is required.</t>
          </li>
        </ul>
        <t><xref section="3.2.1" sectionFormat="of" target="RFC9053"/> contains a detailed explanation of these considerations.</t>
      </section>
      <section anchor="aes-gcm">
        <name>AES-GCM</name>
        <ul spacing="normal">
          <li>
            <t>The key and nonce pair is unique for every encrypted message.</t>
          </li>
          <li>
            <t>The maximum number of messages to be encrypted for a given key is not exceeded.</t>
          </li>
        </ul>
        <t><xref section="4.1.1" sectionFormat="of" target="RFC9053"/> contains a detailed explanation of these considerations.</t>
      </section>
      <section anchor="aes-ccm">
        <name>AES-CCM</name>
        <ul spacing="normal">
          <li>
            <t>The key and nonce pair is unique for every encrypted message.</t>
          </li>
          <li>
            <t>The maximum number of messages to be encrypted for a given block cipher is not exceeded.</t>
          </li>
          <li>
            <t>The number of messages both successfully and unsuccessfully decrypted is used to
determine when rekeying is required.</t>
          </li>
        </ul>
        <t><xref section="4.2.1" sectionFormat="of" target="RFC9053"/> contains a detailed explanation of these considerations.</t>
      </section>
      <section anchor="chacha20-and-poly1305">
        <name>ChaCha20 and Poly1305</name>
        <ul spacing="normal">
          <li>
            <t>The nonce is unique for every encrypted message.</t>
          </li>
          <li>
            <t>The number of messages both successfully and unsuccessfully decrypted is used to
determine when rekeying is required.</t>
          </li>
        </ul>
        <t><xref section="4.3.1" sectionFormat="of" target="RFC9053"/> contains a detailed explanation of these considerations.</t>
      </section>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC8949">
          <front>
            <title>Concise Binary Object Representation (CBOR)</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
            <date month="December" year="2020"/>
            <abstract>
              <t>The Concise Binary Object Representation (CBOR) is a data format whose design goals include the possibility of extremely small code size, fairly small message size, and extensibility without the need for version negotiation. These design goals make it different from earlier binary serializations such as ASN.1 and MessagePack.</t>
              <t>This document obsoletes RFC 7049, providing editorial improvements, new details, and errata fixes while keeping full compatibility with the interchange format of RFC 7049. It does not create a new version of the format.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="94"/>
          <seriesInfo name="RFC" value="8949"/>
          <seriesInfo name="DOI" value="10.17487/RFC8949"/>
        </reference>
        <reference anchor="RFC7519">
          <front>
            <title>JSON Web Token (JWT)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
            <date month="May" year="2015"/>
            <abstract>
              <t>JSON Web Token (JWT) is a compact, URL-safe means of representing claims to be transferred between two parties. The claims in a JWT are encoded as a JSON object that is used as the payload of a JSON Web Signature (JWS) structure or as the plaintext of a JSON Web Encryption (JWE) structure, enabling the claims to be digitally signed or integrity protected with a Message Authentication Code (MAC) and/or encrypted.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7519"/>
          <seriesInfo name="DOI" value="10.17487/RFC7519"/>
        </reference>
        <reference anchor="RFC8725">
          <front>
            <title>JSON Web Token Best Current Practices</title>
            <author fullname="Y. Sheffer" initials="Y." surname="Sheffer"/>
            <author fullname="D. Hardt" initials="D." surname="Hardt"/>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <date month="February" year="2020"/>
            <abstract>
              <t>JSON Web Tokens, also known as JWTs, are URL-safe JSON-based security tokens that contain a set of claims that can be signed and/or encrypted. JWTs are being widely used and deployed as a simple security token format in numerous protocols and applications, both in the area of digital identity and in other application areas. This Best Current Practices document updates RFC 7519 to provide actionable guidance leading to secure implementation and deployment of JWTs.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="225"/>
          <seriesInfo name="RFC" value="8725"/>
          <seriesInfo name="DOI" value="10.17487/RFC8725"/>
        </reference>
        <reference anchor="RFC8392">
          <front>
            <title>CBOR Web Token (CWT)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="E. Wahlstroem" initials="E." surname="Wahlstroem"/>
            <author fullname="S. Erdtman" initials="S." surname="Erdtman"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <date month="May" year="2018"/>
            <abstract>
              <t>CBOR Web Token (CWT) is a compact means of representing claims to be transferred between two parties. The claims in a CWT are encoded in the Concise Binary Object Representation (CBOR), and CBOR Object Signing and Encryption (COSE) is used for added application-layer security protection. A claim is a piece of information asserted about a subject and is represented as a name/value pair consisting of a claim name and a claim value. CWT is derived from JSON Web Token (JWT) but uses CBOR rather than JSON.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8392"/>
          <seriesInfo name="DOI" value="10.17487/RFC8392"/>
        </reference>
        <reference anchor="IANA.cbor-tags" target="https://www.iana.org/assignments/cbor-tags">
          <front>
            <title>Concise Binary Object Representation (CBOR) Tags</title>
            <author>
              <organization>IANA</organization>
            </author>
          </front>
        </reference>
        <reference anchor="IANA.cwt" target="https://www.iana.org/assignments/cwt">
          <front>
            <title>CBOR Web Token (CWT) Claims</title>
            <author>
              <organization>IANA</organization>
            </author>
          </front>
        </reference>
        <reference anchor="RFC8610">
          <front>
            <title>Concise Data Definition Language (CDDL): A Notational Convention to Express Concise Binary Object Representation (CBOR) and JSON Data Structures</title>
            <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
            <author fullname="C. Vigano" initials="C." surname="Vigano"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="June" year="2019"/>
            <abstract>
              <t>This document proposes a notational convention to express Concise Binary Object Representation (CBOR) data structures (RFC 7049). Its main goal is to provide an easy and unambiguous way to express structures for protocol messages and data formats that use CBOR or JSON.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8610"/>
          <seriesInfo name="DOI" value="10.17487/RFC8610"/>
        </reference>
        <reference anchor="RFC9165">
          <front>
            <title>Additional Control Operators for the Concise Data Definition Language (CDDL)</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="December" year="2021"/>
            <abstract>
              <t>The Concise Data Definition Language (CDDL), standardized in RFC 8610, provides "control operators" as its main language extension point.</t>
              <t>The present document defines a number of control operators that were not yet ready at the time RFC 8610 was completed:,, and for the construction of constants; / for including ABNF (RFC 5234 and RFC 7405) in CDDL specifications; and for indicating the use of a non-basic feature in an instance.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9165"/>
          <seriesInfo name="DOI" value="10.17487/RFC9165"/>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC4949">
          <front>
            <title>Internet Security Glossary, Version 2</title>
            <author fullname="R. Shirey" initials="R." surname="Shirey"/>
            <date month="August" year="2007"/>
            <abstract>
              <t>This Glossary provides definitions, abbreviations, and explanations of terminology for information system security. The 334 pages of entries offer recommendations to improve the comprehensibility of written material that is generated in the Internet Standards Process (RFC 2026). The recommendations follow the principles that such writing should (a) use the same term or definition whenever the same concept is mentioned; (b) use terms in their plainest, dictionary sense; (c) use terms that are already well-established in open publications; and (d) avoid terms that either favor a particular vendor or favor a particular technology or mechanism over other, competing techniques that already exist or could be developed. This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="FYI" value="36"/>
          <seriesInfo name="RFC" value="4949"/>
          <seriesInfo name="DOI" value="10.17487/RFC4949"/>
        </reference>
        <reference anchor="RFC8446">
          <front>
            <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <date month="August" year="2018"/>
            <abstract>
              <t>This document specifies version 1.3 of the Transport Layer Security (TLS) protocol. TLS allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t>
              <t>This document updates RFCs 5705 and 6066, and obsoletes RFCs 5077, 5246, and 6961. This document also specifies new requirements for TLS 1.2 implementations.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8446"/>
          <seriesInfo name="DOI" value="10.17487/RFC8446"/>
        </reference>
        <reference anchor="RFC9334">
          <front>
            <title>Remote ATtestation procedureS (RATS) Architecture</title>
            <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
            <author fullname="D. Thaler" initials="D." surname="Thaler"/>
            <author fullname="M. Richardson" initials="M." surname="Richardson"/>
            <author fullname="N. Smith" initials="N." surname="Smith"/>
            <author fullname="W. Pan" initials="W." surname="Pan"/>
            <date month="January" year="2023"/>
            <abstract>
              <t>In network protocol exchanges, it is often useful for one end of a communication to know whether the other end is in an intended operating state. This document provides an architectural overview of the entities involved that make such tests possible through the process of generating, conveying, and evaluating evidentiary Claims. It provides a model that is neutral toward processor architectures, the content of Claims, and protocols.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9334"/>
          <seriesInfo name="DOI" value="10.17487/RFC9334"/>
        </reference>
        <reference anchor="RFC9397">
          <front>
            <title>Trusted Execution Environment Provisioning (TEEP) Architecture</title>
            <author fullname="M. Pei" initials="M." surname="Pei"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <author fullname="D. Thaler" initials="D." surname="Thaler"/>
            <author fullname="D. Wheeler" initials="D." surname="Wheeler"/>
            <date month="July" year="2023"/>
            <abstract>
              <t>A Trusted Execution Environment (TEE) is an environment that enforces the following: any code within the environment cannot be tampered with, and any data used by such code cannot be read or tampered with by any code outside the environment. This architecture document discusses the motivation for designing and standardizing a protocol for managing the lifecycle of Trusted Applications running inside such a TEE.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9397"/>
          <seriesInfo name="DOI" value="10.17487/RFC9397"/>
        </reference>
        <reference anchor="TPM2">
          <front>
            <title>Trusted Platform Module Library Specification, Family “2.0”, Level 00, Revision 01.59 ed., Trusted Computing Group</title>
            <author>
              <organization/>
            </author>
            <date year="2019"/>
          </front>
        </reference>
        <reference anchor="I-D.ietf-rats-eat">
          <front>
            <title>The Entity Attestation Token (EAT)</title>
            <author fullname="Laurence Lundblade" initials="L." surname="Lundblade">
              <organization>Security Theory LLC</organization>
            </author>
            <author fullname="Giridhar Mandyam" initials="G." surname="Mandyam">
         </author>
            <author fullname="Jeremy O'Donoghue" initials="J." surname="O'Donoghue">
              <organization>Qualcomm Technologies Inc.</organization>
            </author>
            <author fullname="Carl Wallace" initials="C." surname="Wallace">
              <organization>Red Hound Software, Inc.</organization>
            </author>
            <date day="15" month="January" year="2024"/>
            <abstract>
              <t>   An Entity Attestation Token (EAT) provides an attested claims set
   that describes state and characteristics of an entity, a device like
   a smartphone, IoT device, network equipment or such.  This claims set
   is used by a relying party, server or service to determine the type
   and degree of trust placed in the entity.

   An EAT is either a CBOR Web Token (CWT) or JSON Web Token (JWT) with
   attestation-oriented claims.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-rats-eat-25"/>
        </reference>
        <reference anchor="RFC9052">
          <front>
            <title>CBOR Object Signing and Encryption (COSE): Structures and Process</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>Concise Binary Object Representation (CBOR) is a data format designed for small code size and small message size. There is a need to be able to define basic security services for this data format. This document defines the CBOR Object Signing and Encryption (COSE) protocol. This specification describes how to create and process signatures, message authentication codes, and encryption using CBOR for serialization. This specification additionally describes how to represent cryptographic keys using CBOR.</t>
              <t>This document, along with RFC 9053, obsoletes RFC 8152.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="96"/>
          <seriesInfo name="RFC" value="9052"/>
          <seriesInfo name="DOI" value="10.17487/RFC9052"/>
        </reference>
        <reference anchor="RFC9053">
          <front>
            <title>CBOR Object Signing and Encryption (COSE): Initial Algorithms</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>Concise Binary Object Representation (CBOR) is a data format designed for small code size and small message size. There is a need to be able to define basic security services for this data format. This document defines a set of algorithms that can be used with the CBOR Object Signing and Encryption (COSE) protocol (RFC 9052).</t>
              <t>This document, along with RFC 9052, obsoletes RFC 8152.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9053"/>
          <seriesInfo name="DOI" value="10.17487/RFC9053"/>
        </reference>
        <reference anchor="RFC8747">
          <front>
            <title>Proof-of-Possession Key Semantics for CBOR Web Tokens (CWTs)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="L. Seitz" initials="L." surname="Seitz"/>
            <author fullname="G. Selander" initials="G." surname="Selander"/>
            <author fullname="S. Erdtman" initials="S." surname="Erdtman"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <date month="March" year="2020"/>
            <abstract>
              <t>This specification describes how to declare in a CBOR Web Token (CWT) (which is defined by RFC 8392) that the presenter of the CWT possesses a particular proof-of-possession key. Being able to prove possession of a key is also sometimes described as being the holder-of-key. This specification provides equivalent functionality to "Proof-of-Possession Key Semantics for JSON Web Tokens (JWTs)" (RFC 7800) but using Concise Binary Object Representation (CBOR) and CWTs rather than JavaScript Object Notation (JSON) and JSON Web Tokens (JWTs).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8747"/>
          <seriesInfo name="DOI" value="10.17487/RFC8747"/>
        </reference>
        <reference anchor="NIST-SP800-90Ar1">
          <front>
            <title>Recommendation for Random Number Generation Using Deterministic Random Bit Generators</title>
            <author fullname="Elaine B. Barker" initials="E." surname="Barker">
              <organization/>
            </author>
            <author fullname="John M. Kelsey" initials="J." surname="Kelsey">
              <organization/>
            </author>
            <date month="June" year="2015"/>
          </front>
          <seriesInfo name="DOI" value="10.6028/nist.sp.800-90ar1"/>
          <refcontent>National Institute of Standards and Technology</refcontent>
        </reference>
      </references>
    </references>
    <?line 454?>

<section anchor="cddl">
      <name>CDDL</name>
      <t>The Concise Data Definition Language (CDDL), as defined in <xref target="RFC8610"/> and
<xref target="RFC9165"/>, provides an easy and unambiguous way to express
structures for protocol messages and data formats that use CBOR or
JSON.</t>
      <t><xref target="RFC8392"/> does not define CDDL for CWT Claims Sets.</t>
      <t><cref anchor="cpa601">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.</cref></t>
      <t>This specification proposes using the definitions in <xref target="fig-claims-set"/>
for the CWT Claims Set defined in <xref target="RFC8392"/>.  Note that these definitions
have been built such that they also can describe <xref target="RFC7519"/> Claims sets by
disabling feature "cbor" and enabling feature "json", but this
flexibility is not the subject of the present specification.</t>
      <figure anchor="fig-claims-set">
        <name>CDDL definition for Claims-Set</name>
        <sourcecode type="cddl"><![CDATA[
UCCS-Untagged = Claims-Set
UCCS-Tagged = #6.601(UCCS-Untagged)

Claims-Set = {
 * $$Claims-Set-Claims
 * Claim-Label .feature "extended-claims-label" => any
}
Claim-Label = CBOR-ONLY<int> / text
string-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 text

JSON-ONLY<J> = J .feature "json"
CBOR-ONLY<C> = C .feature "cbor"
JC<J,C> = JSON-ONLY<J> / CBOR-ONLY<C>
]]></sourcecode>
      </figure>
      <t>Specifications that define additional Claims should also supply
additions to the $$Claims-Set-Claims socket, e.g.:</t>
      <sourcecode type="cddl" name="uccs-additional-examples.cddl"><![CDATA[
; [RFC8747]
$$Claims-Set-Claims //= ( 8: CWT-cnf ) ; cnf
CWT-cnf = {
  (1: CWT-COSE-Key) //
  (2: CWT-Encrypted_COSE_Key) //
  (3: CWT-kid)
}

CWT-COSE-Key = COSE_Key
CWT-Encrypted_COSE_Key = COSE_Encrypt / COSE_Encrypt0
CWT-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
]]></sourcecode>
    </section>
    <section anchor="example">
      <name>Example</name>
      <t>This appendix is informative.</t>
      <t>The example CWT Claims Set from <xref section="A.1" sectionFormat="of" target="RFC8392"/> can be turned into
a UCCS by enclosing it with a tag number CPA601:</t>
      <sourcecode type="cbor-diag"><![CDATA[
 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'
   }
 )
]]></sourcecode>
      <!--  LocalWords:  Attester Verifier UCCS decrypted rekeying JWT EATs
 -->
<!--  LocalWords:  Verifier's CWTs Attester Verifier FCFS
 -->

</section>
    <section anchor="json-support">
      <name>JSON Support</name>
      <t>This appendix is informative.</t>
      <t>The above definitions, concepts and security considerations all may be applied to define a JSON-encoded Claims-Set.
Such an unsigned Claims-Set can be referred to as a "UJCS", an "Unprotected JWT Claims Set".
The CDDL definition in <xref target="fig-claims-set"/> can be used for a "UJCS".</t>
      <sourcecode type="cddl"><![CDATA[
UJCS = Claims-Set
]]></sourcecode>
    </section>
    <section anchor="eat">
      <name>EAT</name>
      <t>This appendix is informative.</t>
      <t>The following CDDL adds UCCS-format and UJCS-format tokens to EAT using its predefined extension points (see Section <xref target="I-D.ietf-rats-eat" section="4.2.18" sectionFormat="bare">submods</xref> of <xref target="I-D.ietf-rats-eat"/>).</t>
      <sourcecode type="cddl"><![CDATA[
$EAT-CBOR-Tagged-Token /= UCCS-Tagged
$EAT-CBOR-Untagged-Token /= UCCS-Untagged

$JSON-Selector /= [type: "UJCS", nested-token: UJCS]
]]></sourcecode>
      <?line 586?>

</section>
    <section numbered="false" anchor="acknowledgements">
      <name>Acknowledgements</name>
      <t><contact fullname="Laurence Lundblade"/> suggested some improvements to the CDDL.
<contact fullname="Carl Wallace"/> provided a very useful review.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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

-->

</rfc>
