<?xml version='1.0' encoding='utf-8'?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" version="3" ipr="trust200902" docName="draft-ietf-rats-uccs-12" number="9781" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" xml:lang="en" updates="" obsoletes="" prepTime="2025-05-27T19:13:46" indexInclude="true" scripts="Common,Latin" tocDepth="3">
  <link href="https://datatracker.ietf.org/doc/draft-ietf-rats-uccs-12" rel="prev"/>
  <link href="https://dx.doi.org/10.17487/rfc9781" rel="alternate"/>
  <link href="urn:issn:2070-1721" rel="alternate"/>
  <front>
    <title abbrev="Unprotected CWT Claims Sets">A Concise Binary Object Representation (CBOR) Tag for Unprotected CBOR Web Token Claims Sets (UCCS)</title>
    <seriesInfo name="RFC" value="9781" stream="IETF"/>
    <author initials="H." surname="Birkholz" fullname="Henk Birkholz">
      <organization abbrev="Fraunhofer SIT" showOnFrontPage="true">Fraunhofer SIT</organization>
      <address>
        <postal>
          <street>Rheinstrasse 75</street>
          <city>Darmstadt</city>
          <code>64295</code>
          <country>Germany</country>
        </postal>
        <email>henk.birkholz@ietf.contact</email>
      </address>
    </author>
    <author initials="J." surname="O'Donoghue" fullname="Jeremy O'Donoghue">
      <organization abbrev="Qualcomm Technologies Inc." showOnFrontPage="true">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 showOnFrontPage="true">Cisco Systems</organization>
      <address>
        <postal>
          <street>3550 Cisco Way</street>
          <city>San Jose</city>
          <region>CA</region>
          <code>95134</code>
          <country>United States of America</country>
        </postal>
        <email>ncamwing@cisco.com</email>
      </address>
    </author>
    <author initials="C." surname="Bormann" fullname="Carsten Bormann">
      <organization showOnFrontPage="true">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 month="05" year="2025"/>
    <area>SEC</area>
    <workgroup>rats</workgroup>
    <keyword>Secure Channel</keyword>
    <keyword>RATS</keyword>
    <keyword>Conceptual Message Conveyance</keyword>
    <keyword>Privacy</keyword>
    <keyword>Confidentiality</keyword>
    <keyword>CDDL</keyword>
    <keyword>EAT</keyword>
    <keyword>UJCS</keyword>
    <keyword>CWT</keyword>
    <abstract pn="section-abstract">
      <t indent="0" pn="section-abstract-1">This document defines the Unprotected CWT Claims Set (UCCS), a data format for
representing a CBOR Web Token (CWT) Claims Set without protecting it
by a signature, Message Authentication Code (MAC), or encryption.
UCCS enables the use of CWT claims in environments where protection is
provided by other means, such as secure communication channels or
trusted execution environments.
This specification defines a CBOR tag for UCCS and describes the UCCS
format, its encoding, and its processing considerations. It also discusses
security implications of using unprotected claims sets.</t>
    </abstract>
    <boilerplate>
      <section anchor="status-of-memo" numbered="false" removeInRFC="false" toc="exclude" pn="section-boilerplate.1">
        <name slugifiedName="name-status-of-this-memo">Status of This Memo</name>
        <t indent="0" pn="section-boilerplate.1-1">
            This is an Internet Standards Track document.
        </t>
        <t indent="0" pn="section-boilerplate.1-2">
            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.
        </t>
        <t indent="0" pn="section-boilerplate.1-3">
            Information about the current status of this document, any
            errata, and how to provide feedback on it may be obtained at
            <eref target="https://www.rfc-editor.org/info/rfc9781" brackets="none"/>.
        </t>
      </section>
      <section anchor="copyright" numbered="false" removeInRFC="false" toc="exclude" pn="section-boilerplate.2">
        <name slugifiedName="name-copyright-notice">Copyright Notice</name>
        <t indent="0" pn="section-boilerplate.2-1">
            Copyright (c) 2025 IETF Trust and the persons identified as the
            document authors. All rights reserved.
        </t>
        <t indent="0" pn="section-boilerplate.2-2">
            This document is subject to BCP 78 and the IETF Trust's Legal
            Provisions Relating to IETF Documents
            (<eref target="https://trustee.ietf.org/license-info" brackets="none"/>) 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.
        </t>
      </section>
    </boilerplate>
    <toc>
      <section anchor="toc" numbered="false" removeInRFC="false" toc="exclude" pn="section-toc.1">
        <name slugifiedName="name-table-of-contents">Table of Contents</name>
        <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1">
          <li pn="section-toc.1-1.1">
            <t indent="0" keepWithNext="true" pn="section-toc.1-1.1.1"><xref derivedContent="1" format="counter" sectionFormat="of" target="section-1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-introduction">Introduction</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.1.2">
              <li pn="section-toc.1-1.1.2.1">
                <t indent="0" keepWithNext="true" pn="section-toc.1-1.1.2.1.1"><xref derivedContent="1.1" format="counter" sectionFormat="of" target="section-1.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-terminology">Terminology</xref></t>
              </li>
              <li pn="section-toc.1-1.1.2.2">
                <t indent="0" keepWithNext="true" pn="section-toc.1-1.1.2.2.1"><xref derivedContent="1.2" format="counter" sectionFormat="of" target="section-1.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-structure-of-this-document">Structure of This Document</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.2">
            <t indent="0" pn="section-toc.1-1.2.1"><xref derivedContent="2" format="counter" sectionFormat="of" target="section-2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-deployment-and-usage-of-ucc">Deployment and Usage of UCCS</xref></t>
          </li>
          <li pn="section-toc.1-1.3">
            <t indent="0" pn="section-toc.1-1.3.1"><xref derivedContent="3" format="counter" sectionFormat="of" target="section-3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-characteristics-of-a-secure">Characteristics of a Secure Channel</xref></t>
          </li>
          <li pn="section-toc.1-1.4">
            <t indent="0" pn="section-toc.1-1.4.1"><xref derivedContent="4" format="counter" sectionFormat="of" target="section-4"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-uccs-in-rats-conceptual-mes">UCCS in RATS Conceptual Message Conveyance</xref></t>
          </li>
          <li pn="section-toc.1-1.5">
            <t indent="0" pn="section-toc.1-1.5.1"><xref derivedContent="5" format="counter" sectionFormat="of" target="section-5"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-considerations-for-using-uc">Considerations for Using UCCS in Other RATS Contexts</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.5.2">
              <li pn="section-toc.1-1.5.2.1">
                <t indent="0" pn="section-toc.1-1.5.2.1.1"><xref derivedContent="5.1" format="counter" sectionFormat="of" target="section-5.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-delegated-attestation">Delegated Attestation</xref></t>
              </li>
              <li pn="section-toc.1-1.5.2.2">
                <t indent="0" pn="section-toc.1-1.5.2.2.1"><xref derivedContent="5.2" format="counter" sectionFormat="of" target="section-5.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-privacy-preservation">Privacy Preservation</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.6">
            <t indent="0" pn="section-toc.1-1.6.1"><xref derivedContent="6" format="counter" sectionFormat="of" target="section-6"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-iana-considerations">IANA Considerations</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.6.2">
              <li pn="section-toc.1-1.6.2.1">
                <t indent="0" pn="section-toc.1-1.6.2.1.1"><xref derivedContent="6.1" format="counter" sectionFormat="of" target="section-6.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-cbor-tag-registration">CBOR Tag Registration</xref></t>
              </li>
              <li pn="section-toc.1-1.6.2.2">
                <t indent="0" pn="section-toc.1-1.6.2.2.1"><xref derivedContent="6.2" format="counter" sectionFormat="of" target="section-6.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-media-type-application-uccs">Media-Type application/uccs+cbor Registration</xref></t>
              </li>
              <li pn="section-toc.1-1.6.2.3">
                <t indent="0" pn="section-toc.1-1.6.2.3.1"><xref derivedContent="6.3" format="counter" sectionFormat="of" target="section-6.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-media-type-application-ujcs">Media-Type application/ujcs+json Registration</xref></t>
              </li>
              <li pn="section-toc.1-1.6.2.4">
                <t indent="0" pn="section-toc.1-1.6.2.4.1"><xref derivedContent="6.4" format="counter" sectionFormat="of" target="section-6.4"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-content-format-registration">Content-Format Registration</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.7">
            <t indent="0" pn="section-toc.1-1.7.1"><xref derivedContent="7" format="counter" sectionFormat="of" target="section-7"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-security-considerations">Security Considerations</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.7.2">
              <li pn="section-toc.1-1.7.2.1">
                <t indent="0" pn="section-toc.1-1.7.2.1.1"><xref derivedContent="7.1" format="counter" sectionFormat="of" target="section-7.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-general-considerations">General Considerations</xref></t>
              </li>
              <li pn="section-toc.1-1.7.2.2">
                <t indent="0" pn="section-toc.1-1.7.2.2.1"><xref derivedContent="7.2" format="counter" sectionFormat="of" target="section-7.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-algorithm-specific-security">Algorithm-Specific Security Considerations</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.8">
            <t indent="0" pn="section-toc.1-1.8.1"><xref derivedContent="8" format="counter" sectionFormat="of" target="section-8"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-references">References</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.8.2">
              <li pn="section-toc.1-1.8.2.1">
                <t indent="0" pn="section-toc.1-1.8.2.1.1"><xref derivedContent="8.1" format="counter" sectionFormat="of" target="section-8.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-normative-references">Normative References</xref></t>
              </li>
              <li pn="section-toc.1-1.8.2.2">
                <t indent="0" pn="section-toc.1-1.8.2.2.1"><xref derivedContent="8.2" format="counter" sectionFormat="of" target="section-8.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-informative-references">Informative References</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.9">
            <t indent="0" pn="section-toc.1-1.9.1"><xref derivedContent="Appendix A" format="default" sectionFormat="of" target="section-appendix.a"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-cddl">CDDL</xref></t>
          </li>
          <li pn="section-toc.1-1.10">
            <t indent="0" pn="section-toc.1-1.10.1"><xref derivedContent="Appendix B" format="default" sectionFormat="of" target="section-appendix.b"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-example">Example</xref></t>
          </li>
          <li pn="section-toc.1-1.11">
            <t indent="0" pn="section-toc.1-1.11.1"><xref derivedContent="Appendix C" format="default" sectionFormat="of" target="section-appendix.c"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-eat">EAT</xref></t>
          </li>
          <li pn="section-toc.1-1.12">
            <t indent="0" pn="section-toc.1-1.12.1"><xref derivedContent="" format="none" sectionFormat="of" target="section-appendix.d"/><xref derivedContent="" format="title" sectionFormat="of" target="name-acknowledgements">Acknowledgements</xref></t>
          </li>
          <li pn="section-toc.1-1.13">
            <t indent="0" pn="section-toc.1-1.13.1"><xref derivedContent="" format="none" sectionFormat="of" target="section-appendix.e"/><xref derivedContent="" format="title" sectionFormat="of" target="name-authors-addresses">Authors' Addresses</xref></t>
          </li>
        </ul>
      </section>
    </toc>
  </front>
  <middle>
    <section anchor="introduction" numbered="true" removeInRFC="false" toc="include" pn="section-1">
      <name slugifiedName="name-introduction">Introduction</name>
      <t indent="0" pn="section-1-1">A CBOR Web Token (CWT) as specified by <xref target="RFC8392" format="default" sectionFormat="of" derivedContent="RFC8392"/> is always wrapped in a
CBOR Object Signing and Encryption (COSE) envelope <xref target="STD96" format="default" sectionFormat="of" derivedContent="STD96"/>.
Among other things, COSE provides end-to-end data origin
authentication and integrity protection employed by <xref target="RFC8392" format="default" sectionFormat="of" derivedContent="RFC8392"/> as well as
optional encryption for CWTs.
Under the right circumstances (<xref target="secchan" format="default" sectionFormat="of" derivedContent="Section 3"/>), 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 preexisting 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 indent="0" pn="section-1-2">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" format="default" sectionFormat="of" derivedContent="RFC9334"/>) for the
conveyance of RATS Conceptual Messages.</t>
      <t indent="0" pn="section-1-3">This specification does not change <xref target="RFC8392" format="default" sectionFormat="of" derivedContent="RFC8392"/>: A CWT as defined by <xref target="RFC8392" format="default" sectionFormat="of" derivedContent="RFC8392"/> 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" numbered="true" removeInRFC="false" toc="include" pn="section-1.1">
        <name slugifiedName="name-terminology">Terminology</name>
        <t indent="0" pn="section-1.1-1">The term Claim is used as in <xref target="RFC7519" format="default" sectionFormat="of" derivedContent="RFC7519"/>.</t>
        <t indent="0" pn="section-1.1-2">The terms Claim Key, Claim Value, and CWT Claims Set are used as in
<xref target="RFC8392" format="default" sectionFormat="of" derivedContent="RFC8392"/>.</t>
        <t indent="0" pn="section-1.1-3">The terms Attester, Attesting Environment, Evidence, Relying Party and Verifier are used as in <xref target="RFC9334" format="default" sectionFormat="of" derivedContent="RFC9334"/>.</t>
        <dl spacing="normal" indent="3" newline="false" pn="section-1.1-4">
          <dt pn="section-1.1-4.1">UCCS:</dt>
          <dd pn="section-1.1-4.2">
            <t indent="0" pn="section-1.1-4.2.1">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 pn="section-1.1-4.3">Secure Channel:</dt>
          <dd pn="section-1.1-4.4">
            <t indent="0" pn="section-1.1-4.4.1"><xref target="NIST-SP800-90Ar1" format="default" sectionFormat="of" derivedContent="NIST-SP800-90Ar1"/> defines a Secure Channel
          as follows:</t>
            <t indent="3" pn="section-1.1-4.4.2">"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>
            <t indent="0" pn="section-1.1-4.4.3">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 <xref target="IANA.cwt" format="default" sectionFormat="of" derivedContent="IANA.cwt"/>).)  Examples include
          conveyance via PCIe (Peripheral Component Interconnect Express) IDE
          (Integrity and Data Encryption) or a TLS tunnel.</t>
          </dd>
        </dl>
        <t indent="0" pn="section-1.1-5">All terms referenced or defined in this section are capitalized in the remainder of
this document.</t>
        <t indent="0" pn="section-1.1-6">
    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" format="default" sectionFormat="of" derivedContent="RFC2119"/> <xref target="RFC8174" format="default" sectionFormat="of" derivedContent="RFC8174"/> when, and only when, they appear in all capitals, as
    shown here.
        </t>
      </section>
      <section anchor="structure-of-this-document" numbered="true" removeInRFC="false" toc="include" pn="section-1.2">
        <name slugifiedName="name-structure-of-this-document">Structure of This Document</name>
        <t indent="0" pn="section-1.2-1"><xref target="usage" format="default" sectionFormat="of" derivedContent="Section 2"/> briefly discusses use cases for UCCS.
<xref target="secchan" format="default" sectionFormat="of" derivedContent="Section 3"/> addresses general characteristics of secure channels,
followed by a specific discussion of using them in the context of RATS Conceptual
Message Conveyance in <xref target="uccs-rats" format="default" sectionFormat="of" derivedContent="Section 4"/>, and more
forward-looking considerations for using UCCS in other RATS contexts
are discussed in <xref target="other-rats" format="default" sectionFormat="of" derivedContent="Section 5"/>.
This is followed by the <xref format="title" target="iana" sectionFormat="of" derivedContent="IANA Considerations"/>, <xref format="title" target="seccons" sectionFormat="of" derivedContent="Security Considerations"/>,
<xref format="title" target="sec-normative-references" sectionFormat="of" derivedContent="Normative References"/>, and <xref format="title" target="sec-informative-references" sectionFormat="of" derivedContent="Informative References"/>. 
The normative <xref target="cddl" format="default" sectionFormat="of" derivedContent="Appendix A"/> provides a formal definition of the structure of
UCCS, as no
formal definition of CWT Claims Sets was provided in <xref target="RFC8392" format="default" sectionFormat="of" derivedContent="RFC8392"/>.

This employs the Concise Data Definition Language (CDDL) <xref target="RFC8610" format="default" sectionFormat="of" derivedContent="RFC8610"/>, using its ability to also describe in the same definition
the structurally similar use of JWT Claims Sets <xref target="RFC7519" format="default" sectionFormat="of" derivedContent="RFC7519"/>,
without any protective wrapper (such as JWS) applied, as Unprotected JWT
Claims Sets (UJCS).

<xref target="example" format="default" sectionFormat="of" derivedContent="Appendix B"/> provides an (informative) example for CBOR-Tagged UCCS.
The normative <xref target="eat" format="default" sectionFormat="of" derivedContent="Appendix C"/> provides CDDL rules that add UCCS-format tokens to
Entity Attestation Tokens (EATs) <xref target="RFC9711" format="default" sectionFormat="of" derivedContent="RFC9711"/> using its predefined
extension points.</t>
      </section>
    </section>
    <section anchor="usage" numbered="true" removeInRFC="false" toc="include" pn="section-2">
      <name slugifiedName="name-deployment-and-usage-of-ucc">Deployment and Usage of UCCS</name>
      <t indent="0" pn="section-2-1">Usage scenarios involving the conveyance of Claims (RATS, in particular)
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" format="default" sectionFormat="of" derivedContent="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) <xref target="RFC9397" format="default" sectionFormat="of" derivedContent="RFC9397"/> or
a Trusted Platform Module (TPM) <xref target="TPM2" format="default" sectionFormat="of" derivedContent="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" numbered="true" removeInRFC="false" toc="include" pn="section-3">
      <name slugifiedName="name-characteristics-of-a-secure">Characteristics of a Secure Channel</name>
      <t indent="0" pn="section-3-1">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 are similar in security considerations to JWTs <xref target="BCP225" format="default" sectionFormat="of" derivedContent="BCP225"/>
using the algorithm "none".  Section <xref target="RFC8725" section="3.2" sectionFormat="bare" format="default" derivedLink="https://rfc-editor.org/rfc/rfc8725#section-3.2" derivedContent="RFC8725"/> of RFC 8725 <xref target="BCP225" format="default" sectionFormat="of" derivedContent="BCP225"/> states:</t>
      <blockquote pn="section-3-2">
        <t indent="0" pn="section-3-2.1">[...] 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 indent="0" pn="section-3-3">The security considerations discussed, e.g., in Sections <xref target="RFC8725" section="2.1" sectionFormat="bare" format="default" derivedLink="https://rfc-editor.org/rfc/rfc8725#section-2.1" derivedContent="RFC8725"/>, <xref target="RFC8725" section="3.1" sectionFormat="bare" format="default" derivedLink="https://rfc-editor.org/rfc/rfc8725#section-3.1" derivedContent="RFC8725"/>, and <xref target="RFC8725" section="3.2" sectionFormat="bare" format="default" derivedLink="https://rfc-editor.org/rfc/rfc8725#section-3.2" derivedContent="RFC8725"/> of RFC 8725 <xref target="BCP225" format="default" sectionFormat="of" derivedContent="BCP225"/> apply in an analogous way to the use of UCCS as
elaborated on in this document.
In particular, the need to "Use Appropriate Algorithms" (Section <xref target="RFC8725" section="3.2" sectionFormat="bare" format="default" derivedLink="https://rfc-editor.org/rfc/rfc8725#section-3.2" derivedContent="RFC8725"/> of RFC 8725 <xref target="BCP225" format="default" sectionFormat="of" derivedContent="BCP225"/>) includes choosing appropriate cryptographic
algorithms for setting up and protecting the Secure Channel.
For instance, their cryptographic strength should be at least as
strong as any cryptographic keys the Secure Channel will be used for
to protect in transport.
<xref target="tab-algsec" format="default" sectionFormat="of" derivedContent="Table 5"/> in <xref target="algsec" format="default" sectionFormat="of" derivedContent="Section 7.2"/> provides references to some more security
considerations for specific cryptography choices that are discussed in
the COSE initial algorithms specification <xref target="RFC9053" format="default" sectionFormat="of" derivedContent="RFC9053"/>.</t>
      <t indent="0" pn="section-3-4">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 such a
Secure Channel setup protocol is the TLS <xref target="RFC8446" format="default" sectionFormat="of" derivedContent="RFC8446"/> handshake; the
TLS record protocol can then be used for secure conveyance.</t>
      <t indent="0" pn="section-3-5">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-rats" numbered="true" removeInRFC="false" toc="include" pn="section-4">
      <name slugifiedName="name-uccs-in-rats-conceptual-mes">UCCS in RATS Conceptual Message Conveyance</name>
      <t indent="0" pn="section-4-1">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 601 outside of the RATS context <bcp14>MUST</bcp14> come with additional instruction leaflets and security considerations.</t>
      <t indent="0" pn="section-4-2">For the purposes of this section, any RATS role can be the sender or the receiver of the UCCS.</t>
      <t indent="0" pn="section-4-3">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 indent="0" pn="section-4-4">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" format="default" sectionFormat="of" derivedContent="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 indent="0" pn="section-4-5">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, among others, on the authenticity
and integrity properties of the Secure Channel used for conveying
the UCCS to the Relying Party.</t>
      <t indent="0" pn="section-4-6">Ultimately, it is up to the receiver's policy to determine whether to accept
a 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 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 indent="0" pn="section-4-7">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 a 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" format="default" sectionFormat="of" derivedContent="RFC9397"/> or a TPM <xref target="TPM2" format="default" sectionFormat="of" derivedContent="TPM2"/>.</t>
      <t indent="0" pn="section-4-8">When a UCCS emerges from the Secure Channel and into the receiver, the security
properties of the secure channel no longer protect the UCCS, which is now 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 indent="0" pn="section-4-9">The Secure Channel context does not govern fully formed CWTs in the
same way it governs UCCS.
As with EATs (see <xref target="RFC9711" format="default" sectionFormat="of" derivedContent="RFC9711"/>) nested in other EATs (Section <xref target="RFC9711" section="4.2.18.3" sectionFormat="bare" format="default" derivedLink="https://rfc-editor.org/rfc/rfc9711#section-4.2.18.3" derivedContent="RFC9711">Nested Tokens</xref> of <xref target="RFC9711" format="default" sectionFormat="of" derivedContent="RFC9711"/>), 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 a nested UCCS Claim might be added to EAT, and this statement does not apply to UCCS nested into UCCS; it only applies to
fully formed CWTs.)</t>
    </section>
    <section anchor="other-rats" numbered="true" removeInRFC="false" toc="include" pn="section-5">
      <name slugifiedName="name-considerations-for-using-uc">Considerations for Using UCCS in Other RATS Contexts</name>
      <t indent="0" pn="section-5-1">This section discusses two additional usage scenarios for UCCS in the
context of RATS.</t>
      <section anchor="delegated-attestation" numbered="true" removeInRFC="false" toc="include" pn="section-5.1">
        <name slugifiedName="name-delegated-attestation">Delegated Attestation</name>
        <t indent="0" pn="section-5.1-1">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" format="default" derivedLink="https://rfc-editor.org/rfc/rfc9334#section-3.3" derivedContent="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="RFC9711" format="default" derivedLink="https://rfc-editor.org/rfc/rfc9711#section-5" derivedContent="RFC9711"/>).</t>
      </section>
      <section anchor="privacy-preservation" numbered="true" removeInRFC="false" toc="include" pn="section-5.2">
        <name slugifiedName="name-privacy-preservation">Privacy Preservation</name>
        <t indent="0" pn="section-5.2-1">A Secure Channel that 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 to convey a conceptual message, the receiver
cannot correlate the message with the senders of
other received UCCS messages beyond the information the Secure Channel
authentication provides.</t>
        <t indent="0" pn="section-5.2-2">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="RFC9711" format="default" derivedLink="https://rfc-editor.org/rfc/rfc9711#section-4.2.1" derivedContent="RFC9711"/>) 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" numbered="true" removeInRFC="false" toc="include" pn="section-6">
      <name slugifiedName="name-iana-considerations">IANA Considerations</name>
      <section anchor="cbor-tag-registration" numbered="true" removeInRFC="false" toc="include" pn="section-6.1">
        <name slugifiedName="name-cbor-tag-registration">CBOR Tag Registration</name>
        <t indent="0" pn="section-6.1-1">In the "CBOR Tags" registry <xref target="IANA.cbor-tags" format="default" sectionFormat="of" derivedContent="IANA.cbor-tags"/> as defined in Section <xref target="RFC8949" section="9.2" sectionFormat="bare" format="default" derivedLink="https://rfc-editor.org/rfc/rfc8949#section-9.2" derivedContent="RFC8949"/> of RFC 8949 <xref target="STD94" format="default" sectionFormat="of" derivedContent="STD94"/>, IANA has allocated the tag in <xref target="tab-tag-values" format="default" sectionFormat="of" derivedContent="Table 1"/> from
the Specification Required space (1+2 size), with the present document
as the specification reference.</t>
        <table anchor="tab-tag-values" align="center" pn="table-1">
          <name slugifiedName="name-values-for-tags">Values for Tags</name>
          <thead>
            <tr>
              <th align="right" colspan="1" rowspan="1">Tag</th>
              <th align="left" colspan="1" rowspan="1">Data Item</th>
              <th align="left" colspan="1" rowspan="1">Semantics</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="right" colspan="1" rowspan="1">601</td>
              <td align="left" colspan="1" rowspan="1">map (Claims-Set as per <xref target="cddl" format="default" sectionFormat="of" derivedContent="Appendix A"/> of [RFC9781])</td>
              <td align="left" colspan="1" rowspan="1">Unprotected CWT Claims Set [RFC9781]</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="media-type" numbered="true" removeInRFC="false" toc="include" pn="section-6.2">
        <name slugifiedName="name-media-type-application-uccs">Media-Type application/uccs+cbor Registration</name>
        <t indent="0" pn="section-6.2-1">IANA has added the following to the "Media Types"
registry <xref target="IANA.media-types" format="default" sectionFormat="of" derivedContent="IANA.media-types"/>.</t>
        <table anchor="new-media-type" align="center" pn="table-2">
          <name slugifiedName="name-media-type-registration">Media Type Registration</name>
          <thead>
            <tr>
              <th align="left" colspan="1" rowspan="1">Name</th>
              <th align="left" colspan="1" rowspan="1">Template</th>
              <th align="left" colspan="1" rowspan="1">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left" colspan="1" rowspan="1">uccs+cbor</td>
              <td align="left" colspan="1" rowspan="1">application/uccs+cbor</td>
              <td align="left" colspan="1" rowspan="1">
                <xref target="media-type" format="default" sectionFormat="of" derivedContent="Section 6.2"/> of RFC 9781</td>
            </tr>
          </tbody>
        </table>
        <dl newline="false" spacing="normal" indent="3" pn="section-6.2-3">
          <dt pn="section-6.2-3.1">Type name:</dt>
          <dd pn="section-6.2-3.2">application</dd>
          <dt pn="section-6.2-3.3">Subtype name:</dt>
          <dd pn="section-6.2-3.4">uccs+cbor</dd>
          <dt pn="section-6.2-3.5">Required parameters:</dt>
          <dd pn="section-6.2-3.6">N/A</dd>
          <dt pn="section-6.2-3.7">Optional parameters:</dt>
          <dd pn="section-6.2-3.8">N/A</dd>
          <dt pn="section-6.2-3.9">Encoding considerations:</dt>
          <dd pn="section-6.2-3.10">binary (CBOR data item)</dd>
          <dt pn="section-6.2-3.11">Security considerations:</dt>
          <dd pn="section-6.2-3.12">
            <xref target="seccons" format="default" sectionFormat="of" derivedContent="Section 7"/> of RFC 9781</dd>
          <dt pn="section-6.2-3.13">Interoperability considerations:</dt>
          <dd pn="section-6.2-3.14">none</dd>
          <dt pn="section-6.2-3.15">Published specification:</dt>
          <dd pn="section-6.2-3.16">RFC 9781</dd>
          <dt pn="section-6.2-3.17">Applications that use this media type:</dt>
          <dd pn="section-6.2-3.18">Applications that transfer Unprotected CWT Claims Set(s) (UCCS)
          over Secure Channels</dd>
          <dt pn="section-6.2-3.19">Fragment identifier considerations:</dt>
          <dd pn="section-6.2-3.20">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".)</dd>
          <dt pn="section-6.2-3.21">Additional information:</dt>
          <dd pn="section-6.2-3.22">
            <t indent="0" pn="section-6.2-3.22.1"><br/></t>
            <dl spacing="compact" newline="false" indent="3" pn="section-6.2-3.22.2">
              <dt pn="section-6.2-3.22.2.1">Deprecated alias names for this type:</dt>
              <dd pn="section-6.2-3.22.2.2">N/A</dd>
              <dt pn="section-6.2-3.22.2.3">Magic number(s):</dt>
              <dd pn="section-6.2-3.22.2.4">N/A</dd>
              <dt pn="section-6.2-3.22.2.5">File extension(s):</dt>
              <dd pn="section-6.2-3.22.2.6">.uccs</dd>
              <dt pn="section-6.2-3.22.2.7">Macintosh file type code(s):</dt>
              <dd pn="section-6.2-3.22.2.8">N/A</dd>
            </dl>
          </dd>
          <dt pn="section-6.2-3.23">Person and email address to contact for further information:</dt>
          <dd pn="section-6.2-3.24">RATS WG mailing list (rats@ietf.org)</dd>
          <dt pn="section-6.2-3.25">Intended usage:</dt>
          <dd pn="section-6.2-3.26">COMMON</dd>
          <dt pn="section-6.2-3.27">Restrictions on usage:</dt>
          <dd pn="section-6.2-3.28">none</dd>
          <dt pn="section-6.2-3.29">Author/Change controller:</dt>
          <dd pn="section-6.2-3.30">IETF</dd>
        </dl>
      </section>
      <section anchor="media-type-json" numbered="true" removeInRFC="false" toc="include" pn="section-6.3">
        <name slugifiedName="name-media-type-application-ujcs">Media-Type application/ujcs+json Registration</name>
        <t indent="0" pn="section-6.3-1">IANA has added the following to the "Media Types"
registry <xref target="IANA.media-types" format="default" sectionFormat="of" derivedContent="IANA.media-types"/>.</t>
        <table anchor="new-media-type-json" align="center" pn="table-3">
          <name slugifiedName="name-json-media-type-registratio">JSON Media Type Registration</name>
          <thead>
            <tr>
              <th align="left" colspan="1" rowspan="1">Name</th>
              <th align="left" colspan="1" rowspan="1">Template</th>
              <th align="left" colspan="1" rowspan="1">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left" colspan="1" rowspan="1">ujcs+json</td>
              <td align="left" colspan="1" rowspan="1">application/ujcs+json</td>
              <td align="left" colspan="1" rowspan="1">
                <xref target="media-type-json" format="default" sectionFormat="of" derivedContent="Section 6.3"/> of RFC 9781</td>
            </tr>
          </tbody>
        </table>
        <dl spacing="normal" newline="false" indent="3" pn="section-6.3-3">
          <dt pn="section-6.3-3.1">Type name:</dt>
          <dd pn="section-6.3-3.2">application</dd>
          <dt pn="section-6.3-3.3">Subtype name:</dt>
          <dd pn="section-6.3-3.4">ujcs+json</dd>
          <dt pn="section-6.3-3.5">Required parameters:</dt>
          <dd pn="section-6.3-3.6">N/A</dd>
          <dt pn="section-6.3-3.7">Optional parameters:</dt>
          <dd pn="section-6.3-3.8">N/A</dd>
          <dt pn="section-6.3-3.9">Encoding considerations:</dt>
          <dd pn="section-6.3-3.10">binary (UTF-8)</dd>
          <dt pn="section-6.3-3.11">Security considerations:</dt>
          <dd pn="section-6.3-3.12">
            <xref target="seccons" format="default" sectionFormat="of" derivedContent="Section 7"/> of RFC 9781</dd>
          <dt pn="section-6.3-3.13">Interoperability considerations:</dt>
          <dd pn="section-6.3-3.14">none</dd>
          <dt pn="section-6.3-3.15">Published specification:</dt>
          <dd pn="section-6.3-3.16">RFC 9781</dd>
          <dt pn="section-6.3-3.17">Applications that use this media type:</dt>
          <dd pn="section-6.3-3.18">Applications that transfer Unprotected JWT Claims Set(s) (UJCS)
          over Secure Channels</dd>
          <dt pn="section-6.3-3.19">Fragment identifier considerations:</dt>
          <dd pn="section-6.3-3.20">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".)</dd>
          <dt pn="section-6.3-3.21">Additional information:</dt>
          <dd pn="section-6.3-3.22">
            <t indent="0" pn="section-6.3-3.22.1"><br/></t>
            <dl spacing="compact" newline="false" indent="3" pn="section-6.3-3.22.2">
              <dt pn="section-6.3-3.22.2.1">Deprecated alias names for this type:</dt>
              <dd pn="section-6.3-3.22.2.2">N/A</dd>
              <dt pn="section-6.3-3.22.2.3">Magic number(s):</dt>
              <dd pn="section-6.3-3.22.2.4">N/A</dd>
              <dt pn="section-6.3-3.22.2.5">File extension(s):</dt>
              <dd pn="section-6.3-3.22.2.6">.ujcs</dd>
              <dt pn="section-6.3-3.22.2.7">Macintosh file type code(s):</dt>
              <dd pn="section-6.3-3.22.2.8">N/A</dd>
            </dl>
          </dd>
          <dt pn="section-6.3-3.23">Person and email address to contact for further information:</dt>
          <dd pn="section-6.3-3.24">RATS WG mailing list (rats@ietf.org)</dd>
          <dt pn="section-6.3-3.25">Intended usage:</dt>
          <dd pn="section-6.3-3.26">COMMON</dd>
          <dt pn="section-6.3-3.27">Restrictions on usage:</dt>
          <dd pn="section-6.3-3.28">none</dd>
          <dt pn="section-6.3-3.29">Author/Change controller:</dt>
          <dd pn="section-6.3-3.30">IETF</dd>
        </dl>
      </section>
      <section anchor="ct" numbered="true" removeInRFC="false" toc="include" pn="section-6.4">
        <name slugifiedName="name-content-format-registration">Content-Format Registration</name>
        <t indent="0" pn="section-6.4-1">IANA has registered the following in the "CoAP
Content-Formats" registry within the "Constrained RESTful
Environments (CoRE) Parameters" registry group <xref target="IANA.core-parameters" format="default" sectionFormat="of" derivedContent="IANA.core-parameters"/>.</t>
        <table anchor="content-format-reg" align="center" pn="table-4">
          <name slugifiedName="name-content-format-registration-2">Content-Format Registration</name>
          <thead>
            <tr>
              <th align="left" colspan="1" rowspan="1">Content Type</th>
              <th align="left" colspan="1" rowspan="1">Content Coding</th>
              <th align="left" colspan="1" rowspan="1">ID</th>
              <th align="left" colspan="1" rowspan="1">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left" colspan="1" rowspan="1">application/uccs+cbor</td>
              <td align="left" colspan="1" rowspan="1">-</td>
              <td align="left" colspan="1" rowspan="1">601</td>
              <td align="left" colspan="1" rowspan="1">
                <xref target="ct" format="default" sectionFormat="of" derivedContent="Section 6.4"/> of RFC 9781</td>
            </tr>
          </tbody>
        </table>
      </section>
    </section>
    <section anchor="seccons" numbered="true" removeInRFC="false" toc="include" pn="section-7">
      <name slugifiedName="name-security-considerations">Security Considerations</name>
      <t indent="0" pn="section-7-1">The security considerations of <xref target="STD94" format="default" sectionFormat="of" derivedContent="STD94"/> apply.
The security considerations of <xref target="RFC8392" format="default" sectionFormat="of" derivedContent="RFC8392"/> need to be applied analogously,
replacing 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 ensure that the recipient can authenticate the party that assembled the claims and created the CWT".</t>
      <t indent="0" pn="section-7-2"><xref target="secchan" format="default" sectionFormat="of" derivedContent="Section 3"/> 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" numbered="true" removeInRFC="false" toc="include" pn="section-7.1">
        <name slugifiedName="name-general-considerations">General Considerations</name>
        <t indent="0" pn="section-7.1-1">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="STD96" format="default" sectionFormat="of" derivedContent="STD96"/> for obtaining the
required levels of assurance include:</t>
        <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-7.1-2">
          <li pn="section-7.1-2.1">
            <t indent="0" pn="section-7.1-2.1.1">Implementations need to provide sufficient protection for private or
secret key material used to establish or protect the Secure Channel.</t>
          </li>
          <li pn="section-7.1-2.2">
            <t indent="0" pn="section-7.1-2.2.1">Using a key for more than one algorithm can leak information about the
key and is not recommended.</t>
          </li>
          <li pn="section-7.1-2.3">
            <t indent="0" pn="section-7.1-2.3.1">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 pn="section-7.1-2.4">
            <t indent="0" pn="section-7.1-2.4.1">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 indent="0" pn="section-7.1-3">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" bare="false" empty="false" indent="3" pn="section-7.1-4">
          <li pn="section-7.1-4.1">
            <t indent="0" pn="section-7.1-4.1.1">Ensuring that any permissions associated with key ownership are respected
in the establishment of the Secure Channel.</t>
          </li>
          <li pn="section-7.1-4.2">
            <t indent="0" pn="section-7.1-4.2.1">Using cryptographic algorithms appropriately.</t>
          </li>
          <li pn="section-7.1-4.3">
            <t indent="0" pn="section-7.1-4.3.1">Using key material in accordance with any usage restrictions such as
freshness or algorithm restrictions.</t>
          </li>
          <li pn="section-7.1-4.4">
            <t indent="0" pn="section-7.1-4.4.1">Ensuring that appropriate protections are in place to address potential
traffic analysis attacks.</t>
          </li>
        </ul>
      </section>
      <section anchor="algsec" numbered="true" removeInRFC="false" toc="include" pn="section-7.2">
        <name slugifiedName="name-algorithm-specific-security">Algorithm-Specific Security Considerations</name>
        <t indent="0" pn="section-7.2-1"><xref target="tab-algsec" format="default" sectionFormat="of" derivedContent="Table 5"/> provides references to some security considerations of
specific cryptography choices that are discussed in <xref target="RFC9053" format="default" sectionFormat="of" derivedContent="RFC9053"/>.</t>
        <table anchor="tab-algsec" align="center" pn="table-5">
          <name slugifiedName="name-algorithm-specific-security-">Algorithm-Specific Security Considerations</name>
          <thead>
            <tr>
              <th align="left" colspan="1" rowspan="1">Algorithm</th>
              <th align="left" colspan="1" rowspan="1">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left" colspan="1" rowspan="1">AES-CBC-MAC</td>
              <td align="left" colspan="1" rowspan="1">
                <xref section="3.2.1" sectionFormat="of" target="RFC9053" format="default" derivedLink="https://rfc-editor.org/rfc/rfc9053#section-3.2.1" derivedContent="RFC9053"/></td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">AES-GCM</td>
              <td align="left" colspan="1" rowspan="1">
                <xref section="4.1.1" sectionFormat="of" target="RFC9053" format="default" derivedLink="https://rfc-editor.org/rfc/rfc9053#section-4.1.1" derivedContent="RFC9053"/></td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">AES-CCM</td>
              <td align="left" colspan="1" rowspan="1">
                <xref section="4.2.1" sectionFormat="of" target="RFC9053" format="default" derivedLink="https://rfc-editor.org/rfc/rfc9053#section-4.2.1" derivedContent="RFC9053"/></td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">ChaCha20/Poly1305</td>
              <td align="left" colspan="1" rowspan="1">
                <xref section="4.3.1" sectionFormat="of" target="RFC9053" format="default" derivedLink="https://rfc-editor.org/rfc/rfc9053#section-4.3.1" derivedContent="RFC9053"/></td>
            </tr>
          </tbody>
        </table>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references" pn="section-8">
      <name slugifiedName="name-references">References</name>
      <references anchor="sec-normative-references" pn="section-8.1">
        <name slugifiedName="name-normative-references">Normative References</name>
        <referencegroup anchor="BCP225" target="https://www.rfc-editor.org/info/bcp225" derivedAnchor="BCP225">
          <reference anchor="RFC8725" target="https://www.rfc-editor.org/info/rfc8725" quoteTitle="true">
            <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 indent="0">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>
        </referencegroup>
        <reference anchor="IANA.cbor-tags" target="https://www.iana.org/assignments/cbor-tags" quoteTitle="true" derivedAnchor="IANA.cbor-tags">
          <front>
            <title>Concise Binary Object Representation (CBOR) Tags</title>
            <author>
              <organization showOnFrontPage="true">IANA</organization>
            </author>
          </front>
        </reference>
        <reference anchor="IANA.cwt" target="https://www.iana.org/assignments/cwt" quoteTitle="true" derivedAnchor="IANA.cwt">
          <front>
            <title>CBOR Web Token (CWT) Claims</title>
            <author>
              <organization showOnFrontPage="true">IANA</organization>
            </author>
          </front>
        </reference>
        <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119" quoteTitle="true" derivedAnchor="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 indent="0">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="RFC7519" target="https://www.rfc-editor.org/info/rfc7519" quoteTitle="true" derivedAnchor="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 indent="0">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="RFC8174" target="https://www.rfc-editor.org/info/rfc8174" quoteTitle="true" derivedAnchor="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 indent="0">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>
        <reference anchor="RFC8392" target="https://www.rfc-editor.org/info/rfc8392" quoteTitle="true" derivedAnchor="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 indent="0">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="RFC8610" target="https://www.rfc-editor.org/info/rfc8610" quoteTitle="true" derivedAnchor="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 indent="0">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" target="https://www.rfc-editor.org/info/rfc9165" quoteTitle="true" derivedAnchor="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 indent="0">The Concise Data Definition Language (CDDL), standardized in RFC 8610, provides "control operators" as its main language extension point.</t>
              <t indent="0">The present document defines a number of control operators that were not yet ready at the time RFC 8610 was completed:.plus,.cat, and.det for the construction of constants;.abnf/.abnfb for including ABNF (RFC 5234 and RFC 7405) in CDDL specifications; and.feature 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>
        <referencegroup anchor="STD94" target="https://www.rfc-editor.org/info/std94" derivedAnchor="STD94">
          <reference anchor="RFC8949" target="https://www.rfc-editor.org/info/rfc8949" quoteTitle="true">
            <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 indent="0">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 indent="0">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>
        </referencegroup>
      </references>
      <references anchor="sec-informative-references" pn="section-8.2">
        <name slugifiedName="name-informative-references">Informative References</name>
        <reference anchor="IANA.core-parameters" target="https://www.iana.org/assignments/core-parameters" quoteTitle="true" derivedAnchor="IANA.core-parameters">
          <front>
            <title>Constrained RESTful Environments (CoRE) Parameters</title>
            <author>
              <organization showOnFrontPage="true">IANA</organization>
            </author>
          </front>
        </reference>
        <reference anchor="IANA.media-types" target="https://www.iana.org/assignments/media-types" quoteTitle="true" derivedAnchor="IANA.media-types">
          <front>
            <title>Media Types</title>
            <author>
              <organization showOnFrontPage="true">IANA</organization>
            </author>
          </front>
        </reference>
        <reference anchor="NIST-SP800-90Ar1" quoteTitle="true" target="https://doi.org/10.6028/nist.sp.800-90ar1" derivedAnchor="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 showOnFrontPage="true"/>
            </author>
            <author fullname="John M. Kelsey" initials="J." surname="Kelsey">
              <organization showOnFrontPage="true"/>
            </author>
            <date month="June" year="2015"/>
          </front>
          <seriesInfo name="NIST SP" value="800-90Ar1"/>
          <seriesInfo name="DOI" value="10.6028/nist.sp.800-90ar1"/>
        </reference>
        <reference anchor="RFC4949" target="https://www.rfc-editor.org/info/rfc4949" quoteTitle="true" derivedAnchor="RFC4949">
          <front>
            <title>Internet Security Glossary, Version 2</title>
            <author fullname="R. Shirey" initials="R." surname="Shirey"/>
            <date month="August" year="2007"/>
            <abstract>
              <t indent="0">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" target="https://www.rfc-editor.org/info/rfc8446" quoteTitle="true" derivedAnchor="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 indent="0">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 indent="0">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="RFC8747" target="https://www.rfc-editor.org/info/rfc8747" quoteTitle="true" derivedAnchor="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 indent="0">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="RFC9053" target="https://www.rfc-editor.org/info/rfc9053" quoteTitle="true" derivedAnchor="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 indent="0">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 indent="0">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="RFC9334" target="https://www.rfc-editor.org/info/rfc9334" quoteTitle="true" derivedAnchor="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 indent="0">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" target="https://www.rfc-editor.org/info/rfc9397" quoteTitle="true" derivedAnchor="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 indent="0">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="RFC9711" target="https://www.rfc-editor.org/info/rfc9711" quoteTitle="true" derivedAnchor="RFC9711">
          <front>
            <title>The Entity Attestation Token (EAT)</title>
            <author fullname="L. Lundblade" initials="L." surname="Lundblade"/>
            <author fullname="G. Mandyam" initials="G." surname="Mandyam"/>
            <author fullname="J. O'Donoghue" initials="J." surname="O'Donoghue"/>
            <author fullname="C. Wallace" initials="C." surname="Wallace"/>
            <date month="April" year="2025"/>
            <abstract>
              <t indent="0">An Entity Attestation Token (EAT) provides an attested claims set that describes the state and characteristics of an entity, a device such as a smartphone, an Internet of Things (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.</t>
              <t indent="0">An EAT is either a CBOR Web Token (CWT) or a JSON Web Token (JWT) with attestation-oriented claims.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9711"/>
          <seriesInfo name="DOI" value="10.17487/RFC9711"/>
        </reference>
        <referencegroup anchor="STD96" target="https://www.rfc-editor.org/info/std96" derivedAnchor="STD96">
          <reference anchor="RFC9052" target="https://www.rfc-editor.org/info/rfc9052" quoteTitle="true">
            <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 indent="0">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 indent="0">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="RFC9338" target="https://www.rfc-editor.org/info/rfc9338" quoteTitle="true">
            <front>
              <title>CBOR Object Signing and Encryption (COSE): Countersignatures</title>
              <author fullname="J. Schaad" initials="J." surname="Schaad"/>
              <date month="December" year="2022"/>
              <abstract>
                <t indent="0">Concise Binary Object Representation (CBOR) is a data format designed for small code size and small message size. CBOR Object Signing and Encryption (COSE) defines a set of security services for CBOR. This document defines a countersignature algorithm along with the needed header parameters and CBOR tags for COSE. This document updates RFC 9052.</t>
              </abstract>
            </front>
            <seriesInfo name="STD" value="96"/>
            <seriesInfo name="RFC" value="9338"/>
            <seriesInfo name="DOI" value="10.17487/RFC9338"/>
          </reference>
        </referencegroup>
        <reference anchor="TPM2" target="https://trustedcomputinggroup.org/resource/tpm-library-specification/" quoteTitle="true" derivedAnchor="TPM2">
          <front>
            <title>Trusted Platform Module 2.0 Library</title>
            <author>
              <organization showOnFrontPage="true">Trusted Computing Group</organization>
            </author>
            <date month="March" year="2025"/>
          </front>
          <refcontent>Version 184</refcontent>
        </reference>
      </references>
    </references>
    <section anchor="cddl" numbered="true" removeInRFC="false" toc="include" pn="section-appendix.a">
      <name slugifiedName="name-cddl">CDDL</name>
      <t indent="0" pn="section-appendix.a-1">The Concise Data Definition Language (CDDL), as defined in <xref target="RFC8610" format="default" sectionFormat="of" derivedContent="RFC8610"/> and
<xref target="RFC9165" format="default" sectionFormat="of" derivedContent="RFC9165"/>, provides an easy and unambiguous way to express
structures for protocol messages and data formats that use CBOR or
JSON.</t>
      <t indent="0" pn="section-appendix.a-2"><xref target="RFC8392" format="default" sectionFormat="of" derivedContent="RFC8392"/> does not define CDDL for CWT Claims Sets.</t>
      <t indent="0" pn="section-appendix.a-3">The CDDL model in <xref target="fig-claims-set" format="default" sectionFormat="of" derivedContent="Figure 1"/> shows how to use CDDL
for defining the CWT Claims Set defined in <xref target="RFC8392" format="default" sectionFormat="of" derivedContent="RFC8392"/>.
These CDDL rules
have been built such that they also can describe <xref target="RFC7519" format="default" sectionFormat="of" derivedContent="RFC7519"/> Claims sets by
disabling feature "cbor" and enabling feature "json".</t>
      <figure anchor="fig-claims-set" align="left" suppress-title="false" pn="figure-1">
        <name slugifiedName="name-cddl-definition-for-claims-">CDDL definition for Claims-Set</name>
        <sourcecode type="cddl" markers="false" pn="section-appendix.a-4.1">
UCCS-Untagged = Claims-Set
UCCS-Tagged = #6.601(UCCS-Untagged)

Claims-Set = {
 * $$Claims-Set-Claims
 * Claim-Label .feature "extended-claims-label" =&gt; any
}
Claim-Label = CBOR-ONLY&lt;int&gt; / text
string-or-uri = text

$$Claims-Set-Claims //= ( iss-claim-label =&gt; string-or-uri )
$$Claims-Set-Claims //= ( sub-claim-label =&gt; string-or-uri )
$$Claims-Set-Claims //= ( aud-claim-label =&gt; string-or-uri )
$$Claims-Set-Claims //= ( exp-claim-label =&gt; ~time )
$$Claims-Set-Claims //= ( nbf-claim-label =&gt; ~time )
$$Claims-Set-Claims //= ( iat-claim-label =&gt; ~time )
$$Claims-Set-Claims //= ( cti-claim-label =&gt; bytes )

iss-claim-label = JC&lt;"iss", 1&gt;
sub-claim-label = JC&lt;"sub", 2&gt;
aud-claim-label = JC&lt;"aud", 3&gt;
exp-claim-label = JC&lt;"exp", 4&gt;
nbf-claim-label = JC&lt;"nbf", 5&gt;
iat-claim-label = JC&lt;"iat", 6&gt;
cti-claim-label = CBOR-ONLY&lt;7&gt;  ; jti in JWT: different name and text

JSON-ONLY&lt;J&gt; = J .feature "json"
CBOR-ONLY&lt;C&gt; = C .feature "cbor"
JC&lt;J,C&gt; = JSON-ONLY&lt;J&gt; / CBOR-ONLY&lt;C&gt;
</sourcecode>
      </figure>
      <t indent="0" pn="section-appendix.a-5">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" markers="false" pn="section-appendix.a-6">
; [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>
      <t indent="0" pn="section-appendix.a-7">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 JWT
Claims Set", or a "UJCS".
The CDDL definition of <tt>Claims-Set</tt> in <xref target="fig-claims-set" format="default" sectionFormat="of" derivedContent="Figure 1"/> can be used for a UJCS:</t>
      <sourcecode type="cddl" markers="false" pn="section-appendix.a-8">
UJCS = Claims-Set
</sourcecode>
    </section>
    <section anchor="example" numbered="true" removeInRFC="false" toc="include" pn="section-appendix.b">
      <name slugifiedName="name-example">Example</name>
      <t indent="0" pn="section-appendix.b-1">This appendix is informative.</t>
      <t indent="0" pn="section-appendix.b-2">The example CWT Claims Set from <xref section="A.1" sectionFormat="of" target="RFC8392" format="default" derivedLink="https://rfc-editor.org/rfc/rfc8392#appendix-A.1" derivedContent="RFC8392"/> can be turned into
a UCCS by enclosing it with a tag number 601:</t>
      <sourcecode type="cbor-diag" markers="false" pn="section-appendix.b-3">
 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>
    </section>
    <section anchor="eat" numbered="true" removeInRFC="false" toc="include" pn="section-appendix.c">
      <name slugifiedName="name-eat">EAT</name>
      <t indent="0" pn="section-appendix.c-1">The following CDDL adds UCCS-format and UJCS-format tokens to EAT using its predefined extension points (see Section <xref target="RFC9711" section="4.2.18" sectionFormat="bare" format="default" derivedLink="https://rfc-editor.org/rfc/rfc9711#section-4.2.18" derivedContent="RFC9711">submods</xref> of <xref target="RFC9711" format="default" sectionFormat="of" derivedContent="RFC9711"/>).</t>
      <sourcecode type="cddl" markers="false" pn="section-appendix.c-2">
$EAT-CBOR-Tagged-Token /= UCCS-Tagged
$EAT-CBOR-Untagged-Token /= UCCS-Untagged

$JSON-Selector /= [type: "UJCS", nested-token: UJCS]
</sourcecode>
    </section>
    <section numbered="false" anchor="acknowledgements" removeInRFC="false" toc="include" pn="section-appendix.d">
      <name slugifiedName="name-acknowledgements">Acknowledgements</name>
      <t indent="0" pn="section-appendix.d-1"><contact fullname="Laurence Lundblade"/> suggested some improvements to the CDDL.
<contact fullname="Carl Wallace"/> provided a very useful review.</t>
    </section>
    <section anchor="authors-addresses" numbered="false" removeInRFC="false" toc="include" pn="section-appendix.e">
      <name slugifiedName="name-authors-addresses">Authors' Addresses</name>
      <author initials="H." surname="Birkholz" fullname="Henk Birkholz">
        <organization abbrev="Fraunhofer SIT" showOnFrontPage="true">Fraunhofer SIT</organization>
        <address>
          <postal>
            <street>Rheinstrasse 75</street>
            <city>Darmstadt</city>
            <code>64295</code>
            <country>Germany</country>
          </postal>
          <email>henk.birkholz@ietf.contact</email>
        </address>
      </author>
      <author initials="J." surname="O'Donoghue" fullname="Jeremy O'Donoghue">
        <organization abbrev="Qualcomm Technologies Inc." showOnFrontPage="true">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 showOnFrontPage="true">Cisco Systems</organization>
        <address>
          <postal>
            <street>3550 Cisco Way</street>
            <city>San Jose</city>
            <region>CA</region>
            <code>95134</code>
            <country>United States of America</country>
          </postal>
          <email>ncamwing@cisco.com</email>
        </address>
      </author>
      <author initials="C." surname="Bormann" fullname="Carsten Bormann">
        <organization showOnFrontPage="true">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>
    </section>
  </back>
</rfc>
