<?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-09" 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-09"/>
    <author initials="A." surname="DeKok" fullname="Alan DeKok">
      <organization>InkBridge Networks</organization>
      <address>
        <email>aland@inkbridgenetworks.com</email>
      </address>
    </author>
    <date year="2026" month="March" day="13"/>
    <area>Internet</area>
    <workgroup>RADEXT Working Group</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <?line 107?>

<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, and have recently been standardized in <xref target="I-D.ietf-radext-radiusdtls-bis"/>.  TLS has proven to be a useful replacment for 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 113?>

<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 BlastRADIUS vulnerability <xref target="BLAST"/>.  In the interest of keeping this document simple, these mandates are given with minimal explanation.</t>
      <section anchor="overview-of-radius-security-and-privacy">
        <name>Overview of RADIUS Security and Privacy</name>
        <t>The reader is directed to <xref target="I-D.dekok-radext-review-radius"/> for a detailed review of of the security and privacy issues in RADIUS.  That document explains the background behind the mandates in this document, which provides design motivation that is missing from this specification.  In the interest of providing some justification in this document, we provide a brief overview here.</t>
        <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 documented concern being raised about Access-Request packets spoofing was on the RADIUS working group mailing list in 1998 <xref target="DATTACK"/>.  There was substantial further discussions about the lack of integrity checks on that list over the next few years.  The outcome of that discussion 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 with RADIUS is that most information (but not passwords) is sent "in the clear".  This practice has obvious privacy implications.  The data which is publicly available in RADIUS 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>RadSec</t>
        </li>
      </ul>
      <ul empty="true">
        <li>
          <t>Either RADIUS/TLS or RADIUS/DTLS.</t>
        </li>
      </ul>
      <ul spacing="normal">
        <li>
          <t>TLS</t>
        </li>
      </ul>
      <ul empty="true">
        <li>
          <t>the Transport Layer Security protocol.</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 be consistent with 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 implementers.  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 RadSec 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 RadSec, or transport-layer security such as IPSec.  For operational and security reasons, it is RECOMMENDED to use RadSec instead of IPsec.</t>
        <t>Unlike RadSec, use of IPsec means that the RADIUS server is 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.  A transport layer misconfiguration can cause packets can be sent over an insecure link, and the RADIUS server will be unaware of the failure of security at the transport layer.</t>
        <t>In contrast, RadSec gives the RADIUS application completely knowledge and control over transport-layer security.  The failure cases around RadSec 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>
      <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"/>) have major design flaws, as discussed in <xref section="TBD" sectionFormat="comma" target="I-D.dekok-radext-review-radius"/>.  MS-CHAP MUST NOT be used in any situation where it is not protected by RadSec.   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 MUST NOT be sent over RADIUS/UDP or RADIUS/TCP.  For authentication protocols such as EAP, MS-CHAP methods MUST NOT be used outside of a secure tunnel such as PEAP or TTLS.  This recommendation includes EAP-MSCHAPv2 <xref target="KAMATH"/>.</t>
        <t>Due to the <xref target="ASLEAP"/> attack, implementers and administrators MUST treat MS-CHAP as being equivalent 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.</t>
        <t>Existing RADIUS client implementations which originate Access-Request packets SHOULD therefore deprecate all uses of 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>
        <t>These prohibitions do not apply to EAP methods which transport MS-CHAP inside of a TLS tunnel.</t>
      </section>
      <section anchor="crypto-agility">
        <name>Crypto-Agility</name>
        <t>The crypto-agility requirements of <xref target="RFC6421"/> are defined 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 RadSec. 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 RadSec 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"/>.</t>
        <section anchor="forbidden">
          <name>All new Cryptographic work in RADIUS is forbidden</name>
          <t>This document mandates that new RADIUS specifications MUST NOT introduce new cryptographic primitives to authenticate packets (e.g. <xref target="RFC6218"/>).  Specifications MUST NOT introduct new cryptographic primitives to obfuscate attributes (e.g. User-Password in <xref section="5.2" sectionFormat="comma" target="RFC2865"/>, and Tunnel-Password in <xref section="3.5" sectionFormat="comma" target="RFC2868"/>).</t>
          <t>RADIUS-specific cryptographic methods which exist at the time of the publication of this document MAY continue to be used for historical compatibility.  However, all new cryptographic work which is specific to the RADIUS protocol is forbidden.</t>
          <t>As the BlastRADIUS attack shows (<xref target="BLAST"/> and <xref section="TBD" sectionFormat="comma" target="I-D.dekok-radext-review-radius"/>), RADIUS/UDP security is inadequate for modern networks.  The solution is not to fix RADIUS/UDP.  The solution is to deprecate it entirely, and to instead use modern cryptographic methods which provide security and privacy.</t>
          <t>All new security and privacy requirements in RADIUS therefore 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 which forbids 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.</t>
          <t>For those situations, there is no need for the RADIUS protocol to define any new cryptographic methods in order to transport the data.  As a result, those new cryptographic methods do not require chantes to the RADIUS protocol, and are not affected by this prohibition.</t>
        </section>
      </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>These updates require a number of changes 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 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 mitigations here apply 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 from legacy RADIUS.</t>
      <t>The mitigation methods outlined here allow updated systems to protect themselves from the attack, while ensuring that they are interoperable with legacy systems.  That is, there is no global “flag day” required for these changes to take effect.  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 only a limited subset.  We therefore mandate new behavior for all RADIUS clients and servers, while acknowledging that some organizations may choose to not configure all of the new functionality.</t>
      <t>For overall network security and good practice, is RECOMMENDED 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>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>
        <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 be examined by code 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>
        <ul empty="true">
          <li>
            <t>Clients MUST have a per-server boolean configuration flag, which we call “require Message-Authenticator”.</t>
            <t>Servers MUST have a per-client boolean configuration flag, which we call “require Message-Authenticator”.</t>
            <t>Servers MUST have a per-client boolean configuration flag, which we call “limit Proxy-State”.</t>
          </li>
        </ul>
        <t>The default value of all three configuration flags SHOULD be "false", in order to maintain compatibility with legacy clients.  Implementers and Vendors MAY choose to set the default value for these values to "true" instead, when they have determined that the added security benefit outweighs the configuration effort to disable the security measures for legacy clients.</t>
        <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 client-specific or server-specific setting defined.</t>
        <t>The combination of global and any more narrow configuration flags allows administrators to upgrade systems gradually, without requiring a "flag day" when all systems are required to change at the same time.</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.  To be clear: the requirements in this section apply only to RADIUS/UDP and RADIUS/TCP, and do not apply to RadSec.</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 packet, 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 all 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 any 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 if the packet can be authenticated.</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 could 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 any Message-Authenticator in the Access-Request, and would accept 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 RADIUS infrastructure as a whole is secure only when all possible client to server links are secured.</t>
        <t>Unfortunately, there is no way in RADIUS for clients and servers to negotiate protocol-layer features.  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 (<xref section="4" sectionFormat="comma" target="RFC7930"/>) or Access-Reject response packet.  This packet MUST contain a Message-Authenticator attribute as the first attribute in the packet, otherwise an attacker could rewrite 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 this behavior could cause the server to respond to forged Access-Request packets.</t>
          <t>The purpose of this Protocol-Error response 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 a client-server 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 step is to protect servers 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/TCP 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 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, so the attack is difficult or impossible when there is no Proxy-State in an Access-Request.</t>
        <t>It is therefore useful 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 packets are authentic, and can therefore 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>
        <t>After a server receives an Access-Request and processes it, it needs to send a response.  The next step is to ensure that an upgraded server can protect legacy clients.</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 they send 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 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. a mismatched shared secret).  The client SHOULD log the fact that the packet was discarded (with rate limits) in order to inform the administrator either that an attack is underway, or that there is a configuration mismatch between client and server.</t>
        <t>The above discussions have now followed the complete path from client to server and back again.  If each client to server hop is secured via the above mitigations, then by extension, all systems using RADIUS/UDP or RADIUS/TCP will be protected from 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 all RADIUS 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>
    <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 which address interoperability issues.  While these updates do not directly increase the security of the protocol, they correct implementation errors which have caused RADIUS ssytems to be 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.  In one such case, some implementations misunderstood the BlastRADIUS mitigations which required that Message-Authenticator be sent as the first attribute in responses to Access-Request packets.  Despite the communicated requirement 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 which discusses attribute order (quoted below) does not cover all possible cases.  The previous requirement is:</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>This specification adds the following requirement to cover a situation which was not covered in that text.</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 or security.</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>This specification adds the following requirement to cover a situation which was not covered in that text.</t>
        <t>RADIUS client and server 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 requirement 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>Additional requirements are given 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>It is not practical to require that a RADIUS client implement all possible authorizations which can be sent in an Access-Accept. This specification adds the following requirement to cover a situation which was not covered by the above text.</t>
        <t>A RADIUS client MUST treat Access-Accepts with no known or supported authorizations as though an Access-Reject had been received instead.</t>
        <t>This requirement is already met by most RADIUS implementations.  That is, experience has shown that discarding packets for arbitrary reasons causes problems.  Implementations have largely chosen to follow reasonable practices, and the recommendation here codifies existing practices.</t>
      </section>
      <section anchor="obfuscated-attributes">
        <name>Obfuscated Attributes</name>
        <t>The content obfuscation methods such as User-Password have not been proven to be insecure.  However, they have also not been proven to be secure.  As such, outside of limited situations, all existing obfuscation methods are deprecated or forbidden.  The reader is directed to <xref target="I-D.dekok-radext-review-radius"/> for descriptions of the known security issues for those obfuscation methods.</t>
        <section anchor="user-password-obfuscation-method">
          <name>User-Password obfuscation method</name>
          <t>The User-Password obfuscation method was defined in <xref section="5.2" sectionFormat="comma" target="RFC2865"/>, and has been used for other attributes such as MS-CHAP-MPPE-Keys (<xref section="2.4.1" sectionFormat="comma" target="RFC2548"/>).</t>
          <t>Specifications MAY define new attributes which use this obfuscation method. Specifications MAY allow these attribute in Access-Request, but MUST NOT allow them in any other packet type.</t>
          <t>Implementations MAY allow these attributes in Access-Request.  Implementations MUST NOT allow these attributes in other packet types.</t>
        </section>
        <section anchor="tunnel-password-obfuscation-method">
          <name>Tunnel-Password obfuscation method</name>
          <t>The Tunnel-Password obfuscation method was defined in <xref section="3.5" sectionFormat="comma" target="RFC2868"/>, and has been used for other attributes such as MS-MPPE-Send-Key (<xref section="2.3.2" sectionFormat="comma" target="RFC2548"/>).</t>
          <t>Specifications MAY define new attributes which use this obfuscation method.  Specifications MAY allow these attributes in Access-Accept, but MUST NOT allow them in any other packet type.</t>
          <t>Implementations MAY MAY allow these attributes in Access-Accept.  Implementations MUST NOT allow these attributes in packets types other than Access-Accept or CoA-Request.</t>
        </section>
        <section anchor="other-obfuscation-methods">
          <name>Other obfuscation methods</name>
          <t>Other attribute obfuscation methods have been defined by implementors.  One common one is used for Ascend-Send-Secret and Ascend-Recv-Secret vendor-specific attributes.  These methods have not had any cryptographic analysis, and are therefore inappropriate for use.</t>
          <t>As noted above in <xref target="forbidden"/>, specifications MUST NOT define any new attribute obfuscation methods.  This prohibition includes defining attributes which use the above Ascend-Send-Secret obfuscation method, as there is no specification which describes how that method works.</t>
        </section>
      </section>
      <section anchor="rate-limiting">
        <name>Rate Limiting</name>
        <t>The design of network access means that anyone can cause a NAS to send Access-Request packets at will, simply by attempting to gain network access.  If this process is not rate-limited, it can be abused by an attacker to perform dictionary or denial of service (DoS) attacks.</t>
        <t>Real-world corner cases can also turn into effective DoS attacks on the RADIUS infrastructure.  For example, if a large area of a city loses power and then regains it, the RADIUS server may see hundreds of thousands of authentication attempts within a short period of time.</t>
        <t>A naive RADIUS client implementation will simply send an Access-Request packet for every authentication attempt, without limit.  The cost to the RADIUS server to process these packets is likely significantly higher than the cost to the RADIUS client to generate them.</t>
        <t>Poor client implementations can compound this problem when they are configured to send Accounting-Request packets.  Some clients do not implement jitter in retransmissions, as suggested by <xref section="2.2.1" sectionFormat="comma" target="RFC5080"/>.  The result is that when many Access-Request packets are grouped together in time, the resulting Accounting-Request packets are also grouped together.  This grouping leads to the RADIUS server seeing periods of low activity, followed by sudden spikes of traffic.</t>
        <t>Other client implementations implement a single fixed retransmission timer for all accounting traffic.  That is, they have one timer which fires at a fixed interval (e.g. 10 minutes).  When that timer fires, the client sends Accounting-Request packets for all active sessions.  This practice may result in enormous spikes of traffic, where up to hundreds of thousands of packets are sent in only a few seconds.</t>
        <t>Such practices create network instability, and need to be avoided.</t>
        <section anchor="mandating-retransmission-timers">
          <name>Mandating Retransmission Timers</name>
          <t>RADIUS clients MUST implement either the retransmission algorithm defined in <xref section="2.2.1" sectionFormat="comma" target="RFC5080"/>, or an equivalent one which offers similar functionality including jitter and exponential backoff.</t>
          <t>This behavior was only recommended in <xref section="2.2.1" sectionFormat="comma" target="RFC5080"/>.  Many implementations chose to ignore that recommendation, which created network instabilities as noted in the previous section.</t>
          <t>The cost of these issues are not trivial, and there is therefore no reason to permit such behavior to continue.</t>
        </section>
        <section anchor="attacks-by-unauthenticated-devices">
          <name>Attacks by Unauthenticated Devices</name>
          <t>As unauthenticated devices can cause a RADIUS client to send Access-Request packets, the RADIUS ecosystem is subject to a DoS attack unless those packets are rate limited.  A  misconfigured or poorly implemented device can simply restart the authentication process if it does not receive a response within a tiny time window.  A malicious device can also send authentication attempts as quickly as possible.</t>
          <t>Anecdotal evidence from network operators indicates that this is a real-world problem.  Due to either poor device implemrentation or active attacks, operators sometimes see traffic spikes from individual devices which send thousands of packets a second.</t>
          <t>Similarly, many devices are known to immediately reauthenticate after receiving an authentication failure.  That issue is addressed in <xref target="access-reject"/>, below.  In the interest of preventing unauthenticated devices from causing DoS attacks on the RADIUS infrastructure, it is necessary to mandate new behavior for RADIUS clients.</t>
        </section>
        <section anchor="rate-limiting-access-request">
          <name>Rate Limiting Access-Request</name>
          <t>Client implementations which control network access for unauthenticated devices MUST rate limit the number of Access-Request packets that they originate.  This requirement does not apply to proxies, as they do not directly control network access for unauthenticated devices.</t>
          <t>Implementations SHOULD implement rate limits separately for each of individual device, network port, and globally across the client.  Network security and stability is improved when a client limits network access to malicious or misconfigured devices.  The alternative is for the client to contribute to the problem by simply forwarding the problematic traffic.  Since the cost to servers can be large, this forwarding effectively amplifies the attack.</t>
          <t>For individual devices or wired network ports, authentication requests can be limited to once per second.  Longer rate limit windows are likely to be humanly noticable, while shorter times are likely to still have negative impact on the RADIUS ecosystem.</t>
          <t>These rate limits will not affect well-behaved devices.  Rate limiting malicious devices will only have a positive effects.</t>
          <t>For global rate limits, implementations SHOULD provide a configuration option which can be set by an administrator.  Enforcing this limit in overload situations may cause some devices to fail authentication for a short period of time, until they retry.  However, if authentications are not globally rate limited, the RADIUS server will likely be overloaded, and the devices will be unable to authenticate even when there are no global rate limits.</t>
          <t>It is difficult to offer specific advice for setting global rate limits on sending Access-Request packets.  Networks can vary widely in performance and capability.  A local RADIUS server may have low latency, and could be capable of processing tens or hundreds of thousands of requests per second.  A remote RADIUS server at the end of a long proxy chain may have high latency, and could therefore process a much smaller number of requests per second.</t>
          <t>One possible rate limiting method is to use a method similar to the TCP window size.  A client could limit the number of sent Access-Requests which have not yet seen an Access-Accept or an Access-Reject.  If there are too many outstanding Access-Requests, then the server is deemed to be overloaded.  The client then waits for existing sessions to finish (or time out) before sending Access-Requests for new sessions.</t>
          <t>Other rate limiting methods are possible, but are not discussed here.  This topic is the subject of ongoing research.</t>
        </section>
        <section anchor="access-reject">
          <name>Delaying Access-Rejects</name>
          <t>Many devices are known to immediately reauthenticate after receiving an authentication failure.  While these devices are behaving poorly and not maliciously, the effect on the RADIUS systems is similar.</t>
          <t>In order to prevent rejected devices from reauthenticating immediately, servers MUST be able to delay Access-Reject packets.  Servers SHOULD 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>This delay can be enforced by any RADIUS server, including a proxy.  Howerver, for proxies, this delay MUST NOT be additive.  That is, proxies MUST NOT add a fixed delay to Access-Reject packets.  If multiple servers in a chain of proxies were to each add a delay, the delays woud be cumultative, and therefore problematic.</t>
          <t>Instead, proxies need only to enforce a minimum delay between Access-Request and Access-Reject.</t>
          <t>Servers SHOULD also add a small random jitter to any preconfigured delay, in order to better protect themselves from timing attacks.</t>
          <t>A NAS does not need add delays when rejecting a device.  Instead, it should send the reject to the device immediately.  As discussed above, a NAS should rate limit authentication requests from a device or port.  This rate limiting is likely to be easier for the NAS to implement than delaying rejects, and will have much the same effect.</t>
        </section>
      </section>
    </section>
    <section anchor="migrating-away-from-insecure-transports">
      <name>Migrating Away from Insecure Transports</name>
      <t>It can be difficult to upgrade legacy devices with new cryptographic protocols and user interfaces.  The problem is made worse due to 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 will take 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="network-operators">
        <name>Network Operators</name>
        <t>It is RECOMMENDED that all RADIUS traffic be sent over a logically or physically separate management network.  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 a vulnerability, then an attacker could exploit that vulnerability in order 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 RECOMMENDED 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="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>
    <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 elsewhere:  TBD - add ref to review document.</t>
        <t>That being said, other authentication methods such as EAP-TLS <xref target="RFC9190"/> 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="clients-need-to-implement-exponential-backoff">
        <name>Clients need to Implement Exponential Backoff</name>
        <t>RADIUS client retransmission behavior is defined in <xref section="2.2.2" sectionFormat="comma" target="RFC5080"/>.  That specification notes:</t>
        <ul empty="true">
          <li>
            <t>Some existing RADIUS clients implement excessively aggressive
retransmission behavior, utilizing default retransmission timeouts of
one second or less without support for congestive backoff.  When
deployed at a large scale, these implementations are susceptible to
congestive collapse.</t>
          </li>
        </ul>
        <t>Despite that specification being almost two decades old, many clients still follow the inappropriate behavior quoted above.  Perhaps unsurprisingly, those implementations failures continue to result in many issues, including contributing to congestive collapse.</t>
        <t>As a result, where <xref section="2.2.2" sectionFormat="comma" target="RFC5080"/> suggests that clients implement these behaviors, this specification now requires that clients MUST implement the jitter and congestive backoff algorithm defined in <xref section="2.2.2" sectionFormat="comma" target="RFC5080"/>.</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"/>, <xref target="RFC7593"/>) 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.</t>
          <t>TBD - care should be taken.  Where possible, IP filtering is used.  Do NAI filtering, etc.</t>
          <t>Administrators SHOULD limit the source IP of allowed connections.  Server SHOULD filter packets received 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>TBD:   Let's say that the RADIUS or EAP server certificate for the "example.com" is instead from the hosting company "example.org".  When your company changes hosting providers, you will need to re-provision every system with a new server certificate.    If instead the server certificate is for your domain, no re-provisioning is necessary.</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="use-rate-limiting">
        <name>Use Rate Limiting</name>
        <t>TBD:</t>
      </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>RadSec: RADIUS over Transport Layer Security (TLS) and Datagram Transport Layer Security (DTLS)</title>
            <author fullname="Jan-Frederik Rieckers" initials="J." surname="Rieckers">
              <organization>Deutsches Forschungsnetz | German National Research and Education Network</organization>
            </author>
            <author fullname="Margaret Cullen" initials="M." surname="Cullen">
              <organization>Painless Security</organization>
            </author>
            <author fullname="Stefan Winter" initials="S." surname="Winter">
              <organization>Fondation Restena | Restena Foundation</organization>
            </author>
            <date day="23" month="February" year="2026"/>
            <abstract>
              <t>   This document defines transport profiles for running RADIUS over
   Transport Layer Security (TLS) and Datagram Transport Layer Security
   (DTLS), allowing the secure and reliable transport of RADIUS
   messages.  RADIUS/TLS and RADIUS/DTLS are collectively referred to as
   RadSec.

   This document obsoletes RFC6614 and RFC7360, which specified
   experimental versions of RADIUS over TLS and DTLS.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-radext-radiusdtls-bis-15"/>
        </reference>
        <reference anchor="I-D.dekok-radext-review-radius">
          <front>
            <title>A Review of RADIUS Security and Privacy</title>
            <author fullname="Alan DeKok" initials="A." surname="DeKok">
              <organization>InkBridge Networks</organization>
            </author>
            <date day="6" month="November" year="2025"/>
            <abstract>
              <t>   This document provides a comprehensive review of security issues
   related to the RADIUS Protocol.  This review motivates the changes to
   RADIUS security which are made in
   [I-D.ietf-radext-deprecating-radius].

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-dekok-radext-review-radius-00"/>
        </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="Elizabeth A Cockrell" initials="B." surname="Cockrell">
              <organization>Independent</organization>
            </author>
            <author fullname="Sri Gundavelli" initials="S." surname="Gundavelli">
              <organization>Cisco Systems</organization>
            </author>
            <date day="23" month="January" year="2026"/>
            <abstract>
              <t>   This document describes the Wireless Broadband Alliance's OpenRoaming
   system.  The OpenRoaming architecture 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-07"/>
        </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="ASLEAP" target="https://github.com/joswr1ght/asleap">
          <front>
            <title>asleap - recovers weak LEAP and PPTP passwords</title>
            <author initials="J." surname="Wright" fullname="Joshua Wright">
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="BLAST" target="33rd USENIX Security Symposium (USENIX Security 24), 2024, pp. 7429 - 7446.">
          <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="RFC6218">
          <front>
            <title>Cisco Vendor-Specific RADIUS Attributes for the Delivery of Keying Material</title>
            <author fullname="G. Zorn" initials="G." surname="Zorn"/>
            <author fullname="T. Zhang" initials="T." surname="Zhang"/>
            <author fullname="J. Walker" initials="J." surname="Walker"/>
            <author fullname="J. Salowey" initials="J." surname="Salowey"/>
            <date month="April" year="2011"/>
            <abstract>
              <t>This document defines a set of vendor-specific RADIUS Attributes designed to allow both the secure transmission of cryptographic keying material and strong authentication of any RADIUS message. These attributes have been allocated from the Cisco vendor-specific space and have been implemented by multiple vendors. This document is not an Internet Standards Track specification; it is published for informational purposes.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6218"/>
          <seriesInfo name="DOI" value="10.17487/RFC6218"/>
        </reference>
        <reference anchor="RFC7930">
          <front>
            <title>Larger Packets for RADIUS over TCP</title>
            <author fullname="S. Hartman" initials="S." surname="Hartman"/>
            <date month="August" year="2016"/>
            <abstract>
              <t>The RADIUS-over-TLS experiment described in RFC 6614 has opened RADIUS to new use cases where the 4096-octet maximum size limit of a RADIUS packet proves problematic. This specification extends the RADIUS-over-TCP experiment (RFC 6613) to permit larger RADIUS packets. This specification compliments other ongoing work to permit fragmentation of RADIUS authorization information. This document registers a new RADIUS code, an action that required IESG approval.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7930"/>
          <seriesInfo name="DOI" value="10.17487/RFC7930"/>
        </reference>
        <reference anchor="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="RFC2548">
          <front>
            <title>Microsoft Vendor-specific RADIUS Attributes</title>
            <author fullname="G. Zorn" initials="G." surname="Zorn"/>
            <date month="March" year="1999"/>
            <abstract>
              <t>This document describes the set of Microsoft vendor-specific RADIUS attributes. This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2548"/>
          <seriesInfo name="DOI" value="10.17487/RFC2548"/>
        </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="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="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="RFC7593">
          <front>
            <title>The eduroam Architecture for Network Roaming</title>
            <author fullname="K. Wierenga" initials="K." surname="Wierenga"/>
            <author fullname="S. Winter" initials="S." surname="Winter"/>
            <author fullname="T. Wolniewicz" initials="T." surname="Wolniewicz"/>
            <date month="September" year="2015"/>
            <abstract>
              <t>This document describes the architecture of the eduroam service for federated (wireless) network access in academia. The combination of IEEE 802.1X, the Extensible Authentication Protocol (EAP), and RADIUS that is used in eduroam provides a secure, scalable, and deployable service for roaming network access. The successful deployment of eduroam over the last decade in the educational sector may serve as an example for other sectors, hence this document. In particular, the initial architectural choices and selection of standards are described, along with the changes that were prompted by operational experience.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7593"/>
          <seriesInfo name="DOI" value="10.17487/RFC7593"/>
        </reference>
        <reference anchor="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 930?>

<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>
    <section anchor="blastradius-mitigations">
      <name>BlastRADIUS Mitigations</name>
      <section anchor="implementor-checklist">
        <name>Implementor Checklist</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="administrator-upgrade-process">
      <name>Administrator Upgrade Process</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>
  </back>
  <!-- ##markdown-source:
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
KU/WGGVMdfx/ASuGBSF5gAEA

-->

</rfc>
