<?xml version='1.0' encoding='utf-8'?>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc2629 version 1.3.24 -->
<!DOCTYPE rfc SYSTEM "rfc2629-xhtml.ent">
<?rfc toc="yes"?>
<?rfc sortrefs="yes"?>
<?rfc symrefs="yes"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-mls-architecture-07" category="info" obsoletes="" updates="" submissionType="IETF" xml:lang="en" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 2.47.0 -->
  <front>
    <title abbrev="MLS Architecture">The Messaging Layer Security (MLS) Architecture</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-mls-architecture-07"/>
    <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="Kwon" fullname="Albert Kwon">
      <organization>MIT</organization>
      <address>
        <email>kwonal@mit.edu</email>
      </address>
    </author>
    <author initials="A." surname="Duric" fullname="Alan Duric">
      <organization>Wire</organization>
      <address>
        <email>alan@wire.com</email>
      </address>
    </author>
    <date year="2021" month="October" day="04"/>
    <area>Security</area>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <t>The Messaging Layer Security (MLS) protocol <xref target="MLSPROTO" format="default"/> document has
the role of defining a Group Key Agreement, all the necessary
cryptographic operations, and serialization/deserialization functions
necessary to create a scalable and secure group messaging protocol.
The MLS protocol is meant to protect against eavesdropping, tampering,
message forgery, and provide good properties such as forward-secrecy
(FS) and post-compromise security (PCS) in the case of past or future
device compromises.</t>
      <t>This document, on the other hand is intended to describe 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 mechanism
that are part of the MLS protocol (ie. frequency of public encryption
key rotation).</t>
      <t>The document also extends the guidance to 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, most will vastly
influence the overall security guarantees that are achieved by the
overall messaging system. 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" numbered="true" toc="default">
      <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>DISCLAIMER: A lot of work is still ongoing on the current version of
this draft. Especially, this preliminary writing of the security
considerations has not been reviewed by the working group yet and
might contain errors.
Please file an issue on the document's GitHub if you find errors.</t>
      <t>[[TODO: Remove disclaimer.]]</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 when the service provider they are using performs
unsatisfactorily.</t>
      <t>Messaging Layer Security (MLS) specifies an architecture (this
document) and an abstract protocol <xref target="MLSPROTO" format="default"/> 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" format="default"/>. In addition, it does not
specify a complete wire encoding, but rather a set of abstract data
structures which can then be mapped onto a variety of concrete
encodings, such as TLS <xref target="RFC8446" format="default"/>, CBOR <xref target="RFC7049" format="default"/>, and
JSON <xref target="RFC7159" format="default"/>.  Implementations which adopt compatible encodings
will have some degree of interoperability at the message level, though
they may have incompatible 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" numbered="true" toc="default">
      <name>General Setting</name>
      <t>Informally, a group is a set of users who possibly use multiple
endpoint devices to interact with the Service Provider (SP).
A group may be as small as two members (the simple case of person to
person messaging) or as large as thousands.</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 maintaining a binding between a unique identifier (identity) and
the public key material (credential) used for authentication in the
MLS protocol. This functionality must also be able to generate these
credentials or validate them if they are provided by MLS clients.</li>
        <li>A Delivery Service (DS) functionality which can receive and
redistributing 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 it is not necessarily the case.</t>
      <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, redistribute and validate their
credentials themselves.</t>
      <t>Similarly to 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 the MLS
protocol requires group operation messages to be processed in-order by
all MLS clients.</t>
      <t>In some sense, a set of MLS clients which can achieve the AS and DS
functionalities without relying on an external party do not need a
Service Provider.</t>
      <artwork name="" type="" align="left" alt=""><![CDATA[
      ----------------      --------------
     | Authentication |    | Delivery     |
     | Service (AS)   |    | Service (DS) |
      ----------------      --------------
                         /        |         \            Group
                        / ************************************
                       /  *       |           \              *
            ----------    *   ----------        ----------   *
           | Client 0 |   *  | Member 1 |      | Member N |  *
            ----------    *   ----------        ----------   *
           ............   *  ............      ............  *
           User 0         *  User 0            User 1        *
                          *                                  *
                          ************************************
]]></artwork>
      <t>In many systems, the AS and the DS are actually operated by the same
entity and may even be the same server. However, they are logically
distinct and, in other systems, may be operated by different entities.
Other partitions are also possible, such as having a separate
directory functionality or service.</t>
      <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 <xref target="fs-and-pcs" format="default"/>. As a consequence of that
change, the group secrets are updated</li>
      </ol>
      <t>Clients may wish to do the following:</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;</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 client 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 authentication and access control at the application layer.</t>
      <t>Thus, for instance, while the MLS protocol allows for any existing
member of a group to add a new client, applications which use MLS
might enforce additional restrictions for which only a subset of
members can qualify, and thus will handle enforcing group policies
(such as determining if a user is allowed to add new users to the
group) at the application level.</t>
      <section anchor="group-members-and-clients" numbered="true" toc="default">
        <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 by
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 and its signature key pair uniquely defines its
identity to other clients or members in the Group.
In some messaging systems, clients belonging to the same user must
all share the same identity key pair, but MLS does not assume this.</t>
        <t>Users will typically own multiple clients, potentially one or more per
end-user devices (phones, web clients or other devices...) and may
choose to authenticate using the same signature key across devices,
using one signature key per device or even one signature key per group.</t>
        <t>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.</t>
      </section>
      <section anchor="authentication-service" numbered="true" toc="default">
        <name>Authentication Service</name>
        <t>The Authentication Service (AS) has to provide two functionalities:</t>
        <ol spacing="normal" type="1">
          <li>authenticate the credentials (i.e. the identity/signature keypair)
used in a group</li>
          <li>authenticate messages sent in groups given the signature over the
message and the sending member's credential</li>
        </ol>
        <t>The AS is considered an abstract layer by the MLS specification, part
of this service could be, for instance, running on the members'
devices, while another part is a separate entity entirely.</t>
        <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 Section <xref target="as-compromise" format="default"/>.</t>
        <section anchor="credential-authentication" numbered="true" toc="default">
          <name>Credential Authentication</name>
          <t>In many cases, the first functionality might be provided by a service
which fulfills a role similar to a certification authority in the
WebPKI: it provides a binding of an identity (e.g., a user name, phone
number, email address, etc) to a signature key. The identity/signature
key pair can then either be used directly in a group, or as an root of
trust which in turn authenticates credentials used in the group.</t>
          <t>The flexibility afforded by the latter option allows for multiple
infrastructure considerations and has the benefit of providing ways to
use different signature keys across different groups by using
hierarchical authentication keys. This flexibility also comes at the
price of a security tradeoff, described in the security
considerations, between potential unlinkability of the signature keys
across groups and the amount of time required to reinstate
authentication and secrecy of messages after the compromise of a
device.</t>
        </section>
        <section anchor="message-authentication" numbered="true" toc="default">
          <name>Message Authentication</name>
          <t>MLS messages are authenticated by a signature conforming to the
signature scheme of the group's ciphersuite. To allow for message
deniability (see Section <xref target="Non-Repudiation-vs-Deniability" format="default"/>), messages
are not required to be signed by the private key corresponding to a
member's credential, but the key must be authenticated using some
mechanism. Thus, message authentication relies on the accuracy of
the key's authentication vice the credential authentication.</t>
          <t>While credential authentication can be performed by a separate entity,
message authentication should be performed by each member separately
due to the encryption layer of the protocol which protects the
signature of the message.</t>
        </section>
      </section>
      <section anchor="delivery-service" numbered="true" toc="default">
        <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>To act 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 the other client is offline.</li>
          <li>To route messages between clients and to act as a message
broadcaster, taking in one message and forwarding it to multiple
clients (also known as "server side fanout").</li>
        </ul>
        <t>Because the MLS protocol provides a way for clients to send and receive
application messages asynchronously, it only provides causal
ordering of application messages from senders while it has to enforce
global ordering of group operations to provide Group Agreement.
[[TODO: Casual ordering?]]</t>
        <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 from the point of
view of the security analysis.</t>
        <section anchor="key-storage" numbered="true" toc="default">
          <name>Key Storage</name>
          <t>Upon joining the system, each client stores its initial cryptographic
key material with the Delivery Service. This key material, called a
KeyPackage, advertises the functional abilities of the client such as
supported protocol versions and 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 material signed with
the signature public key associated with the credential.</li>
          </ul>
          <t>As noted above, users may own multiple clients, each with their
own keying material, and thus there may be multiple entries
stored by each user.</t>
          <t>The Delivery Service is also responsible for allowing users to add,
remove or update their initial key material, and for ensuring
that the identifier for these keys are unique across all keys
stored on the Delivery Service.</t>
        </section>
        <section anchor="key-retrieval" numbered="true" toc="default">
          <name>Key Retrieval</name>
          <t>When a client wishes to establish a group, it first contacts the Delivery
Service to request a KeyPackage for each other client, authenticates the
KeyPackages using the signature keys, and then can use those to form
the group.</t>
        </section>
        <section anchor="delivery-guarantees" numbered="true" toc="default">
          <name>Delivery of messages and attachments</name>
          <t>The main responsibility of the Delivery Service is to ensure delivery
of messages. Specifically, we assume that Delivery Services provide:</t>
          <ul spacing="normal">
            <li>Reliable delivery: when a message is provided to the Delivery Service,
it is eventually delivered to all clients.</li>
            <li>In-order delivery: messages are delivered to the group
in the order they are received by the Delivery Service
and in approximately the order in which they are sent
by clients. The latter is an approximate guarantee because
multiple clients may send messages at the same time
and so the Delivery Service needs some latitude in enforcing
ordering across clients.</li>
            <li>Consistent ordering: the Delivery Service must ensure that all clients
have the same view of message ordering for cryptographically
relevant operations. This means that the Delivery Service MUST enforce
global consistency of the ordering of group operation messages.</li>
          </ul>
          <t>Note that the protocol provides three important pieces of information
within an MLSCiphertext message in order to provide ordering:</t>
          <ul spacing="normal">
            <li>The Group Identifier (GID) to allow for distinguishing the group for
which the message has been sent;</li>
            <li>The Epoch number, which represents the number of changes (version) of
the group associated with a specific GID, and allows for
lexicographical ordering of messages from different epochs within the
same group;</li>
            <li>The Content Type of the message, which allows the Delivery Service to
 determine the ordering requirement on the message.</li>
          </ul>
          <t>The MLS protocol itself can verify these properties. For instance, if
the Delivery Service reorders messages from a client or provides different
clients with inconsistent orderings, then clients can detect this
misconduct. However, the protocol relies on the ordering, and on the
fact that only one honest group operation message is fanned-out to
clients per Epoch, to provide clients with a consistent view of the
evolving Group State.</t>
          <t>Note that some forms of Delivery Service misbehavior are still possible and
difficult 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
distinguish this form of Denial of Service (DoS) attack.</t>
        </section>
        <section anchor="membership-knowledge" numbered="true" toc="default">
          <name>Membership knowledge</name>
          <t>Group membership is itself sensitive information and MLS is designed
to drastically limit the amount of persistant metadata. However, large
groups often require an infrastructure which provides server fanout.
In the case of client fanout, the destinations 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 break of authentication or
confidentiality, it is a serious issue for privacy. In the case where
metadata has to be persisted for functionality, it SHOULD be stored
encrypted at rest.</t>
        </section>
        <section anchor="membership-and-offline-members" numbered="true" toc="default">
          <name>Membership and offline members</name>
          <t>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 cannot inherently defend against this problem, especially in the
case where the client has not processed messages, but MLS-using
systems can enforce some mechanism to try to retain these properties.
Typically this will consist of evicting clients which are idle for too
long, or mandate a silent key update from clients that is not attached to
other messaging traffic, thus containing the threat of compromise. The
precise details of such mechanisms are a matter of local policy and beyond
the scope of this document.</t>
        </section>
      </section>
      <section anchor="functional-requirements" numbered="true" toc="default">
        <name>Functional Requirements</name>
        <t>MLS is designed as a large scale group messaging protocol and hence
aims to provide 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 as large as 50,000 members,
typically including many users using multiple devices.</t>
        <section anchor="membership-changes" numbered="true" toc="default">
          <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.  Regardless, MLS does not allow for or support addition
or removal of group members without informing all other members.</t>
          <t>Once a client is part of a group, the set of devices controlled by the
user can only be altered by an authorized member of the group.
This authorization could depend on the application: some applications
might want to allow certain members of the group to add or
remove devices on behalf of another member, while other applications
might want a more strict policy and allow only the owner of the
devices to add or remove them at the potential cost of weaker PCS
guarantees. Application setup may also determine other forms of
membership validity, e.g. through an identity key alignment to the
member with separate signature keys per device. 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>[[OPEN ISSUE: Above paragraph conflicts slightly under assumptions about
multiple device memberships vs. those described below under "Support for
Multiple Devices"]]</t>
          <t>Members who are removed from a group do not enjoy special privileges:
compromise of a removed group member does not affect the security
of messages sent after their removal but might affect previous messages
if the group secrets have not been deleted properly.</t>
        </section>
        <section anchor="parallel-groups" numbered="true" toc="default">
          <name>Parallel Groups</name>
          <t>Any user 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>Some applications may strengthen connectivity among parallel groups by
requiring periodic key updates from a user across all groups in which they have
membership, or using the PSK mechanism to link healing properties among
parallel groups. Such application choices however are outside the scope of MLS.</t>
        </section>
        <section anchor="security-of-attachments" numbered="true" toc="default">
          <name>Security of Attachments</name>
          <t>The security properties expected for attachments in the MLS protocol
are very similar to the ones expected from messages. The distinction
between messages and attachments stems from the fact that the typical
average time between the download of a message and the one from the
attachments may be different. For many reasons (a typical reason being
the lack of high bandwidth network connectivity), the lifetime of the
cryptographic keys for attachments is usually higher than for
messages, hence slightly weakening the PCS guarantees for attachments.</t>
        </section>
        <section anchor="asynchronous-usage" numbered="true" toc="default">
          <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 shared keys, add or
remove new members, and send messages and attachments 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" numbered="true" toc="default">
          <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. An application can, for
example, decide to provide specific permissions to a group
administrator that will be the one to perform add and remove
operations, but the flexibility is immense here. 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" spacing="normal">
            <li>
              <strong>RECOMMENDATION:</strong>
Prefer using encrypted group operation messages to avoid privacy
issues related to non-encrypted signatures.</li>
          </ul>
          <t>Note that in the default case of encrypted handshake messages, the
application level must make sure 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" spacing="normal">
            <li>
              <strong>RECOMMENDATION:</strong>
Avoid using inconsistent access control policies in the case of
encrypted group operations.</li>
          </ul>
        </section>
        <section anchor="recovery-after-state-loss" numbered="true" toc="default">
          <name>Recovery After State Loss</name>
          <t>Group members whose local MLS state is lost or corrupted
can reinitialize their state and continue participating in the
group. This 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>
          <t>[[OPEN ISSUE: The previous statement seems too strong, establish
what exact functional requirement we have regarding state recovery.
Previously: "This may entail some level of message loss, but
does not result in permanent exclusion from the group."
-- Statement edited]]</t>
        </section>
        <section anchor="support-for-multiple-devices" numbered="true" toc="default">
          <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 undermine the FS and PCS guarantees
provided by MLS.</t>
        </section>
        <section anchor="extensibility-pluggability" numbered="true" toc="default">
          <name>Extensibility / Pluggability</name>
          <t>Messages that do not affect the group state can carry an arbitrary
payload with the purpose of sharing that payload between group
members. No assumptions are made about the format of the payload.</t>
        </section>
        <section anchor="federation" numbered="true" toc="default">
          <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, and infrastructure functionalities.</t>
        </section>
        <section anchor="compatibility-with-future-versions-of-mls" numbered="true" toc="default">
          <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>
        </section>
      </section>
    </section>
    <section anchor="security-and-privacy-considerations" numbered="true" toc="default">
      <name>Security and Privacy Considerations</name>
      <t>MLS adopts the Internet threat model <xref target="RFC3552" format="default"/> 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>
      <t>-- The attacker can monitor the entire network.</t>
      <t>-- The attacker can read unprotected messages.</t>
      <t>-- The attacker can generate and inject any message in the unprotected
   transport layer.</t>
      <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" numbered="true" toc="default">
        <name>Assumptions on Transport Security Links</name>
        <t>Any secure channel can be used as a transport layer to protect MLS
messages such as QUIC, TLS, WireGuard or TOR. However, the MLS
protocol is designed to consider the following threat-model:</t>
        <t>-- The attacker can read and write arbitrary messages inside the
   secure transport channel.</t>
        <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>
        <section anchor="metadata-protection-for-unencrypted-group-operations" numbered="true" toc="default">
          <name>Metadata Protection for Unencrypted Group Operations</name>
          <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>Contrary to popular messaging services, the full list of recipients
cannot be sent to the server for dispatching messages because that
list is potentially extremely large in MLS. Therefore, the metadata
typically consists of a pseudo-random Group Identifier (GID), a numerical
index referring to the key needed to decrypt the ciphertext content, and
another numerical value to determine the epoch of the group (the
number of group operations that have been performed).</t>
          <t>The MLS protocol provides an authenticated "Authenticated Additional
Data" field for applications to make data available outside the
MLSCiphertext.</t>
          <ul empty="true" spacing="normal">
            <li>
              <strong>RECOMMENDATION:</strong>
Use the "Authenticated Additional 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.</li>
          </ul>
          <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 to access
this MLS protocol metadata if it cannot compromise the secure channel.</t>
          <t>More importantly, there is one specific case where having no secure
channel to exchange the MLS messages can have a serious impact on
privacy. In the case of unencrypted group operation messages,
observing the signatures of the group operation messages may lead an
adversary to extract information about the group memberships.</t>
          <ul empty="true" spacing="normal">
            <li>
              <strong>RECOMMENDATION:</strong>
Never use the unencrypted mode for group operations without using a
secure channel for the transport layer.</li>
          </ul>
        </section>
        <section anchor="dos-protection" numbered="true" toc="default">
          <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" spacing="normal">
            <li>
              <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.)</li>
          </ul>
        </section>
        <section anchor="message-suppression-and-error-correction" numbered="true" toc="default">
          <name>Message Suppression and Error Correction</name>
          <t>The MLS protocol is particularly sensitive about group operation
message loss and reordering. This is because in the default setting,
MLS clients have to process those specific messages in order to have a
synchronized group state, after what the MLS protocol efficiently
generates keys for application messages.
[[TODO: It is unclear from this text whether MLS is "sensitive" in that it
provides additional constraints to prevent this, or is "sensitive" in that it is
vulnerable. Need to clarify]]</t>
          <t>The Delivery Service can have the role of helping with reliability,
but is mainly useful for reliability in the asynchronous aspect of the
communication between MLS clients.</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" spacing="normal">
            <li>
              <strong>RECOMMENDATION:</strong>
If unidirectional transport is used for the secure transport
channel, prefer using a protocol which provides Forward Error
Correction.</li>
          </ul>
        </section>
      </section>
      <section anchor="intended-security-guarantees" numbered="true" toc="default">
        <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>
        <t>[[TODO: Authentication guarantees at the moment of joining a group are interesting
and I don't see a section where it would fit. I'm thinking in particular about
the parent hash and tree hashes in combination with with signatures and the key
schedule. I know that several groups have worked on this and results are
scattered between a few papers. In particular, I think the guarantees for a
member being added to a new group are interesting.]]</t>
        <section anchor="message-secrecy-authentication" numbered="true" toc="default">
          <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" numbered="true" toc="default">
          <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 t
but the group member subsequently performs an update at some time t',
then all MLS guarantees apply to messages sent by the member after
time t', and by other members after they have processed the
update. For example, if an attacker learns all secrets known to Alice
at time t, including both Alice's long-term secret keys and all shared
group keys, but Alice performs a key update at time t', 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>
        </section>
        <section anchor="Non-Repudiation-vs-Deniability" numbered="true" toc="default">
          <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 if often called "non-repudiation"), but it should also be
possible to operate MLS in a "deniable" mode where such proof is not possible.</t>
        </section>
      </section>
      <section anchor="endpoint-compromise" numbered="true" toc="default">
        <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>
        <t>-- The attacker has access to a specific symmetric encryption key</t>
        <t>-- The attacker has access to the group secrets for one group</t>
        <t>-- The attacker has access to a signature oracle for any group</t>
        <t>-- The attacker has access to the signature key for one group</t>
        <t>-- The attacker has access to all secrets of a user for all groups
   (full state compromise)</t>
        <t>[[TODO: Cite the research papers in the context of these compromise models]]</t>
        <t>Recall that the MLS protocol provides chains of AEAD keys, per sender
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" numbered="true" toc="default">
          <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 adaptative
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 neither 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" numbered="true" toc="default">
          <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 an honest Commit message is sent by
the compromised party, 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 to
an honest group to recover message secrecy. However, MLS provides PCS
against active adaptative 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" numbered="true" toc="default">
          <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 adaptative 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 an honest update from the compromised client happens.</t>
          <t>Note that under this compromise scenario, the attacker can perform all
operations which are available to an 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" numbered="true" toc="default">
          <name>Compromise of the authentication with access to a signature key</name>
          <t>DISCLAIMER: Significant work remains in this section.
[[TODO: Remove disclaimer.]]</t>
          <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 adaptative network attacker to perform different operations
during the time of the compromise, the attacker can perform every
operations 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
adaptative attacker, can follow the protocol and request to update its
own credential. This in turn induce 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" spacing="normal">
            <li>
              <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 compromised.</li>
          </ul>
          <t>Even if the dedicated hardware approach is used, ideally, neither the
Client or the Authentication service alone should provide the
signature private key. Both should contribute to the key and it should
be stored securely by the client with no direct access.</t>
        </section>
        <section anchor="security-consideration-in-the-context-of-a-full-state-compromise" numbered="true" toc="default">
          <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 send by using the application to instruct the protocol
implementation.</t>
          <ul empty="true" spacing="normal">
            <li>
              <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.</li>
          </ul>
          <ul empty="true" spacing="normal">
            <li>
              <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.</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 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 are providing the strong authentication
guarantees to other clients, hence we consider that their protection
by additional security mechanism should be a priority.</t>
          <t>Overall there is no way to detect or prevent these compromise, 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" spacing="normal">
            <li>
              <strong>RECOMMENDATION:</strong>
The secret keys used for public key encryption should be stored
similarly to the way the signature keys are stored as key can be
used to decrypt the group operation messages and contain the secret
material used to compute all the group secrets.</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>
          <t>[[TODO: Considerations for Signature keys being :reused or not across groups]]</t>
        </section>
        <section anchor="more-attack-scenarios" numbered="true" toc="default">
          <name>More attack scenarios</name>
          <t>[[TODO: Make examples for more complex attacks, cross groups,
multi collusions...]]</t>
          <t>[[TODO: Do we discuss PCFS in this document? If yes, where?]]</t>
        </section>
      </section>
      <section anchor="service-node-compromise" numbered="true" toc="default">
        <name>Service Node Compromise</name>
        <section anchor="general-considerations" numbered="true" toc="default">
          <name>General considerations</name>
          <section anchor="privacy-of-the-network-connections" numbered="true" toc="default">
            <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" spacing="normal">
              <li>
                <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.</li>
            </ul>
            <t>More generally, using anonymous credential in an MLS based
architecture might not be enough to provide strong privacy or
anonymity properties.</t>
          </section>
        </section>
        <section anchor="delivery-service-compromise" numbered="true" toc="default">
          <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 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" format="default"/>, 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>
          <section anchor="privacy-of-delivery-and-push-notifications" numbered="true" toc="default">
            <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.</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 notification are often sent
real-time as it is not acceptable to create artificial delays for
message retrieval.</t>
            <ul empty="true" spacing="normal">
              <li>
                <strong>RECOMMENDATION:</strong>
If real time notification are not necessary and that specific steps
must be taken to improve privacy, one can delay notifications
randomly across recipient devices using a mixnet or other
techniques.</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" spacing="normal">
              <li>
                <strong>RECOMMENDATION:</strong>
If stronger privacy guarantees are needed vis-a-vis of the push
notification provider, the client can choose to periodically connect
to the Delivery Service without the need of a dedicated push
notification infrastructure.</li>
            </ul>
          </section>
        </section>
        <section anchor="as-compromise" numbered="true" toc="default">
          <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>
          <t>-- The attacker can link an identity to a credential</t>
          <t>-- The attacker can generate new credentials</t>
          <t>-- The attacker can sign new credentials</t>
          <t>-- The attacker can publish or distribute credentials</t>
          <t>Infrastructures that provide cryptographic material or credentials in
place of the MLS client (which is under the control of the user) have
often the ability to use the associated secrets to perform operations
on behalf of the user, which is unacceptable in many situations. Other
mechanisms can be used to prevent this issue, such as the service
blessing cryptographic material used by an MLS client.</t>
          <ul empty="true" spacing="normal">
            <li>
              <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.</li>
          </ul>
          <t>An attacker that can generate or sign new credential 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" spacing="normal">
            <li>
              <strong>RECOMMENDATION:</strong>
Using HSMs to store the root signature keys to limit the ability of
an adversary with no physical access to extract the top-level
signature key.</li>
          </ul>
          <section anchor="authentication-compromise-ghost-users-and-impersonations" numbered="true" toc="default">
            <name>Authentication compromise: Ghost users and impersonations</name>
            <t>One thing for which the MLS Protocol is designed for is to make sure
that all clients know who is in the group at all times. This means
that - if all Members of the group and the Authentication Service are
honest - no other parties than the members of the current group can
read and write messages protected by the protocol for that Group.</t>
            <t>Beware though, the link between the cryptographic identity of the
Client and the real identity of the User is important.
With some Authentication Service designs, a private or centralized
authority can be trusted to generate or validate signature keypairs
used in the MLS protocol. This is typically the case in some of the
biggest messaging infrastructures.</t>
            <t>While this service is often very well protected from external
attackers, it might be the case that this service is compromised.
In such infrastructure, the AS could generate or validate a signature
keypair for an identity which is not the expected one. Because a user
can have many MLS clients running the MLS protocol, it possibly has
many signature keypairs for multiple devices.</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 the
the users.</t>
            <ul empty="true" spacing="normal">
              <li>
                <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 in
the state of the device so that user can examine it.</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" spacing="normal">
              <li>
                <strong>RECOMMENDATION:</strong>
Provide a Key Transparency and Out-of-Band authentication mechanisms
to limit the impact of an Authentication Service compromise.</li>
            </ul>
            <t>We note, again, that as described prior to that section, the
Authentication Service is facultative to design a working
infrastructure and can be replaced by many mechanisms such as
establishing prior one-to-one deniable channels, gossiping, or using
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" numbered="true" toc="default">
            <name>Privacy of the Group Membership</name>
            <t>Often, expectation from users is that the infrastructure will not
retain the ability to constantly map the user identity to signature
public keys of the MLS protocol. Some infrastructures will keep a
mapping between signature public keys of clients and user
identities. This can benefit an adversary that has compromised the AS
(or required access according to regulation) the ability of monitoring
unencrypted traffic and correlate the messages exchanged within the
same group.</t>
            <ul empty="true" spacing="normal">
              <li>
                <strong>RECOMMENDATION:</strong>
Always use encrypted group operation messages to reduce issues
related to privacy.</li>
            </ul>
            <t>In certain cases, the adversary can access to 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" spacing="normal">
              <li>
                <strong>RECOMMENDATION:</strong>
Do not use the same signature keypair across groups.</li>
            </ul>
            <ul empty="true" spacing="normal">
              <li>
                <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.</li>
            </ul>
          </section>
        </section>
      </section>
      <section anchor="considerations-for-attacks-outside-of-the-threat-model" numbered="true" toc="default">
        <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 sometime be equivalent
to software attacks, physical attacks are considered outside of the
MLS threat model.</t>
        <t>Compromise scenarios, typically consist in a software adversary, which
can maintain active adaptative 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" spacing="normal">
          <li>
            <strong>RECOMMENDATION:</strong>
Additional steps should be taken to protect the device and the MLS
clients from physical compromise. In such setting, HSMs and secure
enclaves can be used to protect signature keys.</li>
          <li>More information will be available in the Server-Assist draft.</li>
        </ul>
        <t>[[TODO: Reference to server assist when the draft is available.]]</t>
      </section>
    </section>
    <section anchor="iana-considerations" numbered="true" toc="default">
      <name>IANA Considerations</name>
      <t>This document makes no requests of IANA.</t>
    </section>
    <section anchor="contributors" numbered="true" toc="default">
      <name>Contributors</name>
      <ul spacing="normal">
        <li>
          <t>Katriel Cohn-Gordon </t>
          <t>
University of Oxford </t>
          <t>
me@katriel.co.uk</t>
        </li>
        <li>
          <t>Cas Cremers </t>
          <t>
CISPA Helmholtz Center for Information Security </t>
          <t>
cremers@cispa.de</t>
        </li>
        <li>
          <t>Britta Hale </t>
          <t>
Naval Postgraduate School </t>
          <t>
britta.hale@nps.edu</t>
        </li>
        <li>
          <t>Konrad Kohbrok </t>
          <t>
Wire </t>
          <t>
konrad@wire.com</t>
        </li>
        <li>
          <t>Thyla van der Merwe </t>
          <t>
Royal Holloway, University of London </t>
          <t>
thyla.van.der@merwe.tech</t>
        </li>
        <li>
          <t>Jon Millican </t>
          <t>
Facebook </t>
          <t>
jmillican@fb.com</t>
        </li>
        <li>
          <t>Raphael Robert </t>
          <t>
Wire </t>
          <t>
raphael@wire.com</t>
        </li>
      </ul>
    </section>
  </middle>
  <back>
    <references>
      <name>Informative References</name>
      <reference anchor="MLSPROTO">
        <front>
          <title>Messaging Layer Security Protocol</title>
          <author initials="R." surname="Barnes" fullname="Richard Barnes">
            <organization>Cisco</organization>
          </author>
          <author initials="B." surname="Beurdouche" fullname="Benjamin Beurdouche">
            <organization>Inria</organization>
          </author>
          <author initials="J." surname="Millican" fullname="Jon Millican">
            <organization>Facebook</organization>
          </author>
          <author initials="E." surname="Omara" fullname="Emad Omara">
            <organization>Google</organization>
          </author>
          <author initials="K." surname="Cohn-Gordon" fullname="Katriel Cohn-Gordon">
            <organization>University of Oxford</organization>
          </author>
          <author initials="R." surname="Robert" fullname="Raphael Robert">
            <organization>Wire</organization>
          </author>
          <date year="2018"/>
        </front>
      </reference>
      <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="RFC6120" target="https://www.rfc-editor.org/info/rfc6120">
        <front>
          <title>Extensible Messaging and Presence Protocol (XMPP): Core</title>
          <seriesInfo name="DOI" value="10.17487/RFC6120"/>
          <seriesInfo name="RFC" value="6120"/>
          <author initials="P." surname="Saint-Andre" fullname="P. Saint-Andre">
            <organization/>
          </author>
          <date year="2011" month="March"/>
          <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>
      </reference>
      <reference anchor="RFC8446" target="https://www.rfc-editor.org/info/rfc8446">
        <front>
          <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
          <seriesInfo name="DOI" value="10.17487/RFC8446"/>
          <seriesInfo name="RFC" value="8446"/>
          <author initials="E." surname="Rescorla" fullname="E. Rescorla">
            <organization/>
          </author>
          <date year="2018" month="August"/>
          <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>
      </reference>
      <reference anchor="RFC7049" target="https://www.rfc-editor.org/info/rfc7049">
        <front>
          <title>Concise Binary Object Representation (CBOR)</title>
          <seriesInfo name="DOI" value="10.17487/RFC7049"/>
          <seriesInfo name="RFC" value="7049"/>
          <author initials="C." surname="Bormann" fullname="C. Bormann">
            <organization/>
          </author>
          <author initials="P." surname="Hoffman" fullname="P. Hoffman">
            <organization/>
          </author>
          <date year="2013" month="October"/>
          <abstract>
            <t>The Concise Binary Object Representation (CBOR) is a data format whose design goals include the possibility of extremely small code size, fairly small message size, and extensibility without the need for version negotiation.  These design goals make it different from earlier binary serializations such as ASN.1 and MessagePack.</t>
          </abstract>
        </front>
      </reference>
      <reference anchor="RFC7159" target="https://www.rfc-editor.org/info/rfc7159">
        <front>
          <title>The JavaScript Object Notation (JSON) Data Interchange Format</title>
          <seriesInfo name="DOI" value="10.17487/RFC7159"/>
          <seriesInfo name="RFC" value="7159"/>
          <author initials="T." surname="Bray" fullname="T. Bray" role="editor">
            <organization/>
          </author>
          <date year="2014" month="March"/>
          <abstract>
            <t>JavaScript Object Notation (JSON) is a lightweight, text-based, language-independent data interchange format.  It was derived from the ECMAScript Programming Language Standard.  JSON defines a small set of formatting rules for the portable representation of structured data.</t>
            <t>This document removes inconsistencies with other specifications of JSON, repairs specification errors, and offers experience-based interoperability guidance.</t>
          </abstract>
        </front>
      </reference>
      <reference anchor="RFC3552" target="https://www.rfc-editor.org/info/rfc3552">
        <front>
          <title>Guidelines for Writing RFC Text on Security Considerations</title>
          <seriesInfo name="DOI" value="10.17487/RFC3552"/>
          <seriesInfo name="RFC" value="3552"/>
          <seriesInfo name="BCP" value="72"/>
          <author initials="E." surname="Rescorla" fullname="E. Rescorla">
            <organization/>
          </author>
          <author initials="B." surname="Korver" fullname="B. Korver">
            <organization/>
          </author>
          <date year="2003" month="July"/>
          <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>
      </reference>
    </references>
  </back>
  <!-- ##markdown-source:
H4sIAOT8WmEAA629e5PbRpYn+n9+CoQcsZYcLNrdO7Ozo4nwuFyS5RpbVq1K
Gm/EzMYGSCarYIEAGwCrzHb7fvZ73nkyCZZ7blzH7rRdBBL5OHmev3POxcVF
mJqpjS+rD/exehvHsb5rurvqx/oYh+o2rg9DMx2r529/vH1RXQ7r+2aK6+kw
xFCvVkN8eFnBL/kPm37d1TsYcTPU2+miidP2YteOF7V76OKrfwrreop3/XB8
WTXdtg+h2Q8vq2k4jNOfv/rqn7/6c6iHWL+0OYRP8fjYD5uX1XU3xaGL08Ur
/EAI41R3m/9bt30HHz3GMeybl9V/TP16UY39MA1xO8K/HXf4L/8nhPow3ffD
y1BdhAr+abrxZfXtsvo2HoZNf1jfR/ozL+Hb2P1S75qu/LUf7uqu+Ws9NX2H
Exqauvpv1dv+r03b1vRE3NVNC0uD1X+zspeX636Xffj1snofx3U/yGv82ddD
s87/nn9w5kPx0/DNMG13c194t6uHbPhdvXF/zMd+0/d3bcyGhsd7fPqbO/rt
5BO3S9iCu8OD/8bt0HTNQz36X/IPfXhsJjhI/6WxoYe/mfinkw9dLqsfHvvO
feayXcVhSn8t9un6gx/+EzxVt9/smmkZN4dy5FdAZuts6Lpzf8xH/rkZsj2q
4eFvHuGPNOeAFD3s4NmHCISGd+Tm/bsP717SK/CP3LlnZy/czdADAfftM31j
A7flZfXnr/70P/UvRsf6z4Ws5T0Qcw0XZEw/2aLeN+v7etjMPZAv8KoB6st+
l5UO7eqbZv+wHH91X84ePHOj8omcu1nzs6EbNjeblQyzTHfsmwYfXm6HJ+f3
b8vqLdyhZl13M7P7t76b/zmf1nf1Oq76/tPczH7ZyfvfbFdMyE/MJruk+VSK
yzo/EXdpi2nMX94npvLDsrrq77uLN8Br+7m9+aGehia2Z5/KZ/YRuEAcRqTp
flu9+xXuxWZunrv4zSceGGa4PHx6co5A4e97vPhzFF7v72uY3swDZ65wMZOB
B3C3uap+iMcPQ92Ne5BJ3fqY7nE93MXpZXU/Tfvx5ZdfFs8t4YvFlYcnKv/I
yf3+pzP3228DbYKceQgXFxdVvRqnoV6DNPw75PhemEv122/KmX7/vQK5fdjF
bqru6zFMMMrQtxEPbRO3wMthsLp6M/SHPa3h8m6IER9fAO9rK3y+i2v87nAM
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
/y+q5AHjjf0AAA==

-->

</rfc>
