<?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.19 (Ruby 3.3.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-tls-key-share-prediction-01" category="std" consensus="true" submissionType="IETF" updates="8446" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.23.0 -->
  <front>
    <title>TLS Key Share Prediction</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-tls-key-share-prediction-01"/>
    <author initials="D." surname="Benjamin" fullname="David Benjamin">
      <organization>Google LLC</organization>
      <address>
        <email>davidben@google.com</email>
      </address>
    </author>
    <date year="2024" month="September" day="10"/>
    <area>Security</area>
    <workgroup>Transport Layer Security</workgroup>
    <abstract>
      <?line 34?>

<t>This document defines a mechanism for servers to communicate key share preferences in DNS. Clients may use this information to reduce TLS handshake round-trips.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://tlswg.github.io/tls-key-share-prediction/draft-ietf-tls-key-share-prediction.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ietf-tls-key-share-prediction/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Transport Layer Security Working Group mailing list (<eref target="mailto:tls@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/tls/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/tls/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/tlswg/tls-key-share-prediction"/>.</t>
    </note>
  </front>
  <middle>
    <?line 38?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Named groups in TLS 1.3 <xref target="RFC8446"/> are negotiated with two lists in the ClientHello: The client sends its full preferences in the <tt>supported_groups</tt> extension, but also generates key shares for a subset in the <tt>key_share</tt> extension. Named groups in this subset may be used in one, while named groups outside the subset requires a HelloRetryRequest and two round trips. The additional round trip is undesirable for performance, but unused key shares consume network and computational resources, so clients often do not generate key shares for all groups.</t>
      <t>Post-quantum key encapsulation methods (KEMs) have large keys and ciphertexts, so network costs are particularly pronounced. As a TLS ecosystem transitions from one post-quantum KEM to another, it is challenging to pick key shares without prior knowledge of the server's policies:</t>
      <ol spacing="normal" type="1"><li>
          <t>Predicting both post-quantum KEMs consumes excessive bandwidth on the unused option.</t>
        </li>
        <li>
          <t>Predicting the old post-quantum KEM adds a round-trip cost to newer servers. Servers will be unlikely to transition as a result.</t>
        </li>
        <li>
          <t>Predicting the new post-quantum KEM adds a round-trip cost to older servers. Particularly early in the transition, when most servers do not implement the new KEM, this may significantly regress performance.</t>
        </li>
      </ol>
      <t>This document defines a method for servers to declare their named group preferences in DNS, using SVCB or HTTPS resource records <xref target="RFC9460"/>. This allows the client to predict key shares more accurately.</t>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</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 <xref target="RFC2119"/> <xref target="RFC8174"/>
when, and only when, they appear in all capitals, as shown here.</t>
    </section>
    <section anchor="dns-service-parameter">
      <name>DNS Service Parameter</name>
      <t>This document defines the <tt>tls-supported-groups</tt> SvcParamKey <xref target="RFC9460"/>, which specifies the endpoint's TLS supported group preferences, as a non-empty sequence of TLS NamedGroup codepoints in order of decreasing preference, with no duplicates. This allows clients connecting to the endpoint to reduce the likelihood of needing a HelloRetryRequest.</t>
      <section anchor="format">
        <name>Format</name>
        <t>The presentation <tt>value</tt> of the SvcParamValue is a non-empty comma-separated list (<xref section="A.1" sectionFormat="of" target="RFC9460"/>) of decimal integers between 0 and 65535 (inclusive) in ASCII, with no duplicate integers. Any other <tt>value</tt> is a syntax error. To enable simpler parsing, this SvcParam MUST NOT contain escape sequences.</t>
        <t>The wire format of the SvcParamValue is a sequence of 2-octet numeric values in network byte order. An empty list of values is invalid, as is a list containing duplicates.</t>
        <t>For example, a TLS server which prefers <tt>x25519</tt> (29) and also supports <tt>secp256r1</tt> (23) would a <tt>tls-supported-groups</tt> SvcParamValue containing 29 and 23. The presentation <tt>value</tt> would be "29,23". The wire format of the SvcParamValue would be four octets, represented in hexadecimal as <tt>001d0017</tt>.</t>
        <t>The following is an example of the value appearing in a complete DNS record in the presentation syntax:</t>
        <sourcecode type="dns"><![CDATA[
example.net.  7200  IN SVCB 3 server.example.net. (
    port="8004" tls-supported-groups=29,23 )
]]></sourcecode>
      </section>
      <section anchor="configuring-services">
        <name>Configuring Services</name>
        <t>Services SHOULD include supported TLS named groups, in order of decreasing preference in the <tt>tls-supported-groups</tt> parameter of their HTTPS or SVCB endpoints. As TLS preferences are updated, services SHOULD update the DNS record to match. Services MAY include GREASE values <xref target="RFC8701"/> in this list.</t>
      </section>
      <section anchor="client-behavior">
        <name>Client Behavior</name>
        <t>When connecting to a service endpoint whose HTTPS or SVCB record contains the <tt>tls-supported-groups</tt> parameter, the client evaluates the server preferences against its own to predict which named group will be chosen. When evaluating the server preferences, the client MUST ignore any codepoints that it does not support or recognize. If there is a named group in common, the client MAY send a <tt>key_share</tt> extension containing just that named group in the initial ClientHello. To avoid downgrade attacks, the client MUST continue to send its full preferences in the <tt>supported_groups</tt> extension. See <xref target="security-considerations"/> for additional discussion on downgrades.</t>
      </section>
      <section anchor="misprediction">
        <name>Misprediction</name>
        <t>Although this service parameter is intended to reduce key share mispredictions, mispredictions may still occur in some scenarios. For example:</t>
        <ul spacing="normal">
          <li>
            <t>The client has fetched a stale HTTPS or SVCB record that no longer reflects the server preferences</t>
          </li>
          <li>
            <t>The server is in the process of deploying a change to named group preferences, and different server instances temporary evaluate different preferences</t>
          </li>
          <li>
            <t>The client was unable to fetch the HTTPS or SVCB record</t>
          </li>
          <li>
            <t>The client and server implement incompatible selection algorithms, such that client's evaluation of the service parameter did not match the server's final selection</t>
          </li>
        </ul>
        <t>Clients and servers MUST correctly handle mispredictions by responding to and sending HelloRetryRequest, respectively.</t>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>This document introduces a mechanism for clients to vary the <tt>key_share</tt> extension based on DNS. DNS responses are unauthenticated in many deployments, so this can permit attacker influence over the client's predicted named groups. That, in turn, can influence the named group selected by the TLS server, as TLS's downgrade protections only extend to the ClientHello itself. However, the client continues to send its full preferences in <tt>supported_groups</tt>, so this influence is limited by the server's named group selection policy:</t>
      <t>Servers which select purely based on preference orders will first select a named group on <tt>supported_groups</tt>, and then consider <tt>key_share</tt> only to send HelloRetryRequest or ServerHello. When connecting to such servers, attackers cannot influence the selection with this mechanism.</t>
      <t>However, some servers prioritize round-trip times over preference orders. That is, when choosing between a named group in <tt>key_share</tt> and a more preferable (e.g. more secure) named group not in <tt>key_share</tt>, these servers will select the less preferable one in <tt>key_share</tt>. In this case, an attacker may be able to influence the selection by forging an HTTPS or SVCB record. Per <xref section="4.2.8" sectionFormat="of" target="RFC8446"/>, the client's <tt>key_share</tt> extension does not reflect its full preference list in <tt>supported_groups</tt>. Thus, this server behavior is only appropriate when the two options are of comparable preference, such that round trip concerns dominate. In particular, it is NOT RECOMMENDED when choosing between post-quantum and classical named groups.</t>
      <t>As these semantics were already prescribed in <xref target="RFC8446"/>, it is safe for clients to admit attacker control over the set of named groups preferred in <tt>key_share</tt>, provided <tt>supported_groups</tt> always reflects the true client preference. Servers are expected to evaluate the combination of <tt>key_share</tt> and <tt>supported_groups</tt> according to the defined semantics and their selection goals.</t>
      <t>To reduce the risk of downgrade attacks with incorrectly deployed servers, clients MAY choose to ignore <tt>tls-supported-groups</tt> when the result would be to a predict a less preferred group. For example, a client that implements a combination of post-quantum groups and ECDH groups MAY limit its influence to predicting post-quantum groups. This optimizes transitions between post-quantum groups, where the bandwidth concerns are more pronounced, but means ECDH-only servers cannot take advantage of the mechanism.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document updates the Service Parameter Keys registry <xref target="RFC9460"/> with the following entry:</t>
      <table>
        <thead>
          <tr>
            <th align="left">Number</th>
            <th align="left">Name</th>
            <th align="left">Meaning</th>
            <th align="left">Format Reference</th>
            <th align="left">Change Controller</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">TBD</td>
            <td align="left">tls-supported-groups</td>
            <td align="left">Supported groups in TLS</td>
            <td align="left">(this document) <xref target="format"/></td>
            <td align="left">IETF</td>
          </tr>
        </tbody>
      </table>
    </section>
  </middle>
  <back>
    <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="RFC9460">
        <front>
          <title>Service Binding and Parameter Specification via the DNS (SVCB and HTTPS Resource Records)</title>
          <author fullname="B. Schwartz" initials="B." surname="Schwartz"/>
          <author fullname="M. Bishop" initials="M." surname="Bishop"/>
          <author fullname="E. Nygren" initials="E." surname="Nygren"/>
          <date month="November" year="2023"/>
          <abstract>
            <t>This document specifies the "SVCB" ("Service Binding") and "HTTPS" DNS resource record (RR) types to facilitate the lookup of information needed to make connections to network services, such as for HTTP origins. SVCB records allow a service to be provided from multiple alternative endpoints, each with associated parameters (such as transport protocol configuration), and are extensible to support future uses (such as keys for encrypting the TLS ClientHello). They also enable aliasing of apex domains, which is not possible with CNAME. The HTTPS RR is a variation of SVCB for use with HTTP (see RFC 9110, "HTTP Semantics"). By providing more information to the client before it attempts to establish a connection, these records offer potential benefits to both performance and privacy.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="9460"/>
        <seriesInfo name="DOI" value="10.17487/RFC9460"/>
      </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>
      <reference anchor="RFC8701">
        <front>
          <title>Applying Generate Random Extensions And Sustain Extensibility (GREASE) to TLS Extensibility</title>
          <author fullname="D. Benjamin" initials="D." surname="Benjamin"/>
          <date month="January" year="2020"/>
          <abstract>
            <t>This document describes GREASE (Generate Random Extensions And Sustain Extensibility), a mechanism to prevent extensibility failures in the TLS ecosystem. It reserves a set of TLS protocol values that may be advertised to ensure peers correctly handle unknown values.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="8701"/>
        <seriesInfo name="DOI" value="10.17487/RFC8701"/>
      </reference>
    </references>
    <?line 123?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The author would like to thank David Adrian, Bob Beck, Sophie Schmieg, Martin Thomson, and Bas Westerbaan for discussions and review of this document.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
D9lV+9lkIwAA

-->

</rfc>
