<?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.43 (Ruby 4.0.7) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-mahy-mls-credential-by-ref-00" category="info" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.35.0 -->
  <front>
    <title abbrev="MLS By-Ref Credentials">Credentials By-Reference in the Messaging Layer Security (MLS) Protocol</title>
    <seriesInfo name="Internet-Draft" value="draft-mahy-mls-credential-by-ref-00"/>
    <author fullname="Rohan Mahy">
      <organization/>
      <address>
        <email>rohan.ietf@gmail.com</email>
      </address>
    </author>
    <date year="2026" month="November" day="01"/>
    <area>Security</area>
    <workgroup>Messaging Layer Security</workgroup>
    <keyword>credential type</keyword>
    <keyword>smaller LeafNode</keyword>
    <keyword>smaller Credential</keyword>
    <keyword>MLS scaling</keyword>
    <abstract>
      <?line 38?>

<t>Credentials in MLS can grow to become quite large.
Many credentials appear repeatedly in several MLS groups.
This extension allows MLS credentials to be included by using a hash reference of the actual credential.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://rohanmahy.github.io/mls-credential-by-ref/draft-mahy-mls-credential-by-ref.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-mahy-mls-credential-by-ref/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Messaging Layer Security Working Group mailing list (<eref target="mailto:mls@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/mls/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/mls/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/rohanmahy/mls-credential-by-ref"/>.</t>
    </note>
  </front>
  <middle>
    <?line 45?>

<section anchor="intro">
      <name>Introduction</name>
      <t>This new credential type allows an MLS LeafNode to contain a hash reference to another MLS credential.
The value of the referenced credential could be be communicated out-of-band or in another MLS group.</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="credential-format">
      <name>Credential Format</name>
      <sourcecode type="tls"><![CDATA[
struct {
    CredentialType referenced_credential_type;
    HashReference referenced_credential_hash<V>;
} ByRefCredential;

by_ref = ByRefCredential;
]]></sourcecode>
      <t>The <tt>referenced_credential_hash</tt> is the hash of the entire Credential struct of the <tt>referenced_credential_type</tt>, using the hash function from the cipher suite of the KeyPackage or the MLS group.</t>
      <t>The <tt>referenced_credential_type</tt> <bcp14>MUST NOT</bcp14> be a <tt>by_ref</tt> Credential type.</t>
    </section>
    <section anchor="security">
      <name>Security Considerations</name>
      <t>The security of this mechanism depends on the strength of the hash function's resistance to birthday attacks.</t>
      <t>Clients implementing this extension need to consider that the lookup of credential hashes could potentially leak timing information.
Implementations must be careful that the scope of applicability (ex: the audience in a web token, or the domain in an X.509 certificate) is relevant to the context of the LeafNode (in an MLS group or in a KeyPackage).</t>
    </section>
    <section anchor="iana">
      <name>IANA Considerations</name>
      <t>This document requests IANA to add the following entries to the MLS Credential Types registry.
Please replace RFCXXXX with the RFC of this document</t>
      <ul spacing="normal">
        <li>
          <t>Value: 0x0007 (suggested)</t>
        </li>
        <li>
          <t>Name: by_ref</t>
        </li>
        <li>
          <t>Recommended: Y</t>
        </li>
        <li>
          <t>Reference: RFCXXXX</t>
        </li>
      </ul>
    </section>
  </middle>
  <back>
    <references anchor="sec-normative-references">
      <name>Normative References</name>
      <reference anchor="RFC2119" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
        <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" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml">
        <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>
    <?line 110?>



  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA4VWbXMTNxD+rl+xdT4UOpydtHQAQ4GQl5Jp3poECtPpEN3d
2tbkTjoknc01E35Lf0t/WXelu7NNQslkxqeV9u3Rs7tKkkR45Qscw2DHYo7a
K1k4eNUkZzhBizpDUBr8DOEInZNTpadwKBu0cI5ZbZVv4N7R4fl9OLXGm8wU
AyHT1OKcLJK8tQQrxgcikx6nxjZjMj0xQuQm07KkGHIrJz4p5axJysIlWa+U
pE1icZJsbgpXp6VyThntm4p0DvYu9gE2gCwb8ql0jhVq1hs8gAHmyhtLFnhx
sP2Kfoylr7OL/YHQdZmiHYuc4hmLzGiH2tVuDN7WKCiDn4S0KMlql+tALIy9
mlpTV5zfVxAZiCts6GA+FpDAMgvgiFnkSlkUpHCIcnJs8jXZEimWMoQukwU5
EXPUNcUJ8G3/ABGcwR8ULh/4lVVYXkpVkJzgfanQT4bGTlksbTYj8cz7yo1H
Iz7FIjXHYXdsxIJRas3C4Yj0R6w3VX5Wp6RpzUxqvrnRnTfHZwuC2fkVL73O
MJoZKnO39uhbxBjOfEnME7L2M2MZdvIHMKmLIjLrjF3BERkIG5SO1Opv6YlG
4yDBCEwIKaT8csqSYWZKIbSxJZ2dE/qCKbtciSRJQKbOW5l5IVZriMqGby8j
v3RhC/AGUiRzCB9r5ZHgsFMciiOpmxWOOJBVhdKCJRoTYHnRsCWHc7TEILYY
rt8NxcVMOcBPnkhLaVABFHQ10eeKueCWTGRFnWMOaQO1Y0ZImEk3IzddmZtJ
KHPKoyZHSxPDNstS5XmBQmzAgfbW5HXG6MH1huLljYjxaFx8yfguMhkB6UjP
kVHNeUnp3QqG9qQ2FI/9IiFOG2Eui7qPuNfKVz1npi5yTp3+CfWy1or7Tg6m
9omZJKnUOfcC9r7iKYDLKW/AjtFzNkZ9AfjwLk6UVmEtQhRU5cBl7qgU35xf
cIvhXzg+Cd9ne7+/OTjb2+Xv89fbh4f9h2hPnL8+eXO4u/xaau6cHB3tHe9G
ZZLCmkgMjrbf0w5HNTg5vTg4Od4+HMRGTXdA/bQuKXKqauzv36OtLDIA0okc
XWZVSgvSebVz+u8/Ww/h+vq7s/2dH7e2ntzctIvHW48e0mIxQx29GU18jEuC
rBEtWVWgH3G9Up5IR2cduJlZaCBcieTihz8Zmb/G8CzNqq2Hz1sBJ7wm7DBb
EwbMbktuKUcQ7xDd4aZHc03+BdLr8W6/X1t3uK8In72gRo2QbD1+8TxSaMnH
/dA1hPj8+TP4wglqGVRBcB26z/LcBRfMktEfloz+wLX0NBx/TcWynM93n+aC
evb2+VNxQzOYDi9dPBUibT6QFvxye4vCi+S+/LrZSyCSceWFom2rkPeJbisZ
txm2+1+xx0ldPmh7Um9zUuvYXSbWlEGcqYpL1IXW2Zr8DZtTmV3JKXIhhzfK
SgX/TxLBKXQE5PqQcBkxuVzNgM/FXtA/dqgpOJVTL4594XrDtTs30WO3jDES
TiVmNFKUKyE+TBzVUIiV4EE99T2Aa4l/7+hanXJett0wVdbPctmA9J5ypvYv
dgpFcdKgKasCud4jhGtDQSPVeGy0IWzalz64K4y5qit2vtI0OQZ0be+sjI9i
KvkC5RV4VbKLfgIaPRQHnfMWkLJ2PrRc6j00fpf+XGaqcHPUMgpqxakqwuMR
P43j3Klz1T03JSwwpbCvuM+0V5ubkidFaNfwbvjz5hPI0Ho1CW39PlPSYoFz
SX2PEg6coelCUHQA94PnXjTSk6UbAyuEuh+v/WD7ePv2lSupZTfv+l5r8WNN
zxsXdXh+5XlwOzE8/hg4OmYVui489r9CNq58zmFKt26boTglzB1Xd1VIgoW6
8Tv6gwU9lYI6CXqSdVHQpIa3PBvHsPlpc3PzEdxz9XRKcWF+n/aOw2MoMp2W
Z/weKfm1nI/hfRC05TLu/LXDPyVYhPgPvALtVS8MAAA=

-->

</rfc>
