<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.31 (Ruby 3.4.6) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-tian-quic-quicmls-01" category="info" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.31.0 -->
  <front>
    <title abbrev="QUIC-MLS">Securing QUIC with MLS</title>
    <seriesInfo name="Internet-Draft" value="draft-tian-quic-quicmls-01"/>
    <author initials="B." surname="Dowling" fullname="Benjamin Dowling">
      <organization>Kings College London</organization>
      <address>
        <email>benjamin.dowling@kcl.ac.uk</email>
      </address>
    </author>
    <author initials="B." surname="Hale" fullname="Britta Hale">
      <organization>Naval Postgraduate School</organization>
      <address>
        <email>britta.hale@nps.edu</email>
      </address>
    </author>
    <author initials="K." surname="Kohbrok" fullname="Konrad Kohbrok">
      <organization>Phoenix R&amp;D GmbH</organization>
      <address>
        <email>konrad.kohbrok@datashrine.de</email>
      </address>
    </author>
    <author initials="R." surname="Robert" fullname="Raphael Robert">
      <organization>Phoenix R&amp;D GmbH</organization>
      <address>
        <email>ietf@raphaelrobert.com</email>
      </address>
    </author>
    <author initials="X." surname="Tian" fullname="Xisen Tian">
      <organization>Naval Postgraduate School</organization>
      <address>
        <email>xisen.tian1@nps.edu</email>
      </address>
    </author>
    <author initials="B." surname="Wimalasiri" fullname="Bhagya Wimalasiri">
      <organization>University of Sheffield</organization>
      <address>
        <email>bhagya.wimalasiri@kcl.ac.uk</email>
      </address>
    </author>
    <date year="2026" month="February" day="20"/>
    <area>Web and Internet Transport</area>
    <workgroup>QUIC</workgroup>
    <keyword>QUIC</keyword>
    <keyword>MLS</keyword>
    <keyword>authenticated key exchange</keyword>
    <keyword>PCS</keyword>
    <abstract>
      <?line 63?>

<t>This document describes how Messaging Layer Security (MLS) can be used in place of Transport Layer Security (TLS) to secure QUIC.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://xisentian.github.io/ietf-quic-mls/draft-tian-quic-quicmls.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-tian-quic-quicmls/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        QUIC Working Group mailing list (<eref target="mailto:quic@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/quic/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/quic/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/xisentian/ietf-quic-mls"/>.</t>
    </note>
  </front>
  <middle>
    <?line 67?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Recent advances in key exchange protocol design for communications under network delays, disruption, and supporting low latency has offered new alternative key establishment techniques in the form of continuous key agreement. One such continuous key agreement protocol has been standardized by the IETF, namely Messaging Layer Security (MLS) (RFC9420). The MLS key agreement handshake can be generalized for dynamic or degraded communications settings that do not support duplex links, have highly mobile devices, and/or require asynchronous communications. QUIC's use of TLS for key agreement was primarily designed for relatively short-lived client-server connections with synchronous key initialization over reliable network availablity. MLS offers an alternative to users for cases where network reliability, attentuation, or disruption are concerns through asychronous key updates which also provide post-compromise security, enabling long-lived sessions with controllable key refresh periodicity. The MLS key agreement handshake can be slotted into QUIC in a fairly straightforward manner, preserving other needed QUIC functionality. The combination of QUIC and MLS thus addresses a need for a robust security protocol in certain evolving communication environments.</t>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <?line -18?>

</section>
    <section anchor="notation">
      <name>Notation</name>
      <t>We use terms from MLS <xref target="RFC9420"/>, TLS <xref target="RFC8446"/>, and QUIC <xref target="RFC9000"/>. Below, we have restated relevant terms and define new ones:</t>
      <t><strong>Application Message:</strong> The private application data payload transported and encrypted by QUIC.</t>
      <t><strong>Authentication Service (AS):</strong> An abstract architectural component of MLS that provides mechanisms for verifying the authenticity of group members, typically by issuing credentials (e.g., certificates) that bind identities to cryptographic keys</t>
      <t><strong>Delivery Service (DS):</strong> An abstract architectural component of MLS for reliably delivering MLS messages (e.g., handshake or application messages) between group members while ensuring proper ordering.</t>
      <t><strong>Control Message:</strong> An MLS Proposal or Commit message to change the cryptographic state, as opposed to application data.</t>
      <t><strong>Key Derivation Function (KDF):</strong> A Hashed Message Authentication Code (HMAC)-based expand-and-extract key derivation function (HKDF) as described in RFC5869.</t>
      <t><strong>Key Encapsulation Mechanism (KEM):</strong>  A key transport protocol that allows two parties to obtain a shared secret based on the receiver's public key.</t>
    </section>
    <section anchor="scope">
      <name>Scope</name>
      <t>While MLS is designed for group settings, we limit discussions in this document to the two-party communications case. This choice is deliberate to avoid significant changes to QUIC and MLS.</t>
    </section>
    <section anchor="requirements-for-integration">
      <name>Requirements for Integration</name>
      <section anchor="quic-hs-requirements">
        <name>QUIC-HS Requirements</name>
        <t>As an integrated secure transport protocol QUIC can be broken into two major components: a handshake layer (HS) responsible for key agreement and management and a record layer (RL) which provides secure (via HS keys) and reliable transport. Specifically, the HS layer requires the following from TLS as specified in RFC9001:</t>
        <ol spacing="normal" type="1"><li>
            <t>The handshake protocol must function as an authenticated key exchange (AKE) that produces distinct and unrelated keys for every connection where the server is always authenticated and the client is optionally authenticated.</t>
          </li>
          <li>
            <t>Transport parameter authentication for both endpoints with additional confidentiality protection for the server transport parameters.</t>
          </li>
          <li>
            <t>Provide means for authenticated negotiation of an application protocol.</t>
          </li>
        </ol>
        <t>With respect to (1) MLS provides authenticated key agreement to achieve the same outcome of AKE without exchanging key material. Using existing PKI certificates, communicating partners can generate MLS Key Packages to begin MLS sessions that produce indistinguishably random keys. Mutual authentication is enabled through asymmetric verification of credentials within MLS Key Packages. External commits which are used for "open" MLS groups can be used to allow an unauthenticated client to be added (i.e. optional client authentication). With respect to transport parameter negotiations in (2), MLS satisfies this with publication of a signed <tt>GroupInfo</tt> object inside <tt>Welcome</tt> messages that contains all the necessary information to join a group and a public key to encrypt a secret to the existing group members. For (3) Authenticated negotiation of application protocols can be achieved using the MLS Content Advertisement Extension in <xref target="I-D.ietf-mls-extensions"/> which would be included in the <tt>GroupInfo</tt> object.</t>
      </section>
      <section anchor="mls-requirements">
        <name>MLS Requirements</name>
        <t>The prerequisits for MLS are the Delivery Service (DS) and Authentication Service (AS) functionalities as specified in RFC9750. A DS ensures MLS messages are delivered to all participants and enforces ordering of commits. For example, the DS can be a centralized server or a reliable transport protocol like TCP. An AS provides the issuance and verification of user credentials. For example, the AS can be any existing web Public Key Infrastructure (PKI) (e.g. certificate authority based scheme).</t>
        <t>For most cases using QUIC, the DS functionality is satisfied by QUIC RL through guarantees for reliable ordered delivery of messages just as it provides TLS. The AS functionality is provided through existing PKI certificates already used by TLS. In non-traditional settings (e.g. dynamic topologies, delay/disruption prone environments) where the DS functionality cannot be met by QUIC RL alone, other mechanisms to ensure (ordered) delivery <bcp14>MUST</bcp14> be employed. Likewise, the AS functionality must also exist. Details and recommendations for alternative strategies relating to either functionalities are outside the scope of this document.</t>
      </section>
    </section>
    <section anchor="protocol-overview">
      <name>Protocol Overview</name>
      <t>At a high level, MLS provides the traffic keys used to encrypt and authenticate QUIC's secure channel. In turn, QUIC's transport logic which handles ordering and reliable delivery of packets helps to maintain the MLS state. Note, additional mechanisms may be used to maintain MLS state in the event that QUIC transport is insufficient.</t>
      <figure anchor="fig-quic-mls-layers">
        <name>QUIC-MLS layer interactions</name>
        <artwork><![CDATA[
     QUIC-Handshake Layer
  +------------------------+
  |   MLS (replaces TLS)   |
  |                        |
  +----+-------------^-----+
Traffic|             |
 Keys  |             |
       |             | Ordered
       |             | delivery of
       |             | MLS control
       |             | messages
  +----v-------+-----+-----+
  |   Secure   | Transport |
  |  Channel   |   Logic   |
  +------------+-----------+
        QUIC-Record Layer
]]></artwork>
      </figure>
      <section anchor="mls-functionality">
        <name>MLS Functionality</name>
        <t>As a stateful protocol, MLS leverages a cryptographic structure called a ratchet tree to establish and maintain a shared cryptographic group state. The tree's root is the group's shared secret and each MLS group member is represented by a unique leaf node containing their HPKE encryption public key and signature public key from the AS. Intermediate nodes contain the HPKE encryption public  key pairs calculated by members of the subgroup they cover. This property enables efficiency in updates to the ratchet tree. MLS group operations (e.g. add, remove, update) trigger modifications from each leaf along the path of intermediate nodes from the leaf to the root, thereby ratchetting the group state forward into a new epoch. Group operations are solicited through the DS via MLS <tt>Proposal</tt> messages and are processed (aka committed) by MLS <tt>Commit</tt> messages. Therefore, a QUIC-MLS session with respect to the HS functionality, is the creation and modification of the MLS ratchet state (the shared state).</t>
        <t>Each epoch of an MLS session has a distinct asymmetric ratchet tree as previously described that seeds the MLS Key Schedule used to derive shared secrets used for key generation (e.g. via a Key Derivation Function). Values from the asymmetric ratchet tree and key schedule are used to derive a symmetric ratchet tree called the Secret Tree which is used to generate keys used for encrypting and authenticating application messages. QUIC-MLS provides keys from this symmetric ratchet tree to the QUIC record layer.</t>
      </section>
      <section anchor="quic-mls-execution">
        <name>QUIC-MLS Execution</name>
        <t>An initiator may unilaterally start a QUIC-MLS session with a partner. They then update the keys throughout their communications by sending MLS updates with each message until either parties terminates the session by issuinng a (self) removal proposal and commit. An important distinction from QUIC-TLS is that key updates here are ratcheted in accordance with the MLS Key Schedule (see Section 8 of <xref target="RFC9420"/>) as to provide forward secrecy and post-compromise security rather than using QUIC's native key update mechanism (see Section 6.1 of <xref target="RFC9001"/>) which only provides forward secrecy. Furthermore, by attaching a configurable series of previous MLS Commit messages to each sending stream, we ensure that the protocol is both robust enough to handle truly asynchronous settings under eventually consistent DS but also flexible enough to adapt to synchronous settings with strongly constistent DS assumptions.</t>
        <section anchor="initialization">
          <name>Initialization</name>
          <t>An initiating client can create MLS Key Packages based off of preloaded credentials obtained from the AS (i.e. via digital certificates) or through direct communications. In the absence of an AS, initators may use preinstalled long term signature keys from itself and the intended partner(s) to create the Key Packages necessary to start a session. The initiator uses the Key Packages to create an MLS <tt>Add</tt> proposal, which once committed to, starts the MLS session with the corresponding partner. In order for the other member to join and initialize their own cryptographic state, they will need to recieve their personalized MLS <tt>Welcome</tt> message. The initiator can wait to receive a MLS <tt>Commit</tt> from the partner or unilaterally commit their own <tt>Add</tt> proposal and thereby asynchronously intiate a session. If they unilaterally commmit their own <tt>Add</tt> proposal, then 0-RTT data may be sent along with these first batch of packets using the encryption key derived from the MLS group secret in accordance with the MLS Key Schedule (see Section 8 RFC9420). After the recipient verifies the initiator's Key Package and uses the <tt>Welcome</tt> message to construct the shared MLS state, the shared key is established and can be used by the record layer to commence secure communications via 1-RTT packets.</t>
        </section>
        <section anchor="updates">
          <name>Updates</name>
          <t>When a member chooses to update the group key, they send an <tt>Update</tt> proposal and the other member commits to that proposal to ratchet the group state into the next epoch. Alternatively, one party may serve as the session admin with commit authority or may unilaterally update (via an empty commit): in either case, when an eventually consistent DS is used, they <bcp14>MUST</bcp14> attach the antecedent series of commits leading the the current epoch in order for the other member(s) to reconcile state agreement. In the two party case the series of commits reduces to simply the last commit.</t>
          <t>To tighten the FS/PCS compromise windows, senders <bcp14>MAY</bcp14> attach an update proposal with every data message sent.</t>
        </section>
        <section anchor="termination">
          <name>Termination</name>
          <t>Session termination occurs when any party sends a (self) removal proposal and commit it. This <bcp14>MAY</bcp14> be sent multiplexed with the last data message or as an independent stream with no data message. For self removals in a two-party group, the proposer may terminate the session without waiting for commitment depending on application needs. The remove proposal shall be sent as the payload of a <tt>Crypto</tt> frame inside of a Handshake packet.</t>
        </section>
        <section anchor="resumption">
          <name>Resumption</name>
          <t>Similar to TLS where 0RTT keys are used to resume a session and quickly send encrypted application messages, MLS can make use of resumption pre-shared key (PSK) from historical epochs to send 0RTT encrypted data. With TLS, data sent encrypted using 0RTT key alone is not forward secret and suffers from replay attacks. With MLS, a member uses a Reinit proposal which describes the historical group state they belonged to to rejoin the group with their resumption PSK. Once the Reinit proposal is committed it cannot be duplicated (i.e. conflicting commit) making QUIC-MLS immune from the types of replay attacks that 0RRT TLS keys are vulnerable to. The Reinit proposal for QUIC-MLS is sent in in the Crypto frame of a Initial Packet, behaving similar to an External Join. With an encryption key derived from the new epoch secret (e.g. via HKDF Expand) of the new state, the 0-RTT data can be sent along with the Reinit proposal and commits.</t>
        </section>
        <section anchor="example-execution">
          <name>Example Execution</name>
          <t>The following two-party QUIC-MLS execution illustrates  initialization, updates, termination, and reinitialization of a session with per-message updates for the strictest security and commit transcripts for the an eventually consistent DS. What is shown can be relaxed to accommodate longer update windows and/or streamlined by reducing or eliminating commit transcripts for highly available and reliable networks which support a strongly consistent DS. Specifically, the protocol can be adapted to the synchronous and strongly consistent DS setting by removing the positive acknowledgement of latest commit HS packet (e.g. removing A's second <tt>Commit(Upd(B_0)</tt> message and  B's <tt>HS{Commit(Upd(A_2)}</tt> message). The bracketed (e.g. optional) per-message ratchetting updates which follow each <tt>1RTT</tt> data message shown may also be removed to allow more longer security windows (see <xref target="ratchet-window">Security Considerations</xref>).</t>
          <figure anchor="fig-quic-mls-execution">
            <name>Client A creates a two-party QUIC-MLS session with Client B, and then (optionally) updates the group state until termination (via self-removal). Each MLS message sent is accompanied by a configurable series of commits to proposals. Brackets ('[]') indicate implicit/optional communications steps. Handshake (HS), Init, and 0RTT packets wrap MLS messages indicated by braces ('{}'). Values following underscores ('_') indicate the associated epoch number.</name>
            <artwork><![CDATA[
    A                               B                  Directory
    |                               |                      |
    |                         [KeyPackageB]                |
    |<-----------------------------------------------------+
    |                                      [KeyPackageA]   |
    |                               <----------------------+
    |                               |                      |
    | Add(A->AB)                    |                      |
    | Commit(Add)                   |                      |
    |                               |                      |
    | Init{Welc(B)}                 |                      |
    | 0RTT{Enc(DataA_0))}           |                      |
    |------------------------------>|                      |
    |         [Verify(KeyPackageA)] |                      |
    |              Process(Welcome) |                      |
    |      ~ Key Established ~      |                      |
    |                               |                      |
    |           1RTT{Enc(DataB_0)}] |                      |
    |                [HS{Upd(B_0)}] |                      |
    |<------------------------------|                      |
    |                               |                      |
    | [HS{Commit(Upd(B_0))}]        |                      |
    | 1RTT{Enc(DataA_1))}           |                      |
    | [HS{Upd(A_2)}]                |                      |
    |------------------------------>|                      |
    |                               |                      |
    | [HS{Commit(Upd(B_0)),         |                      |
    |     Commit(Upd(A_2)}]         |                      |
    | 1RTT{Enc(DataA_2))}           |                      |
    | [HS{Upd(A_3)}]                |                      |
    |------------------------------>|                      |
    |                               |                      |
    |         [HS{Commit(Upd(A_2)), |                      |
    |            Commit(Upd(A_3))}] |                      |
    |            1RTT{Enc(DataB_3)} |                      |
    |               [HS{Upd'(B_4)}] |                      |
    |<------------------------------|                      |
    |                               |                      |
    |             ...               |                      |
    |                               |                      |
    | HS{Rmv(A_n)}                  |                      |
    |------------------------------>|                      |
    |                               |                      |
    |          HS{Commit(Rmv(A_n))} |                      |
    |<------------------------------|                      |
    |                               |                      |
    |             ...               |                      |
    |                               |                      |
    | HS{Reinit(A_n)}               |                      |
    | HS{Commit(Reinit)}            |                      |
    | HS{Commit, Welcome}           |                      |
    | 0RTT{Enc(DataA_n+2)}          |                      |
    |------------------------------>|                      |
    |                               |                      |
]]></artwork>
          </figure>
          <t><strong>TODO:</strong> Double check the reinit process -- is it better to just restart a new session? Seems like a new MLS session would have fewer steps in the two party case.</t>
        </section>
      </section>
    </section>
    <section anchor="packet-protection">
      <name>Packet Protection</name>
      <t>As with QUIC with TLS, QUIC-MLS protects packets with keys derived from the MLS state, using an AEAD algorithm selected common to the communicating partners from their <tt>KeyPackage</tt> objects. Some key changes to how QUIC with TLS does packet protection (see Section 5 of <xref target="RFC9001"/>) are as follows:</t>
      <ul spacing="normal">
        <li>
          <t>Initial Packets, which should be used to send MLS <tt>Welcome</tt> messages that are already encrypted with the joiner's public key retain their AEAD encryption using the secret derived from initial salt and connection ID as specified in Section 5.2 of <xref target="RFC9001"/>. Initial packets, which previously did not provide confidentiality or authentication to the payload, now carries a payload that DOES have confidentiality and authentication guarantees from MLS.
NOTE: It may be redundant to keep the AEAD protection but removing it has downstream effects on Retry Packet usage/abuse. <strong>TODO:</strong> Decide if we want to even keep the Retry mechanism since we can form a MLS session unilaterally. ``</t>
        </li>
        <li>
          <t>Handshake Packets are proctected by keys derived from the MLS epoch secret.</t>
        </li>
        <li>
          <t>0-RTT Packet Protection is provided by the traffic key computed from with the MLS <tt>Welcome</tt> message sent concurrently.</t>
        </li>
      </ul>
      <section anchor="key-derivation">
        <name>Key Derivation</name>
        <t>For QUIC-MLS, traffic keys are derived the same as they are for QUIC with TLS except that the MLS Epoch Secret is used in place of the TLS Master Secret. Furthermore, the Early Secret, an artifact of the TLS key schedule, is never derived as it is unused (see Section 7.1 of <xref target="RFC8446"/>). All other keys used to encrypt or sign public and private MLS group control messages are derived according to the MLS Key Schedule (see Section 8 of <xref target="RFC9420"/>) using the appropriate lables. For example the following shows how traffic secrets used to encrypt 1RTT packets are derived from the MLS Epoch Secret:</t>
        <figure anchor="fig-key-derivation">
          <name>QUIC traffic key derivation from MLS Epoch Secret</name>
          <artwork><![CDATA[
   0 -> HKDF-Extract = MLS Epoch Secret
             |
             +-----> Derive-Secret(., "A ap 0")
             |                     = client_application_traffic_secret_0
             |
             +-----> Derive-Secret(., "B ap 0")
             |                     = server_application_traffic_secret_0
]]></artwork>
        </figure>
        <t><strong>TODO:</strong> Technically MLS doesn't expose access to the epoch secret, if we want to abide by safe extensions then we ought to use exporter secret here right?</t>
      </section>
      <section anchor="key-deletion">
        <name>Key Deletion</name>
        <t>In general, keys should be deleted immediately after they are consumed. The key deletion schedule of MLS aligns with QUIC's policies for discarding keys in that members may keep unconsumed values for handling out-of-order message delivery. Therefore, keys should be deleted in accordance first with the QUIC policies for discarding keys and then the MLS Key Deletion Schedule (Section 9.2 of <xref target="RFC9420"/>) for MLS specific values.</t>
      </section>
    </section>
    <section anchor="message-framing">
      <name>Message Framing</name>
      <t>The main interface from QUIC used by MLS are the <tt>CRYPTO</tt> and <tt>NEW_TOKEN</tt> frames. As payloads of <tt>Initial</tt>, <tt>Handshake</tt>, and <tt>0RTT</tt> packets, the <tt>CRYPTO</tt> frame will carry a majority of MLS Handshake messages that facilitate group control. <tt>Initial</tt> packets only carry the MLS Welcome and External Join messages to add new users to a group. Previous group members who wish to rejoin a group (using their MLS Resumption Preshared Keys) may use the <tt>NEW_TOKEN</tt> frame inside of <tt>Initial</tt> or <tt>Retry</tt> packets to resume membership in the session with their PreSharedKey proposal as tokens.  <tt>Handshake</tt> packets carry <tt>CRYPTO</tt> frames that have as payloads all other MLS proposals and commits in accordance with RFC9420.</t>
      <figure anchor="fig-message-framing">
        <name>QUIC-MLS packet and frame structures for carrying MLS messages (e.g. proposals, commits, welcome, etc.)</name>
        <artwork><![CDATA[
Initial_Packet{
  [...]
  Packet Payload = CRYPTO_FRAME{}
}
Handshake_Packet{
  [...]
  Packet Payload = CRYPTO_FRAME{}
}
Retry_Packet{
  [...]
  Retry_Token = NEW_TOKEN_FRAME{}
}
CRYPTO_FRAME{
  Type (i) = tbd,
  Offset (i),
  Length (i),
  Crypto Data = <MLS_Message>
}
NEW_TOKEN_FRAME{
  Type (i) = 0x07,
  Token Length (i),
  Token = MLS_PreSharedKey_Proposal
}
]]></artwork>
      </figure>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <section anchor="attacks-on-authentication">
        <name>Attacks on Authentication</name>
        <t>While message integrity is provided by the symmetric key used in AEAD, insider attacks on non-repudiation (e.g., source forgery) on application messages may still be possible because QUIC headers and payloads aren't signed. While the content (including sender information) is protected by AEAD which uses the symmetric group key, a malicious insider may still be able decrypt, modify, and re-encrypt the content using the same symmetric group key that they can compute. Thus, application messages sent by one member may be reordered or modified by another. However, in terms of group control, non-repudiation is unaffected because handshake messages are protected as signed MLS private messages.</t>
      </section>
      <section anchor="ratchet-window">
        <name>Ratchet Window</name>
        <t>The frequency of updates to the MLS group state can be adjusted as desired based on either time or number of messages. Following the maximum 604800 seconds (7 day) limit of the <tt>ticket_lifetime</tt> from TLS that forces a new DH handshake to establish fresh secrets, QUIC-MLS epochs must similarly not exceed 7 days in duration without an update.</t>
      </section>
      <section anchor="use-of-0rtt">
        <name>Use of 0RTT</name>
        <t>QUIC-MLS use of 0-RTT differs from QUIC-TLS in that a fresh key generated by the MLS state is used instead of using a pre-shared key generated from a previous TLS session between the communicating parties. QUIC-TLS uses 0-RTT and 1-RTT to explicitly differentiate the security levels but in QUIC-MLS their security levels are the same since they both are based on fresh randomness (akin to how 1-RTTs are protected by ephemeral Diffie Hellman keys). Unlike the caveats to using 0-RTTs for QUIC-TLS to thwart against certain types of replay attacks, QUIC-MLS has none.</t>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>TODO</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC8446">
          <front>
            <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <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="RFC9000">
          <front>
            <title>QUIC: A UDP-Based Multiplexed and Secure Transport</title>
            <author fullname="J. Iyengar" initials="J." role="editor" surname="Iyengar"/>
            <author fullname="M. Thomson" initials="M." role="editor" surname="Thomson"/>
            <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="RFC9001">
          <front>
            <title>Using TLS to Secure QUIC</title>
            <author fullname="M. Thomson" initials="M." role="editor" surname="Thomson"/>
            <author fullname="S. Turner" initials="S." role="editor" surname="Turner"/>
            <date month="May" year="2021"/>
            <abstract>
              <t>This document describes how Transport Layer Security (TLS) is used to secure QUIC.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9001"/>
          <seriesInfo name="DOI" value="10.17487/RFC9001"/>
        </reference>
        <reference anchor="RFC9420">
          <front>
            <title>The Messaging Layer Security (MLS) Protocol</title>
            <author fullname="R. Barnes" initials="R." surname="Barnes"/>
            <author fullname="B. Beurdouche" initials="B." surname="Beurdouche"/>
            <author fullname="R. Robert" initials="R." surname="Robert"/>
            <author fullname="J. Millican" initials="J." surname="Millican"/>
            <author fullname="E. Omara" initials="E." surname="Omara"/>
            <author fullname="K. Cohn-Gordon" initials="K." surname="Cohn-Gordon"/>
            <date month="July" year="2023"/>
            <abstract>
              <t>Messaging applications are increasingly making use of end-to-end security mechanisms to ensure that messages are only accessible to the communicating endpoints, and not to any servers involved in delivering messages. Establishing keys to provide such protections is challenging for group chat settings, in which more than two clients need to agree on a key but may not be online at the same time. In this document, we specify a key establishment protocol that provides efficient asynchronous group key establishment with forward secrecy (FS) and post-compromise security (PCS) for groups in size ranging from two to thousands.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9420"/>
          <seriesInfo name="DOI" value="10.17487/RFC9420"/>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="I-D.ietf-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="21" month="July" year="2025"/>
            <abstract>
              <t>   The Messaging Layer Security (MLS) protocol is an asynchronous group
   authenticated key exchange protocol.  MLS provides a number of
   capabilities to applications, as well as several extension points
   internal to the protocol.  This document provides a consolidated
   application API, guidance for how the protocol's extension points
   should be used, and a few concrete examples of both core protocol
   extensions and uses of the application API.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-mls-extensions-08"/>
        </reference>
      </references>
    </references>
    <?line 329?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>TODO acknowledge.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA+Vc63IbR3b+j6fo0FVrwguMSNm79iprryGSihRJlkLSUbZU
itjANICxBjPIXEhhZftZ8ix5spzvnNM9PQCoiyup2lRYJZEYTHefPvdb93g8
HjRZk7t75uDCzdoqKxbmX358dGJusmZpnj65OBjY6bRy1/QCno/50cw2blFW
m3smK+blYJCWs8KuaJK0svNm3GS2GP9Hm834v1Vej4+OB3U7XWV1nZVFs1nT
q4/OLh8Y85mxeV3S5FmRurWj/4rmYGQOXJo1ZZXZHB8eTe7Tr7Kiv84vHxwM
inY1ddW9QUpg3BvMyqJ2Rd3W90xTtW5AoH45sJWzNOsLNzW2SM2jonFV4Rpz
WdmiXpdVczC4Kas3i6ps17q1g8Ebt6GH6b2BGTMS8Jv2i1+2bZYEWoadp4Ze
NO7tbGmLhcO3z08uBteuaAkaY/pzGiPbPXhBywG7/4Sv8Xxls5yeA0XfZ66Z
J2W1wHNbzZb0fNk06/renTt4DY+ya5f41+7gwZ1pVd7U7g4muIOBCyJZO6Wh
b7MasNriDgYIJYgKeCcn+OvmnvGzh1cTGZ1kZX/QnVtImiybVT4YAC9lhW2P
iReIBAf3E3Na3uS0VaxnzLzNc2GOg/uu+MmusqL/Au3HFtnfbEOsQS89pi9q
c1LmuVs486Qs0rKQF51gbKqzJKnM8v2bWZ7YWdK+6UPx0OZuF4Qqaxobfbe1
+g/22ubmeVk3i8qmLWHLXMyWZZn3QeBZkiXN8n2xrhOXttHajxPzuFwSdd7s
LP+4LGja/tdbEDxflq7I3prz352af1pNH/YWfsPjkzcy/nsSAFsvSWhdkroI
gvPEnJckIs0OAOd2vbQu7339KQCAN76vZJKK50hm5Spa+t8Sc0m8srPwv4HR
oq9+E96ZWxPw4vEevBPNX2Qrm9s6q7Jdyi/tYmN33tiC48eC5Kyqs2Zjyrm5
WLr5PHN52qc+z5TchJkiDizKakVzXbMmOH9w8s1XX/1R//zT0dFR9+ex//Or
u/R0AD0ajXw0PmVhhwSO3duG9BvBV9OLSZIMBuMxaaRp3VR21gwGl8usNqSC
2xWJskldPauyqavNsrwxT11d2wX0zhO7cZURJU+7OyTFNjQzW5A8mbYmpUZy
uc7tzGHjQU3uDLvEsKY0NZ44VpMK0CpL09wNBp9B21Zl2s6A08Hg3M0Al02v
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
weJhXNy/lwz+G7KkrdJNYwAA

-->

</rfc>
