<?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-ext-commit-pp-00" category="info" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.29.0 -->
  <front>
    <title abbrev="MLS Pending Proposals in External Commits">Including Pending Proposals in External Commits in the Messaging Layer Security protocol</title>
    <seriesInfo name="Internet-Draft" value="draft-mahy-mls-ext-commit-pp-00"/>
    <author initials="R." surname="Mahy" fullname="Rohan Mahy">
      <organization/>
      <address>
        <email>rohan.ietf@gmail.com</email>
      </address>
    </author>
    <date year="2025" month="July" day="06"/>
    <area>Security</area>
    <workgroup>Messaging Layer Security</workgroup>
    <keyword>external commits</keyword>
    <keyword>pending proposals</keyword>
    <abstract>
      <?line 36?>

<t>The Messaging Layer Security (MLS) protocol allows authorized non-members to join a group via external commits, however it disallows most pending proposals in those commits, which causes unfortunate side effects. This document describes an MLS extension to include pending proposal in external commits when the extension is present in a group.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://rohanmahy.github.io/mls-ext-commit-pp/draft-mahy-mls-ext-commit-pp.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-mahy-mls-ext-commit-pp/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Messaging Layer Security 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-ext-commit-pp"/>.</t>
    </note>
  </front>
  <middle>
    <?line 41?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>MLS <xref target="RFC9420"/> allows external commits by authorized clients. The external committer needs a copy of the GroupInfo, either from an existing member or (when supported) from the MLS Distribution Service (DS). The reasoning was that the external committer can't access pending proposals, and that the external committer could not verify them in any case.</t>
      <t>The problem is that two important use cases are negatively impacted when external committers join: leaving a group, and external policy enforcement.</t>
      <t>This document describes an MLS extension, that when in the <tt>required_capabilities</tt> in the GroupContext, requires an external joiner to include any pending proposals by reference in its external commit.
It assumes that the external joiner can get a suitable set of external proposals from whichever party supplies the GroupInfo.</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 relies on many terms and struct names from <xref target="RFC9420"/>.</t>
    </section>
    <section anchor="problem-use-cases">
      <name>Problem Use Cases</name>
      <section anchor="leaving-a-group">
        <name>Leaving a group</name>
        <t>MLS clients cannot leave a group without the assistance of another member of the group. A Remove proposal, or SelfRemove proposal (see <xref section="6.4" sectionFormat="of" target="I-D.ietf-mls-extensions"/>) needs to be committed before it takes effect, but a client cannot commit its own remove, because a committer knows the epoch secret for the newly created epoch.</t>
        <t>Instead, a leaver sends a Remove or SelfRemove proposal and then stays in the group it is trying to leave until it receives a commit showing it has been removed.
The client will not be able to determine the epoch secret of the new group, but it will be able validate the tags of the commit.
If an external commit is accepted by the DS before a Remove proposal is committed, the leaver needs to enter the new epoch and try to leave again.
In practice, this can happen multiple times before the leaver's proposal is finally committed.</t>
        <t>The SelfRemove proposal addresses this problem partially, in that SelfRemove proposals can be included by reference in an external commit, however this does not solve the problem when there are related proposals that should be processed atomically.</t>
        <t>When the leaver wants all the clients of the same "user" identity to leave simultaneously, it has a dilema. It can commit Remove proposals for all the user's other clients, then send a SelfRemove proposal immediately in the new epoch. Alternatively, it can send a bundle a proposals for itself and the user's other clients, but risk that only the SelfRemove proposal is committed (at which point the leaver cannot effect any other changes to the group), or that several epochs pass before all the leaving clients are removed.</t>
        <t>This problem is exacerbated in the More Instant Message Interoperability (MIMI) protocol (<xref target="I-D.ietf-mimi-protocol"/>) since the removal of another client may not be authorized by itself, but would be otherwise acceptable when a user is removing itself completely.</t>
      </section>
      <section anchor="external-policy-enforcer">
        <name>External policy enforcer</name>
        <t>In many architectures, an external policy enforcer can send external proposals to an MLS group.
This could be relatively simple, as in an organization removing a compromised client, or a company removing the clients associated with an employee when she leaves the company.</t>
        <t>In more complicated scenarios, such as in MIMI room policy <xref target="I-D.ietf-mimi-room-policy"/>, the policy enforcer might change the role of a participant to ban them, to prevent them from sending messages, or to remove their moderator privileges.</t>
        <t>If an external commit occurs after the pending external proposals, the commit would usually exclude the pending proposals.
The policy enforcer would have to resend the external proposals in the new epoch.</t>
        <t>A malicious client could try to send an external commit to rejoin the group immediately upon seeing a proposal to lower its privileges.
The DS could refuse the external commit, but the participant would still have legitimate use cases where it may need to rejoin via an external commit.</t>
        <t>A pair of malicious clients, A and B, could collude so if B sees an external proposal removing, banning, or reducing privileges of A, B sends an external commit.
B could potentially delay the policy action against A by several epochs using this approach.</t>
      </section>
    </section>
    <section anchor="mechanism">
      <name>Mechanism</name>
      <t>This document defines the <tt>external_pending_proposals</tt> extension type. When present in the capabilities of a LeafNode it indicates the client's support of the extension. When present in the <tt>required_capabilities</tt> in the GroupContext, it indicates that all clients <bcp14>MUST</bcp14> include all the pending proposals provided to it by the provider of the GroupInfo.</t>
      <t>The <tt>external_pending_proposals</tt> extension type has no contents:</t>
      <sourcecode type="tls"><![CDATA[
struct {
} ExternalPendingProposalsContents;
]]></sourcecode>
      <t>The provider of the GroupInfo is expected to provide all the pending proposals it has received at the point it provides the GroupInfo.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <section anchor="authentication-of-proposals-by-potential-joiner">
        <name>Authentication of Proposals by Potential Joiner</name>
        <t>If the source of the GroupInfo provides an invalid proposal, an external commit using that GroupInfo and proposal list will be rejected by the other group members.
This is effectively a denial of service attack on the client that wants to join the group. However the source of the GroupInfo could more easily not provide the GroupInfo, or provide an invalid one.
This problem could be eliminated if the external joiner can authenticate the request.
This is already the case for most external proposals, which are typically used for policy enforcement.
<xref target="I-D.kohbrok-mls-leaf-operation-intents"/> describes a mechanism by which leavers can prove their intent to leave and, at the time, their membership in an MLS group.</t>
      </section>
      <section anchor="authentication-of-proposals-by-a-policy-enforcing-ds">
        <name>Authentication of Proposals by a policy enforcing DS</name>
        <t>A policy enforcing DS can validate most proposals and commits. A malicious or faulty client can generate an incorrect tag or an invalid UpdatePath without detection by the MLS DS, regardless of this mechanism. Most of the proposal types in <xref target="RFC9420"/> can be validates by a policy enforcing DS, however a proposal that members could determine was invalid, but a DS could not could lead to exactly the same types of problems already observed with faulty commits.</t>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document requests the addition of a new MLS Extension Type under the heading of "Messaging Layer Security".</t>
      <t>RFC EDITOR: Please replace XXXX throughout with the RFC number assigned to this document</t>
      <t>The <tt>external_pending_proposals</tt> MLS Extension Type is used inside GroupContext and LeafNode objects.
When present it indicates support for this extension.</t>
      <ul spacing="normal">
        <li>
          <t>Value: 0x0009 (suggested)</t>
        </li>
        <li>
          <t>Name: external_pending_proposals</t>
        </li>
        <li>
          <t>Message(s): GC, LN : This extension may appear in GroupContext and LeafNode objects</t>
        </li>
        <li>
          <t>Recommended: Y</t>
        </li>
        <li>
          <t>Reference: RFC XXXX</t>
        </li>
      </ul>
    </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>
        <reference anchor="I-D.ietf-mls-extensions">
          <front>
            <title>The Messaging Layer Security (MLS) Extensions</title>
            <author fullname="Raphael Robert" initials="R." surname="Robert">
              <organization>Phoenix R&amp;D</organization>
            </author>
            <date day="3" month="July" year="2025"/>
            <abstract>
              <t>   The Messaging Layer Security (MLS) protocol is an asynchronous group
   authenticated key exchange protocol.  MLS provides a number of
   capabilities to applications, as well as several extension points
   internal to the protocol.  This document provides a consolidated
   application API, guidance for how the protocol's extension points
   should be used, and a few concrete examples of both core protocol
   extensions and uses of the application API.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-mls-extensions-07"/>
        </reference>
        <reference anchor="I-D.ietf-mimi-room-policy">
          <front>
            <title>Room Policy for the More Instant Messaging Interoperability (MIMI) Protocol</title>
            <author fullname="Rohan Mahy" initials="R." surname="Mahy">
              <organization>Rohan Mahy Consulting Services</organization>
            </author>
            <date day="2" month="March" year="2025"/>
            <abstract>
              <t>   This document describes a set of concrete room policies for the More
   Instant Messaging Interoperability (MIMI) Working Group.  It
   describes several independent properties and policy attributes which
   can be combined to model a wide range of chat and multimedia
   conference types.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-mimi-room-policy-01"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="I-D.ietf-mimi-protocol">
          <front>
            <title>More Instant Messaging Interoperability (MIMI) using HTTPS and MLS</title>
            <author fullname="Richard Barnes" initials="R." surname="Barnes">
              <organization>Cisco</organization>
            </author>
            <author fullname="Matthew Hodgson" initials="M." surname="Hodgson">
              <organization>The Matrix.org Foundation C.I.C.</organization>
            </author>
            <author fullname="Konrad Kohbrok" initials="K." surname="Kohbrok">
              <organization>Phoenix R&amp;D</organization>
            </author>
            <author fullname="Rohan Mahy" initials="R." surname="Mahy">
              <organization>Rohan Mahy Consulting Services</organization>
            </author>
            <author fullname="Travis Ralston" initials="T." surname="Ralston">
              <organization>The Matrix.org Foundation C.I.C.</organization>
            </author>
            <author fullname="Raphael Robert" initials="R." surname="Robert">
              <organization>Phoenix R&amp;D</organization>
            </author>
            <date day="3" month="March" year="2025"/>
            <abstract>
              <t>   This document specifies the More Instant Messaging Interoperability
   (MIMI) transport protocol, which allows users of different messaging
   providers to interoperate in group chats (rooms), including to send
   and receive messages, share room policy, and add participants to and
   remove participants from rooms.  MIMI describes messages between
   providers, leaving most aspects of the provider-internal client-
   server communication up to the provider.  MIMI integrates the
   Messaging Layer Security (MLS) protocol to provide end-to-end
   security assurances, including authentication of protocol
   participants, confidentiality of messages exchanged within a room,
   and agreement on the state of the room.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-mimi-protocol-03"/>
        </reference>
        <reference anchor="I-D.kohbrok-mls-leaf-operation-intents">
          <front>
            <title>Leaf Operation Intents</title>
            <author fullname="Konrad Kohbrok" initials="K." surname="Kohbrok">
              <organization>Phoenix R&amp;D</organization>
            </author>
            <date day="3" month="July" year="2025"/>
            <abstract>
              <t>   The Messaging Layer Security (MLS) protocol defined in [RFC9420] is
   an asynchronous secure group messaging protocol, which allows group
   members to propose their own removal from a group.

   However, in some cases MLS clients can't reliably use regular Remove
   or SelfRemove proposals to leave a group because they don't have an
   up-to-date group state.

   This document specifies a LeafOperationIntent, which does not need an
   up-to-date group state but which retains sufficient binding to the
   client's current state to avoid replay attacks.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-kohbrok-mls-leaf-operation-intents-00"/>
        </reference>
      </references>
    </references>
    <?line 157?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>TODO acknowledge.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
PI0FKYbBAeGv2HSfuXRRoOKFHigxKzexBeLLWdU+cWPxSJqw3awpkX3jx6Y8
4CGcE73/CbHIy2pt773KOay6JwDVdwtxwFkbVSkVciDXN0NgQ8+UnHqFM1HA
LRT7T8s/z5nAvbkJOjiGbwy8Iiy0Lho0GxPRaFoPnsA9Psz1UmH1TqaqnjG0
YkeEdiMapbzYl4P0DN2aCodzsknl4PRi2qsHD96//6YLHLrQo/iK4obV5BFu
GUTBDXpRLJBhIdctF3ZlDlzK28ibYRXhzktXmkIGsxZTH/uMZCvS5fgsz8Ns
ZVgGNELoGXNIPtufntcURXzg5z6Cg4ka0MRww5+31nRY25POwpohqQ8VIZsh
jXdh3/blBnwMInJO5vmjX+t3F+JIg/0LbdtSkFHiX5Do7dy+nwMvJtVsbcou
+EI40KxVUJ6NELUxZNBmY68RAgbrUKe8hU1VKWttoBnbELuz0AQMURukRkFF
yJA2kUEvR/7l46MPHtvaLPRi6YI3eNyY3Kc+npxTXRE8KRORDNtiSA/ImqkM
8DUgp2c2VDSFB7L1vmSCS9BEjdNMBmQ7vKlq/QA2w0S6895AadK0Qdkn5zG8
xaJp1/DDXtwN0G1sw9FJvfNVV3+Ddp1PErZ14jdYEhXzBRhtG6XWVrukz45J
cgxIY0MN9m5zMt4xBGRPlLv35bO4m9PLiHpE3FSGkK88LlsmpLCBUMcUu6HW
O59Z+LMRLint21Pbe39n9fQM7nVgHSU8rAlsijKvoHynq+FXHDZ14BQkJL1L
UCtq95asn0pqTqa39QQ7HnOIeDUMYoPW2HoW5fNcvKLrb5bXrRqiGw4JqCX/
AMxQuTepN3lUDB18POS9OF/dI+KrcHplHMVmxlEG7lj3XUj6ZJ4TK+sgOBh0
K2w01vMCpXwVJJWMD1QuF4o8TttitzmBrCpwwtso108Btz+1sHvbb6etKzUW
nH70emLsD72WhXdp1EbzS/ggZ9rYk+jF9ogLITn0oWKm0p6z/4g/1B/ZOhRh
luvjQJlc+rY9khBkd/sk+PWgM480bBgy6DBa7zTgQk76B3TJuVZpAIGSrG8n
SfLbb78Jl9skFKXvk8c2pIXPFO1XipOw6q+0qG2I7ZfN5wWV4rYXkypP/MDl
QyYYCiHKQAMiKevBy7DD3s5N22CGiNS5rWXo2iBAHzeUEToyDakBgl73G1PX
0Q/E37nHxIzNeaxpal8pb16slUNSJ40LpV6VvIf7oqfgQt0uxAStf+coy9v6
CxTjtRbM7/MbT5mhNR5iv45Vsg/7yKFVqX1aZEMzVTon03vqQXSOEDqBnMPH
Hnuv9P++rS2e1oGnEI7lSlqd+6Qr2nirS8wRMVi/U5kp1Xgzk2xTGZUjwJc+
nZxv0nqvDyg7u8as8JdGWdcpR+ao67N14AsQOyXr/GlgX5T1STZ30NaVL30o
GmS8al/vNSSr92Y5q809NzqQ9cxHnOES1kba+8vjY78xCyMGgiQL+1N9Qu9r
QdJVzCn8Br1Kt6SmhHcMKmSHMffwuFjqKmR8vTTxI3xAbt6P4Hp6y8Fsd5hl
bNsD/kNLuxehOnxpoB5SFwOhwrlE4bfudXLEQpWkqQCL1NQ11TFOLjgJ7aDy
pqKzriVyzdjOogaHj1HBS/hzwi31qReyRpFmQz0KGLT6HqMssS37d0kGiJGT
nY0PKKEsjzd9Wk9dNd5PXMjF4ocsD+yuJ7PiHJd3jv2tNpfx7S36BYszc1J1
5UK1yLW1lxe3CI7TAd3MyO9jXh4VHuzBRDk9vjzeIcnttiW7kedZmWU6QkZy
JkiKPmuDyh0FFVTFgS+WEIO0gtlPf5yFJFCzODud3l3dTMQ1LmrJe6scZaT4
F/5hL2B3wZbmq9DetMZ/jeZG5qL0gWWjAf4RAXGP/Np6R9eslo3AzohuMwsz
+5m/Byab6UI/9McUwzcYte0lGUnymfinzBs1EUfvjo6OvhQHtlkga6MPY3h3
yZ9pn5YdU0IlfWCfT8R3J0Nxfikm/uNkF+cpXe269L97Gex6owgj9B8Cson4
kQdC/2nCWieThO+PM0QTwtFxSo3VXGULUrtN3k+8aVT2t8EcsqrBI2xxdXqF
VDLOBN//H9gg1wNsIQAA

-->

</rfc>
