<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.30 (Ruby 3.4.8) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-radext-radiusdtls-bis-12" category="std" consensus="true" submissionType="IETF" obsoletes="6614, 7360" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.31.0 -->
  <front>
    <title abbrev="RadSec: RADIUS over TLS and DTLS">RadSec: RADIUS over Transport Layer Security (TLS) and Datagram Transport Layer Security (DTLS)</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-radext-radiusdtls-bis-12"/>
    <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="M." surname="Cullen" fullname="Margaret Cullen" role="editor">
      <organization>Painless Security</organization>
      <address>
        <postal>
          <street>4 High Street, Suite 206</street>
          <city>North Andover, MA</city>
          <code>01845</code>
          <country>USA</country>
        </postal>
        <email>margaret@painless-security.com</email>
      </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="2026" month="January" day="19"/>
    <area>Security</area>
    <workgroup>RADIUS EXTensions</workgroup>
    <keyword>RADIUS</keyword>
    <keyword>TLS</keyword>
    <abstract>
      <?line 56?>

<t>This document defines transport profiles for running RADIUS over Transport Layer Security (TLS) and Datagram Transport Layer Security (DTLS), allowing the secure and reliable transport of RADIUS messages.
RADIUS/TLS and RADIUS/DTLS are collectively referred to as RadSec.</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-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 61?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>This document defines transport profiles for running RADIUS over Transport Layer Security (TLS) <xref target="RFC8446"/> <xref target="RFC5246"/> over TCP <xref target="STD7"/>, and Datagram Transport Layer Security (DTLS) <xref target="RFC6347"/> <xref target="RFC9147"/> over UDP <xref target="STD6"/>, allowing secure and reliable transport of RADIUS messages.
RADIUS/TLS and RADIUS/DTLS are collectively referred to as RadSec.</t>
      <t>RADIUS is a widely deployed Authentication, Authorization and Accounting (AAA) protocol defined in <xref target="RFC2865"/>, <xref target="RFC2866"/>, and <xref target="RFC5176"/>, among others.
Deployment experience has shown several shortcomings, such as dependency on the unreliable transport protocol, UDP, and a lack of confidentiality for large parts of RADIUS messages.
Additionally, the confidentiality and integrity mechanisms in RADIUS rely on the MD5 algorithm <xref target="RFC1321"/>, which does not meet modern security expectations.
Although RadSec does not remove the MD5-based mechanisms, it adds confidentiality and integrity protection through the TLS layer.
For an updated version of RadSec without need for MD5 see <xref target="RFC9765"/>.</t>
    </section>
    <section anchor="conventions-and-terminology">
      <name>Conventions and Terminology</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>The following terminology is used in this document:</t>
      <dl>
        <dt>RadSec:</dt>
        <dd>
          <t>A collective term for RADIUS/TLS and RADIUS/DTLS.</t>
        </dd>
        <dt>RADIUS/TLS:</dt>
        <dd>
          <t>A RADIUS exchange transmitted using TLS over TCP.</t>
        </dd>
        <dt>RADIUS/DTLS:</dt>
        <dd>
          <t>A RADIUS exchange transmitted using DTLS over UDP.</t>
        </dd>
        <dt>RADIUS/UDP:</dt>
        <dd>
          <t>RADIUS transported over UDP as defined in <xref target="RFC2865"/>.</t>
        </dd>
        <dt>RADIUS packet:</dt>
        <dd>
          <t>As defined in <xref target="RFC2865"/>.</t>
        </dd>
        <dt>RADIUS packet type:</dt>
        <dd>
          <t>As defined in <xref target="RFC2865"/>.</t>
        </dd>
        <dt>(D)TLS handshake message:</dt>
        <dd>
          <t>As defined in TLS <xref target="RFC5246"/> and DTLS <xref target="RFC9147"/>.</t>
        </dd>
        <dt>TLS record:</dt>
        <dd>
          <t>As defined in TLS <xref target="RFC5246"/>.</t>
        </dd>
        <dt>DTLS record:</dt>
        <dd>
          <t>As defined in DTLS <xref target="RFC9147"/>.  A DTLS record is always contained in one UDP datagram.</t>
        </dd>
        <dt>(D)TLS connection:</dt>
        <dd>
          <t>A single (D)TLS communication channel (with DTLS this is a synonym for Association).</t>
        </dd>
        <dt>UDP datagram:</dt>
        <dd>
          <t>A UDP packet, including the header and data.</t>
        </dd>
        <dt>UDP (datagram) data:</dt>
        <dd>
          <t>The data payload of a UDP datagram.</t>
        </dd>
        <dt>RadSec client:</dt>
        <dd>
          <t>A RadSec instance that initiates a new connection.</t>
        </dd>
        <dt>RadSec server:</dt>
        <dd>
          <t>A RadSec instance that listens on a RADIUS-over-(D)TLS port and accepts new connections.</t>
        </dd>
        <dt>RadSec endpoint:</dt>
        <dd>
          <t>A RADIUS-over-(D)TLS client or server</t>
        </dd>
        <dt>RadSec peer:</dt>
        <dd>
          <t>A RadSec endpoint connected to the RadSec endpoint that is the primary subject of discussion.</t>
        </dd>
      </dl>
      <t>Whenever "(D)TLS", "RADIUS/(D)TLS" or "RadSec" is mentioned, the specification applies for both RADIUS/TLS and RADIUS/DTLS.
Where "TLS" or "RADIUS/TLS" is mentioned, the specification applies only for RADIUS/TLS, where "DTLS" or "RADIUS/DTLS" is mentioned, it only applies to RADIUS/DTLS.</t>
    </section>
    <section anchor="radsec-packet-and-connection-handling">
      <name>RadSec Packet and Connection Handling</name>
      <t>This section defines the behavior of RadSec endpoints for the handling of establishment of a (D)TLS connection and sending and receiving RADIUS packets.</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> implement at least one of RADIUS/TLS or RADIUS/DTLS.</t>
      <section anchor="portusage">
        <name>Default ports and shared secrets</name>
        <t>IANA has reserved server ports for RADIUS/TLS and RADIUS/DTLS.
Since authentication of peers, confidentiality, and integrity protection are provided by the (D)TLS layer, the shared secret for the RADIUS packets is set to a static string, depending on whether TLS or DTLS is in use.
The calculation of security-related fields such as Response-Authenticator, Message-Authenticator or encrypted attributes <bcp14>MUST</bcp14> be performed using the static shared secret.</t>
        <table>
          <thead>
            <tr>
              <th align="left">Protocol</th>
              <th align="left">Server 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>RadSec does not use separate ports for authentication, accounting and dynamic authorization changes.
The client source port used for a RadSec connections is not fixed -- it is typically an ephemeral port picked by the client Operating System.
For considerations regarding the multi-purpose use of one port for authentication and accounting see <xref target="radius_packets"/>.</t>
        <t>RadSec endpoints <bcp14>MUST NOT</bcp14> use the old RADIUS/UDP or RADIUS/TCP ports for RADIUS/DTLS or RADIUS/TLS.</t>
      </section>
      <section anchor="dtls-requirements">
        <name>(D)TLS requirements</name>
        <t>RadSec clients <bcp14>MUST</bcp14> establish a (D)TLS session immediately upon connecting to a new server.
All data received over a TCP or UDP port assigned for RadSec is opaque for the RADIUS client or server application and must be handled by the TLS or DTLS implementation.
Closing TLS connections and discarding invalid UDP datagrams are done by the (D)TLS implementation.</t>
        <t>RadSec 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="BCP195"/>, especially in regards to recommended cipher suites and TLS session resumption.
Additionally, the following requirements have to be met for the (D)TLS connection:</t>
        <ul spacing="normal">
          <li>
            <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>
          </li>
          <li>
            <t>Negotiation of a cipher suite providing for confidentiality as well as integrity protection is <bcp14>REQUIRED</bcp14>.</t>
          </li>
          <li>
            <t>The endpoints <bcp14>MUST NOT</bcp14> negotiate compression.</t>
          </li>
          <li>
            <t>The connection <bcp14>MUST</bcp14> be mutually authenticated (see <xref target="mutual_auth"/>)</t>
          </li>
        </ul>
        <t>The use of the 0-RTT feature of (D)TLS is <bcp14>NOT RECOMMENDED</bcp14>.
RADIUS packets may contain confidential data that should be protected by forward secrecy, which 0-RTT cannot provide.
If 0-RTT is used, implementations <bcp14>MUST</bcp14> also implement protection mechanisms against replay attacks.
See <xref section="8" sectionFormat="comma" target="I-D.ietf-tls-rfc8446bis-14"/> for more detail.</t>
      </section>
      <section anchor="mutual_auth">
        <name>Mutual authentication</name>
        <t>RadSec servers <bcp14>MUST</bcp14> authenticate clients, and RadSec clients <bcp14>MUST</bcp14> authenticate servers.
RADIUS is designed to be used by mutually trusted systems.
Allowing anonymous clients would ensure privacy for RadSec traffic, but would negate all other security aspects of the protocol, including security aspects of RADIUS itself, due to the fixed shared secret.</t>
        <t>RADIUS/(D)TLS allows for the following modes of mutual authentication, which will be further specified in this section:</t>
        <ul spacing="normal">
          <li>
            <t>TLS-X.509-PKIX</t>
          </li>
          <li>
            <t>TLS-PSK</t>
          </li>
        </ul>
        <t>Independent of the chosen mode of authentication, the mutual authentication <bcp14>MUST</bcp14> be performed during the initial handshake.
Alternative methods, such as post-handshake certificate-based client authentication (see <xref section="4.6.2" sectionFormat="comma" target="RFC8446"/>) with TLS 1.3 or renegotiation with TLS 1.2, <bcp14>MUST NOT</bcp14> be used to achieve mutual authentication.</t>
        <section anchor="tlsx509pkix">
          <name>Authentication using X.509 certificates with PKIX trust model (TLS-X.509-PKIX)</name>
          <t>All RadSec server implementations <bcp14>MUST</bcp14> implement this model.
RadSec client implementations <bcp14>SHOULD</bcp14> implement this model, but <bcp14>MUST</bcp14> implement either this model or TLS-PSK.</t>
          <t>If implemented, the following rules apply:</t>
          <ul spacing="normal">
            <li>
              <t>Implementations <bcp14>MUST</bcp14> allow the configuration of a trust base (i.e. a set of trusted Certificate Authorities (CAs)<xref target="RFC5280"/>) for new TLS connections.  This list <bcp14>SHOULD</bcp14> be application-specific and not use a global system trust store.</t>
            </li>
            <li>
              <t>Certificate validation <bcp14>MUST</bcp14> include the verification rules as per <xref target="RFC5280"/>.</t>
            </li>
            <li>
              <t>Implementations <bcp14>SHOULD</bcp14> indicate their trust anchors when opening or accepting TLS connections.
See <xref section="7.4.4" sectionFormat="comma" target="RFC5246"/> and <xref section="6" sectionFormat="comma" target="RFC6066"/> for TLS 1.2 and <xref section="4.2.4" sectionFormat="comma" target="RFC8446"/> for TLS 1.3.</t>
            </li>
            <li>
              <t>When the configured trust base changes (e.g., removal of a CA from the set of trust anchors; issuance of a new CRL for a CA in the set of trust anchors), implementations <bcp14>SHOULD</bcp14> reassess the continued validity of the certificate path of all connected peers.  This can either be done by caching the peer's certificate for the duration of the connection and re-evaluating the cached certificate or by renegotiating the (D)TLS connection, either directly or by opening a new (D)TLS connection and closing the old one.</t>
            </li>
            <li>
              <t>Implementations <bcp14>SHOULD NOT</bcp14> keep a connection open for longer than the validity span of the peer certificate.  At the time the peer certificate expires, the connection <bcp14>SHOULD</bcp14> be closed and re-opened.</t>
            </li>
          </ul>
          <t>RadSec endpoints <bcp14>SHOULD NOT</bcp14> be pre-configured with a set of trusted CAs by the vendor or manufacturer that are enabled by default.
Instead, the endpoints <bcp14>SHOULD</bcp14> start off with an empty CA set as the trust base.
The addition of a CA <bcp14>SHOULD</bcp14> be done only when manually configured by the administrator.
This does not preclude vendors or manufacturers including their set of trusted CAs in their products, but the enabling of those lists should be a conscious decision by an administrator.</t>
          <t>RadSec endpoints <bcp14>MUST</bcp14> follow <xref target="RFC9525"/> when validating peer identities.
Specific details are provided below:</t>
          <ul spacing="normal">
            <li>
              <t>Certificates <bcp14>MAY</bcp14> use wildcards in the identifiers of DNS names and realm names, but only as the complete, left-most label.</t>
            </li>
            <li>
              <t>RadSec clients validate the server's identity to match their local configuration, accepting the identity on the first match:
              </t>
              <ul spacing="normal">
                <li>
                  <t>If the expected RadSec server is associated with a specific NAI realm, e.g. by dynamic discovery <xref target="RFC7585"/> or static configuration, that realm is matched against the presented identifiers of any subjectAltName entry of type otherName whose name form is NAIRealm as defined in <xref section="2.2" sectionFormat="comma" target="RFC7585"/>.</t>
                </li>
                <li>
                  <t>If the expected RadSec server was configured as a hostname, or the hostname was yielded by a dynamic discovery procedure, that name is matched against the presented identifiers of any subjectAltName entry of type dNSName <xref target="RFC5280"/>.  Since a dynamic discovery might by itself not be secured, implementations <bcp14>MAY</bcp14> require the use of DNSSEC <xref target="RFC4033"/> to ensure the authenticity of the DNS result before considering this identity as valid.</t>
                </li>
                <li>
                  <t>If the expected RadSec server was configured as an IP address, the configured IP address is matched against the presented identifier in any subjectAltName entry of type iPAddress <xref target="RFC5280"/>.</t>
                </li>
                <li>
                  <t>The Common Name RDN <bcp14>MUST NOT</bcp14> be used to identify a server.</t>
                </li>
                <li>
                  <t>Clients <bcp14>MAY</bcp14> use other attributes of the certificate to validate the server's identity, but they <bcp14>MUST NOT</bcp14> accept any certificate without validation.</t>
                </li>
                <li>
                  <t>Clients which also act as servers (i.e. proxies) may be susceptible to security issues when a ClientHello is mirrored back to themselves.  More details on this issue are discussed in <xref target="security_considerations"/>.</t>
                </li>
              </ul>
            </li>
            <li>
              <t>RadSec servers validate the certificate of the RadSec 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>
                  <t>For clients configured by DNS name, the configured name is matched against the presented identifiers of any subjectAltName entry of type dNSName <xref target="RFC5280"/>.</t>
                </li>
                <li>
                  <t>For clients configured by their source IP address, the configured IP address is matched against the presented identifiers of any subjectAltName entry of type iPAddress <xref target="RFC5280"/>.</t>
                </li>
                <li>
                  <t>Some servers <bcp14>MAY</bcp14> be configured to accept a client coming from a range or set of IP addresses.  In this case, the server <bcp14>MUST</bcp14> verify that the client IP address of the current connection is a member of the range or set of IP addresses, and the server <bcp14>MUST</bcp14> match the client IP address of the current connection against the presented identifiers of any subjectAltName entry of type iPAddress <xref target="RFC5280"/>.</t>
                </li>
                <li>
                  <t>Implementations <bcp14>MAY</bcp14> consider additional subjectAltName extensions to identify a client.</t>
                </li>
                <li>
                  <t>If configured by the administrator, the identity check <bcp14>MAY</bcp14> be omitted after a successful <xref target="RFC5280"/> trust chain check, e.g. if the client used dynamic lookup there is no configured client identity to verify.  The client's authorization <bcp14>MUST</bcp14> then be validated using a certificate policy OID unless both endpoints are part of a trusted network.</t>
                </li>
              </ul>
            </li>
            <li>
              <t>Implementations <bcp14>MAY</bcp14> allow 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 presented in  subjectAltName entries of type uniformResourceIdentifier <xref target="RFC5280"/> or a set of allowed X.509v3 Certificate Policies).</t>
            </li>
          </ul>
        </section>
        <section anchor="tlspsk">
          <name>Authentication using TLS-PSK (TLS-PSK)</name>
          <t>RadSec server implementations <bcp14>MUST</bcp14> support the use of TLS-PSK.
RadSec client implementations <bcp14>SHOULD</bcp14> support the use of TLS-PSK, but <bcp14>MUST</bcp14> implement either this model or TLS-X.509-PKIX.</t>
          <t>Further guidance on the usage of TLS-PSK in RadSec is given in <xref target="RFC9813"/>.</t>
        </section>
      </section>
      <section anchor="connecting-client-identity">
        <name>Connecting Client Identity</name>
        <t>In RADIUS/UDP, clients are uniquely identified by their IP addresses, as the shared secret is associated with the origin IP address.
With RadSec, the shared secret has a fixed value and multiple distinct RadSec clients can connect from the same IP address.
This requires changing the method of identifying individual clients from RADIUS/UDP.</t>
        <t>Depending on the trust model used, the RadSec client identity is determined as follows.</t>
        <t>With TLS-PSK, a client is uniquely identified by its TLS-PSK identifier.</t>
        <t>With TLS-X.509-PKIX, a client is uniquely identified by the tuple of the serial number of the presented client certificate and the issuer.</t>
        <t>In practice, identification of unique clients is not always necessary and could be based on the subject of the presented certificate or a subjectAltName entry.
While this identification technique could match multiple distinct certificates and therefore distinct clients, it is often sufficient, e.g. for the purpose of applying policies.</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>Additionally, a server <bcp14>MAY</bcp14> restrict individual or groups of clients to certain IP addresses or ranges.
One example of this can be to restrict clients configured by DNS name to only the IP address(es) that this DNS name resolves to.</t>
        <t>A client connecting from outside the allowed range would be rejected, even if the mutual authentication otherwise would have been successful.
To reduce server load and to prevent probing the validity of stolen credentials, the server <bcp14>SHOULD</bcp14> abort the (D)TLS handshake immediately with a TLS alert access_denied(49) after the client transmitted identifying information, i.e. the client certificate or the PSK identifier, and the server recognizes that the client connects from outside the allowed IP range.</t>
      </section>
      <section anchor="tls_session_resumption">
        <name>TLS Session Resumption</name>
        <t>Session resumption lowers the time and effort required to start a (D)TLS connection and increases network responsiveness.
This is especially helpful when using short idle timeouts.</t>
        <t>RadSec clients and servers <bcp14>SHOULD</bcp14> implement session resumption.
Implementations supporting session resumption <bcp14>MUST</bcp14> cache data during the initial full handshake, sufficient to allow authorization decisions to be made during resumption.
For RadSec servers, this should preferably be done using stateless session resumption as specified in <xref target="RFC5077"/>, to reduce the resource usage for cached data.</t>
        <t>When establishing a (D)TLS connection with session resumption, both client and server <bcp14>MUST</bcp14> re-authorize the connection by using the original, cached data.
In particular, this includes the X.509 certificate (when using a PKIX trust model) as well as any policies associated with that identity such as restrictions on source IP address.
The re-authorization <bcp14>MUST</bcp14> give the same result as if a full handshake was performed at the time of resumption.</t>
        <t>If cached data cannot be retrieved securely, resumption <bcp14>MUST NOT</bcp14> be done, by either immediately closing the connection or reverting to a full handshake.
If a connection that used session resumption is closed immediately after being established, the RadSec client <bcp14>MUST NOT</bcp14> re-attempt session resumption but perform a full TLS handshake instead.</t>
      </section>
      <section anchor="radius_packets">
        <name>RADIUS packets</name>
        <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 RadSec specification does not change the client/server architecture of RADIUS.
RadSec clients transmit the same packet types on the connection they initiated as a RADIUS/UDP client would, and RadSec servers transmit the same packet types on the connections the server has accepted as a RADIUS/UDP server would.
As noted in <xref target="portusage"/>, RadSec uses the same port for Authentication and Accounting packets.
As non-exhaustive example, a RadSec client can transmit packets of type Access-Request, Accounting-Request, Status-Server, Disconnect-ACK over the same connection, and a RadSec server can transmit packets of type Access-Accept, Access-Reject, Access-Challenge, Accounting-Response, Disconnect-Request.</t>
        <t>However, special considerations apply for mixing Authentication and Accounting packets over the same connection.
Traditional RADIUS/UDP uses different ports for Authentication and Accounting, where RadSec uses the same connection for all RADIUS packets.
Due to the use of one single port for all packet types, clients might send packets to the server which it cannot process.
Without a response from the server, the client has to wait for the requests to time out before reusing the request id, leading to resource exhaustion of the limited id space.</t>
        <t>A server <bcp14>MAY</bcp14> therefore respond with a Protocol-Error packet as defined in <xref section="4" sectionFormat="comma" target="RFC7930"/>, to alleviate this situation and signal that it was unable to process a packet.
The Error-Cause attribute of this packet <bcp14>SHOULD</bcp14> be set to the value 406 ("Unsupported Extension"), if the server does not support the packet type, or the value 502 ("Request Not Routable (Proxy)"), if the request cannot be routed.
Future specifications may recommend other Error-Cause attribute values for specific scenarios.</t>
        <t>RadSec clients <bcp14>MUST</bcp14> accept Protocol-Error as a valid response and thus stop any retransmission of the original packet over the current connection.
Further details of handling the Protocol-Error reply on the client side are outside of the scope of this document, see <xref target="I-D.dekok-protocol-error"/> for a more detailed description of Protocol-Error.</t>
        <t>Note that sending Protocol-Error in response to unwanted packets replaces the use of CoA-NAK, Disconnect-NAK and Accounting-Response in these situations as specified in <xref target="RFC6614"/>.
See further details in <xref target="unwanted_packet_handling"/> below.</t>
      </section>
      <section anchor="detecting-live-servers">
        <name>Detecting Live Servers</name>
        <t>RadSec implementations <bcp14>MUST</bcp14> utilize the existence of a TCP, TLS or DTLS connection where applicable in addition to the application-layer watchdog defined in <xref section="3.4" sectionFormat="comma" target="RFC3539"/> when determining the liveness of each connection.</t>
        <t>As RADIUS is a "hop-by-hop" protocol, proxies hide information about the topology downstream to the client.
While the client may be able to deduce the operational state of the next-hop (i.e. proxy), it is unable to determine the operational state of any hops beyond it.
This is particularly problematic for topologies that aggregate multiple routes for differing realms behind a proxy where the absence of a reply could lead to a client to incorrectly deduce that the proxy is unavailable when the cause was an unresponsive downstream hop for a single realm.
A similar effect may also be seen on home servers that uses different credential backends for each realm they service.</t>
        <t>To avoid these issues, RadSec clients <bcp14>MUST</bcp14> mark a connection 'DOWN' (as labelled by <xref section="3.4" sectionFormat="comma" target="RFC3539"/>) if one or more of the following conditions are met:</t>
        <ul spacing="normal">
          <li>
            <t>The network stack indicates that the connection is no longer viable; such as the destination being no longer routable or the underlying TCP connection being closed by the peer.</t>
          </li>
          <li>
            <t>The transport layer, D(TLS), provides no usable connection</t>
          </li>
          <li>
            <t>The application-layer watchdog algorithm has marked it 'DOWN'.</t>
          </li>
        </ul>
        <t>When a client opens multiple connections to a server, it is also possible that only one of the connections is unresponsive, e.g. because the server deleted the DTLS connection shared state or the connection was load balanced on the server side to a backend server that is now unresponsive.
Therefore, the liveness check <bcp14>MUST</bcp14> be done on a per-connection basis, and a failure on one connection <bcp14>MUST NOT</bcp14> lead to all connections to this server being marked down.</t>
        <t>RadSec clients <bcp14>MUST</bcp14> implement the Status-Server extension as described in <xref target="RFC5997"/> as the application level watchdog to detect the liveness of the peer in the absence of responses.
RadSec servers <bcp14>MUST</bcp14> be able to answer to Status-Server requests.
Since RADIUS has a limitation of 256 simultaneous "in flight" packets due to the length of the ID field (<xref section="2.4" sectionFormat="comma" target="RFC3539"/>), it is <bcp14>RECOMMENDED</bcp14> that RadSec clients reserve ID zero (0) on each connection for Status-Server packets.
This value was picked arbitrarily, as there is no reason to choose any other value over another for this use.</t>
        <t>For RADIUS/TLS, the endpoints <bcp14>MAY</bcp14> send TCP keepalives as described in <xref section="3.8.4" sectionFormat="comma" target="RFC9293"/>.
For RADIUS/DTLS connections, the endpoints <bcp14>MAY</bcp14> send periodic keepalives as defined in <xref target="RFC6520"/>.
This is 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 anchor="client-timers">
        <name>Client Timers</name>
        <t>RadSec clients may need to reconnect to a server that rejected their connection attempt and retry RADIUS packets which did not get an answer.
The following sections define the client behavior.</t>
        <section anchor="reconnection-attempts">
          <name>Reconnection attempts</name>
          <t>RadSec endpoints establish a (D)TLS connection before transmitting any RADIUS packets.
Therefore, in addition to retransmission of RADIUS packets, RadSec clients also have to deal with connection retries.</t>
          <t>Except in cases where a connection attempt with session resumption was closed by the RadSec server, RadSec clients <bcp14>MUST NOT</bcp14> immediately reconnect to a server after a failed connection attempt.
A connection attempt is treated as failed if it fails at any point until a (D)TLS connection is established successfully.
Typical reconnections <bcp14>MUST</bcp14> have a lower bound for the time in between retries.
The lower bound <bcp14>SHOULD</bcp14> be configurable, but <bcp14>MUST NOT</bcp14> be less than 0.5 seconds.
In cases where the server closes the connection on an attempted TLS session resumption, the client <bcp14>MUST NOT</bcp14> use TLS session resumption for the following connection attempt.</t>
          <t>RadSec clients <bcp14>MUST</bcp14> implement an algorithm for handling the timing of such reconnection attempts that includes an exponential back-off.
Using an algorithm similar to the retransmission algorithm defined in <xref section="2.2.1" sectionFormat="comma" target="RFC5080"/> is <bcp14>RECOMMENDED</bcp14>.
If a different algorithm is used, it <bcp14>SHOULD</bcp14> include a configurable lower and upper bound for the time between retries, a configurable timeout after which the client gives up reconnecting, and a jitter.</t>
          <t>Where the connection to a RadSec server is established only when there is a RADIUS packet to be sent, adding subsequent RADIUS packets to be sent <bcp14>SHOULD NOT</bcp14> trigger an immediate reconnection attempt.
Instead, the algorithm <bcp14>SHOULD</bcp14> continue as it would have without the new packet, but the client <bcp14>MAY</bcp14> reset the timeout for giving up reconnecting.</t>
          <t>Where the connection to a RadSec server is configured to be static and always kept open, the reconnect algorithm <bcp14>SHOULD</bcp14> have an upper limit for the time between retries (e.g. 60 seconds) and not give up trying to reconnect.</t>
        </section>
        <section anchor="client_retransmission_timers">
          <name>RADIUS packet retransmission</name>
          <t>RadSec clients <bcp14>MUST</bcp14> implement retransmission timers for retransmitting RADIUS packets such as the ones defined in <xref section="2.2.1" sectionFormat="comma" target="RFC5080"/>.
Other algorithms than the one defined in <xref target="RFC5080"/> are possible, but any timer implementations <bcp14>MUST</bcp14> have similar properties of including jitter, exponential backoff and a maximum retransmission count (MRC) or maximum retransmission duration (MRD).</t>
          <t>As TLS is a reliable transport, RADIUS/TLS clients can only retry a packet if a connection closes without that packet receiving a reply, therefore the timers <bcp14>MUST NOT</bcp14> result in retransmission of any packet.
A retry is the re-sending of the same content in a newly constructed RADIUS packet, where a retransmission is the re-sending of the exact same packet over the same connection to deal with packet loss on transport.
Instead, the timers, MRC or MRD specifically, can be used to determine that a packet will most likely not receive an answer ever, for example because a packet loss has occurred in a later RADIUS hop or the home server ignores the RADIUS packet.</t>
          <t>See <xref target="duplicates_retransmissions"/> for more discussion on retransmission behavior.</t>
        </section>
      </section>
      <section anchor="dtls-connection-limits-and-timeout">
        <name>(D)TLS connection limits and timeout</name>
        <t>While RADIUS/UDP could be implemented mostly stateless (except for the requests in flight), both TCP/TLS as well as DTLS require state tracking of the underlying (D)TLS connection and are thus subject to potential resource exhaustion.
This is aggravated by the fact that RADIUS client/servers are often statically configured and thus form long-running peer relationships with long-running connections.</t>
        <t>Implementations <bcp14>SHOULD</bcp14> have configurable limits on the number of open connections.
When this maximum is reached and a new (D)TLS connection is needed, the server <bcp14>MUST</bcp14> either drop an old connection in order to open the new one or not create a new connection.</t>
        <t>The close notification of (D)TLS or underlying connections are not fully reliable, or connections might be unnecessarily kept alive by heartbeat or watchdog traffic, occupying resources.
Therefore, both RadSec clients and servers <bcp14>MAY</bcp14> close connections after they have been idle for some time (no traffic except application layer watchdog).
This idle timeout <bcp14>SHOULD</bcp14> be configurable within reasonable limits and it <bcp14>SHOULD</bcp14> be possible to disable idle timeouts completely.</t>
        <t>On the server side, this mostly helps avoid resource exhaustion.
For clients, proactively closing connections can also help mitigate situations where watchdog mechanisms are unavailable or fail to detect non-functional connections.
Some scenarios or RADIUS protocol extensions could also require that a connection be kept open at all times, so clients <bcp14>MAY</bcp14> immediately re-open the connection.
These scenarios could be related to monitoring the infrastructure or to allow the server to proactively send packets to the clients without a preceding request.</t>
        <t>The value of the idle timeout to use depends on the exact deployment and is a trade-of between resource usage on clients/servers and the overhead of opening new connections.
Very short timeouts that are at or below the timeouts used for application layer watchdogs, typically in the range of 30-60s can be considered unreasonable.
In contrast, the upper limit is much more difficult to define but may be in the range of 10 to 15min, depending on the available resources, or never (disabling idle timeout) in scenarios where a permanently open connection is required.</t>
      </section>
      <section anchor="behavior-on-dtls-connection-closure-of-incoming-connections">
        <name>Behavior on (D)TLS connection closure of incoming connections</name>
        <t>If an incoming (D)TLS connection or the underlying transport channel is closed or broken, then there is no way to send a RADIUS response packet to the client.
The RadSec server behavior then depends on the types of packets being processed, and on the role of the server.</t>
        <t>A RadSec server acting as proxy <bcp14>MUST</bcp14> discard all requests associated with the closed connection.
As no response can be sent over the now-closed (D)TLS connection, any further processing of requests is pointless.
A discarded request may have a cached RADIUS response packet (<xref section="2.2.2" sectionFormat="comma" target="RFC5080"/>), in which case the cached response also <bcp14>MUST</bcp14> be discarded.
If there is no cached response packet, then the request might still be processed by the home server.
The RADIUS proxy <bcp14>MUST</bcp14> discard any response to these requests and <bcp14>SHOULD</bcp14> stop processing the requests.</t>
        <t>A home server which receives Access-Request packets <bcp14>MUST</bcp14> behave as defined above for a proxy and discard those requests and stop processing them.
Where a RADIUS packet is part of a multi-packet authentication session (e.g. EAP), the underlying authentication session could be continued, or the underlying authentication session data could be discarded.
The server may be able to receive and process another packet for that session via a different incoming connection.
It is difficult to make more recommendations for managing partially processed authentication sessions, as such recommendations depend strongly on the authentication method being used.
As a result, further behavior is implementation defined and outside the scope of this specification.</t>
        <t>A home server which receives other kinds of packets (for example Accounting-Request, CoA-Request, Disconnect-Request) <bcp14>MAY</bcp14> finish processing outstanding requests, and then discard any response.
This behavior ensures that the desired action is still taken, even if the home server cannot inform the client of the result of that action.</t>
      </section>
      <section anchor="malformed-packets-and-unknown-clients">
        <name>Malformed Packets and Unknown clients</name>
        <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, since a malformed RADIUS packet could impact the decoding of succeeding packets.</t>
        <t>With DTLS, the "next" packet does not depend on proper decoding of the previous packet, since the RADIUS packets are sent in independent DTLS records.
However, since both TLS and DTLS provide integrity protection and ensure that the packet was sent by the peer, a protocol violation at this stage implies that the peer is misbehaving.</t>
        <t>Implementations of this specification <bcp14>SHOULD</bcp14> treat 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, in the case of RADIUS/TLS, the underlying TCP connection <bcp14>MUST</bcp14> be closed if any of the following circumstances are seen:</t>
        <ul spacing="normal">
          <li>
            <t>Connection from an unknown client</t>
          </li>
          <li>
            <t>Packet where the RADIUS <tt>Length</tt> field is less than the minimum RADIUS packet length</t>
          </li>
          <li>
            <t>Packet where the RADIUS <tt>Length</tt> field is more than the maximum RADIUS packet length</t>
          </li>
          <li>
            <t>Packet where an Attribute <tt>Length</tt> field has the value of zero or one (0 or 1)</t>
          </li>
          <li>
            <t>Packet where the attributes do not exactly fill the packet</t>
          </li>
          <li>
            <t>Packet where the Request Authenticator fails validation (where validation is required)</t>
          </li>
          <li>
            <t>Packet where the Response Authenticator fails validation (where validation is required)</t>
          </li>
          <li>
            <t>Packet where the Message-Authenticator attribute fails validation (when it occurs in a packet)</t>
          </li>
        </ul>
        <t>After applying the above rules, there are still situations where the previous specifications allow a packet to be "silently discarded" upon receipt, but in which a connection <bcp14>MAY</bcp14> remain open:</t>
        <ul spacing="normal">
          <li>
            <t>Packet with an invalid code field (see <xref target="radius_packets"/> for details)</t>
          </li>
          <li>
            <t>Response packets that do not match any outstanding request</t>
          </li>
          <li>
            <t>A server lacking the resources to process a request</t>
          </li>
        </ul>
        <t>These requirements reduce the possibility for a misbehaving client or server to wreak havoc on the network.</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="sending-and-receiving-radius-traffic">
        <name>Sending and receiving RADIUS traffic</name>
        <t>The TLS layer of RADIUS/TLS provides a stream-based communication between the two peers instead of the traditional packet-based communication as with RADIUS/UDP.
As a result, the way RADIUS packets are sent and received has to change.</t>
        <t>Instead of relying on packet borders of the underlying transport protocol to indicate the start of a new packet, the RADIUS/TLS endpoints have to keep track of the packet borders by examining the header of the received RADIUS packets.</t>
        <t>After the TLS connection is established, a RADIUS/TLS endpoint <bcp14>MUST NOT</bcp14> send any data except for RADIUS packets over the connection.
Since the RADIUS packet header contains a <tt>Length</tt> field, the end of the RADIUS packet can be deduced.
The next RADIUS packet <bcp14>MUST</bcp14> be sent directly after the RADIUS packet before, that is, the endpoints <bcp14>MUST NOT</bcp14> add padding before, between, or after RADIUS packets.</t>
        <t>When receiving RADIUS packets, a RADIUS/TLS endpoint <bcp14>MUST</bcp14> determine the borders of RADIUS packet based on the <tt>Length</tt> field in the RADIUS header.
Note that, due to the stream architecture of TLS, it is possible that a RADIUS packet is first received only partially, and the remainder of the packet is contained in following fragments.
Therefore, RADIUS/TLS endpoints <bcp14>MUST NOT</bcp14> assume that the packet length is invalid solely based on the currently available bytes in the stream.</t>
        <t>As an implementation note, it is <bcp14>RECOMMENDED</bcp14> that RADIUS/TLS implementations do not pass a single RADIUS packet to the TLS library in multiple fragments and instead assemble the RADIUS packet and pass it as one unit, in order to avoid unnecessary overhead when sending or receiving (especially if every new write generates a new TLS record) and wait times on the other endpoint.</t>
      </section>
      <section anchor="duplicates_retransmissions">
        <name>Duplicates and Retransmissions</name>
        <t>As TCP is a reliable transport, RADIUS/TLS endpoints <bcp14>MUST NOT</bcp14> retransmit RADIUS packets over a given TCP connection.
However, if the TLS connection or TCP connection is closed or broken, retries 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 connection, 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>Despite the above discussion, RADIUS/TLS 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 clients <bcp14>MUST NOT</bcp14> retry sending a packet by altering the protocol (i.e. switching from TLS to DTLS or vice versa) of the configured server on its own.
This requirement does not, however, forbid the practice of putting servers with the same IP address and port but different protocols into a failover or load-balancing pool.
In that situation, RADIUS requests <bcp14>MAY</bcp14> be retried with another server that is known to be part of the same pool.</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_handling">
        <name>RADIUS packet handling</name>
        <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 UDP packet to be larger than the Path MTU (PMTU), which causes the packet to be fragmented.
Implementers and operators should be aware of the possibility of fragmented UDP packets.
For details about issues with fragmentation see <xref target="RFC8900"/>.</t>
        <t>RADIUS/DTLS endpoints <bcp14>MUST</bcp14> send exactly one RADIUS packet per DTLS record.
This ensures that the RADIUS packets do not get fragmented at a point where a re-ordering of UDP packets would result in decoding failures.
The DTLS specification mandates that a DTLS record must not span multiple UDP datagrams.
We note that a single UDP datagram may, however, contain multiple DTLS records.
RADIUS/DTLS endpoints <bcp14>MAY</bcp14> use this behavior to send multiple RADIUS packets in one UDP packet.</t>
        <t>For the receiving RADIUS/DTLS endpoint, the length checks defined in <xref section="3" sectionFormat="comma" target="RFC2865"/> still apply.
That is, a receiving RADIUS/DTLS endpoint <bcp14>MUST</bcp14> perform all the length checks, but <bcp14>MUST</bcp14> use the length of the decrypted payload of the DTLS record instead of the UDP packet length.
Exactly one RADIUS packet is encapsulated in a DTLS record, and any data outside the range of the RADIUS length field within the decrypted payload of a single DTLS record <bcp14>MUST</bcp14> be treated as padding, as it would be with a RADIUS/UDP packet, and be ignored.
For UDP datagrams containing multiple DTLS records, each DTLS record <bcp14>MUST</bcp14> be parsed individually.</t>
        <t>If a RADIUS packet should be re-transmitted, either as retransmission due to a missing response by the client or as retransmission of a cached response by the server, the RADIUS/DTLS endpoints <bcp14>MUST</bcp14> re-process the RADIUS packet through DTLS.
That is, for the purpose of retransmissions, RADIUS/DTLS endpoints cache the RADIUS packet, as a RADIUS/UDP endpoint would, and not the DTLS record that contains the RADIUS packet.</t>
      </section>
      <section anchor="server-behavior">
        <name>Server behavior</name>
        <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 from 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>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.</t>
      </section>
    </section>
    <section anchor="implementation-considerations">
      <name>Implementation Considerations</name>
      <t>This section discusses topics related to the internal behavior of RadSec implemneations that should be considered by RadSec implementers.</t>
      <section anchor="radius-implementation-changes">
        <name>RADIUS Implementation Changes</name>
        <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 remain unchanged when using RadSec:</t>
        <ul spacing="normal">
          <li>
            <t>Packet format</t>
          </li>
          <li>
            <t>Permitted codes</t>
          </li>
          <li>
            <t>Request Authenticator calculation</t>
          </li>
          <li>
            <t>Response Authenticator calculation</t>
          </li>
          <li>
            <t>Minimum packet length</t>
          </li>
          <li>
            <t>Maximum packet length</t>
          </li>
          <li>
            <t>Attribute format</t>
          </li>
          <li>
            <t>Vendor-Specific Attribute (VSA) format</t>
          </li>
          <li>
            <t>Permitted data types</t>
          </li>
          <li>
            <t>Calculation of dynamic attributes such as CHAP-Challenge, or Message-Authenticator</t>
          </li>
          <li>
            <t>Calculation of "encrypted" attributes such as Tunnel-Password.</t>
          </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 to the establishment of the (D)TLS connection.
The fact that RADIUS remain largely unchanged ensures the simplest possible implementation and widest interoperability of the specification.
This includes the usage of the outdated security mechanisms in RADIUS that are based on shared secrets and MD5.
This is not considered a security issue, since integrity and confidentiality are provided by the (D)TLS layer.  See <xref target="security_considerations"/> of this document or <xref target="RFC9765"/> for more details.</t>
        <t>We note that for RADIUS/DTLS the DTLS encapsulation of RADIUS means that UDP datagrams include an additional overhead due to DTLS.
This is discussed further in <xref target="dtls_spec"/>.</t>
        <section anchor="unwanted_packet_handling">
          <name>Differences from RFC 6614 unwanted RADIUS packet handling</name>
          <t>The previous specification of RADIUS/TLS in <xref target="RFC6614"/> recommends to send a reply that depends on the request type:</t>
          <ul spacing="normal">
            <li>
              <t>For unwanted CoA-Requests or Disconnect-Requests, the servers should respond with a CoA-NAK or Disconnect-NAK, respectively.</t>
            </li>
            <li>
              <t>For unwanted Accounting-Requests, the servers should respond with an Accounting-Response containing an Error-Cause attribute with the value 406 ("Unsupported Extension").</t>
            </li>
          </ul>
          <t><xref target="RFC6614"/> also recommends that a RADIUS/TLS client observing this Accounting-Response should stop sending Accounting-Request packets to this server.
This behavior, however, could lead to problems, especially in proxy fabrics, since the RADIUS client cannot determine whether the reply came from the correct server or a RADIUS proxy along the way.</t>
          <t>Compared to the <xref target="RFC6614"/> recommended replies (CoA-NAK, Disconnect-NAK and Accounting-Response), the Protocol-Error packet is explicitly only applicable to one RADIUS hop and must not be forwarded, which gives the RADIUS client the opportunity to re-route the unwanted packet to a different RADIUS server.
This also is backwards compatible with existing implementations, since RADIUS clients must ignore any incoming RADIUS packets with an unknown packet type.
Therefore these <xref target="RFC6614"/> recommended reply message types are now replaced with the Protocol-Error packet type.</t>
        </section>
      </section>
      <section anchor="forwarding-radius-packets-between-udp-and-tcp-based-transports">
        <name>Forwarding RADIUS packets between UDP and TCP based transports</name>
        <t>When a RADIUS proxy forwards packets, it is possible that the incoming and outgoing links have substantially different properties.
This issue is most notable in UDP to TCP proxying, but there are still possible issues even when the same transport is used on both incoming and outgoing links.
<xref section="1.2" sectionFormat="comma" target="RFC2866"/> noted this issue many years ago:</t>
        <artwork><![CDATA[
A forwarding server may either perform its forwarding function in a
pass through manner, where it sends retransmissions on as soon as it
gets them, or it may take responsibility for retransmissions, for
example in cases where the network link between forwarding and remote
server has very different characteristics than the link between NAS
and forwarding server.
]]></artwork>
        <t>These differences are most notable in throughput, and in differing retransmission requirements.</t>
        <section anchor="throughput-differences-lead-to-network-collapse">
          <name>Throughput Differences lead to Network Collapse</name>
          <t>An incoming link to the proxy may have substantially different throughput than the outgoing link.
Perhaps the network characteristics on the two links are different, or perhaps the home server is slow.
In both situations, the proxy may be left with a difficult choice about what to do with the incoming packets, if the rate of incoming packets exceeds throughput on the outgoing link.</t>
          <t>As RADIUS does not provide for connection-based congestion control, there is no way for the proxy to signal on the incoming link that the client should slow its rate of sending packets.
As a result, the proxy must simply accept the packets, buffer them, and hope that they can be be sent outbound before the client gives up on the request.</t>
        </section>
        <section anchor="differing-retransmission-requirements">
          <name>Differing Retransmission Requirements</name>
          <t>Due to the lossy nature of UDP, RADIUS/UDP and RADIUS/DTLS transports are required to perform retransmissions as per <xref section="2.2.1" sectionFormat="comma" target="RFC5080"/>.
In contrast, RADIUS/TCP and RADIUS/TLS transports are reliable, and do not perform retransmissions.
These requirements lead to an issue for proxies when they send packets across protocol boundaries with differing retransmission behaviors.</t>
          <t>When a proxy receives packets on an unreliable transport, and forwards them across a reliable transport, it receives retransmissions from the client, but <bcp14>MUST NOT</bcp14> forward those retransmissions across the reliable transport.
The proxy <bcp14>MAY</bcp14> log information about these retransmissions, but it does not perform any other action.</t>
          <t>When a proxy receives RADIUS packets on a reliable transport, and forwards them across an unreliable transport, the proxy <bcp14>MUST</bcp14> perform retransmissions across the unreliable transport as per <xref section="2.2.1" sectionFormat="comma" target="RFC5080"/>.
That is, the proxy takes responsibility for the retransmissions.
Implementations <bcp14>MUST</bcp14> take care to not completely decouple the two transports in this situation.
See <xref target="radius_packet_handling"/> for details on retransmitting RADIUS packets over DTLS.</t>
          <t>That is, if an incoming connection on a reliable transport is closed, there may be pending retransmissions on an outgoing unreliable transport.
Those retransmissions <bcp14>MUST</bcp14> be stopped, as there is nowhere to send the reply.
Similarly, if the proxy sees that the client has given up on a request (such as by re-using an Identifier before the proxy has sent a response), the proxy <bcp14>MUST</bcp14> stop all retransmissions of the old request and discard it.</t>
          <t>The above requirements are a logical extension of the common practice where a client stops retransmission of a packet once it decides to "give up" on the packet and discard it.
Whether this discard process is due to internal client decisions, or interaction with incoming connections is irrelevant.
When the client cannot do anything with responses to a request, it <bcp14>MUST</bcp14> stop retransmitting that request.</t>
        </section>
        <section anchor="acct-delay-time-and-event-timestamp">
          <name>Acct-Delay-Time and Event-Timestamp</name>
          <t>In order to avoid congestive collapse, it is <bcp14>RECOMMENDED</bcp14> that RadSec clients which originate Accounting-Request packets (i.e. not proxies) do not include Acct-Delay-Time (<xref section="5.2" sectionFormat="comma" target="RFC2866"/>) in those packets.
Instead, those clients <bcp14>SHOULD</bcp14> include Event-Timestamp (<xref section="5.3" sectionFormat="comma" target="RFC2869"/>), which is the time at which the original event occurred.
The Event-Timestamp <bcp14>MUST NOT</bcp14> be updated on any retransmissions, as that would both negate the meaning of Event-Timestamp, and create the same problem as with Acct-Delay-Time.</t>
          <t>Not using Acct-Delay-Time allows for RADIUS packets to be retransmitted without change.
In contrast, updating Acct-Delay-Time would require that the client create and send a new packet without signaling the server that the previous packet is no longer considered active.
This process can occur repeatedly, which leads to multiple different packets containing effectively the same information (except for Acct-Delay-Time).
This duplication contributes to congestive collapse of the network, if a RADIUS proxy performs retransmission to the next hop for each of those packets independently.</t>
          <t>Additionally, the different properties of the RADIUS/TLS transport as well as cross-protocol proxying change the assumption of a negligible transmission time of the RADIUS packet, on which the value of Acct-Delay-Time is based.
While a single UDP packet may have a negligible transmission time, application data sent via TLS could arrive at the sender with a significant delay due to the underlying TCP retransmission mechanism.
If the packet is proxied from RADIUS/TLS to RADIUS/DTLS or RADIUS/UDP, the proxy has to retransmit on its own without changing the value of Acct-Delay-Time, which again introduces non-negligible transmission delays.</t>
          <t>Using Event-Timestamp instead of Acct-Delay-Time also removes an ambiguity around retransmitted packets for RADIUS/TLS.
Since there is no change to the packet contents when a retransmission timer expires, no new packet ID is allocated, and therefore no new packet is created.</t>
          <t>Where RadSec clients do include Acct-Delay-Time in RADIUS packets, the client <bcp14>SHOULD</bcp14> use timers to detect packet loss, as described in <xref target="client_retransmission_timers"/>.
RadSec clients <bcp14>SHOULD NOT</bcp14> update the Acct-Delay-Time, and therefore create a new RADIUS packet with the same information, until the timer has determined that the original packet has in fact been completely lost.
This ensures that there is no congestive collapse, since a new packet is only created if following hops have also given up on retransmission, while keeping the functionality of Acct-Delay-Time to determine how long ago the event occurred.
It only reduces the granularity of Acct-Delay-Time to the retransmission timeout, compared to the different approach of updating the Acct-Delay-Time on each retransmission.</t>
        </section>
      </section>
      <section anchor="pkix-trust-models">
        <name>PKIX Trust Models</name>
        <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 information from the TLS connection and the X.509 client certificate should be exposed:</t>
        <ul spacing="normal">
          <li>
            <t>Originating IP address</t>
          </li>
          <li>
            <t>Certificate Fingerprint</t>
          </li>
          <li>
            <t>Issuer</t>
          </li>
          <li>
            <t>Subject</t>
          </li>
          <li>
            <t>all X.509v3 Extended Key Usage</t>
          </li>
          <li>
            <t>all X.509v3 Subject Alternative Name</t>
          </li>
          <li>
            <t>all X.509v3 Certificate Policy</t>
          </li>
        </ul>
        <t>In TLS-PSK operation at least the following information from the TLS connection should be exposed:</t>
        <ul spacing="normal">
          <li>
            <t>Originating IP address</t>
          </li>
          <li>
            <t>TLS-PSK Identifier</t>
          </li>
        </ul>
      </section>
      <section anchor="tcp-applications-are-not-udp-applications">
        <name>TCP Applications Are Not UDP Applications</name>
        <t>Implementers should be aware that programming a robust TCP-based application can be very different from programming a robust UDP-based application.</t>
        <t>Additionally, differences in the transport like head-of-line blocking and the possibility of increased transmission times should be considered.</t>
        <t>When using RADIUS/UDP or RADIUS/DTLS, there is no ordering of packets.
If a packet sent by a endpoint is lost, that loss has no effect on subsequent packets sent by that endpoint.</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 endpoints 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.
Additionally, due to the architecture of TCP as reliable stream transport, TCP retransmissions can occur significantly later, even multiple seconds, after the original data was passed to the network stack by the application.
In contrast, RADIUS/UDP packets are usually received either quickly, or not at all, in which case the RADIUS/UDP stack triggers a retransmission of the packet on the application layer.</t>
      </section>
      <section anchor="session-management">
        <name>Session Management</name>
        <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 <bcp14>MAY</bcp14> choose to use the method described here, or another, equivalent method.
When implementations do not use the 5-tuple described below, note that IP address based policies <bcp14>MUST</bcp14> still be applied for all incoming packets, similar to the mandated behavior for TLS Session Resumption in <xref target="tls_session_resumption"/>.</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>
        <section anchor="server-session-management">
          <name>Server Session Management</name>
          <t>A RADIUS/DTLS server using the 5-tuple method <bcp14>MUST</bcp14> track ongoing DTLS sessions for each client, based on the following 5-tuple:</t>
          <ul spacing="normal">
            <li>
              <t>source IP address</t>
            </li>
            <li>
              <t>source port</t>
            </li>
            <li>
              <t>destination IP address</t>
            </li>
            <li>
              <t>destination port</t>
            </li>
            <li>
              <t>protocol (fixed to <tt>UDP</tt>)</t>
            </li>
          </ul>
          <t>Note that this 5-tuple is independent of IP address version (IPv4 or IPv6).</t>
          <t>Each 5-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>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>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 5-tuple and entry) <bcp14>MUST</bcp14> be deleted when the DTLS session is closed for any reason.
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>Since UDP is stateless, the potential exists for the client to initiate a new DTLS session using a particular 5-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 5-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 5-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 5-tuple.
Non-compliant, or unexpected packets will be ignored by the DTLS layer.</t>
          </section>
        </section>
        <section anchor="client-session-management">
          <name>Client Session Management</name>
          <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>MAY</bcp14> use PMTU discovery <xref target="RFC6520"/> to determine the PMTU between the client and server, prior to sending any RADIUS traffic.
While a RADIUS client has limited to no possibilities to reduce the size of an outgoing RADIUS packet without unwanted side effects, it gives the RADIUS client the possibility to determine whether or not the RADIUS packet can even be sent over the connection.
IP fragmentation may not be functioning, so by determining the PMTU, the RADIUS client can preemptively select a different RADIUS server to send the RADIUS packet to.
Further discussion of this problem is deemed outside of the scope of this document.</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 RadSec.</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 RadSec are listed below.</t>
      <section anchor="radius-proxies">
        <name>RADIUS Proxies</name>
        <t>RadSec provides authentication, integrity and confidentiality protection for RADIUS traffic for a single hop between two RADIUS endpoints.
In the presence of proxies, 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 user credentials 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 RadSec from one endpoint, to forward this packet to a different endpoint 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 RadSec as transport.</t>
        <t>One possible way to reduce the attack surface is to reduce the number of proxies in the overall proxy chain.
For this, dynamic discovery as defined in <xref target="RFC7585"/> can be used.</t>
        <section anchor="loopback-attack-on-endpoints-acting-as-server-and-client">
          <name>Loopback-Attack on endpoints acting as Server and Client</name>
          <t>RadSec endpoints that are configured to act both as client and server, typically in a proxy configuration, may be vulnerable to attacks where an attacker mirrors back all traffic to the endpoint.
Therefore, endpoints that are capable of acting as both client and server <bcp14>SHOULD</bcp14> implement mitigations to avoid accepting connections from itself.
One example of a potentially vulnerable configuration is a setup where the RadSec server is accepting incoming connections from any address (or a wide address range).
Since the server may not be able to verify the certificate subject or subject alternate names, the trust is based on the certificate issuer or certificate OID.
However, in this case, the client certificate which the RadSec endpoint uses for outgoing connections on the client side might also satisfy the trust check of the server side.
Other scenarios where the identification of an outgoing connection satisfies the trust check of an incoming one are possible, but are not enumerated here.</t>
          <t>Either through misconfiguration, erroneous or spoofed dynamic discovery, or an attacker rerouting TLS packets, a proxy might thus open a connection to itself, creating a loop.
Such attacks have been described for TLS-PSK <xref target="RFC9257"/>, dubbed a selfie-attack, but are much broader in the RadSec case.
In particular, as described above, they also apply to certificate based authentication.</t>
          <t>Implementations <bcp14>SHOULD</bcp14> therefore detect connections from itself, and reject them.
There is currently no detection method that works universally for all use-cases and TLS implementations.
Some possible detection methods are listed below:</t>
          <ul spacing="normal">
            <li>
              <t>Comparing client or server random used in the TLS handshake.  While this is a very effective method, it requires access to values which are normally private to the TLS implementation.</t>
            </li>
            <li>
              <t>Sending a custom random number in an extension in the TLS client hello.  Again, this is very effective, but requires extension of the TLS implementation.</t>
            </li>
            <li>
              <t>Comparing the incoming server certificate to all server certificates configured on the proxy.  While in some scenarios this can be a valid detection method, using the same server certificate on multiple servers would keep these servers from connecting with each other, even when this connection is legitimate.</t>
            </li>
          </ul>
          <t>The application layer RADIUS protocol also offers some loop detection, e.g. using a Proxy-State attribute.
However, these methods are not capable of reliably detecting and suppressing these attacks in every case and are outside the scope of this document.</t>
        </section>
      </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 implementations offer cipher suites with NULL encryption, to allow inspection of the plaintext with packet sniffing tools.
Since with RadSec 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 party eavesdropping on the conversation.
Following the recommendations in <xref section="4.1" sectionFormat="comma" target="RFC9325"/>, this specification forbids the usage of NULL encryption cipher suites for RadSec.</t>
        <t>For cases where administrators need access to the decrypted RadSec traffic, we suggest using different approaches, like exporting the key material from TLS libraries according to <xref target="I-D.ietf-tls-keylogfile"/>.</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 bogus RADIUS packet would fail the cryptographic checks and the server would silently discard the bogus packet.
For RadSec, 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 RadSec server <bcp14>SHOULD</bcp14> have configurable limits on new connection attempts.</t>
        <t>Both TLS and DTLS need to store connection information for each open (D)TLS connection.
Especially with DTLS, a bogus or misbehaving client could open an excessive number of DTLS connections.
This connection tracking could lead to a resource exhaustion on the server side, triggering a Denial-of-Service.
Therefore, RadSec servers <bcp14>SHOULD</bcp14> have a configurable limit of the number of connections they can track.
When the total number of connections tracked is going to exceed the configured limit, servers <bcp14>MAY</bcp14> free up resources by closing the connection that has been idle for the longest time.
Doing so may free up idle resources that then allow the server to accept a new connection.</t>
        <t>RadSec servers <bcp14>MUST</bcp14> limit the number of partially open (D)TLS connections and <bcp14>SHOULD</bcp14> expose this limit as configurable option to the administrator.</t>
        <t>To prevent resource exhaustion by partially opening a large number of (D)TLS connections, RadSec servers <bcp14>SHOULD</bcp14> have a timeout on partially open (D)TLS connections.
We recommend a limit of a few seconds, implementations <bcp14>SHOULD</bcp14> expose this timeout as configurable option to the administrator.
If a (D)TLS connection is not established within this timeframe, it is likely that this is a bogus connection.
In contrast, an established connection might not send packets for longer periods of time, but since the endpoints are mutually authenticated this does not pose a problem other than the problems mentioned before.</t>
        <t>A different means of prevention is IP filtering.
If the IP range that the server expects clients to connect from is restricted, then the server can simply reject or drop all connection attempts from outside those ranges.
If every RadSec client is configured with an IP range, then the server does not even have to perform a partial TLS handshake if the connection attempt comes from outside every allowed range, but can instead immediately drop the connection.
To perform this lookup efficiently, RadSec servers <bcp14>SHOULD</bcp14> keep a list of the accumulated permitted IP address ranges, individually for each transport.</t>
      </section>
      <section anchor="tls-connection-lifetime-and-key-rotation">
        <name>TLS Connection Lifetime and Key Rotation</name>
        <t>The RadSec TLS connections may have a long lifetime.
Especially when dealing with high volume of RADIUS traffic, the encryption keys have to be rotated regularly, depending on both the amount of data which was transferred, and on the encryption method.
See <xref section="5.5" sectionFormat="comma" target="RFC8446"/> and <xref target="I-D.irtf-cfrg-aead-limits"/> for more information.</t>
        <t>Implementers <bcp14>SHOULD</bcp14> be aware of this issue and determine whether the underlying TLS library automatically rotates encryption keys or not.
If the underlying TLS library does not perform the rotation automatically, RadSec implementations <bcp14>SHOULD</bcp14> perform this rotation manually, either by a key update of the existing TLS connection or by closing the TLS connection and opening a new one.</t>
      </section>
      <section anchor="connection-closing">
        <name>Connection Closing</name>
        <t>If malformed RADIUS packets are received or the packets fail the authenticator checks, this specification requires that the (D)TLS connection be closed.
The reason is that the connection is expected to be used for transport of RADIUS packets only.</t>
        <t>Any non-RADIUS traffic on that connection means the other party is misbehaving and is potentially a 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 connection to close.
Therefore, in other situations, the connection <bcp14>SHOULD</bcp14> 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 RadSec connection and can be forwarded.
This ensures forward compatibility with future RADIUS extensions.</t>
      </section>
      <section anchor="migrating-from-radiusudp-to-radsec">
        <name>Migrating from RADIUS/UDP to RadSec</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 RadSec.
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 RadSec 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 RadSec, 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, as defined in <xref section="4.1.3" sectionFormat="comma" target="RFC9813"/>, any shared secret used with RADIUS/UDP before <bcp14>MUST NOT</bcp14> be used with RadSec and (D)TLS-PSK.
We also strongly recommend implementers to not reuse the configuration option for the RADIUS/UDP shared secret in the existing user interfaces for the (D)TLS-PSK too.
Instead, these should be separate input fields in order to prevent accidental reuse of an existing shared secret when switching to (D)TLS-PSK.</t>
        <t>When upgrading from RADIUS/UDP to RadSec, 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 RadSec, an attacker could disrupt the RadSec communication and force a downgrade to RADIUS/UDP.
To prevent this it is <bcp14>RECOMMENDED</bcp14> that, when the migration to RadSec is completed, the RADIUS/UDP configuration is removed.
RadSec clients <bcp14>MUST NOT</bcp14> fall back to RADIUS/UDP if the RadSec communication fails, unless explicitly configured this way.</t>
        <t>Special considerations apply for clients behind a NAT, where some clients use RADIUS/UDP and others use RadSec.
A RADIUS server might not be able to detect if a RadSec client falls back to RADIUS/UDP, they will appear with the same source IP address to the server and use the same shared secret.
It is therefore <bcp14>RECOMMENDED</bcp14> to not use RADIUS/UDP and RadSec clients behind a NAT at the same time.</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 RadSec can remain unaware of (D)TLS.
(D)TLS connections 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 RadSec to others.</t>
        <t>Delegation of responsibilities and separation of tasks are important security principles.
By moving all RadSec 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.
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 hardware, implementers 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 than 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, RadSec servers must implement both certificates with PKIX trust model and TLS-PSK as means of mutual authentication.
RadSec 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 anchor="design_changes_in_tls">
        <name>Changes in application of TLS</name>
        <t>The original specification of RADIUS/TLS does not forbid the usage of compression in the TLS layer.
As per <xref section="3.3" sectionFormat="comma" target="RFC9325"/>, compression should not be used due to the possibility of compression-related attacks, unless the application protocol is proven to be not open to such attacks.
Since some attributes of the RADIUS packets within the TLS tunnel contain values that an attacker could at least partially choose (i.e. username, MAC address or EAP message), there is a possibility for compression-related attacks, that could potentially reveal data in other RADIUS attributes through length of the TLS record.
To circumvent this attack, this specification forbids the usage of TLS compression.</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>
      <ul spacing="normal">
        <li>
          <t>Service Name: radsec</t>
        </li>
        <li>
          <t>Port Number: 2083</t>
        </li>
        <li>
          <t>Transport Protocol: tcp/udp</t>
        </li>
        <li>
          <t>Description: Secure RADIUS Service</t>
        </li>
        <li>
          <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.
[RFCXXXX] updates RFC 6614 (RADIUS/TLS) and RFC 7360 (RADIUS/DTLS).</t>
        </li>
        <li>
          <t>Reference: [RFCXXXX] (this document)</t>
        </li>
      </ul>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC8446">
          <front>
            <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <date month="August" year="2018"/>
            <abstract>
              <t>This document specifies version 1.3 of the Transport Layer Security (TLS) protocol. TLS allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t>
              <t>This document updates RFCs 5705 and 6066, and obsoletes RFCs 5077, 5246, and 6961. This document also specifies new requirements for TLS 1.2 implementations.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8446"/>
          <seriesInfo name="DOI" value="10.17487/RFC8446"/>
        </reference>
        <reference anchor="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>
        <referencegroup anchor="STD7" target="https://www.rfc-editor.org/info/std7">
          <reference anchor="RFC9293" target="https://www.rfc-editor.org/info/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>
        </referencegroup>
        <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="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>
        <referencegroup anchor="STD6" target="https://www.rfc-editor.org/info/std6">
          <reference anchor="RFC0768" target="https://www.rfc-editor.org/info/rfc768">
            <front>
              <title>User Datagram Protocol</title>
              <author fullname="J. Postel" initials="J." surname="Postel"/>
              <date month="August" year="1980"/>
            </front>
            <seriesInfo name="STD" value="6"/>
            <seriesInfo name="RFC" value="768"/>
            <seriesInfo name="DOI" value="10.17487/RFC0768"/>
          </reference>
        </referencegroup>
        <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>
        <referencegroup anchor="BCP195" target="https://www.rfc-editor.org/info/bcp195">
          <reference anchor="RFC8996" target="https://www.rfc-editor.org/info/rfc8996">
            <front>
              <title>Deprecating TLS 1.0 and TLS 1.1</title>
              <author fullname="K. Moriarty" initials="K." surname="Moriarty"/>
              <author fullname="S. Farrell" initials="S." surname="Farrell"/>
              <date month="March" year="2021"/>
              <abstract>
                <t>This document formally deprecates Transport Layer Security (TLS) versions 1.0 (RFC 2246) and 1.1 (RFC 4346). Accordingly, those documents have been moved to Historic status. These versions lack support for current and recommended cryptographic algorithms and mechanisms, and various government and industry profiles of applications using TLS now mandate avoiding these old TLS versions. TLS version 1.2 became the recommended version for IETF protocols in 2008 (subsequently being obsoleted by TLS version 1.3 in 2018), providing sufficient time to transition away from older versions. Removing support for older versions from implementations reduces the attack surface, reduces opportunity for misconfiguration, and streamlines library and product maintenance.</t>
                <t>This document also deprecates Datagram TLS (DTLS) version 1.0 (RFC 4347) but not DTLS version 1.2, and there is no DTLS version 1.1.</t>
                <t>This document updates many RFCs that normatively refer to TLS version 1.0 or TLS version 1.1, as described herein. This document also updates the best practices for TLS usage in RFC 7525; hence, it is part of BCP 195.</t>
              </abstract>
            </front>
            <seriesInfo name="BCP" value="195"/>
            <seriesInfo name="RFC" value="8996"/>
            <seriesInfo name="DOI" value="10.17487/RFC8996"/>
          </reference>
          <reference anchor="RFC9325" target="https://www.rfc-editor.org/info/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>
        </referencegroup>
        <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="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="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="RFC9525">
          <front>
            <title>Service Identity in TLS</title>
            <author fullname="P. Saint-Andre" initials="P." surname="Saint-Andre"/>
            <author fullname="R. Salz" initials="R." surname="Salz"/>
            <date month="November" year="2023"/>
            <abstract>
              <t>Many application technologies enable secure communication between two entities by means of Transport Layer Security (TLS) with Internet Public Key Infrastructure using X.509 (PKIX) certificates. This document specifies procedures for representing and verifying the identity of application services in such interactions.</t>
              <t>This document obsoletes RFC 6125.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9525"/>
          <seriesInfo name="DOI" value="10.17487/RFC9525"/>
        </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="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="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="RFC7930">
          <front>
            <title>Larger Packets for RADIUS over TCP</title>
            <author fullname="S. Hartman" initials="S." surname="Hartman"/>
            <date month="August" year="2016"/>
            <abstract>
              <t>The RADIUS-over-TLS experiment described in RFC 6614 has opened RADIUS to new use cases where the 4096-octet maximum size limit of a RADIUS packet proves problematic. This specification extends the RADIUS-over-TCP experiment (RFC 6613) to permit larger RADIUS packets. This specification compliments other ongoing work to permit fragmentation of RADIUS authorization information. This document registers a new RADIUS code, an action that required IESG approval.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7930"/>
          <seriesInfo name="DOI" value="10.17487/RFC7930"/>
        </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="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>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC1321">
          <front>
            <title>The MD5 Message-Digest Algorithm</title>
            <author fullname="R. Rivest" initials="R." surname="Rivest"/>
            <date month="April" year="1992"/>
            <abstract>
              <t>This document describes the MD5 message-digest algorithm. The algorithm takes as input a message of arbitrary length and produces as output a 128-bit "fingerprint" or "message digest" of the input. This memo provides information for the Internet community. It does not specify an Internet standard.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="1321"/>
          <seriesInfo name="DOI" value="10.17487/RFC1321"/>
        </reference>
        <reference anchor="RFC9765">
          <front>
            <title>RADIUS/1.1: Leveraging Application-Layer Protocol Negotiation (ALPN) to Remove MD5</title>
            <author fullname="A. DeKok" initials="A." surname="DeKok"/>
            <date month="April" year="2025"/>
            <abstract>
              <t>This document defines Application-Layer Protocol Negotiation (ALPN) extensions for use with RADIUS/TLS and RADIUS/DTLS. These extensions permit the negotiation of an application protocol variant of RADIUS called "RADIUS/1.1". 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 authentication and attribute obfuscation methods are removed.</t>
              <t>This document updates RFCs 2865, 2866, 5176, 6613, 6614, and 7360.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9765"/>
          <seriesInfo name="DOI" value="10.17487/RFC9765"/>
        </reference>
        <reference anchor="I-D.ietf-tls-rfc8446bis-14">
          <front>
            <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
            <author fullname="Eric Rescorla" initials="E." surname="Rescorla">
              <organization>Independent</organization>
            </author>
            <date day="13" month="September" year="2025"/>
            <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.

   This document updates RFCs 5705, 6066, 7627, and 8422 and obsoletes
   RFCs 5077, 5246, 6961, 8422, and 8446.  This document also specifies
   new requirements for TLS 1.2 implementations.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-tls-rfc8446bis-14"/>
        </reference>
        <reference anchor="RFC9813">
          <front>
            <title>Operational Considerations for Using TLS Pre-Shared Keys (TLS-PSKs) with RADIUS</title>
            <author fullname="A. DeKok" initials="A." surname="DeKok"/>
            <date month="July" year="2025"/>
            <abstract>
              <t>This document provides implementation and operational considerations for using TLS Pre-Shared Keys (TLS-PSKs) with RADIUS/TLS (RFC 6614) and RADIUS/DTLS (RFC 7360). The purpose of the document is to help smooth the operational transition from the use of RADIUS/UDP to RADIUS/TLS.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="243"/>
          <seriesInfo name="RFC" value="9813"/>
          <seriesInfo name="DOI" value="10.17487/RFC9813"/>
        </reference>
        <reference anchor="I-D.dekok-protocol-error">
          <front>
            <title>Standardising Protocol-Error</title>
            <author fullname="Alan DeKok" initials="A." surname="DeKok">
              <organization>InkBridge Networks</organization>
            </author>
            <date day="24" month="June" year="2025"/>
            <abstract>
              <t>   We extend and standardise the Protocol-Error packet Code, first
   defined in RFC 7930 for the Remote Authentication Dial In User
   Service (RADIUS) protocol.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-dekok-protocol-error-00"/>
        </reference>
        <reference anchor="RFC8900">
          <front>
            <title>IP Fragmentation Considered Fragile</title>
            <author fullname="R. Bonica" initials="R." surname="Bonica"/>
            <author fullname="F. Baker" initials="F." surname="Baker"/>
            <author fullname="G. Huston" initials="G." surname="Huston"/>
            <author fullname="R. Hinden" initials="R." surname="Hinden"/>
            <author fullname="O. Troan" initials="O." surname="Troan"/>
            <author fullname="F. Gont" initials="F." surname="Gont"/>
            <date month="September" year="2020"/>
            <abstract>
              <t>This document describes IP fragmentation and explains how it introduces fragility to Internet communication.</t>
              <t>This document also proposes alternatives to IP fragmentation and provides recommendations for developers and network operators.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="230"/>
          <seriesInfo name="RFC" value="8900"/>
          <seriesInfo name="DOI" value="10.17487/RFC8900"/>
        </reference>
        <reference anchor="RFC2869">
          <front>
            <title>RADIUS Extensions</title>
            <author fullname="C. Rigney" initials="C." surname="Rigney"/>
            <author fullname="W. Willats" initials="W." surname="Willats"/>
            <author fullname="P. Calhoun" initials="P." surname="Calhoun"/>
            <date month="June" year="2000"/>
            <abstract>
              <t>This document describes additional attributes for carrying authentication, authorization and accounting information between a Network Access Server (NAS) and a shared Accounting Server using the Remote Authentication Dial In User Service (RADIUS) protocol described in RFC 2865 and RFC 2866. This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2869"/>
          <seriesInfo name="DOI" value="10.17487/RFC2869"/>
        </reference>
        <reference anchor="RFC9257">
          <front>
            <title>Guidance for External Pre-Shared Key (PSK) Usage in TLS</title>
            <author fullname="R. Housley" initials="R." surname="Housley"/>
            <author fullname="J. Hoyland" initials="J." surname="Hoyland"/>
            <author fullname="M. Sethi" initials="M." surname="Sethi"/>
            <author fullname="C. A. Wood" initials="C. A." surname="Wood"/>
            <date month="July" year="2022"/>
            <abstract>
              <t>This document provides usage guidance for external Pre-Shared Keys (PSKs) in Transport Layer Security (TLS) 1.3 as defined in RFC 8446. It lists TLS security properties provided by PSKs under certain assumptions, then it demonstrates how violations of these assumptions lead to attacks. Advice for applications to help meet these assumptions is provided. This document also discusses PSK use cases and provisioning processes. Finally, it lists the privacy and security properties that are not provided by TLS 1.3 when external PSKs are used.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9257"/>
          <seriesInfo name="DOI" value="10.17487/RFC9257"/>
        </reference>
        <reference anchor="I-D.ietf-tls-keylogfile">
          <front>
            <title>The SSLKEYLOGFILE Format for TLS</title>
            <author fullname="Martin Thomson" initials="M." surname="Thomson">
              <organization>Mozilla</organization>
            </author>
            <author fullname="Yaroslav Rosomakho" initials="Y." surname="Rosomakho">
              <organization>Zscaler</organization>
            </author>
            <author fullname="Hannes Tschofenig" initials="H." surname="Tschofenig">
              <organization>University of Applied Sciences Bonn-Rhein-Sieg</organization>
            </author>
            <date day="9" month="June" year="2025"/>
            <abstract>
              <t>   A format that supports logging information about the secrets used in
   a TLS connection is described.  Recording secrets to a file in
   SSLKEYLOGFILE format allows diagnostic and logging tools that use
   this file to decrypt messages exchanged by TLS endpoints.  This
   format is intended for use in systems where TLS only protects test
   data.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-tls-keylogfile-05"/>
        </reference>
        <reference anchor="I-D.irtf-cfrg-aead-limits">
          <front>
            <title>Usage Limits on AEAD Algorithms</title>
            <author fullname="Felix Günther" initials="F." surname="Günther">
              <organization>IBM Research Europe - Zurich</organization>
            </author>
            <author fullname="Martin Thomson" initials="M." surname="Thomson">
              <organization>Mozilla</organization>
            </author>
            <author fullname="Christopher A. Wood" initials="C. A." surname="Wood">
              <organization>Cloudflare</organization>
            </author>
            <date day="4" month="December" year="2025"/>
            <abstract>
              <t>   An Authenticated Encryption with Associated Data (AEAD) algorithm
   provides confidentiality and integrity.  Excessive use of the same
   key can give an attacker advantages in breaking these properties.
   This document provides simple guidance for users of common AEAD
   functions about how to limit the use of keys in order to bound the
   advantage given to an attacker.  It considers limits in both single-
   and multi-key settings.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-irtf-cfrg-aead-limits-11"/>
        </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="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>
      </references>
    </references>
    <?line 979?>

<section anchor="changes-from-rfc6614-radiustls-and-rfc7360-radiusdtls">
      <name>Changes from RFC6614 (RADIUS/TLS) and RFC7360 (RADIUS/DTLS)</name>
      <t>The following list contains the most important changes from the previous specifications in <xref target="RFC6613"/> (RADIUS/TCP), <xref target="RFC6614"/> (RADIUS/TLS) and <xref target="RFC7360"/> (RADIUS/DTLS).</t>
      <ul spacing="normal">
        <li>
          <t>The protocols RADIUS/TLS and RADIUS/DTLS are now collectively referred to as RadSec.</t>
        </li>
        <li>
          <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, and therefore removes <xref target="RFC6613"/> as normative reference.</t>
        </li>
        <li>
          <t>RFC6614 marked TLSv1.1 or later as mandatory, this specification requires TLSv1.2 as minimum and recommends usage of TLSv1.3.</t>
        </li>
        <li>
          <t>RFC6614 allowed use of TLS compression, this document forbids it.</t>
        </li>
        <li>
          <t>RFC6614 only requires support for the trust model "certificates with PKIX" (<xref section="2.3" sectionFormat="comma" target="RFC6614"/>).  This document changes this.  For servers, TLS-X.509-PKIX (<xref target="tlsx509pkix"/>, equivalent to "certificates with PKIX" in RFC6614) and TLS-PSK (<xref target="tlspsk"/>) is now mandated and clients must implement at least one of the two.</t>
        </li>
        <li>
          <t>The recommendation for TLS-X509-FINGERPRINT (<xref section="2.3" sectionFormat="comma" target="RFC6614"/>) is removed since the model has not been implemented by any known implementation of the experimental RADIUS/(D)TLS specifications.</t>
        </li>
        <li>
          <t>The mandatory-to-implement cipher suites are not referenced directly, this is replaced by a pointer to the TLS BCP.</t>
        </li>
        <li>
          <t>The specification regarding steps for certificate verification has been updated.</t>
        </li>
        <li>
          <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>
        </li>
        <li>
          <t><xref target="RFC6613"/> only included limited text around retransmissions, this document now gives more guidance on how to handle retransmissions, especially across different transports.</t>
        </li>
        <li>
          <t>The rules for verifying the peer certificate have been updated to follow guidance provided in <xref target="RFC9525"/>.  Using the Common Name RDN for validation of server certificates is now forbidden.</t>
        </li>
        <li>
          <t>The response to unwanted packets has changed. Endpoints should now reply with a Protocol-Error packet, which is connection-specific and should not be proxied.</t>
        </li>
      </ul>
      <t>The rationales behind some of these changes are outlined in <xref target="design_decisions"/>.</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>
      <t>Thanks to Alan DeKok for his constant review of this document over its whole process and his many text contributions, like text around forwarding issues between TCP and UDP based transports.</t>
      <t>Thanks to the following people for their feedback and suggested text changes: Alex Clouter, Mark Donnelly, Fabian Mauchle, Valery Smyslov, Heikki Vatiainen, Paul Wouters.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA+29+5LbSJY+9j+fAq6J8FZtkBzdu6XfZbemStqRp6WWVerp
2diY6AXJJAsjEuACoEqcHflZ/K9fw34xn3ueTIAltb1rRzg8sbGtIgkgkXny
5Ll85zuz2WwS6r7qjy8mRXHz8odXL4qzf3n/6upP8L8/n03gm22Aj96Xq5uw
fFG8v7x+/dNN0XwKbfGhLetu37R98UN5hL/hB4cW7lScf/jh5qIo61VxXfbl
pi139/z2Gn98NikXizZ8OvWkH274dvCPs8my7MOmaY8viq5fTSbNomu2oQ/d
i+LZs4dPpsV3j589mExWzbIudzD2VVuu+1kV+vWsLVfhc4//qQ7dqt92s0XV
zR4+mnSHxa7quqqp++Mernn98sOrCYzm8aRsQwmj0vGeTe6a9uOmbQ57HCuP
8eWfPoQaL+7OJh/DEX6xgtmcySvgv2Dck0+hPgSc5XuuLgp+/tnP8JSq3hT/
hL/Fz3dltYXP+Q3+Ed9m3rSbs8mkPPS3TYv3nRX8wv9TWc9etWEV2upj8b4K
y4+h7eD7ooArXhTX4dB3y9vQFa+aFv5xqDddHfq/Fn8r/im0u7Iu3pY9DKfc
Fu9DF8p2eUuT/3J1WNIXxdvQ4yzQLbu+DaF/UVxuw2f4VWj32xLu9ZC+XDYr
GM/DBw+/+57/RjkrfhfabVXLDw51jyvJTz7Sh4HftZWR/+NqXc9Xgb5SKbl+
9Zb+hjV5Udzd3c3tNzoJb8p2A2vXF1eH7TbU8fXflVW9DV1nIpi8xpPi99Xm
trihP6fFzaHqQ/HowTM3/LcgxbfFZb1C0ZwWby7dqz54+P2Tp+mb/XRz6d9q
J+P6x72MY9bJOObLZke/bBvccmFV9U3r3uimD2tYnJ+rug9tfJ9XTb3iZYHV
6kNdwjrqv17BIPjL5CUfTYuSpLFYhWL7dz/VFbxJV/X/x//mXuXJ42dP3Vu/
BEmZdYd2drn9a+j7kL7kD4fPYbdoDu3Gv2tHI57f0Yj/seVBzbeHZCnfv7z5
8PLtZbqc7reTugHR6GGILyaTql67vyaz2QzuA69VLvvJ5MNt1RWw7Q870Gjw
auuqBiHvTfPs22ZdwZQXcI+iPdQ1brD/JIUGM7zdNnf4hP42FLTGge7Qhm1V
LrbBDaxZ6zB2IBDlJnTzCX/wW9V88uc1/Q13WjYg1Uuch+0RbrkOLWz4om+K
sitYg855enbVarUNk8m/v/jLGlYElmgZ/tsZqIg1XHD2ZTL5TfEa1rCBzU1y
8p8+i//+7/8DHC/fP3ny7MsX+ePpI/qDr756h5/efLj+7suX6a+ac7nbs8dP
vrNbP39If9Ctf7rWWz+jW+sC/b+zOHJTmOyyuKtW+NNV2G+bI/z0EnQ6nsqs
b6f0d9NWf+V9jo+8XNLew+GfX15eXuCy9A08WFZsVVS1TMGj7589xfe1v57p
xMrsP/yOP9k1cLcGntzCK17TWEgGwuc9HCWhXobiFt6gu23uapg0mFI4IuCv
tgfNBSPppkV3wMOiwzcJcBjUy2MBA8YdcKhH5lYHPcW14TGVxbZcfsRZXzb1
GuYFXrLc4iKjvG1Be4ZiX7Z9N7owlyvQmnR2bY9Tem5+F3wG6qMNCc4uLG/L
uup2Hc6X3K7FtZBhv7l+CoIC1kbV3+5gwv4BJuzh40cPccLubit421UDe6Fu
ergXnDY70J1tXahOp7lb9rRuOLwtrOMBzheWgnhtG3YgovrE2aLsYAXj4KZF
1RflatV95XVwPgPtY7hVS0/CW6JcbnHHzCdw5MM1xWEPxwI8gvQ+/Brnkod0
V+EQ+6IO8DVOOc5AF4K8+/PvUJjmqDaumvoTDgTejIbxAY7wqm62zeaIWiQU
YAoVaAt1xdmbn24+nE35v8XbH+nf71/+zz+9fv/yGv998/vLH36wf0zkFze/
//GnH67jv+KVVz++efPy7TVfDJ8WyUeTszeX/3zG8nT247sPr398e/nDGa5w
nyg33KuwKxeBprDdw7EML112k1Xolm214F30u6t3//v/+vCJ7p+HD5+bdvn+
4XdP4I872Kz8tKYG0eE/YeKPk3K/BwMK7wISWSzLfdWXW1hO20aw2QLM5t//
C87Mn18U/3Wx3D988t/lA3zh5EOds+RDmrPhJ4OLeRJHPhp5jM1m8nk20+l4
L/85+Vvn3X34X/8B7L5QzB5+/w//fcIysm7smIzig0rx0PHsJysGZ764BxOw
OJ2epatJXE+rZtO5+CXfQDZ8+IwbbSOaaVf1KAaHDkeF99FzKd7g+lfc4dpu
ATou3gL+wDvI9aYS4TI7q0iPOmVuujyeHnvQlWDR4VC+9cfsYXzlivPrCxw2
vNOquy0/BlWxw+vwZ3StHOLqpvGHfPzCDfGTNizJM/rKLeDX1/f9fHD3AtbB
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
nqE4Tscc57eMMCwS6aDRPBoxKj+QfQBFyXtsd+/j3jEYF9sD+ewGBY4lQqL6
gSh0cWVRtxNMCbU6CwGalSlgx4VcZJ5cnJhbQXHO3VbH20uekjSbJWU/1PID
85EkwYfVmMNtHLuBSR6sWufRJzFuBrpX/Aaq/tMuVwT6o1u6neeJIijofmlp
ESELHg1EpdDI1Or3TKtkY1nrPgtK+SwsFaJZxz4UkM0Wdqad8J6cerTucYo7
Me5rq9rPJZWCoETJw5yzCfBXhMuxcN03jmnCmUeZcTq1kciIM5HEqdi2xIQk
HX4D1fSJj48yT0kcOqpgjL7WMON1yNbWkoNW5OPYpEg5CybCL06T+Icxn0ae
ZGp/+N4avSsxSRWEbtdT0627rNyUREfStw2WpXKv4FNzSzOBnhc3HMi1sAMD
D1UdZVx2zSfuY1DuFtXmwPlLctJTXWf1PlmBuFXmRh40kdTGz7TwWov3OWCs
Zm7y8HkPKhEOBLiL03qvr7mx17ZB9N3K6j4lHp7+GK1lhlca3312hq+akydw
TB1biMOpZoc7EhLwSC6qCBLYvGOlV/dyzn8ZdNZ2kCk+O2kYA3lJ5yHh5k3T
pml5klPBU+lZogc+R00tK7WKh0re/RR/hyW1iBggvlvnc8Es9CcKI6KUjBlh
SimUrielj2RRUaNH8BH1aWTtg9LsvYp0qmlvbQOVyes+jFywgkPIpSFhKL9t
7ugIxcg7XZ4bQa97rWPiXYu/2cAQsFvk6QcMnVxl1pxy2sll8Fx3jz2RttLh
ZHbGiIhYF6/0EZzbefeH138qPrQY4nvTgB5h+JgkPeoDCAPaED39YEc/wAWn
q0L9qWqbmhyhqZIMV9YykyRttEut4ym9FXIR7ajpeWBt2iN0t3RgWhoTHPD9
7XEYEWBLsuRnKaawJPwJqN62CgI68e8lcVLGahbUlBBrHGLvXjGrOq7bWeKR
vhbSBgFYJgjU0mWzuiZuIvdQjY16zvbFCJpVYrPdYSOh4ikej2CJdXzLuBm8
ZWUhsBEedvz4T/OnD56byeleJwISeTJWhGr4URwefEwsbkQAmrv0VYUG5r6t
iOnoNcYdEaN2w2zv8C90wOnBnx4zEgDzlX8Ix+InzFVmP5DLissteamkKN6C
9sp+5gfwrgED40geH1Ysvrv5Q+zw+n9n0n7lnOizY9SCthvaJZfRBuqKS9hm
6ImgMeW/mKRVc3mdHDeraBuE53BOsQCHB+UKniCJBW9riZxlmTB619G7wHCG
dxmYuT75JVU9DoFbfWR+kVmznm2JlBjO7o+apqPNlJb5aaHjamg5dqMgWY2S
Cqo0BvZT4FOaT/GVddGPdkEXJWMrY40JVlA2TMRcun4ScDfpdIsCEnsIqZkU
ad3gKscw8FNNk0NGpBAFuHYIklt2oOLRWZSzVSihxKLCu3WBSgt10NInwA3P
/4iN7Q4jhcSV3RKXR2zGLCaEL9CpzU3MQ53uHgox2mGScUnqEx+7ozgvZ7N3
qh21RjX2xcSHcCMq8v1TgK4rQddUlrdFMxGN7sGAgwRTMF0Mtmpf6hgSH3oR
3jV2vgiaOyX3xUHjwzxjaVw0dTQxZkKR+0N9Msuui+d72iJYDwO/CcfSSR6e
TyT43UF6OUoVieAA/u1QLT/ivEgRDHPSj/Ef+6IPGor0vOqGdnvKpqAMrzk7
ulZa8TVvkGWW1JsZ6A7lVdZEqaT3IoGlfiO7Ekv/g8/IKRuutiJJK8s4+Jjl
NnOMbpQgusZ3mMyfsrNxJ2WX+nV18uW5ggA3oTJ3sm/QafQYGykQ1zzZNsJA
RlYTcoYOUh7EWUE9U6ViiaNkxKMb/Q6cWeYRYgoAEFAQAXA+8QX41xKwPUEa
o3d+OuspgRJvTdT4Uwc3dYQHfHTs8SjGqIeEc4XqmiZHOfTho2EyPmuSJ5XL
q1hPgZfitKs0vY8tAsnTIowpf/dLbB9IiNMEIXuaDgMLHUAdrI6xbrocpd2g
gkVldk4lMZ+sSJIeCC1DfQOTjAHWJeH9FHYTamZj0UJqL2sJKdpQDUh0XCob
x7bd5Vh548F4wXXFRaY4x8bcYjUnldLRWKzMEq6e+igaW3JfMp+knUNiOcln
qIHhL1+jmPwsL16EjyJRyLr6zNv3X2FG/vViEsmpeH/pu1VJIA8n0gkxgmMp
QPn63acnuIfgv88QsvoS31JvIccipTAOdQUnrMkBrp6FTVUjJ6WooyYozMy1
E+4XkxfFJQEGo5HqkQmxLhLhk7S+A700l1tew5nD98v2e2T2QO+oNAAekUSI
8I0muSV+nD1NOkHLnSRVif0Qj3zw1ASe5FLNFwXHeOk4JL5Pa50x9mTNDib9
aqY259tqHaTDCsHs6NQ79a74TN4n8WD6UbqF4NVX3J4GW31lOzu12K7hknKL
FhpuN0z0nV83NxdW0+eNkGjucoNU3K2k6eAVNxxUlQrBlCAh4wOyxvTW2mvZ
NB8r15ELFNQty+NIA/Vnj598F3XeE83MpzvaBaAWcmNqU8L9bbkY8fcBJNiH
gxYhOCIiRbNSrAK8QtSdVzxQioBirp1hX6NcvxJTltbY9mrpMGMtshHWY9Hp
Ya83lwOIW6dQYokMLSYJp7gF01M3scOMEL7T/exJcxOErjin+6gSYHpn2O0X
sUVEwDjYKqJDUzvBuLfoFKR8GPZ+mSvsw/1Q76QZW+46zIBEqUvxOenp8Gkp
rTEzWp3osAvvDP51r/0sk34Dg+4XwgSBe9Y2htuq2VTg9FFoD2WcWaxZdCWS
bl3gSDl0Bv9QkDdGbMGyj+HN5B2V8cvFkmR1ph4v4GChsgCa+jfl9Yr4WG1m
cVlGaqiZazO9VpUhbxExuSveF7Yl6NYZa3VeK26xoqG8yKTIUBwwIDJq60V2
ACe6ErRzKV54ijmSnCRX9GMbrVgR54gDnE1cFqDlRIdNGa6hq+A3BnXYQ56g
PFWpYy5t4s5JnvxzL/JzLDHkO7+/Hbg+NmpuaFCBbS0B7OvglKBbHp6eXp4S
jNxRbkJJ6V/m04AXFlRk1lEl48agOLE+Wx4ytcR0XAW5zAQFs2IkCDJepNhE
hjWkfS8FRXuAk3TPfe5jAQGb2cJ0oi7kdaw8Y8tQisnHLMOvFHBTSpqb5J3G
UrqUeQw46XqlRfJi8XUNE3JIJlogM0IwFWNDnGL4TOV4Cc7EO10MteZLuky9
rP3+XvBqRjxMeg5xLOZETbsyFSEhFinFhuJrcsI+fYRdeLMGp/JjT3Kso7cG
g9giz1Ee6VZNqZZjNjYthUFV46pH68YF2aogG8LoqZVCzEPFhkkjNPWshIa4
fjjqxUUb9xXl+ABfMhMjXBxDUl6KpQyaSiXNbd5lLF/kukv1kGR2KCTQNbgP
9Pm6UXEtpiNDF+pDVCHaEW9LLa1PFQ0lcLicWRVOFCmA9F1gJSeiOBU65wP2
z1A+Ja2JHU2hEGfBjQpxxlaAZZGnqkonxpqZd26g+q+mTtVV0uEiZe5jKgDb
SOlz9PDuIn2j1FQRZZZaw1IQm9AHUBJU2LusOEyq73YJF2f2yLasmITJr4JO
mGGqNaZqgc1ICihnj9WZK0BSArK+QFvbUop9J+/h2rl4Lgr2oDWxed8TKcW9
vK3Cp+g5J0XDFGeQ8ZjdS9z2NiDS96PV5RlNxShFBOH3BerqsGCx5tvgsoNO
SutwJ6XiiW2arZLwNAnqzye5Okn+RYYInnL0FCWCktBfvGNEnTVrj/zySXOp
6VcKtV2XFof4MuIZqrEUxAtCgkx13zWD4LgQdGqWUFhCeZg8jFa6fBoOn5iQ
KDJW1dJ1B1fYiMQGUAQEFE6R5GE165sZ/OfMS1STCD+ToFRJEcpKyZhGh8MN
VClDieY9J3SpiZTWbBJTBGkzKxq3onuqiOWUeMaXKAxvdO7Li5KFemR/Xh4/
n/xYG2hW4k5cZUvwCnh0ixAAWbxOQYqHiPmS2mIc62XaYuydBYewDRyjRC/f
yVNkMx1gIfBEZLR2mkigfe5AZDZbiskeOYilegfGRggIA7DyMcZICZibyO03
IOKTVw+rrKoUa1tdfBglc7Y4zrSKlgtMs/W1oqlIfaOJCd/vPh0DGqGyv2jx
8GGOObFxlRSV5xvyR6Wl0aIL4AzHpB/Cutpqmauk6ziMgejqrtkeekPpubMz
tqlkfvVcN/1s9YP53o8MwYxLGl0GV/Fwd4u9NmnFHGcYWuIb2AKsw91IO0sj
cB9WKrydajowdoNiEvNkwRK4IlPYK71cMukDIkzPsJP0FaNGzq73s7QxddYg
e3KwI9t1uaT5T7+PbdV0A8hZi7YZMUjRaEEdVOJG4zJNjeYmmsjlkGLzu6ff
I6eFhMi5ByD5KT80zR6rsGeXPDwKrGo2MrY1lTgSh+0qdmN4EuKv7cRMZ5PQ
S+jOUFBgYI0nrXy1IMc6b/MRIzvr02GL9POiKjX8Z62TLNy3q7DSmqvLNX6i
pGBkf1mu+ENsTDD2HuWe+1yv3UzQqwzewzDhxkEjJgPH0BQWzwV+OcKf9XYP
ZvCadbTW6HKxgrpWMEVuBpIpYjL8LoAn63ssJT1qyfjRx49WGojHfrQY/Tkd
zwTr0Y+Ig/TCdwtx5dDiG+gKwcfKHpfgXyS0i46i/LMUBArsgnInXZUEyaMA
WWOCdHciU43cHP/pj6+vPf+dWFSYek2ghv6SCNTNpLog9xjNFPPg/Iw1iZNJ
jgV3niVjvIO16WQC+GWIhDbtJkxXCTfkoMszWSuCcYnUKt6f9BgaelxlRHjJ
A31BFJ4yFNEVZcWFc2rrBsKlkSmLY8CMDIfarHaduCv8/gyw3+pAHRjhHfZN
s8aAaq6XJFMa92kb9KB1IY2pKQGeSYpvcYd3/7IUqsUdM2XYIp+uW9BmIJuU
xBD1QEFuCpvHQL0kOAlCxMUazx89/Q7TkqvDYiGkRFuYypmF32SCqC/4om2o
JY76QgIsLTuuT4gx0gymShVOJIPHzFvzsijAoMS+Gmk0qC0FDZsqKNkTimUq
1ft/ESN45+yA2DilblzuVU1ELhtpP6KfUhH5P6oizS/DBpkxkQBRVAwZ3OfM
nmonY/6AbuCHvJhMZgVzq1T1SB8v0EEreLGD80fxuehYdbflxzAvCoXYMFlS
ydAsK5Ywn7Hq1cxg5diRrqbciRYi8bYA741b9VafHCJx+LZzGLn18oKJ7XoY
qIxXDnjKJbrUtHsDNW4x6wMvcYko9am9RfoOLJM2+kFx3PjY4qyyIyQaQRvT
pqBLjkDk3yTWklbJ4Ya1acd29cQ5YNpMNDAZHyX33hvIwdQZsBy4HA6qSdA/
0heC4uqaMOhCGgbV7aBlcVxvImANxy/CRqBr3rINGzjBwWlXMroB6sRZkez7
0J5u0C7veAJQHcX3hAdin2wN4qODfZzdEPDG+J3cwcUv4/cIld1Gm0SgVUd9
gqRVEY/bxnh5F0wVVrXYwgRDIk+mDfe0c/bhsN8wghS/qw8gF84rXlZ7OrsO
VS9n5SosDpsN5XZf+T+VsRozyjg/Y/0eaP6ye9LKvf3phx/cY6cioUi7EF1e
BUttMW2PdUZ0qUIPa+SwwGlpGuRzYxuGe9ixDncWf8rFS9xV4nphZg2bdPS0
j87P2nIFvzrLyjamxRmXOP8WOdmSbzHcdzE1QcheLHl3zjdIHYl2JTDnFo/W
bdMdYmsHdqGySiQuxdC9ZQSW+rPI6Tg1Wmk4wkDXwNHZrdpmv2erQb05OgN6
yeYpxKK/HTY8V+/j+eNHT30+/CEetSNhNO4Ek5ER3jc9Uivjg5qe1CYLgJG7
GNU8PiXS5KsEsKswLe6CAsJloYalAThhBDVFzHJrBQIfA8YCkK4F0yHaRYcb
f1V80DRMeQODAPPj9ex6XoV+PQM5mcHF22aDjrow+BXvUhjvEA0h23sy+Z1L
Gmlo2WdWJN9vIUPUI7dgZKFjt8MaW2JNJUbVmCFtuVVVELa+vmmDyiC8Tsem
WAw4JD6VN/a4+gxbEmELmM+3JfGeKCu14AK0QbWvA0N5XDSbQwaIFb2PyXqW
S1xHxFrv4djWThMKhdYO9EzVMsLPLU9Q1vpXJlXT0WmwHK0i3kuDMySWyFfT
MrHgQiPV6Jm/49uzepAIdbxnJS2GJVVXGJXQyBSwC5lx8l+eWhYBocIVKBYu
IpGPobP6QSLlokop1k/sXOodtOMrRie5TVP0ZcuhKIPwxBgn6Qe1v8vMmfUI
FnNGUJ4pO0eOWdqczJLWc9knSe5FA0ks3t4Q8LULVq66j0kJny97GVkK72Kb
9VJkC+lEh91pef7Zv6mJBwl2+ycfDbpOH6N0a94XUnhISp9Y2r7S/eZi2M75
nOq6s7yNrYrr3+iXocuQRMOVsGphex3vn/RKYERv4LgN+qaHrXTiIkFKwRyw
C0z6ZBkEbOKMUxqBgzFc/jOo44C18g6JtDgSTkKVt59W7rMnoCtCeShoZsuV
dST588k1DaNrKAaiT6Dfu/bGolFrsVlSpIYQPw2b8E2y+XZQqyxmaOiscelk
XSjLJUVYvdUFUGzOL16zj7HgQbWU36VjIrY4ZsMR5xyze0Ol4sb4FfESjA33
Af7K61I/JbNHqFWHiGNJqTSrHcjtz5Ep0uf+qkmimpfBuDRd5Lr6xq498qg1
YsQ0OyTAmAiuJXeWNUqSq/dlC6hJ3APc4zmmQr2oPDHVmlriEXkBHG0VOhy4
cUmvL4gMQaN9LjhM4ZCecbcpmkm8B2VhIhSS5RMaCSaV5joSyWuBawBDDEpd
RlnPaHQxezJFx0nyZDIRo1BJP8PYX/Kd9ErK7RiG83QebiWTI7ESYkkCdchJ
od64J8UVxXQig5IkkoLeTSvENyOHjWR1zMMiQiDiNKexsjeWFCZn2QhFeOob
Dcdk00zerPaqjiCycbukWufaToaMVkXIxs3D1B43Mg4UiyVFFRkmX+0kuYKG
FU5Jjib5EEfFiqdpPoKeDGhuV2SQndr+5NvHZju02ZbgmkoHrdgkx8HLW2kv
6ptGxRPcp22wbhDm5ipOxQ+CciaVicWT7xvWDtL8gQeZ61fH0kBFzIqVTu2C
WwpEMrEILS7ZSZ+a7WHnaq2iG+I8NhwauAexITmi5XBkREm7OQg7FAPuxWMz
PG5m4HNs604zWLDHWgWcKkglPlQrWZi4C3v8PXmS0OdgagkvVWemBWdmuW43
sxJL69gk84zqzqqaZ6WYsuRpy0JjZyUaplE+Z89O4dosg15q8EGcYeLZ6gYT
yga5qY8T9xrQypHL2ygBv3/SdNBdJD1dko1gt9iV9YGvFnArlUmiOykMBdqO
0uOH0ibEmTUzUpocz2O0Naj6iZrfxF8ZLh+mY1ducaA5SXzWREn5M/U0UZ+s
TPuFSAe+UXyUhDFNYQ9PTkNYM0yHocMMUrCkvz9mDbrJO+WgcPCYEc/bsjMN
Ap479ZEYQTK0itqE/jwVTv9gKNOWGhkkpr40HUqdn4iBrrqPCb3bEI5okPQ0
K1B8glE07ek+GxRoLZOB4lTdNXwqBKtDM/udsCFJ6CtJ9Q1iYhQKkyVlUpVv
mREuFLsD6ySmRun+ShJoVG5wYyRWo3tYWzPk8ZmNiyW5PUl2X8q+CKU8IlUK
k06cHGx3yfm4jB3XXSg7Wbp3kBUqkXxK72OcNO3YHIlg6+PpfRXLo/2rUxSQ
SDEi6DlCwDjWkaEr6OUP+4bLRSIijm6VU8CjtXxyTjmEmjRJsZh/VIqkNJH1
OLKpst2XCLoay/bhCHuTmEOp2pLkgRtxwn2ikA2lkedwGTeqPVBJsqLJNE8i
zZ7eVJuWs4eenUgoy3koWljha3ZjAYMHdr65fgpm0qaBr253Dt/nCMHAXKIK
helIWT1l6WutYOBKZTL4ceaO5NHEdF/0bbBKjd4inH6HOcXV1Mvgn+PUCrbe
tWDojZ+EHaWqR+OcVt3BbdJWWmmcFQOxFYgC6bI0AitADrI0JeLC5vRXX4DX
kvcv5W05nXlI6qnzBnqduyCW3Vc8ji6AM0LhW3SXyu6omJ3DHsayCqPDmI4E
2syDMaTUyZZ+LdNtDXWpPxtQhmEaKjrqftLCm/EfDN9Y5yf+yIOrRjoSWbA2
Qw1RWvz7h4+TwD2yGPIJlT6YTte7NHSrhUEJTWH8nWCoYBmTRRKeIRAZMKK5
xl7k3HdqUxbaKAEpHkZcc43XnFyQKkNkEwiSoGKoxWOVlBO8vmkSZsgQ26EQ
mh5rvBCbUiOLuXTrqhxBpkZOwIUhaEe5lbdglEasZUkGSo5DBzO3vJWYl581
Ieogwb1Xl2X8tqW4+9Hbv/Novmh6MSp3CHtKvVWcLfY4ctRhZ8Y1FnS5kQ1g
TMQ57zGU6GhKrTxJJifjI+2MpFWtkS/aSjPSpem9hdQlUHpWZ2OYoVhVXXsQ
EnY7ina7Q+2LX+BFiUQLW0yyssiTIFkce5z6dBrrF6NKjiqv6izVl4BgxyeO
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
tso1rhgzAQA=

-->

</rfc>
