<?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.21 (Ruby 2.6.10) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-radext-deprecating-radius-08" category="std" consensus="true" submissionType="IETF" updates="2865, 2866, 5176, 7585" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.24.0 -->
  <front>
    <title abbrev="Deprecating Insecure RADIUS">Deprecating Insecure Practices in RADIUS</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-radext-deprecating-radius-08"/>
    <author initials="A." surname="DeKok" fullname="Alan DeKok">
      <organization>InkBridge Networks</organization>
      <address>
        <email>aland@inkbridgenetworks.com</email>
      </address>
    </author>
    <date year="2025" month="November" day="06"/>
    <area>Internet</area>
    <workgroup>RADEXT Working Group</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <?line 101?>

<t>RADIUS crypto-agility was first mandated as future work by RFC 6421.  The outcome of that work was the publication of RADIUS over TLS (RFC 6614) and RADIUS over DTLS (RFC 7360) as experimental documents.  Those transport protocols have been in wide-spread use for many years in a wide range of networks.  They have proven their utility as replacements for the previous UDP (RFC 2865) and TCP (RFC 6613) transports.  With that knowledge, the continued use of insecure transports for RADIUS has serious and negative implications for privacy and security.</t>
      <t>The publication of the "BlastRADIUS" exploit has also shown that RADIUS security needs to be updated.  It is no longer acceptable for RADIUS to rely on MD5 for security.  It is no longer acceptable to send device or location information in clear text across the wider Internet.  This document therefore deprecates many insecure practices in RADIUS, and mandates support for secure TLS-based transport layers.  Related security issues with RADIUS are discussed, and recommendations are made for practices which increase both security and privacy.</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-deprecating-radius/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        RADEXT 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>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/freeradius/deprecating-radius.git"/>.</t>
    </note>
  </front>
  <middle>
    <?line 107?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>With the publication of <xref target="I-D.ietf-radext-radiusdtls-bis"/>, the <xref target="RFC6421"/> work on crypto-agility is nearing completion.  The RADIUS protocol now has a secure transport which is standards-track.  This specification therefore completes the work of <xref target="RFC6421"/> by deprecating insecure uses of RADIUS, including RADIUS/UDP and RADIUS/TCP.</t>
      <t>This specification mandates new behavior for RADIUS to address those issues, most notably the recent BlastRADIUS vulnerability <xref target="BLAST"/>.  In the interest of clarity, these mandates are given with minimal explanation.  The reader is instead directeed to <xref target="I-D.dekok-radext-review-radius"/> for a detailed review of of the security and privacy issues in RADIUS.</t>
      <section anchor="review-of-radius-security-and-privacy">
        <name>Review of RADIUS Security and Privacy</name>
        <t>The RADIUS protocol <xref target="RFC2865"/> was first standardized in 1997, though its roots go back much earlier to 1993.  The protocol uses MD5 <xref target="RFC1321"/> to authenticate some packets types, and to obfuscate certain attributes such as User-Password.  As originally designed, Access-Request packets were entirely unauthenticated, and could be trivially spoofed (<xref section="7.1" sectionFormat="comma" target="RFC2869"/> and <xref section="4.3.2" sectionFormat="comma" target="RFC3579"/>).</t>
        <t>The insecurity of MD5 was first noted in relation to RADIUS in 1996 on the IETF RADIUS working group mailing list <xref target="MD5-1996"/>, which also discussed using an HMAC construct to increase security.  While it was common knowledge at the time, the earliest record of concerns about Access-Request packets spoofing was on the RADIUS working group mailing list <xref target="DATTACK"/> in 1998.  There was substantial further discussions about the lack of integrity checks on the list over the next few years.  The outcome of that process was the definition of Message-Authenticator as an optional HMAC-based attribute in <xref section="5.14" sectionFormat="comma" target="RFC2869"/>.</t>
        <t>The packet forgery issue was further discussed in 2004 in <xref section="4" sectionFormat="comma" target="RFC3579"/>, and again in 2007 in <xref section="2.2.2" sectionFormat="comma" target="RFC5080"/>.  The state of MD5 security was again discussed in <xref target="RFC6151"/>, which states in Section 2:</t>
        <ul empty="true">
          <li>
            <t>MD5 is no longer acceptable where collision resistance is required such as digital signatures.</t>
          </li>
        </ul>
        <t>That statement led to RADIUS security being reviewed in <xref section="3" sectionFormat="comma" target="RFC6421"/>, but no protocol changes were made at that time.  The outcome of that review was the text in the remainder of <xref target="RFC6421"/>, which created crypto-agility requirements for RADIUS.  The work of <xref target="RFC6421"/> was completed in <xref target="I-D.ietf-radext-radiusdtls-bis"/>.</t>
        <t>Another issue is that RADIUS sends most information (but not passwords) "in the clear", with obvious privacy implications.  Publicly available data includes information such as names, MAC addresses, locations, etc., which allows individuals to be tracked with minimal effort.  The reader is refered to <xref target="RFC6973"/>, and specifically to <xref section="5" sectionFormat="comma" target="RFC6973"/> for detailed discussion, and to <xref section="6" sectionFormat="comma" target="RFC6973"/> for recommendations on threat mitigations.</t>
        <t>It is no longer acceptable for RADIUS to rely on MD5 for security.  It is no longer acceptable to send device or location information in clear text across the wider Internet.  This document therefore deprecates all insecure uses of RADIUS, and mandates the use of secure TLS-based transport layers.</t>
      </section>
    </section>
    <section anchor="terminology">
      <name>Terminology</name>
      <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL
NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED",
"MAY", and "OPTIONAL" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.
<?line -6?>
      </t>
      <ul spacing="normal">
        <li>
          <t>RADIUS</t>
        </li>
      </ul>
      <ul empty="true">
        <li>
          <t>The Remote Authentication Dial-In User Service protocol, as defined in <xref target="RFC2865"/>, <xref target="RFC2866"/>, and <xref target="RFC5176"/> among others.</t>
        </li>
      </ul>
      <ul spacing="normal">
        <li>
          <t>RADIUS/UDP</t>
        </li>
      </ul>
      <ul empty="true">
        <li>
          <t>RADIUS over the User Datagram Protocol as define above.</t>
        </li>
      </ul>
      <ul spacing="normal">
        <li>
          <t>RADIUS/TCP</t>
        </li>
      </ul>
      <ul empty="true">
        <li>
          <t>RADIUS over the Transport Control Protocol <xref target="RFC6613"/></t>
        </li>
      </ul>
      <ul spacing="normal">
        <li>
          <t>RADIUS/TLS</t>
        </li>
      </ul>
      <ul empty="true">
        <li>
          <t>RADIUS over the Transport Layer Security protocol <xref target="RFC6614"/></t>
        </li>
      </ul>
      <ul spacing="normal">
        <li>
          <t>RADIUS/DTLS</t>
        </li>
      </ul>
      <ul empty="true">
        <li>
          <t>RADIUS over the Datagram Transport Layer Security protocol  <xref target="RFC7360"/></t>
        </li>
      </ul>
      <ul spacing="normal">
        <li>
          <t>TLS</t>
        </li>
      </ul>
      <ul empty="true">
        <li>
          <t>the Transport Layer Security protocol.  Generally when we refer to TLS in this document, we are referring to RADIUS/TLS and/or RADIUS/DTLS.</t>
        </li>
      </ul>
      <ul spacing="normal">
        <li>
          <t>NAS</t>
        </li>
      </ul>
      <ul empty="true">
        <li>
          <t>Network Access Server, which is a RADIUS client.</t>
        </li>
      </ul>
      <ul spacing="normal">
        <li>
          <t>MS-CHAP</t>
        </li>
      </ul>
      <ul empty="true">
        <li>
          <t>Microsoft Challenge-Handshake authentication, as defined for MS-CHAPv1 in <xref target="RFC2433"/>, MS-CHAPv2 in <xref target="RFC2759"/>, and EAP-MSCHAPv2 <xref target="KAMATH"/></t>
        </li>
      </ul>
      <t>In order to continue the terminology of <xref target="RFC2865"/>, this document describes the Request Authenticator, Response Authenticator, and Message-Authenticator as "signing" the packets.  This terminology is not consistent with modern cryptographic terms, but using other terminology could be misleading to long-term RADIUS imlementers.  The reader is assured that no modern cryptographic methods are used with RADIUS/UDP.</t>
    </section>
    <section anchor="deprecating-insecure-practices">
      <name>Deprecating Insecure Practices</name>
      <t>The solution to an insecure protocol which uses thirty year-old cryptography is to deprecate the use insecure cryptography, and to mandate modern cryptographic transport.  This section deprecates insecure transports, mandates the use of secure transports, officially deprecates MS-CHAP nearly two decades after it was broken, and finally closes out the <xref target="RFC6421"/> crypto-agility requirements for RADIUS.</t>
      <section anchor="radiusudp-and-radiustcp-are-deprecated">
        <name>RADIUS/UDP and RADIUS/TCP are Deprecated</name>
        <t>RADIUS/UDP and RADIUS/TCP MUST NOT be used outside of secure networks.  A secure network is one which is believed to be safe from eavesdroppers, attackers, etc.  For example, if IPsec is used between two systems, then those systems may use RADIUS/UDP or RADIUS/TCP over the IPsec connection.</t>
        <t>However, administrators should not assume that such uses are always secure.  An attacker who breaks into a critical system could use that access to view RADIUS traffic, and thus be able to attack it.  Similarly, a network misconfiguration could result in the RADIUS traffic being sent over an insecure network.</t>
        <t>Neither the RADIUS client nor the RADIUS server would be aware of any network misconfiguration (e.g. such as could happen with IPsec).  Neither the RADIUS client nor the RADIUS server would be aware of any attacker snooping on RADIUS/UDP or RADIUS/TCP traffic.</t>
        <t>In contrast, when TLS is used, the RADIUS endpoints are aware of all security issues, and can enforce any necessary security policies.</t>
        <t>Any use of RADIUS/UDP and RADIUS/TCP is therefore NOT RECOMMENDED, even when the underlying network is believed to be secure.</t>
      </section>
      <section anchor="secure-transports-are-mandated">
        <name>Secure Transports are Mandated</name>
        <t>All systems which send RADIUS packets outside of secure networks MUST use either IPsec, RADIUS/TLS, or RADIUS/DTLS.  For operational and security reasons, it is RECOMMENDED to use RADIUS/TLS or RADIUS/DTLS instead of IPsec.</t>
        <t>Unlike (D)TLS, use of IPsec means that applications are generally unaware of transport-layer security. Any problem with IPsec such as configuration issues, negotiation or re-keying problems are typically  presented to the RADIUS servers as 100% packet loss.  These issues may occur at any time, independent of any changes to a RADIUS application using that transport.  Further, network misconfigurations which remove all security are completely transparent to the RADIUS application: packets can be sent over an insecure link, and the RADIUS server is unaware of the failure of the security layer.</t>
        <t>In contrast, (D)TLS gives the RADIUS application completely knowledge and control over transport-layer security.  The failure cases around (D)TLS are therefore often clearer, easier to diagnose and faster to resolve than failures in IPsec.   For example, a failed TLS connection may return a "connection refused" error to the application, or any one of many TLS errors indicating which exact part of the TLS conversion failed during negotiation.</t>
        <section anchor="recommended-practices-for-tls">
          <name>Recommended Practices for TLS</name>
          <t>Due to the ability of attackers to record sessions for later decryption, it is RECOMMENDED that all cryptographic methods used to secure RADIUS conversations provide forward secrecy.  While forward secrecy will not protect individual sessions from attack, it will prevent attack on one session from being leveraged to attack other, unrelated, sessions.</t>
          <t>It is RECOMMENEDED that AAA servers minimize the impact of a session being decrypted by using a total throughput or time based limit.  After that limit has bene reached, the session keys can be replaced though a process of either re-keying the existing connection, or by opening a new connection.   The old connection can then be deprioritized for new traffic, and then closed.  Note that if the original connection if closed before all outstanding requests have received responses, or before a new connection is full open, it can cause packet loss.</t>
        </section>
      </section>
      <section anchor="ms-chap">
        <name>MS-CHAP is Deprecated</name>
        <t>MS-CHAP (as defined for v1 in <xref target="RFC2433"/>, v2 in <xref target="RFC2759"/>, and EAP-MSCHAPv2 <xref target="KAMATH"/>) has major design flaws, as discussed in <xref target="I-D.dekok-radext-review-radius"/>.  MS-CHAP MUST NOT be used in any situation where it is not protected by a secure transport protocol.   MS-CHAP MUST NOT be sent over RADIUS/UDP or RADIUS/TCP, unless that data is protected by a a secure transport layer such as IPSec.</t>
        <t>As packets can be proxied outside of a secure transport, MS-CHAP SHOULD NOT be sent over RADIUS/UDP or RADIUS/TCP.  For authentication protocols such as EAP, MS-CHAP SHOULD NOT be used outside of a secure tunnel such as PEAP or TTLS.  This recommendation includes EAP-MSCHAPv2 <xref target="KAMATH"/>.</t>
        <t>Implementers and administrators MUST treat MS-CHAP as being equivalent in security to sending passwords in the clear, without any encryption or obfuscation.  That is, the User-Password attribute with the <xref section="5.2" sectionFormat="comma" target="RFC2865"/> obfuscation is substantially more secure than MS-CHAP.  MS-CHAP offers little benefit over PAP, and has many drawbacks as discussed here, and in the next section.</t>
        <t>Existing RADIUS client implementations SHOULD deprecate the use of all authentication methods based on MS-CHAP.  Clients SHOULD forbid new configurations from enabling MS-CHAP authentication.  New RADIUS clients MUST NOT implement MS-CHAPv1, MS-CHAPv2, or EAP-MSCHAPv2.</t>
      </section>
      <section anchor="new-crypto-agility-requirements">
        <name>New Crypto-Agility Requirements</name>
        <t>The crypto-agility requirements of <xref target="RFC6421"/> are addressed in <xref target="RFC6614"/> Appendix C, and in Section 10.1 of <xref target="RFC7360"/>.  For clarity, we repeat the text of <xref target="RFC7360"/> here, with some minor modifications to update references, without changing the content.</t>
        <t>Section 4.2 of <xref target="RFC6421"/> makes a number of recommendations about security properties of new RADIUS proposals.  All of those recommendations are satisfied by using TLS or DTLS as the transport layer.</t>
        <t>Section 4.3 of <xref target="RFC6421"/> makes a number of recommendations about backwards compatibility with RADIUS.  <xref target="RFC7360"/> Section 3 addresses these concerns in detail.</t>
        <t>Section 4.4 of <xref target="RFC6421"/> recommends that change control be ceded to the IETF, and that interoperability is possible.  Both requirements are satisfied.</t>
        <t>Section 4.5 of <xref target="RFC6421"/> requires that the new security methods apply to all packet types.  This requirement is satisfied by allowing TLS and DTLS to be used for all RADIUS traffic.  In addition, <xref target="RFC7360"/> Section 3, addresses concerns about documenting the transition from legacy RADIUS to crypto-agile RADIUS.</t>
        <t>Section 4.6 of <xref target="RFC6421"/> requires automated key management.  This requirement is satisfied by using TLS or DTLS key management.</t>
        <t>This specification finalizes the work began in <xref target="RFC6421"/>.  This document updates <xref target="RFC2865"/> to state that any new RADIUS specification MUST NOT introduce new "ad hoc" cryptographic primitives to authenticate packets as was done with the Request / Response Authenticator, or to obfuscate attributes as was done with User-Password and Tunnel-Password.  We allow legacy RADIUS-specific cryptographic methods existing as of the publication of this document to be used for historical compatibility.  However, all new cryptographic work which is specific to the RADIUS protocol is forbidden.</t>
        <t>We recognize that RADIUS/UDP will still be in use for many years, and that new standards may require some modicum of privacy.  As the BlastRADIUS attack shows (<xref target="BLAST"/> and <xref target="I-D.dekok-radext-review-radius"/> Section TBD), RADIUS/UDP security is inadequate for modern networks.  The solution is not to fix RADIUS/UDP.  The solution is to deprecate it entirely.</t>
        <t>All new security and privacy requirements in RADIUS MUST be provided by a secure transport layer such as TLS or IPsec.  As noted above, simply using IPsec is not always enough, as the use (or not) of IPsec is unknown to the RADIUS application.</t>
        <t>The restriction forbidding new cryptographic work in RADIUS does not apply to the data being transported in RADIUS attributes.  For example, a new authentication method could use new cryptographic methods, and would be permitted to be transported in RADIUS.  This authentication method could be a new EAP method, or any other data which is opaque to the RADIUS transport.  In those cases, RADIUS serves as a transport layer for the authentication method.  The authentication data is treated as opaque data for the purposes of Access-Request, Access-Challenge, etc. packets.  There would be no need for the RADIUS protocol to define any new cryptographic methods in order to transport this data.</t>
        <t>Similarly, new specifications MAY define new attributes which use the obfuscation methods for User-Password as defined in <xref target="RFC2865"/> Section 5.2, or for Tunnel-Password as defined in <xref target="RFC2868"/> Section 3.5.  However, due to the issues noted in <xref target="I-D.dekok-radext-review-radius"/>, the Tunnel-Password obfuscation method MUST NOT be used for packets other than Access-Request, Access-Challenge, and Access-Accept.  If the attribute needs to be send in another type of packet, then the protocol design is likely wrong, and needs to be revisited.  It is again a difficult choice to forbid certain uses of the Tunnel-Password obfuscation method, but we believe that doing so is preferable to allowing sensitive data to be obfuscated with less security than the original design intent.</t>
      </section>
    </section>
    <section anchor="securing-access-request-packets">
      <name>Securing Access-Request Packets</name>
      <t>Despite the above mandates to use secure transports for RADIUS, the reality is that RADIUS/UDP is likely to remain in wide-spread use for many years.  It is therefore important to update RADIUS/UDP and RADIUS/TCP in order to secure them from the BlastRADIUS attack (<xref target="BLAST"/>).</t>
      <t>There are a number of changes required to both clients and servers in order for all possible attack vectors to be closed.  Implementing only some of these mitigations means that an attacker could bypass those partial mitigations, and therefore still perform the attack.</t>
      <t>This section outlines the mitigations which protect RADIUS/UDP and RADIUS/TCP systems from the BlastRADIUS attack.  These mitigations MUST be applied to RADIUS/UDP and RADIUS/TCP, and MUST NOT be applied to RADIUS/TLS or RADIUS/DTLS.</t>
      <t>Unless otherwise noted, the discussion here applies only to Access-Request packets, and to responses to Access-Request (i.e. Access-Accept, Access-Reject, Access-Challenge, and Protocol-Error packets).  All behavior involving other types of request and response packets MUST remain unchanged.</t>
      <t>The mitigation methods outlined here allow systems to both protect themselves from the attack, while not breaking existing networks.  There is no global “flag day” required for these changes.  Systems which implement these recommendations are fully compatible with legacy RADIUS implementations, and can help to protect those legacy implementations.  However, when these mitigations are not fully implemented, systems may still be vulnerable to the attack.</t>
      <t>Note that when the RADIUS system does not do proxying, the attack can be mitigated simply by upgrading the RADIUS server, so that it sends Message-Authenticator as the first attribute in all responses to Access-Request packets.  However, the goal of this specification is to fix all architectures supported by RADIUS systems, rather than a limited subset.  We therefore mandate new behavior for all RADIUS clients and servers, while acknowledging that some organizations may choose to not deploy all of the new functionality.</t>
      <t>For overall network security and good practice, we still recommend that all RADIUS clients and servers be upgraded to use the new software which contains the mitigations, and also be configured with the highest level of security.  Doing so will ensure that configuration mistakes on one system will not reintroduce the vulnerability.</t>
      <section anchor="new-configuration-flags">
        <name>New Configuration Flags</name>
        <t>Clients and servers MUST implement the new configuration flags defined below, when RADIUS/UDP or RADIUS/TCP is used.  These flags MUST NOT be exposed in any administrative interface, or examined when RADIUS/DTLS or RADIUS/TLS is used.</t>
        <t>The behavior and meaning of these flags will be discussed in the following sections.  Introducing these flags before discussing their meaning makes the subsequent discussion simpler and easier to understand.</t>
        <t>The goal of these flags is to secure the RADIUS protocol without preventing communication between clients and servers, even when only one party has been upgraded.  These flags are designed to allow a gradual migration from both parties using legacy RADIUS, to fully upgraded and secured systems with all of the mitigations in place.</t>
        <ul empty="true">
          <li>
            <t>Clients MUST have a per-server boolean configuration flag, which we call “require Message-Authenticator”.  The default value for this flag MUST be “false” in order to maintain compatibility with legacy servers.</t>
            <t>Servers MUST have a per-client boolean configuration flag, which we call “require Message-Authenticator”.  The default value for this flag MUST be “false” in order to maintain compatibility with legacy clients.</t>
            <t>Servers MUST have a per-client boolean configuration flag, which we call “limit Proxy-State”.  The default value for this flag MUST be “false” in order to maintain compatibility with legacy clients.</t>
          </li>
        </ul>
        <t>It is RECOMMENDED that implementations support both a global setting, and per-client or per-server setting for the above flags.  For example, an implementation could support a global setting which is over-ridden by a more specific per-client or per-server setting.  The global setting could also be used if there was no more specific setting defined.</t>
        <t>The combination of global and more narrow configuration allows administrators to upgrade systems gradually, without requiring a "flag day" when everything changes on a global basis.</t>
        <t>The following sections explain how these flags are used, by following the flow of an Access-Request packet being sent from the client, to being received by the server, to the server sending a response, and finally to that response being received by the client.</t>
      </section>
      <section anchor="client-access-request">
        <name>Clients and Access-Request</name>
        <t>The following new behavior is mandated for RADIUS/UDP and RADIUS/TCP clients:</t>
        <ul empty="true">
          <li>
            <t>Clients MUST add Message-Authenticator to all Access-Request packets.</t>
          </li>
        </ul>
        <t>This behavior MUST NOT be configurable.  Disabling it would open the system up to attack, and would prevent the other mitigation methods from working.  The root cause of the attack is that Access-Request packets lack integrity checks.  Therefore, the most important fix is to add integrity checks to those packets.</t>
        <t>The Message-Authenticator SHOULD be the first attribute in all Access-Request packets.  That is, it should be placed immediately after the packet header.  Implementations MAY place the Message-Authenticator elsewhere in an Access-Request packet.</t>
        <t>From a cryptographic point of view, the location of Message-Authenticator does not matter for Access-Request packets, it just needs to exist somewhere in the packet.  However, the location of Message-Authenticator does matter for responses to Access-Request (Access-Accept, etc.).  It is better to have consistent and clear messaging for addressing this attack, instead of having different recommendations for different kinds of packets.</t>
        <t>However, many existing RADIUS clients do not currently send Message-Authenticator.  It also may be difficult to upgrade some client equipment, as the relevant vendor may have gone out of business, or may have marked equipment as “end of life” and thus unsupported.  It is therefore necessary for servers to work with such systems so as to not break existing RADIUS deployments, while at the same time protecting them as much as practically possible.</t>
      </section>
      <section anchor="server-access-request">
        <name>Servers and Access-Request</name>
        <t>The following new behavior is mandated for for RADIUS/UDP and RADIUS/TCP servers:</t>
        <ul empty="true">
          <li>
            <t>When receiving an Access-Request, servers MUST consult the value of the "require Message-Authenticator" flag prior to accepting the packet for processing.  This flag MUST NOT be consulted for other types of request packets.</t>
            <t>If the "require Message-Authenticator" flag is set to “false”, servers MUST follow legacy behavior for validating and enforcing the existence of Message-Authenticator in Access-Request packets.  For example, enforcing the requirement that all packets containing EAP-Message also contain a Message-Authenticator attributes, but otherwise accepting and validating the Message-Authenticator attribute if it is present, while taking no action if the attribute is missing.</t>
            <t>If the "require Message-Authenticator" flag is set to "false", servers MUST also check the value of the "limit Proxy-State" flag and either accept or discard the packet, based on the checks discussed in <xref target="limit-proxy-state"/>, below.</t>
            <t>If the "require Message-Authenticator" flag is set to “true”, the server MUST examine the Access-Request packets for the existence of the Message-Authenticator attribute. Access-Request packets which do not contain Message-Authenticator MUST be silently discarded.  This discard process MUST occur before the Message-Authenticator or Request Authenticator have been validated.</t>
            <t>For packets which are not discarded by the preceding check, the server MUST then validate the contents of the Message-Authenticator and then discard packets which fail this validation as per <xref section="5.14" sectionFormat="comma" target="RFC2869"/>.</t>
            <t>Servers MUST NOT discard a packet based on the location of the Message-Authenticator attribute.  We extend <xref section="5" sectionFormat="comma" target="RFC2865"/> to state that RADIUS clients and servers MUST NOT discard packets based on the order or location of any attribute.  If Message-Authenticator passes validation, then the packet is authentic and it has not been modified.  The location of Message-Authenticator within the packet does not matter for authenticated packets.</t>
          </li>
        </ul>
        <t>The default value for the "require Message-Authenticator" flag is “false” because many clients do not send the Message-Authenticator attribute in all Access-Request packets.  Defaulting to a value of "true" would mean that the server would be unable to accept packets from many legacy clients, and existing networks would break.</t>
        <t>We note that if this flag is “false”, the server can be vulnerable to the attack, even if the client has been updated to always send Message-Authenticator in all Access-Requests.  An attacker could simply strip the Message-Authenticator from the Access-Request, and proceed with the attack as if client had not been updated.  The server then does not see Message-Authenticator in the Access-Request, and accepts the modified packet for processing.</t>
        <t>When the "require Message-Authenticator" flag is set to "true", the server is protected from the BlastRADIUS attack on this client to server link.  Any packet which has been modified by the attacker to remove Message-Authenticator will be discarded by the server.  Any packet containing Message-Authenticator will be validated using the HMAC-MD5 construct, which is not vulnerable to this attack.</t>
        <t>The server may still, however, be vulnerable to the attack if it proxies packets to another server.  That is, the system as a whole is secure only when all possible client to server links are secured.</t>
        <t>Unfortunately, there is no way for clients and servers to negotiate protocol-layer features in RADIUS/UDP or RADIUS/TCP.  A server cannot know if invalid packets are being discarded due to an ongoing attack, or if they are being discarded due to a mismatched configuration between client and server.  Servers SHOULD therefore log the fact that an Access-Request packet was discarded (with rate limits) in order to inform the administrator that either an attack is underway, or that there is a configuration mismatch between client and server.</t>
        <section anchor="detecting-configuration-mismatches">
          <name>Detecting Configuration Mismatches</name>
          <t>As a special case for debugging purposes, instead of discarding the packet, servers MAY instead send a Protocol-Error or Access-Reject response packet.  This packet MUST contain a Message-Authenticator attribute as the first attribute in the packet, otherwise an attacker could turn this response into an Access-Accept.  The response MUST also contain an Error-Cause attribute with value 510 (Missing Message-Authenticator).  The server MUST not send this response by default, as it this could cause the server to respond to forged Access-Request packets.</t>
          <t>The purpose of this Protocol-Error packet is to allow administrators to signal misconfigurations between client and server.  It is intended to only be used temporarily when new client to server connections are being configured, and MUST be disabled permanently once the connection is verified to work.</t>
          <t>This behavior SHOULD only be enabled when specifically configured by an administrator.  It MUST also be rate-limited, as there is no need to signal this error on every packet received by the server.  It SHOULD be automatically disabled when the server receives an Access-Request from a client which contains Message-Authenticator.  Implementations MAY instead automate this process, by sending a few such responses when packets from a client are first seen, and then not sending responses thereafter.</t>
          <t>As RADIUS clients are upgraded over time, RADIUS server implementations SHOULD enable the “require Message-Authenticator” flag by default.</t>
          <t>The next question is how to protect systems when legacy clients do not send Message-Authenticator.</t>
        </section>
      </section>
      <section anchor="limit-proxy-state">
        <name>Updated Servers and Legacy Clients</name>
        <t>The following new behavior is mandated for RADIUS/UDP and RADIUS/DTLS servers:</t>
        <ul empty="true">
          <li>
            <t>When receiving an Access-Request and where the "require Message-Authenticator" flag is set to "false", servers MUST then consult the value of the "limit Proxy-State" flag for the client.</t>
            <t>If the "limit Proxy-State" flag is set to "false", servers MUST follow legacy behavior for validating and enforcing the existence of Message-Authenticator in Access-Request packets.  For example, enforcing the requirement that all packets containing EAP-Message also contain a Message-Authenticator attributes, but otherwise accepting and validating the Message-Authenticator attribute if it is present, while taking no action if the attribute is missing.  This behavior is the same as mandated by the previous section.</t>
            <t>If the "limit Proxy-State" flag is set to "true",  servers MUST require that all Access-Request packets which contain a Proxy-State attribute also contain a Message-Authenticator attribute.  Access-Request packets which contain Proxy-State but no Message-Authenticator MUST be silently discarded.</t>
            <t>If the packet does contain a Message-Authenticator. servers MUST validate its contents, and discard packets which fail this validation (<xref section="5.14" sectionFormat="comma" target="RFC2869"/>).</t>
          </li>
        </ul>
        <t>This flag is motivated by the realization that most NASes (i.e. not proxies) will never send Proxy-State in an Access-Request packet.  If a server sees Proxy-State in a packet from a NAS, it is a strong signal that an attacker is attempting the BlastRADIUS attack.  The BlastRADIUS attack depends on the construction and behavior of Proxy-State, and the attack is essentially impossible without using Proxy-State in an Access-Request.</t>
        <t>It is therefore safe to add a configuration flag which checks for Proxy-State, because well-behaving NASes will never send it.  The only time the server will see a Proxy-State from a NAS is when the attack is taking place.</t>
        <t>The behavior of this flag is not to simply discard Access-Request packets which contain an "unexpected" Proxy-State.  Instead, the behavior is to require such packets to be authenticated.  If a packet is authenticated via the existence of Message-Authenticator with validated contents, then the existence (or not) of Proxy-State does not matter; the packet should be accepted and processed by the server.</t>
        <t>On the other hand, if the packet cannot be authenticated by validating its Message-Authenticator, then the existence of an unexpected Proxy-State is suspicious, and the packet should be discarded.</t>
        <t>As with the previous section, servers SHOULD log a message when packets are discarded due to this flag.  Servers MAY also send an error response as discussed above, subject to the caveats and considerations described in the previous section for those responses.</t>
      </section>
      <section anchor="server-responses">
        <name>Server Responses to Access-Request</name>
        <t>The following behavior is mandated for RADIUS/UDP and RADIUS/TCP servers, when sending responses to Access-Request packets:</t>
        <ul empty="true">
          <li>
            <t>Servers MUST add Message-Authenticator as the first attribute in all responses to Access-Request packets.  That is, all Access-Accept, Access-Reject, Access-Challenge, and Protocol-Error packets.  The attribute MUST be the first one in the packet, immediately after the 20 octet packet header.</t>
          </li>
        </ul>
        <t>Adding Message-Authenticator as the first attribute means that for the purposes of MD5 known prefix attacks, the unknown suffix begins with the Message-Authenticator, and continues for the remainder of the packet.  The attacker is therefore unable to leverage the attack using a known prefix, and the vulnerability is mitigated.</t>
        <t>As it is difficult to upgrade both clients and servers simultaneously, we also need a method to protect clients when the server has not been updated.  That is, clients cannot depend on the Message-Authenticator existing in response packets.  Clients need to take additional steps to protect themselves, independent of any server updates.</t>
      </section>
      <section anchor="client-responses">
        <name>Clients Receiving Responses</name>
        <t>The following new behavior is mandated for RADIUS/UDP and RADIUS/TCP clients:</t>
        <ul empty="true">
          <li>
            <t>When receiving any response to an Access-Request packet (Access-Accept, Access-Challenge, Access-Reject, or Protocol-Error), clients MUST consult the "require Message authenticator" flag prior to accepting the packet for processing.  This flag MUST NOT be consulted for responses to other types of request packets.</t>
            <t>If the "require Message-Authenticator" flag is set to “false”, clients MUST follow legacy behavior for validating and enforcing the existence of Message-Authenticator in response packets.  For example, enforcing the requirement that all packets containing EAP-Message also contain a Message-Authenticator attributes, but otherwise accepting and validating the Message-Authenticator attribute if it is present, while taking no action if the attribute is missing.</t>
            <t>If the "require Message-Authenticator" flag is set to “true”, the client MUST examine the response packets for the existence of the Message-Authenticator attribute.  Response packets which do not contain Message-Authenticator MUST be silently discarded. This check MUST be done before the Response Authenticator or Message-
Authenticator has been verified.  No further processing of discarded packets should take place.</t>
            <t>The client MUST validate the contents of the Message-Authenticator and discard packets which fail this validation (<xref section="5.14" sectionFormat="comma" target="RFC2869"/>).</t>
            <t>Clients MUST NOT discard a packet based on the location of the Message-Authenticator attribute.  If Message-Authenticator passes validation, then the packet is authentic and it has not been modified.  The location of Message-Authenticator within the packet does not matter for authenticated packets.</t>
          </li>
        </ul>
        <t>When the response is discarded, the client MUST behave as if no response was received.  That is, any existing retransmission timers MUST NOT be modified as a result of receiving a packet which is silently discarded.</t>
        <t>Unfortunately, the client cannot determine if invalid packets are being discarded due to an ongoing attack, or if they are being discarded due to a mismatched configuration between client and server (e.g. mis-matched shared secret).  The client SHOULD log the fact that the packet was discarded (with rate limits) in order to inform the administrator that either an attack is underway, or that there is a configuration mismatch between client and server.</t>
        <t>The above discussions have followed the complete path from client, to server, and back again.  If each client to server hop is secured via the above methods, then by construction, systems using RADIUS/UDP or RADIUS/TCP are no longer vulnerable to the BlastRADIUS attack.</t>
      </section>
      <section anchor="status-server">
        <name>Status-Server</name>
        <t>While the BlastRADIUS attack works only for Access-Request packets, Access-Accept or Access-Reject can also be sent in response to Status-Server packets (<xref target="RFC5997"/>).  In order to simplify client implementations, we mandate the following new behavior with respect to Status-Server:</t>
        <ul empty="true">
          <li>
            <t>Servers MUST follow the above recommendations relating to Message-Authenticator when sending Access-Accept, Access-Challenge, or Access-Reject packets, even if the original request was Status-Server.</t>
          </li>
        </ul>
        <t>This requirement ensures that clients can examine responses independent of any requests.  That is, a client can perform a simple verification pass of response packets prior to doing any more complex correlation of responses to request.</t>
        <t>We note that <xref section="3" sectionFormat="comma" target="RFC5997"/> states:</t>
        <ul empty="true">
          <li>
            <t>.. all Status-Server packets MUST include a Message-Authenticator attribute.  Failure to do so would mean that the packets could be trivially spoofed.</t>
          </li>
        </ul>
        <t>As a result, compliant implementations of <xref target="RFC5997"/> do not need to change their behavior with respect to sending or receiving Status-Server packets: they are already protected against the BlastRADIUS attack.</t>
      </section>
      <section anchor="documentation-and-logging">
        <name>Documentation and Logging</name>
        <t>It is RECOMMENDED that RADIUS server implementations document the behavior of these flags in detail, including how they help protect against this attack.  An informed administrator is more likely to engage in secure practices.</t>
        <t>Similarly, when any of the above flags cause a packet to be discarded, the system SHOULD log a descriptive message (subject to rate limiting) about the problematic packet.  This log is extremely valuable to administrators who wish to determine exactly what is going wrong, and what actions can be taken to correct the issue.</t>
      </section>
      <section anchor="summary">
        <name>Summary</name>
        <t>The following list outlines the requirements on client implementations, and references the prior sections which contain the normative text.  The intent is to give readers a short checklist which lets them quickly validate that their implementations are correct.  While the following list does not contain normative text (in order to avoid potential conflict or confusion), the reader should follow the references below to verify that the behavior described below is truly normative.</t>
        <ul spacing="normal">
          <li>
            <t>clients include Message-Authenticator in all Access-Request packets,
<xref target="client-access-request"/>  </t>
            <ul spacing="normal">
              <li>
                <t>clients can place Message-Authenticator as the first attribute in
all Access-Request packets, but this placement is not required for
security.</t>
              </li>
            </ul>
          </li>
          <li>
            <t>clients validate the contents of Message-Authenticator in all
packets that they receive, <xref section="5.14" sectionFormat="comma" target="RFC2869"/></t>
          </li>
          <li>
            <t>clients do not check the location of Message-Authenticator in any
response packet that they receive, <xref target="client-responses"/></t>
          </li>
          <li>
            <t>clients do not discard packets which contain unknown attributes,
<xref target="unknown-attributes"/></t>
          </li>
          <li>
            <t>clients implement a boolean configuration flag "require
Message-Authenticator", <xref target="new-configuration-flags"/>  </t>
            <ul spacing="normal">
              <li>
                <t>If set to "false", clients do not take any additional steps.</t>
              </li>
              <li>
                <t>if set to "true", clients discard all responses to Access-Request
packets which do not contain Message-Authenticator.  This discard
happens before the Response Authenticator or Message-Authenticator
are validated.</t>
              </li>
            </ul>
          </li>
        </ul>
        <t>The following list outlines requirements on server implementations, with the same explanations and caveats given above for the list of requirements on client implementations.</t>
        <ul spacing="normal">
          <li>
            <t>servers validate the contents of Message-Authenticator in all
packets that they receive, <xref target="server-access-request"/></t>
          </li>
          <li>
            <t>server do take check the location of Message-Authenticator in any
request packet that they receive, <xref target="server-responses"/></t>
          </li>
          <li>
            <t>servers do not discard packets which contain unknown attributes,
<xref target="unknown-attributes"/></t>
          </li>
          <li>
            <t>servers implement a boolean configuration flag "require
Message-Authenticator", <xref target="new-configuration-flags"/>  </t>
            <ul spacing="normal">
              <li>
                <t>If set to "false", servers implement checks for the "limit
Proxy-State" flag.</t>
              </li>
              <li>
                <t>if set to "true", servers discard all Access-Request packets which
do not contain a Message-Authenticator attribute.  This discard
happens before the Request Authenticator or Message-Authenticator
are validated.  Servers then do not implement the checks for the
"limit Proxy-State" flag.</t>
              </li>
            </ul>
          </li>
          <li>
            <t>servers implement a boolean configuration flag "limit Proxy-State",
<xref target="new-configuration-flags"/> and <xref target="limit-proxy-state"/>.  </t>
            <ul spacing="normal">
              <li>
                <t>servers check this flag only when the "require
Message-Authenticator" flag is set to "false".</t>
              </li>
              <li>
                <t>If set to "false", servers take no further action.</t>
              </li>
              <li>
                <t>If set to "true", servers discard all Access-Request packets which
do not contain Message-Authenticator, and which also contain one
or more Proxy-State attributes.  This discard happens before the
Request Authenticator or Message-Authenticator are validated.</t>
              </li>
            </ul>
          </li>
          <li>
            <t>servers include Message-Authenticator in all responses to
Access-Request packets, <xref target="server-responses"/></t>
          </li>
          <li>
            <t>servers include Message-Authenticator in all Access-Accept,
Access-Reject, Access-Challenge, and Protocol-Error packets,
<xref target="server-responses"/> and <xref target="status-server"/></t>
          </li>
          <li>
            <t>servers place Message-Authenticator as the first attribute in all
responses to Access-Request packets, and in all Access-Accept,
Access-Reject, and Access-Challenge packets, <xref target="server-responses"/>.</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="new-requirements-on-clients-and-servers">
      <name>New Requirements on Clients and Servers</name>
      <t>This section defines a number of updates to the RADIUS protocol, in order to address interoperability issues.  While these updates do not directly increase the security of the protocol, they correct implementation errors which cause the protocol to be more fragile.</t>
      <section anchor="attribute-location">
        <name>Attribute Location and Ordering</name>
        <t>While <xref section="5" sectionFormat="comma" target="RFC2865"/> states that attribute ordering does not matter, some implementations would discard packets attributes were not received in a particular order chosen by the implementer.  Specifically, some implementations misunderstood the requirement (from the BlastRADIUS mitigations) that Message-Authenticator is sent as the first attribute in responses to Access-Request packets.  Despite the mandate that clients do not check the location of Message-Authenticator, non-compliant implementations would discard valid and authentic Access-Request packets where Message-Authenticator was not the first attribute.  This behavior is not appropriate.</t>
        <t>The <xref section="5" sectionFormat="comma" target="RFC2865"/> text defining attribute order (quoted below) does not cover all possible cases:</t>
        <artwork><![CDATA[
If multiple Attributes with the same Type are present, the order of
Attributes with the same Type MUST be preserved by any proxies.  The
order of Attributes of different Types is not required to be
preserved.  A RADIUS server or client MUST NOT have any dependencies
on the order of attributes of different types.  A RADIUS server or
client MUST NOT require attributes of the same type to be contiguous.
]]></artwork>
        <t>We add a missing case here.</t>
        <t>A RADIUS client or server MUST NOT have dependencies on the order or location of a particular attribute.  A RADIUS client or server MUST NOT discard otherwise valid packets which have attributes in an order which is unexpected to the implementation, but which is valid by the above rules.</t>
        <t>For example, if Message-Authenticator passes validation, then the packet is authentic and it has not been modified. The location of Message-Authenticator within the packet does not matter for authenticated packets.  If can be the first, second, or last attribute, without any difference in meaning.</t>
      </section>
      <section anchor="unknown-attributes">
        <name>Unknown Attributes</name>
        <t>Another outcome of the BlastRADIUS mitigations was the discovery that some implementations would discard packets which contained an attribute that they did not recognize.  While this behavior is not explicitly permitted by previous specifications, it is not explicitly forbidden, either.  This document corrects that failure.</t>
        <t>Unknown attributes are defined as attributes which are well-formed, but which are not recognized by the implementation.  Processing of unknown attributes is discussed in <xref section="5" sectionFormat="comma" target="RFC2866"/>:</t>
        <ul empty="true">
          <li>
            <t>A RADIUS server MAY ignore Attributes with an unknown Type.</t>
            <t>A RADIUS client MAY ignore Attributes with an unknown Type.</t>
          </li>
        </ul>
        <t>We note this recommendation is to "ignore" these attributes, and not to discard the encapsulating packet. Instead of ignoring unknown attributes, some implementations erroneously discard those packets.  This behavior leads to interoperability issues and network problems.</t>
        <t>We update <xref target="RFC2865"/> to require that implementations MUST ignore Attributes with an unknown Type.   Those attributes MUST be treated in the same manner as an "Invalid Attribute" which is defined in <xref section="2.8" sectionFormat="comma" target="RFC6929"/>.  The only exception to the above requirements is CoA-Request and Disconnect-Request packets, as discussed in <xref section="4.3.2" sectionFormat="comma" target="RFC8559"/>.</t>
        <t>For all situations other than the ones discussed in  <xref section="4.3.2" sectionFormat="comma" target="RFC8559"/>, implementations MUST NOT discard a packet if it contains an attribute with an unknown Type.</t>
        <t>This behavior is secure, so long as implementations follow some additional guidance for Access-Accept packets.  This guidance follows logically from existing text in <xref section="4.4" sectionFormat="comma" target="RFC2865"/> for similar situations with Access-Challenge:</t>
        <ul empty="true">
          <li>
            <t>If the NAS does not support challenge/response, it MUST treat an
Access-Challenge as though it had received an Access-Reject
instead.</t>
          </li>
        </ul>
        <t>And also for Service-Type in <xref section="5.6" sectionFormat="comma" target="RFC2865"/>:</t>
        <ul empty="true">
          <li>
            <t>A NAS is not
required to implement all of these service types, and MUST treat
unknown or unsupported Service-Types as though an Access-Reject
had been received instead.</t>
          </li>
        </ul>
        <t>A client is not required to implement all possible authorizations which can be sent in an Access-Accept.   We therefore extend the above scenarios to packets which contain unknown Types.  A client MUST treat Access-Accepts with no known or supported authorizations as though an Access-Reject had been received instead.</t>
        <t>This requirement for unknown Types is already met by most, if not all, RADIUS implementations.  That is, experience has shown that discarding packets for arbitrary reasons causes problems.  Existing implementations have largely chosen to follow reasonable practices, and the recommendation here simply documents that wide-spread practice.</t>
      </section>
      <section anchor="delaying-access-rejects">
        <name>Delaying Access-Rejects</name>
        <t>Anyone can cause a NAS to send Access-Request packets at will, simply by attempting to requesting network access, or login permissions from the NAS.  If this login process is not rate-limited, it can be abused by an attacker to perform dictionary attacks.</t>
        <t>In order to prevent these brute-force attacks, servers which directly receive packets from a NAS MUST enforce a minimum delay between reception of the Access-Request and transmission of any corresponding Access-Reject.  This delay SHOULD be configurable.  Experience shows that values of about one (1) second work well in practice.</t>
        <t>Implementers should note that this delay requirement does not need to be implemented proxies or home servers.  A proxy or home server MAY enforce a similar delay between reception of the Access-Request and transmission of a corresponding Access-Reject.  For proxies, this delay MUST NOT be additive.  That is, proxies do not add a fixed delay to Access-Reject packets.  Instead, proxies can enforce a minimum delay between Access-Request and Access-Reject.</t>
        <t>If multiple servers in a chain of proxies were to each add a delay, the delays woud be cumultative, and therefore problematic.  Therefore, the requirement is for proxies to enforce a minimum delay.</t>
        <t>Servers SHOULD also add a small random jitter to any preconfigured delay, in order to better protect themselves from timing attacks.</t>
      </section>
    </section>
    <section anchor="migrating-away-from-insecure-transports">
      <name>Migrating Away from Insecure Transports</name>
      <t>We recognize that it is difficult to upgrade legacy devices with new cryptographic protocols and user interfaces.  The problem is made worse because of the volume of RADIUS devices which are in use.  The exact number is unknown, and can only be approximated.  Our best guess is that at the time of this writing there are millions of devices supporting RADIUS/UDP in daily use.  It takes significant time and effort to correct the deficiencies of all of them.</t>
      <t>This section therefore documents a migration path from RADIUS/UDP to secure transports.  In the following sections, we give a number of migration steps which could each be done independently.  We recommend increased entropy for shared secrets. Finally, where <xref target="RFC6614"/> Section 2.3 makes support for TLS-PSK optional, we suggest that RADIUS/TLS and RADIUS/DTLS implementations SHOULD support TLS-PSK.</t>
      <section anchor="recommending-tls-psk">
        <name>Recommending TLS-PSK</name>
        <t>Given the insecurity of RADIUS/UDP, the absolute minimum acceptable security is to use strong shared secrets.  However, administrator overhead for TLS-PSK is not substantially higher than for shared secrets, and TLS-PSK offers significantly increased security and privacy.</t>
        <t>It is therefore RECOMMENDED that implementations support TLS-PSK.  In some cases TLS-PSK is preferable to certificates.  It may be difficult for RADIUS clients to upgrade all of their interfaces to support the use of certificates, and TLS-PSK more closely mirrors the historical use of shared secrets, with similar operational considerations.</t>
        <t>Additional implementation and operational considerations for TLS-PSK are given in <xref target="I-D.ietf-radext-tls-psk"/>.</t>
      </section>
      <section anchor="network-operators">
        <name>Network Operators</name>
        <t>It is RECOMMENDED that all RADIUS traffic be sent over a management VLAN.  This recommendation should be followed even if TLS transport is used.  There is no reason to mix user traffic and management traffic on the same network.</t>
        <t>Using a management network for RADIUS traffic will generally prevent anyone other than trusted administrators from attacking RADIUS.  We say “generally”, because security is limited by the least secure part of the network.  If a network device has some unrelated vulnerability, then an attacker could exploit that vulnerability to gain access to the management network.  The attacker would then be free to exploit the RADIUS infrastructure.</t>
        <t>As noted above, it is RECOMMENED that all RADIUS traffic use TLS transport between client and server, even when the local network is believed to be secure.  While IPSec is useful to connect disparate sites across untrusted networks, it is still useful to use TLS transport to secure RADIUS traffic.  A defense in depth strategy helps to protect the network from both active attacks, and from accidental changes which decrease network security.</t>
        <t>All networking equipment should be physically secure.  There is no reason to have critical portions of networking infrastructure physically accessibly to the public.  Where networking equipment must be in public areas (e.g. access points), that equipment SHOULD NOT have any security role in the network.  Instead, any network security validation or enforcement SHOULD be done by separate equipment which is in a physically secure location.</t>
        <t>Similarly, the use of RADIUS/TCP in any circumstances is NOT RECOMMENDED.  Any system which supports RADIUS/TCP is also likely to support TLS, and that SHOULD be used instead.</t>
      </section>
      <section anchor="deploying-the-blastradius-mitigations">
        <name>Deploying the BlastRADIUS Mitigations</name>
        <t>The preceding sections define requirements for client and server implementations which address the BlastRADIUS attack.   It is useful to also provide guidelines for administrators as to how, and when, to set the new configuration flags.  The guidelines provided in this section are a suggestion only.  Administrators are free to take other actions as they see fit.</t>
        <t>The guidelines provided here are known to provide minimal outages while upgrading complex systems.  As such, it is RECOMMENDED that administrators follow the steps outlined here, in order, so that RADIUS systems can be upgraded with minimal impact to operational networks.</t>
        <ol spacing="normal" type="1"><li>
            <t>Administrators SHOULD upgrade servers before upgrading clients.  There are many fewer clients than servers, and upgrading servers can often protect clients which are not upgraded.</t>
          </li>
          <li>
            <t>Administrators SHOULD configure servers to set "limit Proxy-State" to "true" for all clients which are NASes.  i.e. clients which are not proxies.</t>
          </li>
          <li>
            <t>Administrators of servers which proxy packets SHOULD verify that all "next hop" proxies have been upgraded, and that they return Message-Authenticator in all responses to Access-Request packets.</t>
          </li>
          <li>
            <t>Once step (3) has been validated, administrators SHOULD configure their proxy so that the outgoing client configuration sets the "require Message-Authenticator" flag to "true".</t>
          </li>
          <li>
            <t>Administrators of servers which receive proxied packets (i.e. packets not from a NAS) SHOULD configure the server to set the the "require Message-Authenticator" flag to "true" for each client which is an upgraded proxy.</t>
          </li>
        </ol>
        <t>Once the above five steps are followed, the network should be secure, and any client upgrade and configuration can be done over time.</t>
        <t>For client upgrades, administrators can proceed with the following steps:</t>
        <ol spacing="normal" type="1"><li>
            <t>Administrators SHOULD upgrade clients individually, i.e. one at a time. Upgrading multiple clients at the same time is NOT RECOMMENDED.</t>
          </li>
          <li>
            <t>Once a client has been upgraded, administrators SHOULD verify that it sends Message-Authenticator in all Access-Request packets.</t>
          </li>
          <li>
            <t>Once step (2) has been validated, administrators SHOULD configure each server that receives packets from that client to set the "require Message-Authenticator" flag to "true" for that client.</t>
          </li>
          <li>
            <t>If a server has been updated, administrators SHOULD verify that it sends Message-Authenticator as the first attribute in all responses to Access-Request packets.</t>
          </li>
          <li>
            <t>Once step (4) has been validated, administrators SHOULD configure each client receiving packets from that server to set the "require Message-Authenticator" flag to "true" for that server.</t>
          </li>
        </ol>
        <t>Once all of the above steps are followed for all clients and servers, the network is secure from the BlastRADIUS attack.</t>
      </section>
    </section>
    <section anchor="practices-to-increase-radius-security-and-privacy">
      <name>Practices to Increase RADIUS Security and Privacy</name>
      <t>While we still permit the use of UDP and TCP transports in secure environments, there are opportunities for increasing the security of RADIUS when those transport protocols are used.  The amount of personal identifiable information (PII) sent in packets should be minimized.  Information about the size, structure, and nature of the visited network should be omitted or anonymized.  The choice of authentication method also has security and privacy impacts.</t>
      <t>The recommendations here for increasing the security of RADIUS transports also applies when TLS is used.  TLS transports protect the RADIUS packets from observation by from third-parties.  However, TLS does not hide the content of RADIUS packets from intermediate proxies, such as ones uses in a roaming environment.  As such, the best approach to minimizing the information sent to proxies is to minimize the number of proxies which see the RADIUS traffic, and to minimize the amount of PII which is sent.</t>
      <t>Implementers and administrators need to be aware of all of these issues, and then make the best choice for their local network which balances their requirements on privacy, security, and cost.  Any security approach based on a simple "checklist" of "good / bad" practices is likely to result in decreased security as compared to an end-to-end approach which is based on understanding the issues involved.</t>
      <section anchor="shared-secrets">
        <name>Use Long and Complex Shared Secrets</name>
        <t><xref target="RFC2865"/> Section 3 says:</t>
        <ul empty="true">
          <li>
            <t>It is preferred that the secret be at least 16
octets.  This is to ensure a sufficiently large range for the
secret to provide protection against exhaustive search attacks.
The secret MUST NOT be empty (length 0) since this would allow
packets to be trivially forged.</t>
          </li>
        </ul>
        <t>This recommendation is no longer adequate, so we strengthen it here.</t>
        <t>RADIUS implementations MUST support shared secrets of at least 32 octets, and SHOULD support shared secrets of 64 octets.  Implementations MUST warn administrators that the shared secret is insecure if it is 12 octets or less in length.</t>
        <t>Administrators SHOULD use shared secrets of at least 24 octets, generated using a source of secure random numbers.   Any other practice is likely to lead to compromise of the shared secret, user information, and possibly of the entire network.</t>
        <t>Creating secure shared secrets is not difficult.  The following figure outlines four separate ways to create shared secrets.</t>
        <artwork><![CDATA[
    openssl rand -base64 16

    dd if=/dev/urandom bs=1 count=16 | base64

    dd if=/dev/urandom bs=1 count=16 | base32

    dd if=/dev/urandom bs=1 count=16 |
        (hexdump -ve '/1 "%02x"' && echo)
]]></artwork>
        <t>Only one of the above commands should be run, as they are functionally equivalent.  Each command reads 128 bits (16 octets) of random data from a secure source, and encodes it as printable / readable ASCII.  This form of PSK will be accepted by any implementation which supports at least 32 octets for PSKs.  Larger PSKs can be generated by changing the "16" number in the command to a larger value.  The above derivation assumes that the random source returns one bit of entropy for every bit of randomness which is returned.  Sources failing that assumption are NOT RECOMMENDED.</t>
        <t>Given the simplicity of creating strong secrets, there is no excuse for using weak shared secrets with RADIUS.  The management overhead of dealing with complex secrets is less than the management overhead of dealing with compromised networks.</t>
        <t>Over all, the security analysis of shared secrets is similar to that for TLS-PSK.  It is therefore RECOMMENDED that implementers manage shared secrets with same the practices which are recommended for TLS-PSK, as defined in <xref target="RFC8446"/> Section E.7 and <xref target="RFC9257"/> Section 4.</t>
        <t>On a practical note, implementers SHOULD provide tools for administrators to help them create and manage secure shared secrets.  The cost to do so is minimal for an implementer.  Providing such tools can further enable and motivate administrators to use secure practices.</t>
      </section>
      <section anchor="use-constant-time-comparisons">
        <name>Use Constant Time Comparisons</name>
        <t>Both clients and servers SHOULD use constant-time operations to compare received versus calculated values which depend on secret information.  If comparison operations are stopped as soon as a difference is seen, an attacker could using timing attacks to determine the correct underlying values, even without seeing them.  A constant-time operation instead compares the entire value, accumulating the result along the way.  Only when the entire value has been examined does the comparison return a "match" or "no-match" result.</t>
        <t>Constant-time operations SHOULD be used for the Request Authenticator and Response Authenticator fields.  Constant time comparisons SHOULD be used for attributes which directly contain secret values (e.g. User-Password), or are derived from secret values (e.g. CHAP-Password, and Message-Authenticator).</t>
      </section>
      <section anchor="limit-the-use-of-user-password">
        <name>Limit the use of User-Password</name>
        <t>The design of RADIUS means that when proxies receive Access-Request packets, the clear-text contents of the User-Password attribute are visible to the proxy.  Despite various claims to the contrary, the User-Password attribute is never sent "in the clear" over the network.  Instead, the password is protected by TLS (RADIUS/TLS) or via the obfuscation methods defined in <xref section="5.2" sectionFormat="comma" target="RFC2865"/>.  However, the nature of RADIUS means that each proxy must first undo the password obfuscation of <xref target="RFC2865"/>, and then re-do it when sending the outbound packet.  As such, the proxy has the clear-text password visible to it, and stored in its application memory.</t>
        <t>It is therefore possible for every intermediate proxy to snoop and record all User-Name and User-Password values which they see.  This exposure is most problematic when the proxies are administered by an organization other than the one which operates the home server.  Even when all of the proxies are operated by the same organization, the temporary existence of clear-text passwords on multiple machines is a security risk.</t>
        <t>It is therefore NOT RECOMMENDED for organizations to send the User-Password attribute in packets which are sent outside of the organization.  If RADIUS proxying is necessary, another authentication method which provides for end-to-end security of user information SHOULD be used, such as EAP-TLS, TTLS, or PEAP.</t>
        <t>Organizations MAY still use User-Password attributes within their own systems.</t>
        <t>Client and server implementations MUST use secure programming techniques to wipe passwords and other sensitive data from memory when they are no longer needed.</t>
      </section>
      <section anchor="use-pap-in-preference-to-chap-and-ms-chap">
        <name>Use PAP in preference to CHAP and MS-CHAP</name>
        <t>When the system as a whole is taken into account, the risk of password compromise is substantially less with PAP than with CHAP or MS-CHAP.  The full reasons are outlined in <xref target="I-D.dekok-radext-review-radius"/> an <xref target="ms-chap"/>.</t>
        <t>It is therefore RECOMMENDED that administrators use PAP in preference to CHAP or MS-CHAP.  It is also RECOMMENDED that administrators store passwords "at rest" in a secure form (salted, hashed), as with the "crypt" format discussed above.</t>
        <t>That being said, other authentication methods such as EAP-TLS <xref target="RFC9190"/> and EAP-pwd <xref target="RFC5931"/> do not expose clear-text passwords to the RADIUS server or any intermediate proxy.  Thor methods therefore lower the risk of password exposure even more than using PAP.  It is RECOMMENDED that administrators avoid password-based authentication methods where at all possible.</t>
      </section>
      <section anchor="use-eap-where-possible">
        <name>Use EAP Where Possible</name>
        <t>If more complex authentication methods are needed, there are a number of EAP methods which can be used.  These methods variously allow for the use of certificates (EAP-TLS), or passwords (EAP-TTLS <xref target="RFC5281"/>, PEAP <xref target="I-D.josefsson-pppext-eap-tls-eap"/>)) and EAP-pwd <xref target="RFC5931"/>.</t>
        <t>We also note that the TLS-based EAP methods which transport passwords also hide the passwords from intermediate RADIUS proxies, which also increases security.</t>
        <t>Finally, password-based EAP methods still send PAP / CHAP / MS-CHAP inside of the TLS tunnel.  As such, the security of a home server which checks those passwords is subject to the analysis above about PAP versus CHAP, along with the issues of storing passwords in a database.</t>
      </section>
      <section anchor="minimize-the-use-of-proxies">
        <name>Minimize the use of Proxies</name>
        <t>The design of RADIUS means that even when RADIUS/TLS is used, every intermediate proxy has access to all of the information in each packet.  The only way to secure the network from such observers is to minimize the use of proxies.</t>
        <t>Where it is still necessary to use intermediate proxies such as with eduroam <xref target="EDUROAM"/> and OpenRoaming <xref target="OPENROAMING"/>, it is RECOMMENDED to use EAP methods instead of bare PAP, CHAP, or MS-CHAP.  If passwords are used, they can be can be protected from being seen by proxies via TLS-based EAP methods such as EAP-TTLS or PEAP.  Passwords can also be omitted entirely from being sent over the network, as with EAP-TLS <xref target="RFC9190"/> or EAP-pwd <xref target="RFC5931"/>.</t>
        <t>In many cases, however, the existence of proxies is to either due contractual obligations, or to a need to solve "N by M" connection problems.  A centralized proxy system can often simplify overall network management and maintenance.</t>
        <section anchor="eliminate-proxies-where-possible">
          <name>Eliminate Proxies Where Possible</name>
          <t>The best way to avoid malicious proxies is to eliminate proxies entirely.  The use of dynamic peer discovery (<xref target="RFC7585"/>) means that the number of intermediate proxies is minimized.</t>
          <t>However, the server on the visited network still acts as a proxy between the NAS and the home network.  As a result, all of the above analysis still applies when <xref target="RFC7585"/> peer discovery is used.  There is an intermediate system which may have access to passwords or PII.  The only solution is using end-to-end security for AAA, which would involve a completely new protocol.</t>
        </section>
        <section anchor="there-is-no-radius-routing-protocol">
          <name>There is no RADIUS Routing Protocol</name>
          <t>While <xref target="RFC7585"/> allows for a client to connect directly to a server, that configuration is not always used.  Historically, RADIUS systems implemented realm <xref target="RFC7542"/> roaming, where multiple visited networks were connected to multiple home via chains of intermediate proxies <xref target="RFC2194"/>.  As there is no RADIUS routing protocol to control realm forwarding through these proxies, there is therefore no way to automatically determine which realms are routable, or how best to route packets for known realms.</t>
          <t>The outcome of this limitation is that all such realm routing rules are largely configured statically, manually, and individually on multiple systems.  This process can be automated within one administrative system, but it is open to mistakes or abuse in multi-system networks.</t>
          <t>In RADIUS, each proxy which sees traffic is completely trusted.  It can modify, filter, or record any packets which transit the proxy.  This ability means that a proxy can engage in a large number of negative behaviors.  For example, a proxy could forge Access-Request packets for realms which it knows about, and potentially perform dictionary attacks on home networks.  A proxy could also alter or invent data in Accounting-Request packets, in order to defraud a home server of revenue.  A proxy could also observe Accounting-Request traffic, and use the obtained information to forge Disconnect-Request packets.</t>
          <t>Proxies can also inject traffic for realms which do not normally transit the proxy.  Without a routing protocol, there is no way for a home server to automatically control which set of realms is allowed to be sent from a particular client.  There is also no general way for a proxy to signal that a particular Access-Request or Accounting-Request is non-routable: it must be either rejected or discarded.</t>
          <t>Visited sites also have no control over proxies past the ones that they have relationships with.  Subsequent proxies are completely unknown, and unknowable to the visited network.  Despite these systems being completely unknown, they are completely trusted due to limitations in the RADIUS protocol.</t>
          <t>That is, there is no fine-grained way for a visited or home network to limit which intermediary systems see traffic for their realms, or what traffic can be seen by those systems.  While these filtering rules can be manually documented as seen in <xref target="FILTER"/>, this process is error-prone, and fragile.</t>
          <t>Administrators should be aware of the above issues: fraud, forgery, and filtering are all possible in a "trusted" RADIUS ecosystem.</t>
          <t>Historically, these issues do not appear to have been widely exploited.  The most common defense against these attacks is to limit RADIUS relationships to entities which share a contractual relationship.  This relationship can be direct between clients, servers, and proxies.  This relationship can also be indirect, as when multiple organizations are members of a shared consortium such as eduroam.</t>
          <t>Implementations therefore SHOULD provide methods by which routing information can be tied to particular clients and to particular home servers.  Implementations SHOULD allow packets to be filtered by some combination of realm and client or home server.  Administrators SHOULD take advantage of these filters to double-check that received traffic is coming from the expected sources, and contains the expected realms.</t>
        </section>
        <section anchor="dynamic-discovery-and-filtering">
          <name>Dynamic Discovery and Filtering</name>
          <t>When <xref target="RFC7585"/> dynamic discovery is used, intermediate proxy hops are avoided.  There are a number of possible attacks here, though <xref section="5" sectionFormat="comma" target="RFC7585"/> largely limits its discussion to rate limiting of connections.</t>
          <t>A client which supports dynamic discovery of home servers still has to perform filtering on NAI realms before doing any lookups.  When no filtering takes place, an attacker can cause a RADIUS client to do DNS lookups for arbitrary domains, and then cause it to connect to arbitrary servers.  As there is no RADIUS routing protocol, there is no general way for a client to determine which realms are part of a particular organization, and are thus permitted for dynamic DNS lookups.</t>
          <t>Organizations relying on dynamic discovery SHOULD have some way of automatically sharing which realms are valid, and which are not.  There are a number of possibilities here, and choosing the best one is up to each individual organization.</t>
          <t>Clients supporting dynamic discovery SHOULD require that servers use certificates from a private Certification Authority (CA).  Clients MUST NOT automatically accept server certificates rooted from public CAs (e.g. as is done for web servers).  Instead, clients MUST be configurable to use only a limited set of CAs.  The default list of accepted CAs SHOULD be empty.</t>
          <t>Similarly, servers SHOULD require that clients use certificates from a private Certification Authority (CA).  Servers MUST NOT accept client certificates rooted from a public CA.</t>
          <t>Servers which accept connections from dynamic discover are necessarily open to the Internet.  Administrators SHOULD limit the source IP of allowed connections.  Server SHOULD filter received packets by NAI, and close connections when the NAIs in incoming packets do not match the NAI(s) that the server expects.  This mismatch indicates either a misconfigured or malicious client.</t>
          <t>Both clients and servers can send any data inside of a TLS tunnel.  Implementations SHOULD take care to treat the data inside of a TLS tunnel as a potential source of attacks.</t>
          <t>Where multiple realms resolve to the same destination IP address, implementations MAY send packets for multiple realms across a connection to that IP address.  Clients SHOULD use SNI to indicate which realm they are connecting to.  Servers SHOULD present a certificate for the requested realm, instead of using a shared or "hosting" certificate which is owned by the hosting provider, and is used by multiple realms.  Such certificate sharing decreases security, and increases operational costs.</t>
          <t>Where systems do not have a pre-defined list of allowed realms, implementations MUST support negative caching.  That is, if the lookup for a particular realm fails, or a connection to that realm fails, then the implementation needs to cache that negative result for a period of time.  This cache needs to be examined prior to any new lookup or connection being made.  If there is an entry in the negative cache, then the server MUST skip the lookup or connection attempt, and instead return an immediate error.  This negative cache time SHOULD be configurable.</t>
          <t>Other attacks are possible.  If there are implementation bugs in a clients TLS library, an attacker could use dynamic discovery to cause the client to connect to a malicious server, and then use the server to attack the client.  A malicious server could also slow down its TCP connection to engage client resources for extended periods of time.  This process could even be done even before any TLS credentials are exchanged.</t>
          <t>In general, <xref target="RFC7585"/> dynamic discovery is substantially different from normal application protocols which use TLS.  There is substantial attack surface added by an unknown, and unauthenticated user who can cause a RADIUS client to connect to arbitrary systems under an attacker control.  Dynamic discovery should be used with care, and only with substantial amounts of filtering on the NAI realms which are allowed, and only with stringent limits on the number of lookups, connection attempts, open connections, etc.</t>
        </section>
      </section>
      <section anchor="minimize-personal-identifiable-information">
        <name>Minimize Personal Identifiable Information</name>
        <t>One approach to increasing RADIUS privacy is to minimize the amount of PII which is sent in packets.  Implementers of RADIUS products and administrators of RADIUS systems SHOULD ensure that only the minimum necessary PII is sent in RADIUS.</t>
        <t>Where possible, identities should be anonymized (e.g. <xref target="RFC7542"/> Section 2.4).  The use of anonymized identities means that the the Chargeable-User-Identifier <xref target="RFC4372"/> should also be used.  Further discussion on this topic is below.</t>
        <t>Device information SHOULD be either omitted, or randomized.  e.g. MAC address randomization could be used on end-user devices.  The details behind this recommendation are the subject of ongoing research and development.  As such, we do not offer more specific recommendations here.</t>
        <t>Information about the visited network SHOULD be replaced or anonymized before packets are proxied outside of the local organization.  The attribute Operator-NAS-Identifier <xref target="RFC8559"/> can be used to anonymize information about NASes in the local network.</t>
        <t>Location information (<xref target="RFC5580"/> SHOULD either be omitted, or else it SHOULD be limited to the broadest possible information, such as country code. For example, <xref target="I-D.tomas-openroaming"/> says:</t>
        <ul empty="true">
          <li>
            <t>All OpenRoaming ANPs MUST support signaling of location information</t>
          </li>
        </ul>
        <t>This location information is required to include at the minimum the country code.  We suggest the country code SHOULD also be the maximum amount of location information which is sent over third-party networks.</t>
        <section anchor="creating-chargeable-user-identity">
          <name>Creating Chargeable-User-Identity</name>
          <t>Where the Chargeable-User-Identity (CUI) <xref target="RFC4372"/> is used, it SHOULD be unique per session.  This practice will help to maximize user privacy, as it will be more difficult to track users across multiple sessions.  Due to additional constraints which we will discuss below, we cannot require that the CUI change for every session.</t>
          <t>What we can do is to require that the home server MUST provide a unique CUI for each combination of user and visited network.  That is, if the same user visits multiple networks, the home server MUST provide different CUIs to each visited network for that user.  The CUI MAY be the same across multiple sessions for that user on one particular network.  The CUI MAY be the same for multiple devices used by that user on one particular network.</t>
          <t>We note that the MAC address is likely the same across multiple user sessions on one network.  Therefore changing the CUI offers little additional benefit, as the user can still be tracked by the unchanging MAC address.  Never the less, we believe that having a unique CUI per session can be useful, because there is ongoing work on increasing user privacy by allowing more MAC address randomization.  If we were to recommend that the CUI remain constant across multiple sessions, that would in turn negate much of the effort being put into MAC address randomization.</t>
          <t>One reason to have a constant CUI value for a user (or user devices) on one network is that network access providers may need to enforce limits on simultaneous logins.  Network providers may also need to correlate user behavior across multiple sessions in order to track and prevent abuse.  Both of these requirements are impossible if the CUI changes for every user session.</t>
          <t>The result is that there is a trade-off between user privacy and the needs of the local network.  While perfect user privacy is an admirable goal, perfect user privacy may also allow anonymous users to abuse the visited network.  The network would then likely simply refuse to provide network access.  Users may therefore have to accept some limitations on privacy, in order to obtain network access.</t>
          <t>Although the CUI contents are not directly related to security, we still give recommendations for creating and managing of the CUI.  We believe that these recommendations will help implementers satisfy the preceding requirements, while not imposing undue burden on the implementations.</t>
          <t>In general, the simplest way to track CUIs long term is to associate the CUI to user identity in some kind of cache or database.  This association could be created at the tail end of the authentication process, and before any accounting packets were received.  This association should generally be discarded after a period of time if no accounting packets are received.  If accounting packets are received, the CUI to user association should then be tracked along with the normal accounting data.</t>
          <t>The above method for tracking CUI works no matter how the CUI is generated.  If the CUI can be unique per session, or it could be tied to a particular user identity across a long period of time.  The same CUI could also be associated with multiple devices.</t>
          <t>Where the CUI is not unique for each session, the only minor issue is the cost of the above method is that the association is stored on a per-session basis when there is no need for that to be done.  Storing the CUI per session means that is it possible to arbitrarily change how the CUI is calculated, with no impact on anything else in the system.  Designs such as this which decouple unrelated architectural elements are generally worth the minor extra cost.</t>
          <t>For creating the CUI, that process should be done in a way which is scalable and efficient.  For a unique CUI per user, implementers SHOULD create a value which is unique both to the user, and to the visited network.  There is no reason to use the same CUI for multiple visited networks, as that would enable the tracking of a user across multiple networks.</t>
          <t>Before suggesting a method for creating the CUI, we note that <xref target="RFC4372"/> Section 2.1 defines the CUI as being of data type 'string' (<xref target="RFC8044"/> Section 3.5).  <xref target="RFC4372"/> Section 2.1 further suggests that the value of the CUI is interpreted as an opaque token, similar to the Class attribute (<xref target="RFC2865"/> Section 5.25).  Some organizations create CUI values which use the Network Access Identifier (NAI) format as defined in <xref target="RFC7542"/>.  This format can allow the home network to be identified to the visited network, where the User-Name does not contain a realm.  Such formats SHOULD NOT be used unless all parties involved have agreed to this behavior.</t>
          <t>The CUI SHOULD be created via a construct similar to what is given below, where "+" indicates concatenation:</t>
          <artwork><![CDATA[
CUI = HASH(Visited Network Data + User Identifier + Key)
]]></artwork>
          <t>This construct has the following functional parameters.</t>
          <ul empty="true">
            <li>
              <t>HASH</t>
              <ul empty="true">
                <li>
                  <t>A cryptographic hash function.  It is RECOMMENDED to use an HMAC instead of a hash function.</t>
                </li>
              </ul>
            </li>
          </ul>
          <ul empty="true">
            <li>
              <t>Visited Network Data</t>
              <ul empty="true">
                <li>
                  <t>Data which identifies the visited network.</t>
                  <t>This data could be the Operator-Name attribute (<xref target="RFC5580"/> Section 4.1).</t>
                </li>
              </ul>
            </li>
          </ul>
          <ul empty="true">
            <li>
              <t>User Identifier</t>
              <ul empty="true">
                <li>
                  <t>The site-local user identifier.  For tunneled EAP methods such as PEAP or TTLS, this could be the user identity which is sent inside of the TLS tunnel.</t>
                </li>
              </ul>
            </li>
          </ul>
          <ul empty="true">
            <li>
              <t>Key</t>
              <ul empty="true">
                <li>
                  <t>A secret known only to the local network.  The key is generally a large random string.  It is used to help prevent dictionary attacks on the CUI.</t>
                </li>
              </ul>
            </li>
          </ul>
          <t>Where the CUI needs to be constant across multiple user sessions or devices, the key can be a static value.  It is generated once by the home network, and then stored for use in further CUI derivations.</t>
          <t>Where the CUI needs to be unique per session, the above derivation SHOULD still be used, except that the "key" value will instead be a random number which is different for each session.  Using such a design again decouples the CUI creation from any requirement that it is unique per session, or constant per user.  That decision can be changed at any time, and the only piece which needs to be updated is the derivation of the "key" field.  In contrast, if the CUI is generated completely randomly per session, then it may be difficult for a system to later change that behavior to allow the CUI to be constant for a particular user.</t>
          <t>If an NAI format is desired, the hash output can be converted to printable text, truncated if necessary to meet length limitations, and then an "@" character and a realm appended to it.  The resulting text string is then in NAI form.</t>
          <t>We note that the above recommendation is not invertible.  That is, given a particular CUI, it is not possible to determine which visited network or user identifier was used to create it.  If it is necessary to use the CUI to look up a user, the home network needs to store the full set of CUI values which a user has been assigned.</t>
          <t>If this tracking is too complex for a network, it is possible to create the CUI via an invertible encryption process as follows:</t>
          <artwork><![CDATA[
CUI = ENCRYPT(Key + Visited Network Data + User Identifier)
]]></artwork>
          <t>This construct has the following functional parameters.</t>
          <ul empty="true">
            <li>
              <t>ENCRYPT</t>
              <ul empty="true">
                <li>
                  <t>A cryptographically secure encryption function.</t>
                </li>
              </ul>
            </li>
          </ul>
          <ul empty="true">
            <li>
              <t>Key</t>
              <ul empty="true">
                <li>
                  <t>The encryption key.  Note that the same key must not be used for more both hashing and encryption.</t>
                </li>
              </ul>
            </li>
          </ul>
          <ul empty="true">
            <li>
              <t>Visited Network Data</t>
              <ul empty="true">
                <li>
                  <t>Data which identifies the visited network.</t>
                  <t>This data could be the Operator-Name attribute (<xref target="RFC5580"/> Section 4.1).</t>
                </li>
              </ul>
            </li>
          </ul>
          <ul empty="true">
            <li>
              <t>User Identifier</t>
              <ul empty="true">
                <li>
                  <t>The site-local user identifier.  For tunneled EAP methods such as PEAP or TTLS, this could be the user identity which is sent inside of the TLS tunnel.</t>
                </li>
              </ul>
            </li>
          </ul>
          <t>However, it is RECOMMENDED that HMAC based methods are used instead of methods based on reversible encryption.</t>
          <t>The intent is for CUI to leak as little information as possible, and ideally be different for every session.  However, business agreements, legal requirements, etc. may mandate different behavior.  The intention of this section is not to mandate complete CUI privacy, but instead to clarify the trade-offs between CUI privacy and business realities.</t>
        </section>
      </section>
    </section>
    <section anchor="privacy-considerations">
      <name>Privacy Considerations</name>
      <t>The primary focus of this document is addressing privacy and security considerations for RADIUS.</t>
      <t>Deprecating insecure transport for RADIUS, and requiring secure transport means that personally identifying information is no longer sent "in the clear".  As noted earlier in this document, such information can include MAC addresses, user identifiers, and user locations.</t>
      <t>In addition, this document suggests ways to increase privacy by minimizing the use and exchange of PII.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>The primary focus of this document is addressing privacy and security considerations for RADIUS.</t>
      <t>Deprecating insecure transports for RADIUS, and requiring secure transports, means that many historical security issues with the RADIUS protocol are mitigated.</t>
      <t>We reiterate the discussion above that any security analysis must be done on the system as a whole.  It is not reasonable to put an expensive lock on the front door of a house while leaving the window next to it open, and then somehow declare the house to be "secure".  Any approach to security based on a simple checklist is at best naive, and more truthfully is deeply misleading.  At worst, such practices will decrease security by causing people to follow false security practices, and to ignore real security practices.</t>
      <t>Implementers and administrators need to be aware of the issues raised in this document.  They can then make the best choice for their local network which balances their requirements on privacy, security, and cost.  Only informed choices will lead to the best security.</t>
      <section anchor="historical-considerations">
        <name>Historical Considerations</name>
        <t>The BlastRADIUS vulnerability is the result of RADIUS security being a low priority for decades.  Even the recommendation of <xref section="2.2.2" sectionFormat="comma" target="RFC5080"/> that all clients add Message-Authenticator to all Access-Request packets was ignored by nearly all implementers.  If that recommendation had been followed, then the BlastRADIUS vulnerability notification would have been little more than "please remember to set the require Message-Authenticator flag on all RADIUS servers."</t>
        <t>For MS-CHAP, it has not previously been deprecated for similar reasons, even though it has been proven to be insecure for decades.  This continued use of MS-CHAP has likely resulted in the leaking of many users clear-text passwords.</t>
      </section>
      <section anchor="practical-implications">
        <name>Practical Implications</name>
        <t>This document either deprecates or forbids methods and behaviors which have been common practice for decades.  While insecure practices have been viewed as tolerable, they are no longer acceptable.</t>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>IANA is instructed to update the RADIUS Types registry, and the "Values for RADIUS Attribute 101, Error-Cause Attribute" sub-registry with the following addition:</t>
      <artwork><![CDATA[
Value,Description,Reference
510,Missing Message-Authenticator,[THIS-DOCUMENT]
]]></artwork>
    </section>
    <section anchor="acknowledgements">
      <name>Acknowledgements</name>
      <t>Thanks to the many reviewers and commenters for raising topics to discuss, and for providing insight into the issues related to increasing the security of RADIUS.  In no particular order, thanks to Margaret Cullen, Alexander Clouter, and Josh Howlett.</t>
      <t>Many thanks to Nadia Heninger and the rest of the BlastRADIUS team, along with Heikki Vatiainen, for extensive discussions and feedback about the issue.</t>
      <t>The author is deeply indebted to the late Bernard Aboba for decades of advice and guidance.</t>
    </section>
    <section anchor="changelog">
      <name>Changelog</name>
      <ul spacing="normal">
        <li>
          <t>01 - added more discussion of IPsec, and move TLS-PSK to its own document,</t>
        </li>
        <li>
          <t>02 - Added text on Increasing the Security of Insecure Transports</t>
        </li>
        <li>
          <t>03 - add text on CUI.  Add notes on PAP vs CHAP security</t>
        </li>
        <li>
          <t>04 - add text on security of MS-CHAP.  Rearrange and reword many sections for clarity.</t>
        </li>
        <li>
          <t>05 - Rework title to deprecating "insecure practices".  Clarifications based on WG feedback.</t>
        </li>
        <li>
          <t>00 - adoption by WG.</t>
        </li>
        <li>
          <t>01 - review from Bernard Aboba.  Added discussion on accounting, clarified and re-arranged text.  Added discussion of server behavior for missing Message-Authenticator</t>
        </li>
        <li>
          <t>02 - BlastRADIUS updates.</t>
        </li>
        <li>
          <t>03 - add delay Access-Reject, constant-time comparison, no routing protocol.  Updated the text significantly and made it more consistent with the BlastRADIUS recommendations.  Add "updates" other RFCs.</t>
        </li>
        <li>
          <t>04 - updates with review from Fabian Mauchle</t>
        </li>
        <li>
          <t>05 - merge in spelling fixes from Andrew Wood.  Update and rewrite BlastRADIUS mitigations to make them clearer.  Add section describing processes administrators can use to upgrade their networks.</t>
        </li>
        <li>
          <t>06 - updates and clarifications based on reviews.</t>
        </li>
        <li>
          <t>07 - move "review" text into draft-dekok-radext-review-radius</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="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="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="RFC6421">
          <front>
            <title>Crypto-Agility Requirements for Remote Authentication Dial-In User Service (RADIUS)</title>
            <author fullname="D. Nelson" initials="D." role="editor" surname="Nelson"/>
            <date month="November" year="2011"/>
            <abstract>
              <t>This memo describes the requirements for a crypto-agility solution for Remote Authentication Dial-In User Service (RADIUS). This document is not an Internet Standards Track specification; it is published for informational purposes.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6421"/>
          <seriesInfo name="DOI" value="10.17487/RFC6421"/>
        </reference>
        <reference anchor="RFC8044">
          <front>
            <title>Data Types in RADIUS</title>
            <author fullname="A. DeKok" initials="A." surname="DeKok"/>
            <date month="January" year="2017"/>
            <abstract>
              <t>RADIUS specifications have used data types for two decades without defining them as managed entities. During this time, RADIUS implementations have named the data types and have used them in attribute definitions. This document updates the specifications to better follow established practice. We do this by naming the data types defined in RFC 6158, which have been used since at least the publication of RFC 2865. We provide an IANA registry for the data types and update the "RADIUS Attribute Types" registry to include a Data Type field for each attribute. Finally, we recommend that authors of RADIUS specifications use these types in preference to existing practice. This document updates RFCs 2865, 3162, 4072, 6158, 6572, and 7268.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8044"/>
          <seriesInfo name="DOI" value="10.17487/RFC8044"/>
        </reference>
        <reference anchor="I-D.ietf-radext-radiusdtls-bis">
          <front>
            <title>(Datagram) Transport Layer Security ((D)TLS) Encryption for RADIUS</title>
            <author fullname="Jan-Frederik Rieckers" initials="J." surname="Rieckers">
              <organization>Deutsches Forschungsnetz | German National Research and Education Network</organization>
            </author>
            <author fullname="Stefan Winter" initials="S." surname="Winter">
              <organization>Fondation Restena | Restena Foundation</organization>
            </author>
            <date day="20" month="October" year="2025"/>
            <abstract>
              <t>   This document specifies a transport profile for RADIUS using
   Transport Layer Security (TLS) over TCP or Datagram Transport Layer
   Security (DTLS) over UDP as the transport protocol.  This enables
   encrypting the RADIUS traffic as well as dynamic trust relationships
   between RADIUS servers.  The specification obsoletes the experimental
   specifications in RFC 6614 (RADIUS/TLS) and RFC 7360 (RADIUS/DTLS)
   and combines them in this specification.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-radext-radiusdtls-bis-10"/>
        </reference>
        <reference anchor="I-D.dekok-radext-review-radius">
          <front>
            <title>*** BROKEN REFERENCE ***</title>
            <author>
              <organization/>
            </author>
            <date/>
          </front>
        </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>
      </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="RFC2433">
          <front>
            <title>Microsoft PPP CHAP Extensions</title>
            <author fullname="G. Zorn" initials="G." surname="Zorn"/>
            <author fullname="S. Cobb" initials="S." surname="Cobb"/>
            <date month="October" year="1998"/>
            <abstract>
              <t>The Point-to-Point Protocol (PPP) provides a standard method for transporting multi-protocol datagrams over point-to-point links. PPP defines an extensible Link Control Protocol and a family of Network Control Protocols (NCPs) for establishing and configuring different network-layer protocols. This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2433"/>
          <seriesInfo name="DOI" value="10.17487/RFC2433"/>
        </reference>
        <reference anchor="RFC2759">
          <front>
            <title>Microsoft PPP CHAP Extensions, Version 2</title>
            <author fullname="G. Zorn" initials="G." surname="Zorn"/>
            <date month="January" year="2000"/>
            <abstract>
              <t>This document describes version two of Microsoft's PPP CHAP dialect (MS-CHAP-V2). MS-CHAP-V2 is similar to, but incompatible with, MS-CHAP version one (MS-CHAP-V1). This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2759"/>
          <seriesInfo name="DOI" value="10.17487/RFC2759"/>
        </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="RFC2868">
          <front>
            <title>RADIUS Attributes for Tunnel Protocol Support</title>
            <author fullname="G. Zorn" initials="G." surname="Zorn"/>
            <author fullname="D. Leifer" initials="D." surname="Leifer"/>
            <author fullname="A. Rubens" initials="A." surname="Rubens"/>
            <author fullname="J. Shriver" initials="J." surname="Shriver"/>
            <author fullname="M. Holdrege" initials="M." surname="Holdrege"/>
            <author fullname="I. Goyret" initials="I." surname="Goyret"/>
            <date month="June" year="2000"/>
            <abstract>
              <t>This document defines a set of RADIUS (Remote Authentication Dial In User Service) attributes designed to support the provision of compulsory tunneling in dial-up networks. This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2868"/>
          <seriesInfo name="DOI" value="10.17487/RFC2868"/>
        </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="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="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="RFC5580">
          <front>
            <title>Carrying Location Objects in RADIUS and Diameter</title>
            <author fullname="H. Tschofenig" initials="H." role="editor" surname="Tschofenig"/>
            <author fullname="F. Adrangi" initials="F." surname="Adrangi"/>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="A. Lior" initials="A." surname="Lior"/>
            <author fullname="B. Aboba" initials="B." surname="Aboba"/>
            <date month="August" year="2009"/>
            <abstract>
              <t>This document describes procedures for conveying access-network ownership and location information based on civic and geospatial location formats in Remote Authentication Dial-In User Service (RADIUS) and Diameter.</t>
              <t>The distribution of location information is a privacy-sensitive task. Dealing with mechanisms to preserve the user's privacy is important and is addressed in this document. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5580"/>
          <seriesInfo name="DOI" value="10.17487/RFC5580"/>
        </reference>
        <reference anchor="RFC6151">
          <front>
            <title>Updated Security Considerations for the MD5 Message-Digest and the HMAC-MD5 Algorithms</title>
            <author fullname="S. Turner" initials="S." surname="Turner"/>
            <author fullname="L. Chen" initials="L." surname="Chen"/>
            <date month="March" year="2011"/>
            <abstract>
              <t>This document updates the security considerations for the MD5 message digest algorithm. It also updates the security considerations for HMAC-MD5. This document is not an Internet Standards Track specification; it is published for informational purposes.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6151"/>
          <seriesInfo name="DOI" value="10.17487/RFC6151"/>
        </reference>
        <reference anchor="RFC6613">
          <front>
            <title>RADIUS over TCP</title>
            <author fullname="A. DeKok" initials="A." surname="DeKok"/>
            <date month="May" year="2012"/>
            <abstract>
              <t>The Remote Authentication Dial-In User Server (RADIUS) protocol has, until now, required the User Datagram Protocol (UDP) as the underlying transport layer. This document defines RADIUS over the Transmission Control Protocol (RADIUS/TCP), in order to address handling issues related to RADIUS over Transport Layer Security (RADIUS/TLS). It permits TCP to be used as a transport protocol for RADIUS only when a transport layer such as TLS or IPsec provides confidentiality and security. This document defines an Experimental Protocol for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6613"/>
          <seriesInfo name="DOI" value="10.17487/RFC6613"/>
        </reference>
        <reference anchor="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="RFC6973">
          <front>
            <title>Privacy Considerations for Internet Protocols</title>
            <author fullname="A. Cooper" initials="A." surname="Cooper"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <author fullname="B. Aboba" initials="B." surname="Aboba"/>
            <author fullname="J. Peterson" initials="J." surname="Peterson"/>
            <author fullname="J. Morris" initials="J." surname="Morris"/>
            <author fullname="M. Hansen" initials="M." surname="Hansen"/>
            <author fullname="R. Smith" initials="R." surname="Smith"/>
            <date month="July" year="2013"/>
            <abstract>
              <t>This document offers guidance for developing privacy considerations for inclusion in protocol specifications. It aims to make designers, implementers, and users of Internet protocols aware of privacy-related design choices. It suggests that whether any individual RFC warrants a specific privacy considerations section will depend on the document's content.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6973"/>
          <seriesInfo name="DOI" value="10.17487/RFC6973"/>
        </reference>
        <reference anchor="RFC7360">
          <front>
            <title>Datagram Transport Layer Security (DTLS) as a Transport Layer for RADIUS</title>
            <author fullname="A. DeKok" initials="A." surname="DeKok"/>
            <date month="September" year="2014"/>
            <abstract>
              <t>The RADIUS protocol defined in RFC 2865 has limited support for authentication and encryption of RADIUS packets. The protocol transports data in the clear, although some parts of the packets can have obfuscated content. Packets may be replayed verbatim by an attacker, and client-server authentication is based on fixed shared secrets. This document specifies how the Datagram Transport Layer Security (DTLS) protocol may be used as a fix for these problems. It also describes how implementations of this proposal can coexist with current RADIUS systems.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7360"/>
          <seriesInfo name="DOI" value="10.17487/RFC7360"/>
        </reference>
        <reference anchor="I-D.ietf-radext-tls-psk">
          <front>
            <title>Operational Considerations for RADIUS and TLS-PSK</title>
            <author fullname="Alan DeKok" initials="A." surname="DeKok">
              <organization>InkBridge Networks</organization>
            </author>
            <date day="21" month="January" year="2025"/>
            <abstract>
              <t>   This document provides implementation and operational considerations
   for using TLS-PSK with RADIUS/TLS (RFC6614) and RADIUS/DTLS
   (RFC7360).  The purpose of the document is to help smooth the
   operational transition from the use of the RADIUS/UDP to RADIUS/TLS.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-radext-tls-psk-12"/>
        </reference>
        <reference anchor="I-D.tomas-openroaming">
          <front>
            <title>WBA OpenRoaming Wireless Federation</title>
            <author fullname="Bruno Tomas" initials="B." surname="Tomas">
              <organization>Wireless Broadband Alliance, Inc.</organization>
            </author>
            <author fullname="Mark Grayson" initials="M." surname="Grayson">
              <organization>Cisco Systems</organization>
            </author>
            <author fullname="Necati Canpolat" initials="N." surname="Canpolat">
              <organization>Intel Corporation</organization>
            </author>
            <author fullname="Betty A. Cockrell" initials="B. A." surname="Cockrell">
              <organization>SingleDigits</organization>
            </author>
            <author fullname="Sri Gundavelli" initials="S." surname="Gundavelli">
              <organization>Cisco Systems</organization>
            </author>
            <date day="16" month="September" year="2025"/>
            <abstract>
              <t>   This document describes the Wireless Broadband Alliance's OpenRoaming
   system.  The OpenRoaming architectures enables a seamless onboarding
   experience for devices connecting to access networks that are part of
   the federation of access networks and identity providers.  The
   primary objective of this document is to describe the protocols that
   form the foundation for this architecture, enabling providers to
   correctly configure their equipment to support interoperable
   OpenRoaming signalling exchanges.  In addition, the topic of
   OpenRoaming has been raised in different IETF working groups, and
   therefore a secondary objective is to assist those discussions by
   describing the federation organization and framework.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-tomas-openroaming-06"/>
        </reference>
        <reference anchor="I-D.josefsson-pppext-eap-tls-eap">
          <front>
            <title>Protected EAP Protocol (PEAP) Version 2</title>
            <author fullname="Ashwin Palekar" initials="A." surname="Palekar">
              <organization>Microsoft Corporation</organization>
            </author>
            <author fullname="Simon Josefsson" initials="S." surname="Josefsson">
              <organization>Extundo</organization>
            </author>
            <author fullname="Daniel Simon" initials="D." surname="Simon">
              <organization>Microsoft Corporation</organization>
            </author>
            <author fullname="Glen Zorn" initials="G." surname="Zorn">
              <organization>Cisco Systems</organization>
            </author>
            <date day="21" month="October" year="2004"/>
            <abstract>
              <t>The Extensible Authentication Protocol (EAP) provides support for
   multiple authentication methods. This document defines the Protected
   Extensible Authentication Protocol (PEAP) Version 2, which provides
   an encrypted and authenticated tunnel based on transport layer
   security (TLS) that encapsulates EAP authentication mechanisms.
   PEAPv2 uses TLS to protect against rogue authenticators, protect
   against various attacks on the confidentiality and integrity of the
   inner EAP method exchange and provide EAP peer identity privacy.
   PEAPv2 also provides support for chaining multiple EAP mechanisms,
   cryptographic binding between authentications performed by inner EAP
   mechanisms and the tunnel, exchange of arbitrary parameters (TLVs),
   and fragmentation and reassembly.
              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-josefsson-pppext-eap-tls-eap-10"/>
        </reference>
        <reference anchor="BLAST" target="https://www.blastradius.fail/pdf/radius.pdf">
          <front>
            <title>RADIUS/UDP Considered Harmful</title>
            <author initials="" surname="Goldberg, S , et al" fullname="Golberg, Sharon, et. al">
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="DATTACK" target="https://www.ietf.org/ietf-ftp/ietf-mail-archive/radius/1998-11.mail">
          <front>
            <title>CHAP and Shared Secret</title>
            <author initials="A." surname="DeKok" fullname="Alan DeKok">
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="KAMATH">
          <front>
            <title>Microsoft EAP CHAP Extensions</title>
            <author initials="R. H. and A." surname="Palekar" fullname="Ryan Hurst and Ashwin Palekar">
              <organization/>
            </author>
            <date year="2007" month="June"/>
          </front>
        </reference>
        <reference anchor="MD5-1996" target="https://www.ietf.org/ietf-ftp/ietf-mail-archive/radius/1998-02">
          <front>
            <title>MD5 Key recovery attack</title>
            <author initials="I. R. W." surname="group" fullname="IETF RADIUS Working group">
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="EDUROAM" target="https://eduroam.org">
          <front>
            <title>eduroam</title>
            <author initials="" surname="eduroam" fullname="eduroam">
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="FILTER" target="https://community.jisc.ac.uk/library/janet-services-documentation/filtering-invalid-realms">
          <front>
            <title>Filtering of Invalid Realms</title>
            <author initials="J. I. S." surname="Committee" fullname="Joint Information Systems Committee">
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="OPENROAMING" target="https://wballiance.com/openroaming/">
          <front>
            <title>OpenRoaming: One global Wi-Fi network</title>
            <author initials="W. B." surname="Alliance" fullname="Wireless Broadband Alliance">
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </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="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="RFC6929">
          <front>
            <title>Remote Authentication Dial In User Service (RADIUS) Protocol Extensions</title>
            <author fullname="A. DeKok" initials="A." surname="DeKok"/>
            <author fullname="A. Lior" initials="A." surname="Lior"/>
            <date month="April" year="2013"/>
            <abstract>
              <t>The Remote Authentication Dial-In User Service (RADIUS) protocol is nearing exhaustion of its current 8-bit Attribute Type space. In addition, experience shows a growing need for complex grouping, along with attributes that can carry more than 253 octets of data. This document defines changes to RADIUS that address all of the above problems.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6929"/>
          <seriesInfo name="DOI" value="10.17487/RFC6929"/>
        </reference>
        <reference anchor="RFC8559">
          <front>
            <title>Dynamic Authorization Proxying in the Remote Authentication Dial-In User Service (RADIUS) Protocol</title>
            <author fullname="A. DeKok" initials="A." surname="DeKok"/>
            <author fullname="J. Korhonen" initials="J." surname="Korhonen"/>
            <date month="April" year="2019"/>
            <abstract>
              <t>RFC 5176 defines Change-of-Authorization (CoA) and Disconnect Message (DM) behavior for RADIUS. RFC 5176 also suggests that proxying these messages is possible, but it does not provide guidance as to how that is done. This specification updates RFC 5176 to correct that omission for scenarios where networks use realm-based proxying as defined in RFC 7542. This specification also updates RFC 5580 to allow the Operator-Name attribute in CoA-Request and Disconnect-Request packets.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8559"/>
          <seriesInfo name="DOI" value="10.17487/RFC8559"/>
        </reference>
        <reference anchor="RFC8446">
          <front>
            <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <date month="August" year="2018"/>
            <abstract>
              <t>This document specifies version 1.3 of the Transport Layer Security (TLS) protocol. TLS allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t>
              <t>This document updates RFCs 5705 and 6066, and obsoletes RFCs 5077, 5246, and 6961. This document also specifies new requirements for TLS 1.2 implementations.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8446"/>
          <seriesInfo name="DOI" value="10.17487/RFC8446"/>
        </reference>
        <reference anchor="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="RFC9190">
          <front>
            <title>EAP-TLS 1.3: Using the Extensible Authentication Protocol with TLS 1.3</title>
            <author fullname="J. Preuß Mattsson" initials="J." surname="Preuß Mattsson"/>
            <author fullname="M. Sethi" initials="M." surname="Sethi"/>
            <date month="February" year="2022"/>
            <abstract>
              <t>The Extensible Authentication Protocol (EAP), defined in RFC 3748, provides a standard mechanism for support of multiple authentication methods. This document specifies the use of EAP-TLS with TLS 1.3 while remaining backwards compatible with existing implementations of EAP-TLS. TLS 1.3 provides significantly improved security and privacy, and reduced latency when compared to earlier versions of TLS. EAP-TLS with TLS 1.3 (EAP-TLS 1.3) further improves security and privacy by always providing forward secrecy, never disclosing the peer identity, and by mandating use of revocation checking when compared to EAP-TLS with earlier versions of TLS. This document also provides guidance on authentication, authorization, and resumption for EAP-TLS in general (regardless of the underlying TLS version used). This document updates RFC 5216.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9190"/>
          <seriesInfo name="DOI" value="10.17487/RFC9190"/>
        </reference>
        <reference anchor="RFC5931">
          <front>
            <title>Extensible Authentication Protocol (EAP) Authentication Using Only a Password</title>
            <author fullname="D. Harkins" initials="D." surname="Harkins"/>
            <author fullname="G. Zorn" initials="G." surname="Zorn"/>
            <date month="August" year="2010"/>
            <abstract>
              <t>This memo describes an Extensible Authentication Protocol (EAP) method, EAP-pwd, which uses a shared password for authentication. The password may be a low-entropy one and may be drawn from some set of possible passwords, like a dictionary, which is available to an attacker. The underlying key exchange is resistant to active attack, passive attack, and dictionary attack. This document is not an Internet Standards Track specification; it is published for informational purposes.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5931"/>
          <seriesInfo name="DOI" value="10.17487/RFC5931"/>
        </reference>
        <reference anchor="RFC5281">
          <front>
            <title>Extensible Authentication Protocol Tunneled Transport Layer Security Authenticated Protocol Version 0 (EAP-TTLSv0)</title>
            <author fullname="P. Funk" initials="P." surname="Funk"/>
            <author fullname="S. Blake-Wilson" initials="S." surname="Blake-Wilson"/>
            <date month="August" year="2008"/>
            <abstract>
              <t>EAP-TTLS is an EAP (Extensible Authentication Protocol) method that encapsulates a TLS (Transport Layer Security) session, consisting of a handshake phase and a data phase. During the handshake phase, the server is authenticated to the client (or client and server are mutually authenticated) using standard TLS procedures, and keying material is generated in order to create a cryptographically secure tunnel for information exchange in the subsequent data phase. During the data phase, the client is authenticated to the server (or client and server are mutually authenticated) using an arbitrary authentication mechanism encapsulated within the secure tunnel. The encapsulated authentication mechanism may itself be EAP, or it may be another authentication protocol such as PAP, CHAP, MS-CHAP, or MS-CHAP-V2. Thus, EAP-TTLS allows legacy password-based authentication protocols to be used against existing authentication databases, while protecting the security of these legacy protocols against eavesdropping, man-in-the-middle, and other attacks. The data phase may also be used for additional, arbitrary data exchange. This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5281"/>
          <seriesInfo name="DOI" value="10.17487/RFC5281"/>
        </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="RFC7542">
          <front>
            <title>The Network Access Identifier</title>
            <author fullname="A. DeKok" initials="A." surname="DeKok"/>
            <date month="May" year="2015"/>
            <abstract>
              <t>In order to provide inter-domain authentication services, it is necessary to have a standardized method that domains can use to identify each other's users. This document defines the syntax for the Network Access Identifier (NAI), the user identifier submitted by the client prior to accessing resources. This document is a revised version of RFC 4282. It addresses issues with international character sets and makes a number of other corrections to RFC 4282.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7542"/>
          <seriesInfo name="DOI" value="10.17487/RFC7542"/>
        </reference>
        <reference anchor="RFC2194">
          <front>
            <title>Review of Roaming Implementations</title>
            <author fullname="B. Aboba" initials="B." surname="Aboba"/>
            <author fullname="J. Lu" initials="J." surname="Lu"/>
            <author fullname="J. Alsop" initials="J." surname="Alsop"/>
            <author fullname="J. Ding" initials="J." surname="Ding"/>
            <author fullname="W. Wang" initials="W." surname="Wang"/>
            <date month="September" year="1997"/>
            <abstract>
              <t>This document reviews the design and functionality of existing roaming implementations. Examples of cases where roaming capability might be required include ISP "confederations" and ISP-provided corporate network access support. This memo provides information for the Internet community. This memo does not specify an Internet standard of any kind.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2194"/>
          <seriesInfo name="DOI" value="10.17487/RFC2194"/>
        </reference>
        <reference anchor="RFC4372">
          <front>
            <title>Chargeable User Identity</title>
            <author fullname="F. Adrangi" initials="F." surname="Adrangi"/>
            <author fullname="A. Lior" initials="A." surname="Lior"/>
            <author fullname="J. Korhonen" initials="J." surname="Korhonen"/>
            <author fullname="J. Loughney" initials="J." surname="Loughney"/>
            <date month="January" year="2006"/>
            <abstract>
              <t>This document describes a new Remote Authentication Dial-In User Service (RADIUS) attribute, Chargeable-User-Identity. This attribute can be used by a home network to identify a user for the purpose of roaming transactions that occur outside of the home network. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4372"/>
          <seriesInfo name="DOI" value="10.17487/RFC4372"/>
        </reference>
        <reference anchor="RFC8018">
          <front>
            <title>PKCS #5: Password-Based Cryptography Specification Version 2.1</title>
            <author fullname="K. Moriarty" initials="K." role="editor" surname="Moriarty"/>
            <author fullname="B. Kaliski" initials="B." surname="Kaliski"/>
            <author fullname="A. Rusch" initials="A." surname="Rusch"/>
            <date month="January" year="2017"/>
            <abstract>
              <t>This document provides recommendations for the implementation of password-based cryptography, covering key derivation functions, encryption schemes, message authentication schemes, and ASN.1 syntax identifying the techniques.</t>
              <t>This document represents a republication of PKCS #5 v2.1 from RSA Laboratories' Public-Key Cryptography Standards (PKCS) series. By publishing this RFC, change control is transferred to the IETF.</t>
              <t>This document also obsoletes RFC 2898.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8018"/>
          <seriesInfo name="DOI" value="10.17487/RFC8018"/>
        </reference>
      </references>
    </references>
    <?line 919?>

<section anchor="best-practice-checklist">
      <name>Best Practice Checklist</name>
      <t>In the interest of simplifying the above explanations, this section provides a short-form checklist of recommendations.  Following this checklist does not guarantee that RADIUS systems are secure from all possible attacks.  However, systems which do not follow this checklist are likely to be vulnerable to known attacks, and are therefore less secure than they could be.</t>
      <ul empty="true">
        <li>
          <ul spacing="normal">
            <li>
              <t>Do not use RADIUS/UDP or RADIUS/TCP across the wider Internet</t>
            </li>
          </ul>
          <t>Exposing user identifiers, device identifiers, and locations is a privacy and security issue.</t>
        </li>
      </ul>
      <ul empty="true">
        <li>
          <ul spacing="normal">
            <li>
              <t>Avoid RADIUS/UDP or RADIUS/TCP in other networks, too.</t>
            </li>
          </ul>
          <t>It can take time to upgrade equipment, but the long-term goal is to entirely deprecate RADIUS/UDP.</t>
        </li>
      </ul>
      <ul empty="true">
        <li>
          <ul spacing="normal">
            <li>
              <t>Implement the BlastRADIUS mitigations</t>
            </li>
          </ul>
          <t>Both Implementers and administrators should implement the mitigations in order to secure Access-Request packets.</t>
        </li>
      </ul>
      <ul empty="true">
        <li>
          <ul spacing="normal">
            <li>
              <t>Use strong shared secrets</t>
            </li>
          </ul>
          <t>Shared secrets should be generated from a cryptographically strong pseudo-random number generator.  They should contain at least 128 bits of entropy.  Each RADIUS client should have a unique shared secret.</t>
        </li>
      </ul>
      <ul empty="true">
        <li>
          <ul spacing="normal">
            <li>
              <t>Minimize the use of RADIUS proxies.</t>
            </li>
          </ul>
          <t>More proxies means more systems which could be compromised, and more systems which can see private or secret data.</t>
        </li>
      </ul>
      <ul empty="true">
        <li>
          <ul spacing="normal">
            <li>
              <t>Do not proxy from secure to insecure transports</t>
            </li>
          </ul>
          <t>If user information (credentials or identities) is received over a secure transport (IPsec, RADIUS/TLS, TLS-based EAP method), then proxying the protected data over RADIUS/UDP or RADIUS/TCP degrades security and privacy.</t>
        </li>
      </ul>
      <ul empty="true">
        <li>
          <ul spacing="normal">
            <li>
              <t>Prefer EAP authentication methods to non-EAP methods.</t>
            </li>
          </ul>
          <t>EAP authentication methods are better at hiding user credentials from observers.</t>
        </li>
      </ul>
      <ul empty="true">
        <li>
          <ul spacing="normal">
            <li>
              <t>For EAP, use anonymous outer identifiers</t>
            </li>
          </ul>
          <t>There are few reasons to use individual identities for EAP.  Identifying the realm is usually enough.</t>
          <t><xref target="RFC7542"/> Section 2.4 recommends that "@realm" is preferable to "anonymous@realm", which is in turn preferable to "user@realm".</t>
        </li>
      </ul>
      <ul empty="true">
        <li>
          <ul spacing="normal">
            <li>
              <t>Prefer using PAP over CHAP or MS-CHAP.</t>
            </li>
          </ul>
          <t>PAP allows for credentials to be stored securely "at rest" in a user database.  CHAP and MS-CHAP do not.</t>
        </li>
      </ul>
      <ul empty="true">
        <li>
          <ul spacing="normal">
            <li>
              <t>Do not use MS-CHAP outside of TLS-based EAP methods such as PEAP or TTLS.</t>
            </li>
          </ul>
          <t>MS-CHAP can be cracked with minimal effort.  The attack has been available for two decades.</t>
        </li>
      </ul>
      <ul empty="true">
        <li>
          <ul spacing="normal">
            <li>
              <t>Store passwords in "crypt"ed form</t>
            </li>
          </ul>
          <t>Where is is necessary to store passwords, use systems such as PBKDF2 (<xref target="RFC8018"/>.</t>
        </li>
      </ul>
      <ul empty="true">
        <li>
          <ul spacing="normal">
            <li>
              <t>Regularly update to the latest cryptographic methods.</t>
            </li>
          </ul>
          <t>TLS 1.0 with RC4 was acceptable at one point in time.  It is no longer acceptable.  Similarly, the current cryptographic methods will at some point will be deprecated, and replaced by updated methods.  Upgrading to recent cryptographic methods should be a normal part of operating a RADIUS server.</t>
        </li>
      </ul>
      <ul empty="true">
        <li>
          <ul spacing="normal">
            <li>
              <t>Regularly deprecate older cryptographic methods.</t>
            </li>
          </ul>
          <t>Administrators should actively deprecate the use of older cryptographic methods.  If no system is using older methods, then those methods should be disabled or removed entirely.  Leaving old methods enabled makes the server more vulnerable to attacks.</t>
        </li>
      </ul>
      <ul empty="true">
        <li>
          <ul spacing="normal">
            <li>
              <t>Send the minimum amount of information which is needed,.</t>
            </li>
          </ul>
          <t>Where proxying is used, it is a common practice is to simply forward all of the information from a NAS to other RADIUS servers.  Instead, the proxy closest to the NAS should filter out any attributes or data which are not needed by the "next hop" proxies, or by the home server.</t>
        </li>
      </ul>
    </section>
  </back>
  <!-- ##markdown-source:
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
s7SfqNVpZIsIz29dfGKRpdOhvm5xDvrPtfO6icWBXmapu+BeUHPEUZSOQfWD
LkNF/Wx3Zg3kbCJ571azbbt+5oAq/ST1o6hhNtoCQf/zP/13G5xylVW8er6h
zYDFfV2GnOouct5B3nSxGy+vUSr+6KpY4rFJizdvW1GCDaax+SITEuYZ1npF
335dCMNN61Ig+J0AaqQpqttxuLP9Mhkc1aDvITk0gbVF+5AhNIpq1eScS8cx
gpOWW6prXZoiodk7SBY3NSWzvXmGvhOqBtZjL2PyGMIrN2aY8FFYbOXsHKSa
EPFqW7J+QP5V9CPAgaE3ui0ovLFo6haVIKUeLXWvC+POyHGg4SqiOpAumEwh
0EUC1+bFsCdyI6TLcMn5MP2CGfEeWJdWtOJunKlLrf2IpBeLAnUCZEnS1FDM
3yC4l37vZzy82BIaL0PsLOW6sF3tWnGG2raOcwFu/oW6Hp4O6XKi4rlPpPTj
R2eSLebaoxALy8xL2rcf6XujE11ji7Q5bSg/jlwXLhYn5so1oF5tLWVQ5K4n
l2ogSbjd7nlDtc+r/kVWUw6fHXTTdnnwGNpli8d/yioF4IeE8uJ8LNDAIJv+
zlvcNk1pclLT94DmNKdF0YAiizrJgt1yuFgnUaTQvTbBpgmIOG6T4Vq2y2LG
ldMk1ErM/Tq5Vag4DbNMXFzYIWysxN7bGI6Vqs3WD8ZSgTj8koZPYt14n5Y9
CNqy7SM4sv63LeFMKjbH201Lhgt5A1eLwgSBwfDcwy6RK9wc7Qqbc0ut1kpS
m+9s7K1NV+PY8jmJUTnjhNL/VNsmEqvIADjpTaSJDJxArLXDr4rPN+yoBN+q
6LS59cj3zVpjx24Xd4LUauyGve1yYTSlFgzm6tScOiqJ1jjHluri9cVDVGl6
QjrmNbE1JGkIPKlo51NcKMlXlNRu8TZaDWPS/HTaQB05Z+Z5RU45PezI8VF/
U4WsrcWf9bznulJx5dJUWHkkGbt4D1fhNsQOB6SgWI0zsvhtCIM+o+296kI1
Uv3Jh9OtBfhk8njfvM1T4vsqIGWOAcEN1cxkDiJi+GGq/AirpPqe4/NS6NRk
8mQwLdTNEx8tuwjVMSuz9ulrOI0Dqgl9VW8OzK8UO0/pNjheJLkUVBr/3njk
/bXknx5l78kDCxSZPXhy6Eq2KBR62ifkwf6z+cPLVdqlOOy24wxNTehOWEUr
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

-->

</rfc>
