<?xml version='1.0' encoding='utf-8'?>

<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>

<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-netconf-over-tls13-04" number="9918" category="std" consensus="true" submissionType="IETF" updates="7589" obsoletes="" tocInclude="true" sortRefs="true" symRefs="true" version="3" xml:lang="en">

<front>

    <title abbrev="NETCONF over TLS">Updates to Using the NETCONF Protocol over Transport Layer Security (TLS) with Mutual X.509 Authentication</title>
    <seriesInfo name="RFC" value="9918"/>
    <author initials="S." surname="Turner" fullname="Sean Turner">
      <organization>sn3rd</organization>
      <address>
        <email>sean@sn3rd.com</email>
      </address>
    </author>
    <author initials="R." surname="Housley" fullname="Russ Housley">
      <organization abbrev="Vigil Security">Vigil Security, LLC</organization>
      <address>
        <postal>
          <street>516 Dranesville Road</street>
          <city>Herndon</city>
	  <region>VA</region>
          <code>20170</code>
          <country>United States of America</country>
        </postal>
        <email>housley@vigilsec.com</email>
      </address>
    </author>
    <date year="2026" month="January"/>

    <area>OPS</area>
    <workgroup>netconf</workgroup>

    <keyword>NETCONF</keyword>
    <keyword>TLS 1.3</keyword>
    <keyword>TLS 1.2</keyword>
    <keyword>Early Data</keyword>
    <abstract>


<t>RFC 7589 defines how to protect Network Configuration Protocol (NETCONF) messages with TLS 1.2. This
document updates RFC 7589 to update support requirements for TLS 1.2
and add TLS 1.3 support requirements, including restrictions on the
use of TLS 1.3's early data.</t>
    </abstract>

  </front>
  <middle>

    <section anchor="introduction">
      <name>Introduction</name>
      <t><xref target="RFC7589"/> defines how to protect NETCONF messages <xref target="RFC6241"/> with
TLS 1.2 <xref target="RFC5246"/>. This document updates <xref target="RFC7589"/> to update
support requirements for TLS 1.2 <xref target="RFC5246"/> and add TLS 1.3 <xref target="RFC9846"/>
support requirements, including restrictions on the use of TLS 1.3's early data, which is also known as 0-RTT data.
It also updates "netconf&nbhy;tls", the IANA-registered port number entry, to
refer to this document. All other provisions set forth in <xref target="RFC7589"/>
are unchanged, including connection initiation, message framing,
connection closure, certificate validation, server identity, and client
      identity.</t>
<aside>
        <t>NOTE: Implementations that support TLS 1.3 <xref target="RFC9846"/> <bcp14>SHOULD</bcp14> also
  follow Sections <xref target="RFC7589" section="4" sectionFormat="bare"/> and <xref target="RFC7589" section="5" sectionFormat="bare"/> of <xref target="RFC7589"/>.</t>
      </aside>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions</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&nbsp;14 <xref target="RFC2119"/> <xref target="RFC8174"/> 
    when, and only when, they appear in all capitals, as shown here.
        </t>
    </section>
    <section anchor="early-data">
      <name>Early Data</name>
      <t>Early data (aka 0-RTT data) is a mechanism defined in TLS 1.3
<xref target="RFC9846"/> that allows a client to send data ("early data")
as part of the first flight of messages to a server. Note that TLS 1.3 can
be used without early data as per <xref section="F.5" sectionFormat="of" target="RFC9846"/>.
In fact, early data is permitted by TLS 1.3 only when the client and server
share a Pre-Shared Key (PSK), either obtained externally or via a previous
handshake. The client uses the PSK to authenticate the server and to encrypt
the early data.</t>
      <t>As noted in <xref section="2.3" sectionFormat="of" target="RFC9846"/>, the security
properties for early data are weaker than those for subsequent TLS-protected
data. In particular, early data is not forward secret, and there is no
protection against the replay of early data between connections.
<xref section="F.5" sectionFormat="of" target="RFC9846"/> requires applications not
use early data without a profile that defines its use. This document
specifies that NETCONF implementations that support TLS 1.3 or later <bcp14>MUST NOT</bcp14> use early
data.</t>
    </section>
    <section anchor="cipher-suites">
      <name>Cipher Suites</name>
      <t>Implementations <bcp14>MUST</bcp14> support mutually authenticated TLS 1.2 <xref target="RFC5246"/>, and
they are, as specified in <xref target="RFC9325"/>, recommended to support the cipher
suites found in <xref section="4.2" sectionFormat="of" target="RFC9325"/>.</t>
      <t>Implementations <bcp14>MAY</bcp14> implement additional TLS 1.2 cipher suites that provide
mutual authentication <xref target="RFC5246"/> and confidentiality, as required by
NETCONF <xref target="RFC6241"/>.</t>
      <t>Implementations <bcp14>SHOULD</bcp14> support mutually authenticated TLS 1.3 <xref target="RFC9846"/> and,
if implemented, <bcp14>MUST</bcp14> prefer to negotiate TLS 1.3 over earlier versions
of TLS.</t>
      <t>Implementations that support TLS 1.3 <xref target="RFC9846"/> are
<bcp14>REQUIRED</bcp14> to support the mandatory-to-implement cipher suites listed in
<xref section="9.1" sectionFormat="of" target="RFC9846"/>.</t>
      <t>Implementations that support TLS 1.3 <bcp14>MAY</bcp14> implement additional TLS cipher
suites that provide mutual authentication and confidentiality, which are
required for NETCONF <xref target="RFC6241"/>.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>The security considerations of <xref target="RFC6241"/>, <xref target="RFC7589"/>, and <xref target="RFC9325"/>
apply here as well.</t>
      <t>NETCONF implementations <bcp14>SHOULD</bcp14> follow the TLS recommendations given in
<xref target="RFC9325"/>.</t>
      <t>For implementations that support TLS 1.3, the security considerations of
TLS 1.3 <xref target="RFC9846"/> apply.</t>
      <t>As specified in <xref target="RFC7589"/>, NETCONF over TLS requires mutual authentication.</t>
      <t>For implementations that support TLS 1.3 <xref target="RFC9846"/>:</t>

      <t indent="3">TLS 1.3 mutual authentication is used
to ensure that only authorized users and systems are able to view the
NETCONF server's configuration and state or to modify the NETCONF
server's configuration. To this end, neither the client nor the server
should establish a NETCONF over TLS 1.3 connection with an unknown,
unexpected, or incorrectly identified peer; see <xref section="7" sectionFormat="of" target="RFC7589"/>. If
deployments make use of a trusted list of Certification Authority (CA)
certificates <xref target="RFC5280"/>, then the listed CAs should only issue certificates
to parties that are authorized to access the NETCONF servers. Doing otherwise
will allow certificates that were issued for other purposes to be
inappropriately accepted by a NETCONF server.</t>

      <t>The security considerations of <xref target="RFC9525"/> apply to all implementations
when the client checks the identity of the server, as is required in
<xref section="6" sectionFormat="of" target="RFC7589"/>.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>IANA has added a reference to this document in the
"netconf-tls" entry in the "Service Name and Transport Protocol Port
Number Registry". The updated registry entry appears as follows:</t>
<dl spacing="compact" newline="false">
  <dt>Service Name:</dt><dd>netconf-tls</dd>
  <dt>Port Number:</dt><dd>6513</dd>  
  <dt>Transport Protocol:</dt><dd>tcp</dd>
  <dt>Description:</dt><dd>NETCONF over TLS</dd>  
  <dt>Assignee:</dt><dd>IESG &lt;iesg@ietf.org&gt;</dd>
  <dt>Contact:</dt><dd>IETF Chair &lt;chair@ietf.org&gt;</dd>
  <dt>Reference:</dt><dd>RFC 7589, RFC 9918</dd>
</dl>
    </section>
  </middle>
  <back>

    <references anchor="sec-normative-references">
      <name>Normative References</name>
       <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7589.xml"/>
       <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6241.xml"/>
       <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5246.xml"/>
<!-- [I-D.ietf-tls-rfc8446bis] -> [RFC9846]
draft-ietf-tls-rfc8446bis-14
companion doc RFC 9846 in AUTH48
-->
<reference anchor="RFC9846" target="https://www.rfc-editor.org/info/rfc9846">
  <front>
      <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
      <author initials="E." surname="Rescorla" fullname="Eric Rescorla">
         <organization>Independent</organization>
      </author>
    <date month="January" year="2026"/>
  </front>
  <seriesInfo name="RFC" value="9846"/>
  <seriesInfo name="DOI" value="10.17487/RFC9846"/>
</reference>
       <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml"/>
       <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml"/>
       <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9325.xml"/>
       <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5280.xml"/>
       <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9525.xml"/>
    </references>

    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>We would like to thank <contact fullname="Per Andersson"/>, <contact fullname="Jürgen Schönwälder"/>, <contact fullname="Jeff
Hartley"/>, <contact fullname="Rob Wilton"/>, and <contact fullname="Qin Wu"/> for their reviews.</t>
    </section>
  </back>
</rfc>
