<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.19 (Ruby 3.3.4) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-mahy-mls-ratchet-tree-options-01" category="info" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.23.2 -->
  <front>
    <title abbrev="Ratchet tree options in MLS">Ways to convey the Ratchet Tree in Messaging Layer Security</title>
    <seriesInfo name="Internet-Draft" value="draft-mahy-mls-ratchet-tree-options-01"/>
    <author initials="R." surname="Mahy" fullname="Rohan Mahy">
      <organization>Rohan Mahy Consulting Services</organization>
      <address>
        <email>rohan.ietf@gmail.com</email>
      </address>
    </author>
    <date year="2024" month="October" day="20"/>
    <area>sec</area>
    <workgroup>MLS</workgroup>
    <keyword>ratchet_tree</keyword>
    <keyword>ratchet tree</keyword>
    <keyword>GroupInfo</keyword>
    <keyword>PartialGroupInfo</keyword>
    <abstract>
      <?line 39?>

<t>The Messaging Layer Security (MLS) protocol needs to share its
<tt>ratchet_tree</tt> object to welcome new clients into a group and in
external joins. While the protocol only defines a mechanism for sharing
the entire tree, most implementations use various optimizations to avoid
sending this structure repeatedly in large groups. This document describes
a way to convey these improvements in a standardized way and to
convey the parts of a GroupInfo object that are not visible to an
intermediary server.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-mahy-mls-ratchet-tree-options/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        MLS Working Group mailing list (<eref target="mailto:mls@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/mls/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/mls/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/rohanmahy/mls-ratchet-tree-options/"/>.</t>
    </note>
  </front>
  <middle>
    <?line 50?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>In the Messaging Layer Security (MLS) protocol <xref target="RFC9420"/>, the members of
a group are organized into a ratchet tree, the full representation of which
is described in the <tt>ratchet_tree</tt> extension. The protocol specifies that
the full <tt>ratchet_tree</tt> can be included in Welcome messages or shared
externally, but describes no concrete way to convey it externally.
Likewise, when non-member clients want to join a group, they can do so using
an external commit. They require the GroupInfo and the <tt>ratchet_tree</tt>.</t>
      <t>Many MLS implementations allow external commits to get the GroupInfo from a
central server. In the MIMI architecture <xref target="I-D.ietf-mimi-arch"/>, this server
is called the hub, and for brevity we will use that term generically to refer
to any central server that provides either GroupInfo or <tt>ratchet_tree</tt>
objects to new members (i.e. welcomed clients or externally joining clients).</t>
      <t>When all handshake messages (commits and proposals) are sent as
<tt>PublicMessage</tt>s (or <tt>SemiPrivateMessage</tt>s
<xref target="I-D.mahy-mls-semiprivatemessage"/>),
the hub can construct its own version of the <tt>ratchet_tree</tt> and most of the
GroupInfo object as proposals and commits arrive.</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>This document assumes familiarity with terms and structs from the MLS specification (<xref target="RFC9420"/>).</t>
    </section>
    <section anchor="conveying-the-ratchet-tree">
      <name>Conveying the Ratchet Tree</name>
      <t>The ratchet tree can be conveyed inline in its entirety. Alternatively,
this document describes how it can be referred to via an HTTPS URI, or
signaled that it is communicated out-of-band or reconstructed by the distribution service.</t>
      <sourcecode type="tls"><![CDATA[
enum {
  reserved(0),
  full(1),
  httpsUri(2),
  outOfBand(3),
  distributionService(4),
  (255)
} RatchetTreeRepresentation;

struct {
  RatchetTreeRepresentation representation;
  select (representation) {
    case full:
      Node ratchet_tree<V>;
    case httpsUrl:
      /* an HTTPS URL */
      opaque ratchet_tree_url<V>;
      opaque tree_signature<V>;
    case outOfBand:
      opaque tree_signature<V>;
    case distributionService:
      struct {};
  };
} RatchetTreeOption;
]]></sourcecode>
      <ul spacing="normal">
        <li>
          <t><tt>full</tt> indicates that the complete <tt>ratchet_tree</tt> extension is included in
the RatchetTreeOption object.</t>
        </li>
        <li>
          <t><tt>httpsUri</tt> indicates that the <tt>ratchet_tree</tt> can be downloaded from a
URI using the <tt>https:</tt> scheme.</t>
        </li>
        <li>
          <t><tt>outOfBand</tt> indicates that the <tt>ratchet_tree</tt> is communicated or
reconstructed via an unspecified out-of-band application protocol.</t>
        </li>
        <li>
          <t><tt>distributionService</tt> indicates that the <tt>ratchet_tree</tt> is reconstructed
by the Distribution Service from the handshake in the group. This is not
possible any handshake messages are sent as an MLS <tt>PrivateMessage</tt>.</t>
        </li>
      </ul>
      <t><strong>TODO</strong>: Add GroupContext extension to configure the acceptable domain(s)
of the <tt>httpsUri</tt>.</t>
    </section>
    <section anchor="conveying-the-groupinfo">
      <name>Conveying the GroupInfo</name>
      <t>In some systems the GroupInfo is sent to a hub with a full <tt>ratchet_tree</tt>
extension always included with every commit. This is used in systems where
the hub may or may not track the membership of the group, but does not keep
the entire <tt>ratchet_tree</tt> data structure. As group size increases, the size
of the <tt>ratchet_tree</tt> extension in the GroupInfo scales roughly linearly.
Even using <tt>basic</tt> credentials, this object gets large quickly. If <tt>x509</tt>
credentials are used, the size increases much more rapidly, and if a
post-quantum ciphersuite (for example <xref target="I-D.mahy-mls-xwing"/>) is used, the
size will increase even more rapidly with each new member.</t>
      <t>In some systems that require unencrypted handshake messages, the hub tracks
commits as they are sent and constructs changes to the <tt>ratchet_tree</tt> as
each handshake is accepted. The hub could also recreate most of the fields
of a GroupInfo, with the exception of the GroupInfo signature and the
GroupInfo extensions, by inspecting those same unencrypted handshake
messages . This document defines a <tt>PartialGroupInfo</tt> struct that contains
these missing fields. <tt>PartialGroupInfo</tt> can be included with a commit and
any referenced proposals to reconstruct a GroupInfo and <tt>ratchet_tree</tt> from
the GroupInfo and <tt>ratchet_tree</tt> included in the previous epoch.</t>
      <sourcecode type="tls"><![CDATA[
enum {
  no_ratchet_tree(0),
  present(1),
  removed(2),
  added(3),
  (255)
} RatchetTreePresence;

struct {
  RatchetTreePresence ratchet_tree_presence;
  /* GroupInfo extensions excluding ratchet_tree */
  Extension group_info_extensions<V>;
  opaque signature<V>;
} PartialGroupInfo;
]]></sourcecode>
      <t>The value of <tt>ratchet_tree_presence</tt> is defined as follows:</t>
      <ul spacing="normal">
        <li>
          <t><tt>no_ratchet_tree</tt>: the <tt>ratchet_tree</tt> extension appears in neither the
current nor previous epochs.</t>
        </li>
        <li>
          <t><tt>present</tt>: there is a <tt>ratchet_tree</tt> extension in both the current and
previous epochs.</t>
        </li>
        <li>
          <t><tt>removed</tt>: there was a <tt>ratchet_tree</tt> extension in the previous epoch
but none in the current epoch.</t>
        </li>
        <li>
          <t><tt>added</tt>: there is a <tt>ratchet_tree</tt> extension in the current epoch
but there was none in the previous epoch.</t>
        </li>
      </ul>
      <t>The <tt>group_info_extensions</tt> object is the list of GroupInfo
extensions, omitting any <tt>ratchet_tree</tt> extension (if present). The only
other GroupInfo extension defined in the base protocol is <tt>external_pub</tt>,
the public key of the external commiter. The <tt>group_info_extensions</tt> is
often an empty list.</t>
      <t>The <tt>signature</tt> in the PartialGroupInfo is the signature produced by the
committer (represented by its leaf index in the GroupInfo as the <tt>signer</tt>).</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>TODO Security</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document has no IANA actions.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC9420">
          <front>
            <title>The Messaging Layer Security (MLS) Protocol</title>
            <author fullname="R. Barnes" initials="R." surname="Barnes"/>
            <author fullname="B. Beurdouche" initials="B." surname="Beurdouche"/>
            <author fullname="R. Robert" initials="R." surname="Robert"/>
            <author fullname="J. Millican" initials="J." surname="Millican"/>
            <author fullname="E. Omara" initials="E." surname="Omara"/>
            <author fullname="K. Cohn-Gordon" initials="K." surname="Cohn-Gordon"/>
            <date month="July" year="2023"/>
            <abstract>
              <t>Messaging applications are increasingly making use of end-to-end security mechanisms to ensure that messages are only accessible to the communicating endpoints, and not to any servers involved in delivering messages. Establishing keys to provide such protections is challenging for group chat settings, in which more than two clients need to agree on a key but may not be online at the same time. In this document, we specify a key establishment protocol that provides efficient asynchronous group key establishment with forward secrecy (FS) and post-compromise security (PCS) for groups in size ranging from two to thousands.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9420"/>
          <seriesInfo name="DOI" value="10.17487/RFC9420"/>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="I-D.ietf-mimi-arch">
          <front>
            <title>An Architecture for More Instant Messaging Interoperability (MIMI)</title>
            <author fullname="Richard Barnes" initials="R." surname="Barnes">
              <organization>Cisco</organization>
            </author>
            <date day="2" month="April" year="2024"/>
            <abstract>
              <t>   The More Instant Messaging Interoperability (MIMI) working group is
   defining a suite of protocols that allow messaging providers to
   interoperate with one another.  This document lays out an overall
   architecture enumerating the MIMI protocols and how they work
   together to enable an overall messaging experience.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-mimi-arch-00"/>
        </reference>
        <reference anchor="I-D.mahy-mls-semiprivatemessage">
          <front>
            <title>Semi-Private Messages in the Messaging Layer Security (MLS) Protocol</title>
            <author fullname="Rohan Mahy" initials="R." surname="Mahy">
              <organization>Rohan Mahy Consulting Services</organization>
            </author>
            <date day="25" month="August" year="2024"/>
            <abstract>
              <t>   This document defines a SemiPrivateMessage for the Messaging Layer
   Security (MLS) protocol.  It allows members to share otherwise
   private commits and proposals with a designated list of external
   receivers rather than send these handshakes in a PublicMessage.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-mahy-mls-semiprivatemessage-03"/>
        </reference>
        <reference anchor="I-D.mahy-mls-xwing">
          <front>
            <title>Messaging Layer Security Ciphersuite using XWing Key Exchange Mechanism</title>
            <author fullname="Rohan Mahy" initials="R." surname="Mahy">
              <organization>Unaffiliated</organization>
            </author>
            <date day="4" month="March" year="2024"/>
            <abstract>
              <t>   This document registers a new Messaging Layer Security (MLS)
   ciphersuite using the X-Wing hybrid post-quantum resistant /
   traditional (PQ/T) Key Exchange Mechanism (KEM).

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-mahy-mls-xwing-00"/>
        </reference>
        <reference anchor="I-D.robert-mimi-delivery-service">
          <front>
            <title>MIMI Delivery Service</title>
            <author fullname="Raphael Robert" initials="R." surname="Robert">
              <organization>Phoenix R&amp;D</organization>
            </author>
            <author fullname="Konrad Kohbrok" initials="K." surname="Kohbrok">
              <organization>Phoenix R&amp;D</organization>
            </author>
            <date day="6" month="November" year="2023"/>
            <abstract>
              <t>   This document describes the MIMI Delivery Service.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-robert-mimi-delivery-service-06"/>
        </reference>
      </references>
    </references>
    <?line 214?>

<section anchor="change-log">
      <name>Change Log</name>
      <section anchor="changes-since-00">
        <name>Changes since -00</name>
        <ul spacing="normal">
          <li>
            <t>Removed ratchet tree patch options and notation.</t>
          </li>
          <li>
            <t>Added <tt>ratchet_tree_presence</tt> options for out-of-band, via HTTPS, and
reconstructed by the delivery service.</t>
          </li>
        </ul>
      </section>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The PartialGroupInfo was first introduced in
<xref target="I-D.robert-mimi-delivery-service"/>.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
NBH/A2lDdvm3HQAA

-->

</rfc>
