<?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-review-radius-02" category="info" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.24.0 -->
  <front>
    <title abbrev="A Review of RADIUS Security and Privacy">A Review of RADIUS Security and Privacy</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-radext-review-radius-02"/>
    <author initials="A." surname="DeKok" fullname="Alan DeKok">
      <organization>InkBridge Networks</organization>
      <address>
        <email>alan.dekok@inkbridge.io</email>
      </address>
    </author>
    <date year="2026" month="August" day="10"/>
    <area>Internet</area>
    <workgroup>RADEXT Working Group</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <?line 154?>

<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
<xref target="I-D.ietf-radext-deprecating-radius"/>.</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-review-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/review-radius.git"/>.</t>
    </note>
  </front>
  <middle>
    <?line 161?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>The RADIUS protocol <xref target="RFC2865"/> was first standardized in 1997, though its roots go back much earlier to 1993.  The protocol uses MD5 <xref target="RFC1321"/> to authenticate some packets, 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"/>).  As much of the protocol data is sent in clear-text, packets can leak information about use names, devices, and locations.</t>
      <t>This document provides a comprehensive review of RADIUS security and privacy.  The discussion here motivates the changes to RADIUS security which are made in <xref target="I-D.ietf-radext-deprecating-radius"/>.  In order to simplify the protocol changes for implementers, this historical review is a separate document from the protocol changes.  While this document contains some operational recommendations, it does not change the RADIUS protocol.</t>
      <section anchor="history-of-radius-security">
        <name>History of RADIUS Security</name>
        <t>The insecurity of MD5 has been known for a long time.  It was first noted in relation to RADIUS in 1996 on the IETF RADIUS working group mailing list <xref target="MD5-1996"/>, which also discussed using an HMAC construct to increase security.  While it was common knowledge at the time, the earliest record of concerns about Access-Request packets spoofing was on the RADIUS working group mailing list <xref target="DATTACK"/> in 1998.  There was substantial further discussions about the lack of integrity checks on the list over the next few years.  The outcome of that process was the definition of Message-Authenticator as an optional HMAC-based attribute in <xref section="5.14" sectionFormat="comma" target="RFC2869"/>.</t>
        <t>Unfortunately, the use of Message-Authenticator was made optional.  This lack of integrity checks for Access-Request packets was deemed acceptable for some situations in <xref section="7.1" sectionFormat="comma" target="RFC2869"/>:</t>
        <ul empty="true">
          <li>
            <t>Access-Request packets with a User-Password establish the identity of
both the user and the NAS sending the Access-Request, because of the
way the shared secret between NAS and RADIUS server is used.</t>
          </li>
        </ul>
        <t>That conclusion now appears to be incorrect.  The text continues with an acknowledgment that:</t>
        <ul empty="true">
          <li>
            <t>Access-Request packets with CHAP-Password or EAP-Message do not have
a User-Password attribute, so the Message-Authenticator attribute
should be used in access-request packets that do not have a User-
Password, in order to establish the identity of the NAS sending the
request.</t>
          </li>
        </ul>
        <t>This text was non-normative due to the lowercase 'should'.  It appears that no implementation followed even this limited suggestion.</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"/>.  That document suggested that implementations require the use of Message-Authenticator in order to prevent forgery:</t>
        <ul empty="true">
          <li>
            <t>However, Access-Request packets not containing a Message-
Authenticator attribute ...  may
be trivially forged.  To avoid this issue, server implementations may
be configured to require the presence of a Message-Authenticator
attribute in Access-Request packets.  Requests not containing a
Message-Authenticator attribute MAY then be silently discarded.</t>
          </li>
        </ul>
        <t>It appears that only one RADIUS server implemented even this limited suggestion.  At the time of publication of <xref target="RFC5080"/>, there was no consensus to require the use of Message-Authenticator in all Access-Request packets.  If this recommendation had instead been made mandatory, then the recent BlastRADIUS attack <xref target="BLAST"/> would largely have been prevented.</t>
        <t>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"/>.  The outcome of that review was the text in the remainder of <xref target="RFC6421"/>, which created crypto-agility requirements for RADIUS.  The main outcome of those requirements was not any change to RADIUS, but instead the definition of RADIUS/TLS in <xref target="RFC6614"/>, and RADIUS/DTLS in <xref target="RFC7360"/>.  Another outcome was the consensus that adding crypto-agility to RADIUS was likely not a good idea, and that standardizing RADIUS over TLS instead was a significantly better path forward.</t>
        <t>RadSec has now been standardized in <xref target="I-D.ietf-radext-radiusdtls-bis"/>.  That document standardizes TLS and DTLS transporst for RADIUS, which gives implementors and operators a way to secure the RADIUS protocol.</t>
        <t>As for RADIUS/UDP and RADIUS/TCP, they still depend on MD5 for all security.  The insecurity of MD5 was noted in <xref target="RFC6151"/>, which is over a decade old as of the time of publication of this document.  The recommendation to use Message-Authenticator in <xref target="RFC5080"/> is almost two decades old.  The knowledge that Access-Request packets lack integrity checks is almost three decades old.  Over that entire span of time, there has been no mandate to increase the security of Access-Request packets. This document explains why that mandate is now being made in <xref target="I-D.ietf-radext-deprecating-radius"/>.</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 explains why insecure uses of RADIUS need to be deprecated. <xref target="I-D.ietf-radext-deprecating-radius"/> mandates the use of secure practices in RADIUS, including the use of (D)TLS via <xref target="I-D.ietf-radext-radiusdtls-bis"/>.</t>
      </section>
      <section anchor="radiusudp-over-the-internet-is-insecure">
        <name>RADIUS/UDP over the Internet is insecure</name>
        <t>Since the insecurity of MD5 has been well known for decades, RADIUS traffic over the Internet was historically secured with IPsec as described in <xref section="4.2" sectionFormat="comma" target="RFC3579"/>:</t>
        <ul empty="true">
          <li>
            <t>To address the security vulnerabilities of RADIUS/EAP,
implementations of this specification SHOULD support IPsec
(RFC2401) along with IKE (RFC2409) for key management.  IPsec ESP
(RFC2406) with non-null transform SHOULD be supported, and IPsec
ESP with a non-null encryption transform and authentication
support SHOULD be used to provide per-packet confidentiality,
authentication, integrity and replay protection.  IKE SHOULD be
used for key management.</t>
          </li>
        </ul>
        <t>The use of IPsec allowed RADIUS to be sent privately, and securely, across the Internet.  However, experience showed that TLS was simpler than IPSec in many ways simpler for implementations and deployments.  While IPsec required operating system support, TLS was an application-space library.  This difference, coupled with the wide-spread adoption of TLS for HTTPS, ensures that it was often easier for applications such as RADIUS to use TLS than IPsec.</t>
        <t>RADIUS/TLS <xref target="RFC6614"/> and RADIUS/DTLS <xref target="RFC7360"/> were then defined in order to meet the crypto-agility requirements of <xref target="RFC6421"/>.  RADIUS/TLS has been in wide-spread use for about a decade, including in eduroam <xref target="EDUROAM"/> <xref target="RFC7593"/>, and more recently in OpenRoaming <xref target="OPENROAMING"/> and <xref target="I-D.tomas-openroaming"/>.  RADIUS/DTLS has seen less use across the public Internet, but it still has multiple implementations.</t>
        <t>However, RADIUS/UDP is still widely used, even though it depends on MD5 and "ad hoc" constructions for security.  The recent BlastRADIUS attack shows just how inadequate this dependency is.  The details of the BlastRADIUS attack are discussed in more detail below, in <xref target="blastradius"/>.</t>
      </section>
      <section anchor="radiusudp-has-security-and-privacy-problems">
        <name>RADIUS/UDP Has Security and Privacy Problems</name>
        <t>Even if we ignore the BlastRADIUS attack, problems with MD5 mean that a hobbyist attacker who can view RADIUS/UDP traffic can brute-force check all possible RADIUS shared secrets of eight characters in not much more than an hour.  A more resourceful attacker (e.g. a nation-state) can check all much longer shared secrets with only modest expenditures.  See <xref target="cracking"/> below for a longer discussion of this topic.</t>
        <t>Determining the shared secret will also result in compromise of all passwords carried in the User-Password attribute.  Even using CHAP-Password offers minimal protection, as the cost of cracking the underlying password is similar to the cost of cracking the shared secret.  MS-CHAP (<xref target="RFC2433"/> and MS-CHAPv2 <xref target="RFC2759"/>) are significantly worse in security than PAP, as they can be completely broken with minimal resources.  Attacks on MS-CHAP are described below in <xref target="ms-chap"/>.</t>
        <t>The use of Message-Authenticator does not change the cost of attacking the shared secret.  The Message-Authenticator attribute is a later addition to RADIUS, and does does not replace the original MD5-based packet signatures.  While that attribute provides stronger protection for packets, it does not change the cost of attacking the shared secret.  Moving to a stronger packet signatures (e.g. <xref target="RFC6218"/>) would still not fully address the issues with RADIUS, as the protocol still has privacy issues unrelated to the the security of the Authenticator field.</t>
        <t>Most attributes in RADIUS are sent in clear-text, with only a few attributes such as User-Password and Tunnel-Password have their contents hidden.  The hidden attributes rely on "ad hoc" obfuscation methods using MD5, which have not been successfully attacked, but have not proven to be secure.  Peoples locations can (and has) been accurately determined, and people have been tracked using location data sent insecurely across the Internet (<xref target="privacy"/>).</t>
        <t>The implications for security and individual safety are large, and negative.</t>
        <t>These issues are only partly mitigated when the data carried within RADIUS use their own methods for increased security and privacy.  For example, some authentication methods such EAP-TLS, EAP-TTLS, etc. allow for User-Name privacy and for more secure transport of passwords via the use of TLS.  Some privacy can be gained through MAC address randomization, which can also limit device information identification to a particular manufacturer, instead of to a unique device.</t>
        <t>However, these methods are not always used, or are not always available.  Even if these methods were used ubiquitously, they do not protect all of the information which is publicly available over RADIUS/UDP or RADIUS/TCP transports.  And even when TLS-based EAP methods are used, implementations have historically often skipped certificate validation, leading to password compromise (<xref target="SPOOFING"/>).  In many cases, users were not even aware that the server certificate was incorrect or spoofed, which meant that there was no way for the user to detect that anything was wrong.  Their passwords were simply handed to a spoofed server, with little possibility for the user to take any action to stop it.</t>
      </section>
      <section anchor="simply-using-ipsec-or-tls-is-not-enough">
        <name>Simply using IPsec or TLS is not enough</name>
        <t>The use of a secure transport such as IPsec or TLS ensures complete privacy and security for all RADIUS traffic, but only for one client to server connection.  An observer of encrypted traffic is limited to knowing rough activity levels of a client or server.  That is, an observer can tell if there are a few users on a NAS, or many users on a NAS.  All other information is hidden from all observers.  Even with those limitations, it is not enough to say "use IPsec" and then move on to other issues.  There are many issues which can only be addressed via an informed approach.</t>
        <t>For example, it is possible for an attacker to record the session traffic, and later crack the TLS session key or IPsec parameters.  This attack could comprise all traffic sent over that connection, including EAP session keys.  When the cryptographic methods provide forward secrecy (<xref section="6.3" sectionFormat="comma" target="RFC7525"/>), then breaking one session provides no information about other sessions.</t>
        <t>The final attack possible in a AAA system is where one party in a AAA conversation is compromised or run by a malicious party.  This attack is made more likely by the extensive use of RADIUS proxy forwarding chains.  In that situation, every RADIUS proxy has full visibility into, and control over, the traffic it transports.  The solution here is to minimize the number of proxies involved, such as by using Dynamic Peer Discovery, as defined in <xref target="RFC7585"/>.</t>
        <t>There are many more security issues in addition to the need for a secure transport. The rest of this document discusses those issues in detail.</t>
      </section>
      <section anchor="overview-of-this-document">
        <name>Overview of this document</name>
        <t>This document begins with a summary of issues with RADIUS, including showing just how trivial it is to crack RADIUS/UDP security.  We then explain why mandating a secure transport is necessary, and describe what that requirement means in practice.  We give recommendations on how current systems can be migrated to using TLS.  We give suggestions for increasing the security of existing RADIUS transports, including a discussion of the authentication protocols carried within RADIUS.  We conclude with security and privacy considerations.</t>
        <t>As IPsec has been discussed previously in the context of RADIUS, we do not discuss it more here, except to say it is an acceptable solution for securing RADIUS traffic.  As the bulk of the current efforts are focused on TLS, this document likewise focuses on TLS.  We note that all of the issues raised here about the RADIUS protocol also apply to IPsec transport.  That is, when the application is not in charge of protocol security, the application is vulnerable to transport misconfigurations or attacks.</t>
        <section anchor="a-comment-on-specifications">
          <name>A Comment on Specifications</name>
          <t>While this document tries to be comprehensive, it is necessarily imperfect.  There may be issues which should have been included here, but which were missed due to oversight or accident.  Any reader should be aware that there are good practices which are perhaps not documented in a specification, and bad behaviors which are likewise not forbidden.  For example, documents such as <xref target="RFC5080"/> were written to both correct errors in earlier documents, and to address harmful behaviors which had been seen in practice.</t>
          <t>These harmful behaviors can have a large impact both on security and on interoperability, even if they are not expressly forbidden in a specification.</t>
          <t>There is a regrettable belief in some readers that a particular practice is "allowed" by a specification, simply because the practice is not forbidden.  This belief is wrong.  That is, a behavior which is not even mentioned in the specification cannot honestly be said to be "permitted" or "allowed" by that specification.    The most charitable description would be that these behaviors are undefined, or perhaps not forbidden.</t>
          <t>By their very nature, documents include a small number of permitted, required, and/or forbidden behaviors.  There are a much larger set of behaviors which are undefined.  That is, behaviors which are neither permitted nor forbidden.  Those behaviors are unconstrained by the specification, and therefore may be good or bad.</t>
          <t>Outside of published specifications, there is also a large set of common practices and behaviors which have grown organically over time, but which have not been formally written down.  These practices have been found to be valuable by implementers and administrators.  Deviations from these practices generally results in instabilities and incompatibilities between systems.  As such, implementers should exercise caution when creating new behaviors which have not previously been seen in the industry.  Such behaviors are likely to cause problems, where there would have been no problems if common practices had been followed instead.</t>
          <t>It is RECOMMENDED that implementations and administrators follow widely accepted practices which have been proven to work and to be secure, even if those practices are not written down in a public specification.  Implementers SHOULD NOT create features which depend on undefined behavior; such features are very likely to be wrong.</t>
        </section>
      </section>
    </section>
    <section anchor="terminology">
      <name>Terminology</name>
      <ul spacing="normal">
        <li>
          <t>RADIUS</t>
        </li>
      </ul>
      <ul empty="true">
        <li>
          <t>The Remote Authentication Dial-In User Service protocol, as defined in <xref target="RFC2865"/>, <xref target="RFC2866"/>, and <xref target="RFC5176"/> among others.</t>
        </li>
      </ul>
      <ul spacing="normal">
        <li>
          <t>RADIUS/UDP</t>
        </li>
      </ul>
      <ul empty="true">
        <li>
          <t>RADIUS over the User Datagram Protocol as define above.</t>
        </li>
      </ul>
      <ul spacing="normal">
        <li>
          <t>RADIUS/TCP</t>
        </li>
      </ul>
      <ul empty="true">
        <li>
          <t>RADIUS over the Transport Control Protocol <xref target="RFC6613"/></t>
        </li>
      </ul>
      <ul spacing="normal">
        <li>
          <t>RADIUS/TLS</t>
        </li>
      </ul>
      <ul empty="true">
        <li>
          <t>RADIUS over the Transport Layer Security protocol <xref target="RFC6614"/></t>
        </li>
      </ul>
      <ul spacing="normal">
        <li>
          <t>RADIUS/DTLS</t>
        </li>
      </ul>
      <ul empty="true">
        <li>
          <t>RADIUS over the Datagram Transport Layer Security protocol  <xref target="RFC7360"/></t>
        </li>
      </ul>
      <ul spacing="normal">
        <li>
          <t>TLS</t>
        </li>
      </ul>
      <ul empty="true">
        <li>
          <t>the Transport Layer Security protocol.  Generally when we refer to TLS in this document, we are referring to RADIUS/TLS and/or RADIUS/DTLS.</t>
        </li>
      </ul>
      <ul spacing="normal">
        <li>
          <t>NAS</t>
        </li>
      </ul>
      <ul empty="true">
        <li>
          <t>Network Access Server, which is a RADIUS client.</t>
        </li>
      </ul>
      <t>In order to continue the terminology of <xref target="RFC2865"/>, we describe 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 is inconsistent with historic RADIUS practices.  The reader is assured that no modern cryptographic methods are used with RADIUS/UDP.</t>
    </section>
    <section anchor="security-issues-with-radius">
      <name>Security Issues with RADIUS</name>
      <t>There are a large number of issues with RADIUS.   The most serious is the BlastRADIUS vulnerability, which means that subject to some limitations, attackers can leverage MD5 known-prefix collisions to cause any user to be authenticated, and then be given any authorization.  Multi-factor Authentication (MFA) systems can be bypassed, and in many cases the RADIUS server will not even be aware that an unauthorized user is on the network.</t>
      <t>Another issue is that RADIUS sends most information (but not passwords) "in the clear", with obvious privacy implications.  Publicly available data includes information such as names, MAC addresses, locations, etc.</t>
      <t>As for authenticating the packets themselves, even if Message-Authenticator is used for integrity checks, an average hobbyist who observes RADIUS traffic can perform brute-force attacks to crack even seemingly complex shared secrets.</t>
      <t>There is no way to fix the RADIUS protocol to address all of these issues.  The short-term fix is in <xref target="I-D.ietf-radext-deprecating-radius"/>, which requires the use of Message-Authenticator to authenticate Access-Request packets, and responses to them.  The long-term solution is in <xref target="I-D.ietf-radext-radiusdtls-bis"/>, which wraps the protocol in a secure transport.</t>
      <t>With the benefit of experience, <xref target="I-D.ietf-radext-deprecating-radius"/> errs on the side of security, while still allowing for backwards compatibility.  It is not acceptable to permit insecure practices in the RADIUS protocol simply because a small number of implementations or organizations find it difficult to upgrade.  Insecure implementations or practices have a concrete cost not only to the insecure organizations, but also to other organizations via secondary effects.  When insecure organizations demand that others follow insecure practices continue due to perceived local costs, they are effectively offloading their costs onto everyone else.  This practice both decreases security, and increases costs.</t>
      <t>We address these issues in more detail below.</t>
      <section anchor="the-blastradius-vulnerability">
        <name>The BlastRADIUS Vulnerability</name>
        <t>The BlastRADIUS vulnerability was first described in <xref target="BLAST"/>.  This section gives a short summary of why RADIUS is vulnerable to this attack.   <xref target="blastradius"/>, below, gives a longer explanation as to how the attack works, and why the mitigations defined in <xref target="I-D.ietf-radext-deprecating-radius"/> protect from the attack. The reader is referred to <xref target="BLAST"/> for a comprehensive description of the attack.</t>
        <t>The discussion below assumes that there exist plain texts "A", "B", "S".  Following the practice of <xref target="RFC2865"/>, we use "+" to denote concatenation.  The vulnerability then relies on the following property of MD5:</t>
        <ul empty="true">
          <li>
            <t>If MD5(A) == MD5(B), then MD5(A + S) == MD5(B + S)</t>
          </li>
        </ul>
        <t>This construction menas that if an attacker is given text "A", and can find text "B" which has the same MD5 hash, then the attacker can perform a chosen prefix attack.  The attack works even if the attacker does not know text "S".  That is, given M5(A + S), then the attacker can trivially calculate MD5(B + S): it has the same value.</t>
        <t>In RADIUS, the Response Authenticator field <xref section="3" sectionFormat="comma" target="RFC2865"/> is calculated via precisely this vulnerable construct:</t>
        <ul empty="true">
          <li>
            <t>Response Authenticator = MD5(packet + secret)</t>
          </li>
        </ul>
        <t>The attacker can generally observe or predict an Access-Reject packet, as they are generally empty.  Each valid Access-Reject
is signed with a shared secret unknown to the attacker.  With sufficient work, the attacker can create an Access-Accept which has the same MD5 hash as the Access-Reject.  The attacker then replaces the Access-Reject with this Access-Accept, using the Response Authenticator from the Access-Reject.</t>
        <t>The client will then receive the packet, calculate MD5(Access-Accept + secret), and verify that the Response Authenticator is correct.  The client will then follow the attackers instructions: give the user access, along with some authorization.</t>
        <t>This chosen prefix attack is root cause behind the BlastRADIUS vulnerability.</t>
        <t>We note also that this attack does not expose the contents of the User-Password attribute.  Instead, the attack simply bypasses all server-side authentication, and fools the client into accepting a forged response.</t>
        <t>While this attack requires that an attacker be "on path" and be able to intercept and modify packets, the meaning of "on path" is often "the entire Internet".  As such, the existence of this attack alone is sufficient reason to deprecate all uses of RADIUS/UDP and RADIUS/TCP.</t>
      </section>
      <section anchor="failed-attempts-to-improve-radius-security">
        <name>Failed Attempts to Improve RADIUS Security</name>
        <t>Independent of any cryptographic vulnerability, there are a number of factors which contributed to the ongoing failure to improve RADIUS security.</t>
        <t>A major factor is the continued use of MD5 for security, instead of mandating the use of an HMAC via Message-Authenticator.  This change could have been made in <xref target="RFC2869"/> in the year 2000.  The stated reason there for not mandating Message-Authenticator was the issue of backwards compatibility.  Unfortunately, experience shows that issues which are not fixed just grow larger over time.  The issue of backwards compatibility is significantly worse now than it was in the year 2000.</t>
        <t>The issue of unauthenticated Access-Request packets was raised again in <xref section="2.2.2" sectionFormat="comma" target="RFC5080"/>, and again was widely ignored.  If vendors had implemented this recommendation in 2007, then the BlastRADIUS attack would have been impossible.</t>
      </section>
      <section anchor="failures-of-the-protocol-state-machine">
        <name>Failures of the Protocol State Machine</name>
        <t>Another contributing factor to the BlastRADIUS vulnerability is the principle of "be conservative in what you do, be liberal in what you accept from others", often known as Postel's law, after John Postel.  This principle means that a client will accept packets that are well-formed, but which contain invalid signaling.  Specifically, the Proxy-State attribute is intended for signalling between a proxy and a "next hop" server.  It offers no value for RADIUS clients.  A NAS which originates packets therefore does not send Proxy-State in an Access-Request, and should also not receive Proxy-State in any response packets.</t>
        <t>If a NAS does receive Proxy-State in a response, where the request did not contain Proxy-State, this is arguably a violation of the protocol state machine.  It would be useful if such a packet would either trigger a warning message, or instead be rejected entirely.</t>
        <t>That is, when a NAS sees Proxy-State in an Access-Accept, that is a failure of signaling in the RADIUS protocol.  It indicates either a serious failure of configuration, implementation, or as seen in this case, an active attack.  If the specifications had instructed clients to discard responses which contained unexpected Proxy-State attributes, then this attack would have been prevented.</t>
      </section>
      <section anchor="privacy">
        <name>Most information is sent in Clear Text</name>
        <t>Even ignoring security issues, the RADIUS protocol has fundamental problems with privacy.</t>
        <t>With the exception of a few attributes such as User-Password, all RADIUS traffic is sent "in the clear" when using UDP or TCP transports.  When using EAP, some EAP methods allow for user privacy, but the EAP Identitity and therefore User-Name are sent in the clear.  For TLS-based EAP methods, any client certificate is sent in the clear when using TLS 1.2 or earlier.</t>
        <t>Even when RADIUS/TLS is used, all RADIUS traffic (including User-Password) is visible to proxies.  The resulting data exposure has a large number of privacy issues.  We refer 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>When RADIUS/UDP or RADIUS/TCP is used across the public Internet, common configurations allow the location of individuals to be tracked in real-time (usually 10 minute intervals), to within a small physical location.  The users devices can be identified, and also tracked. Even when the packets do not contain any <xref target="RFC5580"/> location information for the user, the packets usually contain the MAC address of the Wi-Fi access point.  The MAC address and physical location of the user device and often W-Fi access points are publicly available.  There are multiple services selling databases of Wi-Fi access point location.</t>
        <t>More discussion of location privacy is given in <xref target="RFC6280"/>, which defines an "Architecture for Location and Location Privacy in Internet Applications".  However, that work was published too late to have any practical impact on the design of location information attributes, as <xref target="RFC5580"/> had already been published.</t>
        <t>The effect of these design decisions is that any observer of non-TLS RADIUS traffic is able to obtain a substantial amount of personal identifiable information (PII) about users.  The observer can tell who is logging in to the network, what devices they are using, where they are logging in from, and their approximate location (usually city).  With location-based attributes as defined in <xref target="RFC5580"/>, a user's location may be determined to within 15 or so meters outdoors, and with "meter-level accuracy indoors" <xref target="WIFILOC"/>.  An observer can also use RADIUS accounting packets to determine how long a user is online, and to track a summary of their total traffic (upload and download totals).</t>
        <t>These issues are not theoretical.  Recently, <xref target="BRIGGS"/> noted for the Diameter <xref target="RFC6733"/> protocol that:</t>
        <ul empty="true">
          <li>
            <t>Overall, I think the above three examples are just the tip of the proverbial iceberg of SS7 and Diameter based location and monitoring exploits that have been used successfully against targeted people in the USA.</t>
          </li>
        </ul>
        <t><xref target="BRIGGS"/> continues with a statement that there have been:</t>
        <ul empty="true">
          <li>
            <t>... numerous other exploits based on SS7 and Diameter that go beyond location tracking. Some of these involve issues like (1) the monitoring of voice and text messages, (2) the delivery of spyware to targeted devices, and (3) the influencing of U.S. voters by overseas countries using text messages.</t>
          </li>
        </ul>
        <t>While these comments mention only Diameter, the same location tracking and monitoring is also possible with RADIUS.  There is every reason to believe that similar attacks on RADIUS have occurred, but are simply less publicized than similar attacks on Diameter.</t>
      </section>
      <section anchor="md5-has-been-broken">
        <name>MD5 has been broken</name>
        <t>Attacks on MD5 are summarized in part in <xref target="RFC6151"/>.  The BlastRADIUS work substantially improved the speed of finding MD5 collisions, and those improvements are publicly available at <xref target="HASHCLASH"/>.</t>
        <t>While there have not been many other new attacks in the decade since <xref target="RFC6151"/> was published, that does not mean that further attacks do not exist.  It is more likely instead that no one is looking for new attacks.</t>
      </section>
      <section anchor="cracking">
        <name>Cracking RADIUS shared secrets can be cheap</name>
        <t>The cost of cracking a a shared secret can only go down over time as computation becomes cheaper.  The issue is made worse because of the way MD5 is used to authenticate RADIUS packets.  The attacker does not have to calculate the hash over the entire packet, as the hash prefix can be calculated once, and then cached.  The attacker can then begin the attack with that hash prefix, and brute-force only the shared secret portion.</t>
        <t>At the time of writing this document, an "off the shelf" commodity computer can calculate at least 100M MD5 hashes per second.  If we limit shared secrets to upper/lowercase letters, numbers, and a few "special" characters, we have 64 possible characters for shared secrets.  Which means that for 8-character secrets, there are 2^48 possible combinations.  The result is that using a consumer-grade machine, it can take about 32 days to brute-force the entire 8 octet / 64 character space for shared secrets.</t>
        <t>The problem is even worse when graphical processing units (GPUs) are used. A high-end GPU is capable of performing more than 64 billion hashes per second.  At that rate, the entire 8 character space described above can be searched in approximately 90 minutes.  This is an attack which is feasible today for a hobbyist.</t>
        <t>Increasing the size of the character set raises the cost of cracking, but not enough to be secure.  Increasing the character set to 93 characters means that the hobbyist using a GPU could search the entire 8 character space in about a day.</t>
        <t>Increasing the length of the shared secret has a larger impact on the cost of cracking.  For secrets ten characters long, the search space is approximately 2^60.  One GPU can search a 64-character space in about six months. A 93 character space (2^65 complexity) would take approximately 24 years.</t>
        <t>This brute-force attack is trivially parallelizable.  Nation-states have sufficient resources to deploy hundreds to thousands of systems dedicated to these attacks.  That reality means that a "time to crack" of 24 years means "24 CPU years", and does not mean "wall clock" time.  A thousand commodity CPUs are enough to reduce the crack time from 24 years to a little over a week.  This attack is feasible for any organisation with a modest amount of resources.</t>
        <t>Whether the above numbers are precise or only approximate is immaterial.  These attacks will only get better over time.  The cost to crack shared secrets will only go down over time.</t>
        <t>If the shared secret is long, then "cracking" the secret is expensive, and different trade-offs occur.  Rather than cracking the secret, it is cheaper to perform the BlastRADIUS attack at a cost of approximately 2^53 per packet, and less than $100 in purchased CPU time.  While cracking the shared secret would break all RADIUS packets using that secret, forging one packet is likely enough to give the attacker administrator access to a NAS, where the shared secret is likely to be visible in the administration interface.  The conclusion, then, is that increasing the security of the shared secret offers minimal protection when the Access-Request packets are unsigned.</t>
        <t>Even if the shared secrets were enough to secure all RADIUS packets, administrators do not always derive shared secrets from secure sources of random numbers.  The "time to crack" numbers given above are the absolute best case, assuming administrators follow best practices for creating secure shared secrets.  For shared secrets created manually by a person, the search space is orders of magnitude smaller than the best case outlined above.  Rather than brute-forcing all possible shared secrets, an attacker can create a local dictionary which contains common or expected values for the shared secret.  Where the shared secret used by an administrator is in the dictionary, the cost of the attack can drop by multiple orders of magnitude.</t>
        <t>Implementers and administrators should assume that a hobbyist attacker with modest resource can crack most shared secrets created by people in minutes, if not seconds.</t>
        <t>Despite the ease of attacking MD5, it is still a common practice for some "cloud" and other RADIUS providers to send RADIUS/UDP packets over the Internet.  It is also common practice for administrators to use "short" shared secrets, and to use shared secrets created by a person, or to use secrets that are derived from a limited character set.  Theses practice are simple to implement and to follow, but they are highly insecure, and do not provide adequate security.  Any system using these practices is vulnerable to all of the issues which are outlined in this document.</t>
        <t><xref target="I-D.ietf-radext-deprecating-radius"/> gives suggestions for how strong shared secrets can be created.</t>
      </section>
      <section anchor="tunnel-coa">
        <name>CoA-Request packets might leak Tunnel-Password contents</name>
        <t>There are a number of security problems with the use Tunnel-Password attribute in CoA-Request and Disconnect-Request packets.  A full explanation requires a review of the relevant specifications.</t>
        <t><xref target="RFC5176"/> Section 2.3 describes how to calculate the Request Authenticator field for these packets:</t>
        <artwork><![CDATA[
Request Authenticator

   In Request packets, the Authenticator value is a 16-octet MD5
   [RFC1321] checksum, called the Request Authenticator.  The
   Request Authenticator is calculated the same way as for an
   Accounting-Request, specified in [RFC2866].
]]></artwork>
        <t>Where <xref target="RFC2866"/> Section 3 says:</t>
        <artwork><![CDATA[
   The NAS and RADIUS accounting server share a secret.  The Request
   Authenticator field in Accounting-Request packets contains a one-
   way MD5 hash calculated over a stream of octets consisting of the
   Code + Identifier + Length + 16 zero octets + request attributes +
   shared secret (where + indicates concatenation).  The 16 octet MD5
   hash value is stored in the Authenticator field of the
   Accounting-Request packet.
]]></artwork>
        <t>Taken together, these definitions mean that for CoA-Request packets, all attribute obfuscation is calculated with the Reply Authenticator being all zeroes.  In contrast for Access-Request packets, the Request Authenticator is mandated to be 16 octets of random data.  This difference reduces the security of the obfuscation.</t>
        <t>For Tunnel-Password, <xref target="RFC5176"/> Section 3.6 allows it to appear in CoA-Request packets:</t>
        <artwork><![CDATA[
   ...
   Change-of-Authorization Messages
   
   Request   ACK      NAK   #   Attribute
   ...
   0+        0        0    69   Tunnel-Password (Note 5)
   ...
   (Note 5) When included within a CoA-Request, these attributes
   represent an authorization change request.  Where tunnel attributes
   are included within a successful CoA-Request, all existing tunnel
   attributes are removed and replaced by the new attribute(s).
]]></artwork>
        <t>However, <xref target="RFC2868"/> Section 3.5 says that Tunnel-Password is encrypted with the Request Authenticator:</t>
        <artwork><![CDATA[
   Call the shared secret S, the pseudo-random 128-bit Request
   Authenticator (from the corresponding Access-Request packet) R,
]]></artwork>
        <t>The assumption that the Request Authenticator is random data is true for Access-Request packets.  That assumption is not true for CoA-Request packets.</t>
        <t>That is, when the Tunnel-Password attribute is used in CoA-Request packets, the only source of randomness in the obfuscation is the salt, as defined in <xref target="RFC2868"/> Section 3.5;</t>
        <artwork><![CDATA[
 Salt
   The Salt field is two octets in length and is used to ensure the
   uniqueness of the encryption key used to encrypt each instance of
   the Tunnel-Password attribute occurring in a given Access-Accept
   packet.  The most significant bit (leftmost) of the Salt field
   MUST be set (1).  The contents of each Salt field in a given
   Access-Accept packet MUST be unique.
]]></artwork>
        <t>This chain of unfortunate definitions means that there is only 15 bits of entropy in the Tunnel-Password obfuscation (plus the RADIUS shared secret).  It is not currently known if this limitation makes it sufficiently easy for an attacker to determine the contents of the Tunnel-Password, as the obfuscated value still depends on the shared secret.  However, such limited entropy cannot be a good thing.</t>
        <t>Due to the above issues, the use obfuscated attributes in CoA-Request or Disconnect-Request packets needs to be avoided.</t>
      </section>
      <section anchor="secure-transports">
        <name>Secure transports are not enough</name>
        <t>The above analysis as to security and privacy issues focuses on RADIUS/UDP and RADIUS/TCP.  These issues are partly mitigated through the use secure transports, but it is still possible for information sent over a secure transport to "leak".</t>
        <t>The reason for this leakage is that RADIUS does not provide end to end security.  All security is "hop by hop", even when RadSec or IPsec are used.  A server which receives packets over a secure transport can forward the packets over an insecure transport protocol.  While this process could arguably be seen as a misconfiguration issue, it is never the less possible due to the design of the RADIUS protocol.  There is no way for one "hop" to know anything about, or to control, the security of another "hop".</t>
        <t>The use of channel binding <xref target="RFC6677"/> does not prevent these attack, as they made by parties within the trusted RADIUS system.  Instead, channel binding protects from an unrelated attack by an untrusted third party.</t>
        <t>One solution to the above issues would be to create a new protocol which provides for "end to end" security by design, but that solution is not practical.</t>
      </section>
      <section anchor="all-short-shared-secrets-have-been-compromised">
        <name>All short shared secrets have been compromised</name>
        <t>As a result of the above analysis, administrators can assume that any shared secret of 8 characters or less has been compromised as soon as it is used in RADIUS/UDP or RADIUS/TCP.  Administrators can assume that any shared secret of 10 characters or less has been compromised by an attacker with significant resources.  Administrators can also assume that all private information (such as User-Password or Tunnel-Password) which depend on such shared secrets have also been compromised.</t>
        <t>As the analysis in [](#user-password} below shows, a strong shared secret protects the contents of User-Password, no matter how weak the end-users password is.  As such it is acceptable (for a short time) for RADIUS/UDP to continue to carry User-Password and Tunnel-Password, but only when a strong shared secret is used.</t>
        <t>Using a strong shared secret is only a partial protection from known attacks.  RADIUS can carry end-user credentials such as CHAP-Password and MS-CHAP which are not protected with the shared secret.  Many of those credentials have been compromised, too.</t>
      </section>
      <section anchor="many-end-user-passwords-have-been-compromised">
        <name>Many end-user passwords have been compromised</name>
        <t>The analyis in <xref target="ms-chap"/> below shows how the construction of MS-CHAP can allow attackers to determine the underyling password in milliseconds.  <xref target="chap-password"/> also shows how a different attack on CHAP-Password can recover the underlying password in milliseconds.  This section explains the effects of those attacks.</t>
        <t>As the security of CHAP-Password and MS-CHAP depends only on the strength of the end-users password, those methods can be safe only if the user chooses a strong password.  That is, a password which is 10 characters or more, and which is derived from a cryptograpically strong pseudo-random number generator. This requirement is unlikely to be met by a large percentage of end users.  As such, the use of CHAP-Password and MS-CHAP needs to be deprecated.</t>
        <t>To be perfectly clear: if a CHAP-Password, or MS-CHAP data has been sent over the Internet via RADIUS/UDP or RADIUS/TCP in the last decade, you should assume that the underlying passwords have been compromised.</t>
      </section>
    </section>
    <section anchor="blastradius">
      <name>The BlastRADIUS Attack</name>
      <t>This section gives more details on the BlastRADIUS attack, so that the reader can be informed as to why <xref target="I-D.ietf-radext-deprecating-radius"/> makes its recommendations.  In the interest of simplicity for implementers, {I-D.ietf-radext-deprecating-radius}} omits all explanation of the attack.  That document also gives minimal explanation for each of the protocol changes.  This document contains the full details instead.</t>
      <t>The attack depends on a few related factors.  If any one of these factors are not present, the attack is not possible.  These factors are outlined below:</t>
      <ul spacing="normal">
        <li>
          <t>The Access-Request packets are not authenticated, and can therefore be modified without detection.</t>
        </li>
        <li>
          <t>The use of MD5 within RADIUS is subject to known prefix attacks.</t>
        </li>
        <li>
          <t>The improvements to MD5 collisions in <xref target="HASHCLASH"/> make the attack feasible.</t>
        </li>
        <li>
          <t>The structure and behavior of Proxy-State makes it the perfect vector for an attacker to inject the "MD5 garbage" (<xref target="BLAST"/>) which is needed to force the MD5 collision.</t>
        </li>
      </ul>
      <t>The attack works by having An "on path" attacker who modifies an Access-Request packet, and injects one or more Proxy-State attributes with special contents. The Proxy-State attribute itself will not trigger any overflow or “out of bounds” issue with the RADIUS client or server.  Instead, the contents of the attributes allows the attacker to create an MD5 known-prefix collision when the server calculates the Response Authenticator.  In effect, the attacker uses the RADIUS server, and its knowledge of the shared secret, to unknowingly authenticate packets which it has not created.</t>
      <t>The behavior of the Proxy-State attribute is extremely useful to this attack.  The attribute is defined in <xref section="5.33" sectionFormat="comma" target="RFC2865"/> as an opaque token which is sent by a RADIUS proxy, and is echoed back by RADIUS servers.  That is, the contents of the attribute are never examined or interpreted by the RADIUS server.  Even better, testing shows that all known RADIUS clients will simply ignore any unexpected Proxy-State attributes which they receive.  Finally, implementations generally add Proxy-State to the end of response packets, which simplifies the attack.</t>
      <t>This attribute is therefore ideally suited to an attackers purpose of injecting arbitrary data into packets, without that data affecting client or server behavior.   The reasons for this behavior are outlined below in <xref target="proxy-state"/>.  While those reasons were transient and decades in the past, the impact of those decisions has continued to impact RADIUS until the present.</t>
      <t>While it is possible to use other attributes to achieve the same effect, the use of Proxy-State is simple, and is sufficient to trigger the issue.  For example, it is theoretically possible to use the User-Name attribute for this attack, so long as it is echoed back in an Access-Accept, or even as part of the the contents of a Reply-Message in an Access-Accept.  There is no much benefit in further researching that attack, as the mitigations for attacks using Proxy-State will also protect clients and servers from a similar attacks which use other attributes.</t>
      <t>The injected data and resulting MD5 collision allows the attacker to modify the packet contents almost at will, and the client will still accept the modified packet as being authentic.  The attack allows nearly arbitrary attributes to be added to the response.  Those attributes are simply part of the MD5 collision calculation, and do not substantially impact the cost of that calculation.</t>
      <t>We reiterate that since the RADIUS server can be convinced to authenticate packets using a prefix chosen by the attacker, there is no need for the attacker to know the shared secret.  This attack succeeds no matter how secure the shared secret is, the only mitigation against the attack for RADIUS systems to use TLS, or to require that packets contain a is valid Message-Authenticator.</t>
      <section anchor="detailed-description-of-the-attack">
        <name>Detailed Description of the Attack</name>
        <t>The specific details of the attack are outlined below, as steps which are numbered the same as in the original paper (<xref target="BLAST"/>).</t>
        <ol spacing="normal" type="1"><li>
            <t>The attacker requests network access from the RADIUS client (NAS).  This action triggers the NAS to send an Access-Request packet to the RADIUS server.</t>
          </li>
          <li>
            <t>The Access-Request is observed to obtain its contents, including the Request Authenticator field.  The attacker prevents this packet from reaching the server until the MD5 collision data has been calculated.  The NAS will retransmit the packet one or more times after a delay, giving the attacker time to calculate the chosen prefix.</t>
          </li>
          <li>
            <t>An external resource is used to calculate an MD5 collision using the Request Authenticator, along with the expected contents of an Access-Reject.  As Access-Reject packets are typically empty or can be observed, the expected packet contents are known in their entirety.</t>
          </li>
          <li>
            <t>Once an MD5 collision is found, the resulting "MD5 garbage" data is placed into one or more Proxy-State attributes in the previously seen Access-Request.  The attacker then sends this modified Access-Request to the RADIUS server.</t>
          </li>
          <li>
            <t>The RADIUS server responds with an Access-Reject, and includes the Proxy-State attributes from the modified Access-Request packets.  The packet contains the malicious Proxy-State(s), along with a Response Authenticator which depends on both those malicious attributes, and the shared secret.</t>
          </li>
          <li>
            <t>The attacker discards the original Access-Reject, and uses the chosen prefix data in the Proxy-State(s) to create a different (i.e. modified) response, such as an Access-Accept.  Other authorization attributes such as VLAN assignment can also be added, modified, or deleted.  This modified packet is sent to the NAS.</t>
          </li>
          <li>
            <t>The NAS receives the modified Access-Accept, verifies that the Response Authenticator is correct, and gives the user access, along with the attackers desired authorization.</t>
          </li>
        </ol>
        <t>The result of this attack is a near-total compromise of the RADIUS protocol.  The attacker can cause any user to be authenticated.  The attacker can give almost any authorization to any user.</t>
        <t>While the above description leverages Access-Reject responses, we reiterate that the root cause of the vulnerability is the unauthenticated Access-Request packets.  The attack will therefore succeed even if the server responds with Access-Accept, Access-Challenge, or Protocol-Error <xref target="RFC7930"/>.  The ability for the attacker to avoid Access-Challenge allows MFA to be bypassed, as the attacker simply replaces the Access-Challenge with an Access-Accept.</t>
        <t>In addition to forging an Access-Accept for a user who has no credentials, the attacker can control the traffic of known and authenticated users.  Many modern Broadband Network Gateways (BNG)s, Wireless LAN Controllers (WLCs), and Broadband Remote Access Servers (BRAS) support configuring a dynamic HTTP redirect using Vendor Specific Attributes (VSA)s.  These VSAs are not protected in any way, and could be injected into an Access-Accept in order to redirect a users traffic.  The attacker could then set up a malicious website to launch Zero-Day/Zero-Click attacks, driving subscribers to the website using an HTTP redirect.  This issue is compounded by the fact that many devices perform automatic HotSpot 1.0 style walled garden discovery.  The act of simply connecting to their home WiFi connect could be enough to compromise a subscriber's equipment.</t>
        <t><xref target="I-D.ietf-radext-deprecating-radius"/> defines mitigations which will protect clients and servers from this attack when using RADIUS/UDP or RADIUS/TCP.  However, we reiterate here, and in the rest of this document, that the only long-term solution is to deprecate insecure transports entirely.  In the long term, implementers need to remove all uses of RADIUS/UDP and RADIUS/TCP from their products.  Administrators need to stop using RADIUS/UDP and RADIUS/TCP.</t>
      </section>
      <section anchor="configuration-flags">
        <name>Mitigating the Attack</name>
        <t>While <xref target="I-D.ietf-radext-deprecating-radius"/> defines the mitigations that are mandated for clients and servers, we give a summary description of those mandates here for clarity.  These descriptions are not normative, and readers are instructed to refer to <xref target="I-D.ietf-radext-deprecating-radius"/> for the full list of normative changes to RADIUS.</t>
        <t>Clients</t>
        <ul empty="true">
          <li>
            <t>Clients are required to include Message-Authenticator as the first attribute in all Access-Request packets.</t>
            <t>Clients are required to have a new boolean configuration flag for each server, called "require Message-Authenticator".</t>
            <ul empty="true">
              <li>
                <t>When this flag is set to "false", client behavior remains unchanged from legacy RADIUS.</t>
                <t>When this flag is set to "true", clients discard all responses to Access-Request packets which do not contain a Message-Authenticator attribute.</t>
              </li>
            </ul>
            <t>Clients still need to validate the contents of Message-Authenticator when it is present.  Clients also need to accept valid and authenticated responses, no matter where the Message-Authenticator is located in the response.</t>
          </li>
        </ul>
        <t>Servers</t>
        <ul empty="true">
          <li>
            <t>Servers are required to include Message-Authenticor as the first attribute in all responses to Access-Request packets.</t>
            <t>Servers are required to have a new boolean configuration flag for each client, called "require Message-Authenticator".</t>
            <ul empty="true">
              <li>
                <t>When this flag is set to "false", their behavior remains unchanged from legacy RADIUS, except that the "limit Proxy-State" flag below is also checked.</t>
                <t>When this flag is set to "true", clients discard all Access-Request packets which do not contain a Message-Authenticator attribute.</t>
              </li>
            </ul>
            <t>Servers still need to validate the contents of Message-Authenticator when it is present.  Servers also need to accept valid and authenticated Access-Requests, no matter where the Message-Authenticator is located in the request.</t>
          </li>
        </ul>
        <ul empty="true">
          <li>
            <t>Servers are required to have a new boolean configuration flag for each client, called "limit Proxy-State".</t>
            <ul empty="true">
              <li>
                <t>When this flag is set to "false", server behavior remains unchanged from legacy RADIUS.</t>
                <t>When this flag is set to "true", servers discard all Access-Request packets that contain a Proxy-State attribute.</t>
              </li>
            </ul>
          </li>
        </ul>
      </section>
      <section anchor="why-the-mitigiations-work">
        <name>Why the Mitigiations Work</name>
        <t>This section explains the rationale for the mitigations defined by <xref target="I-D.ietf-radext-deprecating-radius"/>.</t>
        <t>Adding Message-Authenticator as the first attribute in packets means that the first attribute contains data which is impossible for the attacker to predict.  That is, 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 prevented.</t>
        <t>When this change is made on clients, it is necessary to prevent the attack, but it is not sufficient.  When a server does not require that Access-Request packets contain Message-Authenticator, an attacker can simply remove it from the Access-Request.  The attack can then proceed, as the server will receive, process, and respond to, an unauthenticated Access-Request packet.</t>
        <t>In contrast, when both clients and servers requires that packets contain a valid Message-Authenticator, the BlastRADIUS attack is impossible.  Therefore the "require Message-Authenticator" flag is needed on both clients and servers in order to secure the RADIUS protocol.  In order to enable compatibility with legacy systems, this protocol change must be enabled by a configuration flag.</t>
        <section anchor="protecting-clients">
          <name>Protecting Clients</name>
          <t>A client is fully protected from the attack if it requires that all responses to Access-Request contain a Message-Authenticator, and it validates the contents of Message-Authenticator.  The client is also protected when the server sends Message-Authenticator as the first attribute in all responses to Access-Request packets.</t>
          <t>That server behavior secures one client to server connection, even if the server does not require Message-Authenticator in Access-Request packets, and even if the client does not examine or validate the contents of the Message-Authenticator.  As noted above, this location of the Message-Authenticator ensures that the unknown suffix is the entire packet, and the attack is impossible.</t>
          <t>In contrast, when the Message-Authenticator is the last attribute in a packet (as was historically common in many implementations), the attacker can treat the Message-Authenticator itself as an unknown suffix, as it does with the shared secret.  The attacker can then proceed with the attack, with no additional effort.</t>
          <t>The analysis is similar if the Message-Authenticator is in the middle of the packet, with attributes existing both before an after the Message-Authenticator.  Attributes before the Message-Authenticator can be modified, discarded, or added, while attributes after the Message-Authenticator need to remain in the packet.  We direct the reader to <xref target="BLAST"/> Section 7.2 for a more complete description of these issues.</t>
          <t>In short, the only solution which mitigates the attack is that servers need to place Message-Authenticator as the first attribute in all responses to Access-Request packets.</t>
        </section>
        <section anchor="protecting-servers-and-proxies">
          <name>Protecting Servers and Proxies</name>
          <t>Ugrading all client equipment can be  difficult, if only because there are many more clients than servers.  Some client products may no longer be supported, or the relevant vendor may have gone out of business.  Even if upgraded software images are available, the upgrade process may impact production networks, which has a cost.  As a result, any mitigations must work even when clients have not been updated.</t>
          <t>A server is vulnerable to the attack when it proxies packets, even if it adds Message-Authenticator is added as the first attribute in responses to all Access-Request packets.  Due to the limitations of RADIUS, a proxy has no way of knowing whether or not a "next hop" RADIUS server has been upgraded.  It therefore has to protect itself from attacks when it is the only upgraded party in a RADIUS proxy chain.</t>
          <t>In this scenario, a legacy client sends Access-Request packets to an upgraded proxy, which in turn forwards the packets to a legacy next hhop server.  Responses from the next hop server are sent back to the proxy, and then to the client.</t>
          <t>Upgrading the proxy will protect only the responses from the proxy to the client.  The attacker can still modify packets from the client to the proxy, or it can modify all request and response packets that are sent between the proxy and next hop server.  The result is that the upgraded server is still vulnerable to the attack.</t>
          <t>The "limit Proxy-State" flag allows servers to detect and prevent attacks when Access-Request packets do not contain Message-Authenticator.  This configuration is only necessary when the server is a proxy.  When the server enables the "limit Proxy-State" flag, legacy clients to be used without substantially compromising security.</t>
          <t>The proxy is likely to still be vulnerable to attacks on the link between itself and the next hop server.  However, the proxy can use the client "require Message-Authenticator" flag defined above to protect itself.  Even when the proxy cannot set that flag, the link between the proxy and the next hop server is much more likely to be protected via TLS or IPSec than the link between the client and proxy.</t>
          <t>In addition, it is generally easier to upgrade servers than clients.  The focus of the mitigations, therefore, has been on securing the link between clients and servers, not between proxy servers.</t>
        </section>
        <section anchor="other-attributes">
          <name>Other Attributes</name>
          <t>While it is theoretically possible to perform the BlastRADIUS attack via attributes other than Proxy-State, no such exploits are known at this time.  Any such exploit would require that the server receive fields under the attackers control (e.g. User-Name), and echo those fields back in a response.  Such attacks are therefore only possible when the server is configured to echo back attacker-controlled data, which is not their default behavior.</t>
          <t>As a result, the configuration flags described above in <xref target="configuration-flags"/> allow the maximum amount of security while adding the minimum disruption to operational networks.  For the remaining attack vectors, is is RECOMMENDED that servers which echo back user-supplied data in responses do so only when their "require Message-Authenticator" flag is set to "true".  If such user-supplied data is echoed back in responses when the "require Message-Authenticator" flag is set "false", then the BlastRADIUS attack is theoretically still possible, even though no exploit is currently available.</t>
          <t>The server configuration flags will protect it even if clients have not been upgraded or been configured to be secure.  The server configuration flags will not protect clients (NASes or proxies) from servers which have not been upgraded or been configured to be secure.</t>
        </section>
        <section anchor="requirements-for-full-mitigation">
          <name>Requirements for Full Mitigation</name>
          <t>The attack will only be mitigated in either of the following two circumstances:</t>
          <ol spacing="normal" type="1"><li>
              <t>The client implements the "require Message-Authenticator" flag, and has set that flag to "true",</t>
            </li>
            <li>
              <t>The server places Message-Authenticator as the first attribute in all responses to Access-Request packets.</t>
            </li>
          </ol>
          <t>Since RADIUS has no feature negotiation, the server has no way of knowing whether or not the client has been configured securely.  The only remaining choice then for server behavior then, is the second item.  <xref target="I-D.ietf-radext-deprecating-radius"/> therefore mandates that all RADIUS servers send Message-Authenticator as the first attribute in all responses to Access-Request packets.  This change is the simplest possible fix to the RADIUS protocol which will protect systems from the attack.</t>
        </section>
        <section anchor="mitigation-design-and-rationale">
          <name>Mitigation Design and Rationale</name>
          <t>This section provides further explanation of the issues, and the rationale for the requirements made by this specification.</t>
          <t>The "require Message-Authenticator" flag is needed in order to secure the RADIUS protocol.  Once all Access-Request packets are required to contain a valid Message-Authenticator, the BlastRADIUS attack is impossible.</t>
          <t>However, it may not be possible to upgrade all RADIUS clients.  Some products may no longer be supported, or some vendors have gone out of business.  Even if upgrades are available, the upgrade process may impact production networks, which has a cost.  There is therefore a need for RADIUS servers to protect themselves from to the BlastRADIUS attack, while at the same time being compatible with legacy RADIUS client implementations.</t>
          <t>Enabling the "limit Proxy-State" flag allows legacy (i.e. non-upgraded) clients to be used without substantially compromising on security.  While it is theoretically possible to perform the BlastRADIUS attack via attributes other than Proxy-State, no such exploits are known at this time.  Any such exploit would require that the server receive fields under the attackers control (e.g. User-Name), and echo them back in a response.  Such attacks are only possible when the server is configured to echo back attacker-controlled data, which is not the default behavior for most servers.</t>
          <t>As a result, these two flags allow the maximum amount of security while having the minimum disruption to operational networks.  For the remaining attack vectors, is is RECOMMENDED that servers which echo back user-supplied data in responses do so only when the "require Message-Authenticator" flag is set to "true".  If such user-supplied data is echoed back in responses when the "require Message-Authenticator" flag is set "false", then the BlastRADIUS attack is theoretically still possible, even though no exploit is currently available.</t>
          <t>The two configuration flags on the server will protect the server even if clients have not been upgraded or been configured to be secure.  The server configuration flags will not protect clients (NASes or proxies) from servers which have not been upgraded or been configured to be secure.  More behavior changes to servers and clients are required.</t>
        </section>
      </section>
      <section anchor="limitations-of-the-mitigations">
        <name>Limitations of the Mitigations</name>
        <t>The above mitigations have some limitations.  The design of the mitigations had to allow for backwards compatibility with legacy RADIUS systems, while still allowing for (but not requiring) whole-sale network upgrades.  There is a trade-off to be made between perfectly secure networks which are unusable, and networks which are usable but somewhat insecure.  The mitigations defined in <xref target="I-D.ietf-radext-deprecating-radius"/> create as much security as possible, while still not breaking existing networks.</t>
        <t>The result is that there are situations where a network is functional, but insecure.  In addition, there are situations where existing client implementations are not compatible with the mitigations.  This section outlines those limitations.</t>
        <section anchor="vulnerable-systems">
          <name>Vulnerable Systems</name>
          <t>A RADIUS server is vulnerable to the attack if it does not require that all received Access-Request packets contain a Message-Authenticator attribute.  This vulnerability exists for many common uses of Access-Request, including packets containing PAP, CHAP, MS-CHAP, or packets containing “Service-Type = Authorize-Only”.   The vulnerability is also transitive.  If any one RADIUS server in a proxy chain is vulnerable, then the entire chain is vulnerable.  The attack can proceed on the vulnerable systems, and the attacker can gain unauthenticated and/or unauthorized access to any systems which depend on that proxy chain.</t>
          <t>Similarly, simply having the Message-Authenticator attribute present in Access-Request packets is not sufficient.  In order to be protected, a server must require that the attribute is present, and must also discard packets which are missing it.  Similarly, the client must also require that the attribute is present, and discard packets which are missing oit.</t>
          <t>Similarly, clients are vulnerable when they do not require that all responses to Access-Request packets contain Message-Authenticator.  Note that clients which validate Message-Authenticator are not vulnerable even if Message-Authenticator is the last attribute in a response.  The HMAC construct of Message-Authenticator makes the attack impossible in that situation.</t>
          <t>The requirement on servers to place Message-Authenticator as the first attribute in all responses to Access-Request is there only to protect legacy clients which do not validate Message-Authenticator.  There is no need for a client to discard responses where the Message-Authenticator is valid, but is also not the first attribute.  Such behavior is incorrect, and will cause interoperability problems.</t>
        </section>
        <section anchor="unaffected-systems">
          <name>Unaffected Systems</name>
          <t>There are a number of systems which are not vulnerable to this attack.  The most important ones are systems which only perform EAP authentication, such as with 802.1X / WPA Enterprise.  The EAP over RADIUS protocol is defined in <xref section="3.3" sectionFormat="comma" target="RFC3579"/> which states explicitly:</t>
          <ul empty="true">
            <li>
              <t>If any packet type contains an EAP-Message attribute it MUST also contain a Message-Authenticator.</t>
            </li>
          </ul>
          <t>This requirement reiterates that of <xref section="5.13" sectionFormat="comma" target="RFC2869"/>, which defines EAP-Message and Message-Authenticator, but which does not get into details about EAP.</t>
          <t>This requirement is enforced by all known RADIUS servers.  As a result, when roaming federations such as eduroam <xref target="EDUROAM"/> use RADIUS/UDP to transport EAP, the attack is not possible.</t>
          <t>Other roaming groups such as OpenRoaming <xref target="OPENROAMING"/> require the use of TLS, and are not vulnerable.  Other roaming providers generally use VPNs to connect disparate systems, and are also not vulnerable.</t>
          <t>802.1X / WPA enterprise systems have an additional layer of protection, due to the use of the master session keys (MSK) which are derived from the EAP authentication method.  These keys are normally carried in an Access-Accept, in the MS-MPPE-Recv-Key and MS-MPPE-Send-Key attributes, and are used to secure the link between the NAS and the supplicant.  The contents of the attributes are obfuscated via the same method used for Tunnel-Password, and are not visible to an "on-path" attacker.</t>
          <t>While an attacker could perhaps force an Access-Accept in some situations where EAP is used, or strip the Message-Authenticator from packets, it is not currently possible for an attacker to see, modify, or create the correct MSK for the EAP session.  As a result, when 802.1X / WPA enterprise is used, even a successful attack on the Access-Accept packet would likely not result in the attacker obtaining network access.</t>
        </section>
      </section>
      <section anchor="implementations-with-incorrect-mitigations">
        <name>Implementations with Incorrect Mitigations</name>
        <t>This section summarizes the various implementation issues, and the recommended fixes to them.  While this section does not contain normative text, it refers to normative requirements in <xref target="I-D.ietf-radext-deprecating-radius"/>.  This summary is necessary because multiple implementations failed to follow the normative requirements of that document. Instead, those systems either implemented behavior which was forbidden by the normative text, or else failed to implement behavior which was mandated by the normative text.</t>
        <t>It is therefore necessary to reiterate to the reader that the normative text in <xref target="I-D.ietf-radext-deprecating-radius"/> is, in fact, normative, and that the mandates of the normative text need to be respected.  The reader should understand that any non-normative text in this specification does not over-ride the clear mandates of the normative text in <xref target="I-D.ietf-radext-deprecating-radius"/>.</t>
        <t>The following list outlines the problems seen, in no particular order.</t>
        <ul spacing="normal">
          <li>
            <t>Some implementations discard packets which contain
Message-Authenticator.</t>
          </li>
          <li>
            <t>Some implementations discard responses where the
Message-Authenticator is not first, in violation of <xref section="5" sectionFormat="comma" target="RFC2865"/>.  It should be reiterated that the requirement in
<xref target="I-D.ietf-radext-deprecating-radius"/> "Server Responses" to place
Message-Authenticator first is a requirement on the server, and is
not a requirement on the client.</t>
          </li>
        </ul>
        <section anchor="discarding-packets-with-message-authenticator-is-wrong">
          <name>Discarding Packets with Message-Authenticator is Wrong</name>
          <t>Nearly all clients which do not validate Message-Authenticator are known to accept responses which contain it, due to the provisions of <xref section="5" sectionFormat="comma" target="RFC2866"/>:</t>
          <ul empty="true">
            <li>
              <t>A RADIUS client MAY ignore Attributes with an unknown Type.</t>
            </li>
          </ul>
          <t>These RADIUS clients are compatible with the protocol change outlined in this document.   We note also that Message-Authenticator has been defined for almost twenty-five (25) years, since <xref target="RFC2869"/>, so there are few reasons for equipment to not support it.</t>
          <t>Since the publication of the original BlastRADIUS notification, it has become known that some implementations do not behave as expected.  That is, instead of ignoring an unexpected Message-Authenticator attribute, they discard all responses with contain Message-Authenticator.  That behavior is entirely unreasonable, and is not required by any standard.</t>
          <t>The unfortunate reality is that the only way that RADIUS servers could be compatible with such systems is for them to never send Message-Authenticator in responses.  However, doing so would open up significantly more systems to the BlastRADIUS attack.  As such, there is no attempt made to be compatible with implementations that fail to implement RADIUS correctly.</t>
          <t>The only way to secure those systems is to upgrade them.  Failing that, the administrators of those systems will need to accept the fact that their systems are vulnerable.</t>
          <t>The solution adopted by <xref target="I-D.ietf-radext-deprecating-radius"/> is to declare that clients or servers which discard packets containing Message-Authenticator are not compliant with the RADIUS specifications.  It is not acceptable to decrease the security of the RADIUS protocol in order to be compatible with insecure and non-compliant implementations.  That specification attempts to prevent such issues from happening in the future, by mandating behavior for unknown attributes in <xref target="I-D.ietf-radext-deprecating-radius"/> "Unknown Attributes".  There is no reason for an implementation to discard response a packet simply because it does not recognize an attribute in the packet.</t>
        </section>
        <section anchor="checking-the-location-of-message-authenticator-is-wrong">
          <name>Checking the location of Message-Authenticator is Wrong</name>
          <t>Nothing in any previous RADIUS specification requires attributes to be placed in any particular location in a packet.  Nothing in any previous RADIUS specification requires implementations to discard packets which contain unrecognized attributes.</t>
          <t>Further, the construction of Message-Authenticator allows for a RADIUS implementation to authenticate packets (other than Access-Request), even if the Message-Authenticator is not validated.</t>
          <t>This issue is addressed in <xref section="TBD" sectionFormat="comma" target="I-D.ietf-radext-deprecating-radius"/>, which clarifies and extends the requirements on attribute ordering and location.  <xref section="TBD" sectionFormat="comma" target="I-D.ietf-radext-deprecating-radius"/> also clarifies and extends the requirements on receiving unknown attributes.</t>
        </section>
      </section>
      <section anchor="less-effective-mitigations">
        <name>Less Effective Mitigations</name>
        <t>There was substantial discussion around the design and effectiveness of the mitigations defined in <xref target="I-D.ietf-radext-deprecating-radius"/>.  This section outlines some obvious mitigations which were considered and rejected.  As protocol design is subject to a complex series of trade-offs, it is useful to explain what those alternative mitigations are, and why they were rejected.</t>
        <t>An alternative configuration flag with a similar effect to the “limit Proxy-State” flag could be one called “this client is a NAS, and will never send Proxy-State”.  The intention for such a flag would be to clearly separate RADIUS proxies (which always send Proxy-State), from NASes (which will never send Proxy-State).  When the flag is set for a client, the server could then discard Access-Request packets which contain Proxy-State.  Alternatively, the server could also discard Proxy-State from all responses sent to that client.</t>
        <t>Such a flag, however, depends on network topology, and fails to correct the underlying lack of packet authenticity and integrity.  The flag may also work for one NAS, but it is likely to be incorrect if the NAS is replaced by a proxy.  Where there are multiple different pieces of NAS equipment behind a NAT gateway, the flag is also likely to be correct for some packets, and incorrect for others.</t>
        <t>Using configuration flags which control the desired outcome is preferable to using flags which depend on network topology that is outside of the control of clients and servers.</t>
      </section>
      <section anchor="non-mitigations">
        <name>Non-Mitigations</name>
        <t>It may be tempting to come up with other "ad hoc" solutions to this vulnerability which are simpler than the ones outlined in <xref target="I-D.ietf-radext-deprecating-radius"/>.  Such solutions are likely to either break existing RADIUS deployments, or else they will not protect systems from the attack.  The mitigations described in <xref target="I-D.ietf-radext-deprecating-radius"/> not only prevent the attack, they do so without negatively affecting normal RADIUS operation.  There is therefore no reason to use any other methods.</t>
        <t>Other attempted mitigation factors are discussed in the BlastRADIUS document (<xref target="BLAST"/>).  For example, <xref target="BLAST"/> Section 7.4 explains why decreasing timeouts simply increases the cost of the attack without preventing it.  Decreasing timeouts also can negatively affect normal RADIUS traffic.</t>
        <t><xref target="BLAST"/> Section 7.7 explains why clients validating Proxy-State, or looking for unexpected Proxy-State does not protect them from the attack.  The attacker can just change the form of the attack, and bypass those checks.</t>
        <t>There is therefore no reason to implement “ad hoc” solutions when a solution exists which has passed reviews by both the BlastRADIUS cryptographers, and by the relevant RADIUS experts.  There is every reason to believe that cryptographic operations designed by experts and subject to rigorous peer review are better than random guesses made by programmers who lack the relevant cryptographic and RADIUS experience.</t>
        <section anchor="switch-to-other-protocols-is-not-appropriate">
          <name>Switch to Other Protocols is Not Appropriate</name>
          <t>Switching away from RADIUS to another protocol will not protect from the attack, as there is no other protocol which can replace RADIUS.  No other protocol is supported by medium to low-end networking devices for end-user authentication, authorization, and accounting.  Outside of situations where Diameter is used, the choice for nearly every use-case which controls network access is limited to one protocol: RADIUS.</t>
          <t>Despite this reality, some "security" sites have recommended "securing" the network by switching to "alternative" protocols.  Such recommendations are incorrect and inappropriate.</t>
          <t>Diameter <xref target="RFC6733"/> is the closest protocol in functionality to RADIUS, but the Diameter use-case is applicable to large-scale telecommunications and internet service providers (ISPs).  Support for Diameter is rarely present in equipment which is available to consumers or enterprises.  As such, replacing RADIUS with Diameter is not an option.</t>
          <t>Other proposals for protocols to replace RADIUS are even less effective.  TACACS+ <xref target="RFC8907"/> has some overlap with RADIUS for administrator login to network devices, but it cannot be used outside of that limited scope.  TACACS+ does not support 802.1X, end-user authentication, or end-user accounting.  It is therefore impossible for an ISP or enterprise to replace RADIUS with TACACS+.</t>
          <t>Kerberos <xref target="RFC4120"/> is also not a option.  It is most generally used to authenticate applications, when the underlying system already has network access.  Kerberos also does not support 802.1X, and does not support accounting.</t>
          <t>The situation is much the same with any proposal to replace RADIUS with IPsec.  While IPsec does authenticates devices prior to bringing up the VPN, those devices must already have network access.  IPsec also requires that the end-user traffic be transported over the IPsec connection, where RADIUS does not transport any end-user traffic.</t>
          <t>In conclusion, recommendations to use alternate protocols are, at best, misguided.  We do not recommend following any "security" advice which is based on a fundamental misunderstanding of networking protocols.</t>
        </section>
        <section anchor="intrusion-detection-rules">
          <name>Intrusion Detection Rules</name>
          <t>Intrusion detection systems can be updated to detect and/or warn about the BlastRADIUS attack with the following rules.  In the interests of brevity and generality, the rules are written as plain text.</t>
          <ol spacing="normal" type="1"><li>
              <t>Access-Request does not contain a Message-Authenticator attribute.  </t>
              <t>
Action: Warn the administrator that the system is vulnerable, and should be upgraded.</t>
            </li>
            <li>
              <t>Access-Accept, Access-Reject, or Access-Challenge does not contain a Message-Authenticator attribute.  </t>
              <t>
Action: Warn the administrator that the system is vulnerable, and should be upgraded.</t>
            </li>
            <li>
              <t>Access-Accept, Access-Reject, or Access-Challenge contains a Message-Authenticator attribute, but it is not the first attribute in the packet.  </t>
              <t>
Action: Warn the administrator that the system may be vulnerable, and should be upgraded.</t>
            </li>
            <li>
              <t>Access-Request packet received by a RADIUS server contains Proxy-State, when the RADIUS client is a NAS.  </t>
              <t>
Action: Alert that an attack is likely taking place.  </t>
              <t>
Note that the check should be for packets received by the RADIUS server, and not for packets sent by the NAS.  The attack involves packets being modified after they are sent by the NAS, and before they are received by the RADIUS server.</t>
            </li>
            <li>
              <t>Access-Accept, Access-Reject, or Access-Challenge sent by a RADIUS server contain Proxy-State, when the RADIUS client is a NAS.  </t>
              <t>
Action: Alert that an attack is likely taking place.  </t>
              <t>
Note that the check should be for packets sent by the RADIUS server, and not for packets received by the NAS.  The attacker can modify packets to "hide" Proxy-State in another attribute, such as Vendor-Specific.</t>
            </li>
            <li>
              <t>Any RADIUS traffic is sent over UDP or TCP transport, without IPsec or TLS.  </t>
              <t>
Action: Warn that the system uses deprecated transport protocols, and should be upgraded.</t>
            </li>
            <li>
              <t>Any RADIUS traffic is sent external to the organization over UDP or TCP transport, without IPsec or TLS.  </t>
              <t>
Action: Warn that this is an insecure configuration, and can expose users private data, identities, passwords, locations, etc. to unknown attackers.</t>
            </li>
          </ol>
          <t>These rules should assist administrators with ongoing security and monitoring.</t>
        </section>
      </section>
      <section anchor="summary">
        <name>Summary</name>
        <t>The RADIUS protocol as defined in <xref target="RFC2865"/> is vulnerable to an attack due to Access-Request packets being entirely unauthenticated.  This issue has been known and ignored for decades.  It was first raised as a vulnerability in 1998 <xref target="DATTACK"/>, and a fix was rejected in <xref target="RFC2869"/>.  A practical fix was suggested in 2007 in <xref section="2.2.2" sectionFormat="comma" target="RFC5080"/>, but it took until <xref target="I-D.ietf-radext-deprecating-radius"/> before a fix was mandated,  That mandate only occurred because an exploit was demonstrated in 2024, in <xref target="BLAST"/>.</t>
      </section>
    </section>
    <section anchor="general-protocol-issues">
      <name>General Protocol Issues</name>
      <t>This section describes protocol issues which apply to all aspects of the RADIUS protocol.  Later sections describes issues specific to authentication and accounting.</t>
      <section anchor="nas-upgrades-are-rare">
        <name>NAS upgrades are rare</name>
        <t>The ability to upgrade or change the RADIUS protocol is limited by the number of RADIUS clients.  As seen in the previous section, many changes to the protocol have to be made so that they are compatible with existing implementations.  Or, at least, not incompatible with existing implementations.</t>
        <t>The difficulty in making incompatible changes or new features, is that there are many more RADIUS clients than servers, and client upgrades are rare.  In many large enterprise and government settings, even firmware upgrades can take 6-18 months.  Operators and administrators SHOULD therefore plan for upgrade processes where legacy systems co-exist with updated ones for years at a time.   Operators and administrators SHOULD also take steps to monitor the networks via Intrusion Detection Systems (IDS) for known attacks.</t>
      </section>
      <section anchor="there-is-no-protocol-layer-signaling">
        <name>There is no protocol-layer signaling</name>
        <t>The RADIUS protocol defines essentially no ability to perform protocol-layer signaling.  That is, the information that is exchanged between client and server is limited to information about user sessions, and not about client to server connections.</t>
        <section anchor="there-is-no-link-status-signaling">
          <name>There is no link status signaling</name>
          <t>There is some support for an application-layer "ping" message in Status-Server <xref target="RFC5997"/>, but not all systems support that packet code.  It is therefore impossible, in general, for a client to know if a server is up, down, or just slow.</t>
          <t>Similarly, there is no way for a server to know if a client is down, or is just not sending packets.</t>
          <t>TCP and TLS transport help somewhat with the above situations.  If a client and server share a TCP connection and that connection goes away, the disappearance is a positive signal that the other end is either down, or unreachable.</t>
          <t>However, it a TCP connection is up, that offers clients and servers little information about the status of the application at the other end of the connection.  The connection could be artificially kept up by the local OS, or by an intermediate network device.</t>
          <t>The lack of packets from a client could signal that the client application is blocked, or simply has no traffic to send.  The lack of response from a server could indicate that the server application is blocked, busy, or else perhaps it has proxied the packet and has not yet seen a response.</t>
        </section>
        <section anchor="valid-requests-are-silently-ignored">
          <name>Valid requests are silently ignored</name>
          <t>The RADIUS specifications contain repeated recommendations that implementations "silently discard" well-formed and authentic requests (<xref section="4.1" sectionFormat="comma" target="RFC2866"/>, <xref section="2.2.2" sectionFormat="comma" target="RFC5080"/>, <xref section="6.3" sectionFormat="comma" target="RFC5176"/>, <xref section="4.2" sectionFormat="comma" target="RFC5997"/>, <xref section="8.1" sectionFormat="comma" target="RFC7499"/>, <xref section="2" sectionFormat="comma" target="RFC7930"/>).  This discard process contributes to network instability and overload.</t>
          <t>When a server does not respond to a request, the client is left with few options.  According to <xref section="2.1.1" sectionFormat="comma" target="RFC5080"/>, the client should implement timers to determine when to either retransmit a packet, or time it out.  Unfortunately, few clients other than RADIUS proxies implement those recommendations, though many do implement "ad hoc" timers which have worse behavior.</t>
          <t>Whatever the timer impelemntation, the client is forced to wait for a relatively long period of time, in the (perhaps naive) expectation that the server will respond.  These delays cause issues for users trying to log in, and increase the load on the client.</t>
          <t>When a client retransmits a packet, it can sometimes retransmit the exact same packet to the same server, but this is not always possible.  In some cases (a.g. Acct-Delay-Time FIXREF), the client will send a new packet to the same server on the same connection, to the same server on a different connection, or to a different server entirely.  These extra packets also increase the load on the network.</t>
          <t>It would be preferable to have a canonical application-layer "NAK" response, which would indicate that the server has recieved a request, but is unable to respond to it appropriately.</t>
        </section>
        <section anchor="protocol-error-nak-packet">
          <name>Protocol-Error NAK packet</name>
          <t>There is some provision for a protocol layer NAK packet via Protocol-Error (<xref section="4" sectionFormat="comma" target="RFC7930"/>, and <xref target="I-D.dekok-protocol-error"/>), but there are few implementations of that specification.  Experiments are currently ongoing.</t>
        </section>
        <section anchor="there-is-no-congestion-control">
          <name>There is no congestion control</name>
          <t>Where Diameter has overload indication in <xref target="RFC7683"/>, RADIUS is entirely lacking in congestion control.  The result is that a client simply sends what packets it has, and discovers (or guesses) that the server is busy when the server stops responding.</t>
          <t>The situation is made worse by the fact that even some high-end NAS equipment does not implement the retransmission timers of <xref section="2.1.1" sectionFormat="comma" target="RFC5080"/>.  Some NAS equipment also does not implement reasonable timers for sending period accounting packets with Acct-Status-Type = Interim-Update.</t>
          <t>Instead, problematic implementations simply set fixed timers, and send packets at those fixed times. This behavior appears to work in a lab with only a small number of packets / accounting sessions.  This behavior is catastrophic in the real world, when a NAS has a 100,000 users online, and fixed 10-minute timer for sending accounting packets.</t>
          <t>Few systems deal well with long periods of no traffic, followed by short periods of high-volumes of traffic.  Such behavior from NAS equipment is inappropriate, and contributes to network overload and instability.</t>
        </section>
      </section>
      <section anchor="other-protocol-failures">
        <name>Other Protocol Failures</name>
        <t>This sections describes issues with the RADIUS protocol that are not based on the lack of signaling.</t>
        <section anchor="there-is-no-reject-delay">
          <name>There is no reject delay</name>
          <t>It has been well known for decades that brute-force dictionary attacks can be either prevented or slowed down by delaying rejects.  RADIUS has no provision to implement this behavior, though there is a proposal in <xref target="I-D.janfred-radext-radius-congestion-control"/>.</t>
        </section>
        <section anchor="there-is-no-rate-limiting">
          <name>There is no rate limiting</name>
          <t>RADIUS clients are not required to perform rate limiting on any kind of requests that they send.  Where congestion control could signal to a client that a server is busy, there are no requirements on a client to have self control over packets that it sends.</t>
          <t>For example, in the accounting example above, congestion control could signal to the client that the server was overloaded.  But the client could still attempt to send 100,000 packets in one second.</t>
          <t>Similarly, if an end user tries to authenticate many times in a second, existing client implementations simply send one Access-Request for every authentication.  There is no attempt by the client to implement any kind of Denial of Service (DoS) prevention.</t>
          <t>This limitation means that roaming consortia such as eduroam <xref target="EDUROAM"/> and OpenRoaming <xref target="OPENROAMING"/> are vulnerable to DoS attacks.  Any unauthenticated user could connect to an Access Point, and send 1000's of connection attempts a second.  Each connection attempt could then result in packets being sent across multiple proxies, possibly from one end of the world to another.</t>
          <t>If the server implements dynamic DNS lookups (<xref target="RFC7585"/>), such an attack could cause the server to perform 1000's of DNS lookups a second, or event to cause it to connect to random, attacker-controlled, servers.</t>
          <t>With minimal coordination, attackers could perform such DoS attacks at many locations, multiplying the traffic accordingly.  The result could be a catastrophic meltdown of the global RADIUS proxying fabric.</t>
        </section>
        <section anchor="there-is-no-end-to-end-identifier">
          <name>There is no end to end identifier</name>
          <t>Where Diameter defines an End-To-End Identifier (<xref section="3" sectionFormat="comma" target="RFC6733"/>), RADIUS Identifiers are strictly hop by hop.  This limitation means that there is no way for proxies to determine if a retransmitted packet is the same as a one which was previously sent.</t>
          <t>Since the RADIUS specifications suggest that packets are retransmitted (<xref section="2.2.1" sectionFormat="comma" target="RFC5080"/>, among others), these retransmissions multiply the total load on a RADIUS server or proxy fabric.  Each retransmitted packet is sent as if it a new and unique request.  RADIUS servers and proxies are unable to associate these retransmissions with the original request, and must therefore manage multiple copies of the same data.</t>
          <t>In the extreme case of poorly implemented proxies, each proxy could perform its own retransmission, in violation of <xref section="2.8" sectionFormat="comma" target="RFC3539"/>.  The result would be an exponential explosion in the number of retransmitted packets.</t>
        </section>
        <section anchor="there-are-no-end-to-end-timers">
          <name>There are no end to end timers</name>
          <t>While proxies are forbidden from retransmitting packets, they still need to be able to implement packet timers in order to reclaim resources.  For example, if a proxy sends a request and receives a response, it will maintain a duplicate detection cache (<xref section="2.2.2" sectionFormat="comma" target="RFC5080"/>) for a period of time.  On the other hand, if a proxy sends a request and never receives a response, it still needs to clean up the request and associated resources.</t>
          <t>Those timers are not discussed in previous RADIUS specifications.  Some proxy implementations follow the recommendations of <xref section="2.2.1" sectionFormat="comma" target="RFC5080"/>, with the caveat that no packets are sent when a timer expires.  Instead, the timers are used to drive internal implementation-specific logic which manages the state of home servers.</t>
          <t>This behavior largely works in practice, but it highlights an additional issue.  The problem is that each individual node in a proxy chain (client or proxy) implements its own timers, independently of any other node.  Further, there is no defined way for nodes to signal each other as to what timers they implement.</t>
          <t>The outcome of these limitations is that a client may have shorter timeouts for a request than a later proxy.  If the client does not re-use the RADIUS Identifier field for a new packet, the proxy is left managing resources for no purpose.  Even if a late response makes it back to the client, the client has given up, and will ignore the response.</t>
          <t>The problem is made worse with multi-hop proxy chains.  In extreme cases, many proxies could each maintain state for many thousands or tens of thousands of "dead" requests.  i.e. requests where the client has timed out, and cleaned up associated resources.</t>
          <t>The only solution currently available is for administrators to manually fine-tune timers, based on experimentation with values that appear to work in practice.  This process can often result in stable networks, but it does not create stable networks by design.</t>
        </section>
      </section>
      <section anchor="tls-termination-and-inner-tunnel-data">
        <name>TLS Termination and inner-tunnel data</name>
        <t>As noted above in <xref target="secure-transports"/>, using secure transports such as RadSec or IPSec is not enough to provide for full end to end RADIUS security.  The only solution to that problem is therefore to minimize the number of proxies used.</t>
        <t>As RADIUS servers are often also EAP servers, there are similar issues with TLS-based EAP methods.</t>
        <t>When TLS-based EAP methods such as TTLS or PEAP are used, they generally still transport passwords inside of the TLS tunnel.  It is possible for an authentication server to terminate the TLS tunnel, and then proxy the inner data over RADIUS/UDP.  The design of both TTLS and PEAP make this process fairly trivial.  The inner data for TTLS is in Diameter AVP format, which can be trivially transformed to RADIUS attributes.  The inner data for PEAP is commonly EAP-MSCHAPv2, which can also be trivially transformed to bare EAP, or to MS-CHAPv2.</t>
        <t>This forwarding of the inner tunnel data to another system removes all of the privacy and security benefits of the TLS tunnel.  The inner identity will leak, negating all privacy.  If attributes such as NAS-Identifier or Calling-Station-Id are copied from the incoming packet to the proxied packet, it allows observers to correlate user identity with location and devices.</t>
        <t>Where the inner authentications credentials are PAP, the User-Password attribute is secure, as discussed in <xref target="pap-security"/>.  CHAP is insecure (<xref target="chap-password"/>), as is MS-CHAP (<xref target="ms-chap"/>), so forwarding of inner-tunnel CHAP or MS-CHAP data usually results in the exposure of the users clear-text password.</t>
      </section>
      <section anchor="mac-randomization">
        <name>MAC Randomization</name>
        <t>Many end-user devices implement MAC randomization, where the MAC address is then typically sent in the Calling-Station-Id attribute.  Even with <xref target="RFC9724"/> MAC randomization at the L2 layer, the  Calling-Station-Id attribute can be sent in the clear, in RADIUS/UDP.  A motivated observer can correlate data across different sessions and/or locatios to likely identify both the device, and the end user.</t>
        <t>RadSec helps increase this privacy, but as noted in the previous section, only if there all hops use RadSec.</t>
      </section>
      <section anchor="proxies-have-no-limitations">
        <name>Proxies have no limitations</name>
        <t>As all security in RADIUS is hop by hop, proxies in RADIUS have absolute control over all aspects of the protocol.  Rejects can be turned into accepts, and vice versa.  Authorization information can be changed.  Any passwords in packets are exposed to all intermediate proxies.</t>
        <t>The solution to this problem and the above TLS termination problems is a careful design of the overall system:</t>
        <ul spacing="normal">
          <li>
            <t>minimize the number of proxies involved.  This step limits the possibility of information leaked to the proxies, and any content meddling the by proxies.</t>
          </li>
          <li>
            <t>use RadSec for all client to server connections.  This step limits the ability of an attacker to view any PII in the RADIUS traffic</t>
          </li>
          <li>
            <t>use TLS-based EAP methods for user authentication.  This step further limits the PII which is seen by proxies.</t>
          </li>
        </ul>
      </section>
      <section anchor="proxy-state">
        <name>Why Proxy-State is the way it is</name>
        <t>As the BlastRADIUS paper points out in Appendix A:</t>
        <ul empty="true">
          <li>
            <t>The presence of this attribute makes the protocol vulnerability much simpler to exploit than it would have been otherwise.</t>
          </li>
        </ul>
        <t>To see why Proxy-State has this particular design, we go back to the original discussion in May 1995 <xref target="MAY-1995"/></t>
        <ul empty="true">
          <li>
            <t>The RADIUS proxy may place any state information (subject to the length
limitations of a RADIUS attribute) that it will need to transform a
reply from its server into a reply to its client.  This is typically
the original authenticator, identifier, IP address and UDP port number
of the proxy's RADIUS client.</t>
          </li>
        </ul>
        <t>There appear to be few, if any, RADIUS servers which implemented this suggestion.  In part because later discussions note:</t>
        <ul empty="true">
          <li>
            <t>This works only if the NAS is
prepared to accept replies from a proxy server for a request issued to
a different server.</t>
          </li>
        </ul>
        <t>This stateless proxy design has a number of additional issues, most notably violating the <xref target="RFC3539"/> "end-to-end" principle.  It therefore negatively impacts the stability of a RADIUS proxy system.</t>
        <t>This definition for Proxy-State later changed in <xref section="5.33" sectionFormat="comma" target="RFC2865"/> to</t>
        <ul empty="true">
          <li>
            <t>Usage of the Proxy-State Attribute is implementation dependent.  A
description of its function is outside the scope of this
specification.</t>
          </li>
        </ul>
        <t>In practice, the utility of Proxy-State is limited to detecting proxy loops.  Proxies can count the number of Proxy-State attributes in received packets, and if the total is more than some number, then a proxy loop is likely.  We offer no advice on what to do if a proxy loop is detected, as RADIUS has no ability to signal protocol-layer errors.</t>
        <t>It is likely that a "hop count" attribute would likely have been simpler to implement.  But even in 1996, it was likely difficult to change the behavior of proxies due to multiple implementations.</t>
      </section>
    </section>
    <section anchor="authentication-review">
      <name>Authentication Review</name>
      <t>Independent of the above security and privacy issues, there are a large number of other problems with the RADIUS authentication, and with the historic practices around the handling of authentication credentials.  This section discusses those problems.</t>
      <section anchor="authentication-methods">
        <name>Authentication Methods</name>
        <t>There are a number of problems with authentication methods that are transported in RADIUS attributes.  Even independent of security issues with a particular authentication method, the choice of authentication method can in fact decrease security, as noted below in <xref target="password-security"/>.</t>
        <section anchor="user-password">
          <name>User-Password is still secure</name>
          <t>While the obfuscation method used for the User-Password attribute has not been shown to be insecure, it has not been proven to be secure.  The obfuscation method depends on calculating MD5(secret + Request Authenticator), which has a few helpful properties for an attacker.  The cost of brute-forcing short secrets is not large, <xref target="cracking"/> discusses that cost in detail.  Even for longer secrets which are humanly generated, the MD5 state for hashing the secret can be pre-calculated and stored on disk.  This process is relatively inexpensive, even for billions of possible shared secrets.  The Request Authenticator can then be added to each pre-calculated state via brute-force, and compared to the obfuscated User-Password data.</t>
          <t>The MD5 digest is 16 octets long, and many passwords are shorter than that.  This difference means that the final octets of the digest are placed into the User-Password attribute without modification.  The result is that a brute-force attack does not need to decode the User-Password and see if the decoded password "looks reasonable".  Instead, the attacker simply needs to compare the final octets of the calculated digest with the final octets of the User-Password attribute.  The result is a signal which indicates with high probability that the guessed secret is correct.</t>
          <t>The only protection from this particular attack is to ensure that the secret is long, and is derived from a cryptographically strong pseudo-random number generator.  To put it more clearly, if the RADIUS packet is secure due to the use of a strong shared secret, then the User-Password attribute is also secure.</t>
        </section>
        <section anchor="chap-password">
          <name>CHAP-Password is not secure</name>
          <t>This section describes a viable attack on CHAP, which does not appear to have been published before.</t>
          <t>The contents of CHAP-Password are calculated using MD5 to hash an identifier, a password, and a challenge.  From <xref target="RFC1994"/>:</t>
          <ul empty="true">
            <li>
              <t>The Response Value is the one-way hash calculated over a stream of
octets consisting of the Identifier, followed by (concatenated
with) the "secret", followed by (concatenated with) the Challenge
Value.</t>
            </li>
          </ul>
          <t>That is, the CHAP-Password contents are MD5(ID + password + challenge).  While this construction is different from the one used to sign the Authenticator fields, attacks on CHAP-Password have substantially the same cost as for cracking the RADIUS shared secret (<xref target="cracking"/>).</t>
          <t>That is, checking all 8 character passwords from a 93 character set is possible for a hobbyist in about day.</t>
          <t>The attack is made easier by the human practice of creating insecure passwords.  An attacker can create dictionaries of hashes of potential passwords.  For CHAP-Password, this also means a 256 times increase in dictionary size, due to the need to calculate the prefix of MD5(ID + password).  However, that calculation can be done once, and the results then stored on disk.  The only ongoing cost is the need for more disk space.</t>
          <t>Once the attacker sees a CHAP-Password, the ID field is used to select one of 256 dictionaries, and then every password hash in that dictionary extended with the challenge, and checked against the contents of CHAP-Password.  As these pre-calculated dictionaries generally contain hundreds of millions or low billions of passwords, that number bounds the total number of hashes which need to be checked.</t>
          <t>As noted above in <xref target="cracking"/>, a high-end retail GPU is capable of performing more than 64 billion hashes per second.  Which means that most CHAP-Password attributes can be turned into the equivalent clear-text passwords in sub-second time.  The main gating factor in this attack is the time taken to stream billions of candidate hashes from disk to the GPU.</t>
          <t>This attack means that from a cryptographic perspective, using CHAP-Password is essentially the same as sending passwords in clear-text.</t>
        </section>
        <section anchor="ms-chap">
          <name>Attacks on MS-CHAP are decades old</name>
          <t>MS-CHAP (v1 in <xref target="RFC2433"/> and v2 in <xref target="RFC2759"/>) have major design flaws, and are not suitable for use outside of a secure tunnel such as PEAP, TEAP, or TTLS.  As MS-CHAPv1 is less commonly used, the discussion in this section will focus on MS-CHAPv2, but the same analysis applies to MS-CHAPv1.</t>
          <t>MS-CHAP has been broken since 2004, as seen in <xref target="ASLEAP"/>.  While the attack there mentions LEAP, the same attack applies to MS-CHAP.  This information was apparently insufficiently clear in the <xref target="ASLEAP"/> attack, as and no previous sp=ecification has deprecated MS-CHAP.  As a result, most implementations still support it.</t>
          <t>The attack relies on a vulnerability in the protocol design in <xref section="8.4" sectionFormat="comma" target="RFC2759"/>.  In that section, the response to the MS-CHAP challenge is calculated via three DES operations, which are based on the 16-octet NT-Hash form of the password.  However, the DES operation requires 7 octet keys, so the 16-octet NT-Hash cannot be divided evenly into the 21 octets of keys required for the DES operation.</t>
          <t>The solution in <xref target="RFC2759"/> Section 8.4 was to use the first 7 octets of the NT-Hash for the first DES key, the next 7 octets for the second DES key, leaving only 2 octets for the final DES key.  The final DES key is padded with zeros.  This construction means that an attacker who can observe the MS-CHAP2 exchange only needs to perform 2^16 DES operations in order to determine the final 2 octets of the original NT-Hash.</t>
          <t>If the attacker has a database which correlates known passwords to NT-Hashes, then those two octets can be used to returns a small subset (1/65536) of candidate hashes.  Those hashes are then checked via brute-force operations to see if they match the original MS-CHAPv2 data.  Limiting the number of candidate hashes allows the attacker to use greatly increase the size of precalculated hashes, with minimal additional cost.</t>
          <t>This process lowers the complexity of cracking MS-CHAP by nearly five orders of magnitude as compared to a brute-force attack.  The attack has been demonstrated using databases which contain hundreds of millions of passwords.  On a consumer-grade machine, the time required for such an attack to succeed is on the order of tens of milliseconds.</t>
          <t>While this attack requires a database of known passwords, such databases are easy to find online, or to create locally from generator functions.  Passwords created manually by people are notoriously predictable, and are highly likely to be found in a database of known passwords.  In the extreme case of strong passwords, they will not be found in the database, and the attacker is still required to perform a brute-force dictionary search.</t>
          <t>The result is that MS-CHAP has significantly lower security than PAP.  When the MS-CHAP data is not protected by TLS, it is visible to everyone who can observe the RADIUS traffic.  Attackers who can see the MS-CHAP data can therefore obtain the underlying NT-Hash with essentially zero effort as compared to cracking the RADIUS shared secret.  This attack means that from a cryptographic perspective, using MS-CHAP is essentially the same as sending passwords in clear-text.</t>
        </section>
        <section anchor="eap-methods-vary-in-security">
          <name>EAP methods vary in security</name>
          <t>There are too many EAP methods for them to be discussed here in any detail.  Instead, we can make a few simple observations:</t>
          <ul spacing="normal">
            <li>
              <t>EAP-MD5 is essentially the same as CHAP-Password, and shares the same security analysis.  EAP-MD5 is not suitable for use outside of a secure tunnel such as PEAP, TEAP, or TTLS.</t>
            </li>
            <li>
              <t>EAP-MSCHAPv2 (any variant) is essentially the same as MS-CHAP, and shares the same security analysis.  EAP-MSCHAPv2  is not suitable for use outside of a secure tunnel such as PEAP, TEAP, or TTLS.</t>
            </li>
            <li>
              <t>TLS-based EAP methods (e.g. TTLS, PEAP, etc.) benefit from the security of TLS, and are therefore secure.</t>
            </li>
            <li>
              <t>Other EAP methods are not discussed here.</t>
            </li>
          </ul>
        </section>
        <section anchor="summary-1">
          <name>Summary</name>
          <t>There are no known security issues with User-Password, or with many EAP methods. In contrast, MS-CHAP and CHAP-Password are insecure, and can only be used safely within a TLS tunnel.</t>
          <t>While the "on the wire" encoding of User-Password is secure, the passwords still have to be stored somewhere, typically in a database.  The next section explains how the interaction between authentication methods and password storage methods can increase, or decrease, security of the system as a whole.</t>
        </section>
      </section>
      <section anchor="password-security">
        <name>Review of password visibility and storage methods</name>
        <t>An attacker can ignore the wire protocol entirely, and bypass all of the issues described earlier in this document.  One such attack is to focus on the database that holds user credentials such as account names and passwords.  At the time of this writing, databases such as <xref target="PWNED"/> claim to have records of over twelve billion user accounts which have been compromised.  User databases are therefore highly sought-after targets.</t>
        <t>The attack discussed in this section is dependent on vulnerabilities with the credential database, and does not assume an attacker can see or modify RADIUS traffic.  As a result, issues raised here apply equally well when TTLS, PEAP, or RADIUS/TLS are used.  The success of the attack depends only on how the credentials are stored in the database.  Since the choice of authentication method affects the way credentials are stored in the database, the security of that dependency needs to be discussed and explained.</t>
        <t>Some organizations may desire to increase the security of their network by avoiding PAP, and using CHAP or MS-CHAP, instead.  These attempts are misguided.  If simple password-based methods must be used, in almost all situations, the security of the network as a whole is increased by using PAP in preference to CHAP or MS-CHAP.  The reason is found through a straightforward risk analysis, which we explain in more detail below.</t>
        <section anchor="pap-security">
          <name>PAP Security Analysis</name>
          <t>When PAP is used, the User-Password is obfuscated "on the wire", but the RADIUS server sees a clear-text password from the user.  The server then compares that password to credentials which have been stored in a user database, and either accepts or rejects the user.</t>
          <t>In many cases, the credentials stored in the database can be salted and/or hashed in a form which is commonly referred to as being in "crypt"ed form.  The RADIUS server can take the users clear-text password, performs the same "crypt" transformation, and then compares the two "crypt"ed passwords.</t>
          <t>Any compromise of the RADIUS server can result in the compromise of clear-text passwords for users.  However, in most cases, the clear-text password is available only in the memory of the RADIUS server application (i.e. not "on the wire"), and then only for a short period of time.  An attacker who desires to obtain passwords for all users would have to wait for all users to log in, which can take a substantial amount of time.  During that time, an administrator may discover the breach, and resolve the issue.</t>
          <t>When PAP is used, the credentials in the database are stored securely "at rest", presuming that the administrator only stores "crypt"ed credentials.  Any compromise of the database results in the disclosure of minimal information to the attacker.  That is, an attacker cannot easily obtain the clear-text passwords from the compromised database.</t>
          <t>The result is that the user passwords are visible in clear-text only for a short time, and then only on the RADIUS server.  The security of this system is not as good as seen with EAP-pwd <xref target="RFC5931"/> for example, but it is not terrible.</t>
          <t>Storing passwords securely "at rest" is significantly more secure than storing clear-text passwords in a database, even when PAP authentication is used in RADIUS.</t>
        </section>
        <section anchor="chap-and-ms-chap-password-storage">
          <name>CHAP and MS-CHAP Password Storage</name>
          <t>In contrast with PAP, when CHAP or MS-CHAP is used, those methods do not expose a clear-text password to the RADIUS server, but instead a hashed transformation of it.  The design goal of those methods was to make the hash output secure even if an attacker can observe it.  However, as noted above, those methods have been shown to be insecure.</t>
          <t>For the purposes of this section, we will ignore the previous attacks, and instead focus on the implications of using these hashing methods.</t>
          <t>The hash transformations for CHAP and MS-CHAP depend on a random challenge.  The intent was to increase security, but their construction makes strong requirements on the form in which user credentials are stored.</t>
          <t>The process for performing CHAP and MS-CHAP is inverted from the process for PAP.  Using similar terminology as above for illustrative purposes, the "hash"ed passwords are carried in the CHAP method, and are sent to the server.  The server must obtain the clear-text (or NT hashed) password from the database, and then perform the "hash" operation on the password from the database. The two "hash"ed passwords are then compared as was done with PAP.  This inverted process decreases system security substantially.</t>
          <t>Critically, when CHAP or MS-CHAP are used, all credentials must be stored as clear-text (or clear-text equivalent) in the database, all of the time.  Even if the database contents are encrypted, the decryption keys are necessarily accessible to the application which reads that database.  Any compromise of the application means that the entire database can be immediately read and exfiltrated as a whole.  The attacker then has complete access to all user identities, and all associated clear-text passwords.</t>
          <t>It should go without saying that having an attacker obtain all clear-text passwords is more of an issue than having the same attacker obtain passwords in a "crypt"ed form.  Similarly, it is more secure for a RADIUS server to have limited clear-text passwords (i.e. some of the time), rather than having unlimited access to all of the clear-text passwords, all of the time.</t>
        </section>
        <section anchor="on-the-wire-user-password-versus-chap-password">
          <name>On-the-wire User-Password versus CHAP-Password</name>
          <t>There is one more security myth which should be put to rest about PAP versus CHAP.  There is a common belief that CHAP is more secure, because passwords are sent "in the clear" via the User-Password attribute.  This belief is false.</t>
          <t>The User-Password attribute is obfuscated when it is sent in an Access-Request packet, using keyed MD5 and the shared secret, as defined in <xref section="5.2" sectionFormat="comma" target="RFC2865"/>.  At the time of this writing, no attack better than brute force has been found which allows an attacker to reverse this obfuscation.</t>
          <t>There have been claims that it is preferable to use CHAP-Password as it does not "send the password in clear-text".  This preference is based on a misunderstanding of how CHAP-Password and User-Password attributes are calculated.</t>
          <t>The CHAP-Password attribute depends on the hash of a visible Request Authenticator (or CHAP-Challenge) and the users password.  The obfuscated User-Password depends on the same Request Authenticator, and on the RADIUS shared secret.  For an attacker, the difference between the two calculations is minimal.  Presuming that the user password has similar complexity to the shared secret, they can both be attacked with similar amounts of effort.   As a result, any security analysis which makes the claim that "User-Password insecure because it uses MD5" ignores the fact that the CHAP-Password attribute is constructed through substantially the same method.</t>
          <t>The difference in security between the two methods is due instead to the practice of people creating their own insecure password, versus a RADIUS administrator creating a strong shared secret.  The CHAP-Password contents depends only on the strength of the users chosen password.  The User-Password contents instead depends on both the RADIUS shared secret, and on the users password.  As such, even though their constructs are roughly similar, in practice User-Password is significantly more secure than CHAP-Password.</t>
          <t>An attacker who can crack one users password can gain network access as that user, or even administrator access to network devices.  In contrast, an attacker who can crack the shared secret can gain network access as any user, and perform any authorization.  The result is that it is more valuable to crack shared secrets, even if the underlying attacks are similar.</t>
        </section>
        <section anchor="pap-vs-chap">
          <name>PAP vs CHAP Conclusions</name>
          <t>A careful security analysis shows that for all of PAP, CHAP, and MS-CHAP, the RADIUS server must at some point have access to the clear-text version of the password.  As a result, there is minimal difference in risk exposure between the different authentication methods if a RADIUS server is compromised.</t>
          <t>However, when PAP is used, the user credentials can be stored securely "at rest" in a database, while this secure storage is impossible with CHAP and MS-CHAP.  There is therefore a substantial difference in risk exposure between the different authentication methods, with PAP offering substantially higher security due to its ability to secure passwords at rest via the "crypt" construct mentioned above.</t>
          <t>In contrast, CHAP or MS-CHAP are highly insecure, as any database compromise results in the immediate exposure of the clear-text passwords for all users.  The security of those methods are best described as near zero, independent of any database compromise.  The construction of MS-CHAP makes it easier to crack than CHAP-Password, which makes MS-CHAP the worst of all possible choices.</t>
          <t>This security difference is shown not just in the <xref target="PWNED"/> database, but also in attacks on RADIUS systems <xref target="EXPLOIT"/>, where attackers identified a vulnerable RADIUS system, and then:</t>
          <ul empty="true">
            <li>
              <t>utilized SQL commands to dump the credentials [T1555], which contained both clear-text and hashed passwords for user and administrative accounts.</t>
            </li>
          </ul>
          <t>The attack proceeded to leverage those passwords to gain more permissions:</t>
          <ul empty="true">
            <li>
              <t>Having gained credentials from the RADIUS server, PRC state-sponsored cyber actors used those credentials with custom automated scripts to authenticate to a router via Secure Shell (SSH), execute router commands, and save the output.</t>
            </li>
          </ul>
          <t>This attack is only possible when systems store clear-text passwords.</t>
          <t>The result is that 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.  Administrators should therefore prefer PAP over CHAP or MS-CHAP.  Administrators should also store passwords "at rest" in a secure form (salted, hashed), as with the "crypt" format discussed above.</t>
          <t>That being said, other authentication methods such as EAP-TLS <xref target="RFC9190"/> and EAP-pwd <xref target="RFC5931"/> do not expose clear-text passwords to the RADIUS server or to any intermediate proxy.  Those methods therefore lower the risk of password exposure even more than using PAP.</t>
          <t>The conclusion is that administrators should avoid password-based authentication methods where at all possible.  If passwords ahve to be used, wrap them in TLS (e.g. TTLS or PEAP).  Where TLS cannot be used, prefer User-Password to CHAP-Password or MS-CHAP.</t>
        </section>
        <section anchor="the-weakest-link">
          <name>The Weakest Link</name>
          <t>RADIUS security is done on a “hop by hop” basis, which means that an attacker can take advantage of the weakest link in a proxy chain in order to attack other systems which have fully implemented the above mitigations.  If the packets are passed through one or more proxies, then any one vulnerable proxy will still allow the attack to take place.</t>
          <t>If proxies are used, then the weakest link in the proxy chain limits the security of the entire chain. That is, it does not matter if one hop implements RadSec, if another hop implements RADIUS/UDP without sending or requiring Message-Authenticator.</t>
          <t>Even worse, proxies have full control over packet contents.  A malicious proxy can change a reject into an accept, and can add or delete any authorization attributes it desires.  While proxies are generally part of a trusted network, there is every benefit in limiting the number of participants in the RADIUS conversation.</t>
          <t>Proxy chains SHOULD therefore be avoided where possible, and <xref target="RFC7585"/> dynamic discovery should be used where possible.  RADIUS clients and servers SHOULD also be configured with static IP addresses, and with static routes.  This static configuration also protects the systems from DHCP related attacks where an attacker spoofs DHCP to cause clients or servers to route packets through the a system of the attackers choice.</t>
        </section>
      </section>
    </section>
    <section anchor="accounting-review">
      <name>Accounting Review</name>
      <t>There are many other issues with RADIUS which are not directly related to security or privacy, but still have negative affects on security, privacy, and on operation of the protocol.  At of the time of writing, those issues are being collated in <xref target="ISSUES"/>.</t>
      <t>Although the focus of this document is a review of RADIUS security, it is still important to discuss problems with the protocol in general.  For example, there is implicitly a RADIUS state machine which correlates multiple types of packets, but that state machine is not defined anywhere.  There are common practices which are secure but which are operationally expensive.  RADIUS accounting is known to be inaccurate and is often inconsistent, as seen in <xref target="WBA-ACCT"/></t>
      <t>Some of the issues noted in the above Wiki could potentially have security impact.  For example, if a RADIUS server is not implemented correctly, an attacker can perform a resource exhaustion attack on it, and effectively take it offline.  Proxies are subject to Denial of Service attacks even from trusted clients, because those clients originate packets at the request of untrusted and unknown users.  Rate limiting for RADIUS requests is a poorly tested or documented process, and largely relies on mutual trust of administrators.</t>
      <section anchor="accounting-is-imperfect">
        <name>Accounting Is Imperfect</name>
        <t>The use of RADIUS/UDP for accounting means that accounting is inherently unreliable.  Unreliable accounting means that different entities in the network can have different views of accounting traffic.  These differences can have multiple impacts, including incorrect views of who is on the network, to disagreements about financial obligations.  These issues are discussed in substantial detail in <xref target="RFC2975"/>, and we do not repeat those discussions here.  We do, however, summarize a few key issues.  Sites which use accounting SHOULD be aware of the issues raised in <xref target="RFC2975"/>, and the limitations of the suggested solutions.</t>
        <t>As a historical note, <xref target="RFC2866"/> was a document produced by the RADIUS Working Group with category "Informational".  The related document <xref target="RFC2866"/> was produced at the same time with category "Standards Track".  The documents were categorizated differently because of reviews which expressed concern that the lossy nature of UDP could negatively affect customer billing.  Experience since then has shown that this issue is manageable.</t>
        <t>Using a reliable transport such as RADIUS/TLS makes it more likely that accounting packets are delivered, and that acknowledgments to those packets are received.  Reducing the number of proxies means that there are fewer disparate systems which need to have their accounting data reconciled.  Using non-volatile storage for accounting packets means that a system can reboot with minimal loss of accounting data.  Using interim accounting updates means that transient network issues or data losses can be corrected by later updates.</t>
        <t>As RADIUS does not provide for end-to-end signaling or transport, using RADIUS/TLS provides for reliable transport only when the client originating the accounting traffic is connected directly to the server which records it.  If there are instead one or more proxies involved, the proxies increase overall unreliability.</t>
        <t>Systems which perform accounting are also subject to significant operational loads.  Wheres authentication and authorization may use multiple packets, those packets are sent at session start, and then never again.  In contrast, accounting packets can be sent for the lifetime of a session, which may be hours or even days.  There is a large cost to receiving, processing, and storing volumes of accounting data.</t>
        <t>However, even with all of the above concerns addressed, accounting is still imperfect.  The obvious way to increase the accuracy of accounting data is to increase the rate at which interim updates are sent, but doing so also increases the load on the servers which process the accounting data.  At some point, the trade-off of cost versus benefit becomes negative.</t>
        <t>There is no perfect solution here.  Instead, there are simply a number of imperfect trade-offs.</t>
      </section>
      <section anchor="incorrect-accounting-data">
        <name>Incorrect Accounting Data</name>
        <t>Even if all accounting packets were delivered and stored without error, there is no guarantee that the contents of those packets are in any way reasonable.  The Wireless Broadband Alliance RADIUS Accounting Assurance <xref target="WBA"/> group has been investigating these issues.  While the results are not yet public, a presentation on the topic was made at IETF 118 in the RADEXT working group <xref target="WBA-ACCT"/>.</t>
        <t>The data presented indicated that the WBA saw just about every possible counter attribute in RADIUS accounting packets as containing data which was blatantly wrong or contradictory.  One example is extremely short sessions which have impossibly large amounts of data being downloaded.  Other accounting packets allege that large amounts of data were downloaded via octet counters, while at the same time claiming negligible packet counters, leading to absurdly large packet sizes.</t>
        <t>The only conclusion from this analysis is that some RADIUS clients act as if it is better to produce incorrect accounting data rather than to produce no data at all.  This failure to follow reasonable practices is expensive for network operators.  In effect, vendors have offset their costs to produce quality data onto their customers, who have to take difficult and uncertain steps in order to sanitize or verify the confusing data which vendors provide in accounting packets.</t>
        <t>It should go without saying that accounting systems need to produce correct data.</t>
      </section>
      <section anchor="acct-delay-time">
        <name>Acct-Delay-Time increases network load</name>
        <t><xref section="5.2" sectionFormat="comma" target="RFC2866"/> requires that if a client resends an Accounting-Request packet, it updates Acct-Delay-Time.  This update also requires that the client then change the RADIUS Identifier field, as the packet contents have changed.</t>
        <t>This behavior means that if a server is slow to process accounting data, clients implementing this behavior will increase the load on the network.  The network then becomes congested, or the server becomes overloaded.</t>
        <t>Some implementations avoid this problem by not using Acct-Delay-Time, and instead including Event-Timestamp in Accounting-Request packets.  This difference means that when a client needs to resend a packet, it can be retransmitted as an exact duplicate of a prevcious packet, and congestive collapse is avoided.</t>
      </section>
    </section>
    <section anchor="privacy-considerations">
      <name>Privacy Considerations</name>
      <t>The primary focus of this document is documenting historic privacy and security considerations for RADIUS.</t>
      <t>The use of insecure transport protocols for RADIUS means that personally identifying information is 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 documenting historic privacy and security considerations for RADIUS.</t>
      <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 implementations.  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>MS-CHAP authentication was not officially deprecated, even though it has been proven to be insecure for decades (<xref target="ASLEAP"/>).  This continued use of MS-CHAP has likely resulted in the leaking of many the clear-text passwords for many users.</t>
      <t>Prior to this document, there does not appear that there has been a security analysis of CHAP authentication.  The analysis presented here shows that CHAP can be cracked in milliseconds on commodity hardware, should be considered to be plain-text equivalent.</t>
    </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, Josh Howlett, and Premanand Seralathan.</t>
      <t>Many thanks to Nadia Heninger and the rest of the BlastRADIUS team, along with Heikki Vatiainen, for extensive discussions and feedback about that 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>00 - copy from draft-ietf-radext-deprecating-radius, and edit to contain only historical review contents.</t>
        </li>
        <li>
          <t>01 - word smithing and updated analysis of CHAP-Password.</t>
        </li>
        <li>
          <t>02 - tweak organization.  Address review from Premanand Seralathan.  Add significant text on the lack of protocol-layer signaling.</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="BCP14">
          <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="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="6" month="July" 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-17"/>
        </reference>
        <reference anchor="I-D.ietf-radext-deprecating-radius">
          <front>
            <title>Deprecating Insecure Practices in RADIUS</title>
            <author fullname="Alan DeKok" initials="A." surname="DeKok">
              <organization>InkBridge Networks</organization>
            </author>
            <date day="3" month="July" year="2026"/>
            <abstract>
              <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
   [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.

   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>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-radext-deprecating-radius-10"/>
        </reference>
        <reference anchor="I-D.dekok-protocol-error">
          <front>
            <title>Standardising Protocol-Error</title>
            <author fullname="Alan DeKok" initials="A." surname="DeKok">
              <organization>InkBridge Networks</organization>
            </author>
            <date day="3" month="July" year="2026"/>
            <abstract>
              <t>   We extend and standardise the Protocol-Error packet Code, first
   defined in RFC 7930 for the Remote Authentication Dial In User
   Service (RADIUS) protocol.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-dekok-protocol-error-01"/>
        </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="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="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="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.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>
            <author fullname="Seb Adamski" initials="S." surname="Adamski">
              <organization>IronWiFi</organization>
            </author>
            <date day="12" month="June" 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-08"/>
        </reference>
        <reference anchor="BLAST" target="https://www.blastradius.fail/pdf/radius.pdf">
          <front>
            <title>RADIUS/UDP Considered Harmful</title>
            <author initials="" surname="Goldberg, S , et al" fullname="Golberg, Sharon, et. al">
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="DATTACK" target="https://www.ietf.org/ietf-ftp/ietf-mail-archive/radius/1998-11.mail">
          <front>
            <title>CHAP and Shared Secret</title>
            <author initials="A." surname="DeKok" fullname="Alan DeKok">
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="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="MAY-1995" target="http://ftp.cerias.purdue.edu/pub/doc/network/radius/archive/ietf-radius.9506">
          <front>
            <title>Proxy-State radius extension to support stateless proxies</title>
            <author initials="M." surname="O'Dell" fullname="Mike O'Dell">
              <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="EXPLOIT" target="https://www.cisa.gov/news-events/cybersecurity-advisories/aa22-158a">
          <front>
            <title>People’s Republic of China State-Sponsored Cyber Actors Exploit Network Providers and Devices</title>
            <author initials="A. C. D." surname="Agency" fullname="America's Cyber Defense Agency">
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="BRIGGS" target="https://www.fcc.gov/ecfs/document/10427582404839/1">
          <front>
            <title>Comments on the FCC’s Public Notice DA 24-308 on SS7 and Diameter Vulnerabilities</title>
            <author initials="K." surname="Briggs" fullname="Kevin Briggs">
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="HASHCLASH" target="https://github.com/cr-marcstevens/hashclash">
          <front>
            <title>Project HashClash - MD5 &amp; SHA-1 cryptanalytic toolbox</title>
            <author initials="M." surname="Stevens" fullname="Marc Stevens">
              <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="WIFILOC" target="https://www.wi-fi.org/discover-wi-fi/wi-fi-location">
          <front>
            <title>Accurate indoor location with Wi-Fi connectivity</title>
            <author initials="W.-F." surname="Alliance" fullname="Wi-Fi Alliance">
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="SPOOFING" target="https://networkradius.com/articles/2021/08/04/wifi-spoofing.html">
          <front>
            <title>Wi-Fi Spoofing for Fun and Profit</title>
            <author initials="A." surname="Cudbard-Bell" fullname="Arran Cudbard-Bell">
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </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="WBA" target="https://wballiance.com/radius-accounting-assurance/">
          <front>
            <title>RADIUS Accounting Assurance</title>
            <author initials="W. B." surname="Alliance" fullname="Wireless Broadband Alliance">
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="WBA-ACCT" target="https://youtu.be/wwmYSItcQt0?t=3953">
          <front>
            <title>RADIUS Accounting Assurance at IETF 118</title>
            <author initials="W. B." surname="Alliance" fullname="Wireless Broadband Alliance">
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="PWNED" target="https://haveibeenpwned.com/">
          <front>
            <title>Have I been Pwned</title>
            <author initials="T." surname="Hunt" fullname="Troy Hunt">
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="ISSUES" target="https://github.com/radext-wg/issues-and-fixes-2/wiki">
          <front>
            <title>Issues and Fixes 2</title>
            <author initials="" surname="RADEXT" fullname="IETF RADEXT Working Group">
              <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="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="RFC7525">
          <front>
            <title>Recommendations for Secure Use of Transport Layer Security (TLS) and Datagram Transport Layer Security (DTLS)</title>
            <author fullname="Y. Sheffer" initials="Y." surname="Sheffer"/>
            <author fullname="R. Holz" initials="R." surname="Holz"/>
            <author fullname="P. Saint-Andre" initials="P." surname="Saint-Andre"/>
            <date month="May" year="2015"/>
            <abstract>
              <t>Transport Layer Security (TLS) and Datagram Transport Layer Security (DTLS) are widely used to protect data exchanged over application protocols such as HTTP, SMTP, IMAP, POP, SIP, and XMPP. Over the last few years, several serious attacks on TLS have emerged, including attacks on its most commonly used cipher suites and their modes of operation. This document provides recommendations for improving the security of deployed services that use TLS and DTLS. The recommendations are applicable to the majority of use cases.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7525"/>
          <seriesInfo name="DOI" value="10.17487/RFC7525"/>
        </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="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="RFC6280">
          <front>
            <title>An Architecture for Location and Location Privacy in Internet Applications</title>
            <author fullname="R. Barnes" initials="R." surname="Barnes"/>
            <author fullname="M. Lepinski" initials="M." surname="Lepinski"/>
            <author fullname="A. Cooper" initials="A." surname="Cooper"/>
            <author fullname="J. Morris" initials="J." surname="Morris"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <author fullname="H. Schulzrinne" initials="H." surname="Schulzrinne"/>
            <date month="July" year="2011"/>
            <abstract>
              <t>Location-based services (such as navigation applications, emergency services, and management of equipment in the field) need geographic location information about Internet hosts, their users, and other related entities. These applications need to securely gather and transfer location information for location services, and at the same time protect the privacy of the individuals involved. This document describes an architecture for privacy-preserving location-based services in the Internet, focusing on authorization, security, and privacy requirements for the data formats and protocols used by these services. This memo documents an Internet Best Current Practice.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="160"/>
          <seriesInfo name="RFC" value="6280"/>
          <seriesInfo name="DOI" value="10.17487/RFC6280"/>
        </reference>
        <reference anchor="RFC6733">
          <front>
            <title>Diameter Base Protocol</title>
            <author fullname="V. Fajardo" initials="V." role="editor" surname="Fajardo"/>
            <author fullname="J. Arkko" initials="J." surname="Arkko"/>
            <author fullname="J. Loughney" initials="J." surname="Loughney"/>
            <author fullname="G. Zorn" initials="G." role="editor" surname="Zorn"/>
            <date month="October" year="2012"/>
            <abstract>
              <t>The Diameter base protocol is intended to provide an Authentication, Authorization, and Accounting (AAA) framework for applications such as network access or IP mobility in both local and roaming situations. This document specifies the message format, transport, error reporting, accounting, and security services used by all Diameter applications. The Diameter base protocol as defined in this document obsoletes RFC 3588 and RFC 5719, and it must be supported by all new Diameter implementations. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6733"/>
          <seriesInfo name="DOI" value="10.17487/RFC6733"/>
        </reference>
        <reference anchor="RFC6677">
          <front>
            <title>Channel-Binding Support for Extensible Authentication Protocol (EAP) Methods</title>
            <author fullname="S. Hartman" initials="S." role="editor" surname="Hartman"/>
            <author fullname="T. Clancy" initials="T." surname="Clancy"/>
            <author fullname="K. Hoeper" initials="K." surname="Hoeper"/>
            <date month="July" year="2012"/>
            <abstract>
              <t>This document defines how to implement channel bindings for Extensible Authentication Protocol (EAP) methods to address the "lying Network Access Service (NAS)" problem as well as the "lying provider" problem. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6677"/>
          <seriesInfo name="DOI" value="10.17487/RFC6677"/>
        </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="RFC8907">
          <front>
            <title>The Terminal Access Controller Access-Control System Plus (TACACS+) Protocol</title>
            <author fullname="T. Dahm" initials="T." surname="Dahm"/>
            <author fullname="A. Ota" initials="A." surname="Ota"/>
            <author fullname="D.C. Medway Gash" initials="D.C." surname="Medway Gash"/>
            <author fullname="D. Carrel" initials="D." surname="Carrel"/>
            <author fullname="L. Grant" initials="L." surname="Grant"/>
            <date month="September" year="2020"/>
            <abstract>
              <t>This document describes the Terminal Access Controller Access-Control System Plus (TACACS+) protocol, which is widely deployed today to provide Device Administration for routers, network access servers, and other networked computing devices via one or more centralized servers.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8907"/>
          <seriesInfo name="DOI" value="10.17487/RFC8907"/>
        </reference>
        <reference anchor="RFC4120">
          <front>
            <title>The Kerberos Network Authentication Service (V5)</title>
            <author fullname="C. Neuman" initials="C." surname="Neuman"/>
            <author fullname="T. Yu" initials="T." surname="Yu"/>
            <author fullname="S. Hartman" initials="S." surname="Hartman"/>
            <author fullname="K. Raeburn" initials="K." surname="Raeburn"/>
            <date month="July" year="2005"/>
            <abstract>
              <t>This document provides an overview and specification of Version 5 of the Kerberos protocol, and it obsoletes RFC 1510 to clarify aspects of the protocol and its intended use that require more detailed or clearer explanation than was provided in RFC 1510. This document is intended to provide a detailed description of the protocol, suitable for implementation, together with descriptions of the appropriate use of protocol messages and fields within those messages. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4120"/>
          <seriesInfo name="DOI" value="10.17487/RFC4120"/>
        </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="RFC7499">
          <front>
            <title>Support of Fragmentation of RADIUS Packets</title>
            <author fullname="A. Perez-Mendez" initials="A." role="editor" surname="Perez-Mendez"/>
            <author fullname="R. Marin-Lopez" initials="R." surname="Marin-Lopez"/>
            <author fullname="F. Pereniguez-Garcia" initials="F." surname="Pereniguez-Garcia"/>
            <author fullname="G. Lopez-Millan" initials="G." surname="Lopez-Millan"/>
            <author fullname="D. Lopez" initials="D." surname="Lopez"/>
            <author fullname="A. DeKok" initials="A." surname="DeKok"/>
            <date month="April" year="2015"/>
            <abstract>
              <t>The Remote Authentication Dial-In User Service (RADIUS) protocol is limited to a total packet size of 4096 bytes. Provisions exist for fragmenting large amounts of authentication data across multiple packets, via Access-Challenge packets. No similar provisions exist for fragmenting large amounts of authorization data. This document specifies how existing RADIUS mechanisms can be leveraged to provide that functionality. These mechanisms are largely compatible with existing implementations, and they are designed to be invisible to proxies and "fail-safe" to legacy RADIUS Clients and Servers.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7499"/>
          <seriesInfo name="DOI" value="10.17487/RFC7499"/>
        </reference>
        <reference anchor="RFC7683">
          <front>
            <title>Diameter Overload Indication Conveyance</title>
            <author fullname="J. Korhonen" initials="J." role="editor" surname="Korhonen"/>
            <author fullname="S. Donovan" initials="S." role="editor" surname="Donovan"/>
            <author fullname="B. Campbell" initials="B." surname="Campbell"/>
            <author fullname="L. Morand" initials="L." surname="Morand"/>
            <date month="October" year="2015"/>
            <abstract>
              <t>This specification defines a base solution for Diameter overload control, referred to as Diameter Overload Indication Conveyance (DOIC).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7683"/>
          <seriesInfo name="DOI" value="10.17487/RFC7683"/>
        </reference>
        <reference anchor="I-D.janfred-radext-radius-congestion-control">
          <front>
            <title>Methods for Mitigation of Congestion and Load Issues on RADIUS Servers</title>
            <author fullname="Jan-Frederik Rieckers" initials="J." surname="Rieckers">
              <organization>Deutsches Forschungsnetz | German National Research and Education Network</organization>
            </author>
            <date day="20" month="October" year="2025"/>
            <abstract>
              <t>   The RADIUS protocol as defined in [RFC2865] does not have a means to
   signal server overload or congesition to the clients.  This can lead
   to load problems, especially in a federated RADIUS proxy fabric.
   This document attempts to fix this.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-janfred-radext-radius-congestion-control-01"/>
        </reference>
        <reference anchor="RFC3539">
          <front>
            <title>Authentication, Authorization and Accounting (AAA) Transport Profile</title>
            <author fullname="B. Aboba" initials="B." surname="Aboba"/>
            <author fullname="J. Wood" initials="J." surname="Wood"/>
            <date month="June" year="2003"/>
            <abstract>
              <t>This document discusses transport issues that arise within protocols for Authentication, Authorization and Accounting (AAA). It also provides recommendations on the use of transport by AAA protocols. This includes usage of standards-track RFCs as well as experimental proposals. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3539"/>
          <seriesInfo name="DOI" value="10.17487/RFC3539"/>
        </reference>
        <reference anchor="RFC9724">
          <front>
            <title>State of Affairs for Randomized and Changing Media Access Control (MAC) Addresses</title>
            <author fullname="JC. Zúñiga" initials="JC." surname="Zúñiga"/>
            <author fullname="CJ. Bernardos" initials="CJ." role="editor" surname="Bernardos"/>
            <author fullname="A. Andersdotter" initials="A." surname="Andersdotter"/>
            <date month="March" year="2025"/>
            <abstract>
              <t>Internet users are becoming more aware that their activity over the Internet leaves a vast digital footprint, that communications might not always be properly secured, and that their location and actions can be tracked. One of the main factors that eases tracking of Internet users is the wide use of long-lasting, and sometimes persistent, identifiers at various protocol layers. This document focuses on Media Access Control (MAC) addresses.</t>
              <t>There have been several initiatives within the IETF and the IEEE 802 standards committees to address some of the privacy issues involved. This document provides an overview of these activities to help coordinate standardization activities in these bodies.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9724"/>
          <seriesInfo name="DOI" value="10.17487/RFC9724"/>
        </reference>
        <reference anchor="RFC1994">
          <front>
            <title>PPP Challenge Handshake Authentication Protocol (CHAP)</title>
            <author fullname="W. Simpson" initials="W." surname="Simpson"/>
            <date month="August" year="1996"/>
            <abstract>
              <t>This document defines a method for Authentication using PPP, which uses a random Challenge, with a cryptographically hashed Response which depends upon the Challenge and a secret key. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="1994"/>
          <seriesInfo name="DOI" value="10.17487/RFC1994"/>
        </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="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="RFC2975">
          <front>
            <title>Introduction to Accounting Management</title>
            <author fullname="B. Aboba" initials="B." surname="Aboba"/>
            <author fullname="J. Arkko" initials="J." surname="Arkko"/>
            <author fullname="D. Harrington" initials="D." surname="Harrington"/>
            <date month="October" year="2000"/>
            <abstract>
              <t>This document describes and discusses the issues involved in the design of the modern accounting systems. The field of Accounting Management is concerned with the collection the collection of resource consumption data for the purposes of capacity and trend analysis, cost allocation, auditing, and billing. This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2975"/>
          <seriesInfo name="DOI" value="10.17487/RFC2975"/>
        </reference>
      </references>
    </references>
  </back>
  <!-- ##markdown-source:
H4sIADEdemoAA+y9/XLcVpYn+D+fAkFPbJHlTEqkvjXR3ZMWZZtjS+KadLl7
O3o2kAkkEyUkkA0gSWU5NFGvMRE9L1dPsuf7ngsgKbq6a2N2Y2qmqygSuLgf
557v8zvT6fSgK7oyf53Mkp/y2yK/S+pl8tPs/OLnq+QqX2ybotslaZUll01x
my52B+l83uS3D38+qxdVuoYPZE267KZF3i2nTZrln7ppQwPgv4ptO318dnDQ
dvDq/52WdQUvdM02Pyg2Df3UdmePH7+CZ9ImT18nF1WXN1XeHdzdvMbPv/3H
6+SXuvlYVDfJd0293Rx8vAtPTc/x2weLtHudFNWyPmi383XRtkVdXe828KmL
t9ffHhxsitcJ/OerZJFWybbNk7Rp0l1yVCyTtCyTXd4eJ3WTrNJ2lazyJj9I
kq5evMY/wI9t3XRNvmxf0xBZvky3ZdfCE/r33Zr/jP88SLfdqm5eHxxMYUbw
y9lJcp7/UH+EB3m7ZiVMQn9VNze4mo/fNEV2kyfv8+4OFouj5uu0KF/D/NLq
JMs/1h//S1F9nNNjJ0V9cFDVzTrtitv8NTz8zZvL06ewX9++eXn64in8An46
e/n82Wv+8fnTs1P88WJ6fhKdEx1Q1pXtdF60Y09k+abJYXth++VpfYrmNN00
NexUXU7zpqFV4ym4icHHT5/wx3FKT5880R9fPHv12ib6PPz4Un588uyFPvDs
9IU+8OzZy8e6qNNnOu7zs1N97fnz0yfhx6f646sX+tsXT54/1jV09Tptp/Um
r5o6XcMaaS9/nF1d4w/wH7lCh3wPHv18fpm8qau2yIBIsuT7tFkvt+UhP6sH
n/B/6PC/q8tsnjc3k+TqZJLk3Qmcpz7A1ABPyAOrtKmr+CHeShvy+h+vgQZX
XbdpXz96dHd3dzIv07bjczlZAr082mTLR/Jv+BFePJ9dX8/e/NBbz5vvZ5d0
mfGrsBK44E3ejS9khGofMjWkohMg70dETstuwz8gVU/TZrECApGZPjp99erl
9PT0BP8GA747fzaFXz3vzRl+nfyQ7xKgx/o2b4AZdV26+HjfpPH2Kw9TJnJD
TORvswbgYjD92T/h9J/1pn/Z1J9206su7fKE30ngguUV8irkJe12swFGk7T4
RJm3bQJ361ORt/ct8F3xMU8+/O48L79EMbAimP/JIm+KFGhj22Tb/CTPto82
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
Ukkhct3tvIa5Sc7gYZZMkmRp6biyMQ/07exqSH6qFjLX3ZpQVRCUQ9Ky1z4k
BhYJBpN/h842QDvgliOdyophu4ztq2Z2vl0wzMTZvKHKsrKI5TKCb99wMRJM
4UF6g65e6o7CR8miburlmicVSQxOCkbhYqZFhyRLWr0JB18ui5E0M2Rm6ycW
CEhhAATvsghX6cPuJQvXZNYRre3UuJeswEZa7+jvu3Z3+ghK/o2XOArLqq8Q
Lax6tdxKcde2Q86jQTugsIJC8sG/iyxOs43/vn9YsoMU3p3WDbInanHlhLei
UEY/4+xjYiT5+DGZvzw007mzQDcK8Ln4gDC2SrxqW0eBOWHnyPc5kTyx2ZDv
tEylSZPyba2LP74npNS/41cxlz7DixoUkFsxgWi+WoXNojXsiTyFadu4hGcT
WQ5VLEdvS9SICA2f7Tfzknz84EJHztL9nFCljk4nBLZ7TVb1ZZ4MCfks9KYu
EDJDdk0GWeXynLHqtilJkTvdDQEPy+rCYA0c1aTH2z5KXilp0aZZ1RrfVPo7
XrNBu3eKXbreauTL6tDnSDbmywc3I7BTZBsQJ4kr1Sgrr7YPpEXbb+vJYxUK
orWpfwU8HzvVYqd7i66X88JXskCJXS9DFDFYndo7y5ZKjgUWh4lRSTdz9nEO
GzQSUSugR18Xj0OhJcgr+1YLUQoV5humMsRFLrqi0OLibIn1uYyFcCG3Ib6b
0+Swo/WLlkMQK5qPuSMZZzIZcnedBZDjjmlTaLMb8Zb4OpGXujPNzAeEim7x
ba59HOIOX5nTFxzjNxApNQ1dSiWOdyxudLulIte6JuSgapHLGq/36VZJ6xEo
oiOX5viUCZMHbQon5JYd85E65GkVvuvSQt3RCC7T7V7RZS5WOLzUZTLqHf4N
oWLycNZwlAx6SLjxnvOz1vtgbqKTJmjFWLMhh3pguuUFWJEh9zRkqPehfSCp
60rIadN7X729/fXs/PxXIb329ve3EN9B1Q4DixGtYqxow8tPwPdkou+lz2b6
SvLSnrj0ym65EKFaEZcmpO4i6Gs3EY/bIvRa8LQTJ324NG/p/mNk0BNQVW0n
Vo74fJJjKOQDEjUjCcl0Q5uDyQqI7x4y6IZ8OIj5Cjg6DIBTOsvkpdEJhaPB
JB5T499s6rVst+mn8Ua2h6EsyTR6MlW9IjVGXjCAefBw6nWKeDC/li7W727S
+cSOIiGYtAeX9l7yUWIOy1SUQzXIKdcNq6MFIpiYMg26QH9as5KclOJtW3Xl
Q5Q3ctwCwjt8gcTIIaGIOpJmRFcpTttz87to0fvxDAkirLikfVilW1wsvqXb
TnWw4aYTjG+3pGoX9gFZqdr7fnr2eHVcxGYA8AFkcYXPkD4orj5WrbV+UuRM
XOaGExTpohJZ7fohp9zrK5Jv+hFuTTo/RLsgxmrlVGiyaXXQ6uk1u4mN+HPa
C8K31O1Wh1vfWhdPLmROaAynb1Ikdzi9pT3pV5jONa6xz7+o6INLfJA2709f
fWXhXoHndoo0hq+tXBcetgd8K8G2jtDlhEKV27YYnu4f/me+dPNfC17swCyA
pkZ0RDV+zojBuqzU8NqrgqQABUzRKEQADftXmsXrUTZr7ZIvDsrcTpul+ngF
49O5Fy86JdGZkJUxEhxep4FFQtgPWJBESo9CuzFeYoD6AXKgxfxJvrOkVOVa
cSZySYSB7SBBRrE0eXug54XIDxjwieTibh9oex9dequYTMuFPLHqliyvkW/w
poKmgO0fcYi7GpHOthm0K4h4gqAatOemI3GPqdlRKnLyENZNwSw28Es3m+qB
MRhSl0JZ5FrUpl63EPfuVEP1FlFLQ1xPX6gL6P+niQp6UhPS0Ivs+SH/eZbl
Hg3bHPTHpVYQvxRnlUjaJMeumrUc/Xrjq/aE5F0pjLbkxPgx/iDhQSylWXl7
ZHrCVEYLzVd0PnulOKlNYRcpr6udcWDOizmVHBnigNyz11lNe1hkVTW6Rd4O
DWRKs7oiEVAsr5GA/H+vb9QOLSiM++BYThSYxN+pwAWffrvFH1fMY0VM3doj
yE+hKk06TlY7E2jMi1+9cDN/cXYBQ8/Xjgm/Imibrplrc9dkPxF3Y3K7wTKw
klYc52XycJJCAMAoG+p9tdQeIFbjCFiE45OXdq/zT5eCqOkTw6YOuJuTNBYm
QtjWCI5QuvRCBqEWpl9/tanWQJ6kV8p1OM9OnPC7yDA8if5XC5ZtnFCnx86x
+qIWNlYKM4MQFnz2zOm5nweW4rRN9yBrrSMi9N51/niPeR2MVISlKwkVYLMN
U0jXrYLge9T+G94UhbXgaG8kTuNJRnvLagKHLnoKU4K/gXXdIyA8MYDXmbBb
EnUdt+QQRDJwwkJSjQqZS/rl+6pbUnJ/HgAHepJNKQFsQ2XrrtTUNSPLlRDg
23afDF+GKeOMNiUPRMoL1axOMnpVw732FCT2oWjMphON6PArRa6E+JGcvltr
EV6IF3MZ9NEMmSPmCA43pRRcwwluLwQlZOz/mOKTiloiXu+pHWyeAut061I3
wuz1BrDM+ey3bX9PBAebFGPwYK/TsUqLlP7fDSX3KnremQjW+7O/T+FQNXtX
U0ApsFgxf1bVj8c9eSME4CX9KM44vaubT5+a2T+nrUHo1t1ceDYGCTNiRQhT
mNwMiBpzOMwen7C4YFshBcgsbpAEJhj2nUwnDgk5Gd/V3Y44qS7v2rsqO4so
NHJxNf0a8XJRlgHb4zWuo027Jp7JFy9mp2n1H4QceNlVq+G0qYfVKeVk/kS+
OZsGcqsohN7LHqiXDetyCtsyYsRQMBJkggGU8GPn6ceYDHELFsg138Rwu5ej
Axd7eNKXL9KXB8J/ZaxngJCyvLH8JF5kctXx0SwvK9QsMqOLT1KJiDKolhNP
ozg9PYUU9Vf/BZOAiB5t6AEA

-->

</rfc>
