<?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.25 (Ruby 3.1.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ftbs-rats-msg-wrap-02" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.16.0 -->
  <front>
    <title abbrev="RATS CMW">RATS Conceptual Messages Wrapper</title>
    <seriesInfo name="Internet-Draft" value="draft-ftbs-rats-msg-wrap-02"/>
    <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="March" day="07"/>
    <area>Security</area>
    <workgroup>Remote ATtestation ProcedureS</workgroup>
    <keyword>evidence</keyword>
    <keyword>attestation result</keyword>
    <keyword>endorsement</keyword>
    <keyword>reference value</keyword>
    <abstract>
      <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 members: one for the
type, another for 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>
    <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"/>). Such serialized messages may
have to be transported via different protocols - for example, evidence
using an EAT <xref target="I-D.ietf-rats-eat"/> encoding serialized as a CBOR payload in
a "background check" topological arrangement, or attestation results as
Attestation Results for Secure Interactions (AR4SI) <xref target="I-D.ietf-rats-ar4si"/> payloads
in "passport" mode.</t>
      <t>In order to minimize the cost associated with registration and maximize
interoperability, it is desirable to reuse their typing information
across such boundaries.</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>
      <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>
        <figure anchor="fig-cddl-array">
          <name>CDDL definition of the Array format</name>
          <artwork type="cddl" align="left"><![CDATA[
cmw-array = cmw-array-cbor / cmw-array-json

cmw-array-cbor = [ type, bytes ]

cmw-array-json = [ type, base64-string ]

type = coap-content-format / media-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_-]+"
]]></artwork>
        </figure>
        <t>It is composed of two 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>
        </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 are 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.<coap-cf-tag-number>(bytes)

coap-cf-tag-number = 1668546817..1668612095
]]></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 CMWDecode(b []byte) (CMW, error) {
    if len(b) < CMWMinSize {
        return CMW{}, errors.New("CMW too short")
    }

    switch b[0] {
    case 0x82:
        return cborArrayDecode(b)
    case 0x5b:
        return jsonArrayDecode(b)
    default:
        return cborTagDecode(b)
    }
}
]]></artwork>
      </section>
    </section>
    <section anchor="examples">
      <name>Examples</name>
      <t>The (equivalent) examples below assume 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>
      <section anchor="json-array">
        <name>JSON Array</name>
        <sourcecode type="cbor-diag"><![CDATA[
[
  "application/vnd.example.rats-conceptual-msg",
  "q82rzQ"
]
]]></sourcecode>
      </section>
      <section anchor="cbor-array">
        <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>
      </section>
      <section anchor="cbor-tag-example">
        <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>
    <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="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">
              <organization/>
            </author>
            <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">
              <organization/>
            </author>
            <author fullname="J. Klensin" initials="J." surname="Klensin">
              <organization/>
            </author>
            <author fullname="T. Hansen" initials="T." surname="Hansen">
              <organization/>
            </author>
            <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">
              <organization/>
            </author>
            <author fullname="K. Hartke" initials="K." surname="Hartke">
              <organization/>
            </author>
            <author fullname="C. Bormann" initials="C." surname="Bormann">
              <organization/>
            </author>
            <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">
              <organization/>
            </author>
            <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">
              <organization/>
            </author>
            <author fullname="C. Vigano" initials="C." surname="Vigano">
              <organization/>
            </author>
            <author fullname="C. Bormann" initials="C." surname="Bormann">
              <organization/>
            </author>
            <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">
              <organization/>
            </author>
            <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">
              <organization/>
            </author>
            <author fullname="C. Bormann" initials="C." surname="Bormann">
              <organization/>
            </author>
            <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">
              <organization/>
            </author>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman">
              <organization/>
            </author>
            <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">
              <organization/>
            </author>
            <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">
              <organization/>
            </author>
            <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="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">
              <organization/>
            </author>
            <author fullname="C. Bormann" initials="C." surname="Bormann">
              <organization/>
            </author>
            <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">
              <organization/>
            </author>
            <author fullname="D. Thaler" initials="D." surname="Thaler">
              <organization/>
            </author>
            <author fullname="M. Richardson" initials="M." surname="Richardson">
              <organization/>
            </author>
            <author fullname="N. Smith" initials="N." surname="Smith">
              <organization/>
            </author>
            <author fullname="W. Pan" initials="W." surname="Pan">
              <organization/>
            </author>
            <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="19" month="December" year="2022"/>
            <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-19"/>
        </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="19" month="October" year="2022"/>
            <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-01"/>
        </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">
              <organization>Arm Limited</organization>
            </author>
            <author fullname="Thomas Fossati" initials="T." surname="Fossati">
              <organization>Arm Limited</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="24" month="October" year="2022"/>
            <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-02"/>
        </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>
    <section anchor="rfc9193-abnf">
      <name>RFC9193 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="open-issues">
      <name>Open Issues</name>
      <t><cref>Note to RFC Editor: please remove before publication.</cref></t>
      <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>
    </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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

-->

</rfc>
