<?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.29 (Ruby 3.4.1) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-mahy-mls-ratchet-tree-options-03" category="info" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.31.0 -->
  <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-03"/>
    <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="2025" month="October" day="16"/>
    <area>sec</area>
    <workgroup>MLS</workgroup>
    <keyword>ratchet_tree</keyword>
    <keyword>GroupInfo</keyword>
    <keyword>PartialGroupInfo</keyword>
    <abstract>
      <?line 37?>

<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 48?>

<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="RFC9750"/>, 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 if any handshake messages are sent as an MLS <tt>PrivateMessage</tt>.</t>
        </li>
      </ul>
      <section anchor="conveying-the-ratchet-tree-using-https">
        <name>Conveying the ratchet tree using HTTPS</name>
        <t>This document defines a new MLS GroupContext extension <tt>ratchet_tree_source_domains</tt>.
When present, it contains a list of at least one domain name.</t>
        <sourcecode type="tls"><![CDATA[
struct {
    opaque domain<V>;
} Domain;

struct {
    Domain domains<V>
} DomainList;

DomainList ratchet_tree_source_domains;
]]></sourcecode>
        <t>When this extension is included in the GroupContext of a group, the URL where the <tt>ratchet_tree</tt> is fetched <bcp14>MUST</bcp14> come from one of the domains in the <tt>ratchet_tree_source_domains.domains</tt> list.</t>
      </section>
    </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.ietf-mls-pq-ciphersuites"/>) 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>
      <section anchor="ratchettreesourcedomains-mls-extension-type">
        <name>ratchet_tree_source_domains MLS Extension Type</name>
        <t>This document registers the <tt>ratchet_tree_source_domains</tt> Extension Type, using the template below:</t>
        <ul spacing="normal">
          <li>
            <t>Value: TBD1 (new assignment by IANA)</t>
          </li>
          <li>
            <t>Name: ratchet_tree_source_domains</t>
          </li>
          <li>
            <t>Messages: GC</t>
          </li>
          <li>
            <t>Recommended: Y</t>
          </li>
          <li>
            <t>Reference: RFC XXXX</t>
          </li>
        </ul>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC9420" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9420.xml">
          <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" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
          <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" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml">
          <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="RFC9750">
          <front>
            <title>The Messaging Layer Security (MLS) Architecture</title>
            <author fullname="B. Beurdouche" initials="B." surname="Beurdouche"/>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <author fullname="E. Omara" initials="E." surname="Omara"/>
            <author fullname="S. Inguva" initials="S." surname="Inguva"/>
            <author fullname="A. Duric" initials="A." surname="Duric"/>
            <date month="April" year="2025"/>
            <abstract>
              <t>The Messaging Layer Security (MLS) protocol (RFC 9420) provides a group key agreement protocol for messaging applications. MLS is designed to protect against eavesdropping, tampering, and message forgery, and to provide forward secrecy (FS) and post-compromise security (PCS).</t>
              <t>This document describes the architecture for using MLS in a general secure group messaging infrastructure and defines the security goals for MLS. It provides guidance on building a group messaging system and discusses security and privacy trade-offs offered by multiple security mechanisms that are part of the MLS protocol (e.g., frequency of public encryption key rotation). The document also provides guidance for parts of the infrastructure that are not standardized by MLS and are instead left to the application.</t>
              <t>While the recommendations of this document are not mandatory to follow in order to interoperate at the protocol level, they affect the overall security guarantees that are achieved by a messaging application. This is especially true in the case of active adversaries that are able to compromise clients, the Delivery Service (DS), or the Authentication Service (AS).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9750"/>
          <seriesInfo name="DOI" value="10.17487/RFC9750"/>
        </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="21" month="April" year="2025"/>
            <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-05"/>
        </reference>
        <reference anchor="I-D.ietf-mls-pq-ciphersuites">
          <front>
            <title>ML-KEM and Hybrid Cipher Suites for Messaging Layer Security</title>
            <author fullname="Rohan Mahy" initials="R." surname="Mahy">
         </author>
            <author fullname="Richard Barnes" initials="R." surname="Barnes">
              <organization>Cisco</organization>
            </author>
            <date day="25" month="July" year="2025"/>
            <abstract>
              <t>   This document registers new cipher suites for Messaging Layer
   Security (MLS) based on "post-quantum" algorithms, which are intended
   to be resilient to attack by quantum computers.  These cipher suites
   are constructed using the new Module-Lattice Key Encapsulation
   Mechanism (ML-KEM), optionally in combination with traditional
   elliptic curve KEMs, together with appropriate authenticated
   encryption, hash, and signature algorithms.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-mls-pq-ciphersuites-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 236?>

<section anchor="change-log">
      <name>Change Log</name>
      <section anchor="changes-between-01-and-02">
        <name>Changes between -01 and -02</name>
        <ul spacing="normal">
          <li>
            <t>Added ratchet_tree_source_domains extension</t>
          </li>
        </ul>
      </section>
      <section anchor="changes-between-00-and-01">
        <name>Changes between -00 and -01</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:
H4sIAAAAAAAAA41Z7XLbthL9j6fAdf/YHUu202TaqL1tnThpPWPHubbT3E6n
Y0EkZKEhCQYgragZ91n6LPfJ7tkF+CXJafIjFkEssNiPs2fB0WgkKlNleiLf
qpWXlZWJLe70SlYLLS9VlSx0Ja+d1tIU8lx7r25NcSvP1Eo7eaWT2plqJdRs
5vTdpBWoSMCWlbGFZ8GzK5HapFA5NkqdmlejXC1WozzzIxdkRiQzijKjw6+E
Kd0EC9W+enR4+PTwkfD1LDfe4321KrHO6Yvrl1J+IVXm7UTumCLVpcZ/RbWz
L3dOj5/hj3X4dXn9ckcsrXt362xdTlgb5bSaSK8TkahK31q3mkDRuRXv9ApT
04mQIxlVuyHV6Pknkj+lWXh4rVxlVNaNCV+pIr1RmS2g3Up7UZqJ/K2yyb70
1mGRucevVU4/fhfiThe1xj6yp5aU4WxvoS3ZmVfHaK5MNpEw149GV/OxdbcY
VC5ZTOSiqko/OTigKTRi7vS4mXRAAwczZ5deH0D6gHYz1aKeTaSzC1WQFw4e
8sKB+ELKDObxVbdNEB8nNj/4jBWCtBCqrhbWsVFhZo9IGctzSEIfKUNYXNJq
3SC0V4X5U9E6/ZfyOdats4qsc6XdnUlgaBLQwUasFBvgx1saIU2FKKzLsdQd
7C3Izd2TGI1GUs185VQCRa8R9g+FudyFi/Zk6Sx8ajNZaJ1yyvgFwkmayotp
P2Sm0s7+0ElFU5Y6gyIaMkuZZAZBSomBFyq4XyJ0MCD0h0q7QmXyDws7jeXb
hck0J2O7rS2ylUz13BTaQzzXCU5sfC5xLFYFmguSwCYGepEq+zK3vpImLzOd
Y1yF1Ky9lncQsLXndM2jwflU6s6aVHikFJmiWhgvYaU6qWos6pBr8G0KVZDf
CLxbHQ4Cna9pKtK9pp2gqU+cmcFLSi7Vaggx2B86OXvHWjFWKMl5pFxq/tQp
i5BtKit6yFQi+aDyHLPbBGytvVCVJIcUtpJ3xpsZWRDnKeB6WDfXqVFuheR3
d9qNQwTkJk0zLRDxp0XlbIpjwg5CnBa83+eGxMeP/7p8+fzp40eH9/f7LJnr
fKYd6SpaV0O3GN46baLA9aAzSM7rLCM7O1gpeoxOvFyYZCHIwtGwtAQLrAUf
hVJBcEke6cWPL3Vi5gbBQ5YS7VZr4gkSbkawn2R1GjZ5G4M4Z2tggRhwOm3j
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
vq6MXp4gAAA=

-->

</rfc>
