<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.29 (Ruby 3.4.4) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-tian-quic-quicmls-00" category="info" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.29.0 -->
  <front>
    <title abbrev="QUIC-MLS">Securing QUIC with MLS</title>
    <seriesInfo name="Internet-Draft" value="draft-tian-quic-quicmls-00"/>
    <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>bmwimalasiri1@sheffield.ac.uk</email>
      </address>
    </author>
    <date year="2025" month="July" day="01"/>
    <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="19" month="February" 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-06"/>
        </reference>
      </references>
    </references>
    <?line 329?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>TODO acknowledge.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
VbCIDoyrp6M+MhG4Pmp3ZZ6N1lj7kYivu7dD6G1TXtPL9UubJ/vVw28PM/Gx
FHWPETYNVPDK0PhUyKn+0q2aJI2Oig1MVTTllH3yOZmU/mY/YNg9t9jWqXQA
EgbkpqaJm1qIPyvoBUXScuNnEokSBRHkJciVJmiYSdWpnOq9HvtyKQd7l9wc
Gl9V0teNt9ESh4US8Ybu6xYTUacyFDQsG1SfR0dnE3pKnd3VgRwTXPseo6F3
Y2NIo/iemWZ71RDBrOWMicRdsNMNLnDchVcOt2hfaP3Tvr0QFvubIQp/fFQz
gDnrppF5UFwjShmwruRrCsNVfWpjBltk5xjGcrCM2ZR+i23bpYGqYh7pCbmV
RjSiBCvh6B1z9Zn2cj/njhPpBcOFKXyuFld7dM/VRr38bBxDaxEycbIkrlsD
AsKVbdp+XadL7rGV3F98YQaCl9B+xt7Em3TZLM1XB198c3CgLUIky1+bxBK3
y31tGgdekhSSXniVpTOHFS7bG77EkMsNKpIBPH4QIa1ziFsugtW4KMrhab8o
3zWhTYBk7JGnQfhL+2OY2LAkjZ7n9G28oUdaMP2TdKzCYemF+bWNVZv70qhX
tD2Gp26oVSCj06OtXonuUwhRNxFEmnw1o7jZIdtOwgva9nTaRZQh8fcn7s41
puEI54XsptK9QCTlDAPw/EbS1pzm4mus9SiL5t1E5/LtGBXnjGjPAUXiP2y+
5Z1JkepUe1bXchoOXwb2E6zJdVg5wp19NKL6dCfDuCk4hFS3wpUyuKDyOMXt
6OaBy7KlzeVCupH5KefMMmOFPBErHpE2B8ucof2UmRHyc81p6jlue6rDPbw3
9L1GTIisGakESUQ/HD8db5onhHs9ucF8QmPx2jh05cllSG/vity55Pu9GVlC
B4uHcXH/3qj335dU6ztPYwAA

-->

</rfc>
