<?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-dekok-radext-review-radius-00" 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-dekok-radext-review-radius-00"/>
    <author initials="A." surname="DeKok" fullname="Alan DeKok">
      <organization>InkBridge Networks</organization>
      <address>
        <email>alan.dekok@inkbridge.io</email>
      </address>
    </author>
    <date year="2025" month="November" day="06"/>
    <area>Internet</area>
    <workgroup>RADEXT Working Group</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <?line 153?>

<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-dekok-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 160?>

<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 is separate from the protocol changes.  As such, while this document contains some recommendations, it does not change the RADIUS protocol in any way.</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 a 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>RADIUS/TLS has now been standardized in <xref target="I-D.ietf-radext-radiusdtls-bis"/>.  That document standardizes TLS transport for RADIUS, and gives implementors and operators a way to securing 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 eduroam <xref target="EDUROAM"/> <xref target="RFC7593"/>, and more recently 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 is 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 test 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, which <xref target="ms-chap"/> describes in more detail.</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 therefore offers a stronger protection, 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 packet authenticators.</t>
        <t>That is, most attributes in RADIUS are sent in clear-text, and only a few attributes such as User-Password and Tunnel-Password have their contents hidden.  Even the hidden attributes rely on "ad hoc" obfuscation methods using MD5, which have not been successfully attacked, but are 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.  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.  If 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 that a particular practice is "allowed" by a specification, simply because the specification does not forbid that practice.  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 at best, they are 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 may be good or bad, independent of what any specification says.</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 written into a specification.  These practices have been found to be valuable by implementers and administrators.  Deviations from these practices generally result in instabilities and incompatibilities between systems.  As a result, 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 instead been followed.</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"/> m 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 use in <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 simply 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 all too often "the entire Internet".  As such, 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 ignored by all but one vendor.  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 proxy to "next hopt" server signaling, and offers no other value for RADIUS clients.  A NAS which originates packets does not send Proxy-State in an Access-Request, and should therefore 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.  Such a packet could either trigger a warning message, or instead be rejected entirely.</t>
        <t>That is, reception of Proxy-State in an Access-Accept response is a failure of signaling in the RADIUS protocol, and likely 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.  Even when 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 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 apply to Diameter <xref target="RFC6733"/>, 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 is not hard</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 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"/> - shared-secrets gives further requirements on the creation of shared secrets.</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 ihas been compromised by an attacker with significant resources.  Administrators can also assume that all private information (such as User-Password) which depends on such shared secrets have also been compromised.</t>
        <t>To be perfectly clear: if a User-Password, or 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 password has been compromised.</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, and it is one more reason to deprecate RADIUS/UDP and RADIUS/TCP.</t>
        <t>Due to the above issues, the use obfuscated attributes in CoA-Request or Disconnect-Request packets should be avoided.</t>
      </section>
      <section anchor="secure-transports-can-still-leak-information">
        <name>Secure Transports Can Still Leak Information</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 to "leak".</t>
        <t>When TLS-based EAP methods such as TTLS or PEAP are used, they 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>Similar issues apply for proxies even when RADIUS/TLS and IPsec are used.  A proxy which receives packets over IPsec will terminate the IPSec tunnel, but it then might 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.  As RADIUS security is "hop by hop", there is no way for one "hop" to know anything about, or to control, the security of another "hop".</t>
        <t>The only solution to either of the above issues would be to create a new protocol which is secure by design.</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 particular recommendations.  In the interest of simplicity for implementers, {I-D.ietf-radext-deprecating-radius}} omits all explanation as to the attack.  That document also gives minimal explanation for each of  the protocol changes.  Since the attack and mitigations are complex, this document reviews the issues in detail.</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 is to use Message-Authenticator or TLS.</t>
      <section anchor="detailed-description-of-the-attack">
        <name>Detailed Description of the Attack</name>
        <t>The specific details of the attack are outlined via the following 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 unauthenticate 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".
&gt;
&gt; When this flag is set to "false", client behavior remains unchanged from legacy RADIUS.
&gt;
&gt; When this flag is set to "true", clients discard all responses to Access-Request packets which do not contain a Message-Authenticator attribute.
&gt;
&gt; Clients still need to validate the contents of Message-Authenticator, of course.  However, clients 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".
&gt;
&gt; 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.
&gt;
&gt; When this flag is set to "true", clients discard all Access-Request packets which do not contain a Message-Authenticator attribute.
&gt;
&gt; Servers still need to validate the contents of Message-Authenticator, of course.  However, server need to accept valid and authenticated Access-Requests, no matter where the Message-Authenticator is located in the request.</t>
            <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 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>
      <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 also to discard packets where it is missing.  Similarly, the client must also require that the attribute is present, and discard packets where it is missing.</t>
          <t>Similarly, clients are vulnerable when they do not require that all responses to Access-Request packets contain Message-Authenticator.  Note that clients 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, it is not possible for the attack to succeed.</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 really is normative, and that the mandates 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>
          <li>
            <t>TBD</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>TBD</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 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 lacking 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 not available in equipment 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 "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 practicl 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="other-radius-problems">
      <name>Other RADIUS Problems</name>
      <t>Independent of the above security and privacy issues, there are a large number of other problems with the RADIUS protocol, and with the historic practices around the use of RADIUS.  This section discusses those problems.</t>
      <section anchor="obfuscation-of-user-password">
        <name>Obfuscation of User-Password</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 derived from a cryptographically strong pseudo-random number generator.</t>
      </section>
      <section anchor="ms-chap">
        <name>Attacks on MS-CHAP</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 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 most implementations still support MS-CHAP, and no previous standard has deprecated 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 is 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 as an index into that database, which returns a subset of candidate hashes.  Those hashes are then checked via brute-force operations to see if they match the original MS-CHAPv2 data.</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 tens to 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 does require 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 traffic can therefore obtain the underlying NT-Hash with essentially zero effort, as compared to cracking the RADIUS shared secret.  In contrast, the User-Password attribute is obfuscated with data derived from the Request Authenticator and the shared secret, and that method has not yet been successfully attacked.</t>
      </section>
      <section anchor="password-security">
        <name>Password Visibility and Storage</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-analysis">
          <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.  That hash output is in theory secure even if an attacker can observe it.  While CHAP is still believed to be secure, MS-CHAP is not secure, as seen below in <xref target="ms-chap"/>.  For the purposes of this section, we will focus on the construct of "hashed passwords", and will ignore any attacks specific to MS-CHAP.  We will also note that EAP-MD5 <xref section="5.4" sectionFormat="comma" target="RFC3748"/> is essentially CHAP, and has the same security analysis.</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>When CHAP or MS-CHAP are used, all of credentials are 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 "crypt"ed passwords.  Similarly, it is more secure for a RADIUS server to have access to some clear-text passwords, some of the time, rather than having 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.  They can both be attacked with similar amounts of effort, as they use similar constructs.   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>An attacker who can observe the CHAP-Password and CHAP-Challenge can also perform an off-line dictionary attack on the observed values.  The complexity of cracking CHAP-Password is similar to that noted above for cracking RADIUS packets, which was discussed above in <xref target="cracking"/>.  The difference between the two attacks is that the shared secrets are more likely to be secure than passwords for an end-user.</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 attack process is essentially the same.</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 such 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 is highly insecure, as any database compromise results in the immediate exposure of the clear-text passwords for all users.  The security of MS-CHAP is best described as near zero, independent of any database compromise.  This 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 any intermediate proxy.  Thor methods therefore lower the risk of password exposure even more than using PAP.  Administrators should avoid password-based authentication methods where at all possible.</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 RADIUS/TLS, 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 anchor="proxy-state">
        <name>Note on Proxy-State</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="other-protocol-failures">
      <name>Other Protocol Failures</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>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 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>
    </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 implementers.  If that recommendation had been followed, then the BlastRADIUS vulnerability notification would have been little more than "please remember to set the require Message-Authenticator flag on all RADIUS servers."</t>
      <t>Similarly, the MS-CHAP, was not officially deprecated, even though it has been proven to be insecure for decades.  This continued use of MS-CHAP has likely resulted in the leaking of many the clear-text passwords for many users.</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, and Josh Howlett.</t>
      <t>Many thanks to Nadia Heninger and the rest of the BlastRADIUS team, along with Heikki Vatiainen, for extensive discussions and feedback about the issue.</t>
      <t>The author is deeply indebted to the late Bernard Aboba for decades of advice and guidance.</t>
    </section>
    <section anchor="changelog">
      <name>Changelog</name>
      <ul spacing="normal">
        <li>
          <t>00 - copy from draft-ietf-radext-deprecating-radius, and edit to contain only historical review contents.</t>
        </li>
      </ul>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="RFC2865">
          <front>
            <title>Remote Authentication Dial In User Service (RADIUS)</title>
            <author fullname="C. Rigney" initials="C." surname="Rigney"/>
            <author fullname="S. Willens" initials="S." surname="Willens"/>
            <author fullname="A. Rubens" initials="A." surname="Rubens"/>
            <author fullname="W. Simpson" initials="W." surname="Simpson"/>
            <date month="June" year="2000"/>
            <abstract>
              <t>This document describes a protocol for carrying authentication, authorization, and configuration information between a Network Access Server which desires to authenticate its links and a shared Authentication Server. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2865"/>
          <seriesInfo name="DOI" value="10.17487/RFC2865"/>
        </reference>
        <reference anchor="RFC6421">
          <front>
            <title>Crypto-Agility Requirements for Remote Authentication Dial-In User Service (RADIUS)</title>
            <author fullname="D. Nelson" initials="D." role="editor" surname="Nelson"/>
            <date month="November" year="2011"/>
            <abstract>
              <t>This memo describes the requirements for a crypto-agility solution for Remote Authentication Dial-In User Service (RADIUS). This document is not an Internet Standards Track specification; it is published for informational purposes.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6421"/>
          <seriesInfo name="DOI" value="10.17487/RFC6421"/>
        </reference>
        <reference anchor="I-D.ietf-radext-radiusdtls-bis">
          <front>
            <title>(Datagram) Transport Layer Security ((D)TLS) Encryption for RADIUS</title>
            <author fullname="Jan-Frederik Rieckers" initials="J." surname="Rieckers">
              <organization>Deutsches Forschungsnetz | German National Research and Education Network</organization>
            </author>
            <author fullname="Stefan Winter" initials="S." surname="Winter">
              <organization>Fondation Restena | Restena Foundation</organization>
            </author>
            <date day="20" month="October" year="2025"/>
            <abstract>
              <t>   This document specifies a transport profile for RADIUS using
   Transport Layer Security (TLS) over TCP or Datagram Transport Layer
   Security (DTLS) over UDP as the transport protocol.  This enables
   encrypting the RADIUS traffic as well as dynamic trust relationships
   between RADIUS servers.  The specification obsoletes the experimental
   specifications in RFC 6614 (RADIUS/TLS) and RFC 7360 (RADIUS/DTLS)
   and combines them in this specification.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-radext-radiusdtls-bis-10"/>
        </reference>
        <reference anchor="I-D.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="27" month="August" year="2025"/>
            <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.  They have proven their utility as
   replacements for the previous UDP (RFC 2865) and TCP (RFC 6613)
   transports.  With that knowledge, the continued use of insecure
   transports for RADIUS has serious and negative implications for
   privacy and security.

   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.  We also discuss related security issues with RADIUS, and
   give recommendations for practices which increase both security and
   privacy.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-radext-deprecating-radius-07"/>
        </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="Betty A. Cockrell" initials="B. A." surname="Cockrell">
              <organization>SingleDigits</organization>
            </author>
            <author fullname="Sri Gundavelli" initials="S." surname="Gundavelli">
              <organization>Cisco Systems</organization>
            </author>
            <date day="16" month="September" year="2025"/>
            <abstract>
              <t>   This document describes the Wireless Broadband Alliance's OpenRoaming
   system.  The OpenRoaming architectures enables a seamless onboarding
   experience for devices connecting to access networks that are part of
   the federation of access networks and identity providers.  The
   primary objective of this document is to describe the protocols that
   form the foundation for this architecture, enabling providers to
   correctly configure their equipment to support interoperable
   OpenRoaming signalling exchanges.  In addition, the topic of
   OpenRoaming has been raised in different IETF working groups, and
   therefore a secondary objective is to assist those discussions by
   describing the federation organization and framework.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-tomas-openroaming-06"/>
        </reference>
        <reference anchor="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="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="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="RFC3748">
          <front>
            <title>Extensible Authentication Protocol (EAP)</title>
            <author fullname="B. Aboba" initials="B." surname="Aboba"/>
            <author fullname="L. Blunk" initials="L." surname="Blunk"/>
            <author fullname="J. Vollbrecht" initials="J." surname="Vollbrecht"/>
            <author fullname="J. Carlson" initials="J." surname="Carlson"/>
            <author fullname="H. Levkowetz" initials="H." role="editor" surname="Levkowetz"/>
            <date month="June" year="2004"/>
            <abstract>
              <t>This document defines the Extensible Authentication Protocol (EAP), an authentication framework which supports multiple authentication methods. EAP typically runs directly over data link layers such as Point-to-Point Protocol (PPP) or IEEE 802, without requiring IP. EAP provides its own support for duplicate elimination and retransmission, but is reliant on lower layer ordering guarantees. Fragmentation is not supported within EAP itself; however, individual EAP methods may support this. This document obsoletes RFC 2284. A summary of the changes between this document and RFC 2284 is available in Appendix A. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3748"/>
          <seriesInfo name="DOI" value="10.17487/RFC3748"/>
        </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="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="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:
H4sIAIMADWkAA8y963LbWJYm+l9PgWBOnJIqSdmS7znR3cO0nGlP+qJJKcvd
p6f7BEiCJMogwAZAyawMT9RrTETPy9WTnHXfawOgrKzuipia6SpZAjb2Ze11
X9+aTCZHbd4W2XfJNPk5u8mz26RaJj9PL978cpVcZfNdnbf7JC0XyWWd36Tz
/VE6m9XZzf2fX1TzMt3ABxZ1umwni+xT9WlSp4vsczupaQT8V75rJg8fHh01
Lbz7/6VFVcIbbb3LjvJtTT817fnDhy8enh+ldZZ+l7wp26wus/bodvUdfv/V
P14nH6v6U16ukh/rarc9+nQbnppc4MeP5mn7XZKXy+qo2c02edPkVXm938Kn
3ry6/uHoaJt/l8B/vknmaZnsmixJ6zrdJ8f5MkmLItlnzUlS1ck6bdbJOquz
oyRpq/l3+Af4sanqts6WzXc0xCJbpruibeAJ/ft+w3/Gfx6lu3Zd1d8dHU1g
RvDL6Wlykf1UfYIHeb+mBUxCf1XVK1zNp+/rfLHKkvdZewuLxVGzTZoX38H8
0vKUNve/5eWnGT12mldHR2VVb9I2v8m+g4d//uHl87Nnj+XH8+dPn8iPTx+f
n+GPbyYXp3nWLu2E6GgWbdFMZnkz9MQi29YZbCxsvDwNa8I9jj979og/gJ99
/OiR/vjsyYswmafhx+fy46Mnz/SBJ2fP9IEnT54/1ImfPdFxn56f6WtPn549
Cj/qep++eKa/ffbo6UNdTVtt0mZSbbOyrtINrAP/8P3b6dU1/gD/kRsyYjJ/
8MvFZfKyKpt8ASSwSF6n9Wa5K0b8rB5rwv+ho/2xKhazrF6Nk6vTcZK1p3Ba
+gCfNTwhD6zTuirjh3grbcjrf7wGClu37bb57sGD29vb01mRNi3v/ekSqOHB
drF8IP+GH+HFi+n19fTlT531vHw9vaS7il+FlcD9rbN2eCEDNHmfqSGlnALx
PiCSWbZb/gFpdpLW8zUQiMz0wdmLF88nZ2en+DcY8N3Fkwn86mlnzvDr5Kds
nwDNVTdZDbymbdP5p7smjXdbWZSyiBWxiL/NGoBHwfSn/4TTf9KZ/mVdfd5P
rtq0zRJ+J4FLlJXIiZBTNLvtFthI0uATRdY0yRbeyLPmrgW+yz9lyYffXWTF
1ygGVgTzP51ndZ4CbezqxS47zRa7B9vd7AFw6gclMxZdjy5PLzxS1IsnD5/C
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
42YmNtRWeErIrslkNpsBFzL5C/SiA4VCiQEA

-->

</rfc>
