<?xml version="1.0" encoding="UTF-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc version 1.6.43 (Ruby 3.1.2) -->


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

]>


<rfc ipr="trust200902" docName="draft-ietf-radext-radiusdtls-bis-00" category="std" consensus="true" submissionType="IETF" obsoletes="6614 7360" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title abbrev="RADIUS over (D)TLS">(Datagram) Transport Layer Security ((D)TLS Encryption for RADIUS</title>

    <author initials="J.-F." surname="Rieckers" fullname="Jan-Frederik Rieckers">
      <organization abbrev="DFN">Deutsches Forschungsnetz | German National Research and Education Network</organization>
      <address>
        <postal>
          <street>Alexanderplatz 1</street>
          <city>Berlin</city>
          <code>10178</code>
          <country>Germany</country>
        </postal>
        <email>rieckers@dfn.de</email>
        <uri>www.dfn.de</uri>
      </address>
    </author>
    <author initials="S." surname="Winter" fullname="Stefan Winter">
      <organization abbrev="RESTENA">Fondation Restena | Restena Foundation</organization>
      <address>
        <postal>
          <street>2, avenue de l'Université</street>
          <city>Esch-sur-Alzette</city>
          <code>4365</code>
          <country>Luxembourg</country>
        </postal>
        <email>stefan.winter@restena.lu</email>
        <uri>www.restena.lu</uri>
      </address>
    </author>

    <date year="2023" month="October" day="15"/>

    <area>Security</area>
    <workgroup>RADIUS EXTensions</workgroup>
    <keyword>RADIUS</keyword> <keyword>TLS</keyword>

    <abstract>


<?line 46?>

<t>This document specifies a transport profile for RADIUS using Transport Layer Security (TLS) over TCP or Datagram Transport Layer Security (DTLS) over UDP as the transport protocol.
This enables encrypting the RADIUS traffic as well as dynamic trust relationships between RADIUS servers.
The specification obsoletes the experimental specifications in RFC 6614 (RADIUS/TLS) and RFC 7360 (RADIUS/DTLS) and combines them in this specification.</t>



    </abstract>

    <note title="About This Document" removeInRFC="true">
      <t>
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ietf-radext-radiusdtls-bis/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        RADIUS EXTensions Working Group mailing list (<eref target="mailto:radext@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/radext/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/radext/"/>.
      </t>
    </note>


  </front>

  <middle>


<?line 52?>

<section anchor="introduction"><name>Introduction</name>

<t>The RADIUS protocol as described in <xref target="RFC2865"/>, <xref target="RFC2866"/>, <xref target="RFC5176"/> and others is a widely deployed authentication, authorization and accounting solution.
However, the deployment experience has shown several shortcomings, as its dependency on the unreliable transport protocol UDP and the lack of confidentiality for large parts of its packet payload.
Additionally the confidentiality and integrity mechanisms rely on the MD5 algorithm, which has been proven to be insecure.
Although RADIUS/(D)TLS does not remove the MD5-based mechanisms, it adds confidentiality and integrity protection through the TLS layer.
For an updated version of RADIUS/(D)TLS without need for MD5 see <xref target="I-D.ietf-radext-radiusv11"/></t>

<section anchor="purpose-of-radiusdtls"><name>Purpose of RADIUS/(D)TLS</name>

<t>The main focus of RADIUS/TLS and RADIUS/DTLS is to provide means to secure communication between RADIUS peers using TLS or DTLS.
The most important use of this specification lies in roaming environments where RADIUS packets need to be transferred through different administrative domains and untrusted, potentially hostile networks.
An example for a worldwide roaming environment that uses RADIUS over TLS to secure communication is eduroam as described in <xref target="RFC7593"/></t>

</section>
<section anchor="changes-from-rfc6614-radiustls-and-rfc7360-radiusdtls"><name>Changes from RFC6614 (RADIUS/TLS) and RFC7360 (RADIUS/DTLS)</name>

<t><list style="symbols">
  <t><xref target="RFC6614"/> referenced <xref target="RFC6613"/> for TCP-related specification, RFC6613 on the other hand had some specification for RADIUS/TLS.
These specifications have been merged into this document.</t>
  <t>RFC6614 marked TLSv1.1 or later as mandatory, this specification requires TLSv1.2 as minimum and recommends usage of TLSv1.3</t>
  <t>RFC6614 allowed usage of TLS compression, this document forbids it.</t>
  <t>RFC6614 only requires support for the trust model "certificates with PKIX". This document changes this. For servers, "certificates with PKIX" and "TLS-PSK" is now mandated and clients must implement one of the two.</t>
  <t>The mandatory-to-implement cipher suites are not referenced directly, this is replaced by a pointer to the TLS BCP.</t>
  <t>The specification regarding steps for certificate verification has been updated</t>
  <t><xref target="RFC6613"/> mandated the use of Status-Server as watchdog algorithm, <xref target="RFC7360"/> only recommended it. This specification mandates the use of Status-Server for both RADIUS/TLS and RADIUS/DTLS.</t>
</list></t>

<t>The rationales behind some of these changes are outlined in <xref target="design_decisions"/>.</t>

</section>
</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?>

<t>Within this document we will use the following terms:</t>

<dl>
  <dt>RADIUS/(D)TLS node:</dt>
  <dd>
    <t>a RADIUS-over-(D)TLS client or server</t>
  </dd>
  <dt>RADIUS/(D)TLS client:</dt>
  <dd>
    <t>a RADIUS-over-(D)TLS instance that initiates a new connection</t>
  </dd>
  <dt>RADIUS/(D)TLS server:</dt>
  <dd>
    <t>a RADIUS-over-(D)TLS instance that listens on a RADIUS-over-(D)TLS port and accepts new connections</t>
  </dd>
  <dt>RADIUS/UDP:</dt>
  <dd>
    <t>a classic RADIUS transport over UDP as defined in <xref target="RFC2865"/></t>
  </dd>
</dl>

<t>Whenever "(D)TLS" or "RADIUS/(D)TLS" is mentioned, the specification applies for both RADIUS/TLS and RADIUS/DTLS.
Where "TLS" or "RADIUS/TLS" is mentioned, the specification only applies to RADIUS/TLS, where "DTLS" or "RADIUS/DTLS" is mentioned it only applies to RADIUS/DTLS.</t>

<t>Server implementations <bcp14>MUST</bcp14> support both RADIUS/TLS and RADIUS/DTLS.
Client implementations <bcp14>SHOULD</bcp14> implement both, but <bcp14>MUST</bcp14> only implement one of RADIUS/TLS or RADIUS/DTLS.</t>

</section>
<section anchor="changes-to-radius"><name>Changes to RADIUS</name>

<t>This section discusses the needed changes to the RADIUS packet format (<xref target="pktformat"/>), port usage and shared secrets (<xref target="portusage"/>).</t>

<section anchor="pktformat"><name>Packet format</name>

<t><cref anchor="src_6613_2_1">Source: RFC6613, Section 2.1 with minimal changes: Removed paragraph about required ability to store shared secrets. Also added last paragraphs from RFC 7360, Section 2.1</cref></t>

<t>The RADIUS packet format is unchanged from <xref target="RFC2865"/>, <xref target="RFC2866"/> and <xref target="RFC5176"/>.
Specifically, all of the following portions of RADIUS <bcp14>MUST</bcp14> be unchanged when using RADIUS/(D)TLS:</t>

<t><list style="symbols">
  <t>Packet format</t>
  <t>Permitted codes</t>
  <t>Request Authenticator calculation</t>
  <t>Response Authenticator calculation</t>
  <t>Minimum packet length</t>
  <t>Maximum packet length</t>
  <t>Attribute format</t>
  <t>Vendor-Specific Attribute (VSA) format</t>
  <t>Permitted data types</t>
  <t>Calculation of dynamic attributes such as CHAP-Challenge, or Message-Authenticator</t>
  <t>Calculation of "encrypted" attributes such as Tunnel-Password.</t>
</list></t>

<t>The use of (D)TLS transport does not change the calculation of security-related fields (such as the Response-Authenticator) in RADIUS <xref target="RFC2865"/> or RADIUS Dynamic Authorization <xref target="RFC5176"/>.
Calculation of attributes such as User-Password <xref target="RFC2865"/> or Message-Authenticator <xref target="RFC3579"/> also does not change.</t>

<t>The changes to RADIUS implementations required to implement this specification are largely limited to the portions that send and receive packets on the network and the establishment of the (D)TLS connection.</t>

<t>The requirement that RADIUS remain largely unchanged ensures the simplest possible implementation and widest interoperability of the specification.</t>

<t>We note that for RADIUS/DTLS the DTLS encapsulation of RADIUS means that RADIUS packets have an additional overhead due to DTLS.
This is discussed further in <xref target="dtls_spec"/></t>

</section>
<section anchor="portusage"><name>Default ports and shared secrets</name>

<t>IANA has reserved ports for RADIUS/TLS and RADIUS/DTLS.
Since authentication of peers, confidentiality, and integrity protection is achieved on the (D)TLS layer, the shared secret for the RADIUS packets is set to a static string, depending on the method.
The calculation of security-related fields such as Response-Authenticator, Message-Authenticator or encrypted attributes <bcp14>MUST</bcp14> be performed using this shared secret.</t>

<texttable>
      <ttcol align='left'>Protocol</ttcol>
      <ttcol align='left'>Port</ttcol>
      <ttcol align='left'>Shared Secret</ttcol>
      <c>RADIUS/TLS</c>
      <c>2083/tcp</c>
      <c>"radsec"</c>
      <c>RADIUS/DTLS</c>
      <c>2083/udp</c>
      <c>"radius/dtls"</c>
</texttable>

<t>The default ports for RADIUS/UDP (1812/udp, 1813/udp) and RADIUS/TCP (1812/tcp, 1813/tcp) <bcp14>SHOULD NOT</bcp14> be used for RADIUS/(D)TLS.</t>

<t>RADIUS/(D)TLS does not use separate ports for authentication, accounting and dynamic authorization changes.
The source port is arbitrary.
<cref anchor="considerations" source="Janfred">TODO: add reference to considerations regarding the multi-purpose use of one port.</cref></t>

<t>RADIUS/TLS servers <bcp14>MUST</bcp14> immediately start the TLS negotiation when a new connection is opened.
They <bcp14>MUST</bcp14> close the connection and discard any data sent if the connecting client does not start a TLS negotiation.</t>

<t>RADIUS/DTLS servers <bcp14>MUST</bcp14> silently discard any packet they receive that is not a new DTLS negotiation or a packet sent over a DTLS session established earlier.</t>

<t>RADIUS/(D)TLS peers <bcp14>MUST NOT</bcp14> use the old RADIUS/UDP or RADIUS/TCP ports for RADIUS/DTLS or RADIUS/TLS.</t>

</section>
<section anchor="detecting-live-servers"><name>Detecting Live Servers</name>

<t><cref anchor="src_6613_2_4">Source: RFC6613, Section 2.4 with minor modifications, Last paragraph: RFC6613 Section 2.6.5.</cref></t>

<t>As RADIUS is a "hop-by-hop" protocol, a RADIUS proxy shields the client from any information about downstream servers.
While the client may be able to deduce the operational state of the local server (i.e., proxy), it cannot make any determination about the operational state of the downstream servers.</t>

<t>Within RADIUS, proxies typically only forward traffic between the NAS and RADIUS servers, and they do not generate their own response.
As a result, when a NAS does not receive a response to a request, this could be the result of packet loss between the NAS and proxy, a problem on the proxy, loss between the RADIUS proxy and server, or a problem with the server.</t>

<t>The absence of a reply can cause a client to deduce (incorrectly) that the proxy is unavailable.
The client could then fail over to another server or conclude that no "live" servers are available (OKAY state in <xref target="RFC3539"/>, Appendix A).
This situation is made even worse when requests are sent through a proxy to multiple destinations.
Failures in one destination may result in service outages for other destinations, if the client erroneously believes that the proxy is unresponsive.</t>

<t>It is <bcp14>REQUIRED</bcp14> that implementations utilize the existence of a TCP/DTLS connection along with the application-layer watchdog defined in <xref section="3.4" sectionFormat="comma" target="RFC3539"/> to determine the liveliness of the server.</t>

<t>RADIUS/(D)TLS clients <bcp14>MUST</bcp14> mark a connection DOWN if one or more of the following conditions are met:
* The administrator has marked the connection administrative DOWN.
* The network stack indicates that the connection is no longer viable.
* The application-layer watchdog algorithm has marked it DOWN.</t>

<t>If a RADIUS/(D)TLS client has multiple connection to a server, it <bcp14>MUST NOT</bcp14> decide to mark the whole server as DOWN until all connections to it have been marked DOWN.</t>

<t>It is <bcp14>REQUIRED</bcp14> that RADIUS/(D)TLS clients implement the Status-Server extension as described in <xref target="RFC5997"/> as the application level watchdog to detect the liveliness of the peer in the absence of responses.
Since RADIUS has a limitation of 256 simultaneous "in flight" packets due to the length of the ID field (<xref target="RFC3539"/>, Section 2.4), it is <bcp14>RECOMMENDED</bcp14> that RADIUS/(D)TLS clients reserve ID zero (0) on each session for Status-Server packets.
This value was picked arbitrary, as there is no reason to choose any other value over another for this use.</t>

<t>For RADIUS/TLS, the peers <bcp14>MAY</bcp14> send TCP keepalives as described in <xref section="3.8.4" sectionFormat="comma" target="RFC9293"/>, for RADIUS/DTLS connections, the peers <bcp14>MAY</bcp14> send periodic keepalives as defined in <xref target="RFC6520"/>, as a way of proactively and rapidly triggering a connection DOWN notification from the network stack.
These liveliness checks are essentially redundant in the presence of an application-layer watchdog, but may provide more rapid notifications of connectivity issues.</t>

</section>
</section>
<section anchor="packet-connection-handling"><name>Packet / Connection Handling</name>

<t>This section defines the behaviour for RADIUS/(D)TLS peers for handling of incoming packets and establishment of a (D)TLS session</t>

<section anchor="dtls-requirements"><name>(D)TLS requirements</name>

<t><cref anchor="src_6614_2_3">Source: Mainly RFC6614, Section 2.3, Items 1 and 2, but without peer authentication models (in next section) or unnecessary text (e.g. MTI cipher suites, we just rely on the TLS cipher suites. Maybe explicitly mention that the MTI ciphers from TLS are also mandatory for this?)</cref></t>

<t>As defined in <xref target="portusage"/>, RAIDUS/(D)TLS clients must establish a (D)TLS session immediately upon connecting to a new server.</t>

<t>RADIUS/(D)TLS has no notion of negotiating (D)TLS in an ongoing communication.
As RADIUS has no provisions for capability signaling, there is also no way for a server to indicate to a client that it should transition to using TLS or DTLS.
Servers and clients need to be preconfigured to use RADIUS/(D)TLS for a given endpoint.
This action has to be taken by the administrators of the two systems.</t>

<t>Implementations <bcp14>MUST</bcp14> follow the recommendations given in <xref target="RFC9325"/>.
Additionally, the following requirements have to be met for the (D)TLS session:</t>

<t><list style="symbols">
  <t>Support for TLS 1.2 <xref target="RFC5248"/> / DTLS 1.2 <xref target="RFC6347"/> is <bcp14>REQUIRED</bcp14>, support for TLS 1.3 <xref target="RFC8446"/> / DTLS 1.3 <xref target="RFC9147"/> or higher is <bcp14>RECOMMENDED</bcp14>.</t>
  <t>Negotiation of a cipher suite providing for confidentiality as well as integrity protection is <bcp14>REQUIRED</bcp14>.</t>
  <t>The peers <bcp14>MUST NOT</bcp14> negotiate compression.</t>
  <t>The session <bcp14>MUST</bcp14> be mutually authenticated (see <xref target="mutual_auth"/>)</t>
</list></t>

</section>
<section anchor="mutual_auth"><name>Mutual authentication</name>

<t><cref anchor="src_6614_2_3_item3">Source: RFC6614, Section 2.3, Item 3 with modifications.</cref></t>

<t>RADIUS/(D)TLS servers <bcp14>MUST</bcp14> authenticate clients.
RADIUS is designed to be used by mutually trusted systems.
Allowing anonymous clients would ensure privacy for RADIUS/(D)TLS traffic, but would negate all other security aspects of the protocol.</t>

<t>RADIUS/(D)TLS allows for the following different modes of mutual authentication.</t>

<section anchor="authentication-using-x509-certificates-with-pkix-trust-model"><name>Authentication using X.509 certificates with PKIX trust model</name>

<t>All RADIUS/(D)TLS server implementations <bcp14>MUST</bcp14> implement this model.
RADIUS/(D)TLS client implementations <bcp14>SHOULD</bcp14> implement this model, but <bcp14>MUST</bcp14> implement either this or TLS-PSK</t>

<t>If implemented it <bcp14>MUST</bcp14> use the following rules:</t>

<t><list style="symbols">
  <t>Implementations <bcp14>MUST</bcp14> allow the configuration of a list of trusted Certificate Authorities for new TLS sessions.</t>
  <t>Certificate validation <bcp14>MUST</bcp14> include the verification rules as per <xref target="RFC5280"/>.</t>
  <t>Implementations <bcp14>SHOULD</bcp14> indicate their trusted Certification authorities (CAs).
See <xref target="RFC5246"/>, Section 7.4.4 and <xref target="RFC6066"/>, Section 6 for TLS 1.2 and <xref target="RFC8446"/>, Section 4.2.4 for TLS 1.3 <cref anchor="dtls-ca-ind" source="Janfred">TODO: CA-Indication for DTLS.</cref></t>
  <t>RADIUS/(D)TLS clients validate the servers identity to match their local configuration:
  <list style="symbols">
      <t>If the expected RADIUS/(D)TLS server was configured as a hostname, the configured name is matched against the presented names from the subjectAltName:DNS extension; if no such exist, against the presented CN component of the certificate subject</t>
      <t>If the expected RADIUS/(D)TLS server was configured as an IP address, the configured IP address is matched against the presented addresses in the subjectAltName:iPAddr extension; if no such exist, against the presented CN component of the certificate subject.</t>
      <t>If the RADIUS/(D)TLS server was not configured but discovered as per <xref target="RFC7585"/>, the client executes the following checks in this order, accepting the certificate on the first match:
      <list style="symbols">
          <t>The realm which was used as input to the discovery is matched against the presented realm names from the subjectAltName:naiRealm extension.</t>
          <t>If the discovery process yielded a hostname, this hostname is matched against the presented names from the subjectAltName:DNS extension; if no such exist, against the presented CN component of the certificate subject.
Implementations <bcp14>MAY</bcp14> require the use of DNSSEC <xref target="RFC4033"/> to ensure the authenticity of the DNS result before relying on this for trust checks.</t>
          <t>If the previous checks fail, the certificate <bcp14>MAY</bcp14> Be accepted without further name checks immediately after the <xref target="RFC5280"/> trust chain checks, if configured by the administrator.</t>
        </list></t>
    </list></t>
  <t>RADIUS/(D)TLS servers validate the certificate of the RADIUS/(D)TLS client against a local database of acceptable clients.
The database may enumerate acceptable clients either by IP address or by a name component in the certificate
  <list style="symbols">
      <t>For clients configured by name, the configured name is matched against the presented names from the subjectAltName:DNS extension; if no such exist, against the presented CN component in the certificate subject.</t>
      <t>For clients configured by their source IP address, the configured IP address is matched against the presented addresses in the subjectAltName:iPAddr extension; if no such exist, against the presented CN component of the certificate subject. <cref anchor="ipaddr-cidr" source="Janfred">TODO: Find out if there are matching rules for subnet configuration.</cref></t>
      <t>It is possible for a RADIUS/(D)TLS server to not require additional name checks for incoming RADIUS/(D)TLS clients, i.e. if the client used dynamic lookup.
In this case, the certificate is accepted immediately after the <xref target="RFC5280"/> trust chain checks.
This <bcp14>MUST NOT</bcp14> be used outside of trusted network environments or without additional certificate attribute checks in place.</t>
    </list></t>
  <t>Implementations <bcp14>MAY</bcp14> allow a configuration of a set of additional properties of the certificate to check for a peer's authorization to communicate (e.g. a set of allowed values in subjectAltName:URI or a set of allowed X.509v3 Certificate Policies).</t>
  <t>When the configured trust base changes (e.g., removal of a CA from the list of trusted CAs; issuance of a new CRL for a given CA), implementations <bcp14>SHOULD</bcp14> renegotiate the TLS session to reassess the connecting peer's continued authorization.<cref anchor="may-should-trustbase" source="Janfred">Open discussion: RFC6614 says "may" here. I think this should be a "should".</cref></t>
</list></t>

</section>
<section anchor="authentication-using-x509-certificate-fingerprints"><name>Authentication using X.509 certificate fingerprints</name>

<t>RADIUS/(D)TLS implementations <bcp14>SHOULD</bcp14> allow the configuration of a list of trusted certificates, identified via fingerprint of the DER encoded certificate bytes.
When implementing this model, support for SHA-1 as hash algorithm for the fingerprint is <bcp14>REQUIRED</bcp14>, and support for the more contemporary hash function SHA-256 is <bcp14>RECOMMENDED</bcp14>.</t>

</section>
<section anchor="authentication-using-raw-public-keys"><name>Authentication using Raw Public Keys</name>

<t>RADIUS/(D)TLS implementations <bcp14>SHOULD</bcp14> support using Raw Public Keys <xref target="RFC7250"/> for mutual authentication.</t>

</section>
<section anchor="authentication-using-tls-psk"><name>Authentication using TLS-PSK</name>

<t>RADIUS/(D)TLS server implementations <bcp14>MUST</bcp14> support the use of TLS-PSK.
RADIUS/(D)TLS client implementations <bcp14>SHOULD</bcp14> support the use of TLS-PSK, but <bcp14>MUST</bcp14> implement either this or the "Authentication using X.509 certificates with PKIX" trust model.</t>

<t>Further guidance on the usage of TLS-PSK in RADIUS/(D)TLS is given in <xref target="I-D.ietf-radext-tls-psk"/>.</t>

</section>
</section>
<section anchor="connecting-client-identity"><name>Connecting Client Identity</name>

<t><cref anchor="src_6614_2_4">Source: RFC6614, Section 2.4 with small modifications</cref></t>

<t>In RADIUS/UDP, clients are uniquely identified by their IP addresses.
Since the shared secret is associated with the origin IP address, if more than one RADIUS client is associated with the same IP address, then those clients also must utilize the same shared secret, a practice that is inherently insecure, as noted in <xref target="RFC5247"/>.</t>

<t>Depending on the operation mode, the RADIUS/(D)TLS client identity can be determined differently.</t>

<t>In TLS-PSK operation, a client is uniquely identified by its TLS-PSK identifier.<cref anchor="pskid" source="Janfred">TODO: What is the correct term here? "PSK Identifier"? Probably not "TLS Identifier" as it was in RFC6614</cref></t>

<t>In Raw-Public-Key operation, a client is uniquely identified by the Raw public key.</t>

<t>In TLS-X.509 mode using fingerprints, a client is uniquely identified by the fingerprint of the presented client certificate.</t>

<t>In TLS-X.509 mode using PKIX trust models, a client is uniquely identified by the tuple of the serial number of the presented client certificate and the issuer.</t>

<t>Note well: having identified a connecting entity does not mean the server necessarily wants to communicate with that client.
For example, if the Issuer is not in a trusted set of Issuers, the server may decline to perform RADIUS transactions with this client.</t>

<t>There are numerous trust models in PKIX environments, and it is beyond the scope of this document to define how a particular deployment determines whether a client is trustworthy.
Implementations that want to support a wide variety of trust models should expose as many details of the presented certificate to the administrator as possible so that the trust model can be implemented by the administrator.
As a suggestion, at least the following parameters of the X.509 client certificate should be exposed:</t>

<t><list style="symbols">
  <t>Originating IP address</t>
  <t>Certificate Fingerprint</t>
  <t>Issuer</t>
  <t>Subject</t>
  <t>all X.509v3 Extended Key Usage</t>
  <t>all X.509v3 Subject Alternative Name</t>
  <t>all X.509v3 Certificate Policy</t>
</list></t>

<t>In TLS-PSK operation at least the following parameters of the TLS connection should be exposed:</t>

<t><list style="symbols">
  <t>Originating IP address</t>
  <t>TLS-PSK Identifier</t>
</list></t>

</section>
<section anchor="radius-datagrams"><name>RADIUS Datagrams</name>

<t><cref anchor="src_6614_2_5">Source: RFC 6614, Section 2.5 with small modifications and without example list</cref></t>

<t>RADIUS/(D)TLS clients transmit the same packet types on the connection they initiated as a RADIUS/UDP client would, RADIUS/(D)TLS servers transmit the same packet types on the connections they have accepted as a RADIUS/UDP server would.</t>

<t>Due to the use of one single port for all packet types, it is required that a RADIUS/(D)TLS server signals which types of packets are supported on a server to a connecting peer.</t>

<t><list style="symbols">
  <t>When an unwanted packet of type 'CoA-Request' or 'Disconnect-Request' is received, a RADIUS/(D)TLS server needs to respond with a 'CoA-NAK' or 'Disconnect-AK', respectively.
The NAK <bcp14>SHOULD</bcp14> contain an attribute Error-Cause with the value 406 ("Unsupported Extension"); see <xref target="RFC5176"/> for details.</t>
  <t>When an unwanted packet of type 'Accounting-Request' is received, the RADIUS/(D)TLS server <bcp14>SHOULD</bcp14> reply with an Accounting-Response containing an Error-Cause attribute with value 406 "Unsupported Extensions" as defined in <xref target="RFC5176"/>.
A RADIUS/(D)TLS accounting client receiving such an Accounting-Response <bcp14>SHOULD</bcp14> log the error and stop sending Accounting-Request packets.</t>
</list></t>

</section>
</section>
<section anchor="radiustls-specific-specifications"><name>RADIUS/TLS specific specifications</name>

<t>This section discusses all specifications that are only relevant for RADIUS/TLS.</t>

<section anchor="duplicates-and-retransmissions"><name>Duplicates and Retransmissions</name>

<t><cref anchor="src_6613_2_6_1">Source: RFC6613, Section 2.6.1, with small modifications</cref></t>

<t>As TCP is a reliable transport, RADIUS/TLS peers <bcp14>MUST NOT</bcp14> retransmit RADIUS packets over a given TCP connection.
Similarly, if there is no response to a RADIUS packet over one RADIUS/TLS connection, implementations <bcp14>MUST NOT</bcp14> retransmit that packet over a different connection to the same destination IP address and port, while the first connection is in the OKAY state (<xref section="A" sectionFormat="comma" target="RFC3539"/>.</t>

<t>However, if the TLS session or TCP connection is closed or broken, retransmissions over new connections are permissible.
RADIUS request packets that have not yet received a response <bcp14>MAY</bcp14> be transmitted by a RADIUS/TLS client over a new connection.
As this procedure involves using a new source port, the ID of the packet <bcp14>MAY</bcp14> change.
If the ID changes, any security attributes such as Message-Authenticator <bcp14>MUST</bcp14> be recalculated.</t>

<t>If a TLS session or the underlying TCP connection is closed or broken, any cached RADIUS response packets (<xref section="2.2.2" sectionFormat="comma" target="RFC5080"/>) associated with that connection <bcp14>MUST</bcp14> be discarded.
A RADIUS server <bcp14>SHOULD</bcp14> stop the processing of any requests associated with that TLS session.
No response to these requests can be sent over the TLS connection, so any further processing is pointless.
This requirement applies not only to RADIUS servers, but also to proxies.
When a client's connection to a proxy is closed, there may be responses from a home server that were supposed to be sent by the proxy back over that connection to the client.
Since the client connection is closed, those responses from the home server to the proxy server <bcp14>SHOULD</bcp14> be silently discarded by the proxy.</t>

<t>Despite the above discussion, RADIUS servers <bcp14>SHOULD</bcp14> still perform duplicate detection on received packets, as described in <xref section="2.2.2" sectionFormat="comma" target="RFC5080"/>.
This detection can prevent duplicate processing of packets from non-conforming clients.</t>

<t>RADIUS packets <bcp14>SHOULD NOT</bcp14> be retransmitted to the same destination IP an numerical port, but over a different transport protocol.
There is no guarantee in RADIUS that the two ports are in any way related.
This requirement does not, however, forbid the practice of putting multiple servers into a failover or load-balancing pool.
In that situation, RADIUS requests <bcp14>MAY</bcp14> be retransmitted to another server that is known to be part of the same pool.</t>

</section>
<section anchor="malformed-packets-and-unknown-clients"><name>Malformed Packets and Unknown clients</name>

<t><cref anchor="src_6613_2_6_4">Source: RFC 6613, Section 2.6.4 with small modifications.</cref></t>

<t>The RADIUS specifications say that an implementation should "silently discard" a packet in a number of circumstances.
This action has no further consequences for UDP based transports, as the "next" packet is completely independent of the previous one.</t>

<t>When TLS is used as transport, decoding the "next" packet on a connection depends on the proper decoding of the previous packet.
As a result the behavior with respect to discarded packets has to change.</t>

<t>Implementations of this specification <bcp14>SHOULD</bcp14> tread the "silently discard" texts in the RADIUS specification referenced above as "silently discard and close the connection".
That is, the implementation <bcp14>SHOULD</bcp14> send a TLS close notification and the underlying TCP connection <bcp14>MUST</bcp14> be closed if any of the following circumstances are seen:</t>

<t><list style="symbols">
  <t>Connection from an unknown client</t>
  <t>Packet where the RADIUS "Length" field is less than the minimum RADIUS packet length</t>
  <t>Packet where the RADIUS "Length" field is more than the maximum RADIUS packet length</t>
  <t>Packet where an Attribute "Length" field has the value of zero or one (0 or 1)</t>
  <t>Packet where the attributes do not exactly fill the packet</t>
  <t>Packet where the Request Authenticator fails validation (where validation is required)</t>
  <t>Packet where the Response Authenticator fails validation (where validation is required)</t>
  <t>Packet where the Message-Authenticator attribute fails validation (when it occurs in a packet)</t>
</list></t>

<t>After applying the above rules, there are still two situations where the previous specifications allow a packet to be "silently discarded" upon receipt:</t>

<t><list style="symbols">
  <t>Packet with an invalid code field</t>
  <t>Response packets that do not match any outstanding request</t>
</list></t>

<t>In these situations, the TCP connections <bcp14>MAY</bcp14> remain open, or they <bcp14>MAY</bcp14> be closed, as an implementation choice. However, the invalid packet <bcp14>MUST</bcp14> be silently discarded.</t>

<t>These requirements reduce the possibility for a misbehaving client or server to wreak havoc on the network.</t>

</section>
<section anchor="tcp-applications-are-not-udp-applications"><name>TCP Applications Are Not UDP Applications</name>

<t><cref anchor="src_6613_2_6_2">Source: RFC6613, Section 2.6.7 (TCP != UDP) and Section 2.6.2 (HoL-Blocking) with small modifications</cref></t>

<t>Implementors should be aware that programming a robust TCP-based application can be very different from programming a robust UDP-based application.</t>

<t>Implementations <bcp14>SHOULD</bcp14> have configurable connection limits, configurable limits on connection lifetime and idle timeouts and a configurable rate limit on new connections.
Allowing an unbounded number or rate of TCP/TLS connections may result in resource exhaustion.</t>

<t>Additionally, differences in the transport like Head of Line (HoL) blocking should be considered.</t>

<t>When using RADIUS/UDP or RADIUS/DTLS, there is no ordering of packets.
If a packet sent by a peer is lost, that loss has no effect on subsequent packets sent by that peer.</t>

<t>Unlike UDP, TCP is subject to issues related to Head of Line blocking.
This occurs when a TCP segment is lost and a subsequent TCP segment arrives out of order.
While the RADIUS peers can process RADIUS packets out of order, the semantics of TCP makes this impossible.
This limitation can lower the maximum packet processing rate of RADIUS/TLS.</t>

</section>
</section>
<section anchor="dtls_spec"><name>RADIUS/DTLS specific specifications</name>

<t>This section discusses all specifications that are only relevant for RADIUS/DTLS.</t>

<section anchor="radius-packet-lengths"><name>RADIUS packet lengths</name>

<t><cref anchor="src_7360_2_1">Source: RFC7360, Section 2.1, last paragraphs</cref></t>

<t>The DTLS encryption adds an additional overhead to each packet sent.
RADIUS/DTLS implementations <bcp14>MUST</bcp14> support sending and receiving RADIUS packets of 4096 bytes in length, with a corresponding increase in the maximum size of the encapsulated DTLS packets.
This larger packet size may cause the packet to be larger than the Path MTU (PMTU), where a RADIUS/UDP packet may be smaller.</t>

<t>The Length checks defined in <xref section="3" sectionFormat="comma" target="RFC2865"/> <bcp14>MUST</bcp14> use the length of the decrypted DTLS data instead of the UDP packet length.
They <bcp14>MUST</bcp14> treat any decrypted DTLS data bytes outside the range of the length field as padding and ignore it on reception.</t>

</section>
<section anchor="server-behavior"><name>Server behavior</name>

<t><cref anchor="src_7360_3_2">Source: RFC7360, Section 3.2 with small modifications</cref></t>

<t>When a RADIUS/DTLS server receives packets on the configured RADIUS/DTLS port, all packets <bcp14>MUST</bcp14> be treated as being DTLS.
RADIUS/UDP packets <bcp14>MUST NOT</bcp14> be accepted on this port.</t>

<t>Some servers maintain a list of allowed clients per destination port.
Others maintain a global list of clients that are permitted to send packets to any port.
Where a client can send packets to multiple ports, the server <bcp14>MUST</bcp14> maintain a "DTLS Required" flag per client.</t>

<t>This flag indicates whether or not the client is required to use DTLS.
When set, the flag indicates that the only traffic accepted from the client is over the RADIUS/DTLS port.
When packets are received fom a client with the "DTLS Required" flag set on non-DTLS ports, the server <bcp14>MUST</bcp14> silently discard these packets, as there is no RADIUS/UDP shared secret available.</t>

<t>This flag will often be set by an administrator.
However, if the server receives DTLS traffic from a client, it <bcp14>SHOULD</bcp14> notify the administrator that DTLS is available for that client.
It <bcp14>MAY</bcp14> mark the client as "DTLS Required".</t>

<t>Allowing RADIUS/UDP and RADIUS/DTLS from the same client exposes the traffic to downbidding attacks and is <bcp14>NOT RECOMMENDED</bcp14>.</t>

</section>
<section anchor="client-behavior"><name>Client behavior</name>

<t><cref anchor="src_7360_4">Source: RFC7360, Section 4</cref></t>

<t>When a RADIUS/DTLS client sends packet to the assigned RADIUS/DTLS port, all packets <bcp14>MUST</bcp14> be DTLS.
RADIUS/UDP packets <bcp14>MUST NOT</bcp14> be sent to this port.</t>

<t>RADIUS/DTLS clients <bcp14>SHOULD NOT</bcp14> probe servers to see if they support DTLS transport.
Instead, clients <bcp14>SHOULD</bcp14> use DTLS as a transport layer only when administratively configured.
If a client is configured to use DTLS and the server appears to be unresponsive, the client <bcp14>MUST NOT</bcp14> fall back to using RADIUS/UDP.
Instead, the client should treat the server as being down.</t>

<t>RADIUS clients often had multiple independent RADIUS implementations and/or processes that originate packets.
This practice was simple to implement, but the result is that each independent subsystem must independently discover network issues or server failures.
It is therefore <bcp14>RECOMMENDED</bcp14> that clients with multiple internal RADIUS sources use a local proxy.</t>

<t>Clients may implement "pools" of servers for fail-over or load-balancing.
These pools <bcp14>SHOULD NOT</bcp14> mix RADIUS/UDP and RADIUS/DTLS servers.<cref anchor="movetogeneral" source="Janfred">This paragraph should probably be moved, as it also applies to RADIUS/TLS. Mixing secure transports with insecure ones is bad practice, regardless of UDP or TCP.</cref></t>

</section>
<section anchor="session-management"><name>Session Management</name>

<t><cref anchor="src_7350_5">Source; RFC7360, Section 5</cref></t>

<t>Where RADIUS/TLS can rely on the TCP state machine to perform session tracking, RADIUS/DTLS cannot.
As a result, implementations of RADIUS/DTLS may need to perform session management of the DTLS session in the application layer.
This subsection describes logically how this tracking is done.
Implementations may choose to use the method described here, or another, equivalent method.</t>

<t>We note that <xref section="2.2.2" sectionFormat="comma" target="RFC5080"/>, already mandates a duplicate detection cache.
The session tracking described below can be seen as an extension of that cache, where entries contain DTLS sessions instead of RADIUS/UDP packets.</t>

<t><xref section="2.2.2" sectionFormat="comma" target="RFC5080"/>, describes how duplicate RADIUS/UDP requests result in the retransmission of a previously cached RADIUS/UDP response.
Due to DTLS sequence window requirements, a server <bcp14>MUST NOT</bcp14> retransmit a previously sent DTLS packet.
Instead, it should cache the RADIUS response packet, and re-process it through DTLS to create a new RADIUS/DTLS packet, every time it is necessary to retransmit a RADIUS response.</t>

<t><cref anchor="movespecfromclsrvhere" source="Janfred">There are some specs (e.g. watchdog, stateless session resumption, closing session if malformed packet or security checks fail) which are valid for both server and client. It might be worth to just move them here instead of having them in both the client and the server spec.</cref></t>

<section anchor="server-session-management"><name>Server Session Management</name>

<t><cref anchor="src_7360_5_1">Source: RFC7360, Section 5.1</cref></t>

<t>A RADIUS/DTLS server <bcp14>MUST</bcp14> track ongoing DTLS sessions for each client, based on the following 4-tuple:</t>

<t><list style="symbols">
  <t>source IP address</t>
  <t>source port</t>
  <t>destination IP address</t>
  <t>destination port</t>
</list></t>

<t>Note that this 4-tuple is independent of IP address version (IPv4 or IPv6).</t>

<t>Each 4-tuple points to a unique session entry, which usually contains the following information:</t>

<dl>
  <dt>DTLS Session:</dt>
  <dd>
    <t>Any information required to maintain and manage the DTLS session.</t>
  </dd>
  <dt>Last Traffic:</dt>
  <dd>
    <t>A variable containing a timestamp that indicates when this session last received valid traffic.
If "Last Traffic" is not used, this variable may not exist.</t>
  </dd>
  <dt>DTLS Data:</dt>
  <dd>
    <t>An implementation-specific variable that may contain information about the active DTLS session.
This variable may be empty or nonexistent.</t>
  </dd>
  <dt/>
  <dd>
    <t>This data will typically contain information such as idle timeouts, session lifetimes, and other implementation-specific data.</t>
  </dd>
</dl>

<section anchor="session-opening-and-closing"><name>Session Opening and Closing</name>

<t><cref anchor="src_7360_5_1_1">Source: RFC7360, Section 5.1.1 with small modifications</cref></t>

<t>Session tracking is subject to Denial-of-Service (DoS) attacks due to the ability of an attacker to forge UDP traffic.
RADIUS/DTLS servers <bcp14>SHOULD</bcp14> use the stateless cookie tracking technique described in <xref section="4.2.1" sectionFormat="comma" target="RFC6347"/>.
DTLS sessions <bcp14>SHOULD NOT</bcp14> be tracked until a ClientHello packet has been received with an appropriate Cookie value.
Server implementation <bcp14>SHOULD</bcp14> have a way of tracking DTLS sessions that are partially set up.
Servers <bcp14>MUST</bcp14> limit both the number and impact on resources of partial sessions.</t>

<t>Sessions (both 4-tuple and entry) <bcp14>MUST</bcp14> be deleted when a TLS Closure Alert (<xref section="7.2.1" sectionFormat="comma" target="RFC5246"/>) or a fatal TLS Error Alert (<xref section="7.2.2" sectionFormat="comma" target="RFC5246"/>) is received.
When a session is deleted due to it failing security requirements, the DTLS session <bcp14>MUST</bcp14> be closed, any TLS session resumption parameters for that session <bcp14>MUST</bcp14> be discarded, and all tracking information <bcp14>MUST</bcp14> be deleted.</t>

<t>Sessions <bcp14>MUST</bcp14> also be deleted when a non-RADIUS packet is received, a RADIUS packet fails validation due to a packet being malformed, or when it has an invalid Message-Authenticator or invalid Request Authenticator.
There are other cases when the specifications require that a packet received via a DTLS session be "silently discarded".
In those cases, implementations <bcp14>MAY</bcp14> delete the underlying session as described above.
A session <bcp14>SHOULD NOT</bcp14> be deleted when a well-formed, but "unexpected", RADIUS packet is received over it.</t>

<t>These requirements ensure the security while maintaining flexibility.
Any security-related issue causes the connection to be closed.
After security restrictions have been applied, any unexpected traffic may be safely ignored, as it cannot cause a security issue.
This allows for future extensions to the RADIUS/DTLS specifications.</t>

<t>As UDP does not guarantee delivery of messages, RADIUS/DTLS servers <bcp14>MUST</bcp14> maintain a "Last Traffic" timestamp per DTLS session.
The granularity of this timestamp is not critical and could be limited to one-second intervals.
The timestamp <bcp14>SHOULD</bcp14> be updated on reception of a valid RADIUS/DTLS packet, or a DTLS Heartbeat, but no more than once per interval.
The timestamp <bcp14>MUST NOT</bcp14> be updated in other situations.</t>

<t>When a session has not received a packet for a period of time, it is labeled "idle".
The server <bcp14>SHOULD</bcp14> delete idle DTLS sessions after an "idle timeout".
The server <bcp14>MAY</bcp14> cache the TLS session parameters, in order to provide for fast session resumption.<cref anchor="idle-timeout-conf" source="Janfred">RFC 7360 adds a paragraph about that the idle timeout should not be exposed to the admin as configurable parameter and references a mechanism to determine this value from the application-layer watchdog, but I didn't find the specification anywhere.</cref></t>

<t>RADIUS/DTLS servers <bcp14>SHOULD</bcp14> also monitor the total number of open sessions.
They <bcp14>SHOULD</bcp14> have a "maximum sessions" setting exposed to administrators as a configurable parameter.
When this maximum is reached and a new session is started, the server <bcp14>MUST</bcp14> either drop an old session in order to open the new one or not create a new session.</t>

<t>RADIUS/DTLS servers <bcp14>SHOULD</bcp14> implement session resumption, preferably stateless session resumption as given in <xref target="RFC5077"/>.
This practice lowers the time and effort required to start a DTLS session with a client and increases network responsiveness.</t>

<t>Since UDP is stateless, the potential exists for the client to initiate a new DTLS session using a particular 4-tuple, before the server has closed the old session.
For security reasons, the server <bcp14>MUST</bcp14> keep the old session active until either it has received secure notification from the client that the session is closed or the server decides to close the session based on idle timeouts.
Taking any other action would permit unauthenticated clients to perform a DoS attack, by reusing a 4-tuple and thus causing the server to close an active (and authenticated) DTLS session.</t>

<t>As a result, servers <bcp14>MUST</bcp14> ignore any attempts to reuse an existing 4-tuple from an active session.
This requirement can likely be reached by simply processing the packet through the existing session, as with any other packet received via that 4-tuple.
Non-compliant, or unexpected packets will be ignored by the DTLS layer.<cref anchor="proxymitigation" source="Janfred">In RFC7360 there is a final paragraph about mitigation of the 4-tuple problem by using a local proxy. I'm not sure if this is the right place here, i'd rather move that to a general "Implementation Guidelines" paragraph.</cref></t>

</section>
</section>
<section anchor="client-session-management"><name>Client Session Management</name>

<t><cref anchor="src_7360_5_2">Source: RFC7360, Section 5.2 with modifications</cref></t>

<t>RADIUS/DTLS clients <bcp14>SHOULD</bcp14> use PMTU discovery <xref target="RFC6520"/> to determine the PMTU between the client and server, prior to sending any RADIUS traffic.</t>

<t>RADIUS/DTLS clients <bcp14>SHOULD</bcp14> proactively close sessions when they have been idle for a period of time.
Clients <bcp14>SHOULD</bcp14> close a session when no traffic other than watchdog packet and (possibly) watchdog responses have been sent for three watchdog timeouts.
This behavior ensures that clients do not waste resources on the server by causing it to track idle sessions.</t>

<t>DTLS sessions <bcp14>MUST</bcp14> also be deleted when a RADIUS packet fails validation due to a packet being malformed, or when it has an invalid Message-Authenticator or invalid Response Authenticator.<cref anchor="normalizespec" source="Janfred">Maybe modify this text to be more similar to the TLS specific text here.</cref></t>

<t>There are other cases, when the specifications require that a packet received via a DTLS session be "silently discarded".
In those cases, implementations <bcp14>MAY</bcp14> delete the underlying DTLS session.</t>

<t>RADIUS/DTLS clients <bcp14>SHOULD NOT</bcp14> send both RADIUS/UDP and RADIUS/DTLS packets to different servers from the same source socket.
This practice causes increased complexity in the client application and increases the potential for security breaches due to implementation issues.</t>

<t>RADIUS/DTLS clients <bcp14>SHOULD</bcp14> implement session resumption, preferably stateless session resumption as given in <xref target="RFC5077"/>.
This practice lowers the time and effort required to start a DTLS session with a server and increases network responsiveness.</t>

</section>
</section>
</section>
<section anchor="security-considerations"><name>Security Considerations</name>

<t>As this specification relies on the existing TLS and DTLS specifications, all security considerations for these protocols also apply to the (D)TLS portions of RADIUS/(D)TLS.</t>

<t>For RADIUS however, many security considerations raised in the RADIUS documents are related to RADIUS encryption and authorization.
Those issues are largely mitigated when (D)TLS is used as a transport method, since encryption and authorization is achieved on the (D)TLS layer.
The issues that are not mitigated by this specification are related to the RADIUS packet format and handling, which is unchanged in this specification.</t>

<t>A few remaining security considerations and notes to administrators deploying RADIUS/(D)TLS are listed below.</t>

<section anchor="radius-proxies"><name>RADIUS Proxies</name>

<t>RADIUS/(D)TLS provides authentication, integrity and confidentiality protection for RADIUS traffic between two RADIUS peers.
In the presence of proxies, these intermediate proxies can still inspect the individual RADIUS packets, i.e., "end-to-end" encryption on the RADIUS layer is not provided.
Where intermediate proxies are untrusted, it is desirable to use other RADIUS mechanisms to prevent RADIUS packet payload from inspection by such proxies.
One common method to protect passwords is the use of the Extensible Authentication Protocol (EAP) and EAP methods that utilize TLS.</t>

<t>Additionally, when RADIUS proxies are used, the RADIUS client has no way of ensuring that the complete path of the RADIUS packet is protected, since RADIUS routing is done hop-by-hop and any intermediate proxy may be configured, after receiving a RADIUS packet via RADIUS/(D)TLS from one peer, to forward this packet to a different peer using the RADIUS/UDP transport profile.
There is no technical solution to this problem with the current specification.
Where the confidentiality of the contents of the RADIUS packet across the whole path is required, organizational solutions need to be in place, that ensure that every intermediate RADIUS proxy is configured to forward the RADIUS packets using RADIUS/(D)TLS as transport.</t>

</section>
<section anchor="usage-of-null-encryption-cipher-suites-for-debugging"><name>Usage of null encryption cipher suites for debugging</name>

<t>For debugging purposes, some TLS implementation offer cipher suites with NULL encryption, to allow inspection of the plaintext with packet sniffing tools.
Since with RADIUS/(D)TLS the RADIUS shared secret is set to a static string ("radsec" for RADIUS/TLS, "radius/dtls" for RADIUS/DTLS), using a NULL encryption cipher suite will also result in complete disclosure of the whole RADIUS packet, including the encrypted RADIUS attributes, to any intermediate IP node eavesdropping on the conversation.
To prevent this, while keeping a NULL encryption cipher suite active, the only option is to set a different shared secret for RADIUS.
In this case, the security considerations for confidentiality of RADIUS/UDP packets apply.
Following the recommendations in <xref section="4.1" sectionFormat="comma" target="RFC9325"/>, this specification forbids the usage of NULL encryption cipher suites for RADIUS/(D)TLS.</t>

</section>
<section anchor="possibility-of-denial-of-service-attacks"><name>Possibility of Denial-of-Service attacks</name>

<t>Both RADIUS/TLS and RADIUS/DTLS have a considerable higher amount of data that the server needs to store in comparison to RADIUS/UDP.
Therefore, an attacker could try to exhaust server resources.</t>

<t>With RADIUS/UDP, any bogous RADIUS packet would fail the cryptographic checks and the server would silently discard the bogous packet.
For RADIUS/(D)TLS, the server needs to perform at least a partial TLS handshake to determine whether or not the client is authorized.
Performing a (D)TLS handshake is more complex than the cryptographic check of a RADIUS packet.
An attacker could try to trigger a high number of (D)TLS handshakes at the same time, resulting in a high server load and potentially a Denial-of-Service.
To prevent this attack, a RADIUS/(D)TLS server <bcp14>SHOULD</bcp14> have configurable limits on new connection attempts.</t>

<t>Both TLS and DTLS need to store session information for each open (D)TLS session.
Especially with DTLS, a bogous or misbehaving client could open an excessive number of DTLS sessions.
This session tracking could lead to a resource exhaustion on the server side, triggering a Denial-of-Service.
Therefore, RADIUS/(D)TLS servers <bcp14>MUST</bcp14> limit the absolute number of sessions they can track and <bcp14>SHOULD</bcp14> expose this limit as configurable option to the administrator.
When the total number of sessions tracked is going to exceed the configured limit, servers <bcp14>MAY</bcp14> free up resources by closing the session that has been idle for the longest time.
Doing so may free up idle resources that then allow the server to accept a new session.</t>

<t>RADIUS/DTLS servers <bcp14>MUST</bcp14> limit the number of partially open DTLS sessions and <bcp14>SHOULD</bcp14> expose this limit as configurable option to the administrator.</t>

</section>
<section anchor="session-closing"><name>Session Closing</name>

<t>If malformed RADIUS packets are received or the packets fail the authenticator checks, this specification requires that the (D)TLS session be closed.
The reason is that the session is expected to be used for transport of RADIUS packets only.</t>

<t>Any non-RADIUS traffic on that session means the other party is misbehaving and is a potentially security risk.
Similarly, any RADIUS traffic failing authentication vector or Message-Authenticator validation means that two parties do not have a common shared secret.
Since the shared secret is static, this again means the other party is misbehaving.</t>

<t>We wish to avoid the situation where a third party can send well-formed RADIUS packets to a RADIUS proxy that cause a (D)TLS session to close.
Therefore, in other situations, the session SOULD remain open in the face of non-conforming packets.
Any malformed RADIUS packets sent by a third party will go through the security checks of the RADIUS proxy upon reception and will not be forwarded.
Well-formed RADIUS packets with portions that the proxy does not understand do not pose a security risk to the security properties of the RADIUS/(D)TLS session and can be forwarded.
This ensures forward compatibility with future RADIUS extensions.</t>

</section>
<section anchor="migrating-from-radiusudp-to-radiusdtls"><name>Migrating from RADIUS/UDP to RADIUS/(D)TLS</name>

<t>Since RADIUS/UDP security relies on the MD5 algorithm, which is considered insecure, using RADIUS/UDP over insecure networks is risky.
We therefore recommend to migrate from RADIUS/UDP to RADIUS/(D)TLS.
Within this migration process, however, there are a few items that need to be considered by administrators.</t>

<t>Firstly, administrators may be tempted to simply migrate from RADIUS/UDP to RADIUS/(D)TLS with (D)TLS-PSK and reuse the RADIUS shared secret as (D)TLS-PSK.
While this may seem like an easy way to upgrade RADIUS/UDP to RADIUS/(D)TLS, the cryptographic problems with the RADIUS/UDP shared secret render the shared secret potentially compromised.
Using a potentially compromised shared secret as TLS-PSK compromises the whole TLS connection.
Therefore, any shared secret used with RADIUS/UDP before <bcp14>MUST NOT</bcp14> be used with RADIUS/(D)TLS and (D)TLS-PSK.
Implementers <bcp14>MUST NOT</bcp14> reuse the configuration option for the RADIUS/UDP shared secret for the (D)TLS-PSK to prevent accidental reuse.</t>

<t>When upgrading from RADIUS/UDP to RADIUS/(D)TLS, there may be a period of time, where the connection between client and server is configured for both transport profiles.
If the old RADIUS/UDP configuration is left configured, but not used in normal operation, e.g. due to a fail-over configuration that prefers RADIUS/(D)TLS, an attacker could disrupt the RADIUS/(D)TLS communication and force a downgrade to RADIUS/UDP.
To prevent this it is <bcp14>RECOMMENDED</bcp14> that, when the migration to RADIUS/(D)TLS is completed, the RADIUS/UDP configuration is removed.
RADIUS/(D)TLS clients <bcp14>MUST NOT</bcp14> fall back to RADIUS/UDP if the RADIUS/(D)TLS communication fails, unless explicitly configured this way.</t>

</section>
<section anchor="client-subsystems"><name>Client Subsystems</name>

<t>Many traditional clients treat RADIUS as subsystem-specific.
That is, each subsystem on the client has its own RADIUS implementation and configuration.
These independent implementations work for simple systems, but break down for RADIUS when multiple servers, fail-over and load-balancing are required.
With (D)TLS enabled, these problems are expected to get worse.</t>

<t>We therefore recommend in these situations to use a local proxy that arbitrates all RADIUS traffic between the client and all servers.
This proxy will encapsulate all knowledge about servers, including security policies, fail-over and load-balancing.
All client subsystems should communicate with this local proxy, ideally over a loopback address.</t>

<t>The benefit of this configuration is that there is one place in the client that arbitrates all RADIUS traffic.
Subsystems that do not implement RADIUS/(D)TLS can remain unaware of (D)TLS.
(D)TLS sessions opened by the proxy can remain open for a long period of time, even when client subsystems are restarted.
The proxy can do RADIUS/UDP to some servers and RADIUS/(D)TLS to others.</t>

<t>Delegation of responsibilities and separation of tasks are important security principles.
By moving all RADIUS/(D)TLS knowledge to a (D)TLS-aware proxy, security analysis becomes simpler, and enforcement of correct security becomes easier.</t>

</section>
</section>
<section anchor="design_decisions"><name>Design Decisions</name>

<t>Many of the design decisions of RADIUS/TLS and RADIUS/DTLS can be found in <xref target="RFC6614"/> and <xref target="RFC7360"/>.
This section will discuss the rationale behind significant changes from the experimental specification.</t>

<section anchor="design_supported_transports"><name>Mandatory-to-implement transports</name>

<t>With the merging of RADIUS/TLS and RADIUS/DTLS the question of mandatory-to-implement transports arose.
In order to avoid incompatibilities, there were two possibilities: Either mandate one of the transports for all implementations or mandate the implementation of both transports for either the server or the client.
As of the time writing, RADIUS/TLS is widely adapted for some use cases (see <xref target="lessons_learned"/>).
However, TLS has some serious drawbacks when used for RADIUS transport.
Especially the sequential nature of the connection and the connected issues like Head-of-Line blocking could create problems.</t>

<t>Therefore, the decision was made that RADIUS servers must implement both transports.
For RADIUS clients, that may run on more constrained nodes, the implementations can choose to implement only the transport, that is better suited for their needs.</t>

</section>
<section anchor="design_trust_profiles"><name>Mandatory-to-implement trust profiles</name>

<t><xref target="RFC6614"/> mandates the implementation of the trust profile "certificate with PKIX trust model" for both clients and servers.
The experience of the deployment of RADIUS/TLS as specified in <xref target="RFC6614"/> has shown that most actors still rely on RADIUS/UDP.
Since dealing with certificates can create a lot of issues, both for implementers and administrators, for the re-specification we wanted to create an alternative to insecure RADIUS transports like RADIUS/UDP that can be deployed easily without much additional administrative overhead.</t>

<t>As with the supported transports, the assumption is that RADIUS servers are generally believed to be less constrained that RADIUS clients.
Since some client implementations already support using certificates for mutual authentication and there are several use cases, where Pre-shared keys are not usable (e.g. a dynamic federation with changing members), the decision was made that, analog to the supported transports, RADIUS servers must implement both certificates with PKIX trust model and TLS-PSK as means of mutual authentication.
RADIUS clients again can choose which method is better suited for them, but must, for compatibility reasons, implement at least one of the two.</t>

</section>
</section>
<section anchor="iana-considerations"><name>IANA Considerations</name>

<t>Upon approval, IANA should update the Reference to radsec in the Service Name and Transport Protocol Port Number Registry:</t>

<t><list style="symbols">
  <t>Service Name: radsec</t>
  <t>Port Number: 2083</t>
  <t>Transport Protocol: tcp/udp</t>
  <t>Description: Secure RADIUS Service</t>
  <t>Assignment notes: The TCP port 2083 was already previously assigned by IANA for "RadSec", an early implementation of RADIUS/TLS, prior to issuance of the experimental RFC 6614.
[This document] updates RFC 6614 (RADIUS/TLS) and RFC 7360 (RADIUS/DTLS), while maintaining backward compatibility, if configured. For further details see RFC 6614, Appendix A or [This document] <xref target="backwardcomp"/>.</t>
</list></t>

</section>


  </middle>

  <back>


    <references title='Normative References' anchor="sec-normative-references">



<reference anchor="RFC2865">
  <front>
    <title>Remote Authentication Dial In User Service (RADIUS)</title>
    <author fullname="C. Rigney" initials="C." surname="Rigney"/>
    <author fullname="S. Willens" initials="S." surname="Willens"/>
    <author fullname="A. Rubens" initials="A." surname="Rubens"/>
    <author fullname="W. Simpson" initials="W." surname="Simpson"/>
    <date month="June" year="2000"/>
    <abstract>
      <t>This document describes a protocol for carrying authentication, authorization, and configuration information between a Network Access Server which desires to authenticate its links and a shared Authentication Server. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="2865"/>
  <seriesInfo name="DOI" value="10.17487/RFC2865"/>
</reference>

<reference anchor="RFC2866">
  <front>
    <title>RADIUS Accounting</title>
    <author fullname="C. Rigney" initials="C." surname="Rigney"/>
    <date month="June" year="2000"/>
    <abstract>
      <t>This document describes a protocol for carrying accounting information between a Network Access Server and a shared Accounting Server. This memo provides information for the Internet community.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="2866"/>
  <seriesInfo name="DOI" value="10.17487/RFC2866"/>
</reference>

<reference anchor="RFC5176">
  <front>
    <title>Dynamic Authorization Extensions to Remote Authentication Dial In User Service (RADIUS)</title>
    <author fullname="M. Chiba" initials="M." surname="Chiba"/>
    <author fullname="G. Dommety" initials="G." surname="Dommety"/>
    <author fullname="M. Eklund" initials="M." surname="Eklund"/>
    <author fullname="D. Mitton" initials="D." surname="Mitton"/>
    <author fullname="B. Aboba" initials="B." surname="Aboba"/>
    <date month="January" year="2008"/>
    <abstract>
      <t>This document describes a currently deployed extension to the Remote Authentication Dial In User Service (RADIUS) protocol, allowing dynamic changes to a user session, as implemented by network access server products. This includes support for disconnecting users and changing authorizations applicable to a user session. This memo provides information for the Internet community.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="5176"/>
  <seriesInfo name="DOI" value="10.17487/RFC5176"/>
</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="RFC3579">
  <front>
    <title>RADIUS (Remote Authentication Dial In User Service) Support For Extensible Authentication Protocol (EAP)</title>
    <author fullname="B. Aboba" initials="B." surname="Aboba"/>
    <author fullname="P. Calhoun" initials="P." surname="Calhoun"/>
    <date month="September" year="2003"/>
    <abstract>
      <t>This document defines Remote Authentication Dial In User Service (RADIUS) support for the Extensible Authentication Protocol (EAP), an authentication framework which supports multiple authentication mechanisms. In the proposed scheme, the Network Access Server (NAS) forwards EAP packets to and from the RADIUS server, encapsulated within EAP-Message attributes. This has the advantage of allowing the NAS to support any EAP authentication method, without the need for method- specific code, which resides on the RADIUS server. While EAP was originally developed for use with PPP, it is now also in use with IEEE 802. This memo provides information for the Internet community.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="3579"/>
  <seriesInfo name="DOI" value="10.17487/RFC3579"/>
</reference>

<reference anchor="RFC3539">
  <front>
    <title>Authentication, Authorization and Accounting (AAA) Transport Profile</title>
    <author fullname="B. Aboba" initials="B." surname="Aboba"/>
    <author fullname="J. Wood" initials="J." surname="Wood"/>
    <date month="June" year="2003"/>
    <abstract>
      <t>This document discusses transport issues that arise within protocols for Authentication, Authorization and Accounting (AAA). It also provides recommendations on the use of transport by AAA protocols. This includes usage of standards-track RFCs as well as experimental proposals. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="3539"/>
  <seriesInfo name="DOI" value="10.17487/RFC3539"/>
</reference>

<reference anchor="RFC5997">
  <front>
    <title>Use of Status-Server Packets in the Remote Authentication Dial In User Service (RADIUS) Protocol</title>
    <author fullname="A. DeKok" initials="A." surname="DeKok"/>
    <date month="August" year="2010"/>
    <abstract>
      <t>This document describes a deployed extension to the Remote Authentication Dial In User Service (RADIUS) protocol, enabling clients to query the status of a RADIUS server. This extension utilizes the Status-Server (12) Code, which was reserved for experimental use in RFC 2865. This document is not an Internet Standards Track specification; it is published for informational purposes.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="5997"/>
  <seriesInfo name="DOI" value="10.17487/RFC5997"/>
</reference>

<reference anchor="RFC9293">
  <front>
    <title>Transmission Control Protocol (TCP)</title>
    <author fullname="W. Eddy" initials="W." role="editor" surname="Eddy"/>
    <date month="August" year="2022"/>
    <abstract>
      <t>This document specifies the Transmission Control Protocol (TCP). TCP is an important transport-layer protocol in the Internet protocol stack, and it has continuously evolved over decades of use and growth of the Internet. Over this time, a number of changes have been made to TCP as it was specified in RFC 793, though these have only been documented in a piecemeal fashion. This document collects and brings those changes together with the protocol specification from RFC 793. This document obsoletes RFC 793, as well as RFCs 879, 2873, 6093, 6429, 6528, and 6691 that updated parts of RFC 793. It updates RFCs 1011 and 1122, and it should be considered as a replacement for the portions of those documents dealing with TCP requirements. It also updates RFC 5961 by adding a small clarification in reset handling while in the SYN-RECEIVED state. The TCP header control bits from RFC 793 have also been updated based on RFC 3168.</t>
    </abstract>
  </front>
  <seriesInfo name="STD" value="7"/>
  <seriesInfo name="RFC" value="9293"/>
  <seriesInfo name="DOI" value="10.17487/RFC9293"/>
</reference>

<reference anchor="RFC9325">
  <front>
    <title>Recommendations for Secure Use of Transport Layer Security (TLS) and Datagram Transport Layer Security (DTLS)</title>
    <author fullname="Y. Sheffer" initials="Y." surname="Sheffer"/>
    <author fullname="P. Saint-Andre" initials="P." surname="Saint-Andre"/>
    <author fullname="T. Fossati" initials="T." surname="Fossati"/>
    <date month="November" year="2022"/>
    <abstract>
      <t>Transport Layer Security (TLS) and Datagram Transport Layer Security (DTLS) are used to protect data exchanged over a wide range of application protocols and can also form the basis for secure transport protocols. Over the years, the industry has witnessed several serious attacks on TLS and DTLS, including attacks on the most commonly used cipher suites and their modes of operation. This document provides the latest recommendations for ensuring the security of deployed services that use TLS and DTLS. These recommendations are applicable to the majority of use cases.</t>
      <t>RFC 7525, an earlier version of the TLS recommendations, was published when the industry was transitioning to TLS 1.2. Years later, this transition is largely complete, and TLS 1.3 is widely available. This document updates the guidance given the new environment and obsoletes RFC 7525. In addition, this document updates RFCs 5288 and 6066 in view of recent attacks.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="195"/>
  <seriesInfo name="RFC" value="9325"/>
  <seriesInfo name="DOI" value="10.17487/RFC9325"/>
</reference>

<reference anchor="RFC5248">
  <front>
    <title>A Registry for SMTP Enhanced Mail System Status Codes</title>
    <author fullname="T. Hansen" initials="T." surname="Hansen"/>
    <author fullname="J. Klensin" initials="J." surname="Klensin"/>
    <date month="June" year="2008"/>
    <abstract>
      <t>The specification for enhanced mail system status codes, RFC 3463, establishes a new code model and lists a collection of status codes. While it anticipated that more codes would be added over time, it did not provide an explicit mechanism for registering and tracking those codes. This document specifies an IANA registry for mail system enhanced status codes, and initializes that registry with the codes so far established in published standards-track documents, as well as other codes that have become established in the industry. 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="138"/>
  <seriesInfo name="RFC" value="5248"/>
  <seriesInfo name="DOI" value="10.17487/RFC5248"/>
</reference>

<reference anchor="RFC6347">
  <front>
    <title>Datagram Transport Layer Security Version 1.2</title>
    <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
    <author fullname="N. Modadugu" initials="N." surname="Modadugu"/>
    <date month="January" year="2012"/>
    <abstract>
      <t>This document specifies version 1.2 of the Datagram Transport Layer Security (DTLS) protocol. The DTLS protocol provides communications privacy for datagram protocols. The protocol allows client/server applications to communicate in a way that is designed to prevent eavesdropping, tampering, or message forgery. The DTLS protocol is based on the Transport Layer Security (TLS) protocol and provides equivalent security guarantees. Datagram semantics of the underlying transport are preserved by the DTLS protocol. This document updates DTLS 1.0 to work with TLS version 1.2. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="6347"/>
  <seriesInfo name="DOI" value="10.17487/RFC6347"/>
</reference>

<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="RFC9147">
  <front>
    <title>The Datagram Transport Layer Security (DTLS) Protocol Version 1.3</title>
    <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
    <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
    <author fullname="N. Modadugu" initials="N." surname="Modadugu"/>
    <date month="April" year="2022"/>
    <abstract>
      <t>This document specifies version 1.3 of the Datagram Transport Layer Security (DTLS) protocol. DTLS 1.3 allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t>
      <t>The DTLS 1.3 protocol is based on the Transport Layer Security (TLS) 1.3 protocol and provides equivalent security guarantees with the exception of order protection / non-replayability. Datagram semantics of the underlying transport are preserved by the DTLS protocol.</t>
      <t>This document obsoletes RFC 6347.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9147"/>
  <seriesInfo name="DOI" value="10.17487/RFC9147"/>
</reference>

<reference anchor="RFC5280">
  <front>
    <title>Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile</title>
    <author fullname="D. Cooper" initials="D." surname="Cooper"/>
    <author fullname="S. Santesson" initials="S." surname="Santesson"/>
    <author fullname="S. Farrell" initials="S." surname="Farrell"/>
    <author fullname="S. Boeyen" initials="S." surname="Boeyen"/>
    <author fullname="R. Housley" initials="R." surname="Housley"/>
    <author fullname="W. Polk" initials="W." surname="Polk"/>
    <date month="May" year="2008"/>
    <abstract>
      <t>This memo profiles the X.509 v3 certificate and X.509 v2 certificate revocation list (CRL) for use in the Internet. An overview of this approach and model is provided as an introduction. The X.509 v3 certificate format is described in detail, with additional information regarding the format and semantics of Internet name forms. Standard certificate extensions are described and two Internet-specific extensions are defined. A set of required certificate extensions is specified. The X.509 v2 CRL format is described in detail along with standard and Internet-specific extensions. An algorithm for X.509 certification path validation is described. An ASN.1 module and examples are provided in the appendices. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="5280"/>
  <seriesInfo name="DOI" value="10.17487/RFC5280"/>
</reference>

<reference anchor="RFC5246">
  <front>
    <title>The Transport Layer Security (TLS) Protocol Version 1.2</title>
    <author fullname="T. Dierks" initials="T." surname="Dierks"/>
    <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
    <date month="August" year="2008"/>
    <abstract>
      <t>This document specifies Version 1.2 of the Transport Layer Security (TLS) protocol. The TLS protocol provides communications security over the Internet. The protocol allows client/server applications to communicate in a way that is designed to prevent eavesdropping, tampering, or message forgery. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="5246"/>
  <seriesInfo name="DOI" value="10.17487/RFC5246"/>
</reference>

<reference anchor="RFC6066">
  <front>
    <title>Transport Layer Security (TLS) Extensions: Extension Definitions</title>
    <author fullname="D. Eastlake 3rd" initials="D." surname="Eastlake 3rd"/>
    <date month="January" year="2011"/>
    <abstract>
      <t>This document provides specifications for existing TLS extensions. It is a companion document for RFC 5246, "The Transport Layer Security (TLS) Protocol Version 1.2". The extensions specified are server_name, max_fragment_length, client_certificate_url, trusted_ca_keys, truncated_hmac, and status_request. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="6066"/>
  <seriesInfo name="DOI" value="10.17487/RFC6066"/>
</reference>

<reference anchor="RFC7585">
  <front>
    <title>Dynamic Peer Discovery for RADIUS/TLS and RADIUS/DTLS Based on the Network Access Identifier (NAI)</title>
    <author fullname="S. Winter" initials="S." surname="Winter"/>
    <author fullname="M. McCauley" initials="M." surname="McCauley"/>
    <date month="October" year="2015"/>
    <abstract>
      <t>This document specifies a means to find authoritative RADIUS servers for a given realm. It is used in conjunction with either RADIUS over Transport Layer Security (RADIUS/TLS) or RADIUS over Datagram Transport Layer Security (RADIUS/DTLS).</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="7585"/>
  <seriesInfo name="DOI" value="10.17487/RFC7585"/>
</reference>

<reference anchor="RFC4033">
  <front>
    <title>DNS Security Introduction and Requirements</title>
    <author fullname="R. Arends" initials="R." surname="Arends"/>
    <author fullname="R. Austein" initials="R." surname="Austein"/>
    <author fullname="M. Larson" initials="M." surname="Larson"/>
    <author fullname="D. Massey" initials="D." surname="Massey"/>
    <author fullname="S. Rose" initials="S." surname="Rose"/>
    <date month="March" year="2005"/>
    <abstract>
      <t>The Domain Name System Security Extensions (DNSSEC) add data origin authentication and data integrity to the Domain Name System. This document introduces these extensions and describes their capabilities and limitations. This document also discusses the services that the DNS security extensions do and do not provide. Last, this document describes the interrelationships between the documents that collectively describe DNSSEC. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="4033"/>
  <seriesInfo name="DOI" value="10.17487/RFC4033"/>
</reference>

<reference anchor="RFC7250">
  <front>
    <title>Using Raw Public Keys in Transport Layer Security (TLS) and Datagram Transport Layer Security (DTLS)</title>
    <author fullname="P. Wouters" initials="P." role="editor" surname="Wouters"/>
    <author fullname="H. Tschofenig" initials="H." role="editor" surname="Tschofenig"/>
    <author fullname="J. Gilmore" initials="J." surname="Gilmore"/>
    <author fullname="S. Weiler" initials="S." surname="Weiler"/>
    <author fullname="T. Kivinen" initials="T." surname="Kivinen"/>
    <date month="June" year="2014"/>
    <abstract>
      <t>This document specifies a new certificate type and two TLS extensions for exchanging raw public keys in Transport Layer Security (TLS) and Datagram Transport Layer Security (DTLS). The new certificate type allows raw public keys to be used for authentication.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="7250"/>
  <seriesInfo name="DOI" value="10.17487/RFC7250"/>
</reference>

<reference anchor="RFC5247">
  <front>
    <title>Extensible Authentication Protocol (EAP) Key Management Framework</title>
    <author fullname="B. Aboba" initials="B." surname="Aboba"/>
    <author fullname="D. Simon" initials="D." surname="Simon"/>
    <author fullname="P. Eronen" initials="P." surname="Eronen"/>
    <date month="August" year="2008"/>
    <abstract>
      <t>The Extensible Authentication Protocol (EAP), defined in RFC 3748, enables extensible network access authentication. This document specifies the EAP key hierarchy and provides a framework for the transport and usage of keying material and parameters generated by EAP authentication algorithms, known as "methods". It also provides a detailed system-level security analysis, describing the conditions under which the key management guidelines described in RFC 4962 can be satisfied. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="5247"/>
  <seriesInfo name="DOI" value="10.17487/RFC5247"/>
</reference>

<reference anchor="RFC5080">
  <front>
    <title>Common Remote Authentication Dial In User Service (RADIUS) Implementation Issues and Suggested Fixes</title>
    <author fullname="D. Nelson" initials="D." surname="Nelson"/>
    <author fullname="A. DeKok" initials="A." surname="DeKok"/>
    <date month="December" year="2007"/>
    <abstract>
      <t>This document describes common issues seen in Remote Authentication Dial In User Service (RADIUS) implementations and suggests some fixes. Where applicable, ambiguities and errors in previous RADIUS specifications are clarified. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="5080"/>
  <seriesInfo name="DOI" value="10.17487/RFC5080"/>
</reference>

<reference anchor="RFC5077">
  <front>
    <title>Transport Layer Security (TLS) Session Resumption without Server-Side State</title>
    <author fullname="J. Salowey" initials="J." surname="Salowey"/>
    <author fullname="H. Zhou" initials="H." surname="Zhou"/>
    <author fullname="P. Eronen" initials="P." surname="Eronen"/>
    <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
    <date month="January" year="2008"/>
    <abstract>
      <t>This document describes a mechanism that enables the Transport Layer Security (TLS) server to resume sessions and avoid keeping per-client session state. The TLS server encapsulates the session state into a ticket and forwards it to the client. The client can subsequently resume a session using the obtained ticket. This document obsoletes RFC 4507. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="5077"/>
  <seriesInfo name="DOI" value="10.17487/RFC5077"/>
</reference>

<reference anchor="RFC6520">
  <front>
    <title>Transport Layer Security (TLS) and Datagram Transport Layer Security (DTLS) Heartbeat Extension</title>
    <author fullname="R. Seggelmann" initials="R." surname="Seggelmann"/>
    <author fullname="M. Tuexen" initials="M." surname="Tuexen"/>
    <author fullname="M. Williams" initials="M." surname="Williams"/>
    <date month="February" year="2012"/>
    <abstract>
      <t>This document describes the Heartbeat Extension for the Transport Layer Security (TLS) and Datagram Transport Layer Security (DTLS) protocols.</t>
      <t>The Heartbeat Extension provides a new protocol for TLS/DTLS allowing the usage of keep-alive functionality without performing a renegotiation and a basis for path MTU (PMTU) discovery for DTLS. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="6520"/>
  <seriesInfo name="DOI" value="10.17487/RFC6520"/>
</reference>




    </references>

    <references title='Informative References' anchor="sec-informative-references">




<reference anchor="I-D.ietf-radext-radiusv11">
   <front>
      <title>RADIUS Version 1.1</title>
      <author fullname="Alan DeKok" initials="A." surname="DeKok">
         <organization>FreeRADIUS</organization>
      </author>
      <date day="11" month="October" year="2023"/>
      <abstract>
	 <t>   This document defines Application-Layer Protocol Negotiation
   Extensions for use with RADIUS/TLS and RADIUS/DTLS.  These extensions
   permit the negotiation of an additional application protocol for
   RADIUS over (D)TLS.  No changes are made to RADIUS/UDP or RADIUS/TCP.
   The extensions allow the negotiation of a transport profile where the
   RADIUS shared secret is no longer used, and all MD5-based packet
   signing and attribute obfuscation methods are removed.  When this
   extension is used, the previous Authenticator field is repurposed to
   contain an explicit request / response identifier, called a Token.
   The Token also allows more than 256 packets to be outstanding on one
   connection.

   This extension can be seen as a transport profile for RADIUS, as it
   is not an entirely new protocol.  It uses the existing RADIUS packet
   layout and attribute format without change.  As such, it can carry
   all present and future RADIUS attributes.  Implementation of this
   extension requires only minor changes to the protocol encoder and
   decoder functionality.  The protocol defined by this extension is
   named &quot;RADIUS version 1.1&quot;, or &quot;RADIUS/1.1&quot;.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-ietf-radext-radiusv11-02"/>
   
</reference>

<reference anchor="RFC7593">
  <front>
    <title>The eduroam Architecture for Network Roaming</title>
    <author fullname="K. Wierenga" initials="K." surname="Wierenga"/>
    <author fullname="S. Winter" initials="S." surname="Winter"/>
    <author fullname="T. Wolniewicz" initials="T." surname="Wolniewicz"/>
    <date month="September" year="2015"/>
    <abstract>
      <t>This document describes the architecture of the eduroam service for federated (wireless) network access in academia. The combination of IEEE 802.1X, the Extensible Authentication Protocol (EAP), and RADIUS that is used in eduroam provides a secure, scalable, and deployable service for roaming network access. The successful deployment of eduroam over the last decade in the educational sector may serve as an example for other sectors, hence this document. In particular, the initial architectural choices and selection of standards are described, along with the changes that were prompted by operational experience.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="7593"/>
  <seriesInfo name="DOI" value="10.17487/RFC7593"/>
</reference>

<reference anchor="RFC6614">
  <front>
    <title>Transport Layer Security (TLS) Encryption for RADIUS</title>
    <author fullname="S. Winter" initials="S." surname="Winter"/>
    <author fullname="M. McCauley" initials="M." surname="McCauley"/>
    <author fullname="S. Venaas" initials="S." surname="Venaas"/>
    <author fullname="K. Wierenga" initials="K." surname="Wierenga"/>
    <date month="May" year="2012"/>
    <abstract>
      <t>This document specifies a transport profile for RADIUS using Transport Layer Security (TLS) over TCP as the transport protocol. This enables dynamic trust relationships between RADIUS servers. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="6614"/>
  <seriesInfo name="DOI" value="10.17487/RFC6614"/>
</reference>

<reference anchor="RFC6613">
  <front>
    <title>RADIUS over TCP</title>
    <author fullname="A. DeKok" initials="A." surname="DeKok"/>
    <date month="May" year="2012"/>
    <abstract>
      <t>The Remote Authentication Dial-In User Server (RADIUS) protocol has, until now, required the User Datagram Protocol (UDP) as the underlying transport layer. This document defines RADIUS over the Transmission Control Protocol (RADIUS/TCP), in order to address handling issues related to RADIUS over Transport Layer Security (RADIUS/TLS). It permits TCP to be used as a transport protocol for RADIUS only when a transport layer such as TLS or IPsec provides confidentiality and security. This document defines an Experimental Protocol for the Internet community.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="6613"/>
  <seriesInfo name="DOI" value="10.17487/RFC6613"/>
</reference>

<reference anchor="RFC7360">
  <front>
    <title>Datagram Transport Layer Security (DTLS) as a Transport Layer for RADIUS</title>
    <author fullname="A. DeKok" initials="A." surname="DeKok"/>
    <date month="September" year="2014"/>
    <abstract>
      <t>The RADIUS protocol defined in RFC 2865 has limited support for authentication and encryption of RADIUS packets. The protocol transports data in the clear, although some parts of the packets can have obfuscated content. Packets may be replayed verbatim by an attacker, and client-server authentication is based on fixed shared secrets. This document specifies how the Datagram Transport Layer Security (DTLS) protocol may be used as a fix for these problems. It also describes how implementations of this proposal can coexist with current RADIUS systems.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="7360"/>
  <seriesInfo name="DOI" value="10.17487/RFC7360"/>
</reference>


<reference anchor="I-D.ietf-radext-tls-psk">
   <front>
      <title>RADIUS and TLS-PSK</title>
      <author fullname="Alan DeKok" initials="A." surname="DeKok">
         <organization>FreeRADIUS</organization>
      </author>
      <date day="24" month="August" year="2023"/>
      <abstract>
	 <t>   This document gives implementation and operational considerations for
   using TLS-PSK with RADIUS/TLS (RFC6614) and RADIUS/DTLS (RFC7360).

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-ietf-radext-tls-psk-03"/>
   
</reference>




    </references>


<?line 788?>

<section anchor="lessons_learned"><name>Lessons learned from deployments of the Experimental <xref target="RFC6614"/></name>

<t>There are at least to major (world-scale deployments of <xref target="RFC6614"/>.
This section will discuss lessens learned from these deployments, that influenced this document.</t>

<section anchor="eduroam"><name>eduroam</name>

<t>eduroam is a globally operating Wi-Fi roaming consortium exclusively for persons in Research and Education. For an extensive background on eduroam and its authentication fabric architecture, refer to <xref target="RFC7593"/>.</t>

<t>Over time, more than a dozen out of 100+ national branches of eduroam used RADIUS/TLS in production to secure their country-to-country RADIUS proxy connections. This number is big enough to attest that the protocol does work, and scales. The number is also low enough to wonder why RADIUS/UDP continued to be used by a majority of country deployments despite its significant security issues.</t>

<t>Operational experience reveals that the main reason is related to the choice of PKIX certificates for securing the proxy interconnections. Compared to shared secrets, certificates are more complex to handle in multiple dimensions:</t>

<t><list style="symbols">
  <t>Lifetime: PKIX certificates have an expiry date, and need administrator attention and expertise for their renewal</t>
  <t>Validation: The validation of a certificate (both client and server) requires contacting a third party to verify the revocation status. This either takes time during session setup (OCSP checks) or requires the presence of a fresh CRL on the server - this in turn requires regular update of that CRL.</t>
  <t>Issuance: PKIX certificates carry properties in the Subject and extensions that need to be vetted. Depending on the CA policy, a certificate request may need significant human intervention to be verified. In particular, the authorisation of a requester to operate a server for a particular NAI realm needs to be verified. This rules out public "browser-trusted" CAs; eduroam is operating a special-purpose CA for eduroam RADIUS/TLS purposes.</t>
  <t>Automatic failure over time: CRL refresh and certificate renewal must be attended to regularly. Failure to do so leads to failure of the authentication service. Among other reasons, employee churn with incorrectly transferred or forgotten responsibilities is a risk factor.</t>
</list></t>

<t>It appears that these complexities often outweigh the argument of improved security; and a fallback to RADIUS/UDP is seen as the more appealing option.</t>

<t>It can be considered an important result of the experiment in <xref target="RFC6614"/> that providing less complex ways of operating RADIUS/TLS are required. The more thoroughly specified provisions in the current document towards TLS-PSK and raw public keys are a response to this insight.</t>

<t>On the other hand, using RADIUS/TLS in combination with Dynamic Discovery as per <xref target="RFC7585"/> necessitates the use of PKIX certificates. So, the continued ability to operate with PKIX certificates is also important and cannot be discontinued without sacrificing vital functionality of large roaming consortia.</t>

</section>
<section anchor="wireless-broadband-alliances-openroaming"><name>Wireless Broadband Alliance's OpenRoaming</name>

<t>OpenRoaming is a globally operating Wi-Fi roaming consortium for the general public, operated by the Wireless Broadband Alliance (WBA). With its (optional) settled usage of hotspots, the consortium requires both RADIUS authentication as well as RADIUS accounting.</t>

<t>The consortium operational procedures were defined in the late 2010s when <xref target="RFC6614"/> and <xref target="RFC7585"/> were long available. The consortium decided to fully base itself on these two RFCs.</t>

<t>In this architecture, using PSKs or raw public keys is not an option. The complexities around PKIX certificates as discussed in the previous section are believed to be controllable: the consortium operates its own special-purpose CA and can rely on a reliable source of truth for operator authorisation (becoming an operator requires a paid membership in WBA); expiry and revocation topics can be expected to be dealt with as high-priority because of the monetary implications in case of infrastructure failure during settled operation.</t>

</section>
<section anchor="participating-in-more-than-one-roaming-consortium"><name>Participating in more than one roaming consortium</name>

<t>It is possible for a RADIUS/TLS (home) server to participate in more than one roaming consortium, i.e. to authenticate its users to multiple clients from distinct consortia, which present client certificates from their respective consortium's CA; and which expect the server to present a certificate from the matching CA.</t>

<t>The eduroam consortium has chosen to cooperate with (the settlement-free parts of) OpenRoaming to allow eduroam users to log in to (settlement-free) OpenRoaming hotspots.</t>

<t>eduroam RADIUS/TLS servers thus may be contacted by OpenRoaming clients expecting an OpenRoaming server certificate, and by eduroam clients expecting an eduroam server certificate.</t>

<t>It is therefore necessary to decide on the certificate to present during TLS session establishment. To make that decision, the availability of Trusted CA Indication in the client TLS message is important.</t>

<t>It can be considered an important result of the experiment in <xref target="RFC6614"/> that Trusted CA Indication is an important asset for inter-connectivity of multiple roaming consortia.</t>

</section>
</section>
<section anchor="interoperable-implementations"><name>Interoperable Implementations</name>

</section>
<section anchor="backwardcomp"><name>Backward compatibility</name>

<t>TODO describe necessary steps to configure common servers for compatibility with this version.
Hopefully the differences to <xref target="RFC6614"/> are small enough that almost no config change is necessary.</t>

</section>
<section numbered="false" anchor="acknowledgments"><name>Acknowledgments</name>

<t>Thanks to the original authors of RFC 6613, RFC 6614 and RFC 7360: Alan DeKok, Stefan Winter, Mike McCauley, Stig Venaas and Klaas Vierenga.</t>

<t>Thanks to Arran Curdbard-Bell for text around keepalives and the Status-Server watchdog algorithm.</t>

</section>


  </back>

<!-- ##markdown-source:
H4sIAAAAAAAAA91963bbVpbmfz4FmvkRqYZkfJOTKN2dZiSno4kvGsuudK2s
qiyQBEWUQIANgJZZid9l/s5rzLzY7G9fzgWAZGemek2vqa4uiyRwLvvss++X
6XQ6avO2yE6T8dF52qbXdbo9Tt7UadnsqrpNnqeHrE6usuW+zttDcnR0fvzm
+VXyrFzWh12bV2Wyrurk9fz84u3VeJQuFnX2jsaSL5LqHb0sr4xHy7TNrqv6
cJo07Wo0qhZNVWRt1pwmT58+fJJ8+fjpg9FoVS3LdEvLWdXpup3mWbue1ukq
e9/in3zfrNqimS7yZvrgwajZL7Z509Aq2sOO3rl49ub7EU3/eJTWWUrLsHWP
R7dVfXNdV/udX9yzf3uTlXi5GY9usgM9sTodJVPdDP6iZY/eZeU+o++Te95O
Epl//BPNkpfXyb/iWXy/TfOCvpcd/At2M6vq6/FolO7bTVVj3GkiG/6vaTn9
vs5WWZ3fJK/zbHmT1Q39niT0xmlynu3bZrnJmuT7qqY/9uV1U2bt35Lfkn/N
6m1aJi9TnEdaJK+zJkvr5SZJy1XybLVf8g/Jy6wFFHjIpq2zrD1N5kX2np7K
6l2R0lgP+cdltaL1PHzw8Muv5DNB8DT5LquLvNQH9mWLg5SZD/xlJnutdeX/
slqXs1XGPxlanH//kj/TmZwmt7e3M/eMAeGqzda0lZ/yss1qv/nvq3Ilm6C9
tVmZ0q7tr+9pMfJjtLNHkyTls0tWWVJ8/rbMCRebvP1f/yPY45PHT0+CLT4j
uE6bfT2dF3/L2jaLN/t8/z7bLqp9fR3ut+EVz255xf9Sy6JmxT7a+OtnV2+e
vZzHmw+eHZUVAbKlJZ6ORnm5Dj6NptMpjUPbSpftaPRmkzcJXZL9NivbpNll
y3ydE1KkSevu7K6u1nmRBTcz2TdAy7uvNWH6sdzWN2eXBPPEaME975z7l96e
XyZpk7SbLF5GWy2rYiaLpq0uigz/Cumg9eB5XSC9tl7nS4xymxUF/l0dCCfo
q7beN21SZwUfcrPJd02yIFzOstLebrIap4uZMgOKYr0jMzxb9n5H9wuwo3sS
PdgkOQ33/ZkQoyMZ+AveIq4RfgGFcr+cu5+W1XaRlzLBFqO02G40+EyOcZuv
VkU2Gv16+tc1YQ6h0jL7pzFd/DXd+/GH0eiz5IJwraIry/jM29EtGjQZMlmz
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
ixmnOf43M07LZJHiAAA=

-->

</rfc>

