<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.6.17 (Ruby 3.1.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-mls-architecture-10" category="info" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.15.3 -->
  <front>
    <title abbrev="MLS Architecture">The Messaging Layer Security (MLS) Architecture</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-mls-architecture-10"/>
    <author initials="B." surname="Beurdouche" fullname="Benjamin Beurdouche">
      <organization>Inria &amp; Mozilla</organization>
      <address>
        <email>ietf@beurdouche.com</email>
      </address>
    </author>
    <author initials="E." surname="Rescorla" fullname="Eric Rescorla">
      <organization>Mozilla</organization>
      <address>
        <email>ekr@rtfm.com</email>
      </address>
    </author>
    <author initials="E." surname="Omara" fullname="Emad Omara">
      <organization>Google</organization>
      <address>
        <email>emadomara@google.com</email>
      </address>
    </author>
    <author initials="S." surname="Inguva" fullname="Srinivas Inguva">
      <organization>Twitter</organization>
      <address>
        <email>singuva@twitter.com</email>
      </address>
    </author>
    <author initials="A." surname="Duric" fullname="Alan Duric">
      <organization>Wire</organization>
      <address>
        <email>alan@wire.com</email>
      </address>
    </author>
    <date year="2022" month="December" day="16"/>
    <area>Security</area>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <t>The Messaging Layer Security (MLS) protocol (I-D.ietf-mls-protocol)
specification has the role of defining a Group Key Agreement protocol, including
all the cryptographic operations and serialization/deserialization functions
necessary for scalable and secure group messaging.  The MLS protocol is meant to
protect against eavesdropping, tampering, message forgery, and provide further
properties such as Forward Secrecy (FS) and Post-Compromise Security (PCS) in
the case of past or future device compromises.</t>
      <t>This document describes a general secure group messaging infrastructure and its
security goals.  It provides guidance on building a group messaging system and
discusses security and privacy tradeoffs offered by multiple security mechanisms
that are part of the MLS protocol (e.g., frequency of public encryption key
rotation).</t>
      <t>The document also provides guidance for parts of the infrastructure that are not
standardized by the MLS Protocol document and left to the application or the
infrastructure architects to design.</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 case of active adversaries that are able to compromise clients, the delivery
service, or the authentication service.</t>
    </abstract>
    <note removeInRFC="true">
      <name>Discussion Venues</name>
      <t>Discussion of this document takes place on the
  MLS Working Group mailing list (mls@ietf.org),
  which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/mls/"/>.</t>
      <t>Source for this draft and an issue tracker can be found at
  <eref target="https://github.com/mlswg/mls-architecture"/>.</t>
    </note>
  </front>
  <middle>
    <section anchor="introduction">
      <name>Introduction</name>
      <t>RFC EDITOR: PLEASE REMOVE THE FOLLOWING PARAGRAPH</t>
      <t>The source for this draft is maintained in GitHub.  Suggested changes should
be submitted as pull requests at https://github.com/mlswg/mls-architecture.
Instructions are on that page as well.  Editorial changes can be
managed in GitHub, but any substantive change should be discussed on
the MLS mailing list.</t>
      <t>End-to-end security is a requirement for instant messaging systems and is
commonly deployed in many such systems. In this context, "end-to-end" captures
the notion that users of the system enjoy some level of security -- with the
precise level depending on the system design -- even in the face of malicious
actions by the operator of the messaging system.</t>
      <t>Messaging Layer Security (MLS) specifies an architecture (this document) and a
protocol <xref target="I-D.ietf-mls-protocol"/> for providing end-to-end security in this
setting. MLS is not intended as a full instant messaging protocol but rather is
intended to be embedded in concrete protocols, such as XMPP <xref target="RFC6120"/>.
Implementations of the MLS protocol will interoperate at the cryptographic
level, though they may have incompatibilities in terms of how protected messages
are delivered, contents of protected messages, and identity/authentication
infrastructures.
The MLS protocol has been designed to provide the same security guarantees to
all users, for all group sizes, even when it reduces to only two users.</t>
    </section>
    <section anchor="general-setting">
      <name>General Setting</name>
      <t>MLS provides a way for <em>clients</em> to form <em>groups</em> within which they can
communicate securely.  For example, a set of users might use clients on their
phones or laptops to join a group and communicate with each other. A group may
be as small as two clients (e.g., for simple person to person messaging) or as
large as thousands.  A client that is part of a group is a <em>member</em> of that
group.</t>
      <t>In order to communicate securely, users initially interact with services at
their disposal to establish the necessary values and credentials required for
encryption and authentication.</t>
      <t>The Service Provider presents two abstract functionalities that allow clients to
prepare for sending and receiving messages securely:</t>
      <ul spacing="normal">
        <li>An Authentication Service (AS) functionality which is responsible for
attesting to bindings between application-meaningful identifiers and the
public key material used for authentication in the MLS protocol. This
functionality must also be able to generate credentials that encode these
bindings and validate credentials provided by MLS clients.</li>
        <li>A Delivery Service (DS) functionality which can receive and distribute
messages between group members. In the case of group messaging, the delivery
service may also be responsible for acting as a "broadcaster" where the sender
sends a single message which is then forwarded to each recipient in the group
by the DS. The DS is also responsible for storing and delivering initial
public key material required by MLS clients in order to proceed with the group
secret key establishment that is part of the MLS protocol.</li>
      </ul>
      <t>For convenience, this document adopts the representation of these services being
standalone servers, however the MLS protocol design is made so that this is not
necessarily the case.  These services may reside on the same server or different
servers, they may be distributed between server and client components, and they
may even involve some action by users.  For example:</t>
      <ul spacing="normal">
        <li>Several secure messaging services today provide a centralized DS, and rely on
manual comparison of clients' public keys as the AS.</li>
        <li>MLS clients connected to a peer-to-peer network could instantiate a
decentralized DS by transmitting MLS messages over that network.</li>
        <li>In an MLS group using a PKI for authentication, the AS would comprise the
certificate issuance and validation processes, both of which involve logic
inside MLS clients as well as various servers.</li>
      </ul>
      <t>It is important to note that the Authentication Service functionality can be
completely abstract in the case of a Service Provider which allows MLS clients
to generate, distribute, and validate credentials themselves.  As with the AS,
the Delivery Service can be completely abstract if users are able to distribute
credentials and messages without relying on a central Delivery Service.  Note,
though, that in such scenarios, clients will need to implement logic that
assures the delivery properties required of the DS (see
<xref target="delivery-guarantees"/>).</t>
      <artset>
        <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="256" width="456" viewBox="0 0 456 256" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px">
            <path d="M 8,32 L 8,80" fill="none" stroke="black"/>
            <path d="M 80,144 L 80,176" fill="none" stroke="black"/>
            <path d="M 144,32 L 144,80" fill="none" stroke="black"/>
            <path d="M 168,144 L 168,176" fill="none" stroke="black"/>
            <path d="M 184,32 L 184,80" fill="none" stroke="black"/>
            <path d="M 208,144 L 208,176" fill="none" stroke="black"/>
            <path d="M 248,80 L 248,144" fill="none" stroke="black"/>
            <path d="M 296,144 L 296,176" fill="none" stroke="black"/>
            <path d="M 304,32 L 304,80" fill="none" stroke="black"/>
            <path d="M 336,144 L 336,176" fill="none" stroke="black"/>
            <path d="M 424,144 L 424,176" fill="none" stroke="black"/>
            <path d="M 8,32 L 144,32" fill="none" stroke="black"/>
            <path d="M 184,32 L 304,32" fill="none" stroke="black"/>
            <path d="M 8,80 L 144,80" fill="none" stroke="black"/>
            <path d="M 184,80 L 304,80" fill="none" stroke="black"/>
            <path d="M 80,144 L 168,144" fill="none" stroke="black"/>
            <path d="M 208,144 L 296,144" fill="none" stroke="black"/>
            <path d="M 336,144 L 424,144" fill="none" stroke="black"/>
            <path d="M 80,176 L 168,176" fill="none" stroke="black"/>
            <path d="M 208,176 L 296,176" fill="none" stroke="black"/>
            <path d="M 336,176 L 424,176" fill="none" stroke="black"/>
            <path d="M 304,80 L 336,144" fill="none" stroke="black"/>
            <path d="M 152,144 L 184,80" fill="none" stroke="black"/>
            <g class="text">
              <text x="76" y="52">Authentication</text>
              <text x="244" y="52">Delivery</text>
              <text x="56" y="68">Service</text>
              <text x="108" y="68">(AS)</text>
              <text x="224" y="68">Service</text>
              <text x="276" y="68">(DS)</text>
              <text x="432" y="100">Group</text>
              <text x="212" y="116">........</text>
              <text x="284" y="116">........</text>
              <text x="388" y="116">................</text>
              <text x="184" y="132">.</text>
              <text x="448" y="132">.</text>
              <text x="184" y="148">.</text>
              <text x="448" y="148">.</text>
              <text x="116" y="164">Client</text>
              <text x="152" y="164">1</text>
              <text x="184" y="164">.</text>
              <text x="244" y="164">Client</text>
              <text x="280" y="164">2</text>
              <text x="372" y="164">Client</text>
              <text x="408" y="164">3</text>
              <text x="448" y="164">.</text>
              <text x="184" y="180">.</text>
              <text x="448" y="180">.</text>
              <text x="184" y="196">.</text>
              <text x="236" y="196">Member</text>
              <text x="272" y="196">1</text>
              <text x="364" y="196">Member</text>
              <text x="400" y="196">2</text>
              <text x="448" y="196">.</text>
              <text x="184" y="212">.</text>
              <text x="448" y="212">.</text>
              <text x="316" y="228">..................................</text>
            </g>
          </svg>
        </artwork>
        <artwork type="ascii-art"><![CDATA[
     +----------------+    +--------------+
     | Authentication |    |   Delivery   |
     |  Service (AS)  |    | Service (DS) |
     +----------------+    +-------+------+
                          /        |       \            Group
                         / ........|........\................
                        /  .       |         \              .
              +--------+-+ .  +----+-----+    +----------+  .
              | Client 1 | .  | Client 2 |    | Client 3 |  .
              +----------+ .  +----------+    +----------+  .
                           .   Member 1        Member 2     .
                           .                                .
                           ..................................
]]></artwork>
      </artset>
      <t>According to this architecture design, a typical group messaging scenario might
look like this:</t>
      <ol spacing="normal" type="1"><li>Alice, Bob and Charlie create accounts with a service provider and obtain
credentials from the AS.</li>
        <li>Alice, Bob and Charlie authenticate to the DS and store some initial keying
material which can be used to send encrypted messages to them for the first
time. This keying material is authenticated with their long-term credentials.</li>
        <li>When Alice wants to send a message to Bob and Charlie, she contacts the DS
and looks up their initial keying material.  She uses these keys to establish
a new set of keys which she can use to send encrypted messages to Bob and
Charlie. She then sends the encrypted message(s) to the DS, which forwards
them to the recipients.</li>
        <li>Bob and/or Charlie respond to Alice's message. In addition, they might choose
to update their key material which provides post-compromise security (see
<xref target="fs-and-pcs"/>). As a consequence of that change, the group secrets are
updated.</li>
      </ol>
      <t>MLS allows clients to perform several actions in this setting:</t>
      <ul spacing="normal">
        <li>create a group by inviting a set of other clients;</li>
        <li>add one or more clients to an existing group;</li>
        <li>remove one or more members from an existing group;</li>
        <li>update their own key material</li>
        <li>join an existing group;</li>
        <li>leave a group (by asking to be removed);</li>
        <li>send a message to everyone in the group;</li>
        <li>receive a message from someone in the group.</li>
      </ul>
      <t>At the cryptographic level, clients (and by extension members in groups) have
equal permissions. For instance, any member can add or remove another member in
a group. This is in contrast to some designs in which there is a single group
controller who can modify the group. MLS is compatible with having group
administration restricted to certain users, but we assume that those
restrictions are enforced by the application layer.</t>
      <section anchor="group-members-and-clients">
        <name>Group Members and Clients</name>
        <t>While informally, a group can be considered to be a set of users possibly using
multiple endpoint devices to interact with the Service Provider, this definition
is too simplistic.</t>
        <t>Formally, a client is a set of cryptographic objects composed of public values
such as a name (an identity), a public encryption key, and a public signature
key. Ownership of a client by a user is determined by the fact that the user has
knowledge of the associated secret values. When a client is part of a Group, it
is called a Member.
In some messaging systems, clients belonging to the same user must all share the
same signature key pair, but MLS does not assume this.</t>
        <t>Users will often use multiple devices, e.g., a phone as well as a laptop.
Different devices may be represented as different clients, with independent
cryptographic state.
The formal definition of a Group in MLS is the set of clients that have
knowledge of the shared group secret established in the group key establishment
phase of the protocol and have contributed to it.
Until a Member has been added to the group and contributed to the group secret
in a manner verifiable by other members of the group, other members cannot
assume that the Member is a member of the group.
Different devices are represented as different clients with independent
cryptographic state.</t>
      </section>
    </section>
    <section anchor="authentication-service">
      <name>Authentication Service</name>
      <t>The Authentication Service (AS) has to provide three functionalities:</t>
      <ol spacing="normal" type="1"><li>Issue credentials to clients that attest to bindings between identities and
signature key pairs</li>
        <li>Enable a client to verify that a credential presented by another client is
valid with respect to a reference identifier</li>
        <li>Enable a group member to verify that a credential represents the same client
as another credential</li>
      </ol>
      <t>A member with a valid credential authenticates its MLS messages by signing them
with the private key corresponding to the public key bound by its credential.</t>
      <t>The AS is considered an abstract layer by the MLS specification and part of this
service could be, for instance, running on the members' devices, while another
part is a separate entity entirely.  The following examples illustrate the
breadth of this concept:</t>
      <ul spacing="normal">
        <li>A PKI could be used as an AS <xref target="RFC5280"/>.  The issuance function would be
provided by the certificate authorities in the PKI, and the verification
function would correspond to certificate verification by clients.</li>
        <li>Several current messaging applications rely on users verifying each others'
key fingerprints for authentication.  In this scenario, the issuance function
is simply the generation of a key pair (i.e., a credential is just an
identifier and public key, with no information to assist in verification).
The verification function is the application functionality that enables users
to verify keys.</li>
        <li>In a system based on Key Transparency (KT) <xref target="KeyTransparency"/>, the issuance
function would correspond to the insertion of a key in a KT log under a user's
identity. The verification function would correspond to verifying a key's
inclusion in the log for a claimed identity, together with the KT log's
mechanisms for a user to monitor and control which keys are associated with
their identity.</li>
      </ul>
      <t>By the nature of its roles in MLS authentication, the AS is invested with a
large amount of trust and the compromise of one of its functionalities could
allow an adversary to, among other things, impersonate group members. We discuss
security considerations regarding the compromise of the different AS
functionalities in detail in <xref target="as-compromise"/>.</t>
      <t>The association between members' identities and signature keys is fairly
flexible in MLS.  As noted above, there is no requirement that all clients
belonging to a given user use the same key pair (in fact, such key reuse is
forbidden to ensure clients have independent cryptographic state).  A member can
also rotate the signature key they use within a group.  These mechanisms allow
clients to use different signature keys in different contexts and at different
points in time, providing unlinkability and post-compromise security benefits.
Some security trade-offs related to this flexibility are discussed in the
security considerations.</t>
      <t>In many applications, there are multiple MLS clients that represent a single
entity, for example a human user with a mobile and desktop version of an
application. Often the same set of clients is represented in exactly the same
list of groups. In applications where this is the intended situation, other
clients can check that a user is consistently represented by the same set of
clients.  This would make it more difficult for a malicious AS to issue fake
credentials for a particular user because clients would expect the credential to
appear in all groups of which the user is a member. If a client credential does
not appear in all groups after some relatively short period of time, clients
have an indication that the credential might have been created without the
user's knowledge. Due to the asynchronous nature of MLS, however, there may be
transient inconsistencies in a user's client set, so correlating users' clients
across groups is more of a detection mechanism than a prevention mechanism.</t>
    </section>
    <section anchor="delivery-service">
      <name>Delivery Service</name>
      <t>The Delivery Service (DS) is expected to play multiple roles in the Service
Provider architecture:</t>
      <ul spacing="normal">
        <li>Acting as a directory service providing the initial keying material for
clients to use.  This allows a client to establish a shared key and send
encrypted messages to other clients even if they're offline.</li>
        <li>Routing MLS messages among clients.</li>
      </ul>
      <t>Depending on the level of trust given by the group to the Delivery Service, the
functional and privacy guarantees provided by MLS may differ but the
authentication and confidentiality guarantees remain the same.</t>
      <t>Unlike the Authentication Service which is trusted for authentication and
secrecy, the Delivery Service is completely untrusted regarding this
property. While privacy of group membership might be a problem in the case of a
Delivery Service server fanout, the Delivery Service can be considered as an
active, adaptive network attacker for the purpose of security analysis.</t>
      <section anchor="key-storage-and-retrieval">
        <name>Key Storage and Retrieval</name>
        <t>Upon joining the system, each client stores its initial cryptographic key
material with the Delivery Service. Clients then continue adding and removing
keying material on a regular basis. This key material, called a KeyPackage,
advertises the functional abilities of the client such as supported protocol
versions, supported extensions, and the following cryptographic information:</t>
        <ul spacing="normal">
          <li>A credential from the Authentication Service attesting to the binding between
the identity and the client's signature key.</li>
          <li>The client's asymmetric encryption public key.</li>
        </ul>
        <t>All the parameters in the KeyPackage are signed with the signature private key
corresponding to the credential.</t>
        <t>The Delivery Service is responsible for ensuring that each KeyPackage is only
used to add its client to a single group, with the possible exception of a "last
resort" KeyPackage that's specially designated by the client to be used multiple
times. As noted in the previous section, users may own multiple clients, each
with their own keying material. Each KeyPackage is specific to an MLS version
and ciphersuite, but a client may want to offer support for multiple protocol
versions and ciphersuites. As such, there may be multiple KeyPackages stored by
each user for a mix of protocol versions, ciphersuites, and end-user devices --
in addition to the multiplicity required to support single-use.</t>
        <t>When a client wishes to establish a group or add clients to a group, it first
contacts the Delivery Service to request KeyPackages for each other client,
authenticates the KeyPackages using the signature keys, and then uses those to
add the other clients to the group.</t>
        <t>When a client requests a KeyPackage in order to add a user to a group, the
Delivery Service should provide the minimum number of KeyPackages necessary to
satisfy the request.  For example, if the request specifies the MLS version, the
DS might provide one KeyPackage per supported ciphersuite, even if it has
multiple such KeyPackages to enable the corresponding client to be added to
multiple groups before needing to upload more fresh KeyPackages.</t>
      </section>
      <section anchor="delivery-guarantees">
        <name>Delivery of Messages</name>
        <t>The main responsibility of the Delivery Service is to ensure delivery of
messages. Some MLS messages need only be delivered to specific clients (e.g., a
Welcome message initializing a new member's state), while others need to be
delivered to all the members of a group.  The Delivery Service may enable the
latter delivery pattern via unicast channels (sometimes known as "client
fanout"), broadcast channels ("server fanout"), or a mix of both.</t>
        <t>For the most part, MLS does not require the Delivery Service to deliver messages
in any particular order. Applications can set policies that control their
tolerance for out-of-order messages (see <xref target="operational-requirements"/>), and
messages that arrive significantly out-of-order can be dropped without otherwise
affecting the protocol. There are two exceptions to this. First, Proposal
messages should all arrive before the Commit that references them.  Second,
because an MLS group has a linear history of epochs, the members of the group
must agree on the order in which changes are applied.  Concretely, the group
must agree on a single MLS Commit message that ends each epoch and begins the
next one.</t>
        <t>In practice, there's a realistic risk of two members generating Commit messages
at the same time, based on the same counter, and both attempting to send them to
the group at the same time. The extent to which this is a problem, and the
appropriate solution, depends on the design of the Delivery Service. Per the CAP
theorem <xref target="CAPBR"/>, there are two general classes of distributed system that the
Delivery Service might fall into:</t>
        <ul spacing="normal">
          <li>Consistent and Partition-tolerant, or Strongly Consistent, systems can provide
a globally consistent view of data but may stop working if there are network
issues;</li>
          <li>Available and Partition-tolerant, or Eventually Consistent, systems continue
working despite network issues but may return different views of data to
different users.</li>
        </ul>
        <t>Strategies for sequencing messages in strongly and eventually consistent systems
are described in the next two subsections.</t>
        <t>However, note that a malicious Delivery Service could also reorder messages or
provide an inconsistent view to different users.  The "generation" counter in
MLS messages provides per-sender loss detection and ordering that cannot be
manipulated by the DS.  A mechanism for more robust protections is discussed in
<xref target="I-D.ietf-mls-extensions"/>.  A DS can cause a partition in the group by
partitioning key exchange messages; this can be detected only by out of band
comparison (e.g., confirming that all clients have the same
<tt>epoch_authenticator</tt> value`).</t>
        <t>Other forms of Delivery Service misbehavior are still possible that are not easy
to detect. For instance, a Delivery Service can simply refuse to relay messages
to and from a given client. Without some sort of side information, other clients
cannot generally detect this form of Denial of Service (DoS) attack.</t>
        <section anchor="strongly-consistent">
          <name>Strongly Consistent</name>
          <t>With this approach, the Delivery Service ensures that some types of incoming
messages have a linear order and all members agree on that order.  The Delivery
Service is trusted to break ties when two members send a Commit message at the
same time.</t>
          <t>As an example, there could be an "ordering server" Delivery Service that
broadcasts all messages received to all users and ensures that all clients see
handshake messages in the same order. Clients that send a Commit would then wait
to apply it until it's broadcast back to them by the Delivery Service, assuming
they don't receive another Commit first.</t>
          <t>The Delivery Service can rely on the <tt>epoch</tt> and <tt>content_type</tt> fields of an
MLSMessage for providing an order only to handshake messages, and possibly even
filter or reject redundant Commit messages proactively to prevent them from
being broadcast. Alternatively, the Delivery Service could simply apply an order
to all messages and rely on clients to ignore redundant Commits.</t>
        </section>
        <section anchor="eventually-consistent">
          <name>Eventually Consistent</name>
          <t>With this approach, the Delivery Service is built in a way that may be
significantly more available or performant than a strongly consistent system,
but offers weaker consistency guarantees. Messages may arrive to different
clients in different orders and with varying amounts of latency, which means
clients are responsible for reconciliation.</t>
          <t>This type of Delivery Service might arise, for example, when group members are
sending each message to each other member individually, or when a distributed
peer-to-peer network is used to broadcast messages.</t>
          <t>Upon receiving a Commit from the Delivery Service, clients can either:</t>
          <ol spacing="normal" type="1"><li>Pause sending new messages for a short amount of time to account for a
reasonable degree of network latency and see if any other Commits are
received for the same epoch. If multiple Commits are received, the clients
can use a deterministic tie-breaking policy to decide which to accept, and
then resume sending messages as normal.</li>
            <li>Accept the Commit immediately but keep a copy of the previous group state for
a short period of time. If another Commit for a past epoch is received,
clients use a deterministic tie-breaking policy to decide if they should
continue using the Commit they originally accepted or revert and use the
later one. Note that any copies of previous or forked group states must be
deleted within a reasonable amount of time to ensure the protocol provides
forward-secrecy.</li>
          </ol>
          <t>In the event of a network partition, a subset of members may be isolated from
the rest of the group long enough that the mechanisms above no longer work. This
can only be solved by sending a ReInit proposal to both groups, possibly with an
external sender type, and recreating the group to contain all members again.</t>
          <t>If the Commit references an unknown proposal, group members may need to solicit
the Delivery Service or other group members individually for the contents of the
proposal.</t>
        </section>
      </section>
    </section>
    <section anchor="functional-requirements">
      <name>Functional Requirements</name>
      <t>MLS is designed as a large-scale group messaging protocol and hence aims to
provide both performance and safety to its users.  Messaging systems that
implement MLS provide support for conversations involving two or more members,
and aim to scale to groups with tens of thousands of members, typically
including many users using multiple devices.</t>
      <section anchor="membership-changes">
        <name>Membership Changes</name>
        <t>MLS aims to provide agreement on group membership, meaning that all group
members have agreed on the list of current group members.</t>
        <t>Some applications may wish to enforce ACLs to limit addition or removal of group
members, to privileged clients or users. Others may wish to require
authorization from the current group members or a subset thereof.  Such policies
can be implemented at the application layer, on top of MLS. Regardless, MLS does
not allow for or support addition or removal of group members without informing
all other members.</t>
        <t>Membership of an MLS group is managed at the level of individual clients.  In
most cases, a client corresponds to a specific device used by a user. If a user
has multiple devices, the user will be represented in a group by multiple
clients.  If an application wishes to implement operations at the level of
users, it is up to the application to track which clients belong to a given user
and ensure that they are added / removed consistently.</t>
        <t>MLS provides two mechanisms for changing the membership of a group.  The primary
mechanism is for an authorized member of the group to send a Commit that adds or
removes other members.  The second mechanism is an "external join": A member of
the group publishes certain information about the group, which a new member can
use to construct an "external" Commit message that adds the new member to the
group.  (There is no similarly unilateral way for a member to leave the group;
they must be removed by a remaining member.)</t>
        <t>With both mechanisms, changes to the membership are initiated from inside the
group.  When members perform changes directly, this is clearly the case.
External joins are authorized indirectly, in the sense that a member publishing
a GroupInfo object authorizes anyone to join who has access to the GroupInfo
object. Both types of joins are done via a Commit message, which could be
blocked by the DS or rejected by clients if the join is not authorized.  The
former approach requires that Commits be visible to the DS; the latter approach
requires that clients all share a consistent policy. In the unfortunate event
that an unauthorized member is able to join, MLS enables any member to remove
them.</t>
        <t>Application setup may also determine other criteria for membership validity. For
example, per-device signature keys can be signed by an identity key recognized
by other participants. If a certificate chain is used to sign off on device
signature keys, then revocation by the owner adds an alternative flag to prompt
membership removal.</t>
        <t>An MLS group's secrets change on every change of membership, so each client only
has access to the secrets used by the group while they are a member.  Messages
sent before a client joins or after they are removed are protected with keys
that are not accessible to the client.  Compromise of a member removed from a
group does not affect the security of messages sent after their removal.
Messages sent during the client's membership are also secure as long as the
client has properly implemented the MLS deletion schedule, which calls for the
secrets used to encrypt or decrypt a message to be deleted after use, along with
any secrets that could be used to derive them.</t>
      </section>
      <section anchor="parallel-groups">
        <name>Parallel Groups</name>
        <t>Any user or client may have membership in several groups simultaneously.  The
set of members of any group may or may not form a subset of the members of
another group. MLS guarantees that the FS and PCS goals within a given group are
maintained and not weakened by user membership in multiple groups. However,
actions in other groups likewise do not strengthen the FS and PCS guarantees
within a given group, e.g. key updates within a given group following a device
compromise does not provide PCS healing in other groups; each group must be
updated separately to achieve internal goals.  This also applies to future
groups that a member has yet to join, that are likewise unaffected by updates
performed in current groups.</t>
        <t>Applications may strengthen connectivity among parallel groups by requiring
periodic key updates from a user across all groups in which they have
membership.</t>
        <t>Applications may use the PSK mechanism to link healing properties among parallel
groups.  For example, suppose a common member M of two groups A and B has
performed a key update in group A but not in group B.  The key update provides
PCS with regard to M in group A.  If a PSK is exported from group A and injected
into group B, then some of these PCS properties carry over to group B, since the
PSK and secrets derived from it are only known to the new, updated version of M,
not to the old, possibly compromised version of M.</t>
      </section>
      <section anchor="asynchronous-usage">
        <name>Asynchronous Usage</name>
        <t>No operation in MLS requires two distinct clients or members to be online
simultaneously. In particular, members participating in conversations protected
using MLS can update the group's keys, add or remove new members, and send
messages without waiting for another user's reply.</t>
        <t>Messaging systems that implement MLS have to provide a transport layer for
delivering messages asynchronously and reliably.</t>
      </section>
      <section anchor="access-control">
        <name>Access Control</name>
        <t>The MLS protocol allows each member of the messaging group to perform operations
equally. This is because all clients within a group (members) have access to the
shared cryptographic material. However every service/infrastructure has control
over policies applied to its own clients. Applications managing MLS clients can
be configured to allow for specific group operations. On the one hand, an
application could decide that a group administrator will be the only member to
perform add and remove operations. On the other hand, in many settings such as
open discussion forums, joining can be allowed for anyone.</t>
        <t>The MLS protocol can, in certain modes, exchange unencrypted group operation
messages. This flexibility is to allow services to perform access control tasks
on behalf of the group.</t>
        <t>While the Application messages will always be encrypted, having the handshake
messages in plaintext has inconveniences in terms of privacy as someone could
collect the signatures on the handshake messages and use them for tracking.</t>
        <ul empty="true">
          <li>
            <t><strong>RECOMMENDATION:</strong> Prefer using encrypted group operation messages to avoid
privacy issues related to non-encrypted signatures.</t>
          </li>
        </ul>
        <t>Note that in the default case of encrypted handshake messages, any access
control policies will be applied at the client, so the application must ensure
that the access control policies are consistent across all clients to make sure
that they remain in sync.  If two different policies were applied, the clients
might not accept or reject a group operation and end-up in different
cryptographic states, breaking their ability to communicate.</t>
        <ul empty="true">
          <li>
            <t><strong>RECOMMENDATION:</strong> Avoid using inconsistent access control policies in the
case of encrypted group operations.</t>
          </li>
        </ul>
        <t>MLS allows actors outside the group to influence the group in two ways: External
signers can submit proposals for changes to the group, and new joiners can use
an external join to add themselves to the group.  The <tt>external_senders</tt>
extension ensures that all members agree on which signers are allowed to send
proposals, but any other policies must be assured to be consistent as above.</t>
        <ul empty="true">
          <li>
            <t><strong>RECOMMENDATION:</strong> Have an explicit group policy setting the conditions under
which external joins are allowed.</t>
          </li>
        </ul>
      </section>
      <section anchor="handling-authentication-failures">
        <name>Handling Authentication Failures</name>
        <t>Within an MLS group, every member is authenticated to other member by means of
credentials issued and verified by the Authentication Service.  MLS does not
prescribe what actions, if any, an application should take in the event that a
group member presents an invalid credential.  For example, an application may
require such a member to be immediately evicted, or may allow some grace period
for the problem to be remediated. To avoid operational problems, it is important
for all clients in a group to have a consistent view of which credentials in a
group are valid, and how to respond to invalid credentials.</t>
        <ul empty="true">
          <li>
            <t><strong>RECOMMENDATION:</strong> Have a uniform credential validation process to ensure
that all group members evaluate other members' credentials in the same way.</t>
          </li>
        </ul>
        <ul empty="true">
          <li>
            <t><strong>RECOMMENDATION:</strong> Have a uniform policy for how invalid credentials are
handled.</t>
          </li>
        </ul>
        <t>In some authentication systems, it is possible for a previously-valid credential
to become invalid over time.  For example, in a system based on X.509
certificates, credentials can expire or be revoked.  The MLS update mechanisms
allow a client to replace an old credential with a new one. This is best done
before the old credential becomes invalid.</t>
        <ul empty="true">
          <li>
            <t><strong>RECOMMENDATION:</strong> Proactively rotate credentials, especially if a credential
is about to become invalid.</t>
          </li>
        </ul>
      </section>
      <section anchor="recovery-after-state-loss">
        <name>Recovery After State Loss</name>
        <t>Group members whose local MLS state is lost or corrupted can reinitialize their
state by re-joining the group as a new member and removing the member
representing their earlier state.  An application can require that a client
performing such a reinitialization prove its prior membership with a PSK.</t>
        <t>There are a few practical challenges to this approach.  For example, the
application will need to ensure that all members have the required PSK,
including any new members that have joined the group since the epoch in which
the PSK was issued.  And of course, if the PSK is lost or corrupted along with
the member's other state, then it cannot be used to recover.</t>
        <t>Reinitializing in this way does not provide the member with access to group
messages from during the state loss window, but enables proof of prior
membership in the group. Applications may choose various configurations for
providing lost messages to valid group members that are able to prove prior
membership.</t>
      </section>
      <section anchor="support-for-multiple-devices">
        <name>Support for Multiple Devices</name>
        <t>It is typically expected for users within a group to own various devices. A new
device can be added to a group and be considered as a new client by the
protocol. This client will not gain access to the history even if it is owned by
someone who owns another member of the group.
Restoring history is typically not allowed at the protocol level but
applications can elect to provide such a mechanism outside of MLS.  Such
mechanisms, if used, may reduce the FS and PCS guarantees provided by MLS.</t>
      </section>
      <section anchor="extensibility">
        <name>Extensibility</name>
        <t>The MLS protocol provides several extension points where additional information
can be provided.  Extensions to KeyPackages allow clients to disclose additional
information about their capabilities.  Groups can also have extension data
associated with them, and the group agreement properties of MLS will confirm
that all members of the group agree on the content of these extensions.</t>
      </section>
      <section anchor="application-data-framing-and-type-advertisements">
        <name>Application Data Framing and Type Advertisements</name>
        <t>Application messages carried by MLS are opaque to the protocol; they can contain
arbitrary data. Each application which uses MLS needs to define the format of
its <tt>application_data</tt> and any mechanism necessary to determine the format of
that content over the lifetime of an MLS group. In many applications this means
managing format migrations for groups with multiple members who may each be
offline at unpredictable times.</t>
        <ul empty="true">
          <li>
            <t><strong>RECOMMENDATION:</strong> Use the default content mechanism defined in
<xref target="I-D.mahy-mls-content-adv"/>, unless the specific application defines another
mechanism which more appropriately addresses the same requirements for that
application of MLS.</t>
          </li>
        </ul>
        <t>The MLS framing for application messages also provides a field where clients can
send information that is authenticated but not encrypted.  Such information can
be used by servers that handle the message, but group members are assured that
it has not been tampered with.</t>
      </section>
      <section anchor="federation">
        <name>Federation</name>
        <t>The protocol aims to be compatible with federated environments. While this
document does not specify all necessary mechanisms required for federation,
multiple MLS implementations can interoperate to form federated systems if they
use compatible authentication mechanisms, ciphersuites, application content, and
infrastructure functionalities. Federation is described in more detail in
<xref target="I-D.ietf-mls-federation"/>.</t>
      </section>
      <section anchor="compatibility-with-future-versions-of-mls">
        <name>Compatibility with Future Versions of MLS</name>
        <t>It is important that multiple versions of MLS be able to coexist in the
future. Thus, MLS offers a version negotiation mechanism; this mechanism
prevents version downgrade attacks where an attacker would actively rewrite
messages with a lower protocol version than the ones originally offered by the
endpoints. When multiple versions of MLS are available, the negotiation protocol
guarantees that the version agreed upon will be the highest version supported in
common by the group.</t>
        <t>In MLS 1.0, the creator of the group is responsible for selecting the best
ciphersuite supported across clients. Each client is able to verify availability
of protocol version, ciphersuites and extensions at all times once he has at
least received the first group operation message.</t>
        <t>Each member of an MLS group advertises the protocol functionality they support.
These capability advertisements can be updated over time, e.g., if client
software is updated while the client is a member of a group. Thus, in addition
to preventing downgrade attacks, the members of a group can also observe when it
is safe to upgrade to a new ciphersuite or protocol version.</t>
      </section>
    </section>
    <section anchor="operational-requirements">
      <name>Operational Requirements</name>
      <t>MLS is a security layer that needs to be integrated with an application. A
fully-functional deployment of MLS will have to make a number of decisions about
how MLS is configured and operated.  Deployments that wish to interoperate will
need to make compatible decisions. This section lists all of the dependencies of
an MLS deployment that are external to the protocol specification, but would
still need to be aligned within a given MLS deployment, or for two deployments
to potentially interoperate.</t>
      <t>The protocol has a built-in ability to negotiate protocol versions,
ciphersuites, extensions, credential types, and additional proposal types. For
two deployments to interoperate, they must have overlapping support in each of
these categories. A <tt>required_capabilities</tt> extension can help maintain
interoperability with a wider set of clients by ensuring that certain
functionality continues to be supported by a group, even if the clients in the
group aren't currently relying on it.</t>
      <t>MLS relies on the following network services. These network services would need
to be compatible in order for two different deployments based on them to
interoperate.</t>
      <ul spacing="normal">
        <li>
          <t>An <strong>Authentication Service</strong>, described fully in <xref target="authentication-service"/>,
defines the types of credentials which may be used in a deployment and
provides methods for:
          </t>
          <ol spacing="normal" type="1"><li>Issuing new credentials with a relevant credential lifetime,</li>
            <li>Validating a credential against a reference identifier,</li>
            <li>Validating whether or not two credentials represent the same client, and</li>
            <li>Optionally revoking credentials which are no longer authorized.</li>
          </ol>
        </li>
        <li>
          <t>A <strong>Delivery Service</strong>, described fully in <xref target="delivery-service"/>, provides
methods for:
          </t>
          <ol spacing="normal" type="1"><li>Delivering messages sent to a group to all members in the group.</li>
            <li>Delivering Welcome messages to new members of a group.</li>
            <li>Uploading new KeyPackages for a user's own clients.</li>
            <li>Downloading KeyPackages for specific clients. Typically, KeyPackages are
used once and consumed.</li>
          </ol>
        </li>
        <li>
          <t>Additional services may or may not be required depending on the application
design:
          </t>
          <ul spacing="normal">
            <li>If assisted joining is desired (meaning that the ratchet tree is not
provided in Welcome messages), there must be a method to download the
ratchet tree corresponding to a group.</li>
            <li>If assisted joining is desired and the Delivery Service is not able to
compute the ratchet tree itself (because some proposals or commits are sent
encrypted), there must be a method for group members to publish the updated
ratchet tree after each commit.</li>
            <li>If external joiners are allowed, there must be a method to publish a
serialized <tt>GroupInfo</tt> object (with an <tt>external_pub</tt> extension) that
corresponds to a specific group and epoch, and keep that object in sync with
the state of the group.</li>
            <li>If an application chooses not to allow assisted or external joining, it may
instead provide a method for external users to solicit group members (or a
designated service) to add them to a group.</li>
            <li>If the application uses external PSKs, or uses resumption PSKs that all
members of a group may not have access to, there must be a method for
distributing these PSKs to group members.</li>
            <li>If an application wishes to detect and possibly discipline members that send
malformed commits with the intention of corrupting a group's state, there
must be a method for reporting and validating malformed commits.</li>
          </ul>
        </li>
      </ul>
      <t>MLS requires the following parameters to be defined, which must be the same for
two implementations to interoperate:</t>
      <ul spacing="normal">
        <li>The maximum total lifetime that is acceptable for a KeyPackage.</li>
        <li>How long to store the resumption secret for past epochs of a group.</li>
        <li>
          <t>The degree of tolerance that's allowed for out-of-order message delivery:  </t>
          <ul spacing="normal">
            <li>How long to keep unused nonce and key pairs for a sender</li>
            <li>A maximum number of unused key pairs to keep.</li>
            <li>A maximum number of steps that clients will move a secret tree ratchet
forward in response to a single message before rejecting it.</li>
            <li>Whether to buffer messages that aren't able to be understood yet due to
other messages not arriving first, and if so, how many and for how long. For
example, Commit messages that arrive before a proposal they reference, or
application messages that arrive before the Commit starting an epoch.</li>
          </ul>
        </li>
      </ul>
      <t>MLS provides the following locations where an application may store arbitrary
data. The format and intention of any data in these locations must align for two
deployments to interoperate:</t>
      <ul spacing="normal">
        <li>Application data, sent as the payload of an encrypted message.</li>
        <li>Additional authenticated data, sent unencrypted in an otherwise encrypted
message.</li>
        <li>Group IDs, as decided by group creators and used to uniquely identify a group.</li>
        <li>The <tt>application_id</tt> extension of a LeafNode.</li>
      </ul>
      <t>MLS requires the following policies to be defined, which restrict the set of
acceptable behavior in a group. These policies must be consistent between
deployments for them to interoperate:</t>
      <ul spacing="normal">
        <li>A policy on which ciphersuites are acceptable.</li>
        <li>A policy on any mandatory or forbidden MLS extensions.</li>
        <li>A policy on when to send proposals and commits in plaintext instead of
encrypted.</li>
        <li>
          <t>A policy for which proposals are valid to have in a commit, including but not
limited to:
          </t>
          <ul spacing="normal">
            <li>When a member is allowed to add or remove other members of the group.</li>
            <li>When, and under what circumstances, a reinitialization proposal is allowed.</li>
            <li>When proposals from external senders are allowed and how to authorize
those proposals.</li>
            <li>When external joiners are allowed and how to authorize those external
commits.</li>
            <li>Which other proposal types are allowed.</li>
          </ul>
        </li>
        <li>A policy of when members should commit pending proposals in a group.</li>
        <li>A policy of how to protect and share the GroupInfo objects needed for
external joins.</li>
        <li>A policy for when two credentials represent the same client. Note that many
credentials may be issued authenticating the same identity but for different
signature keys, because each credential corresponds to a different device
(client) owned by the same application user. However, one device may control
many signature keys but should still only be considered a single client.</li>
        <li>A policy on how long to allow a member to stay in a group without updating its
leaf keys before removing them.</li>
      </ul>
      <t>Finally, there are some additional application-defined behaviors that are
partially an individual application's decision but may overlap with
interoperability:</t>
      <ul spacing="normal">
        <li>If there's any policy on how or when to pad messages.</li>
        <li>If there is any policy for when to send a reinitialization proposal.</li>
        <li>How often clients should update their leaf keys.</li>
        <li>Whether to prefer sending full commits or partial/empty commits.</li>
        <li>Whether there should be a <tt>required_capabilities</tt> extension in groups.</li>
      </ul>
    </section>
    <section anchor="security-and-privacy-considerations">
      <name>Security and Privacy Considerations</name>
      <t>MLS adopts the Internet threat model <xref target="RFC3552"/> and therefore assumes that the
attacker has complete control of the network. It is intended to provide the
security services described in the face of such attackers.</t>
      <ul spacing="normal">
        <li>The attacker can monitor the entire network.</li>
        <li>The attacker can read unprotected messages.</li>
        <li>The attacker can generate, inject and delete any message in the unprotected
transport layer.</li>
      </ul>
      <t>In addition, these guarantees are intended to degrade gracefully in the presence
of compromise of the transport security links as well as of both clients and
elements of the messaging system, as described in the remainder of this section.</t>
      <t>Generally, MLS is designed under the assumption that the transport layer is
present to protect metadata and privacy in general, while the MLS protocol is
providing stronger guarantees such as confidentiality, integrity and
authentication guarantees. Stronger properties such as deniability can also be
achieved in specific architecture designs.</t>
      <section anchor="assumptions-on-transport-security-links">
        <name>Assumptions on Transport Security Links</name>
        <t>As discussed above, MLS provides the highest level of security when its messages
are delivered over a secure transport.  Any secure channel can be used as a
transport layer to protect MLS messages, such as QUIC <xref target="RFC9000"/>, TLS
<xref target="RFC8446"/>, IPsec <xref target="RFC6071"/>, WireGuard <xref target="WireGuard"/>, or TOR
<xref target="TOR"/>. However, the MLS protocol is designed to consider the following
threat-model:</t>
        <ul spacing="normal">
          <li>The attacker can read, write, and delete arbitrary messages inside the secure
transport channel.</li>
        </ul>
        <t>This departs from most threat models where we consider that the secure channel
used for transport always provides secrecy. The reason for this consideration is
that in the group setting, active malicious insiders or adversarial services are
to be considered.</t>
        <t>The main use of the secure transport layer for MLS is to protect the already
limited amount of metadata. Very little information is contained in the
unencrypted header of the MLS protocol message format for group operation
messages, and application messages are always encrypted in MLS.</t>
        <t>MLS avoids needing to send the full list of recipients to the server for
dispatching messages because that list is potentially extremely large in
MLS. Header metadata in MLS messages typically consists of an opaque <tt>group_id</tt>,
a numerical value to determine the epoch of the group (the number of changes
that have been made to the group), and whether the message is an application
message, a proposal, or a commit.</t>
        <t>Even though some of this metadata information does not consist of secret
payloads, in correlation with other data a network observer might be able to
reconstruct sensitive information. Using a secure channel to transfer this
information will prevent a network attacker from accessing this MLS protocol
metadata if it cannot compromise the secure channel.</t>
        <section anchor="integrity-and-authentication-of-custom-metadata">
          <name>Integrity and Authentication of Custom Metadata</name>
          <t>The MLS protocol provides an authenticated "Additional Authenticated Data" field
for applications to make data available outside the MLSCiphertext.</t>
          <ul empty="true">
            <li>
              <t><strong>RECOMMENDATION:</strong> Use the "Additional Authenticated Data" field of the
MLSCiphertext message instead of using other unauthenticated means of sending
metadata throughout the infrastructure. If the data is private, the
infrastructure should use encrypted Application messages instead.</t>
            </li>
          </ul>
        </section>
        <section anchor="metadata-protection-for-unencrypted-group-operations">
          <name>Metadata Protection for Unencrypted Group Operations</name>
          <t>Having no secure channel to exchange MLS messages can have a serious impact on
privacy when transmitting unencrypted group operation messages. Observing the
contents and signatures of the group operation messages may lead an adversary to
extract information about the group membership.</t>
          <ul empty="true">
            <li>
              <t><strong>RECOMMENDATION:</strong> Never use the unencrypted mode for group operations
without using a secure channel for the transport layer.</t>
            </li>
          </ul>
        </section>
        <section anchor="dos-protection">
          <name>DoS protection</name>
          <t>In general we do not consider Denial of Service (DoS) resistance to be the
responsibility of the protocol. However, it should not be possible for anyone
aside from the Delivery Service to perform a trivial DoS attack from which it is
hard to recover. This can be achieved through the secure transport layer.</t>
          <t>In the centralized setting, DoS protection can typically be performed by using
tickets or cookies which identify users to a service for a certain number of
connections. Such a system helps in preventing anonymous clients from sending
arbitrary numbers of group operation messages to the Delivery Service or the MLS
clients.</t>
          <ul empty="true">
            <li>
              <t><strong>RECOMMENDATION:</strong> Anonymous credentials can be used in order to help DoS
attacks prevention, in a privacy preserving manner. Note that the privacy of
these mechanisms has to be adjusted in accordance with the privacy expected
from the secure transport links. (See more discussion further down.)</t>
            </li>
          </ul>
        </section>
        <section anchor="message-suppression-and-error-correction">
          <name>Message Suppression and Error Correction</name>
          <t>As noted above, MLS is designed to provide some robustness in the face of
tampering within the secure transport, i.e., tampering by the Delivery Service.
The confidentiality and authenticity properties of MLS prevent the DS reading or
writing messages.  MLS also provides a few tools for detecting message
suppression, with the caveat that message suppression cannot always be
distinguished from transport failure.</t>
          <t>Each encrypted MLS message carries a "generation" number which is a per-sender
incrementing counter.  If a group member observes a gap in the generation
sequence for a sender, then they know that they have missed a message from that
sender.  MLS also provides a facility for group members to send authenticated
acknowledgments of application messages received within a group.</t>
          <t>As discussed in <xref target="delivery-service"/>, the Delivery Service is trusted to select
the single Commit message that is applied in each epoch from among the ones sent
by group members.  Since only one Commit per epoch is meaningful, it's not
useful for the DS to transmit multiple Commits to clients.  The risk remains
that the DS will use the ability maliciously.</t>
          <t>While it is difficult or impossible to prevent a network adversary from
suppressing payloads in transit, in certain infrastructures such as banks or
governments settings, unidirectional transports can be used and be enforced via
electronic or physical devices such as diodes. This can lead to payload
corruption which does not affect the security or privacy properties of the MLS
protocol but does affect the reliability of the service. In that case specific
measures can be taken to ensure the appropriate level of redundancy and quality
of service for MLS.</t>
          <ul empty="true">
            <li>
              <t><strong>RECOMMENDATION:</strong> If unidirectional transport is used for the secure
transport channel, prefer using a transport protocol which provides Forward
Error Correction.</t>
            </li>
          </ul>
        </section>
      </section>
      <section anchor="intended-security-guarantees">
        <name>Intended Security Guarantees</name>
        <t>MLS aims to provide a number of security guarantees, covering authentication, as
well as confidentiality guarantees to different degrees in different scenarios.</t>
        <section anchor="message-secrecy-authentication">
          <name>Message Secrecy and Authentication</name>
          <t>MLS enforces the encryption of application messages and thus generally
guarantees authentication and confidentiality of application messages sent in a
group.</t>
          <t>In particular, this means that only other members of a given group can decrypt
the payload of a given application message, which includes information about the
sender of the message.</t>
          <t>Similarly, group members receiving a message from another group member can
authenticate that group member as the sender of the message and verify the
message's integrity.</t>
          <t>Message content can be deniable if the signature keys are exchanged over a
deniable channel prior to signing messages.</t>
          <t>Depending on the group settings, handshake messages can be encrypted as well. If
that is the case, the same security guarantees apply.</t>
          <t>MLS optionally allows the addition of padding to messages, mitigating the amount
of information leaked about the length of the plaintext to an observer on the
network.</t>
        </section>
        <section anchor="fs-and-pcs">
          <name>Forward and Post-Compromise Security</name>
          <t>MLS provides additional protection regarding secrecy of past messages and future
messages. These cryptographic security properties are Forward Secrecy (FS) and
Post-Compromise Security (PCS).</t>
          <t>FS means that access to all encrypted traffic history combined with an access to
all current keying material on clients will not defeat the secrecy properties of
messages older than the oldest key of the compromised client.  Note that this
means that clients have the extremely important role of deleting appropriate
keys as soon as they have been used with the expected message, otherwise the
secrecy of the messages and the security for MLS is considerably weakened.</t>
          <t>PCS means that if a group member's state is compromised at some time t1 but the
group member subsequently performs an update at some time t2, then all MLS
guarantees apply to messages sent by the member after time t2, and by other
members after they have processed the update. For example, if an attacker learns
all secrets known to Alice at time t1, including both Alice's long-term secret
keys and all shared group keys, but Alice performs a key update at time t2, then
the attacker is unable to violate any of the MLS security properties after the
updates have been processed.</t>
          <t>Both of these properties are satisfied even against compromised DSs and ASs.</t>
          <t>Confidentiality is mainly ensured on the client side.  Because Forward Secrecy
(FS) and Post-Compromise Security (PCS) rely on the active deletion and
replacement of keying material, any client which is persistently offline may
still be holding old keying material and thus be a threat to both FS and PCS if
it is later compromised.</t>
          <t>MLS partially defends against this problem by active members including
freshness, however not much can be done on the inactive side especially in the
case where the client has not processed messages.</t>
          <ul empty="true">
            <li>
              <t><strong>RECOMMENDATION:</strong> Mandate key updates from clients that are not otherwise
sending messages and evict clients which are idle for too long.</t>
            </li>
          </ul>
          <t>These recommendations will reduce the ability of idle compromised clients to
decrypt a potentially long set of messages that might have followed the point of
the compromise.</t>
          <t>The precise details of such mechanisms are a matter of local policy and beyond
the scope of this document.</t>
        </section>
        <section anchor="Non-Repudiation-vs-Deniability">
          <name>Non-Repudiation vs Deniability</name>
          <t>MLS provides strong authentication within a group, such that a group member
cannot send a message that appears to be from another group member.
Additionally, some services require that a recipient be able to prove to the
service provider that a message was sent by a given client, in order to report
abuse. MLS supports both of these use cases. In some deployments, these services
are provided by mechanisms which allow the receiver to prove a message's origin
to a third party. This is often called "non-repudiation".</t>
          <t>Roughly speaking, "deniability" is the opposite of "non-repudiation", i.e., the
property that it is impossible to prove to a third party that a message was sent
by a given sender.  MLS does not make any claims with regard to deniability.  It
may be possible to operate MLS in ways that provide certain deniability
properties, but defining the specific requirements and resulting notions of
deniability requires further analysis.</t>
        </section>
        <section anchor="associating-a-users-clients">
          <name>Associating a User's Clients</name>
          <t>When the same user uses multiple clients, it may be possible for other members
of a group to recognize all of those clients as belonging to the same user.  For
example, all of a user's clients might present credentials authenticating the
user's identity.  This association among devices might be considered a leak of
private information.  The remainder of this section describes several approaches
for addressing this.</t>
          <t>This risk only arises when the leaf nodes for the clients in question provide
data that can be used to correlate the clients.  So one way to mitigate this
risk is by only doing client-level authentication within MLS. If user-level
authentication is still desirable, the application would have to be provide it
through some other mechanism.</t>
          <t>It is also possible to maintain user-level authentication while hiding
information about the clients that a user owns.  This can be done by having the
clients share cryptographic state, so that they appear as a single client within
the MLS group.  The application would need to provide a synchronization
mechanism so that the clients' state remained consistent across changes to the
MLS group.</t>
          <ul empty="true">
            <li>
              <t><strong>RECOMMENDATION:</strong> Avoid sharing cryptographic state between clients to
improve resilience against compromises.  An attacker could use one compromised
device to establish ownership of a state across other devices and reduce the
ability of the user to recover.</t>
            </li>
          </ul>
        </section>
      </section>
      <section anchor="endpoint-compromise">
        <name>Endpoint Compromise</name>
        <t>The MLS protocol adopts a threat model which includes multiple forms of
endpoint/client compromise. While adversaries are in a very strong position if
they have compromised an MLS client, there are still situations where security
guarantees can be recovered thanks to the PCS properties achieved by the MLS
protocol.</t>
        <t>In this section we will explore the consequences and recommendations regarding
the following compromise scenarios:</t>
        <ul spacing="normal">
          <li>The attacker has access to a specific symmetric encryption key</li>
          <li>The attacker has access to the group secrets for one group</li>
          <li>The attacker has access to a signature oracle for any group</li>
          <li>The attacker has access to the signature key for one group</li>
          <li>The attacker has access to all secrets of a user for all groups (full state
compromise)</li>
        </ul>
        <t>The MLS protocol provides per-sender chains of AEAD keys that are generated from
Group Secrets. These keys are used to protect MLS Plaintext messages which can
be Group Operation or Application messages. The Group Operation messages offer
an additional protection as the secret exchanged within the TreeKEM group key
agreement are public-key encrypted to subgroups with HPKE.</t>
        <section anchor="compromise-of-aead-key-material">
          <name>Compromise of AEAD key material</name>
          <t>In some circumstances, adversaries may have access to specific AEAD keys and
nonces which protect an Application or a Group Operation message. While this is
a very weak kind of compromise, it can be realistic in cases of implementation
vulnerabilities where only part of the memory leaks to the adversary.</t>
          <t>When an AEAD key is compromised, the adversary has access to a set of AEAD keys
for the same chain and the same epoch, hence can decrypt messages sent using
keys of this chain. An adversary cannot send a message to a group which appears
to be from any valid client since they cannot forge the signature.</t>
          <t>The MLS protocol will ensure that an adversary cannot compute any previous AEAD
keys for the same epoch, or any other epochs.  Because of its Forward Secrecy
guarantees, MLS will also retain secrecy of all other AEAD keys generated for
<em>other</em> MLS clients, outside this dedicated chain of AEAD keys and nonces, even
within the epoch of the compromise. However the MLS protocol does not provide
Post Compromise Secrecy for AEAD encryption within an epoch. This means that if
the AEAD key of a chain is compromised, the adversary can compute an arbitrary
number of subsequent AEAD keys for that chain.</t>
          <t>These guarantees are ensured by the structure of the MLS key schedule which
provides Forward Secrecy for these AEAD encryptions, across the messages within
the epoch and also across previous epochs.  Those chains are completely disjoint
and compromising keys across the chains would mean that some Group Secrets have
been compromised, which is not the case in this attack scenario (we explore
stronger compromise scenarios as part of the following sections).</t>
          <t>MLS provides Post-Compromise Secrecy against an active adaptive attacker across
epochs for AEAD encryption, which means that as soon as the epoch is changed, if
the attacker does not have access to more secret material they won't be able to
access any protected messages from future epochs.</t>
          <t>In the case of an Application message, an AEAD key compromise means that the
encrypted application message will be leaked as well as the signature over that
message. This means that the compromise has both confidentiality and privacy
implications on the future AEAD encryptions of that chain.  In the case of a
Group Operation message, only the privacy is affected, as the signature is
revealed, because the secrets themselves are protected by HPKE encryption.</t>
          <t>Note that under that compromise scenario, authentication is not affected in
either of these cases.  As every member of the group can compute the AEAD keys
for all the chains (they have access to the Group Secrets) in order to send and
receive messages, the authentication provided by the AEAD encryption layer of
the common framing mechanism is very weak. Successful decryption of an AEAD
encrypted message only guarantees that a member of the group sent the message.</t>
        </section>
        <section anchor="compromise-of-the-group-secrets-of-a-single-group-for-one-or-more-group-epochs">
          <name>Compromise of the Group Secrets of a single group for one or more group epochs</name>
          <t>The attack scenario considering an adversary gaining access to a set of Group
secrets is significantly stronger. This can typically be the case when a member
of the group is compromised.  For this scenario, we consider that the signature
keys are not compromised. This can be the case for instance if the adversary has
access to part of the memory containing the group secrets but not to the
signature keys which might be stored in a secure enclave.</t>
          <t>In this scenario, the adversary gains the ability to compute any number of AEAD
encryption keys for any AEAD chains and can encrypt and decrypt all messages for
the compromised epochs.</t>
          <t>If the adversary is passive, it is expected from the PCS properties of the MLS
protocol that, as soon as the compromised party remediates the compromise and
sends an honest Commit message, the next epochs will provide message secrecy.</t>
          <t>If the adversary is active, the adversary can follow the protocol and perform
updates on behalf of the compromised party with no ability for an honest group
to recover message secrecy. However, MLS provides PCS against active adaptive
attackers through its Remove group operation. This means that, as long as other
members of the group are honest, the protocol will guarantee message secrecy for
all messages exchanged in the epochs after the compromised party has been
removed.</t>
        </section>
        <section anchor="compromise-by-an-active-adversary-with-the-ability-to-sign-messages">
          <name>Compromise by an active adversary with the ability to sign messages</name>
          <t>Under such a scenario, where an active adversary has compromised an MLS client,
two different settings emerge. In the strongest compromise scenario, the
attacker has access to the signing key and can forge authenticated messages. In
a weaker, yet realistic scenario, the attacker has compromised a client but the
client signature keys are protected with dedicated hardware features which do
not allow direct access to the value of the private key and instead provide a
signature API.</t>
          <t>When considering an active adaptive attacker with access to a signature oracle,
the compromise scenario implies a significant impact on both the secrecy and
authentication guarantees of the protocol, especially if the attacker also has
access to the group secrets. In that case both secrecy and authentication are
broken.  The attacker can generate any message, for the current and future
epochs, until the compromise is remediated and the formerly compromised client
sends an honest update.</t>
          <t>Note that under this compromise scenario, the attacker can perform all
operations which are available to a legitimate client even without access to the
actual value of the signature key.</t>
          <t>Without access to the group secrets, the adversary will not have the ability to
generate messages which look valid to other members of the group and to the
infrastructure as they need to have access to group secrets to compute the
encryption keys or the membership tag.</t>
        </section>
        <section anchor="compromise-of-the-authentication-with-access-to-a-signature-key">
          <name>Compromise of the authentication with access to a signature key</name>
          <t>The difference between having access to the value of the signature key and only
having access to a signing oracle is not about the ability of an active adaptive
network attacker to perform different operations during the time of the
compromise, the attacker can perform every operation available to a legitimate
client in both cases.</t>
          <t>There is a significant difference, however in terms of recovery after a
compromise.</t>
          <t>Because of the PCS guarantees provided by the MLS protocol, when a previously
compromised client performs an honest Commit which is not under the control of
the adversary, both secrecy and authentication of messages can be recovered in
the case where the attacker didn't get access to the key. Because the adversary
doesn't have the key and has lost the ability to sign messages, they cannot
authenticate messages on behalf of the compromised party, even if they still
have control over some group keys by colluding with other members of the group.</t>
          <t>This is in contrast with the case where the signature key is leaked.  In that
case PCS of the MLS protocol will eventually allow recovery of the
authentication of messages for future epochs but only after compromised parties
refresh their credentials securely.</t>
          <t>Beware that in both oracle and private key access, an active adaptive attacker
can follow the protocol and request to update its own credential. This in turn
induces a signature key rotation which could provide the attacker with part or
the full value of the private key depending on the architecture of the service
provider.</t>
          <ul empty="true">
            <li>
              <t><strong>RECOMMENDATION:</strong> Signature private keys should be compartmentalized from
other secrets and preferably protected by an HSM or dedicated hardware
features to allow recovery of the authentication for future messages after a
compromise.</t>
            </li>
          </ul>
        </section>
        <section anchor="security-consideration-in-the-context-of-a-full-state-compromise">
          <name>Security consideration in the context of a full state compromise</name>
          <t>In real-world compromise scenarios, it is often the case that adversaries target
specific devices to obtain parts of the memory or even the ability to execute
arbitrary code in the targeted device.</t>
          <t>Also, recall that in this setting, the application will often retain the
unencrypted messages. If so, the adversary does not have to break encryption at
all to access sent and received messages. Messages may also be sent by using the
application to instruct the protocol implementation.</t>
          <ul empty="true">
            <li>
              <t><strong>RECOMMENDATION:</strong> If messages are stored on the device, they should be
protected using encryption at rest, and the keys used should be stored
securely using dedicated mechanisms on the device.</t>
            </li>
          </ul>
          <ul empty="true">
            <li>
              <t><strong>RECOMMENDATION:</strong> If the threat model of the system is against an adversary
which can access the messages on the device without even needing to attack
MLS, the application should delete plaintext messages and ciphertexts
immediately after encryption or decryption.</t>
            </li>
          </ul>
          <t>Even though, from the strict point of view of the security formalization, a
ciphertext is always public and will forever be, there is no loss in trying to
erase ciphertexts as much as possible.</t>
          <t>Note that this document makes a clear distinction between the way signature keys
and other group shared secrets must be handled.  In particular, a large set of
group secrets cannot necessarily be assumed to be protected by an HSM or secure
enclave features. This is especially true because these keys are extremely
frequently used and changed with each message received by a client.</t>
          <t>However, the signature private keys are mostly used by clients to send a
message. They also provide strong authentication guarantees to other clients,
hence we consider that their protection by additional security mechanisms should
be a priority.</t>
          <t>Overall there is no way to detect or prevent these compromises, as discussed in
the previous sections, performing separation of the application secret states
can help recovery after compromise, this is the case for signature keys but
similar concern exists for the encryption private key used in the TreeKEM Group
Key Agreement.</t>
          <ul empty="true">
            <li>
              <t><strong>RECOMMENDATION:</strong> The secret keys used for public key encryption should be
stored similarly to the way the signature keys are stored, as keys can be used
to decrypt the group operation messages and contain the secret material used
to compute all the group secrets.</t>
            </li>
          </ul>
          <t>Even if secure enclaves are not perfectly secure, or even completely broken,
adopting additional protections for these keys can ease recovery of the secrecy
and authentication guarantees after a compromise where, for instance, an
attacker can sign messages without having access to the key. In certain
contexts, the rotation of credentials might only be triggered by the AS through
ACLs, hence be outside of the capabilities of the attacker.</t>
        </section>
      </section>
      <section anchor="service-node-compromise">
        <name>Service Node Compromise</name>
        <section anchor="general-considerations">
          <name>General considerations</name>
          <section anchor="privacy-of-the-network-connections">
            <name>Privacy of the network connections</name>
            <t>There are many scenarios leading to communication between the application on a
device and the Delivery Service or the Authentication Service. In particular
when:</t>
            <ul spacing="normal">
              <li>The application connects to the Authentication Service to generate or validate
a new credential before distributing it.</li>
              <li>The application fetches credentials at the Delivery Service prior to creating
a messaging group (one-to-one or more than two clients).</li>
              <li>The application fetches service provider information or messages on the
Delivery Service.</li>
              <li>The application sends service provider information or messages to the Delivery
Service.</li>
            </ul>
            <t>In all these cases, the application will often connect to the device via a
secure transport which leaks information about the origin of the request such as
the IP address and depending on the protocol the MAC address of the device.</t>
            <t>Similar concerns exist in the peer-to-peer use cases of MLS.</t>
            <ul empty="true">
              <li>
                <t><strong>RECOMMENDATION:</strong> In the case where privacy or anonymity is important, using
adequate protection such as TOR or a VPN can improve metadata protection.</t>
              </li>
            </ul>
            <t>More generally, using anonymous credentials in an MLS based architecture might
not be enough to provide strong privacy or anonymity properties.</t>
          </section>
        </section>
        <section anchor="delivery-service-compromise">
          <name>Delivery Service Compromise</name>
          <t>MLS is intended to provide strong guarantees in the face of compromise of the
DS. Even a totally compromised DS should not be able to read messages or inject
messages that will be acceptable to legitimate clients. It should also not be
able to undetectably remove, reorder or replay messages.</t>
          <t>However, a malicious DS can mount a variety of DoS attacks on the system,
including total DoS attacks (where it simply refuses to forward any messages)
and partial DoS attacks (where it refuses to forward messages to and from
specific clients).  As noted in <xref target="delivery-guarantees"/>, these attacks are only
partially detectable by clients without an out-of-band channel. Ultimately,
failure of the DS to provide reasonable service must be dealt with as a customer
service matter, not via technology.</t>
          <t>Because the DS is responsible for providing the initial keying material to
clients, it can provide stale keys. This does not inherently lead to compromise
of the message stream, but does allow it to attack forward security to a limited
extent. This threat can be mitigated by having initial keys expire.</t>
          <t>Initial keying material (KeyPackages) using the <tt>basic</tt> Credential type is more
vulnerable to replacement by a malicious or compromised DS, as there is no
built-in cryptographic binding between the identity and the public key of the
client.</t>
          <ul empty="true">
            <li>
              <t><strong>RECOMMENDATION:</strong> Prefer a Credential type in KeyPackages which includes a
strong cryptographic binding between the identity and its key (for example the
<tt>x509</tt> Credential type). When using the <tt>basic</tt> Credential type take extra
care to verify the identity (typically out-of-band).</t>
            </li>
          </ul>
          <section anchor="privacy-of-delivery-and-push-notifications">
            <name>Privacy of delivery and push notifications</name>
            <t>An important mechanism that is often ignored from the privacy considerations are
the push-tokens. In many modern messaging architectures, applications are using
push notification mechanisms typically provided by OS vendors. This is to make
sure that when messages are available at the Delivery Service (or by other
mechanisms if the DS is not a central server), the recipient application on a
device knows about it. Sometimes the push notification can contain the
application message itself which saves a round trip with the DS.</t>
            <t>To "push" this information to the device, the service provider and the OS
infrastructures use unique per-device, per-application identifiers called
push-tokens. This means that the push notification provider and the service
provider have information on which devices receive information and at which
point in time. Alternatively, non-mobile applications could use a websocket or
persistent connection for notifications directly from the DS.</t>
            <t>Even though they can't necessarily access the content, which is typically
encrypted MLS messages, the service provider and the push notification provider
have to be trusted to avoid making correlation on which devices are recipients
of the same message.</t>
            <t>For secure messaging systems, push notifications are often sent real-time as it
is not acceptable to create artificial delays for message retrieval.</t>
            <ul empty="true">
              <li>
                <t><strong>RECOMMENDATION:</strong> If real time notifications are not necessary, one can
delay notifications randomly across recipient devices using a mixnet or other
techniques.</t>
              </li>
            </ul>
            <t>Note that it is quite easy for legal requests to ask the service provider for
the push-token associated to an identifier and perform a second request to the
company operating the push-notification system to get information about the
device, which is often linked with a real identity via a cloud account, a credit
card or other information.</t>
            <ul empty="true">
              <li>
                <t><strong>RECOMMENDATION:</strong> If stronger privacy guarantees are needed with regard to
the push notification provider, the client can choose to periodically connect
to the Delivery Service without the need of a dedicated push notification
infrastructure.</t>
              </li>
            </ul>
          </section>
        </section>
        <section anchor="as-compromise">
          <name>Authentication Service Compromise</name>
          <t>The Authentication Service design is left to the infrastructure designers. In
most designs, a compromised AS is a serious matter, as the AS can serve
incorrect or attacker-provided identities to clients.</t>
          <ul spacing="normal">
            <li>The attacker can link an identity to a credential</li>
            <li>The attacker can generate new credentials</li>
            <li>The attacker can sign new credentials</li>
            <li>The attacker can publish or distribute credentials</li>
          </ul>
          <t>In the past, some systems have had a centralized server generate signature key
pairs and distribute them to clients.  In such cases, the centralized server is
a point of compromise, since it stores signature private keys that can be used
to impersonate clients.  A better approach is instead to generate signature key
pairs in clients and have them "blessed" by the centralized service, e.g., by
having the service issue a credential binding the key pair to the client's
identity.  In this approach, there is still a risk that the centralized service
will authorize additional key pairs, but it will not be able to use existing,
client-generated private keys.</t>
          <ul empty="true">
            <li>
              <t><strong>RECOMMENDATION:</strong> Make clients submit signature public keys to the AS, this
is usually better than the AS generating public key pairs because the AS
cannot sign on behalf of the client. This is a benefit of a Public Key
Infrastructure in the style of the Internet PKI.</t>
            </li>
          </ul>
          <t>An attacker that can generate or sign new credentials may or may not have access
to the underlying cryptographic material necessary to perform such
operations. In that last case, it results in windows of time for which all
emitted credentials might be compromised.</t>
          <ul empty="true">
            <li>
              <t><strong>RECOMMENDATION:</strong> Use HSMs to store the root signature keys to limit the
ability of an adversary with no physical access to extract the top-level
signature private key.</t>
            </li>
          </ul>
          <section anchor="authentication-compromise-ghost-users-and-impersonations">
            <name>Authentication compromise: Ghost users and impersonations</name>
            <t>One important feature of MLS is that all Members know which other members are in
the group at all times. If all Members of the group and the Authentication
Service are honest, no parties other than the members of the current group can
read and write messages protected by the protocol for that Group.</t>
            <t>Details about how to verify the identity of a client depend on the MLS
Credential type used. For example, cryptographic verification of credentials can
be largely performed autonomously on the clients for the <tt>x509</tt> Credential
type. In contrast, when MLS clients use the <tt>basic</tt> Credential type, a larger
degree of trust must be placed in a (likely) centralized authentication
resource, or on out-of-band processes such as manual verification.</t>
            <ul empty="true">
              <li>
                <t><strong>RECOMMENDATION:</strong> Select the strongest MLS Credential type available among
the target members of an MLS group.</t>
              </li>
            </ul>
            <t>If the AS is compromised, it could validate a (or generate a new) signature
keypair for an attacker. Because a user can have many MLS clients running the
MLS protocol, it possibly has many signature keypairs for multiple
devices. These attacks could be very difficult to detect.</t>
            <ul empty="true">
              <li>
                <t><strong>RECOMMENDATION:</strong> Provide a key transparency mechanism for the
Authentication Services to allow public verification of the credentials
authenticated by this service.</t>
              </li>
            </ul>
            <t>Note that when a <tt>basic</tt> Credential is used, the Authentication Service also
needs an out-of-band mechanism to verify the identity asserted in the
Credential.</t>
            <t>In the case where an adversarial keypair is generated for a specific identity,
an infrastructure without any transparency mechanism or out-of-band
authentication mechanism could inject a malicious client into a group by
impersonating a user. This is especially the case in large groups where the UI
might not reflect all the changes back to the users.</t>
            <ul empty="true">
              <li>
                <t><strong>RECOMMENDATION:</strong> Make sure that MLS clients reflect all the membership
changes to the users as they happen. If a choice has to be made because the
number of notifications is too high, a public log should be maintained of the
state of the device so that the user can examine it.</t>
              </li>
            </ul>
            <t>While the ways to handle MLS credentials are not defined by the protocol or the
architecture documents, the MLS protocol has been designed with a mechanism that
can be used to provide out-of-band authentication to users. The
"authentication_secret" generated for each user at each epoch of the group is a
one-time, per client, authentication secret which can be exchanged between users
to prove their identity to each other. This can be done for instance using a QR
code that can be scanned by the other parties.</t>
            <t>Another way to improve the security for the users is to provide a transparency
mechanism which allows each user to check if credentials used in groups have
been published in the transparency log. Another benefit of this mechanism is for
revocation. The users of a group could check for revoked keys (in case of
compromise detection) using a mechanism such as CRLite or some more advanced
privacy preserving technology.</t>
            <ul empty="true">
              <li>
                <t><strong>RECOMMENDATION:</strong> Provide a Key Transparency and Out-of-Band authentication
mechanisms to limit the impact of an Authentication Service compromise.</t>
              </li>
            </ul>
            <t>We note, again, that as described prior to that section, the Authentication
Service may not be a centralized system, and could be realized by many
mechanisms such as establishing prior one-to-one deniable channels, gossiping,
or using trust on first use (TOFU) for credentials used by the MLS Protocol.</t>
            <t>Another important consideration is the ease of redistributing new keys on client
compromise, which helps recovering security faster in various cases.</t>
          </section>
          <section anchor="privacy-of-the-group-membership">
            <name>Privacy of the Group Membership</name>
            <t>Group membership is itself sensitive information and MLS is designed to limit
the amount of persistent metadata. However, large groups often require an
infrastructure which provides server fanout.  In the case of client fanout, the
destination of a message is known by all clients, hence the server usually does
not need this information.  However, they may learn this information through
traffic analysis.  Unfortunately, in a server-side fanout model, the Delivery
Service can learn that a given client is sending the same message to a set of
other clients. In addition, there may be applications of MLS in which the group
membership list is stored on some server associated with the Delivery Service.</t>
            <t>While this knowledge is not a breach of the protocol's authentication or
confidentiality guarantees, it is a serious issue for privacy.</t>
            <ul empty="true">
              <li>
                <t><strong>RECOMMENDATION:</strong> In the case where metadata has to be persisted for
functionality, it should be stored encrypted at rest and then decrypted during
the execution. Applications should also consider anonymous systems for server
fanout (for example <xref target="Loopix"/>).</t>
              </li>
            </ul>
            <t>Some infrastructure keeps a mapping between keys used in the MLS protocol and
user identities. An attacker with access to this information due to compromise
or regulation can associate unencrypted group messages (e.g., Commits and
Proposals) with the corresponding user identity.</t>
            <ul empty="true">
              <li>
                <t><strong>RECOMMENDATION:</strong> Always use encrypted group operation messages to limit
privacy risks.</t>
              </li>
            </ul>
            <t>In certain cases, the adversary can access specific bindings between public keys
and identities. If the signature keys are reused across groups, the adversary
can get more information about the targeted user.</t>
            <ul empty="true">
              <li>
                <t><strong>RECOMMENDATION:</strong> Do not use the same signature keypair across
groups. Update all keys for all groups on a regular basis. Do not preserve
keys in different groups when suspecting a compromise.</t>
              </li>
            </ul>
            <ul empty="true">
              <li>
                <t><strong>RECOMMENDATION:</strong> Separate the service binding the identities and the public
keys from the service which generates or validates the credentials or
cryptographic material of the Clients.</t>
              </li>
            </ul>
          </section>
        </section>
      </section>
      <section anchor="considerations-for-attacks-outside-of-the-threat-model">
        <name>Considerations for attacks outside of the threat model</name>
        <t>Physical attacks on devices storing and executing MLS principals are not
considered in depth in the threat model of the MLS protocol.  While
non-permanent, non-invasive attacks can sometimes be equivalent to software
attacks, physical attacks are considered outside of the MLS threat model.</t>
        <t>Compromise scenarios typically consist of a software adversary, which can
maintain active adaptive compromise and arbitrarily change the behavior of the
client or service.</t>
        <t>On the other hand, security goals consider that honest clients will always run
the protocol according to its specification. This relies on implementations of
the protocol to securely implement the specification, which remains non-trivial.</t>
        <ul empty="true">
          <li>
            <t><strong>RECOMMENDATION:</strong> Additional steps should be taken to protect the device and
the MLS clients from physical compromise. In such settings, HSMs and secure
enclaves can be used to protect signature keys.</t>
          </li>
        </ul>
      </section>
      <section anchor="cryptographic-analysis-of-the-mls-protocol">
        <name>Cryptographic Analysis of the MLS Protocol</name>
        <t>Various academic works have analyzed MLS and the different security guarantees
it aims to provide. The security of large parts of the protocol has been
analyzed by <xref target="BBN19"/> (draft 7), <xref target="ACDT21"/> (draft 11) and <xref target="AJM20"/> (draft 12).</t>
        <t>Individual components of various drafts of the MLS protocol have been analyzed
in isolation and with differing adversarial models, for example, <xref target="BBR18"/>,
<xref target="ACDT19"/>, <xref target="ACCKKMPPWY19"/>, <xref target="AJM20"/>, <xref target="ACJM20"/>, and <xref target="AHKM21"/> analyze the
ratcheting tree as the sub-protocol of MLS that facilitates key agreement, while
<xref target="BCK21"/> analyzes the key derivation paths in the ratchet tree and key
schedule. Finally, <xref target="CHK21"/> analyzes the authentication and cross-group healing
guarantees provided by MLS.</t>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document makes no requests of IANA.</t>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <reference anchor="I-D.ietf-mls-protocol">
          <front>
            <title>The Messaging Layer Security (MLS) Protocol</title>
            <author fullname="Richard Barnes" initials="R." surname="Barnes">
              <organization>Cisco</organization>
            </author>
            <author fullname="Benjamin Beurdouche" initials="B." surname="Beurdouche">
              <organization>Inria &amp; Mozilla</organization>
            </author>
            <author fullname="Raphael Robert" initials="R." surname="Robert">
         </author>
            <author fullname="Jon Millican" initials="J." surname="Millican">
              <organization>Facebook</organization>
            </author>
            <author fullname="Emad Omara" initials="E." surname="Omara">
              <organization>Google</organization>
            </author>
            <author fullname="Katriel Cohn-Gordon" initials="K." surname="Cohn-Gordon">
              <organization>University of Oxford</organization>
            </author>
            <date day="11" month="July" year="2022"/>
            <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 and post-compromise security for groups in size ranging from
   two to thousands.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-mls-protocol-16"/>
        </reference>
      </references>
      <references>
        <name>Informative References</name>
        <reference anchor="KeyTransparency" target="https://KeyTransparency.org">
          <front>
            <title>Key Transparency</title>
            <author initials="" surname="Google">
              <organization/>
            </author>
            <date year="2017"/>
          </front>
        </reference>
        <reference anchor="CAPBR">
          <front>
            <title>Towards robust distributed systems (abstract)</title>
            <author fullname="Eric A. Brewer" initials="E." surname="Brewer">
              <organization/>
            </author>
            <date year="2000"/>
          </front>
          <seriesInfo name="Proceedings of the nineteenth annual ACM symposium on Principles of distributed computing - PODC" value="'00"/>
          <seriesInfo name="DOI" value="10.1145/343477.343502"/>
        </reference>
        <reference anchor="ACCKKMPPWY19" target="https://eprint.iacr.org/2019/1489">
          <front>
            <title>Security Analysis and Improvements for the IETF MLS Standard for Group Messaging</title>
            <author initials="J." surname="Alwen" fullname="Joel Alwen">
              <organization/>
            </author>
            <author initials="M." surname="Capretto" fullname="Margarita Capretto">
              <organization/>
            </author>
            <author initials="M." surname="Cueto" fullname="Miguel Cueto">
              <organization/>
            </author>
            <author initials="C." surname="Kamath" fullname="Chethan Kamath">
              <organization/>
            </author>
            <author initials="K." surname="Klein" fullname="Karen Klein">
              <organization/>
            </author>
            <author initials="I." surname="Markov" fullname="Ilia Markov">
              <organization/>
            </author>
            <author initials="G." surname="Pascual-Perez" fullname="Guillermo Pascual-Perez">
              <organization/>
            </author>
            <author initials="K." surname="Pietrzak" fullname="Krzysztof Pietrzak">
              <organization/>
            </author>
            <author initials="M." surname="Walter" fullname="Michael Walter">
              <organization/>
            </author>
            <author initials="M." surname="Yeo" fullname="Michelle Yeo">
              <organization/>
            </author>
            <date year="2019"/>
          </front>
        </reference>
        <reference anchor="ACDT19" target="https://eprint.iacr.org/2019/1189.pdf">
          <front>
            <title>Security Analysis and Improvements for the IETF MLS Standard for Group Messaging</title>
            <author initials="J." surname="Alwen" fullname="Joel Alwen">
              <organization/>
            </author>
            <author initials="S." surname="Coretti" fullname="Sandro Coretti">
              <organization/>
            </author>
            <author initials="Y." surname="Dodis" fullname="Yevgeniy Dodis">
              <organization/>
            </author>
            <author initials="Y." surname="Tselekounis" fullname="Yiannis Tselekounis">
              <organization/>
            </author>
            <date year="2019"/>
          </front>
        </reference>
        <reference anchor="ACDT21" target="https://eprint.iacr.org/2021/1083.pdf">
          <front>
            <title>Modular Design of Secure Group Messaging Protocols and the Security of MLS</title>
            <author initials="J." surname="Alwen" fullname="Joel Alwen">
              <organization/>
            </author>
            <author initials="S." surname="Coretti" fullname="Sandro Coretti">
              <organization/>
            </author>
            <author initials="Y." surname="Dodis" fullname="Yevgeniy Dodis">
              <organization/>
            </author>
            <author initials="Y." surname="Tselekounis" fullname="Yiannis Tselekounis">
              <organization/>
            </author>
            <date year="2021"/>
          </front>
        </reference>
        <reference anchor="ACJM20" target="https://eprint.iacr.org/2020/752.pdf">
          <front>
            <title>Continuous Group Key Agreement with Active Security</title>
            <author initials="J." surname="Alwen" fullname="Joel Alwen">
              <organization/>
            </author>
            <author initials="S." surname="Coretti" fullname="Sandro Coretti">
              <organization/>
            </author>
            <author initials="D." surname="Jost" fullname="Daniel Jost">
              <organization/>
            </author>
            <author initials="M." surname="Mularczyk" fullname="Marta Mularczyk">
              <organization/>
            </author>
            <date year="2020"/>
          </front>
        </reference>
        <reference anchor="AHKM21" target="https://eprint.iacr.org/2021/1456.pdf">
          <front>
            <title>Server-Aided Continuous Group Key Agreement</title>
            <author initials="J." surname="Alwen" fullname="Joel Alwen">
              <organization/>
            </author>
            <author initials="D." surname="Hartmann" fullname="Dominik Hartmann">
              <organization/>
            </author>
            <author initials="E." surname="Kiltz" fullname="Eike Kiltz">
              <organization/>
            </author>
            <author initials="M." surname="Mularczyk" fullname="Marta Mularczyk">
              <organization/>
            </author>
            <date year="2021"/>
          </front>
        </reference>
        <reference anchor="AJM20" target="https://eprint.iacr.org/2020/1327.pdf">
          <front>
            <title>On The Insider Security of MLS</title>
            <author initials="J." surname="Alwen" fullname="Joel Alwen">
              <organization/>
            </author>
            <author initials="D." surname="Jost" fullname="Daniel Jost">
              <organization/>
            </author>
            <author initials="M." surname="Mularczyk" fullname="Marta Mularczyk">
              <organization/>
            </author>
            <date year="2020"/>
          </front>
        </reference>
        <reference anchor="BBN19" target="https://hal.laas.fr/INRIA/hal-02425229/document">
          <front>
            <title>Formal Models and Verified Protocols for Group Messaging: Attacks and Proofs for IETF MLS</title>
            <author initials="K." surname="Bhargavan" fullname="Karthikeyan Bhargavan">
              <organization/>
            </author>
            <author initials="B." surname="Beurdouche" fullname="Benjamin Beurdouche">
              <organization/>
            </author>
            <author initials="P." surname="Naldurg" fullname="Prasad Naldurg">
              <organization/>
            </author>
            <date year="2019"/>
          </front>
        </reference>
        <reference anchor="BBR18" target="https://hal.inria.fr/hal-02425247/file/treekem+%281%29.pdf">
          <front>
            <title>TreeKEM: Asynchronous Decentralized Key Management for Large Dynamic Groups A protocol proposal for Messaging Layer Security (MLS)</title>
            <author initials="K." surname="Bhargavan" fullname="Karthikeyan Bhargavan">
              <organization/>
            </author>
            <author initials="R." surname="Barnes" fullname="Richard Barnes">
              <organization/>
            </author>
            <author initials="E." surname="Rescorla" fullname="Eric Rescorla">
              <organization/>
            </author>
            <date year="2018"/>
          </front>
        </reference>
        <reference anchor="BCK21" target="https://eprint.iacr.org/2021/137.pdf">
          <front>
            <title>Cryptographic Security of the MLS RFC, Draft 11</title>
            <author initials="C." surname="Brzuska" fullname="Chris Brzuska">
              <organization/>
            </author>
            <author initials="E." surname="Cornelissen" fullname="Eric Cornelissen">
              <organization/>
            </author>
            <author initials="K." surname="Kohbrok" fullname="Konrad Kohbrok">
              <organization/>
            </author>
            <date year="2021"/>
          </front>
        </reference>
        <reference anchor="CHK21" target="https://www.usenix.org/system/files/sec21-cremers.pdf">
          <front>
            <title>The Complexities of Healing in Secure Group Messaging: Why Cross-Group Effects Matter</title>
            <author initials="C." surname="Cremers" fullname="Cas Cremers">
              <organization/>
            </author>
            <author initials="B." surname="Hale" fullname="Britta Hale">
              <organization/>
            </author>
            <author initials="K." surname="Kohbrok" fullname="Konrad Kohbrok">
              <organization/>
            </author>
            <date year="2021"/>
          </front>
        </reference>
        <reference anchor="Loopix">
          <front>
            <title>The Loopix Anonymity System</title>
            <author initials="A. M." surname="Piotrowska" fullname="Ania M. Piotrowska">
              <organization/>
            </author>
            <author initials="J." surname="Hayes" fullname="Jamie Hayes">
              <organization/>
            </author>
            <author initials="T." surname="Elahi" fullname="Tariq Elahi">
              <organization/>
            </author>
            <author initials="S." surname="Meiser" fullname="Sebastian Meiser">
              <organization/>
            </author>
            <author initials="G." surname="Danezis" fullname="George Danezis">
              <organization/>
            </author>
            <date year="2017"/>
          </front>
        </reference>
        <reference anchor="TOR" target="https://svn.torproject.org/svn/projects/design-paper/tor-design.html">
          <front>
            <title>Tor: The Second-Generation Onion Router</title>
            <author initials="R." surname="Dingledine" fullname="Roger Dingledine">
              <organization/>
            </author>
            <author initials="N." surname="Mathewson" fullname="Nick Mathewson">
              <organization/>
            </author>
            <author initials="P." surname="Syverson" fullname="Paul Syverson">
              <organization/>
            </author>
            <date year="2004"/>
          </front>
        </reference>
        <reference anchor="WireGuard" target="https://www.wireguard.com/papers/wireguard.pdf">
          <front>
            <title>WireGuard: Next Generation Kernel Network Tunnel</title>
            <author initials="J." surname="Donenfeld" fullname="Jason Donenfeld">
              <organization/>
            </author>
            <date year="2020"/>
          </front>
        </reference>
        <reference anchor="RFC6120">
          <front>
            <title>Extensible Messaging and Presence Protocol (XMPP): Core</title>
            <author fullname="P. Saint-Andre" initials="P." surname="Saint-Andre">
              <organization/>
            </author>
            <date month="March" year="2011"/>
            <abstract>
              <t>The Extensible Messaging and Presence Protocol (XMPP) is an application profile of the Extensible Markup Language (XML) that enables the near-real-time exchange of structured yet extensible data between any two or more network entities.  This document defines XMPP's core protocol methods: setup and teardown of XML streams, channel encryption, authentication, error handling, and communication primitives for messaging, network availability ("presence"), and request-response interactions.  This document obsoletes RFC 3920.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6120"/>
          <seriesInfo name="DOI" value="10.17487/RFC6120"/>
        </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">
              <organization/>
            </author>
            <author fullname="S. Santesson" initials="S." surname="Santesson">
              <organization/>
            </author>
            <author fullname="S. Farrell" initials="S." surname="Farrell">
              <organization/>
            </author>
            <author fullname="S. Boeyen" initials="S." surname="Boeyen">
              <organization/>
            </author>
            <author fullname="R. Housley" initials="R." surname="Housley">
              <organization/>
            </author>
            <author fullname="W. Polk" initials="W." surname="Polk">
              <organization/>
            </author>
            <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="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="25" month="November" year="2022"/>
            <abstract>
              <t>   This document describes extensions to the Messaging Layer Security
   (MLS) protocol.

Discussion Venues

   This note is to be removed before publishing as an RFC.

   Source for this draft and an issue tracker can be found at
   https://github.com/mlswg/mls-extensions.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-mls-extensions-00"/>
        </reference>
        <reference anchor="I-D.mahy-mls-content-adv">
          <front>
            <title>Content Type Advertisement for Message Layer Security (MLS)</title>
            <author fullname="Rohan Mahy" initials="R." surname="Mahy">
              <organization>Wire</organization>
            </author>
            <date day="23" month="October" year="2022"/>
            <abstract>
              <t>   This document describes a default mechanism for the advertisement of
   content types and content type capabilities inside the Message Layer
   Security (MLS).  It defines two new extensions and a minimal framing
   format.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-mahy-mls-content-adv-00"/>
        </reference>
        <reference anchor="I-D.ietf-mls-federation">
          <front>
            <title>The Messaging Layer Security (MLS) Federation</title>
            <author fullname="Emad Omara" initials="E." surname="Omara">
              <organization>Google</organization>
            </author>
            <author fullname="Raphael Robert" initials="R." surname="Robert">
         </author>
            <date day="19" month="May" year="2022"/>
            <abstract>
              <t>   This document describes how the Messaging Layer Security (MLS)
   protocol can be used in a federated environment.

Discussion Venues

   This note is to be removed before publishing as an RFC.

   Source for this draft and an issue tracker can be found at
   https://github.com/mlswg/mls-federation.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-mls-federation-01"/>
        </reference>
        <reference anchor="RFC3552">
          <front>
            <title>Guidelines for Writing RFC Text on Security Considerations</title>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla">
              <organization/>
            </author>
            <author fullname="B. Korver" initials="B." surname="Korver">
              <organization/>
            </author>
            <date month="July" year="2003"/>
            <abstract>
              <t>All RFCs are required to have a Security Considerations section. Historically, such sections have been relatively weak.  This document provides guidelines to RFC authors on how to write a good Security Considerations section.   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="72"/>
          <seriesInfo name="RFC" value="3552"/>
          <seriesInfo name="DOI" value="10.17487/RFC3552"/>
        </reference>
        <reference anchor="RFC9000">
          <front>
            <title>QUIC: A UDP-Based Multiplexed and Secure Transport</title>
            <author fullname="J. Iyengar" initials="J." role="editor" surname="Iyengar">
              <organization/>
            </author>
            <author fullname="M. Thomson" initials="M." role="editor" surname="Thomson">
              <organization/>
            </author>
            <date month="May" year="2021"/>
            <abstract>
              <t>This document defines the core of the QUIC transport protocol.  QUIC provides applications with flow-controlled streams for structured communication, low-latency connection establishment, and network path migration. QUIC includes security measures that ensure confidentiality, integrity, and availability in a range of deployment circumstances.  Accompanying documents describe the integration of TLS for key negotiation, loss detection, and an exemplary congestion control algorithm.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9000"/>
          <seriesInfo name="DOI" value="10.17487/RFC9000"/>
        </reference>
        <reference anchor="RFC8446">
          <front>
            <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla">
              <organization/>
            </author>
            <date month="August" year="2018"/>
            <abstract>
              <t>This document specifies version 1.3 of the Transport Layer Security (TLS) protocol.  TLS allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t>
              <t>This document updates RFCs 5705 and 6066, and obsoletes RFCs 5077, 5246, and 6961.  This document also specifies new requirements for TLS 1.2 implementations.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8446"/>
          <seriesInfo name="DOI" value="10.17487/RFC8446"/>
        </reference>
        <reference anchor="RFC6071">
          <front>
            <title>IP Security (IPsec) and Internet Key Exchange (IKE) Document Roadmap</title>
            <author fullname="S. Frankel" initials="S." surname="Frankel">
              <organization/>
            </author>
            <author fullname="S. Krishnan" initials="S." surname="Krishnan">
              <organization/>
            </author>
            <date month="February" year="2011"/>
            <abstract>
              <t>Over the past few years, the number of RFCs that define and use IPsec and Internet Key Exchange (IKE) has greatly proliferated.  This is complicated by the fact that these RFCs originate from numerous IETF working groups: the original IPsec WG, its various spin-offs, and other WGs that use IPsec and/or IKE to protect their protocols' traffic.</t>
              <t>This document is a snapshot of IPsec- and IKE-related RFCs.  It includes a brief description of each RFC, along with background information explaining the motivation and context of IPsec's outgrowths and extensions.  It obsoletes RFC 2411, the previous  "IP Security Document Roadmap."</t>
              <t>The obsoleted IPsec roadmap (RFC 2411) briefly described the interrelationship of the various classes of base IPsec documents. The major focus of RFC 2411 was to specify the recommended contents of documents specifying additional encryption and authentication algorithms.  This document is not an Internet Standards Track  specification; it is published for informational purposes.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6071"/>
          <seriesInfo name="DOI" value="10.17487/RFC6071"/>
        </reference>
      </references>
    </references>
    <section anchor="contributors" numbered="false" toc="include" removeInRFC="false">
      <name>Contributors</name>
      <contact initials="R." surname="Barnes" fullname="Richard Barnes">
        <organization>Cisco</organization>
        <address>
          <email>rlb@ipv.sx</email>
        </address>
      </contact>
      <contact initials="K." surname="Cohn-Gordon" fullname="Katriel Cohn-Gordon">
        <organization>Meta Platforms</organization>
        <address>
          <email>me@katriel.co.uk</email>
        </address>
      </contact>
      <contact initials="C." surname="Cremers" fullname="Cas Cremers">
        <organization>CISPA Helmholtz Center for Information Security</organization>
        <address>
          <email>cremers@cispa.de</email>
        </address>
      </contact>
      <contact initials="B." surname="Hale" fullname="Britta Hale">
        <organization>Naval Postgraduate School</organization>
        <address>
          <email>britta.hale@nps.edu</email>
        </address>
      </contact>
      <contact initials="A." surname="Kwon" fullname="Albert Kwon">
        <organization>Badge Inc.</organization>
        <address>
          <email>kwonalbert@badgeinc.com</email>
        </address>
      </contact>
      <contact initials="K." surname="Kohbrok" fullname="Konrad Kohbrok">
        <organization>Phoenix R&amp;D</organization>
        <address>
          <email>konrad.kohbrok@datashrine.de</email>
        </address>
      </contact>
      <contact initials="R." surname="Mahy" fullname="Rohan Mahy">
        <organization>Wire</organization>
        <address>
          <email>rohan.mahy@wire.com</email>
        </address>
      </contact>
      <contact initials="B." surname="McMillion" fullname="Brendan McMillion">
        <organization/>
        <address>
          <email>brendanmcmillion@gmail.com</email>
        </address>
      </contact>
      <contact initials="T. van der" surname="Merwe" fullname="Thyla van der Merwe">
        <organization/>
        <address>
          <email>tjvdmerwe@gmail.com</email>
        </address>
      </contact>
      <contact initials="J." surname="Millican" fullname="Jon Millican">
        <organization>Meta Platforms</organization>
        <address>
          <email>jmillican@fb.com</email>
        </address>
      </contact>
      <contact initials="R." surname="Robert" fullname="Raphael Robert">
        <organization>Phoenix R&amp;D</organization>
        <address>
          <email>ietf@raphaelrobert.com</email>
        </address>
      </contact>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA9W965LbVpYm+n8/BY4cM5JcTOpSdldZFaFxOlOys2RZOUq5
PB1nTtggCSZRCQIsAMw0rXI/+6z7XhsA066ZPj9G0V2WSALY2Jd1/da3Tk5O
Ql/2VfEi+7ApsrdF1+XXZX2dfZsfija7Kpb7tuwP2aO33149zk7b5absi2W/
b4uQLxZtcfsig2/SL1bNss63cMdVm6/7k7Lo1yfbqjvJ3Y9Onj0Ny7wvrpv2
8CIr63UTQrlrX2R9u+/650+ffvH0ecjbIn9hYwg3xeGuaVcvsou6L9q66E/O
8QEhdH1er37Mq6aGhx6KLuzKF9n/2zfLWdY1bd8W6w7+dtjiX/6/EPJ9v2na
FyE7CRn8KevuRfbVPPuq2LerZr/cFPQxv8JXRf33fFvWw2+b9jqvy1/yvmxq
HFBb5tl/zd42v5RVldMvim1eVvBq8PZfLuzi+bLZJg9+Nc/eF92yaeUyfuyr
tlymn6cPnHhQcdN+2fbr7dQT3m3zNrn9Nl+5D9N7f90011WR3Bp+3uCvv7ym
70aPuJrDFFzvb/0zrtqyLm/zzn+TPujDXdnDQvondSX9+Muevxo96HSencNm
WLrnnFZ57T5MH/FD2SZvksOPv7yDD+nOYdnUfVsu9j1uhxO54ftyucnbVfZV
DnusC3TLF9lZCYsR7EZttfiy3N3Ou5/tujc53KuosrNmU598DRu1qfXit0Wf
Z5dV3q+bdtvFu2yLL2/4KhjPfH9j9zqDeTtri23RxgFcXF2eZt8U1XbTVP0v
2VmBpyCDO8IM433pleNpsYcs+T5fLstul89XhT3kK/gdjOubnFabHvJdfptX
2WXT9ddtvtrDAc2ulpumqeLtFnTVfANXfVnvunmx2tsdT6tF0fbZm7v46l/l
q+sCRricx1vcwPc5/fTLBX5dwre4HjaTTQ1Ph/9sFm1zo3e63DRFXf6cvf+v
5+5W9NP5Df/0y1Xe590Gdl7hX/R9s4E98jbfHPResi90MfH7+Ra+j3sjTlJR
r/Dq5Vs4cSW9mM0EfbVdbvmbL6/x8+TqD5tDlWe3cP0K1upt0d65x/Z/v11t
8aOJC/8KS0kPXOa/uYv+vpUffrleJDd5n+82OezI9w3O9b3zSGKq5d+39HM+
IaVurdsCBGb2pjh8aPMaNhK8+/Lwgs4W/Onz9rroX2Sbvt91L548GfxuDg+2
n7K2gV9k/if6NawgfPv86bM/6ScmrvnPif5FZYLIK/j47PTyq/cvsvN3F/Nn
T+fPnn32+ZM/fvbHz/70pzn853NQKPCb07OzN2/eXl7+8O/PvuB7yoAemK47
hc156MouA62SXWx3bXMLJ6juOzpsPajJi1cfXpPeu0LNg8ICv/m6bfa7qEIf
hOR9vgjjl4mrDat0Wt0V9eCLtzCvOQwqB4mwa4u+b4Y/KK/3KHP2xeirs03R
475/k8P6bQZfvsFZz95UcPYG31xUoMrguTfN7eCbr/ewz4p222SXebfc59XJ
ZdEWvwzv3P5y6H7pm3V2CZuq/SW/GQ15Sbvyh7xS6Z9+WcBTsn8v+H2GO6vY
wenu52W+bHFXPcGZffLssz9/wYt7/uH/hmW9gtu3DWgKXNJy8OW/F7fXcEAP
2XmzKrvhl2Ve1/AOH7qiKm6afS2/+H3T9OzPX8x3q7VO1fNn6VS9bVb7Km+z
86Irr+sMlpAmrxhOQXbZNmBdNRXPJU6dzTJcBDOYTtLzZ/+3TNLzZ0+ePf3z
H+Mk/fXt86fpJJ2BzVDW+2bfybSgJDu9bgvaTBkYLpvsdIkC0yZlMBtP/9Nn
4xxMHrjur6C3xwIEhMdbXNblL4eb3zsNT5/86fPnNgvfvHk73CpXRXtbtCen
5apYZfdPyX/GXjhvwAYvb8BWafstLO7g61flTZG9KcEs+s95fdgFn33+b/b+
403wriZ36aLuypV3kyZ3///Wev//sKTP/vj8T/pOX3313VBQvkZFX4FrsSrk
YP+taMt1CQscz/uEQASzDwzC5Q1fAz9t1vw7Faf/gsQEtdRvYDEPoLe+2qDy
u82HM3PMJYu/uGzzDuzH7/JqtRfDYzhBYL7Oqzzv5uv2ycV37y9O8ZOTp88/
e/758+dfPAEXdo97l6fq/bM/p1P1Abb2m1dv4c27Q73ctE2Ne/+8WMIlbV6V
v8Cc4Rl4m9f5NcsFnJBvcRDZ+QFGCe4dTWOXnWY7mV38y67pYA3wx/e74oM5
/fP/4ZyOfJ7kdI2cUZ3NB346S3SCcT7jTH72pyfrsiqegAte3BTbP/yX539+
9l+ekw56QFN79mYoWM7aw65vrtEUhaf6g4VqBpXz+9dns4w8/+zZs39BuJyB
X9CBPf/LvrvJp14RZGtdVGXXjQ7jyCH5vVLkj3bgzr4ZvSpKkLNmu6uKn8u+
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
AA==

-->

</rfc>
