<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.6.37 (Ruby 2.7.4) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-janfred-radext-radiusdtls-bis-00" category="std" consensus="true" submissionType="IETF" obsoletes="6614 7360" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.17.4 -->
  <front>
    <title abbrev="RADIUS over (D)TLS">(Datagram) Transport Layer Security ((D)TLS Encryption for RADIUS</title>
    <seriesInfo name="Internet-Draft" value="draft-janfred-radext-radiusdtls-bis-00"/>
    <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="July" day="08"/>
    <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.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-janfred-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 51?>

<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>
        <ul spacing="normal">
          <li>
            <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.</li>
          <li>RFC6614 marked TLSv1.1 or later as mandatory, this specification requires TLSv1.2 as minimum and recommends usage of TLSv1.3</li>
          <li>RFC6614 allowed usage of TLS compression, this document forbids it.</li>
          <li>RFC6614 lists support for TLS-PSK as optional, this document changes this to recommended.</li>
          <li>The mandatory-to-implement cipher suites are changing to more up-to-date cipher suites.</li>
          <li>The specification regarding steps for certificate verification has been updated</li>
        </ul>
      </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>Implementations <bcp14>SHOULD</bcp14> support both RADIUS/TLS and RADIUS/DTLS, but to be compliant to this specification they can choose to implement only one of the two. <cref anchor="choose-your-weapon" source="Janfred">I'm not exactly sure if this text is good. My thought was also to add a text like "You have to say RADIUS/TLS according to RFC????, if you want to say 'compliant with RFC????' you need to implement both". But maybe this is the pessimist in me that fears that companies will advocate "we support RFC????", but only use one or the other and we end up with incompatible systems, because A does RADIUS/TLS and B does RADIUS/DTLS.</cref></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"/>) and RADIUS MIBs (<xref target="radius_mib"/>).</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>
        <ul spacing="normal">
          <li>Packet format</li>
          <li>Permitted codes</li>
          <li>Request Authenticator calculation</li>
          <li>Response Authenticator calculation</li>
          <li>Minimum packet length</li>
          <li>Maximum packet length</li>
          <li>Attribute format</li>
          <li>Vendor-Specific Attribute (VSA) format</li>
          <li>Permitted data types</li>
          <li>Calculation of dynamic attributes such as CHAP-Challenge, or Message-Authenticator</li>
          <li>Calculation of "encrypted" attributes such as Tunnel-Password.</li>
        </ul>
        <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>
        <table>
          <thead>
            <tr>
              <th align="left">Protocol</th>
              <th align="left">Port</th>
              <th align="left">Shared Secret</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">RADIUS/TLS</td>
              <td align="left">2083/tcp</td>
              <td align="left">"radsec"</td>
            </tr>
            <tr>
              <td align="left">RADIUS/DTLS</td>
              <td align="left">2083/udp</td>
              <td align="left">"radius/dtls"</td>
            </tr>
          </tbody>
        </table>
        <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="radius_mib">
        <name>RADIUS MIBs</name>
        <t><cref anchor="mib" source="Janfred">Is this actually still needed? RFC6613, Section 2.3 says "will need to be updated in the future". Is this the time?</cref></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>When UDP is used as a transport protocol, 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>For RADIUS/TLS, it is <bcp14>RECOMMENDED</bcp14> that implementations utilize the existence of a TCP connection along with the application-layer watchdog defined in <xref target="RFC3539"/>, Section 3.4 to determine that the server is "live".
RADIUS/TLS clients <bcp14>MUST</bcp14> mark a connection DOWN, if the network stack indicates that the connection is no longer active.
If the network stack indicates that the connection is still active, clients <bcp14>MUST NOT</bcp14> decide that it is down until the application-layer watchdog algorithm has marked it DOWN.
RADIUS/TLS clients <bcp14>MUST NOT</bcp14> decide that a RADIUS/TLS server is unresponsive until all TLS connections to it have been marked down.<cref anchor="contradiction" source="Janfred">The specification in RFC6613 is contradictory here. Section 2.4 says that it is recommended to have a watchdog. Section 2.6 says it must be used.</cref></t>
        <t>The above requirements do not forbid the practice of a client proactively closing connections or marking a server as DOWN due to an administrative decision.</t>
        <t>It is <bcp14>RECOMMENDED</bcp14> that RADIUS/(D)TLS nodes implement the Status-Server extension as described in <xref target="RFC5997"/> to detect the liveness of the peer without dependence on successful authentications.
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.<cref anchor="statusserver" source="Janfred">TODO: RFC6613 mandates the use of Status-Server for RADIUS/TCP, RFC7360 only recommends it for RADIUS/DTLS. Maybe it should be mandatory for both?</cref></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>The following requirements have to be met for the (D)TLS session:</t>
        <ul spacing="normal">
          <li>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>.</li>
          <li>Negotiation of a cipher suite providing for confidentiality as well as integrity protection is <bcp14>REQUIRED</bcp14>.</li>
          <li>The peers <bcp14>MUST NOT</bcp14> negotiate compression.</li>
          <li>The session <bcp14>MUST</bcp14> be mutually authenticated (see <xref target="mutual_auth"/>)</li>
        </ul>
      </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 implementations <bcp14>MUST</bcp14> implement this model, with the following rules:</t>
          <ul spacing="normal">
            <li>Implementations <bcp14>MUST</bcp14> allow the configuration of a list of trusted Certificate Authorities for new TLS sessions.</li>
            <li>Certificate validation <bcp14>MUST</bcp14> include the verification rules as per <xref target="RFC5280"/>.</li>
            <li>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></li>
            <li>
              <t>RADIUS/(D)TLS clients validate the servers identity to match their local configuration:
              </t>
              <ul spacing="normal">
                <li>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</li>
                <li>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.</li>
                <li>
                  <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:
                  </t>
                  <ul spacing="normal">
                    <li>The realm which was used as input to the discovery is matched against the presented realm names from the subjectAltName:naiRealm extension.</li>
                    <li>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.</li>
                    <li>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.</li>
                  </ul>
                </li>
              </ul>
            </li>
            <li>
              <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
              </t>
              <ul spacing="normal">
                <li>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.</li>
                <li>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></li>
                <li>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.</li>
              </ul>
            </li>
            <li>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).</li>
            <li>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></li>
          </ul>
        </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 implementations <bcp14>SHOULD</bcp14> support the use of TLS-PSK.
Further guidance on the usage of TLS-PSK in RADIUS/(D)TLS is given in <xref target="I-D.dekok-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>
        <ul spacing="normal">
          <li>Originating IP address</li>
          <li>Certificate Fingerprint</li>
          <li>Issuer</li>
          <li>Subject</li>
          <li>all X.509v3 Extended Key Usage</li>
          <li>all X.509v3 Subject Alternative Name</li>
          <li>all X.509v3 Certificate Policy</li>
        </ul>
        <t>In TLS-PSK operation at least the following parameters of the TLS connection should be exposed:</t>
        <ul spacing="normal">
          <li>Originating IP address</li>
          <li>TLS-PSK Identifier</li>
        </ul>
      </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>
        <ul spacing="normal">
          <li>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.</li>
          <li>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.</li>
        </ul>
      </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>
        <ul spacing="normal">
          <li>Connection from an unknown client</li>
          <li>Packet where the RADIUS "Length" field is less than the minimum RADIUS packet length</li>
          <li>Packet where the RADIUS "Length" field is more than the maximum RADIUS packet length</li>
          <li>Packet where an Attribute "Length" field has the value of zero or one (0 or 1)</li>
          <li>Packet where the attributes do not exactly fill the packet</li>
          <li>Packet where the Request Authenticator fails validation (where validation is required)</li>
          <li>Packet where the Response Authenticator fails validation (where validation is required)</li>
          <li>Packet where the Message-Authenticator attribute fails validation (when it occurs in a packet)</li>
        </ul>
        <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>
        <ul spacing="normal">
          <li>Packet with an invalid code field</li>
          <li>Response packets that do not match any outstanding request</li>
        </ul>
        <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>
          <ul spacing="normal">
            <li>source IP address</li>
            <li>source port</li>
            <li>destination IP address</li>
            <li>destination port</li>
          </ul>
          <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>Once a DTLS session is established, a RADIUS/DTLS server <bcp14>SHOULD</bcp14> use DTLS Heartbeats <xref target="RFC6520"/> to determine connectivity between the two servers.
A server <bcp14>SHOULD</bcp14> also use watchdog packets from the client to determine that the session is still active.</t>
            <t>As UDP does not guarantee delivery of messages, RADIUS/DTLS servers that do not implement an application-layer watchdog <bcp14>MUST</bcp14> also 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.
Once a DTLS session is established, a RADIUS/DTLS client <bcp14>SHOULD</bcp14> use DTLS Heartbeats <xref target="RFC6520"/> to determine connectivity between the two systems.
RADIUS/DTLS clients <bcp14>SHOULD</bcp14> also use the application-layer watchdog algorithm defined in <xref target="RFC3539"/> to determine server responsiveness.
The Status-Server packet defined in <xref target="RFC5997"/> <bcp14>SHOULD</bcp14> be used as the "watchdog packet" in any application-layer watchdog algorithm.<cref anchor="doublespec" source="Janfred">The Status-Server spec was already mentioned above. Maybe remove it from here?</cref></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 the DTLS Heartbeat algorithm indicates that the session is no longer active.
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 wast resources on the server by causing it to track idle sessions.</t>
          <t>When a client fails to implement both DTLS Heartbeats and watchdog packets, it has no way of knowing that a DTLS session has been closed.
Therefore, there is the possibility that the server closes the session without the client knowing.
When that happens, the client may later transmit packets in a session, and those packets will be ignored by the server.
The client is then forced to time out those packets and then the session, leading to delays and network instabilities.</t>
          <t>For these reasons, it is <bcp14>RECOMMENDED</bcp14> that all DTLS session be configured to use DTLS Heartbeats and/or watchdog packets.</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.
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>TODO Security</t>
    </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>
      <ul spacing="normal">
        <li>Service Name: radsec</li>
        <li>Port Number: 2083</li>
        <li>Transport Protocol: tcp/udp</li>
        <li>Description: Secure RADIUS Service</li>
        <li>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"/>.</li>
      </ul>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <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="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="I-D.dekok-radext-tls-psk">
          <front>
            <title>RADIUS and TLS-PSK</title>
            <author fullname="Alan DeKok" initials="A." surname="DeKok">
              <organization>FreeRADIUS</organization>
            </author>
            <date day="6" month="July" 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-dekok-radext-tls-psk-01"/>
        </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="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>
        <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>
      </references>
      <references>
        <name>Informative References</name>
        <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="24" month="May" 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 "RADIUS version 1.1", or "RADIUS/1.1".

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-radext-radiusv11-01"/>
        </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="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>
      </references>
    </references>
    <?line 672?>

<section anchor="lessens-learned-from-deployments-of-the-experimental-rfc6614">
      <name>Lessens 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>
        <ul spacing="normal">
          <li>Lifetime: PKIX certificates have an expiry date, and need administrator attention and expertise for their renewal</li>
          <li>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.</li>
          <li>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.</li>
          <li>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.</li>
        </ul>
        <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>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA9196XIjV3bmfzxFGv1DZA8AFWuV2LZliKyyaNU2xaqWOxTd
igRwQWYTyIQzE2SxpXqX+TuvMfNic76z3CUzSZU8doxjuju6CCDzLueefbvT
6XTUFu3GHWfjg9O8zS/qfHuYva/zstlVdZu9zG9dnZ275b4u2tvs4OD08P3L
8+x5uaxvd21Rldm6qrN389OzD+fjUb5Y1O6axpIvsuqaXpZXxqNl3rqLqr49
zpp2NRpVi6bauNY1x9nTp0ePs2ePnj4YjVbVssy3tJxVna/b6V/zcl271bTO
V+5ji3+KfbNqN810UTTTBw9GzX6xLZqGFtLe7ui1s+fvX4xoBY9Gee1yWokt
fTy6qeqri7ra78L6nv/re1fi5WY8unK39MTqeJRNdT/4i1Y+unbl3tH32T1v
Z5nMP/6BZinKi+yf8Sy+3+bFhr6XHfxT4dr1rKovxqNRvm8vqxrjTjPZ87/k
5fQFbdfVxVX2rnDLK1c39HuW0RvH2anbt83y0jXZi6qmP/blRVO69m/ZL9k/
u3qbl9nrHEeSb7J3rnF5vbzM8nKVPV/tl/xD9tq1gAIP2bS1c+1xNt+4j/SU
q3ebnMY64h+X1YrWc/Tg6NlX8pkgeJx96+pNUeoD+7LFWcrMt/ylk73WuvJ/
Wq3L2crxT4YZpy9e82c6k+Ps5uZm5p8xIJy3bk1b+aEoW1eHzb+oypVsgvbW
ujKnXdtfL2gx8mOys4eTLOezy1Yu23zxoSwIHZui/d//M9rj40dPn0RbfE5w
nTb7ejrf/M21rUs3+3L/0W0X1b6+iPfb8IpnN7zif6plUbPNPtn4u+fn75+/
nqebj54dlRUBsqUlHo9GRbmOPo2m0ymNQ9vKl+1o9P6yaDKik/3WlW3W7Nyy
WBeEFHnWerLd1dW62LiIOLN9A7S8m7IJ0w+FYN+fvCWYZ8YO7nnnNLz04fRt
ljdZe+nSZbTVstrMZNG01cXG4V/hHrQePK8LpNfW62KJUW7cZoN/V7eEE/RV
W++bNqvdhg+5uSx2TbYgXHautLcbV+N0ZwKtbbFabdxo9PPxX9d0QHRiS/cP
438RbjL+NBr9LjujI62IMhhtaH1+HbZoXoBrlnWxcKusKLOff/67dy9OHn71
9MmnT5Pw6Wn49OToGX1ioqtoZ3WTFTiXm2LlNrc02G5T3dJYoHw6u0KocpIJ
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
xv8Dr8pSBqK5AAA=

-->

</rfc>
