<?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.8 (Ruby 3.2.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-davidben-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.20.1 -->
  <front>
    <title>TLS Key Share Prediction</title>
    <seriesInfo name="Internet-Draft" value="draft-davidben-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="March" day="18"/>
    <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://davidben.github.io/tls-key-share-prediction/draft-davidben-tls-key-share-prediction.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-davidben-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/davidben/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 sequence of TLS NamedGroup codepoints in order of decreasing preference. 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 comma-separated list (<xref section="A.1" sectionFormat="of" target="RFC9460"/>) of decimal integers between 0 and 65535 (inclusive) in ASCII. 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.</t>
      </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 114?>

<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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

-->

</rfc>
