<?xml version="1.0" encoding="UTF-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.1 (Ruby 3.0.2) -->


<!DOCTYPE rfc  [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">

<!ENTITY SELF "RFCthis">
]>


<rfc ipr="trust200902" docName="draft-ietf-rats-msg-wrap-09" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title abbrev="RATS CMW">RATS Conceptual Messages Wrapper (CMW)</title>

    <author initials="H." surname="Birkholz" fullname="Henk Birkholz">
      <organization>Fraunhofer SIT</organization>
      <address>
        <email>henk.birkholz@ietf.contact</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>Linaro</organization>
      <address>
        <email>thomas.fossati@linaro.org</email>
      </address>
    </author>
    <author initials="H." surname="Tschofenig" fullname="Hannes Tschofenig">
      <organization abbrev="H-BRS">University of Applied Sciences Bonn-Rhein-Sieg</organization>
      <address>
        <email>Hannes.Tschofenig@gmx.net</email>
      </address>
    </author>

    <date year="2024" month="October" day="20"/>

    <area>Security</area>
    <workgroup>Remote ATtestation ProcedureS</workgroup>
    <keyword>evidence</keyword> <keyword>attestation results</keyword> <keyword>endorsements</keyword> <keyword>reference values</keyword>

    <abstract>


<?line 90?>

<t>This document defines the RATS conceptual message wrapper (CMW) format, a type of encapsulation format that can be used for any RATS messages, such as Evidence, Attestation Results, Endorsements, and Reference Values.
Additionally, the document describes a collection type that enables the aggregation of one or more CMWs into a single message.</t>

<t>This document also defines corresponding CBOR tag, JSON Web Tokens (JWT) and CBOR Web Tokens (CWT) claims, as well as an X.509 extension.
These allow embedding the wrapped conceptual messages into CBOR-based protocols, web APIs, and PKIX protocols.
In addition, a Media Type and a CoAP Content-Format are defined for transporting CMWs in HTTP, MIME, CoAP and other Internet protocols.</t>



    </abstract>



  </front>

  <middle>


<?line 99?>

<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,</t>

<t><list style="symbols">
  <t>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.</t>
  <t>Attestation Results for Secure Interactions (AR4SI) <xref target="I-D.ietf-rats-ar4si"/> payloads in
"passport" mode would be sent by the Verifier to the Attester and then, at a later
point in time and over a different channel, from the Attester to the Relying Party.</t>
</list></t>

<t>It is desirable to reuse any typing information associated with the messages
across such protocol boundaries to minimize the cost associated with
type registrations and maximize interoperability. With the CMW format described
in this document, protocol designers do not need to update protocol specifications
to support different conceptual messages. This approach reduces the implementation
effort for developers to support different attestation technologies. For example,
an implementer of a Relying Party application does not need to parse
attestation-related conceptual messages, such as different Evidence formats,
but can instead utilize the CMW format to be agnostic to the attestation
technology.</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 have been specifically designed to possess the following characteristics:</t>

<t><list style="symbols">
  <t>They are self-describing, which means that they can convey precise typing information without relying on the framing provided by the embedding protocol or the storage system.</t>
  <t>They are based on media types <xref target="RFC6838"/>, which allows the cost of their registration to be spread across numerous usage scenarios.</t>
</list></t>

<t>A protocol designer could use these formats, for example, to convey
Evidence, Endorsements and 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 the form of file system
objects.</t>

<t>This document also defines corresponding CBOR tag, JSON Web Tokens (JWT) and CBOR Web Tokens (CWT) claims, as well as an X.509 extension.
These allow embedding the wrapped conceptual messages into CBOR-based protocols, web APIs, and PKIX protocols.
In addition, a Media Type and a CoAP Content-Format are defined for transporting CMWs in HTTP, MIME, CoAP and other Internet protocols.</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>

<t><list style="numbers">
  <t>A CMW using a CBOR or JSON record (<xref target="type-n-val"/>);</t>
  <t>A CMW based on CBOR tags (<xref target="cbor-tag"/>).</t>
</list></t>

<t>A further CMW "collection" type that holds together multiple CMW items is defined in <xref target="cmw-coll"/>.</t>

<t>A CMW "tunnel" type is also defined in <xref target="cmw-tunnel"/> to allow transporting CBOR CMWs in JSON collections and vice-versa.</t>

<t>The collected CDDL is in <xref target="collected-cddl"/>.</t>

<t>This document only defines an encapsulation, not a security format.
It is the responsibility of the Attester to ensure that the CMW contents have the necessary security protection.
Security considerations are discussed in <xref target="seccons"/>.</t>

<section anchor="type-n-val"><name>CMW Record</name>

<t>The format of the CMW record is shown in <xref target="fig-cddl-record"/>.
The JSON <xref target="STD90"/> and CBOR <xref target="STD94"/> representations are provided separately.
Both the <spanx style="verb">json-record</spanx> and <spanx style="verb">cbor-record</spanx> have the same fields except for slight differences in the types discussed below.</t>

<figure title="CDDL definition of the Record format" anchor="fig-cddl-record"><artwork type="cddl" align="left"><![CDATA[
json-record = [
  type: media-type
  value: base64url-string
  ? ind: uint .bits cm-type
]

cbor-record = [
  type: coap-content-format-type / media-type
  value: bytes
  ? ind: uint .bits cm-type
]
]]></artwork></figure>

<t>Each contains two or three members:</t>

<dl newline="true">
  <dt><spanx style="verb">type</spanx>:</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"/>).
The latter <bcp14>MUST NOT</bcp14> be used in the JSON serialization.</t>
  </dd>
  <dt><spanx style="verb">value</spanx>:</dt>
  <dd>
    <t>The RATS conceptual message serialized according to the
value defined in the type member.
When using JSON, the value field <bcp14>MUST</bcp14> be encoded as Base64 using the URL and
filename safe alphabet (<xref section="5" sectionFormat="of" target="RFC4648"/>) without padding.
This always applies, even if the conceptual message format is already textual (e.g., a JWT EAT).
When using CBOR, the value field <bcp14>MUST</bcp14> be encoded as a CBOR byte string.</t>
  </dd>
  <dt><spanx style="verb">ind</spanx>:</dt>
  <dd>
    <t>An optional bitmap that indicates which conceptual message types are
carried in the <spanx style="verb">value</spanx> field.  Any combination (i.e., any value between
1 and 15, included) is allowed.  This is useful only if the <spanx style="verb">type</spanx> 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., <spanx style="verb">application/eat+cwt</spanx>), if the <spanx style="verb">value</spanx>
field contains multiple conceptual messages with different types (e.g.,
both Reference Values and Endorsements within the same <spanx style="verb">application/signed-corim+cbor</spanx>), or if the same profile identifier is
shared by different conceptual messages.
Future specifications may add new values to the <spanx style="verb">ind</spanx> field; see <xref target="iana-ind-ext"/>.</t>
  </dd>
</dl>

</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
<spanx style="verb">TN()</spanx> 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"/> as a macro with two parameters:</t>

<t><list style="symbols">
  <t><spanx style="verb">tn</spanx>, the CBOR tag number</t>
  <t><spanx style="verb">$fmt</spanx>, the definition of the associated conceptual message</t>
</list></t>

<figure title="CDDL definition of the CBOR Tag format macro" anchor="fig-cddl-cbor-tag"><artwork type="cddl" align="left"><![CDATA[
cbor-tag<tn, $fmt> = #6.<tn>(bytes .cbor $fmt)
]]></artwork></figure>

<t>To add a new CMW, the <spanx style="verb">$cbor-tag</spanx> type socket is extended with a new instance of the CMW CBOR Tag macro.
For example, to associate conceptual messages of type <spanx style="verb">my-evidence</spanx> with CBOR Tag <spanx style="verb">1668576819</spanx>, one would extend <spanx style="verb">$cbor-tag</spanx> as follows:</t>

<figure><sourcecode type="cddl"><![CDATA[
$cbor-tag /= cbor-tag<1668576819, my-evidence>

my-evidence = {
  &(eat_nonce: 10) => bstr .size (8..64)
}
]]></sourcecode></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 <spanx style="verb">TN()</spanx> 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
<spanx style="verb">TN()</spanx>, 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="cmw-coll"><name>CMW Collections</name>

<t>Layered Attesters and composite devices (Sections <xref target="RFC9334" section="3.2" sectionFormat="bare"/> and <xref target="RFC9334" section="3.3" sectionFormat="bare"/> of <xref target="RFC9334"/>) generate Evidence that consists of multiple parts.
For example, in data center servers, it is not uncommon for separate attesting environments (AE) to serve a subsection of the entire machine.
One AE might measure and attest to what was booted on the main CPU, while another AE might measure and attest to what was booted on a SmartNIC plugged into a PCIe slot, and a third AE might measure and attest to what was booted on the machine's GPU.
To allow aggregation of multiple, potentially non-homogeneous evidence formats collected from different AEs, this document defines a CMW "collection" as a container that holds several CMW items, each with a label that is unique within the scope of the collection.</t>

<t>Although originally designed to support layered Attester and composite device use cases, the CMW collection can be adapted for other scenarios that require the aggregation of RATS conceptual messages.
For instance, collections may be used to group Endorsements, Reference Values, Attestation Results, and more.
A single CMW collection can contain a mix of different message types, and it can also be used to carry messages related to multiple devices simultaneously.</t>

<t>The CMW collection (<xref target="fig-cddl-collection"/>) is defined as a CBOR map or JSON object with CMW values, either native or "tunnelled" (<xref target="cmw-tunnel"/>).
The position of a <spanx style="verb">cmw</spanx> entry in the <spanx style="verb">cmw-collection</spanx> is not significant.
Labels can be strings (or integers in the CBOR serialization) that serve as a mnemonic for different conceptual messages in the collection.</t>

<t>The <spanx style="verb">"__cmwc_t"</spanx> key is reserved for associating an optional type to the overall collection and <bcp14>MUST NOT</bcp14> be used for a label.
The collection type is either a Uniform Resource Identifier (URI) or an object identifier (OID).
The OID is always absolute and never relative.</t>

<t>Since the collection type is recursive, implementations may limit the allowed depth of nesting.</t>

<figure title="CDDL definition of the CMW collection format" anchor="fig-cddl-collection"><artwork type="cddl" align="left"><![CDATA[
json-collection = {
  ? "__cmwc_t": ~uri / oid
  + &(label: text) => json-CMW / c2j-tunnel
}

cbor-collection = {
  ? "__cmwc_t": ~uri / oid
  + &(label: (int / text)) => cbor-CMW / j2c-tunnel
}
]]></artwork></figure>

<t>CMW itself provides no facilities for authenticity, integrity protection, or confidentiality.
It is the responsibility of the designer for each use case to determine the necessary security properties and implement them accordingly.
A secure channel (e.g., via TLS) or object-level security (e.g., using JWT) may suffice in some scenarios, but not in all.</t>

<t>When a CMW is used to carry the Evidence for composite or layered attestation for a single device, the security properties needed are that of attestation.
In particular, all the members in a CMW must be bound together so that an attacker can not replace one Evidence message showing compromise with that from a non-compromised device.
The authenticity and integrity protection <bcp14>MUST</bcp14> be attestation-oriented.
For further security considerations about collections, see <xref target="seccons-coll"/>.</t>

<section anchor="relation-to-eat-submods"><name>Relation to EAT <spanx style="verb">submods</spanx></name>

<t>EAT submods (<xref section="4.2.18" sectionFormat="of" target="I-D.ietf-rats-eat"/>) provide a facility for aggregating attestation that has built-in security and will be suitable for some of the same attestation Evidence use cases covered by CMW collections.
However, compared to CMW collections, EAT submods are limited in two ways:</t>

<t><list style="numbers">
  <t>EAT <xref target="I-D.ietf-rats-eat"/> allows carrying non-EAT-formatted types by augmenting the $EAT-CBOR-Tagged-Token socket or the $JSON-Selector socket. However, these need to be specified in subsequent standard documents updating the EAT specification,</t>
  <t>Their top-down structure does not align well with the bottom-up approach layered attesters use to build the chain of trust, making them not ideal for modelling layered attestation.</t>
</list></t>

</section>
<section anchor="cmw-collections-role-in-composite-attester-topology"><name>CMW Collections' role in composite Attester topology</name>

<t>A CMW Collection's tree structure is not required to be a spanning tree of the system's composite Attester topology.
If the labels carry semantic content for a Verifier (e.g. to improve Verifier performance or aid human comprehension), the collection <bcp14>SHOULD</bcp14> be integrity protected.
For example, the collection can be integrity protected by including it in a signed token such as a CWT or JWT.</t>

</section>
<section anchor="cmw-tunnel"><name>CMW Tunnel</name>

<t>The CMW tunnel type (<xref target="fig-cddl-tunnel"/>) allows for moving a CMW in one serialization format, either JSON or CBOR, into a collection that uses the opposite serialization format.</t>

<t>Both tunnel types are arrays with two elements.
The first element, a fixed text string starting with a <spanx style="verb">#</spanx>, acts as a sentinel value.
The <spanx style="verb">#</spanx>, which is not an acceptable start symbol for the <spanx style="verb">Content-Type</spanx> production (<xref target="collected-cddl"/>), makes it possible to disambiguate a CMW tunnel from a CMW record.</t>

<figure title="CDDL definition of the CMW tunnel format" anchor="fig-cddl-tunnel"><artwork type="cddl" align="left"><![CDATA[
c2j-tunnel = [ "#cmw-c2j-tunnel", base64url-string ]
j2c-tunnel = [ "#cmw-j2c-tunnel", bytes ]
]]></artwork></figure>

<t>The conversion algorithms are described in the following subsections.</t>

<section anchor="cbor-to-json"><name>CBOR-to-JSON</name>

<t>The CBOR byte string of the serialised CBOR CMW is encoded as Base64 using the URL and filename safe alphabet (<xref section="5" sectionFormat="of" target="RFC4648"/>) without padding.
The obtained string is added as the second element of the <spanx style="verb">c2j-tunnel</spanx> array.
The <spanx style="verb">c2j-tunnel</spanx> array is serialized as JSON.</t>

</section>
<section anchor="json-to-cbor"><name>JSON-to-CBOR</name>

<t>The UTF-8 string of the serialized JSON CMW is encoded as a CBOR byte string (Major type 2).
The byte string is added as the second element of the <spanx style="verb">j2c-tunnel</spanx> array.
The <spanx style="verb">j2c-tunnel</spanx> array is serialized as CBOR.</t>

</section>
</section>
</section>
<section anchor="decapsulation-algorithm"><name>Decapsulation Algorithm</name>

<t>Once any external framing is removed (for example, if the CMW is carried in a certificate extension), the CMW decoder performs a 1-byte lookahead to determine how to decode the remaining byte buffer.
The following pseudo-code illustrates this process:</t>

<figure><artwork><![CDATA[
func CMWTypeDemux(b []byte) (CMW, error) {
  if len(b) == 0 {
    return Unknown
  }

  if b[0] == 0x82 || b[0] == 0x83 {
    return CBORRecord
  } else if b[0] >= 0xc0 && b[0] <= 0xdb {
    return CBORTag
  } else if b[0] == 0x5b {
    return JSONRecord
  } else if b[0] == 0x7b {
    return JSONCollection
  } else if (b[0] >= 0xa0 && b[0] <= 0xbb) || b[0] == 0xbf {
    return CBORCollection
  }

  return Unknown
}
]]></artwork></figure>

</section>
</section>
<section anchor="transporting-cmw-in-cose-and-jose-web-tokens"><name>Transporting CMW in COSE and JOSE Web Tokens</name>

<t>To facilitate the embedding of CMWs and CMW collections in CBOR-based protocols and web APIs, this document defines two <spanx style="verb">"cmw"</spanx> claims for use with JSON Web Tokens (JWT) and CBOR Web Tokens (CWT).</t>

<t>The definitions for these claims can be found in <xref target="iana-jwt"/> and <xref target="iana-cwt"/>, respectively.</t>

<section anchor="encoding-requirements"><name>Encoding Requirements</name>

<t>A CMW collection carried in a <spanx style="verb">"cmw"</spanx> JWT claim <bcp14>MUST</bcp14> be a <spanx style="verb">json-collection</spanx>.
A CMW collection carried in a <spanx style="verb">"cmw"</spanx> CWT claim <bcp14>MUST</bcp14> be a <spanx style="verb">cbor-collection</spanx>.</t>

<t>A CMW record carried in a <spanx style="verb">"cmw"</spanx> JWT claim <bcp14>MUST</bcp14> be a <spanx style="verb">json-record</spanx>.
A CMW record carried in a <spanx style="verb">"cmw"</spanx> CWT claim <bcp14>MUST</bcp14> be a <spanx style="verb">cbor-record</spanx>.</t>

</section>
</section>
<section anchor="x509"><name>Transporting CMW in X.509 Messages</name>

<t>CMW may need to be transported in PKIX messages, such as Certificate Signing Requests (CSRs) or in X.509 Certificates and Certificate Revocation Lists (CRLs).</t>

<t>The use of CMW in CSRs is documented in <xref target="I-D.ietf-lamps-csr-attestation"/>, while its application in X.509 Certificates and CRLs is detailed in Section 6.1 of <xref target="DICE-arch"/>.</t>

<t>This section outlines the CMW extension designed to carry CMW objects.</t>

<t>The CMW extension <bcp14>MAY</bcp14> be included in X.509 Certificates, CRLs <xref target="RFC5280"/>, and CSRs.</t>

<t>The CMW extension <bcp14>MUST</bcp14> be identified by the following object identifier:</t>

<figure><sourcecode type="asn.1"><![CDATA[
id-pe-cmw  OBJECT IDENTIFIER ::=
        { iso(1) identified-organization(3) dod(6) internet(1)
          security(5) mechanisms(5) pkix(7) id-pe(1) TBD }
]]></sourcecode></figure>

<t>This extension <bcp14>SHOULD NOT</bcp14> be marked critical.
It <bcp14>MAY</bcp14> be marked critical in cases where the attestation-related information is essential for granting resource access, and there is a risk that legacy relying parties would bypass such controls.</t>

<t>The CMW extension <bcp14>MUST</bcp14> have the following syntax:</t>

<figure><sourcecode type="asn.1"><![CDATA[
CMW ::= CHOICE {
    json UTF8String,
    cbor OCTET STRING
}
]]></sourcecode></figure>

<t>The CMW <bcp14>MUST</bcp14> include the serialized CMW object in either JSON or CBOR format, utilizing the appropriate CHOICE entry.</t>

<t>The DER-encoded CMW is the value of the OCTET STRING for the extnValue field of the extension.</t>

<section anchor="asn1-x509"><name>ASN.1 Module</name>

<t>This section provides an ASN.1 module <xref target="X.680"/> for the CMW extension, following the conventions established in <xref target="RFC5912"/> and <xref target="RFC6268"/>.</t>

<figure><sourcecode type="asn.1"><![CDATA[
CMWExtn
  { iso(1) identified-organization(3) dod(6) internet(1)
    security(5) mechanisms(5) pkix(7) id-mod(0)
    id-mod-cmw-collection-extn(TBD) }

DEFINITIONS IMPLICIT TAGS ::=
BEGIN

IMPORTS
  EXTENSION
  FROM PKIX-CommonTypes-2009  -- RFC 5912
    { iso(1) identified-organization(3) dod(6) internet(1)
      security(5) mechanisms(5) pkix(7) id-mod(0)
      id-mod-pkixCommon-02(57) } ;

-- CMW Extension

ext-CMW EXTENSION ::= {
  SYNTAX CMW
  IDENTIFIED BY id-pe-cmw }

-- CMW Extension OID

id-pe-cmw  OBJECT IDENTIFIER  ::=
   { iso(1) identified-organization(3) dod(6) internet(1)
     security(5) mechanisms(5) pkix(7) id-pe(1) TBD }

-- CMW Extension Syntax

CMW ::= CHOICE {
    json UTF8String,
    cbor OCTET STRING
}

END
]]></sourcecode></figure>

</section>
<section anchor="compatibility-with-dice-conceptualmessagewrapper"><name>Compatibility with DICE <spanx style="verb">ConceptualMessageWrapper</spanx></name>

<t>Section 6.1.8 of <xref target="DICE-arch"/> specifies the ConceptualMessageWrapper (CMW) format and its corresponding object identifier.
The CMW format outlined in <xref target="DICE-arch"/> permits only a subset of the CMW grammar defined in this document.
In particular, the tunnel and collection formats cannot be encoded using DICE CMWs.</t>

</section>
</section>
<section anchor="submods"><name>Transporting CMW in EAT <spanx style="verb">submods</spanx></name>

<t><xref section="4.2.18" sectionFormat="of" target="I-D.ietf-rats-eat"/> allows carrying non-EAT-formatted types in EAT submods by augmenting the <spanx style="verb">$EAT-CBOR-Tagged-Token</spanx> socket or the <spanx style="verb">$JSON-Selector</spanx> socket.</t>

<t>The following CDDL adds <spanx style="verb">cbor-CMW</spanx> and <spanx style="verb">json-CMW</spanx> to EAT using such extension points:</t>

<figure><sourcecode type="cddl"><![CDATA[
$EAT-CBOR-Tagged-Token /= #6.CPA765(cbor-CMW)

$JSON-Selector /= [ type: "CMW", nested-token: json-CMW ]
]]></sourcecode></figure>

<t>Where:</t>

<t><list style="symbols">
  <t><spanx style="verb">cbor-CMW</spanx> and <spanx style="verb">json-CMW</spanx> are defined in <xref target="collected-cddl"/>, and</t>
  <t><spanx style="verb">CPA765</spanx> is the CBOR tag for CMW (<xref target="iana-cbor-tag"/>).</t>
</list></t>

<t><cref anchor="rfced">RFC Editor:</cref> This document uses the CPA (code point allocation) convention described in <xref target="I-D.bormann-cbor-draft-numbers"/>. For each usage of the term "CPA", please remove the prefix "CPA" from the indicated value and replace the residue with the value assigned by IANA; perform an analogous substitution for all other occurrences of the prefix "CPA" in the document. Finally, please remove this note.</t>

</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 <spanx style="verb">application/vnd.example.rats-conceptual-msg</spanx> has been
registered alongside a corresponding CoAP Content-Format number <spanx style="verb">30001</spanx>.  The
CBOR tag <spanx style="verb">1668576818</spanx> is derived applying the <spanx style="verb">TN()</spanx> transform as described in
<xref target="cbor-tag"/>.</t>

<t>The example in <xref target="ex-ca-ind"/> is a signed CoRIM (Concise Reference Integrity Manifest) <xref target="I-D.ietf-rats-corim"/> payload with an explicit CM
indicator <spanx style="verb">0b0000_0011</spanx> (3), meaning that the wrapped message contains both
Reference Values and Endorsements.</t>

<section anchor="ex-ja"><name>JSON Record</name>

<figure><sourcecode type="cbor-diag"><![CDATA[
[
  "application/vnd.example.rats-conceptual-msg",
  "q82rzQ"
]
]]></sourcecode></figure>

<t>Note that a CoAP Content-Format number can also be used with the JSON record
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 Record</name>

<figure><sourcecode type="cbor-diag"><![CDATA[
[
  30001,
  h'2347da55'
]
]]></sourcecode></figure>

<t>with the following wire representation:</t>

<figure><artwork><![CDATA[
82             # array(2)
   19 7531     # unsigned(30001)
   44          # bytes(4)
      2347da55 # "#G\xDAU"
]]></artwork></figure>

<t>Note that a Media-Type-Name can also be used with the CBOR record 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>

<figure><sourcecode type="cbor-diag"><![CDATA[
[
  "application/vnd.example.rats-conceptual-msg",
  h'2347da55'
]
]]></sourcecode></figure>

</section>
<section anchor="ex-ct"><name>CBOR Tag</name>

<figure><sourcecode type="cbor-diag"><![CDATA[
1668576818(h'2347da55')
]]></sourcecode></figure>

<t>with the following wire representation:</t>

<figure><artwork><![CDATA[
da 63747632    # tag(1668576818)
   44          # bytes(4)
      2347da55 # "#G\xDAU"
]]></artwork></figure>

</section>
<section anchor="ex-ca-ind"><name>CBOR Record with explicit CM indicator</name>

<figure><sourcecode type="cbor-diag"><![CDATA[
[
  "application/signed-corim+cbor",
  h'd28443a10126a1',
  3
]
]]></sourcecode></figure>

<t>with the following wire representation:</t>

<figure><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></figure>

</section>
<section anchor="cbor-collection"><name>CBOR Collection</name>

<t>The following example is a CBOR collection that assembles conceptual messages from three attesters: Evidence for attesters A and B and Attestation Results for attester C.
It is given an explicit collection type using the URI form.</t>

<figure><artwork><![CDATA[
{
  "attester A": [
    30001,
    h'2347da55',
    4
  ],
  "attester B": 1668576818(h'2347da55'),
  "attester C": [
    "application/eat+jwt",
    h'4c693475',
    8
  ]
}
]]></artwork></figure>

<t>with the following wire representation:</t>

<figure><artwork><![CDATA[
a3                                      # map(3)
   6a                                   # text(10)
      61747465737465722041              # "attester A"
   83                                   # array(3)
      19 7531                           # unsigned(30001)
      44                                # bytes(4)
         2347da55                       # "#G\xDAU"
      04                                # unsigned(4)
   6a                                   # text(10)
      61747465737465722042              # "attester B"
   da 63747632                          # tag(1668576818)
      44                                # bytes(4)
         2347da55                       # "#G\xDAU"
   6a                                   # text(10)
      61747465737465722043              # "attester C"
   83                                   # array(3)
      73                                # text(19)
         6170706c69636174696f6e2f6561742b6a7774 # "application/eat+jwt"
      44                                # bytes(4)
         4c693475                       # "Li4u"
      08                                # unsigned(8)
]]></artwork></figure>

<t>The following example shows the use of a tunnelled type to move a JSON record to a CBOR collection:</t>

<figure><artwork><![CDATA[
{
  "__cmwc_t": "tag:example.com,2024:composite-attester",
  0: [
    30001,
    h'2347da55',
    4
  ],
  1: 1668576818(h'2347da55'),
  2: [
    "#cmw-j2c-tunnel",
    '[ "application/eat+jwt", "Li4u", 8 ]'
  ]
}
]]></artwork></figure>

</section>
<section anchor="json-collection"><name>JSON Collection</name>

<t>The following example is a JSON collection that assembles Evidence from two attesters.</t>

<figure><artwork><![CDATA[
{
  "attester A": [
    "application/eat-ucs+json",
    "e30K",
    4
  ],
  "attester B": [
    "application/eat-ucs+cbor",
    "oA",
    4
  ]
}
]]></artwork></figure>

<t>The following example shows the use of a tunnelled type to move a CBOR record to a JSON collection:</t>

<figure><artwork><![CDATA[
{
  "attester A": [
    "application/eat-ucs+json",
    "e30K",
    4
  ],
  "attester B (tunnelled)": [
    "#cmw-c2j-tunnel",
    "g3gYYXBwbGljYXRpb24vZWF0LXVjcytjYm9yQaAE"
  ]
}
]]></artwork></figure>

</section>
<section anchor="use-in-jwt"><name>Use in JWT</name>

<t>The following example shows the use of the <spanx style="verb">"cmw"</spanx> JWT claim to transport a CMW collection in a JWT <xref target="RFC7519"/>:</t>

<figure><artwork><![CDATA[
{
  "cmw": {
    "attester A": [
      "application/eat-ucs+json",
      "e30K",
      4
    ],
    "attester B (tunnelled)": [
      "#cmw-c2j-tunnel",
      "g3gYYXBwbGljYXRpb24vZWF0LXVjcytjYm9yQaAE"
    ]
  },
  "iss": "evidence collection daemon",
  "exp": 1300819380
}
]]></artwork></figure>

</section>
</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"></eref>, 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/"></eref>.</t>

</section>
</section>
<section anchor="seccons"><name>Security Considerations</name>

<section anchor="records-and-cbor-tags"><name>Records and CBOR Tags</name>

<t>RATS conceptual messages are typically secured using cryptography.
If the messages are already protected, then there are no additional security requirements imposed by the introduction of this encapsulation.
If an adversary tries to modify the payload encapsulation, it will result in incorrect processing of the encapsulated message and lead to an error.
If the messages are not protected, additional security must be added at a different layer.
As an example, a <spanx style="verb">cbor-record</spanx> containing an UCCS (Unprotected CWT Claims Sets) <xref target="I-D.ietf-rats-uccs"/> can be signed using COSE Sign1 <xref target="STD96"/>.</t>

</section>
<section anchor="seccons-coll"><name>Collections</name>

<t>If the collection is not protected from tampering by external security measures (such as object security primitives) or internal mechanisms (such as intra-item binding), an attacker could easily manipulate the collection's contents.
It is the responsibility of the Attester who creates the CMW collection to ensure that the contents of the collection are integrity-protected.
The designer of the attestation technology is typically in charge of ensuring that the security properties are met, not the user of the conceptual message wrapper.
In particular, when a CMW is used to carry multiple Evidence messages for a composite device or layered attestation, there should be strong binding between the Evidence messages within the collection.
This binding is needed to prevent attacks where Evidence from a subverted part of the device is replaced by Evidence from a separate non-subverted device.
The binding of Evidence messages should be some form of attestation.
For example, key material used to sign/bind an entire CMW collection should be an attestation key, handled as described in <xref section="12.1" sectionFormat="of" target="RFC9334"/>.
The binding does not necessarily have to be a signature over the CMW collection, it might also be achieved through identifiers, cross-linking, signing or hashing between the members of the collection.
Client-authenticated TLS may be used to bind a CMW collection of Evidence messages.
However, the client key used with TLS should not be that of the end-user or owner of the device.
Instead, it should be attestation-oriented key material from the device or the attester manufacturer.</t>

</section>
</section>
<section anchor="iana-considerations"><name>IANA Considerations</name>

<t><cref anchor="rfced_1">RFC Editor:</cref> replace "&SELF;" with the RFC number assigned to this document.</t>

<section anchor="iana-cwt"><name>CWT <spanx style="verb">cmw</spanx> Claim Registration</name>

<t>IANA is requested to add a new <spanx style="verb">cmw</spanx> claim to the "CBOR Web Token (CWT) Claims" registry <xref target="IANA.cwt"/> as follows:</t>

<t><list style="symbols">
  <t>Claim Name: cmw</t>
  <t>Claim Description: A RATS Conceptual Message Wrapper</t>
  <t>Claim Key: TBD</t>
  <t>Claim Value Type(s): CBOR Map, CBOR Array, or CBOR Tag</t>
  <t>Change Controller: IETF</t>
  <t>Specification Document(s): <xref target="type-n-val"/>, <xref target="cmw-coll"/> and <xref target="cbor-tag"/> of &SELF;</t>
</list></t>

<t>The suggested value for the Claim Key is 299.</t>

</section>
<section anchor="iana-jwt"><name>JWT <spanx style="verb">cmw</spanx> Claim Registration</name>

<t>IANA is requested to add a new <spanx style="verb">cmw</spanx> claim to the "JSON Web Token Claims" sub-registry of the "JSON Web Token (JWT)" registry <xref target="IANA.jwt"/> as follows:</t>

<t><list style="symbols">
  <t>Claim Name: cmw</t>
  <t>Claim Description: A RATS Conceptual Message Wrapper</t>
  <t>Change Controller: IETF</t>
  <t>Specification Document(s): <xref target="type-n-val"/> and <xref target="cmw-coll"/> of &SELF;</t>
</list></t>

</section>
<section anchor="iana-cbor-tag"><name>CBOR Tag Registration</name>

<t>IANA is requested to add the following tag to the "CBOR Tags" <xref target="IANA.cbor-tags"/> registry.</t>

<texttable>
      <ttcol align='left'>CBOR Tag</ttcol>
      <ttcol align='left'>Data Item</ttcol>
      <ttcol align='left'>Semantics</ttcol>
      <ttcol align='left'>Reference</ttcol>
      <c>CPA765</c>
      <c>CBOR map, CBOR array, CBOR tag</c>
      <c>RATS Conceptual Message Wrapper</c>
      <c><xref target="type-n-val"/>, <xref target="cbor-tag"/> and <xref target="cmw-coll"/> of &SELF;</c>
</texttable>

</section>
<section anchor="iana-ind-ext"><name>RATS Conceptual Message Wrapper (CMW) Indicators Registry</name>

<t>This specification defines a new "RATS Conceptual Message Wrapper (CMW) Indicators" registry, with the policy "Expert Review" (<xref section="4.5" sectionFormat="of" target="BCP26"/>).</t>

<t>The objective is to have CMW Indicators values registered for all RATS Conceptual Messages (<xref section="8" sectionFormat="of" target="RFC9334"/>).</t>

<section anchor="de-instructions"><name>Instructions for the Designated Expert</name>

<t>The expert is instructed to add the values incrementally.</t>

<t>Acceptable values are those corresponding to RATS Conceptual Messages defined by the RATS architecture <xref target="RFC9334"/> and any of its updates.</t>

</section>
<section anchor="structure-of-entries"><name>Structure of Entries</name>

<t>Each entry in the registry must include:</t>

<dl newline="true">
  <dt>Indicator value:</dt>
  <dd>
    <t>A number corresponding to the bit position in the <spanx style="verb">ind</spanx> bitmap (<xref target="type-n-val"/>).</t>
  </dd>
  <dt>Conceptual Message name:</dt>
  <dd>
    <t>A text string describing the RATS conceptual message this indicator corresponds to.</t>
  </dd>
  <dt>Reference:</dt>
  <dd>
    <t>A reference to a document, if available, or the registrant.</t>
  </dd>
</dl>

<t>The initial registrations for the registry are detailed in <xref target="tab-ind-regs"/>.</t>

<texttable title="CMW Indicators Registry Initial Contents" anchor="tab-ind-regs">
      <ttcol align='left'>Indicator value</ttcol>
      <ttcol align='left'>Conceptual Message name</ttcol>
      <ttcol align='left'>Reference</ttcol>
      <c>0</c>
      <c>Reference Values</c>
      <c>&SELF;</c>
      <c>1</c>
      <c>Endorsements</c>
      <c>&SELF;</c>
      <c>2</c>
      <c>Evidence</c>
      <c>&SELF;</c>
      <c>3</c>
      <c>Attestation Results</c>
      <c>&SELF;</c>
      <c>4-31</c>
      <c>Unassigned</c>
      <c>&SELF;</c>
</texttable>

</section>
<section anchor="provisional-registration"><name>Provisional Registration</name>

<t>Before the creation of the registry by IANA, new codepoints can be added to the <eref target="https://github.com/ietf-rats-wg/draft-ietf-rats-msg-wrap/blob/main/provisional/cmw-indicators-registry.md">provisional CMW Indicators registry</eref> by following the documented procedure.</t>

<t><xref target="tab-ind-regs"/> will be regularly updated to match the contents of the provisional registry.</t>

<t>The provisional registry will be discontinued once IANA establishes the permanent registry, which is expected to coincide with the publication of the current document.</t>

</section>
</section>
<section anchor="media-types"><name>Media Types</name>

<t>IANA is requested to add the following media types to the "Media Types" registry <xref target="IANA.media-types"/>.</t>

<texttable title="CMW Media Types" anchor="tab-mt-regs">
      <ttcol align='left'>Name</ttcol>
      <ttcol align='left'>Template</ttcol>
      <ttcol align='left'>Reference</ttcol>
      <c><spanx style="verb">cmw+cbor</spanx></c>
      <c><spanx style="verb">application/cmw+cbor</spanx></c>
      <c><xref target="type-n-val"/>, <xref target="cbor-tag"/> and <xref target="cmw-coll"/> of &SELF;</c>
      <c><spanx style="verb">cmw+json</spanx></c>
      <c><spanx style="verb">application/cmw+json</spanx></c>
      <c><xref target="type-n-val"/> and <xref target="cmw-coll"/> of &SELF;</c>
</texttable>

<section anchor="applicationcmwcbor"><name><spanx style="verb">application/cmw+cbor</spanx></name>

<dl spacing="compact">
  <dt>Type name:</dt>
  <dd>
    <t>application</t>
  </dd>
  <dt>Subtype name:</dt>
  <dd>
    <t>cmw+cbor</t>
  </dd>
  <dt>Required parameters:</dt>
  <dd>
    <t>n/a</t>
  </dd>
  <dt>Optional parameters:</dt>
  <dd>
    <t><spanx style="verb">cmwc_t</spanx> (CMW collection type in string format.  The parameter value is case-insensitive.  It <bcp14>MUST NOT</bcp14> be used for CMW that are not collections.)</t>
  </dd>
  <dt>Encoding considerations:</dt>
  <dd>
    <t>binary (CBOR)</t>
  </dd>
  <dt>Security considerations:</dt>
  <dd>
    <t><xref target="seccons"/> of &SELF;</t>
  </dd>
  <dt>Interoperability considerations:</dt>
  <dd>
    <t>n/a</t>
  </dd>
  <dt>Published specification:</dt>
  <dd>
    <t>&SELF;</t>
  </dd>
  <dt>Applications that use this media type:</dt>
  <dd>
    <t>Attesters, Verifiers, Endorsers and Reference-Value providers, Relying Parties that need to transfer CMW payloads over HTTP(S), CoAP(S), and other transports.</t>
  </dd>
  <dt>Fragment identifier considerations:</dt>
  <dd>
    <t>The syntax and semantics of fragment identifiers are as specified for "application/cbor". (No fragment identification syntax is currently defined for "application/cbor".)</t>
  </dd>
  <dt>Person &amp; email address to contact for further information:</dt>
  <dd>
    <t>RATS WG mailing list (rats@ietf.org)</t>
  </dd>
  <dt>Intended usage:</dt>
  <dd>
    <t>COMMON</t>
  </dd>
  <dt>Restrictions on usage:</dt>
  <dd>
    <t>none</t>
  </dd>
  <dt>Author/Change controller:</dt>
  <dd>
    <t>IETF</t>
  </dd>
  <dt>Provisional registration:</dt>
  <dd>
    <t>no</t>
  </dd>
</dl>

</section>
<section anchor="applicationcmwjson"><name><spanx style="verb">application/cmw+json</spanx></name>

<dl spacing="compact">
  <dt>Type name:</dt>
  <dd>
    <t>application</t>
  </dd>
  <dt>Subtype name:</dt>
  <dd>
    <t>cmw+json</t>
  </dd>
  <dt>Required parameters:</dt>
  <dd>
    <t>n/a</t>
  </dd>
  <dt>Optional parameters:</dt>
  <dd>
    <t><spanx style="verb">cmwc_t</spanx> (CMW collection type in string format.  The parameter value is case-insensitive.  It <bcp14>MUST NOT</bcp14> be used for CMW that are not collections.)</t>
  </dd>
  <dt>Encoding considerations:</dt>
  <dd>
    <t>binary (JSON is UTF-8-encoded text)</t>
  </dd>
  <dt>Security considerations:</dt>
  <dd>
    <t><xref target="seccons"/> of &SELF;</t>
  </dd>
  <dt>Interoperability considerations:</dt>
  <dd>
    <t>n/a</t>
  </dd>
  <dt>Published specification:</dt>
  <dd>
    <t>&SELF;</t>
  </dd>
  <dt>Applications that use this media type:</dt>
  <dd>
    <t>Attesters, Verifiers, Endorsers and Reference-Value providers, Relying Parties that need to transfer CMW payloads over HTTP(S), CoAP(S), and other transports.</t>
  </dd>
  <dt>Fragment identifier considerations:</dt>
  <dd>
    <t>The syntax and semantics of fragment identifiers are as specified for "application/json". (No fragment identification syntax is currently defined for "application/json".)</t>
  </dd>
  <dt>Person &amp; email address to contact for further information:</dt>
  <dd>
    <t>RATS WG mailing list (rats@ietf.org)</t>
  </dd>
  <dt>Intended usage:</dt>
  <dd>
    <t>COMMON</t>
  </dd>
  <dt>Restrictions on usage:</dt>
  <dd>
    <t>none</t>
  </dd>
  <dt>Author/Change controller:</dt>
  <dd>
    <t>IETF</t>
  </dd>
  <dt>Provisional registration:</dt>
  <dd>
    <t>no</t>
  </dd>
</dl>

</section>
</section>
<section anchor="coap-content-formats"><name>CoAP Content Formats</name>

<t>IANA is requested to register the following Content-Format numbers in the "CoAP Content-Formats" sub-registry, within the "Constrained RESTful Environments (CoRE) Parameters" Registry <xref target="IANA.core-parameters"/>:</t>

<texttable align="left" title="New CoAP Content Formats">
      <ttcol align='left'>Content-Type</ttcol>
      <ttcol align='left'>Content Coding</ttcol>
      <ttcol align='left'>ID</ttcol>
      <ttcol align='left'>Reference</ttcol>
      <c>application/cmw+cbor</c>
      <c>-</c>
      <c>TBD1</c>
      <c><xref target="type-n-val"/>, <xref target="cbor-tag"/> and <xref target="cmw-coll"/> of &SELF;</c>
      <c>application/cmw+json</c>
      <c>-</c>
      <c>TBD2</c>
      <c><xref target="type-n-val"/> and <xref target="cmw-coll"/> of &SELF;</c>
</texttable>

<t>If possible, TBD1 and TBD2 should be assigned in the 256..999 range.</t>

</section>
<section anchor="new-smi-numbers-registrations"><name>New SMI Numbers Registrations</name>

<t>IANA is requested to assign an object identifier (OID) for the CMW extension defined in <xref target="x509"/> in the "Certificate Extension" sub-registry of the "SMI Numbers" <xref target="IANA.smi-numbers"/> registry.</t>

<t>IANA is requested to assign an object identifier (OID) for the ASN.1 Module defined in <xref target="asn1-x509"/> in the "Module Identifier" sub-registry of the "SMI Numbers" <xref target="IANA.smi-numbers"/> registry.</t>

</section>
</section>


  </middle>

  <back>


    <references title='Normative References' anchor="sec-normative-references">



<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="RFC5280">
  <front>
    <title>Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile</title>
    <author fullname="D. Cooper" initials="D." surname="Cooper"/>
    <author fullname="S. Santesson" initials="S." surname="Santesson"/>
    <author fullname="S. Farrell" initials="S." surname="Farrell"/>
    <author fullname="S. Boeyen" initials="S." surname="Boeyen"/>
    <author fullname="R. Housley" initials="R." surname="Housley"/>
    <author fullname="W. Polk" initials="W." surname="Polk"/>
    <date month="May" year="2008"/>
    <abstract>
      <t>This memo profiles the X.509 v3 certificate and X.509 v2 certificate revocation list (CRL) for use in the Internet. An overview of this approach and model is provided as an introduction. The X.509 v3 certificate format is described in detail, with additional information regarding the format and semantics of Internet name forms. Standard certificate extensions are described and two Internet-specific extensions are defined. A set of required certificate extensions is specified. The X.509 v2 CRL format is described in detail along with standard and Internet-specific extensions. An algorithm for X.509 certification path validation is described. An ASN.1 module and examples are provided in the appendices. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="5280"/>
  <seriesInfo name="DOI" value="10.17487/RFC5280"/>
</reference>

<reference anchor="RFC5912">
  <front>
    <title>New ASN.1 Modules for the Public Key Infrastructure Using X.509 (PKIX)</title>
    <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
    <author fullname="J. Schaad" initials="J." surname="Schaad"/>
    <date month="June" year="2010"/>
    <abstract>
      <t>The Public Key Infrastructure using X.509 (PKIX) certificate format, and many associated formats, are expressed using ASN.1. The current ASN.1 modules conform to the 1988 version of ASN.1. This document updates those ASN.1 modules to conform to the 2002 version of ASN.1. There are no bits-on-the-wire changes to any of the formats; this is simply a change to the syntax. This document is not an Internet Standards Track specification; it is published for informational purposes.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="5912"/>
  <seriesInfo name="DOI" value="10.17487/RFC5912"/>
</reference>

<reference anchor="RFC6268">
  <front>
    <title>Additional New ASN.1 Modules for the Cryptographic Message Syntax (CMS) and the Public Key Infrastructure Using X.509 (PKIX)</title>
    <author fullname="J. Schaad" initials="J." surname="Schaad"/>
    <author fullname="S. Turner" initials="S." surname="Turner"/>
    <date month="July" year="2011"/>
    <abstract>
      <t>The Cryptographic Message Syntax (CMS) format, and many associated formats, are expressed using ASN.1. The current ASN.1 modules conform to the 1988 version of ASN.1. This document updates some auxiliary ASN.1 modules to conform to the 2008 version of ASN.1; the 1988 ASN.1 modules remain the normative version. There are no bits- on-the-wire changes to any of the formats; this is simply a change to the syntax. This document is not an Internet Standards Track specification; it is published for informational purposes.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="6268"/>
  <seriesInfo name="DOI" value="10.17487/RFC6268"/>
</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="RFC7519">
  <front>
    <title>JSON Web Token (JWT)</title>
    <author fullname="M. Jones" initials="M." surname="Jones"/>
    <author fullname="J. Bradley" initials="J." surname="Bradley"/>
    <author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
    <date month="May" year="2015"/>
    <abstract>
      <t>JSON Web Token (JWT) is a compact, URL-safe means of representing claims to be transferred between two parties. The claims in a JWT are encoded as a JSON object that is used as the payload of a JSON Web Signature (JWS) structure or as the plaintext of a JSON Web Encryption (JWE) structure, enabling the claims to be digitally signed or integrity protected with a Message Authentication Code (MAC) and/or encrypted.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="7519"/>
  <seriesInfo name="DOI" value="10.17487/RFC7519"/>
</reference>

<reference anchor="STD90">
  <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="IANA.cwt" target="https://www.iana.org/assignments/cwt">
  <front>
    <title>CBOR Web Token (CWT) Claims</title>
    <author>
      <organization>IANA</organization>
    </author>
  </front>
</reference>

<reference anchor="IANA.jwt" target="https://www.iana.org/assignments/jwt">
  <front>
    <title>JSON Web Token (JWT)</title>
    <author>
      <organization>IANA</organization>
    </author>
  </front>
</reference>

<reference anchor="BCP26">
  <front>
    <title>Guidelines for Writing an IANA Considerations Section in RFCs</title>
    <author fullname="M. Cotton" initials="M." surname="Cotton"/>
    <author fullname="B. Leiba" initials="B." surname="Leiba"/>
    <author fullname="T. Narten" initials="T." surname="Narten"/>
    <date month="June" year="2017"/>
    <abstract>
      <t>Many protocols make use of points of extensibility that use constants to identify various protocol parameters. To ensure that the values in these fields do not have conflicting uses and to promote interoperability, their allocations are often coordinated by a central record keeper. For IETF protocols, that role is filled by the Internet Assigned Numbers Authority (IANA).</t>
      <t>To make assignments in a given registry prudently, guidance describing the conditions under which new values should be assigned, as well as when and how modifications to existing values can be made, is needed. This document defines a framework for the documentation of these guidelines by specification authors, in order to assure that the provided guidance for the IANA Considerations is clear and addresses the various issues that are likely in the operation of a registry.</t>
      <t>This is the third edition of this document; it obsoletes RFC 5226.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="26"/>
  <seriesInfo name="RFC" value="8126"/>
  <seriesInfo name="DOI" value="10.17487/RFC8126"/>
</reference>

<reference anchor="X.680">
  <front>
    <title>Specification of Abstract Syntax Notation One (ASN.1): Specification of Basic Notation</title>
    <author>
      <organization>International Telephone and Telegraph
Consultative Committee</organization>
    </author>
    <date month="July" year="1994"/>
  </front>
  <seriesInfo name="CCITT" value="Recommendation X.680"/>
</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>

<reference anchor="IANA.cbor-tags" target="https://www.iana.org/assignments/cbor-tags">
  <front>
    <title>Concise Binary Object Representation (CBOR) Tags</title>
    <author>
      <organization>IANA</organization>
    </author>
  </front>
</reference>

<reference anchor="IANA.media-types" target="https://www.iana.org/assignments/media-types">
  <front>
    <title>Media Types</title>
    <author>
      <organization>IANA</organization>
    </author>
  </front>
</reference>

<reference anchor="IANA.core-parameters" target="https://www.iana.org/assignments/core-parameters">
  <front>
    <title>Constrained RESTful Environments (CoRE) Parameters</title>
    <author>
      <organization>IANA</organization>
    </author>
  </front>
</reference>

<reference anchor="IANA.smi-numbers" target="https://www.iana.org/assignments/smi-numbers">
  <front>
    <title>Structure of Management Information (SMI) Numbers (MIB Module Registrations)</title>
    <author>
      <organization>IANA</organization>
    </author>
  </front>
</reference>




    </references>

    <references title='Informative References' anchor="sec-informative-references">



<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="STD96">
  <front>
    <title>CBOR Object Signing and Encryption (COSE): Structures and Process</title>
    <author fullname="J. Schaad" initials="J." surname="Schaad"/>
    <date month="August" year="2022"/>
    <abstract>
      <t>Concise Binary Object Representation (CBOR) is a data format designed for small code size and small message size. There is a need to be able to define basic security services for this data format. This document defines the CBOR Object Signing and Encryption (COSE) protocol. This specification describes how to create and process signatures, message authentication codes, and encryption using CBOR for serialization. This specification additionally describes how to represent cryptographic keys using CBOR.</t>
      <t>This document, along with RFC 9053, obsoletes RFC 8152.</t>
    </abstract>
  </front>
  <seriesInfo name="STD" value="96"/>
  <seriesInfo name="RFC" value="9052"/>
  <seriesInfo name="DOI" value="10.17487/RFC9052"/>
</reference>

<reference anchor="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>Mediatek USA</organization>
      </author>
      <author fullname="Jeremy O&#x27;Donoghue" initials="J." surname="O&#x27;Donoghue">
         <organization>Qualcomm Technologies Inc.</organization>
      </author>
      <author fullname="Carl Wallace" initials="C." surname="Wallace">
         <organization>Red Hound Software, Inc.</organization>
      </author>
      <date day="6" month="September" year="2024"/>
      <abstract>
	 <t>   An Entity Attestation Token (EAT) provides an attested claims set
   that describes state and characteristics of an entity, a device like
   a smartphone, IoT device, network equipment or such.  This claims set
   is used by a relying party, server or service to determine the type
   and degree of trust placed in the entity.

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

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-ietf-rats-eat-31"/>
   
</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>Linaro</organization>
      </author>
      <date day="10" month="October" year="2024"/>
      <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-11"/>
   
</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>Linaro</organization>
      </author>
      <author fullname="Vincent Scarlata" initials="V." surname="Scarlata">
         <organization>Intel</organization>
      </author>
      <date day="2" month="September" year="2024"/>
      <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-07"/>
   
</reference>


<reference anchor="I-D.ietf-rats-uccs">
   <front>
      <title>A CBOR Tag for Unprotected CWT Claims Sets</title>
      <author fullname="Henk Birkholz" initials="H." surname="Birkholz">
         <organization>Fraunhofer SIT</organization>
      </author>
      <author fullname="Jeremy O&#x27;Donoghue" initials="J." surname="O&#x27;Donoghue">
         <organization>Qualcomm Technologies Inc.</organization>
      </author>
      <author fullname="Nancy Cam-Winget" initials="N." surname="Cam-Winget">
         <organization>Cisco Systems</organization>
      </author>
      <author fullname="Carsten Bormann" initials="C." surname="Bormann">
         <organization>Universität Bremen TZI</organization>
      </author>
      <date day="4" month="July" year="2024"/>
      <abstract>
	 <t>   When transported over secure channels, CBOR Web Token (CWT, RFC 8392)
   Claims Sets may not need the protection afforded by wrapping them
   into COSE, as is required for a true CWT.  This specification defines
   a CBOR tag for such unprotected CWT Claims Sets (UCCS) and discusses
   conditions for its proper use.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-ietf-rats-uccs-10"/>
   
</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>
      <author fullname="Arto Niemi" initials="A." surname="Niemi">
         <organization>Huawei</organization>
      </author>
      <author fullname="Thomas Fossati" initials="T." surname="Fossati">
         <organization>Linaro</organization>
      </author>
      <date day="8" month="July" year="2024"/>
      <abstract>
	 <t>   The TLS handshake protocol allows authentication of one or both peers
   using static, long-term credentials.  In some cases, it is also
   desirable to ensure that the peer runtime environment is in a secure
   state.  Such an assurance can be achieved using attestation which is
   a process by which an entity produces evidence about itself that
   another party can use to appraise whether that entity is found in a
   secure state.  This document describes a series of protocol
   extensions to the TLS 1.3 handshake that enables the binding of the
   TLS authentication key to a remote attestation session.  This enables
   an entity capable of producing attestation evidence, such as a
   confidential workload running in a Trusted Execution Environment
   (TEE), or an IoT device that is trying to authenticate itself to a
   network access point, to present a more comprehensive set of security
   metrics to its peer.  These extensions have been designed to allow
   the peers to use any attestation technology, in any remote
   attestation topology, and mutually.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-fossati-tls-attestation-07"/>
   
</reference>


<reference anchor="I-D.ietf-lamps-csr-attestation">
   <front>
      <title>Use of Remote Attestation with Certification Signing Requests</title>
      <author fullname="Mike Ounsworth" initials="M." surname="Ounsworth">
         <organization>Entrust Limited</organization>
      </author>
      <author fullname="Hannes Tschofenig" initials="H." surname="Tschofenig">
         <organization>Siemens</organization>
      </author>
      <author fullname="Henk Birkholz" initials="H." surname="Birkholz">
         <organization>Fraunhofer SIT</organization>
      </author>
      <author fullname="Monty Wiseman" initials="M." surname="Wiseman">
         <organization>Beyond Identity</organization>
      </author>
      <author fullname="Ned Smith" initials="N." surname="Smith">
         <organization>Intel Corporation</organization>
      </author>
      <date day="12" month="October" year="2024"/>
      <abstract>
	 <t>   A PKI end entity requesting a certificate from a Certification
   Authority (CA) may wish to offer trustworthy claims about the
   platform generating the certification request and the environment
   associated with the corresponding private key, such as whether the
   private key resides on a hardware security module.

   This specification defines an attribute and an extension that allow
   for conveyance of Evidence in Certificate Signing Requests (CSRs)
   such as PKCS#10 or Certificate Request Message Format (CRMF) payloads
   which provides an elegant and automatable mechanism for transporting
   Evidence to a Certification Authority.

   Including Evidence along with a CSR can help to improve the
   assessment of the security posture for the private key, and can help
   the Certification Authority to assess whether it satisfies the
   requested certificate profile.  These Evidence Claims can include
   information about the hardware component&#x27;s manufacturer, the version
   of installed or running firmware, the version of software installed
   or running in layers above the firmware, or the presence of hardware
   components providing specific protection capabilities or shielded
   locations (e.g., to protect keys).

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-ietf-lamps-csr-attestation-12"/>
   
</reference>


<reference anchor="I-D.ietf-rats-corim">
   <front>
      <title>Concise Reference Integrity Manifest</title>
      <author fullname="Henk Birkholz" initials="H." surname="Birkholz">
         <organization>Fraunhofer SIT</organization>
      </author>
      <author fullname="Thomas Fossati" initials="T." surname="Fossati">
         <organization>Linaro</organization>
      </author>
      <author fullname="Yogesh Deshpande" initials="Y." surname="Deshpande">
         <organization>arm</organization>
      </author>
      <author fullname="Ned Smith" initials="N." surname="Smith">
         <organization>Intel</organization>
      </author>
      <author fullname="Wei Pan" initials="W." surname="Pan">
         <organization>Huawei Technologies</organization>
      </author>
      <date day="18" month="October" year="2024"/>
      <abstract>
	 <t>   Remote Attestation Procedures (RATS) enable Relying Parties to assess
   the trustworthiness of a remote Attester and therefore to decide
   whether or not to engage in secure interactions with it.  Evidence
   about trustworthiness can be rather complex and it is deemed
   unrealistic that every Relying Party is capable of the appraisal of
   Evidence.  Therefore that burden is typically offloaded to a
   Verifier.  In order to conduct Evidence appraisal, a Verifier
   requires not only fresh Evidence from an Attester, but also trusted
   Endorsements and Reference Values from Endorsers and Reference Value
   Providers, such as manufacturers, distributors, or device owners.
   This document specifies the information elements for representing
   Endorsements and Reference Values in CBOR format.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-ietf-rats-corim-06"/>
   
</reference>


<reference anchor="DICE-arch" target="https://trustedcomputinggroup.org/wp-content/uploads/DICE-Attestation-Architecture-Version-1.1-Revision-18_pub.pdf">
  <front>
    <title>DICE Attestation Architecture</title>
    <author >
      <organization>Trusted Computing Group</organization>
    </author>
    <date year="2024" month="January"/>
  </front>
</reference>



<reference anchor="I-D.bormann-cbor-draft-numbers">
   <front>
      <title>Managing CBOR codepoints in Internet-Drafts</title>
      <author fullname="Carsten Bormann" initials="C." surname="Bormann">
         <organization>Universität Bremen TZI</organization>
      </author>
      <date day="29" month="August" year="2024"/>
      <abstract>
	 <t>   CBOR-based protocols often make use of numbers allocated in a
   registry.  During development of the protocols, those numbers may not
   yet be available.  This impedes the generation of data models and
   examples that actually can be used by tools.

   This short draft proposes a common way to handle these situations,
   without any changes to existing tools.  Also, in conjunction with the
   application-oriented EDN literal e&#x27;&#x27;, a further reduction in
   editorial processing of CBOR examples around the time of approval can
   be achieved.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-bormann-cbor-draft-numbers-04"/>
   
</reference>




    </references>


<?line 1003?>

<section anchor="collected-cddl"><name>Collected CDDL</name>

<figure><sourcecode type="cddl"><![CDATA[
start = cmw

cmw = json-CMW / cbor-CMW

json-CMW = json-record / json-collection
cbor-CMW = cbor-record / cbor-collection / $cbor-tag

json-record = [
  type: media-type
  value: base64url-string
  ? ind: uint .bits cm-type
]

cbor-record = [
  type: coap-content-format-type / media-type
  value: bytes
  ? ind: uint .bits cm-type
]

cbor-tag<tn, $fmt> = #6.<tn>(bytes .cbor $fmt)

json-collection = {
  ? "__cmwc_t": ~uri / oid
  + &(label: text) => json-CMW / c2j-tunnel
}

cbor-collection = {
  ? "__cmwc_t": ~uri / oid
  + &(label: (int / text)) => cbor-CMW / j2c-tunnel
}

c2j-tunnel = [ "#cmw-c2j-tunnel", base64url-string ]
j2c-tunnel = [ "#cmw-j2c-tunnel", bytes ]

media-type = text .abnf ("Content-Type" .cat Content-Type-ABNF)
base64url-string = text .regexp "[A-Za-z0-9_-]+"

cm-type = &(
  reference-values: 0
  endorsements: 1
  evidence: 2
  attestation-results: 3
)

coap-content-format-type = uint .size 2

oid = text .regexp "([0-2])((\\.0)|(\\.[1-9][0-9]*))*"

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></figure>

</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 CMW record or CBOR tag forms.
When using CMW collection, the preconditions apply for each entry in the collection.</t>

<figure title="How To Create a CMW" anchor="fig-howto-cmw"><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="168" 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
    .--------------------------------------.
   /                 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"></eref>.</t>

<t><cref anchor="rfced_2">RFC Editor:</cref> please remove before publication.</t>

</section>
<section numbered="false" anchor="acknowledgments"><name>Acknowledgments</name>

<t>The authors would like to thank
Brian Campbell,
Carl Wallace,
Carsten Bormann,
Dionna Glaze,
<contact fullname="Ionuț Mihalcea"/>,
Michael B. Jones,
Mohit Sethi,
Russ Housley,
and
Tom Jones
for their reviews and suggestions.</t>

<t>The definition of a CMW collection has been modelled on a proposal originally made by Simon Frost for an EAT-based Evidence collection type.  The CMW collection intentionally attains binary compatibility with Simon's design and aims at superseding it by also generalizing on the allowed Evidence formats.</t>

</section>

    <section anchor="contributors" numbered="false" toc="include" removeInRFC="false">
        <name>Contributors</name>
    <contact initials="L." surname="Lundblade" fullname="Laurence Lundblade">
      <organization>Security Theory LLC</organization>
      <address>
        <email>lgl@securitytheory.com</email>
      </address>
    </contact>
<t>Laurence made significant contributions to enhancing the security requirements and considerations for CMW collections.</t>

    </section>

  </back>

<!-- ##markdown-source:
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
iyrXoq/+scgitaHSaEKvviAmk8HWZ00Ss5jcCJB6Q417LzW6EpcpUsZvbL0J
XeyGdMK9cGPSy8veuOxlWTZx1v63SSfVXV/qaj05OOCaYvTuou0JxjBYwO+L
Ect4KkTw2+PtVDNBsDKDNsc00j4McO76oB3E+nSw6wYOLnNSiAYJ1juYJ9db
QObw1tDaGIs8KD8r5WoQv4HUCo2XnVElXcNW//CcEV6w3Y/hwlV2ogtqtSnc
EICU+WI6jcQ/Mk9njtNKW8FTCsRJLMyEm6yFlGPdMZgKJcfMXGcr5+ykH+Z0
db3GZKPrY0ZofbsaU+KABQ5hqG8MTCCwZVvsuwAONBrD3tpmbl2cAlkzI96f
rNJZ5KywY3/A0giYp5pJT9BsQCKsiA2YfhbO4wAia+LM0Oqxr7TDFM2WOCM4
OWmlBrXGvFLA3FX5fqLnKrTHRUhZ+xU4abW7rmsM8TNgqyfCGRitZr7OfjaC
FOVwDW2tKdNWtNK+CdnzLIytlxNsEUNExqWTfOh5+Kl/uSry7U6v03X8lNn7
tmW2IgFBb8RbWXbD9OC8cB0JRRoj3nYRxYUPnDTzAWxuIlpWHImLSNx9WGoA
1qaO9tFt0K6XZdwIBteh1kMuxSN9S1T5Go66WC7WVsKVplqqrVwQACGZrmst
+A0x6HSKiL172R1Z+5bxlsHkgRpUStvDmAFihS2E6MXlTNuJMLU/oRh79ZD8
T0KEzw5FRt2ifeD+BIbGPw8xVgYNXnaUnZb4mRnnylHNYs/yFDHWCaxVAdxl
J5arz8Ub1YyGQeDqZ9teD36mcJMr0rk/gUWVOJeFdnw3fp1M7cXnyer+RmlR
pDOfeFbrololF9jAC6GkwIuJHL9XYEGx7oiHaRMte6UHNxOiNQmJAZlyLMWE
+sPLFVRII3xNrr6rsjRmmlhSMcfUzR7jt8YVoKxHwlcB62A5cc3eaYbfQJ2o
3pyIN48X5Q32sifa3fx9nbKOuWDbnGYSMz5IZgGIiKuloV6sZzeTfnQegQpd
Oz7fRF8Z91gnR3WiibpazAKZeBZeiStaq11nebRzj3ZvqhAsQ5IcU0m4Qkpa
UQ9oLwYg9hKVk0dZWY3xXXv4EjV/dsEs/LMLZw0vmPXQahHNnJfygjwQds0V
GCwXb/anoM21ttHiuEuY/FdYbRucpLlRESYybaDTMr7LJYK4WX+edK6XeFWb
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
Ct5trotGqC8hfnOnls/AScYg2WHvsZ3BQ9aUe5VLCXTGBM+zD/V77ai9oWop
5Dx72YC+icsWrF9psKHstV3ev8qNt596O9y/wi0S/+x8vl65GFSUFbedYJRM
VbN6gToBNigqp4E/uP/4Qctb6t20QtsnfD1XjecD/++B/+umf/Cz/+KLBvaB
6e6zJme5NMyXqOL7apOeOv7G9KSLJ1pT2VeISK1mSGPVZF9tebToaxHvnsYq
vnOu53m0KEuDbT7f9HsvWs3mTz91Nltv8d/zrn/wgh4fvPi81fq84XlLQKBW
7lYfK0XP6mHpnzfV5+enqvFlg/8vWfyWV37nv3s633fjXkM19fcN9csCV14Z
MNNM5YX9u6e6nxfwN/L4033R+LcGNdC4w59/4s9/58/P+POnu/zf5ybeyf7R
wy/4lc+fHf78D/78mT+H/PmWP/+xovrRyTcnF/T/4OHptwOvOgMa17+/7vUA
l18mvAx2jvMgIrDwa0+/KydDsNvAq678t+Xv3OdvO0f+3rHntiBz/wlA5Erf
H347OAPk6ktzTwm/gO+NDT4y7AOCs313D/5ozF9SF/zSLbnitVd7sFzEl7zl
n3d7u/U3WMW83oIuTw0xTA2Ml4px5aViWKcSF9ZHdmsk+cxZfLPsa3q6J/jx
JcziGbx1MwQAsGZeRjzhGxBwP8T7A8q/1ELLrdybERYshr+n1y9qvQZTbKQ4
oD7n8SL/5E7tBQYTIwDxNTGvPU9AKGhFCLe16W8dVBrZJCb0wDt9cu5LUSnW
rRfrcjFZGNvadtffGTAi73b9vQEVG1Cxv9OTgP7/1SMMtlsAeL/pCTqXT6ja
caWfOe0zsXIOzg9PTlQzSWkjtLy7ngnNOdPyiXELf5rrdFs5zAlI8n6V3hQp
Mr4RR2ScyfKKVc2EcSBpt5Odlz1dPU4vXCZidHLNGucXneBpllcv+q55kold
wu1D7o60Vw5VjKSVS7zAjQVBfn1pUKBTU7V3Ks86uhjEGugUjgcXG5JZ5y0/
0wIdiQ2mXKlwaOYtfvKW7UzyvCz3hb0b2jx5K0og+WWGN6RBfOGbD9+/y8/M
k7suIr+1H9UntTId05T8fYEZ18q85YLO7PhhWabjN6kehpIYqUhG1bQAM5VU
XbzVzVeL8TSdWfI8VxSrTMx5s6bY9QeK1da+Y9/YF7XpwAy6KFJoKMSp1z5+
S3KSDqmqd/NWZ34SDFduHfNkRR3shOf6WusXbh28WFnHAPGLEoQOdPnp3Y+E
55oOzC8Hbk3+9wlN/zFLhcVaUWxDlWQERAMPKsWu8W9Yb+uufsPFlnpa/ceY
saHqf9xr/Q9n61Knq//uVi7VsPT2Q1dqfJveqItUHbL3uzixsg1NPZkTFT3J
84VJwMY6NBJ8SyVeiiIRFyljnsp4sUou9aDwVgchFVe0K3JisfOcNoc2eE+L
UV4zeEs/lUx91eRxmk1wjLvspjoYI/wzDieXkor9TV9k83ByrzEN4jw0l4UE
rNQzqYsl9RJfaZa88u5nEU3mMJjNSe6K295hkMXqGW1k4iz4F5G7RN2XPH9t
74g6TwL1TRz8Sq/fvHlzkiaL//0/1KPoKojHYfDu3bu29ygi5oNEq/sd9V2a
hDk9Sa+iAuEfV1HbO1vkufoW13WGtxxP6l2kMynpTW1YoUT2if5ZO2FGcnGJ
RBu4V6UseSjb6Eq53mkpUtW57pWj8Ea36jzCTcMPsjTXFyRxpkud3f94RWwv
TiZtjVgKgC4kZyJ3AG98zu4mloPxcqpU7vpurkMoxA0K4TK4qnOBQK/QXHmE
fJvwFJe7l3V2Zh30Za6NPK5dz8t4hRjMF32FrGB9+skoR7+fWDzvW+TrsxPz
MbERadb3/i8Q4E5aiqUAAA==

-->

</rfc>

