<?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.18 (Ruby 3.0.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-hale-mls-combiner-00" category="info" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.22.0 -->
  <front>
    <title abbrev="HPQMLS">Flexible Hybrid PQ MLS Combiner</title>
    <seriesInfo name="Internet-Draft" value="draft-hale-mls-combiner-00"/>
    <author initials="J." surname="Alwen" fullname="Joël Alwen">
      <organization>AWS</organization>
      <address>
        <email>alwenjo@amazon.com</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="M." surname="Mularczyk" fullname="Marta Mularczyk">
      <organization>AWS</organization>
      <address>
        <email>mulmarta@amazon.ch</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>
    <date year="2024" month="July" day="24"/>
    <area>Security</area>
    <workgroup>MLS</workgroup>
    <keyword>security</keyword>
    <keyword>authenticated key exchange</keyword>
    <keyword>PCS</keyword>
    <keyword>Post-Quantum</keyword>
    <abstract>
      <?line 51?>
<t>This document describes a protocol for combining a traditional MLS session with a post-quantum (PQ) MLS session to achieve flexible and efficient hybrid post-quantum security. Specifically, we describe how to use the exporter secret of a PQ MLS session, i.e. an MLS session using a PQ ciphersuite, to seed PQ guarantees into an MLS session using a traditional ciphersuite. By supporting on-demand traditional-only key updates (a.k.a. PARTIAL updates) or hybrid-PQ key updates (a.k.a. FULL updates), we can reduce the bandwidth and computational overhead associated with meeting the requirement of frequent key rotations while still providing PQ security.</t>
    </abstract>
  </front>
  <middle>
    <?line 53?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>A fully capable quantum adversary has the ability to break fundamental underlying cryptographic assumptions of traditional Key Encapsulation Mechanisms (KEMs) and Digital Signature Algorithms (DSAs). This has led to the development of post-quantum (PQ) cryptographically secure KEMs and DSAs by the cryptographic research community which have been formally adopted by the National Institute of Standards and Technology (NIST), including the Module Lattice KEM (ML-KEM) and Module Lattice DSA (ML-DSA) algorithms. While these provide PQ security, ML-KEM and ML-DSA have significantly worse overhead in terms of public key size, signature size, ciphertext size, and CPU time than their traditional counterparts. Moreover, research arms on side-channel attacks, etc., have motivated uses of hybrid-PQ combiners that draw security from both the underlying PQ and underlying traditional components. A variety of hybrid security treatments have arisen across IETF working groups to bridge the gap between performance and security to encourage the adoption of PQ security in existing protocols, including the MLS protocol [RFC9420].</t>
      <t>Within the MLS working group, there are several topic areas that make use of post-quantum security extensions: 
[Copied from draft-mahy-mls-xwing]
1.  A straightforward MLS cipher suite that replaces a traditional KEM with a hybrid post-quantum/traditional KEM.  Such a cipher suite could be implemented as a drop-in replacement in many MLS libraries without changes to any other part of the MLS stack. The aim is for implementations to have a single KEM which would be performant and work for the vast majority of implementations. It addresses the harvest-now / decrypt-later threat model using the simplest, and most practicable solution available.</t>
      <ol spacing="normal" type="1"><li>
          <t>Versions of existing cipher suites that use post-quantum signatures; and specific guidelines on the construction, use, and validation of hybrid signatures.</t>
        </li>
        <li>
          <t>One or more mechanisms which reduce the bandwidth or storage requirements, or improve performance when using post-quantum algorithms (for example by updating post-quantum keys less frequently than traditional keys, or by sharing portions of post-quantum keys across a large number of clients or groups.)</t>
        </li>
      </ol>
      <t>This document addresses the third topic of theses work items.</t>
    </section>
    <section anchor="about-this-document">
      <name>About This Document</name>
      <t>This note is to be removed before publishing as an RFC.</t>
      <t>Status information for this document may be found at <em>[Todo]</em>.</t>
      <t>Discussion of this document takes place on the MLS Working Group mailing list (mailto:mls@ietf.org), which is archived at https://mailarchive.ietf.org/arch/browse/mls/.  Subscribe at https://www.ietf.org/mailman/listinfo/mls/.</t>
      <t>Source for this draft and an issue tracker can be found at https://github.com/PairedMLS/draft-pairedMLS.</t>
    </section>
    <section anchor="status-of-this-memo">
      <name>Status of this Memo</name>
      <t>This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.</t>
      <t>Internet-Drafts are working documents of the Internet Engineering Task Force (IETF).  Note that other groups may also distribute  working documents as Internet-Drafts.  The list of current Internet-Drafts is at https://datatracker.ietf.org/drafts/current/.</t>
      <t>Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time.  It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."</t>
    </section>
    <section anchor="copyright-notice">
      <name>Copyright Notice</name>
      <t>Copyright (c) 2024 IETF Trust and the persons identified as the document authors.  All rights reserved.</t>
      <t>This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document.  Code Components extracted from this document must include Revised BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Revised BSD License.</t>
    </section>
    <section anchor="terminology">
      <name>Terminology</name>
      <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14, [RFC2119], and [RFC8174] when, and only when, they appear in all capitals, as shown here.</t>
      <t>The terms MLS client, MLS member, MLS group, Leaf Node, GroupContext, KeyPackage, Signature Key, Handshake Message, Private Message, Public Message, and RequiredCapabilities have the same meanings as in the [MLS protocol] <eref target="https://www.rfc-editor.org/rfc/rfc9420.html">https://www.rfc-editor.org/rfc/rfc9420.html</eref>.</t>
    </section>
    <section anchor="notation">
      <name>Notation</name>
      <t><strong>Traditional MLS Session:</strong> An MLS session that uses a Diffie-Hellman (DH) based KEM as described in RFC9180.</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>
      <t><strong>Post Quantum (PQ) MLS Session:</strong> An MLS session that uses a PQ-KEM construction, such as described by FIPS 203 from NIST.</t>
    </section>
    <section anchor="the-combiner-protocol-execution">
      <name>The Combiner Protocol Execution</name>
      <t>The combiner protocol runs two MLS sessions in parallel, synchronizing their group memberships. The two sessions are combined by exporting a secret from the post quantum session and importing it as a Pre-Shared Key (PSK) in the traditional session. This combination process is mandatory for commits to add and remove proposals, in order to maintain synchronization between the sessions. However, it is optional for any other commits (e.g. to allow for cheap traditional PCS key rotations). Due to the higher computational costs and output sizes of PQ KEM (and signature) operations, it may be desirable to issue PQ combined commits less frequently than the traditional-only commits. The combiner protocol design treats both sessions as black-box interfaces so we only highlight operations requiring synchronizations in this document.</t>
      <section anchor="commit-flow">
        <name>Commit Flow</name>
        <t>Commits to proposals MAY be <em>PARTIAL</em> or <em>FULL</em>. For a PARTIAL commit, only the traditional session's epoch is updated following the propose-commit sequence from Section 12 of RFC9420. For a FULL commit, a commit is first applied to the PQ session and another commit is applied to the traditional session using a PSK derived from the <tt>exporter_secret</tt> of the PQ session. To ensure the correct PSK is used, the sender includes information about the PSK in a PreSharedKey proposal for in the traditional session's commit list of proposals (8.4, 8.5 RFC9420). Receivers process the PQ commit and the traditional commit (which also includes a PSK proposal) to derive the new epochs in both sessions.</t>
        <artwork><![CDATA[
                                                     Group
  A                       B                         Channel
|                         |                            |
| Commit'()               |                            |
| Commit(PreSharedKeyID)  |                            |
|----------------------------------------------------->|
|                         |                            |
|                         |                 Commit'()  |
|                         |    Commit(PreSharedKeyID)  |
|<-----------------------------------------------------+
|                         |<---------------------------+
Fig 1a. FULL Commit to an empty proposal list.
    Messages with ' are sent in the the PQ session. 
    PreSharedKeyID identifies a PSK exported from the PQ
    session and is included in the commit in the classical
    session.

                                                             Group
  A                           B                             Channel
|                             |                                |
|                             | Upd'(B)                        |
|                             | Upd(B, f)                      |
|                             |------------------------------->|
|                             |                                |
|                             |                        Upd'(B) |
|                             |                      Upd(B, f) |
|<-------------------------------------------------------------+
|                             |<-------------------------------+
|                             |                                |
| Commit'(Upd')               |                                |
| Commit(Upd, PreSharedKeyID) |                                |
|------------------------------------------------------------->|
|                             |                                |
|                             |                  Commit'(Upd') |
|                             |    Commit(Upd, PreSharedKeyID) |
|<-------------------------------------------------------------+
|                             |<-------------------------------+
Fig 1b. FULL Commit to an Update proposal from Client B. 
    Messages with ' are sent in the the PQ session.
]]></artwork>
        <t><strong>Remark</strong>: Fig 1b shows Client A accepting the update proposals from Client B as a FULL commit. The flag <tt>f</tt> in the classical update proposal <tt>Upd(B, f)</tt> indicates B's intention for a FULL commit to whomever commits to its proposal.</t>
      </section>
      <section anchor="adding-a-user">
        <name>Adding a User</name>
        <t>User leaf nodes are first added to the PQ session following the sequence described in Section 3 of RFC9420 except using PQ algorithms where HPKE algorithms exist. For example, a PQ KeyPackage one containing a PQ public key signed using a PQ DSA, must first be published to the Delivery Service (DS). Then the associated Add Proposal, Commit, and Welcome messages will be sent and processed in the PQ session according to Section 12 of RFC9420. The same sequence is repeated in the standard session except following the FULL Commit combining sequence where a PreSharedKeyID proposal is additionally committed. The joiner MUST issue a FULL commit as soon as possible to acheive PCS. 
[<strong>XT</strong>: Pick up edits here]</t>
        <artwork><![CDATA[
                                                     Key Package                                    Group
A                                          B          Directory                                    Channel
|                                          |              |                                           |
|                                          | KeyPackageB' |                                           |
|                                          |  KeyPackageB |                                           |
|<--------------------------------------------------------+                                           |
|                                          |              |                                           |
| Commit'(Add'(KeyPackageB'))              |              |                                           |
| Commit(Add(KeyPackageB), PreSharedKeyID) |              |                                           |
+---------------------------------------------------------------------------------------------------->|
|                                          |              |                                           |
| Welcome'                                 |              |                                           | 
| Welcome(PreSharedKeyID)                  |              |                                           | 
+----------------------------------------->|              |                                           |
|                                          |              |                                           |
|                                          |              |  Commit'(Add'(KeyPackageB'))              |
|                                          |              |  Commit(Add(KeyPackageB), PreSharedKeyID) |
|<----------------------------------------------------------------------------------------------------+

  Figure 2: 
  Client A adds client B to the group.
  Messages with ' come from the PQ session. Processing Welcome and Commit in the traditional
  sessio requires the PSK exported exported from the PQ session.
]]></artwork>
        <section anchor="welcome-message-validation">
          <name>Welcome Message Validation</name>
          <t>Since a client must join two sessions, the Welcome messages it receives to each session must indicate that it is not sufficient to join only one or the other. Therefore, a HPQMLS Group Context Extension value indicating the GroupID and ciphersuites of the two sessions must be included in the Welcome message in order to validate joining the combined sessions.</t>
        </section>
        <section anchor="external-joins">
          <name>External Joins</name>
          <t>External joins are used by members who join a group without being explicitly added (via a add-commit sequence) by another existing member. The external user MUST join both the PQ session and the traditional session. As stated previously, the GroupInfo used to create the external commit MUST contain the HPQMLS Group Context Extension value. After joining, the new member MUST issue a FULL update commit as described in Fig 1b.</t>
        </section>
        <section anchor="removing-a-group-member">
          <name>Removing a Group Member</name>
          <t>User removals MUST be done in both PQ and traditional sessions followed by a full update as as described in Fig 1b.</t>
        </section>
      </section>
    </section>
    <section anchor="application-messages">
      <name>Application Messages</name>
      <t>The HPQMLS combiner serves only to provide hybrid PQ security to a classical MLS session. Application messages are therefore only sent using  the <tt>encryption_secret</tt> provided by the key schedule of the classical session according to Section 15 of RFC9420.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t><strong>[TODO:]</strong> Remark on PQ KEM vs PQ Signatures and PQ Conf/Auth guarantees we get. 
<strong>[TODO:]</strong> PQ Session with only PQ KEM (Conf) not PQ Sigs (Auth) - we need to flag this as a Hybrid Conf Combiner or Hybrid Conf+Auth combiner 
<strong>[TODO:]</strong> Tighter windows for post compromise and FS windows. 
<strong>[TODO:]</strong> book-keeping operations (for fork resiliency?). 
<strong>[TODO:]</strong> Information leakage with the <tt>gid</tt> value being added to welcome messages
<strong>[TODO:]</strong> Consider adding a statement to say how this combiner generalizes combining of two (or more?) arbitrary MLS sessions. 
<strong>[TODO:]</strong> Epoch Agreement (Fork Resiliency)</t>
      <section anchor="transport-security">
        <name>Transport Security</name>
        <t>Recommendations for preventing denial of service (DoS) attacks, or restricting transmitted messages are inherited from MLS. Furthermore, message integrity and confidentiality is, as for MLS, protected.</t>
      </section>
    </section>
    <section anchor="extension-requirements-to-mls">
      <name>Extension Requirements to MLS</name>
      <t>Group Context Extension for HPQMLS SHALL be in the following format:</t>
      <artwork><![CDATA[
  struct {
    ProtocolVersion version = mls10;
    CipherSuite cipher_suite;
    opaque group_id<V>;
    uint64 epoch;
    opaque tree_hash<V>;
    opaque confirmed_transcript_hash<V>;
    Extension extensions<V>;
  } GroupContext;

  Extension hpqmls{
      opaque trad_session_group_id<V>; 
      opaque PQ_session_group_id<V>; 
      CipherSuite trad_cipher_suite; 
      CipherSuite pq_cipher_suite; 
      uint64 trad_epoch; 
      uint64 pq_epoch;   
  }
]]></artwork>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t><strong>[TODO]</strong> Determine an extension code to use</t>
    </section>
    <section anchor="references">
      <name>References</name>
      <section anchor="normative-references-ie-rfcs">
        <name>Normative References (i.e. RFCs)</name>
        <t>[1] <eref target="https://www.rfc-editor.org/info/rfc9420">https://www.rfc-editor.org/info/rfc9420</eref> "MLS RFC"
[2] <eref target="https://www.rfc-editor.org/info/rfc5246">https://www.rfc-editor.org/info/rfc5246</eref> "TLS RFC"</t>
      </section>
      <section anchor="informational-references">
        <name>Informational References</name>
        <!--# Appendices -->

</section>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>## Contributors 
## Authors</t>
    </section>
  </middle>
  <back>








  </back>
  <!-- ##markdown-source:
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
rTIl2t0j8fomYkkH77yURGj/jVtYNqO0OU0jW+8AcAOzNkwdN7WVK5r2+BsW
U+9ejZ9IBKjTP6Pelptib8Q7vC2TuBozVIN6rI6iu7SFUB0hohA8YpCjGkZs
jhrGZQrZ7h1obk4wYJoWi08Rl0IepRSldPJudSx3Xbn2stqrdaD7YIi06cHw
q5LlsMpzHztc5X/82jyUsm5Y62/Tq640F7girZYkXCxx9ojtwlKGEiO3Z8Vh
RW4ZC+1j8U7sJ3048fLTR7eMeXjr7APZPOD5f9w66vY39NJPFuO72+19+uRu
U+7Hh73NJg8+5fP9H3/Fmjef3ODORpNvZYhM/u6TFv3FhzC/D6xMPrIztVvu
EnvnK3vaZpHmDWMlIxxWau3TU1+W3vXbIdLylzZm261UE9sMqFsFpb15H9Vw
W2fPq8mtxMWVplrVj6Wr9L8ijdGBjtanDz/DOsvPJlZKn9stlT6bWeuH36oP
K6G8fZGGd7sP1y3644F0H/bV9BYwGwH5XGv+8NtNKbntRcmqzwBSM+qzrHxT
a98IxUZA3vtWXQ8RxKuPChPXgRCMvlp3j5sC+Sy+/keVrc3CjYG8l2n/z5SN
Q8zkphDzghPuRkJIPv+Ae1TqYSNofGS0oXbBuVno7HJ7e9+j566YK4GPlA4C
k1YnmIo2Ia5NidTFjWxeKqhppGfq7fTttYCzDk69rTwBDQ75IKpTD+/yATIK
gH7HrYWEeLScJwuqaJuVM/0pIfNu4B01CkPJ+184k3U69D/KQj1VccKZLNjl
S44wvLHgaFc8VYlzY/f3y0alQwdpwUZfd9BZknpHdsnnJB6fPXnUfMob2FIg
+d3avpy2q1uMqNd4Q5oK/+owXutkzizmEzDVy8PxqC89bVnmpNrqrFd7aCKq
DlZYR3ZFuxrdwzGfxfJdhMYBN7CTWjzM4b7XWGlavjQRJEGdyUoho4jQsTbS
CF971ElJs6wLUE+FflPilsrxomx+VkKwVEWnRuc1TOePX1WQvRjaYmzaW32C
s4Ir8tHrGVmltFRxhmWlVHUPQIUQ+WvC3QNuu0tzoq291IhOEt5nAjxnfR9D
B3Oq0qivAuV9tb39ywUZ6ZkNLmE2ivq3jnvXrz8jS6Mqs1SmDT51Mve+VG7t
08jsDi0VydTk2uCzec7X+vzx3p/vn/rxuGpjfHj3342riexTcH1ynPvi37yu
9/zcCFeZGsAd3e02JdJby7X+MlyEqomp98GM7ONxffGp4vqYz0Yp3fsW8ik8
9MHh7r8Vl2oju95Q+OuRbS6x7/9vvdR/EtfmxvlX4drEOP+KzH/Dj+T2PkYj
x6aW8d5++aDOs8PQ+W1nhEyfi/HuVtlMWk/uOcFqdH/qJtKZ5FaUxZSJGB+/
brV9Gu1dj0DmlycNXdWZrlpNN/WcGsUEpdh3KozlxuzP9dFIjBhbPq1crpRz
UcqQWjt20jq/lkPavNz35PzeIEWqEjt/UENKBtnTlM2AOMmVK6prM5jH6Hir
I5EDmYSM9xA4Ycv4CCAl23IJzx+981v86lF5IJmOOBWmxFnmkjwY2SHfEKkv
s1QHwlobk0w0H31o9+fWVt7a6fMnTSWvLLFWe111a91Lg8jNqIP/E4a7Tqf6
TdOl4qHNCtoW9ZuoVEsJj7TfXS3PpEwM4YMSoMCwOV+BIKK7V1ZjLH6sb/30
CGy5P1OdyBU8khybkpzClTkyo65O4K9t9ty6tzpylOyTbqZ0oCgpHJ0cqiUS
TxNZKB3zoo278vqTx+8pZwp8ScUDNtEBYJ/SaWYvkX617yErvSH193VvXQG0
CsiyDyASPKeNX6nghIpThuqrV94W5t0+QkKboaTUJQf9pYUbOOZ8DSSi13Ii
0pOl3XtIokO1tL8WlIcexDhlW99zq9oy5eNqzu8rJtVVlHl1+bV5ZUE3GgON
QwDDFr7KGWjZeRNrFQxcW0q16/fxYj5sjnnVTl510Mpf2+E6GaUW36vxNlqT
8f6C9KtWQcr+r7pmS7pCt1T8/m5ne/sVXSLdf729raTlQkc5/Db3laNv1Xkh
2RLHE8CY7tDBluZVuiXCgsmBrwmSpjfvFzI/yk10AtNjRyhYnOoS0J4aELDY
iFVwl4Y3mrmL4y8o09z6PAecZeP5F0xaJewWQRe0wY2HKLJD6idR14bPVtAJ
AEQP6yQmHY3LIWsrmiTJ5eDSmJTv/tUb5Xx+fUrnMcEoS1EkWP2jtzb5uLHL
GhnN9W11xPftzIZvvfcWl1Z1e5ZrIacFtJQoV/tyeIQ8zsKHFadXcrmyPuVB
53hNTFdf+FxD3VsgRUMg6PrbAP/oQZ0nFmaarVrnX9aW9Yg34EezzAjW7hHx
4bziQ4+bXBfVaaNKGTvnhnyNiUPPRRYHHCX11OgksYn5FOyULVaaPsm4V1+t
SrL6kKVcfYqdP07dskgbwyRtlSLQQW11VGRkqAuOqnVIy82MaZO7lPFUdrg0
X0e0ckCPqASIPh+9MAG3VMjIav973rgVQUKgi+C3+WqC5h2UHHHkyMsqUfeD
RG/2q41pOQel/tnYl5NTIP6yibryf/+uFpHbvfdtNfCAo/9YbgPx9zecCtQj
klQjTkqQfWPD737+vn5XgEFf35ed82szcijAm7l289YU/5J5mS1M+IalBB+e
5tcH12ypb1g1BvzZOtf4bcmNetY8/Q3rrdnSoE2Hb7z+vmkuTV0fe/b8gyOb
XGTQLVbeNjL97fZxnrMMTNh7w1sA8O+q1P1Pvmc7ejpac+2ViZKFHpqcj+Aa
3hiuuBXQaUQ5kE5QzssD6E6SZvVUvNWVabxSXb52jfjiep1Xu+8/w8k3MPwh
zu/VFuk4Jm51Xu1tNu+rvftfY95FOY+panhROIcGZXj93X8NBpwJGMp/8QxF
rSQHwWWcLCMTztgoO//cl0s+Jvz71hSJitn6U44vxXKfIUHGya15OfCuOv8L
RNBRfC5DAAA=

-->

</rfc>
