<?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.6.35 (Ruby 3.2.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ftbs-rats-msg-wrap-03" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.17.3 -->
  <front>
    <title abbrev="RATS CMW">RATS Conceptual Messages Wrapper</title>
    <seriesInfo name="Internet-Draft" value="draft-ftbs-rats-msg-wrap-03"/>
    <author initials="H." surname="Birkolz" fullname="Henk Birkolz">
      <organization>Fraunhofer SIT</organization>
      <address>
        <email>henk.birkholz@sit.fraunhofer.de</email>
      </address>
    </author>
    <author initials="N." surname="Smith" fullname="Ned Smith">
      <organization>Intel</organization>
      <address>
        <email>ned.smith@intel.com</email>
      </address>
    </author>
    <author initials="T." surname="Fossati" fullname="Thomas Fossati">
      <organization>arm</organization>
      <address>
        <email>thomas.fossati@arm.com</email>
      </address>
    </author>
    <author initials="H." surname="Tschofenig" fullname="Hannes Tschofenig">
      <organization/>
      <address>
        <email>hannes.tschofenig@gmx.net</email>
      </address>
    </author>
    <date year="2023" month="June" day="15"/>
    <area>Security</area>
    <workgroup>Remote ATtestation ProcedureS</workgroup>
    <keyword>evidence</keyword>
    <keyword>attestation result</keyword>
    <keyword>endorsement</keyword>
    <keyword>reference value</keyword>
    <abstract>
      <?line 60?>

<t>This document defines two encapsulation formats for RATS conceptual
messages (i.e., evidence, attestation results, endorsements and
reference values.)</t>
      <t>The first format uses a CBOR or JSON array with two mandatory members,
one for the type, another for the value, and a third optional member
complementing the type field that says which kind of conceptual
message(s) are carried in the value.
The other format wraps the value in a CBOR byte string and prepends a
CBOR tag to convey the type information.</t>
    </abstract>
    <note removeInRFC="true">
      <name>Discussion Venues</name>
      <t>Discussion of this document takes place on the
    Remote ATtestation ProcedureS Working Group mailing list (rats@ietf.org),
    which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/rats/"/>.</t>
      <t>Source for this draft and an issue tracker can be found at
    <eref target="https://github.com/thomas-fossati/draft-ftbs-rats-msg-wrap"/>.</t>
    </note>
  </front>
  <middle>
    <?line 73?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>The RATS architecture defines a handful of conceptual messages
(see <xref section="8" sectionFormat="of" target="RFC9334"/>), such as evidence and attestation results.
Each conceptual message can have multiple claims encoding and serialization
formats (<xref section="9" sectionFormat="of" target="RFC9334"/>).
Throughout their lifetime, RATS conceptual messages are typically transported
over different protocols.
For example, EAT <xref target="I-D.ietf-rats-eat"/> evidence in a "background check" topological
arrangement first flows from Attester to Relying Party, and then from Relying
Party to Verifier, over separate protocol legs.
Attestation Results for Secure Interactions (AR4SI) <xref target="I-D.ietf-rats-ar4si"/> payloads in
"passport" mode would go first from Verifier to Attester and then, at a later
point in time and over a different channel, from Attester to Relying Party.</t>
      <t>It is desirable to reuse any typing information associated with the messages
across such protocol boundaries in order to minimize the cost associated with
type registrations and maximize interoperability.</t>
      <t>This document defines two encapsulation formats for RATS conceptual
messages that aim to achieve the goals stated above.</t>
      <t>These encapsulation formats are designed to be:</t>
      <ul spacing="normal">
        <li>Self-describing - which removes the dependency on the framing provided
by the embedding protocol (or the storage system) to convey exact
typing information.</li>
        <li>Based on media types <xref target="RFC6838"/> - which allows amortising their
registration cost across many different usage scenarios.</li>
      </ul>
      <t>A protocol designer could use these formats, for example, to convey
evidence, endorsements or reference values in certificates and CRLs
extensions (<xref target="DICE-arch"/>), to embed attestation results or evidence as
first class authentication credentials in TLS handshake messages
<xref target="I-D.fossati-tls-attestation"/>, to transport attestation-related payloads in RESTful APIs,
or for stable storage of attestation results in form of file system
objects.</t>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <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?>

<t>In this document, CDDL <xref target="RFC8610"/> <xref target="RFC9165"/> is used to describe the
data formats.</t>
      <t>The reader is assumed to be familiar with the vocabulary and concepts
defined in <xref target="RFC9334"/>.</t>
      <t>This document reuses the terms defined in <xref section="2" sectionFormat="of" target="RFC9193"/>
(e.g., "Content-Type").</t>
    </section>
    <section anchor="conceptual-message-wrapper-encodings">
      <name>Conceptual Message Wrapper Encodings</name>
      <t>Two types of RATS Conceptual Message Wrapper (CMW) are specified in this
document:</t>
      <ol spacing="normal" type="1"><li>A CMW using a CBOR or JSON array (<xref target="type-n-val"/>);</li>
        <li>A CMW based on CBOR tags (<xref target="cbor-tag"/>).</li>
      </ol>
      <section anchor="type-n-val">
        <name>CMW Array</name>
        <t>The CMW array format is defined in <xref target="fig-cddl-array"/>.  (To improve clarity,
the <tt>Content-Type</tt> ABNF is defined separately in <xref target="rfc9193-abnf"/>.)</t>
        <t>The CDDL generic <tt>JC&lt;&gt;</tt> is used where there is a variance between CBOR
and JSON. The first argument is the CDDL for JSON and the second is the
CDDL for CBOR.</t>
        <figure anchor="fig-cddl-array">
          <name>CDDL definition of the Array format</name>
          <artwork type="cddl" align="left"><![CDATA[
cmw-array = [
  type: coap-content-format / media-type
  value: JC<base64-string, bytes>
  ? ind: uint .bits cm-type
]

coap-content-format = uint .size 2
media-type = text .abnf ("Content-Type" .cat Content-Type-ABNF)

base64-string = text .regexp "[A-Za-z0-9_-]+"

cm-type = &(
  reference-values: 0
  endorsements: 1
  evidence: 2
  attestation-results: 3
)
]]></artwork>
        </figure>
        <t>It is composed of three members:</t>
        <dl newline="true">
          <dt><tt>type</tt>:</dt>
          <dd>
            <t>Either a text string representing a Content-Type (e.g., an EAT media type
<xref target="I-D.ietf-rats-eat-media-type"/>) or an unsigned integer corresponding to a CoAP Content-Format
number (<xref section="12.3" sectionFormat="of" target="RFC7252"/>).</t>
          </dd>
          <dt><tt>value</tt>:</dt>
          <dd>
            <t>The RATS conceptual message serialized according to the
value defined in the type member.</t>
          </dd>
          <dt><tt>ind</tt>:</dt>
          <dd>
            <t>An optional bitmap that indicates which conceptual message types are
carried in the <tt>value</tt> field.  Any combination (i.e., any value between
1 and 15, included) is allowed.  This is useful only if the <tt>type</tt> is
potentially ambiguous and there is no further context available to the
CMW consumer to decide.  For example, this might be the case if the base
media type is not profiled (e.g., <tt>application/eat+cwt</tt>), if the <tt>value</tt>
field contains multiple conceptual messages with different types (e.g.,
both reference values and endorsements within the same <tt>application/signed-corim+cbor</tt>), or if the same profile identifier is
shared by different conceptual messages.
<cref anchor="issue">Open issue:</cref> https://github.com/thomas-fossati/draft-ftbs-rats-msg-wrap/issues/26</t>
          </dd>
        </dl>
        <t>A CMW array can be encoded as CBOR <xref target="STD94"/> or JSON <xref target="RFC8259"/>.</t>
        <t>When using JSON, the value field is encoded as Base64 using the URL and
filename safe alphabet (Section 5 of <xref target="RFC4648"/>) without padding.</t>
        <t>When using CBOR, the value field is encoded as a CBOR byte string.</t>
      </section>
      <section anchor="cbor-tag">
        <name>CMW CBOR Tags</name>
        <t>CBOR Tags used as CMW may be derived from CoAP Content-Format numbers.
If a CoAP content format exists for a RATS conceptual message, the
<tt>TN()</tt> transform defined in <xref section="B" sectionFormat="of" target="RFC9277"/> can be used to
derive a corresponding CBOR tag in range [1668546817, 1668612095].</t>
        <t>The RATS conceptual message is first serialized according to the
Content-Format number associated with the CBOR tag and then encoded as a
CBOR byte string, to which the tag is prepended.</t>
        <t>The CMW CBOR Tag is defined in <xref target="fig-cddl-cbor-tag"/>.</t>
        <figure anchor="fig-cddl-cbor-tag">
          <name>CDDL definition of the CBOR Tag format</name>
          <artwork type="cddl" align="left"><![CDATA[
cmw-cbor-tag<bytes> = #6.<cbor-tag-numbers>(bytes)

cbor-tag-numbers = 0..18446744073709551615
]]></artwork>
        </figure>
        <section anchor="use-of-pre-existing-cbor-tags">
          <name>Use of Pre-existing CBOR Tags</name>
          <t>If a CBOR tag has been registered in association with a certain RATS
conceptual message independently of a CoAP content format (i.e., it is
not obtained by applying the <tt>TN()</tt> transform), it can be readily used
as an encapsulation without the extra processing described in
<xref target="cbor-tag"/>.</t>
          <t>A consumer can always distinguish tags that have been derived via
<tt>TN()</tt>, which all fall in the [1668546817, 1668612095] range, from
tags that are not, and therefore apply the right decapsulation on
receive.</t>
        </section>
      </section>
      <section anchor="decapsulation-algorithm">
        <name>Decapsulation Algorithm</name>
        <t>After removing any external framing (for example, the ASN.1 OCTET STRING
if the CMW is carried in a certificate extension <xref target="DICE-arch"/>), the CMW
decoder does a 1-byte lookahead, as illustrated in the following pseudo
code, to decide how to decode the remainder of the byte buffer:</t>
        <artwork><![CDATA[
func CMWTypeSniff(b []byte) (CMW, error) {
  if len(b) == 0 {
    return Unknown
  }

  if b[0] == 0x82 || b[0] == 0x83 {
    return CBORArray
  } else if b[0] >= 0xc0 && b[0] <= 0xdb {
    return CBORTag
  } else if b[0] == 0x5b {
    return JSONArray
  }

  return Unknown
}
]]></artwork>
      </section>
    </section>
    <section anchor="examples">
      <name>Examples</name>
      <t>The (equivalent) examples in <xref target="ex-ja"/>, <xref target="ex-ca"/>, and <xref target="ex-ct"/> assume that
the Media-Type-Name <tt>application/vnd.example.rats-conceptual-msg</tt> has been
registered alongside a corresponding CoAP Content-Format number <tt>30001</tt>.  The
CBOR tag <tt>1668576818</tt> is derived applying the <tt>TN()</tt> transform as described in
<xref target="cbor-tag"/>.</t>
      <t>The example in <xref target="ex-ca-ind"/> is a signed CoRIM payload with an explicit CM
indicator <tt>0b0000_0011</tt> (3), meaning that the wrapped message contains both
Reference Values and Endorsements.</t>
      <section anchor="ex-ja">
        <name>JSON Array</name>
        <sourcecode type="cbor-diag"><![CDATA[
[
  "application/vnd.example.rats-conceptual-msg",
  "q82rzQ"
]
]]></sourcecode>
        <t>Note that a CoAP Content-Format number can also be used with the JSON array
form.  That may be the case when it is known that the receiver can handle CoAP
Content-Formats and it is crucial to save bytes.</t>
      </section>
      <section anchor="ex-ca">
        <name>CBOR Array</name>
        <sourcecode type="cbor-diag"><![CDATA[
[
  30001,
  h'abcdabcd'
]
]]></sourcecode>
        <t>with the following wire representation:</t>
        <artwork><![CDATA[
82             # array(2)
   19 7531     # unsigned(30001)
   44          # bytes(4)
      abcdabcd # "\xABͫ\xCD"
]]></artwork>
        <t>Note that a Media-Type-Name can also be used with the CBOR array form,
for example if it is known that the receiver cannot handle CoAP
Content-Formats, or (unlike the case in point) if a CoAP Content-Format
number has not been registrered.</t>
        <sourcecode type="cbor-diag"><![CDATA[
[
  "application/vnd.example.rats-conceptual-msg",
  h'abcdabcd'
]
]]></sourcecode>
      </section>
      <section anchor="ex-ct">
        <name>CBOR Tag</name>
        <sourcecode type="cbor-diag"><![CDATA[
1668576818(h'abcdabcd')
]]></sourcecode>
        <t>with the following wire representation:</t>
        <artwork><![CDATA[
da 63747632    # tag(1668576818)
   44          # bytes(4)
      abcdabcd # "\xABͫ\xCD"
]]></artwork>
      </section>
      <section anchor="ex-ca-ind">
        <name>CBOR Array with explicit CM indicator</name>
        <sourcecode type="cbor-diag"><![CDATA[
[
  "application/signed-corim+cbor",
  h'd28443a10126a1',
  3
]
]]></sourcecode>
        <t>with the following wire representation:</t>
        <artwork><![CDATA[
83                                    # array(3)
   78 1d                              # text(29)
      6170706c69636174696f6e2f7369676e65642d636f72696d2b63626f72
                                      # "application/signed-corim+cbor"
   47                                 # bytes(7)
      d28443a10126a1                  # "҄C\xA1\u0001&\xA1"
   03                                 # unsigned(3)
]]></artwork>
      </section>
    </section>
    <section anchor="registering-a-media-type-for-evidence">
      <name>Registering a Media Type for Evidence</name>
      <t><cref anchor="note">Note:</cref> Not sure whether this advice should go.</t>
      <t>When registering a new media type for evidence, in addition to its
syntactical description, the author <bcp14>SHOULD</bcp14> provide a public and stable
description of the signing and appraisal procedures associated with
the data format.</t>
    </section>
    <section anchor="implementation-status">
      <name>Implementation Status</name>
      <t>This section records the status of known implementations of the protocol
defined by this specification at the time of posting of this Internet-Draft,
and is based on a proposal described in <xref target="RFC7942"/>.
The description of implementations in this section is intended to assist the
IETF in its decision processes in progressing drafts to RFCs.
Please note that the listing of any individual implementation here does not
imply endorsement by the IETF.
Furthermore, no effort has been spent to verify the information presented here
that was supplied by IETF contributors.
This is not intended as, and must not be construed to be, a catalog of
available implementations or their features.
Readers are advised to note that other implementations may exist.</t>
      <t>According to <xref target="RFC7942"/>, "this will allow reviewers and working groups to
assign due consideration to documents that have the benefit of running code,
which may serve as evidence of valuable experimentation and feedback that have
made the implemented protocols more mature.
It is up to the individual working groups to use this information as they see
fit".</t>
      <section anchor="project-veraison">
        <name>Project Veraison</name>
        <t>The organization responsible for this implementation is Project Veraison, a
Linux Foundation project hosted at the Confidential Computing Consortium.</t>
        <t>The software, hosted at <eref target="https://github.com/veraison/cmw"/>, provides a Golang
package that allows encoding and decoding of CMW payloads.
The implementation covers all the features presented in this draft.
The maturity level is alpha.
The license is Apache 2.0.
The developers can be contacted on the Zulip channel:
<eref target="https://veraison.zulipchat.com/#narrow/stream/383526-CMW/"/>.</t>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>This document defines two encapsulation formats for RATS conceptual
messages. The messages themselves and their encoding ensure security
protection. For this reason there are no further security requirements
raised by the introduction of this encapsulation.</t>
      <t>Changing the encapsulation of a payload by an adversary will result in
incorrect processing of the encapsulated messages and this will
subsequently lead to a processing error.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document does not make any requests to IANA.</t>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <reference anchor="RFC4648">
          <front>
            <title>The Base16, Base32, and Base64 Data Encodings</title>
            <author fullname="S. Josefsson" initials="S." surname="Josefsson"/>
            <date month="October" year="2006"/>
            <abstract>
              <t>This document describes the commonly used base 64, base 32, and base 16 encoding schemes.  It also discusses the use of line-feeds in encoded data, use of padding in encoded data, use of non-alphabet characters in encoded data, use of different encoding alphabets, and canonical encodings. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4648"/>
          <seriesInfo name="DOI" value="10.17487/RFC4648"/>
        </reference>
        <reference anchor="RFC6838">
          <front>
            <title>Media Type Specifications and Registration Procedures</title>
            <author fullname="N. Freed" initials="N." surname="Freed"/>
            <author fullname="J. Klensin" initials="J." surname="Klensin"/>
            <author fullname="T. Hansen" initials="T." surname="Hansen"/>
            <date month="January" year="2013"/>
            <abstract>
              <t>This document defines procedures for the specification and registration of media types for use in HTTP, MIME, and other Internet protocols.  This memo documents an Internet Best Current Practice.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="13"/>
          <seriesInfo name="RFC" value="6838"/>
          <seriesInfo name="DOI" value="10.17487/RFC6838"/>
        </reference>
        <reference anchor="RFC7252">
          <front>
            <title>The Constrained Application Protocol (CoAP)</title>
            <author fullname="Z. Shelby" initials="Z." surname="Shelby"/>
            <author fullname="K. Hartke" initials="K." surname="Hartke"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="June" year="2014"/>
            <abstract>
              <t>The Constrained Application Protocol (CoAP) is a specialized web transfer protocol for use with constrained nodes and constrained (e.g., low-power, lossy) networks. The nodes often have 8-bit microcontrollers with small amounts of ROM and RAM, while constrained networks such as IPv6 over Low-Power Wireless Personal Area Networks (6LoWPANs) often have high packet error rates and a typical throughput of 10s of kbit/s. The protocol is designed for machine- to-machine (M2M) applications such as smart energy and building automation.</t>
              <t>CoAP provides a request/response interaction model between application endpoints, supports built-in discovery of services and resources, and includes key concepts of the Web such as URIs and Internet media types. CoAP is designed to easily interface with HTTP for integration with the Web while meeting specialized requirements such as multicast support, very low overhead, and simplicity for constrained environments.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7252"/>
          <seriesInfo name="DOI" value="10.17487/RFC7252"/>
        </reference>
        <reference anchor="RFC8259">
          <front>
            <title>The JavaScript Object Notation (JSON) Data Interchange Format</title>
            <author fullname="T. Bray" initials="T." role="editor" surname="Bray"/>
            <date month="December" year="2017"/>
            <abstract>
              <t>JavaScript Object Notation (JSON) is a lightweight, text-based, language-independent data interchange format. It was derived from the ECMAScript Programming Language Standard. JSON defines a small set of formatting rules for the portable representation of structured data.</t>
              <t>This document removes inconsistencies with other specifications of JSON, repairs specification errors, and offers experience-based interoperability guidance.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="90"/>
          <seriesInfo name="RFC" value="8259"/>
          <seriesInfo name="DOI" value="10.17487/RFC8259"/>
        </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="RFC9277">
          <front>
            <title>On Stable Storage for Items in Concise Binary Object Representation (CBOR)</title>
            <author fullname="M. Richardson" initials="M." surname="Richardson"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>This document defines a stored ("file") format for Concise Binary Object Representation (CBOR) data items that is friendly to common systems that recognize file types, such as the Unix file(1) command.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9277"/>
          <seriesInfo name="DOI" value="10.17487/RFC9277"/>
        </reference>
        <reference anchor="STD94">
          <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="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>
        <name>Informative References</name>
        <reference anchor="RFC7942">
          <front>
            <title>Improving Awareness of Running Code: The Implementation Status Section</title>
            <author fullname="Y. Sheffer" initials="Y." surname="Sheffer"/>
            <author fullname="A. Farrel" initials="A." surname="Farrel"/>
            <date month="July" year="2016"/>
            <abstract>
              <t>This document describes a simple process that allows authors of Internet-Drafts to record the status of known implementations by including an Implementation Status section. This will allow reviewers and working groups to assign due consideration to documents that have the benefit of running code, which may serve as evidence of valuable experimentation and feedback that have made the implemented protocols more mature.</t>
              <t>This process is not mandatory. Authors of Internet-Drafts are encouraged to consider using the process for their documents, and working groups are invited to think about applying the process to all of their protocol specifications. This document obsoletes RFC 6982, advancing it to a Best Current Practice.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="205"/>
          <seriesInfo name="RFC" value="7942"/>
          <seriesInfo name="DOI" value="10.17487/RFC7942"/>
        </reference>
        <reference anchor="RFC9193">
          <front>
            <title>Sensor Measurement Lists (SenML) Fields for Indicating Data Value Content-Format</title>
            <author fullname="A. Keränen" initials="A." surname="Keränen"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="June" year="2022"/>
            <abstract>
              <t>The Sensor Measurement Lists (SenML) media types support multiple types of values, from numbers to text strings and arbitrary binary Data Values.  In order to facilitate processing of binary Data Values, this document specifies a pair of new SenML fields for indicating the content format of those binary Data Values, i.e., their Internet media type, including parameters as well as any content codings applied.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9193"/>
          <seriesInfo name="DOI" value="10.17487/RFC9193"/>
        </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="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">
              <organization>Qualcomm Technologies Inc.</organization>
            </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="13" month="June" year="2023"/>
            <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 how much
   it wishes to trust 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-20"/>
        </reference>
        <reference anchor="I-D.ietf-rats-eat-media-type">
          <front>
            <title>EAT Media Types</title>
            <author fullname="Laurence Lundblade" initials="L." surname="Lundblade">
              <organization>Security Theory LLC</organization>
            </author>
            <author fullname="Henk Birkholz" initials="H." surname="Birkholz">
              <organization>Fraunhofer Institute for Secure Information Technology</organization>
            </author>
            <author fullname="Thomas Fossati" initials="T." surname="Fossati">
              <organization>arm</organization>
            </author>
            <date day="10" month="March" year="2023"/>
            <abstract>
              <t>   Payloads used in Remote Attestation Procedures may require an
   associated media type for their conveyance, for example when used in
   RESTful APIs.

   This memo defines media types to be used for Entity Attestation
   Tokens (EAT).

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-rats-eat-media-type-02"/>
        </reference>
        <reference anchor="I-D.ietf-rats-ar4si">
          <front>
            <title>Attestation Results for Secure Interactions</title>
            <author fullname="Eric Voit" initials="E." surname="Voit">
              <organization>Cisco Systems</organization>
            </author>
            <author fullname="Henk Birkholz" initials="H." surname="Birkholz">
              <organization>Fraunhofer SIT</organization>
            </author>
            <author fullname="Thomas Hardjono" initials="T." surname="Hardjono">
              <organization>MIT</organization>
            </author>
            <author fullname="Thomas Fossati" initials="T." surname="Fossati">
              <organization>Arm Limited</organization>
            </author>
            <author fullname="Vincent Scarlata" initials="V." surname="Scarlata">
              <organization>Intel</organization>
            </author>
            <date day="2" month="March" year="2023"/>
            <abstract>
              <t>   This document defines reusable Attestation Result information
   elements.  When these elements are offered to Relying Parties as
   Evidence, different aspects of Attester trustworthiness can be
   evaluated.  Additionally, where the Relying Party is interfacing with
   a heterogeneous mix of Attesting Environment and Verifier types,
   consistent policies can be applied to subsequent information exchange
   between each Attester and the Relying Party.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-rats-ar4si-04"/>
        </reference>
        <reference anchor="I-D.fossati-tls-attestation">
          <front>
            <title>Using Attestation in Transport Layer Security (TLS) and Datagram Transport Layer Security (DTLS)</title>
            <author fullname="Hannes Tschofenig" initials="H." surname="Tschofenig">
         </author>
            <author fullname="Yaron Sheffer" initials="Y." surname="Sheffer">
              <organization>Intuit</organization>
            </author>
            <author fullname="Paul Howard" initials="P." surname="Howard">
              <organization>Arm Limited</organization>
            </author>
            <author fullname="Ionuț Mihalcea" initials="I." surname="Mihalcea">
              <organization>Arm Limited</organization>
            </author>
            <author fullname="Yogesh Deshpande" initials="Y." surname="Deshpande">
              <organization>Arm Limited</organization>
            </author>
            <date day="13" month="March" year="2023"/>
            <abstract>
              <t>   Attestation is the process by which an entity produces evidence about
   itself that another party can use to evaluate the trustworthiness of
   that entity.

   In use cases that require the use of remote attestation, such as
   confidential computing or device onboarding, an attester has to
   convey evidence or attestation results to a relying party.  This
   information exchange may happen at different layers in the protocol
   stack.

   This specification provides a generic way of passing evidence and
   attestation results in the TLS handshake.  Functionality-wise this is
   accomplished with the help of key attestation.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-fossati-tls-attestation-03"/>
        </reference>
        <reference anchor="DICE-arch" target="https://trustedcomputinggroup.org/wp-content/uploads/DICE-Attestation-Architecture-r23-final.pdf">
          <front>
            <title>DICE Attestation Architecture</title>
            <author>
              <organization>Trusted Computing Group</organization>
            </author>
            <date year="2021" month="March"/>
          </front>
        </reference>
      </references>
    </references>
    <?line 425?>

<section anchor="rfc9193-abnf">
      <name>RFC9193 Content-Type ABNF</name>
      <sourcecode type="cddl"><![CDATA[
; from RFC9193
Content-Type-ABNF = '

Content-Type   = Media-Type-Name *( *SP ";" *SP parameter )
parameter      = token "=" ( token / quoted-string )

token          = 1*tchar
tchar          = "!" / "#" / "$" / "%" / "&" / "\'" / "*"
               / "+" / "-" / "." / "^" / "_" / "`" / "|" / "~"
               / DIGIT / ALPHA
quoted-string  = %x22 *( qdtext / quoted-pair ) %x22
qdtext         = SP / %x21 / %x23-5B / %x5D-7E
quoted-pair    = "\" ( SP / VCHAR )

Media-Type-Name = type-name "/" subtype-name

type-name = restricted-name
subtype-name = restricted-name

restricted-name = restricted-name-first *126restricted-name-chars
restricted-name-first  = ALPHA / DIGIT
restricted-name-chars  = ALPHA / DIGIT / "!" / "#" /
                         "$" / "&" / "-" / "^" / "_"
restricted-name-chars =/ "." ; Characters before first dot always
                             ; specify a facet name
restricted-name-chars =/ "+" ; Characters after last plus always
                             ; specify a structured syntax suffix

DIGIT     =  %x30-39           ; 0 - 9
POS-DIGIT =  %x31-39           ; 1 - 9
ALPHA     =  %x41-5A / %x61-7A ; A - Z / a - z
SP        =  %x20
VCHAR     =  %x21-7E           ; printable ASCII (no SP)
'
]]></sourcecode>
    </section>
    <section anchor="registering-and-using-cmws">
      <name>Registering and Using CMWs</name>
      <t><xref target="fig-howto-cmw"/> describes the registration preconditions for using
CMWs in either array or CBOR tag forms.</t>
      <figure anchor="fig-howto-cmw">
        <name>How To CMW</name>
        <artset>
          <artwork type="svg" align="left"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="496" width="400" viewBox="0 0 400 496" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px">
              <path d="M 40,48 L 40,80" fill="none" stroke="black"/>
              <path d="M 56,176 L 56,424" fill="none" stroke="black"/>
              <path d="M 80,96 L 80,152" fill="none" stroke="black"/>
              <path d="M 80,168 L 80,424" fill="none" stroke="black"/>
              <path d="M 96,144 L 96,176" fill="none" stroke="black"/>
              <path d="M 104,256 L 104,288" fill="none" stroke="black"/>
              <path d="M 120,96 L 120,144" fill="none" stroke="black"/>
              <path d="M 168,192 L 168,232" fill="none" stroke="black"/>
              <path d="M 168,304 L 168,376" fill="none" stroke="black"/>
              <path d="M 184,48 L 184,80" fill="none" stroke="black"/>
              <path d="M 200,48 L 200,80" fill="none" stroke="black"/>
              <path d="M 224,96 L 224,144" fill="none" stroke="black"/>
              <path d="M 240,256 L 240,288" fill="none" stroke="black"/>
              <path d="M 248,144 L 248,176" fill="none" stroke="black"/>
              <path d="M 264,96 L 264,152" fill="none" stroke="black"/>
              <path d="M 264,168 L 264,328" fill="none" stroke="black"/>
              <path d="M 264,344 L 264,424" fill="none" stroke="black"/>
              <path d="M 288,176 L 288,328" fill="none" stroke="black"/>
              <path d="M 288,344 L 288,424" fill="none" stroke="black"/>
              <path d="M 296,48 L 296,80" fill="none" stroke="black"/>
              <path d="M 304,256 L 304,288" fill="none" stroke="black"/>
              <path d="M 344,304 L 344,320" fill="none" stroke="black"/>
              <path d="M 392,256 L 392,288" fill="none" stroke="black"/>
              <path d="M 56,32 L 168,32" fill="none" stroke="black"/>
              <path d="M 216,32 L 280,32" fill="none" stroke="black"/>
              <path d="M 56,96 L 168,96" fill="none" stroke="black"/>
              <path d="M 216,96 L 280,96" fill="none" stroke="black"/>
              <path d="M 112,128 L 232,128" fill="none" stroke="black"/>
              <path d="M 72,160 L 104,160" fill="none" stroke="black"/>
              <path d="M 240,160 L 272,160" fill="none" stroke="black"/>
              <path d="M 112,192 L 232,192" fill="none" stroke="black"/>
              <path d="M 120,240 L 224,240" fill="none" stroke="black"/>
              <path d="M 320,240 L 376,240" fill="none" stroke="black"/>
              <path d="M 120,304 L 224,304" fill="none" stroke="black"/>
              <path d="M 320,304 L 376,304" fill="none" stroke="black"/>
              <path d="M 184,336 L 328,336" fill="none" stroke="black"/>
              <path d="M 112,384 L 248,384" fill="none" stroke="black"/>
              <path d="M 96,416 L 232,416" fill="none" stroke="black"/>
              <path d="M 24,432 L 336,432" fill="none" stroke="black"/>
              <path d="M 8,464 L 320,464" fill="none" stroke="black"/>
              <path d="M 8,464 L 24,432" fill="none" stroke="black"/>
              <path d="M 96,416 L 112,384" fill="none" stroke="black"/>
              <path d="M 232,416 L 248,384" fill="none" stroke="black"/>
              <path d="M 320,464 L 336,432" fill="none" stroke="black"/>
              <path d="M 56,32 C 47.16936,32 40,39.16936 40,48" fill="none" stroke="black"/>
              <path d="M 168,32 C 176.83064,32 184,39.16936 184,48" fill="none" stroke="black"/>
              <path d="M 216,32 C 207.16936,32 200,39.16936 200,48" fill="none" stroke="black"/>
              <path d="M 280,32 C 288.83064,32 296,39.16936 296,48" fill="none" stroke="black"/>
              <path d="M 56,96 C 47.16936,96 40,88.83064 40,80" fill="none" stroke="black"/>
              <path d="M 168,96 C 176.83064,96 184,88.83064 184,80" fill="none" stroke="black"/>
              <path d="M 216,96 C 207.16936,96 200,88.83064 200,80" fill="none" stroke="black"/>
              <path d="M 280,96 C 288.83064,96 296,88.83064 296,80" fill="none" stroke="black"/>
              <path d="M 112,128 C 103.16936,128 96,135.16936 96,144" fill="none" stroke="black"/>
              <path d="M 232,128 C 240.83064,128 248,135.16936 248,144" fill="none" stroke="black"/>
              <path d="M 72,160 C 63.16936,160 56,167.16936 56,176" fill="none" stroke="black"/>
              <path d="M 104,160 C 112.83064,160 120,152.83064 120,144" fill="none" stroke="black"/>
              <path d="M 240,160 C 231.16936,160 224,152.83064 224,144" fill="none" stroke="black"/>
              <path d="M 272,160 C 280.83064,160 288,167.16936 288,176" fill="none" stroke="black"/>
              <path d="M 112,192 C 103.16936,192 96,184.83064 96,176" fill="none" stroke="black"/>
              <path d="M 232,192 C 240.83064,192 248,184.83064 248,176" fill="none" stroke="black"/>
              <path d="M 120,240 C 111.16936,240 104,247.16936 104,256" fill="none" stroke="black"/>
              <path d="M 224,240 C 232.83064,240 240,247.16936 240,256" fill="none" stroke="black"/>
              <path d="M 320,240 C 311.16936,240 304,247.16936 304,256" fill="none" stroke="black"/>
              <path d="M 376,240 C 384.83064,240 392,247.16936 392,256" fill="none" stroke="black"/>
              <path d="M 120,304 C 111.16936,304 104,296.83064 104,288" fill="none" stroke="black"/>
              <path d="M 224,304 C 232.83064,304 240,296.83064 240,288" fill="none" stroke="black"/>
              <path d="M 320,304 C 311.16936,304 304,296.83064 304,288" fill="none" stroke="black"/>
              <path d="M 376,304 C 384.83064,304 392,296.83064 392,288" fill="none" stroke="black"/>
              <path d="M 184,336 C 175.16936,336 168,343.16936 168,352" fill="none" stroke="black"/>
              <path d="M 328,336 C 336.83064,336 344,328.83064 344,320" fill="none" stroke="black"/>
              <polygon class="arrowhead" points="296,424 284,418.4 284,429.6" fill="black" transform="rotate(90,288,424)"/>
              <path class="jump" d="M 288,344 C 282,344 282,328 288,328" fill="none" stroke="black"/>
              <polygon class="arrowhead" points="272,424 260,418.4 260,429.6" fill="black" transform="rotate(90,264,424)"/>
              <path class="jump" d="M 264,344 C 258,344 258,328 264,328" fill="none" stroke="black"/>
              <path class="jump" d="M 264,168 C 258,168 258,152 264,152" fill="none" stroke="black"/>
              <polygon class="arrowhead" points="176,376 164,370.4 164,381.6" fill="black" transform="rotate(90,168,376)"/>
              <polygon class="arrowhead" points="176,232 164,226.4 164,237.6" fill="black" transform="rotate(90,168,232)"/>
              <polygon class="arrowhead" points="88,424 76,418.4 76,429.6" fill="black" transform="rotate(90,80,424)"/>
              <path class="jump" d="M 80,168 C 74,168 74,152 80,152" fill="none" stroke="black"/>
              <polygon class="arrowhead" points="64,424 52,418.4 52,429.6" fill="black" transform="rotate(90,56,424)"/>
              <g class="text">
                <text x="72" y="52">Reuse</text>
                <text x="136" y="52">EAT/CoRIM</text>
                <text x="244" y="52">Register</text>
                <text x="72" y="68">media</text>
                <text x="128" y="68">type(s)</text>
                <text x="224" y="68">new</text>
                <text x="264" y="68">media</text>
                <text x="56" y="84">+</text>
                <text x="96" y="84">profile</text>
                <text x="228" y="84">type</text>
                <text x="172" y="148">Register</text>
                <text x="152" y="164">new</text>
                <text x="188" y="164">CoAP</text>
                <text x="172" y="180">Content-Format</text>
                <text x="168" y="260">Automatically</text>
                <text x="348" y="260">Existing</text>
                <text x="140" y="276">derive</text>
                <text x="188" y="276">CBOR</text>
                <text x="332" y="276">CBOR</text>
                <text x="128" y="292">tag</text>
                <text x="184" y="292">[RFC9277]</text>
                <text x="328" y="292">tag</text>
                <text x="140" y="404">CBOR</text>
                <text x="176" y="404">tag</text>
                <text x="208" y="404">CMW</text>
                <text x="144" y="452">Array</text>
                <text x="184" y="452">CMW</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art" align="left"><![CDATA[
       .---------------.   .---------.
      | Reuse EAT/CoRIM | | Register  |
      | media type(s)   | | new media |
      | + profile       | | type      |
       `---+----+------'   `-+----+--'
           |    |            |    |
           |  .-+------------+-.  |
           | |  |  Register  |  | |
         .-(-+-'   new CoAP   `-+-(-.
        |  | |  Content-Format  | |  |
        |  |  `-------+--------'  |  |
        |  |          |           |  |
        |  |          v           |  |
        |  |   .--------------.   |  |  .--------.
        |  |  | Automatically  |  |  | | Existing |
        |  |  | derive CBOR    |  |  | | CBOR     |
        |  |  | tag [RFC9277]  |  |  | | tag      |
        |  |   `------+-------'   |  |  `---+----'
        |  |          |           |  |      |
        |  |          |.----------(--(-----'
        |  |          |           |  |
        |  |          v           |  |
        |  |   .----------------. |  |
        |  |  /  CBOR tag CMW  /  |  |
        v  v `----------------'   v  v
    .--------------------------------------.
   /             Array CMW                /
  `--------------------------------------'
]]></artwork>
        </artset>
      </figure>
    </section>
    <section anchor="open-issues">
      <name>Open Issues</name>
      <t>The list of currently open issues for this documents can be found at
<eref target="https://github.com/thomas-fossati/draft-ftbs-rats-msg-wrap/issues"/>.</t>
      <t><cref>Note to RFC Editor: please remove before publication.</cref></t>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The authors would like to thank Carl Wallace and Carsten Bormann for their
reviews and suggestions.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
VbNbQQAA

-->

</rfc>
