Fact-checked by Grok 2 weeks ago

RADIUS

RADIUS, or Remote Authentication Dial-In User Service, is a client/server networking that enables centralized , , and (AAA) management for users connecting to and utilizing network services, primarily through remote access servers like Network Access Servers (NAS). Developed in 1991 by Livingston Enterprises for the Merit Network to handle dial-in access across points of presence (POPs), it has evolved into a industry standard for securing network access in diverse environments, including ISPs, enterprises, universities, and cellular providers. In operation, a RADIUS client—typically a or similar device—intercepts user connection attempts and forwards requests, including credentials via protocols like or CHAP, to a central server using port for / and for accounting. The server verifies the user's identity against a database, determines permissions and session parameters, and responds with an accept, reject, or message, while also logging usage data for billing, auditing, or policy enforcement. relies on a between client and server to protect passwords and certain sensitive attributes (e.g., via ), though the assumes trusted network paths and has known vulnerabilities like lack of support, including the 2024 Blast- vulnerability (CVE-2024-3596) enabling packet forgery, prompting extensions for modern threats. Standardized by the (IETF) as 2865 for and in 2000, and 2866 for , RADIUS supports extensible attributes for flexibility, integrating with protocols like EAP for advanced (e.g., in 802.1X wired/ networks) and directory services such as Microsoft Active Directory. Its advantages include simplified administration through centralized user profiles, enhanced by offloading from access devices, and for large deployments via proxies, though it was originally designed for dial-up scenarios and may require adaptations for high-traffic or untrusted networks. Today, RADIUS underpins VPNs, access, and , remaining widely implemented due to its open design and vendor interoperability.

Fundamentals

Definition and Purpose

RADIUS, or , is a client-server networking protocol that provides centralized , , and (AAA) management for users connecting to IP-based networks. In this model, a (NAS) acts as the client, forwarding user credentials and connection details to a remote RADIUS server, which processes the request and responds with access decisions and configuration parameters. The primary purpose of RADIUS is to enable secure and scalable control over network access by centralizing user validation and resource allocation, supporting services such as dial-up connections, virtual private networks (VPNs), and authentication. This allows organizations to manage for remote users from a single point, reducing administrative overhead and enhancing consistency across diverse access points like modems, routers, and access points. Key use cases involve devices querying RADIUS servers to verify user identities before granting access to network resources. Historically, was developed in the early as a more standardized alternative to earlier protocols like for handling in growing networks, emphasizing a UDP-based, stateless design to support high-volume, scalable operations without the overhead of connection-oriented protocols. Developed by Livingston Enterprises in the early and standardized by the IETF in RFC 2865, its lightweight architecture facilitates rapid transaction processing, making it suitable for environments with thousands of concurrent users.

AAA Framework

The AAA (Authentication, Authorization, and Accounting) framework provides a structured approach to , where verifies the identity of a or attempting to connect, determines the specific permissions and resources granted to that entity, and records usage details for billing, auditing, or security analysis. In the context of RADIUS, this model enables centralized management of remote access, distinguishing it from decentralized systems where each (NAS) might handle credentials independently, potentially leading to inconsistencies and heightened security risks. RADIUS implements the AAA framework through a client-server architecture, with the NAS functioning as the client that forwards user credentials to a central RADIUS server for processing. Upon a user's connection attempt, the NAS encapsulates the provided identity information—such as a username and password—into an Access-Request message and transmits it to the RADIUS server over UDP. The server then authenticates the user against a , authorizes access by evaluating policies, and responds with an Access-Accept (including attributes for session parameters), Access-Reject, or Access-Challenge message to prompt further verification if needed. For accounting, RADIUS supports tracking session start, stop, and interim updates via separate Accounting-Request messages, which the server logs for resource monitoring. This centralized approach in offers key advantages over decentralized , including simplified administration through a single user database that enforces consistent policies across distributed networks, reduced exposure of sensitive credentials on individual devices, and enhanced scalability for large-scale deployments. By consolidating functions on the , organizations can more effectively manage without the fragmentation risks of local methods.

Protocol Operation

Authentication and Authorization

In the RADIUS protocol, authentication begins when a (NAS) receives a connection request from a user or device and forwards an Access-Request packet (Code 1) to the RADIUS server, including the User-Name attribute and credentials such as User-Password for (PAP) or CHAP-Password and CHAP-Challenge for (CHAP). The RADIUS server validates these credentials against a back-end user database, such as LDAP directories or SQL databases, to verify the user's . Upon successful validation, the server responds with an Access-Accept packet (Code 2), granting access; if validation fails, it sends an Access-Reject (Code 3); or for multi-round authentication, an Access-Challenge (Code 11) prompting the to solicit additional user input, which is then resent in a new Access-Request with a attribute to track the exchange. RADIUS supports extensible authentication via the (EAP), encapsulated in Access-Request and Access-Challenge packets, enabling advanced methods like EAP-TLS or EAP-TTLS for certificate-based or tunneled . Microsoft-specific extensions, such as , are handled through vendor-specific attributes (VSAs) in Access-Requests, providing enhanced challenge-response security compatible with Windows environments. Authorization occurs concurrently with or immediately following authentication, where the Access-Accept packet includes Attribute-Value Pairs (AVPs) defining the user's permissions and session parameters, such as Service-Type to assign roles like "Framed User" for dial-in access or "Administrative User" for management privileges. For , Tunnel-Type and Tunnel-Medium-Type AVPs enable dynamic assignment, directing the user to a specific virtual based on . Session controls are enforced via attributes like Session-Timeout for maximum service duration or Idle-Timeout for inactivity thresholds, while () policies are applied through Filter-Id, referencing lists or limits stored in the back-end system. These authorization details ensure granular control over without requiring separate protocols.

Accounting

In the RADIUS protocol, accounting begins after successful authentication and authorization, with the Network Access Server (NAS) initiating the process by sending an Accounting-Request packet of type Start to the accounting server, marking the beginning of the user's session. This packet includes initial session details, such as the user's identifier and the NAS's or identifier. During the session, the NAS may send Interim-Update Accounting-Request packets to provide periodic updates on resource usage, followed by a Stop Accounting-Request packet upon session termination, which includes final statistics. The server confirms receipt of each request with an Accounting-Response packet containing a status indicator, ensuring reliable logging. Key data captured in these packets encompasses session metrics like the total bytes transferred (via Acct-Input-Octets and Acct-Output-Octets attributes), packet counts (Acct-Input-Packets and Acct-Output-Packets), session duration (Acct-Session-Time), and timestamps for connection start and disconnect events, alongside NAS-specific identifiers for . These elements enable detailed tracking of user activity without interrupting service delivery. RADIUS accounting supports critical use cases including billing based on usage, auditing for and reviews, and to monitor network load and . To enhance reliability, implementations allow of multiple accounting servers, where the NAS can retry requests on alternates using or mechanisms if the primary server is unavailable. In cases of transmission failures, the NAS retransmits Accounting-Request packets with exponential backoff until confirmation or a timeout, preventing data loss while avoiding network congestion; if the server cannot record the data, it may withhold the Accounting-Response to signal the issue.

Session Management

RADIUS supports ongoing management of user sessions through extensions that enable dynamic communication between the Network Access Server (NAS) and the RADIUS server after initial authentication. These extensions, defined in the Dynamic Authorization protocol, allow for unsolicited messages such as Change-of-Authorization (CoA) requests and Disconnect messages to handle periodic re-authentication and session modifications. A CoA-Request can trigger re-authentication by including a Service-Type attribute set to "Authorize Only," prompting the NAS to send a new Access-Request to verify the user's continued eligibility. Similarly, Disconnect-Request messages initiate immediate session termination without requiring further accounting updates from the NAS. Session attributes in RADIUS provide mechanisms for controlling active connections, including idle timeouts and limits on simultaneous use. The Idle-Timeout attribute specifies the maximum period of inactivity before a session is terminated, helping to free resources for inactive users. Session-Timeout sets the overall maximum duration of a session in seconds. Dynamic updates to these and other authorizations, such as rules or assignments, can be applied via CoA-Requests, which modify the session parameters atomically—if any change fails, the entire update is rejected with a CoA-NAK. Simultaneous use limits are enforced by the RADIUS server, which tracks active sessions for a user (often via backend databases) and rejects additional authentications exceeding the configured threshold, despite the protocol's core . Session termination in RADIUS involves coordinated actions to ensure clean endpoint handling. Upon receiving a Disconnect-Request, the NAS immediately ends the session and responds with a Disconnect-ACK, including an Acct-Terminate-Cause attribute to indicate the reason, such as administrative reset or idle timeout. Accounting records, generated via Accounting-Stop messages, capture session duration and termination details for auditing, with the Class attribute passing opaque data from authorization to accounting packets to maintain continuity. Forced disconnections occur if the NAS cannot identify the session, resulting in a Disconnect-NAK with an appropriate error cause. The stateless design of RADIUS enhances scalability for session management by avoiding per-user state tracking on the . Each request-response pair operates independently over , allowing the to handle multiple concurrent sessions without maintaining state, which reduces overhead and supports large-scale deployments. The NAS bears the responsibility for session tracking, periodically querying the as needed for updates or terminations, while retransmission ensures reliability without persistent sessions.

Packet Format

Overall Structure

RADIUS packets are encapsulated within (UDP) datagrams for transmission between clients and servers, utilizing UDP port 1812 for and packets and port 1813 for packets. The overall packet structure consists of a fixed 20-octet header followed by a variable-length sequence of attributes, with the total packet length ranging from a minimum of 20 octets to a maximum of 4096 octets. This design ensures efficient, lightweight communication suited to the protocol's role in the (, , and ) framework, where packets carry requests and responses for user access control and resource tracking. The header begins with the Code field, a single octet that specifies the packet type, such as 1 for Access-Request (initiating and ) or 4 for Accounting-Request (submitting usage ). Following the Code is the Identifier field, also one octet, which pairs requests with their corresponding responses in a stateless manner, allowing the to match replies without maintaining session state. The Length field, two octets in network byte order, indicates the total size of the packet including the header and all attributes, ensuring proper parsing even if the is padded. The header concludes with the 16-octet field, which provides and supports request-response through a known only to the client and . In operation, the is generated as a pseudo-random value for requests and computed as an hash of the packet contents combined with the for responses, preventing tampering and enabling encrypted transport of sensitive data like passwords. RADIUS supports two primary message categories: access packets for and (e.g., Access-Request, Access-Accept, Access-Reject) and accounting packets (e.g., Accounting-Request, Accounting-Response), each leveraging the same header format but distinguished by their Code values. This uniform structure facilitates interoperability across diverse network environments while relying on the —never transmitted over the network—for .

Attribute Value Pairs

Attribute Value Pairs (AVPs) form the flexible payload of RADIUS packets, consisting of a sequence of encoded attributes that carry , , and information between the Network Access Server (NAS) and the RADIUS server. These pairs are encoded in a Type-Length-Value (TLV) format, allowing for extensible data transmission within the variable-length portion of the packet following the fixed header. The AVP format begins with a one-octet Type field, which identifies the attribute (ranging from 0 to 255 for standard types), followed by a one-octet field specifying the total length of the AVP in octets (minimum 3, maximum 255). The Value field then occupies the remaining octets (up to 253), containing the attribute-specific data; if the actual value is shorter, the unused portion is padded with zeros, though only octets up to the specified are processed. AVPs are optional in some contexts but must appear in multiples if needed, and the packet's total length accounts for all AVPs following the 20-octet header. Encoding rules for AVP values vary by data type to ensure interoperability. Text strings are encoded as 1 to 253 octets of characters from ISO 10646, without null termination or padding beyond the Length. Binary strings treat the value as raw octets, also 1 to 253 long, with no interpretation imposed. IP addresses and similar 32-bit values use four octets in network byte order (most significant octet first), such as for IPv4 addresses. Integers are 32-bit unsigned values, similarly in network byte order, while multi-octet values like dates are represented as seconds since January 1, 1970 UTC. Padding ensures alignment but is ignored if it exceeds the Length field. Several standard AVPs are defined in the IETF specifications for core RADIUS operations. For instance, User-Name (Type 1) carries the user's identity as a text string, such as "user@," and is typically required in Access-Request packets if known. User-Password (Type 2) conveys the user's password as a string of 16 to 128 octets, encrypted using a and hashing for transmission in Access-Request messages. NAS-IP-Address (Type 4) specifies the of the NAS as a four-octet address value, mandatory in Access-Request packets from IPv4-enabled NAS devices. Service-Type (Type 6) indicates the type of service requested or granted as a 32-bit , with values like 2 for Framed (e.g., sessions) used in both Access-Request and Access-Accept packets. Framed-IP-Address (Type 8) assigns an IPv4 address to the user as a four-octet value, such as 192.0.2.1, and appears in Access-Accept responses or optionally in requests. In RADIUS protocol exchanges, AVPs serve to encapsulate essential data without fixed positions, enabling dynamic conveyance of user credentials like User-Name and User-Password in requests, as well as policies such as Service-Type and Framed-IP-Address in responses. They also report status information, for example, in Access-Reject or Access-Challenge packets, supporting the AAA framework's need for modular information transfer across diverse network access scenarios.
Attribute NameTypeValue TypeDescriptionExample Value
User-Name1String (1-253 octets)User's identity"[email protected]"
User-Password2String (16-128 octets, encrypted)Encrypted user passwordMD5-hashed "secret" with shared key
NAS-IP-Address4 (4 octets)NAS IPv4 address192.0.2.15
Service-Type6Integer (4 octets)Type of service2 (Framed)
Framed-IP-Address8 (4 octets)Assigned user IP198.51.100.44

Deployment Features

Roaming

RADIUS roaming enables authenticated users to access network services from foreign or visited networks by querying their home server for validation, rather than requiring local accounts at each provider. This mechanism supports user mobility across different administrative domains, where the local (NAS) in the visited network forwards authentication requests to the user's home server, typically through intermediary proxies or services. For instance, implementations like those from GRIC and demonstrate this by requests based on the user's format, ensuring centralized credential management at the home provider. In inter-domain operations, the home RADIUS server performs and on behalf of the visited network, facilitating . This process relies on the user's including a identifier (e.g., [email protected]) to direct queries to the appropriate . Such allows seamless validation without sharing sensitive user data between providers, as seen in early alliances like Network and Merit, which requests across interconnected ISPs. The primary benefits of RADIUS roaming include enhanced user mobility for applications like Wi-Fi and VPN access, reducing the need for multiple subscriptions and enabling global connectivity. For example, it supports seamless transitions between hotspots operated by different providers, improving service continuity for mobile users. However, challenges arise from latency introduced by cross-provider queries and proxy chains, which can delay authentication; some implementations mitigate this with caching mechanisms, such as three-day caches in systems like ChinaNet, though this trades off security for performance. In modern applications, RADIUS roaming integrates with Wi-Fi alliances like , providing global academic network access across thousands of institutions. leverages , EAP, and to route authentication requests hierarchically based on user realms, supporting millions of users with secure, privacy-preserving federated . This setup ensures visitors from participating networks can connect automatically to any worldwide, using their home credentials without local registration.

Realms

In RADIUS, a realm serves as a domain identifier appended to a username in the User-Name attribute, typically in the form of a Network Access Identifier (NAI) such as [email protected], where example.com denotes the realm responsible for authentication. This structure allows the Network Access Server (NAS) or an intermediate proxy to identify the appropriate authentication server without requiring prior knowledge of all possible usernames. The realm portion, defined as a UTF-8 encoded Fully Qualified Domain Name (FQDN), enables logical separation of administrative domains in multi-provider environments. When processing an Access-Request packet, the or examines the in the NAI to determine . If the matches a locally configured , the typically strips the from the username (e.g., converting [email protected] to user) and handles internally or forwards to a local . For remote realms, the full NAI is preserved and routed unchanged to the next-hop based on a pre-configured that maps realm suffixes to target addresses, ports, or DNS records; intermediate proxies must not modify the to maintain integrity. This process supports nested realms, such as [email protected], where rules can match hierarchical suffixes (e.g., falling back to us.example.com if no exact match exists), allowing scalable delegation in complex organizational structures. Configuration of realms occurs via proxy server rules that define matching patterns, such as exact realm names, suffixes, or regular expressions, to decide between local processing and remote forwarding. These rules often include options for attribute manipulation to strip or rewrite realms, with fallback mechanisms directing unmatched requests to a default realm or local authentication if no remote server is specified. For instance, a policy might route all requests ending in .example.com to a specific server group while treating realm-less usernames as belonging to a default local domain. Realms play a crucial role in enabling seamless by directing requests to the user's home server, even when the operates in a visited , thus supporting inter-domain without exposing full user details across proxies. This mechanism ensures efficient request delegation in federated environments, such as wireless consortia, where users from one authenticate via another's infrastructure.

Proxy Operations

In RADIUS, proxy operations enable intermediate servers to forward , , and requests and responses between network access servers () and remote RADIUS servers, facilitating scalable and distributed in large networks. A RADIUS server can function as a client, receiving packets from a NAS and relaying them to another RADIUS server or authority, while preserving the original packet's integrity except for modifications necessary for . This role is essential in environments where direct communication between endpoints is impractical due to or administrative boundaries. The forwarding process typically begins when a sends an Access-Request to a local , which examines the request—often parsing the username for a (e.g., "[email protected]")—to determine the destination based on configured policies or mappings. The then encapsulates and forwards the request to the appropriate remote , potentially modifying attributes to include routing information. Upon receiving a response (such as Access-Accept or Access-Reject) from the remote , the relays it back to the , ensuring that the response aligns with the original request's context. This process supports hierarchical networks by allowing requests to traverse multiple administrative domains without requiring end-to-end visibility. To maintain state across forwarding hops, proxies insert a Proxy-State attribute into outgoing requests, which carries opaque data for round-trip tracking and must be copied unmodified into the corresponding response before being returned upstream. In proxy chains, where multiple intermediate servers are involved—such as in complex federated setups—each proxy adds its own Proxy-State while preserving prior ones in order, then removes only its own upon response receipt to avoid bloating packets. This mechanism ensures reliable state propagation even in multi-hop topologies, though chains are limited in practice to prevent excessive . In (ISP) environments, operations are commonly employed by broker proxies to enable inter-provider , where a visiting user's request is routed from a local ISP's to the home ISP's for validation. This setup allows seamless access for mobile users across networks without bilateral agreements between every pair of providers. Additionally, proxies support load balancing by distributing requests across a pool of backend s, often using selection or to optimize performance and availability. Potential loops in proxy chains are mitigated through the use of a unique 8-bit Identifier field in each packet, which must match between request and response pairs, and by configuring with hop limits or realm-based rules to cap chain depth. These safeguards ensure that forwarding terminates appropriately, avoiding infinite in misconfigured deployments.

Extensions and Variants

Vendor-Specific Attributes

Vendor-Specific Attributes (VSAs) enable equipment vendors to extend the protocol with proprietary attributes that support specialized features not covered by standard Attribute Value Pairs (AVPs), while ensuring compatibility with the core protocol. Defined in RFC 2865, VSAs use Type 26 as the attribute type, followed by a length field (at least 7 octets) and a 4-octet Vendor-ID field that identifies the vendor, with the remaining octets containing vendor-specific data in a format defined by the vendor, often as subattributes with their own type, length, and value fields. This structure allows multiple VSAs within a single packet and permits servers to ignore unrecognized vendor data without disrupting or . To prevent conflicts with standard AVPs, vendors register unique Vendor-IDs through the (IANA), which assigns 32-bit values based on Private Enterprise Numbers under RFC 3575 guidelines, ensuring global uniqueness and enabling proper parsing in mixed environments. For instance, uses Vendor-ID 9 for its VSAs, including those that facilitate downloadable lists (ACLs) via the cisco-av-pair subattribute, which delivers ACL names or configurations to network access servers for dynamic enforcement during user sessions. employs Vendor-ID 311 for attributes supporting Windows integration, such as MS-CHAP-Challenge (Vendor-Type 11) and MS-CHAP-Response (Vendor-Type 1), which handle challenge-response and domain-specific processing in dial-up and VPN scenarios. Similarly, utilizes Vendor-ID 14823 for extensions, like the Aruba-User-Role VSA (Vendor-Type 1), which assigns user roles to define access policies on controllers. In multi-vendor deployments, interoperability challenges arise because VSAs are , requiring RADIUS proxies to transparently forward unrecognized attributes without modification to maintain end-to-end functionality. Failure to preserve VSAs during proxying can lead to policy misapplication or failures, particularly when combining equipment from different vendors like and , necessitating careful configuration of proxy rules and dictionary support on intermediaries. Diameter serves as the primary IETF successor to , designed to address its predecessor's limitations in scalability and reliability by supporting reliable transport protocols such as and SCTP, enabling stateful session management, and providing enhanced capabilities for modern networks including and infrastructures like the Evolved Packet Core (). Defined in RFC 6733, Diameter maintains backward compatibility with through gateways while introducing messaging and mechanisms, making it suitable for high-availability environments in . TACACS+, developed by as a alternative, emphasizes granular separate from and , allowing for finer control over user sessions compared to RADIUS's more integrated approach. Unlike RADIUS, which operates over for simplicity, TACACS+ uses for reliable, connection-oriented communication, and it encrypts the entire packet body to enhance during transmission. This protocol is particularly prevalent in Cisco-centric networks for device administration. Kerberos and OAuth complement RADIUS in enterprise and web-based environments but do not directly replace its AAA functions for network access. , a ticket-based authentication protocol standardized in RFC 4120, facilitates secure (SSO) within trusted domains like , often integrated with RADIUS for initial network authentication before issuing service tickets. Similarly, 2.0 (RFC 6749) provides delegated authorization for APIs and applications, enabling RADIUS-authenticated users to access resources without sharing credentials, though it focuses on authorization flows rather than full network . Despite advancements in protocols like , RADIUS persists widely in (via 802.1X/EAP) and VPN deployments due to its simplicity, low overhead, and entrenched ecosystem in legacy and mid-sized s.

Security Considerations

Protocol Security Mechanisms

The RADIUS protocol employs a as a symmetric key to authenticate communications between clients (such as network access servers) and s, ensuring that only authorized entities can participate in transactions. This secret, which is never transmitted over the , is used to compute that protect packet and for sensitive attributes. Specifically, the Request Authenticator in Access-Request packets is a 16-octet random value generated by the client to prevent replay attacks, while the Response Authenticator in server replies is an hash incorporating the packet contents, the Request Authenticator, and the shared secret. For attribute-level protections, the User-Password attribute is encrypted using the combined with the Request : the is padded to a multiple of 16 octets, then XORed segment-by-segment with repeated hashes of the concatenated with the Request . This obscures the in transit without providing full packet . Additionally, the Message-Authenticator Attribute Value Pair (AVP, type 80) provides integrity protection for packets by including an hash of the entire packet (with the attribute value zeroed) and the , particularly recommended for Access-Requests using methods like CHAP, ARAP, or EAP to prevent spoofing. In modern deployments, RADIUS security is enhanced through transport-layer wrappers such as RadSec, which encapsulates RADIUS over (TLS) using for encryption, mutual authentication via certificates, and reliable delivery, addressing the limitations of the original UDP-based protocol. Datagram TLS (DTLS) extends this to for low-latency scenarios, while can provide network-layer protection in environments requiring broader . The Packet Authenticator field further supports these mechanisms by validating response integrity against the . Best practices for implementing these mechanisms include using strong shared secrets of at least 32 characters, regularly rotating them (e.g., every 6-12 months or after potential exposure), and restricting RADIUS traffic to specific addresses or subnets via access control lists to limit exposure. Administrators should also avoid direct exposure by preferring TLS-secured transports like RadSec where feasible, and ensure secrets are stored securely without export in configurations.

Known Vulnerabilities and Mitigations

One significant historical vulnerability in the original RADIUS specification, RFC 2138, stemmed from potential weaknesses in the randomness of the Request Authenticator, a 16-octet field intended to prevent replay attacks but susceptible to prediction or reuse if implementations failed to generate sufficiently unpredictable values. This issue was addressed in RFC 2865, which explicitly mandates the Request Authenticator as a unique, random 16-octet number to enhance protection against active attacks, including replays. Despite this update, the protocol's reliance on for hashing the Response Authenticator and encrypting attributes like User-Password left it vulnerable to cryptanalytic advances. RADIUS's use of transport exacerbates denial-of-service () risks through packet spoofing, as attackers can forge source addresses to flood servers with bogus requests or inject disruptive packets without connection-oriented safeguards. Additionally, the mechanism, which protects sensitive attributes via MD5-based , enables dictionary attacks if the secret is weak or guessable, allowing offline cracking of captured packets to recover user passwords. Offline cracking is particularly feasible due to MD5's to collision and preimage attacks, especially when combined with known structures in RADIUS packets, enabling brute-force or -based recovery of credentials from sniffed traffic. A critical modern vulnerability, known as Blast-RADIUS (CVE-2024-3596), exploits flaws in /UDP's integrity checks under 2865, allowing a man-in-the-middle (MitM) attacker to forge Access-Accept responses from legitimate Access-Reject or Access-Challenge messages without knowing the . This attack leverages an improved chosen-prefix collision to inject a colliding attribute into the request, altering the response and granting unauthorized access in non-EAP modes such as , , and ; it does not affect EAP-based authentications or implementations mandating the Message-Authenticator attribute. The vulnerability impacts widely deployed systems in enterprise , Wi-Fi (e.g., 802.1X), VPNs, and even cellular authentication, as the protocol's homegrown -based authentication lacks robust . To mitigate these issues, administrators should enforce the Message-Authenticator attribute (RFC 2869) as the first attribute in all RADIUS requests and responses, which provides an MD5-based integrity check that thwarts forgery attempts like Blast-RADIUS by validating the entire packet against the shared secret. For enhanced confidentiality and server authentication, adopting RadSec (RADIUS over TLS, RFC 6614) or DTLS (RFC 7360) encapsulates traffic in TLS or DTLS, respectively, preventing MitM, spoofing, and offline sniffing while supporting modern cryptography. In high-security environments, migrating to the Diameter protocol (RFC 6733) is recommended, as it addresses RADIUS's UDP limitations with reliable TCP/SCTP transport, mandatory IPsec or TLS for hop-by-hop and end-to-end security, and stronger failure handling to reduce DoS exposure. As of November 2025, the IETF Extensions (RADEXT) is advancing an Internet-Draft titled "Deprecating Insecure Practices in " to formally address ongoing security shortcomings exposed by Blast-. This active draft (version -08, last updated November 6, 2025) deprecates insecure transports like / and / outside trusted networks, mandates the use of /TLS or /DTLS for all deployments, requires the Message-Authenticator attribute in Access-Request packets, and deprecates the authentication method due to its inherent weaknesses. It also introduces additional mitigations such as constant-time comparisons and delayed Access-Reject responses to further harden implementations against collision-based attacks. Implementers and administrators are encouraged to align with these forthcoming guidelines once standardized.

History and Standards

Development History

The RADIUS protocol originated in 1991 when Livingston Enterprises developed it as an authentication and accounting solution for their PortMaster series of Unix-based dial-up access servers, initially to support connections between universities under a grant awarded to Merit Network. Livingston responded to a from Merit by proposing a centralized system to manage dispersed pools efficiently. The protocol's formal standardization began with the first IETF Internet-Draft submitted in April 1996 by the RADIUS Working Group, leading to its publication as Proposed Standards in RFC 2058 (Remote Authentication Dial In User Service) and RFC 2059 () in 1997. These were quickly obsoleted in April 1997 by RFC 2138 and RFC 2139, which refined the protocol's structure for better interoperability in network access scenarios. The current standards, RFC 2865 and RFC 2866, were published in June 2000, updating the specifications to incorporate encoding, standardized integer formats, and additional attributes while maintaining backward compatibility. Adoption of RADIUS expanded significantly in the 2000s alongside the growth of broadband internet and networks, becoming a for centralized in ISP environments and enterprise access control. Its integration with port-based , as detailed in RFC 3580, enabled secure using (EAP) methods, influencing widespread deployment in LANs. Recent developments have extended RADIUS's capabilities to modern networks, including support through attributes defined in RFC 3162 (2001) for carrying IPv6 addresses and prefixes in authentication exchanges. Change of Authorization (CoA) functionality, allowing dynamic session modifications without reconnection, was formalized in RFC 5176 (January 2008), building on earlier extensions to enhance real-time policy enforcement. Despite the emergence of as its intended successor for more scalable functions, RADIUS maintains ongoing relevance in consumer and enterprise equipment where Diameter support remains limited, ensuring its continued use in diverse access technologies.

Standards Documentation

The primary standards for the Remote Authentication Dial In User Service () protocol are defined in a series of () Request for Comments (RFCs), which specify the core protocol mechanics, extensions, and registries for interoperability. These documents establish RADIUS as a client-server protocol operating over for , , and () in network access scenarios.

Core Protocol RFCs

The foundational specifications for RADIUS authentication and accounting were initially outlined in pre-2000 RFCs but have been obsoleted by updated standards to address ambiguities and enhance clarity. 2058 (1997) and 2059 (1997) provided the earliest definitions, while 2138 (1997) and 2139 (1997) refined the protocol for and , respectively; these were superseded to improve attribute handling and considerations. RFC 2865, published in June 2000 as a Draft Standard, defines the core and , obsoleting RFC 2138. It specifies the packet format consisting of a one-octet , one-octet Identifier, two-octet , 16-octet , and variable-length Attributes (Attribute-Value Pairs or AVPs). Key codes include Access-Request (1), Access-Accept (2), Access-Reject (3), and Access-Challenge (11). AVPs are extensible three-tuples (Type octet, Length octet, Value field) supporting up to 253 attributes, with examples like User-Name (Type 1) and NAS-IP-Address (Type 4); the uses port for transport. RFC 2866, also published in June 2000 as an Informational , defines RADIUS accounting, obsoleting RFC 2139. It introduces accounting-specific codes: Accounting-Request (4) and Accounting-Response (5), using the same packet structure as RFC 2865 but focused on session for billing and auditing. Key AVPs include Acct-Status-Type (Type 40) for start/stop/interim updates and Acct-Session-Id (Type 44) for unique session tracking.

Extension RFCs

Several RFCs extend the core protocol with additional functionality while maintaining compatibility. RFC 2867 (June 2000, Informational) adds accounting modifications for tunnel protocol support, introducing new Acct-Status-Type values (e.g., Tunnel-Start=9, Tunnel-Stop=10) and AVPs like Acct-Tunnel-Connection (Type 68) to enable usage tracking in compulsory tunneling scenarios such as L2TP or PPTP. RFC 2868 (June 2000, Informational) defines AVPs for protocol support in and , including Tunnel-Type (Type 64) for selection (e.g., PPTP=1, L2TP=3) and Tunnel-Server-Endpoint (Type 67) for endpoint addressing, facilitating dynamic configuration. RFC 2869 (June 2000, Informational) provides general extensions to RADIUS, adding AVPs such as EAP-Message (Type 79) for integration, Message-Authenticator (Type 80) for enhanced packet integrity, and Acct-Interim-Interval (Type 85) for periodic updates. RFC 5176 (January 2008, Proposed Standard) specifies dynamic authorization extensions, including Change-of-Authorization (CoA) and Disconnect messages using codes 40 (Disconnect-Request), 41 (Disconnect-ACK), 42 (Disconnect-NAK), 43 (CoA-Request), 44 (CoA-ACK), and 45 (CoA-NAK); it operates over UDP port 3799 and supports session termination or attribute updates without full re-authentication.

Dictionaries, Registries, and Updates

The Internet Assigned Numbers Authority (IANA) maintains registries for RADIUS components to ensure global interoperability, as guided by RFC 3575 (July 2003, Informational), which outlines procedures for registering packet codes, AVP types (1-255), and vendor-specific identifiers. The AVP registry includes standard types like those in RFC 2865, with over 100 assigned as of 2025; the vendor ID registry tracks private extensions under AVP Type 26 (Vendor-Specific). Recent updates include RFC 6614 (May 2012, Experimental), which defines over (TLS) for encrypted transport, using port 2083 and specifying TLS handshakes for between RADIUS entities to mitigate risks. Additionally, RFC 8044 (January 2017, Proposed Standard) formalizes data types for AVPs (e.g., string, , enumerated), aligning implementations with established practices from RFC 6158. Further extensions include RFC 8559 (April 2019, Proposed Standard), which adds support for dynamic authorization proxying in realm-based scenarios, updating RFC 5176; RFC 8658 (November 2019, Standards Track), defining attributes for softwire mechanisms based on Address plus for IPv4-over-IPv6 transitions; and RFC 9765 (April 2025, Standards Track), which introduces for over TLS or DTLS to enhance security without dependency.

References

  1. [1]
    Examine how the RADIUS Works - Cisco
    RADIUS is a Client/Server Protocol ... The RADIUS client is typically a NAS, and the RADIUS server is usually a daemon process that runs on a UNIX or Windows NT ...
  2. [2]
    What is RADIUS (Remote Authentication Dial-In User Service)?
    Sep 30, 2021 · RADIUS (Remote Authentication Dial-In User Service) is a client-server protocol and software that enables remote access servers to communicate with a central ...
  3. [3]
    The RADIUS Protocol | FreeRADIUS Documentation
    RADIUS, which stands for "Remote Authentication Dial In User Service", is a network protocol which controls user network access via authentication and ...
  4. [4]
    RFC 2865 - Remote Authentication Dial In User Service (RADIUS)
    This document describes a protocol for carrying authentication, authorization, and configuration information between a Network Access Server
  5. [5]
    Compare TACACS + and RADIUS - Cisco
    Cisco seriously evaluated RADIUS as a security protocol before it developed TACACS+. Many features were included in the TACACS+ protocol to meet new security ...
  6. [6]
  7. [7]
  8. [8]
  9. [9]
  10. [10]
  11. [11]
  12. [12]
  13. [13]
    Authenticating Users with LDAP - FreeRADIUS
    We strongly recommend having the LDAP database return the userPassword field to FreeRADIUS, so that FreeRADIUS can authenticate the user.
  14. [14]
  15. [15]
    RFC 3579 - RADIUS (Remote Authentication Dial In User Service ...
    This document defines Remote Authentication Dial In User Service (RADIUS) support for the Extensible Authentication Protocol (EAP), an authentication framework
  16. [16]
    RFC 2548 - Microsoft Vendor-specific RADIUS Attributes
    This document describes the set of Microsoft vendor-specific RADIUS attributes. These attributes are designed to support Microsoft proprietary dial-up ...
  17. [17]
  18. [18]
    RFC 4675 - RADIUS Attributes for Virtual LAN and Priority Support
    RFC 4675 proposes RADIUS attributes for dynamic Virtual LAN assignment and prioritization, for use in provisioning access to IEEE 802 local area networks.Missing: timeout QoS
  19. [19]
  20. [20]
  21. [21]
  22. [22]
  23. [23]
  24. [24]
  25. [25]
  26. [26]
    RFC 5176 - Dynamic Authorization Extensions to Remote ...
    This document describes a RADIUS extension for dynamic changes to user sessions, including disconnecting users and changing authorizations.Missing: management | Show results with:management
  27. [27]
  28. [28]
  29. [29]
  30. [30]
  31. [31]
  32. [32]
    RFC 2194: Review of Roaming Implementations
    ### Summary of RADIUS Roaming Concept from RFC 2194
  33. [33]
    RFC 7593: The eduroam Architecture for Network Roaming
    ### Summary of RADIUS Integration with eduroam for Global Academic Roaming (RFC 7593)
  34. [34]
  35. [35]
    Realm Names | Microsoft Learn
    Jan 12, 2023 · The User-Name RADIUS attribute is a character string that typically contains a user account location and a user account name.
  36. [36]
  37. [37]
  38. [38]
  39. [39]
  40. [40]
  41. [41]
  42. [42]
    RADIUS Types - Internet Assigned Numbers Authority
    Apr 17, 2025 · RADIUS Attribute Types ; 27, Session-Timeout, integer ; 28, Idle-Timeout, integer ; 29, Termination-Action, enum ; 30, Called-Station-Id, text ...<|control11|><|separator|>
  43. [43]
    RADIUS Attributes Configuration Guide - Cisco
    Feb 15, 2016 · A defined code used to identify a particular vendor. Code 9 defines Cisco VSAs, 311 defines Microsoft VSAs, and 529 defines Ascend VSAs. Sub- ...
  44. [44]
    [PDF] The Aruba Networks PowerPoint Presentation Template
    VENDOR Aruba 14823. VSA Aruba Aruba-Role. 1 string. VSA Aruba Aruba-User-Role. 1 string. VSA Aruba Aruba-Vlan. 2 integer. VSA Aruba Aruba-User-Vlan.
  45. [45]
    RADIUS Server Authentication with VSA - HPE Aruba Networking
    An external RADIUS server authenticates users and returns a VSA, which specifies the user's network role. The user is then placed into that role.
  46. [46]
    RADIUS Tunnel Preference for Load Balancing and Fail-over - Cisco
    In a multivendor network environment, using VSA on a RADIUS server can cause interoperability issues among network access servers (NASs) manufactured by ...
  47. [47]
    RFC 6733 - Diameter Base Protocol - IETF Datatracker
    The Diameter base protocol provides an Authentication, Authorization, and Accounting (AAA) framework for network access or IP mobility.
  48. [48]
    RADIUS vs. Diameter Protocol - Rublon
    Sep 19, 2022 · RADIUS is a protocol mainly used to provide centralized access to a network, while Diameter is a protocol that is mainly used in the telecommunication industry.
  49. [49]
    RFC 6614 - Transport Layer Security (TLS) Encryption for RADIUS
    This document specifies a transport profile for RADIUS using Transport Layer Security (TLS) over TCP as the transport protocol.
  50. [50]
    Embracing SAML and Best Practices for Enhanced Security - CyberArk
    Best Practices for Securing RADIUS · Harden the VPN Server or Application · Use Strong Shared Secrets · Use Strong Passwords and Multi-Factor Authentication (MFA).
  51. [51]
    Shared Secrets - RADIUS [Book] - O'Reilly
    To strengthen security and increase transactional integrity, the RADIUS protocol uses the concept of shared secrets. Shared secrets are values generated at ...Missing: mechanism | Show results with:mechanism
  52. [52]
    RFC 2138: Remote Authentication Dial In User Service (RADIUS)
    This document describes a protocol for carrying authentication, authorization, and configuration information between a Network Access Server
  53. [53]
    [PDF] RADIUS/UDP Considered Harmful - USENIX
    We have tested our attack against common RADIUS client and server implementations and use cases. 7430 33rd USENIX Security Symposium. USENIX Association. Page 4 ...Missing: cracking | Show results with:cracking
  54. [54]
    An Analysis of the RADIUS Authentication Protocol - Joshua Hill
    Nov 24, 2001 · The RADIUS specification should require each RADIUS client use a different Shared Secret. It should also require the shared secret to be a ...
  55. [55]
    RADIUS/UDP vulnerable to improved MD5 collision attack
    Jul 9, 2024 · In this post, we present an improved attack against MD5 and use it to exploit all authentication modes of RADIUS/UDP apart from those that use EAP (Extensible ...
  56. [56]
  57. [57]
    BLAST RADIUS
    Jul 26, 2024 · Blast-RADIUS is a vulnerability in the RADIUS protocol, used for authentication, that allows a man-in-the-middle attack to forge a valid  ...
  58. [58]
    RFC 7360 - Datagram Transport Layer Security (DTLS) as a ...
    Similarly, any RADIUS traffic failing authentication vector or Message-Authenticator validation means that two parties do not have a common shared secret ...Missing: migration | Show results with:migration
  59. [59]
    What Is the RADIUS Protocol? | Fortinet
    RADIUS was developed by Livingston Enterprises, Inc. in 1991 and evolved to become the standard for the Internet Engineering Task Force (IETF). RADIUS was first ...
  60. [60]
    Remote Authentication Dial-In User Service (radius) - IETF Datatracker
    Submit revised Radius Extensions document as Internet-Draft. Apr 1996, Submit Radius protocol Internet-Draft to IESG for consideration as a Proposed Standard.Missing: first | Show results with:first
  61. [61]
    RFC 2058 - Remote Authentication Dial In User Service (RADIUS)
    This document describes a protocol for carrying authentication, authorization, and configuration information between a Network Access Server
  62. [62]
    RFC 2138 - Remote Authentication Dial In User Service (RADIUS)
    This document describes a protocol for carrying authentication, authorization, and configuration information between a Network Access Server
  63. [63]
    The History of RADIUS Authentication Protocol: IEEE 802.1X
    Let's examine a chronology of RADIUS' evolution during the past decades. The Livingston Corporation developed the RADIUS protocol to allow the Merit Computer ...
  64. [64]
  65. [65]
    RFC 2139 - RADIUS Accounting - IETF Datatracker
    RFC 2139 describes a protocol for carrying accounting information between a Network Access Server and a shared Accounting Server, extending the RADIUS protocol.
  66. [66]
    RFC 2866 - RADIUS Accounting - IETF Datatracker
    RFC 2866 describes a protocol for carrying accounting information between a Network Access Server and a shared Accounting Server, extending RADIUS for  ...
  67. [67]
    RFC 2867 - RADIUS Accounting Modifications for Tunnel Protocol ...
    This document defines new RADIUS accounting Attributes and new values for the existing Acct-Status-Type Attribute [1] designed to support the provision of ...
  68. [68]
    RFC 2868: RADIUS Attributes for Tunnel Protocol Support
    **Summary of RFC 2868 - RADIUS Attributes for Tunnel Protocol Support**
  69. [69]
    RFC 2869 - RADIUS Extensions - IETF Datatracker
    RFC 2869 describes additional attributes for carrying authentication, authorization, and accounting information between a NAS and a shared Accounting Server ...
  70. [70]
    RFC 3575 - IANA Considerations for RADIUS (Remote ...
    This document provides guidance to the Internet Assigned Numbers Authority (IANA) regarding registration of values related to the Remote Authentication Dial In ...Missing: AVP | Show results with:AVP
  71. [71]
    RADIUS Types - Internet Assigned Numbers Authority
    Apr 17, 2025 · Last Updated 2025-04-17 Note. The RFC "Remote Authentication Dial In User Service (RADIUS)" [RFC2865] defines a Packet Type Code and an ...
  72. [72]
    RFC 8044 - Data Types in RADIUS - IETF Datatracker
    This document updates the specifications to better follow established practice. We do this by naming the data types defined in RFC 6158.