RADIUS

From Wikipedia, the free encyclopedia

Jump to: navigation, search

Remote Authentication Dial In User Service (RADIUS) is a networking protocol that provides centralized access, authorization and accounting management for people or computers to connect and use a network service. When a person or device connects to a network often "Authentication" is required. Networks or services not requiring authentication are said to be anonymous or open.

Connecting a computer to a telecommunication network raises several problems for the network owner or the telco. The telco first needs to know who is operating the computer. Once the user has been identified, the telco needs to know what facilities to allow the user to access. At the same time the telco needs to collect billing data relating to the time or capacity that was consumed. RADIUS is a protocol used by many common open source and proprietary systems to control these processes. RADIUS based systems are commonly implemented by telcos to identify their customers, and by companies to identify their remote employees.

Once authenticated, RADIUS also determines what rights or privileges the person or computer is "Authorized" to perform and makes a record of this access in the "Accounting" feature of the server. The support of Authentication, Authorization and Accounting is referred to as the AAA (said triple A) process.

Because of the broad support and the ubiquitous nature of the RADIUS protocol it is often used by ISPs, wireless networks, integrated e-mail services, access points, network ports, web servers or any provider needing a well supported AAA server.

RADIUS is commonly used by ISPs and corporations managing access to the Internet or internal networks employing a variety of networking technologies, including modems, DSL, wireless and VPNs.

Contents

[edit] AAA

RADIUS servers use the AAA concept to manage network access in the following two-step process, also known as an "AAA transaction".


Authentication and Authorization characteristics in RADIUS are described in RFC 2865 while Accounting is described by RFC 2866.


The user or machine (referred to as Radius clients) sends a request to a Network Access Server (NAS) to gain access to a particular network resource using access credentials. The credentials are passed to the NAS device via the link-layer protocol - for example, Point-to-Point Protocol (PPP) in the case of many dialup or DSL providers.

In turn, the NAS sends a RADIUS Access Request message to the RADIUS server, requesting authorization to grant access via the RADIUS protocol.

This request includes access credentials, typically in the form of username and password or security certificate provided by the user. Additionally, the request contains information which the NAS knows about the user, such as its network address or phone number, and information regarding the user's physical point of attachment to the NAS.

The RADIUS server checks that the information is correct using authentication schemes like PAP, CHAP or EAP. The user's proof of identification is verified, along with, optionally, other information related to the request, such as the user's network address or phone number, account status and specific network service access privileges. Historically, RADIUS servers checked the user's information against a locally stored flat file database. Modern RADIUS servers can do this, or can refer to external sources - commonly SQL, Kerberos, LDAP, or Active Directory servers - to verify the user's credentials.

The RADIUS server then returns one of three responses to the NAS; a "Nay" (Access Reject), "Challenge" (Access Challenge) or "Yea" (Access Accept).

  • Access Reject - The user is unconditionally denied access to all requested network resources. Reasons may include failure to provide proof of identification or an unknown or inactive user account.
  • Access Challenge - Requests additional information from the user such as a secondary password, PIN, token or card. Access Challenge is also used in more complex authentication dialogs where a secure tunnel is established between the user machine and the Radius Server in a way that the access credentials are hidden from the NAS.
  • Access Accept - The user is granted access. Once the user is authenticated, the RADIUS server will often check that the user is authorized to use the network service requested. A given user may be allowed to use a company's wireless network, but not its VPN service, for example. Again, this information may be stored locally on the RADIUS server, or may be looked up in an external source like LDAP or Active Directory.

Authorization attributes are conveyed to the NAS stipulating terms of access to be granted. For example: the following authorization attributes may be included in an Access-Accept.

  • The specific IP address to be assigned to the user
  • The address pool from which the user's IP should be chosen
  • The maximum length that the user may remain connected
  • An access list, priority queue or other restrictions on a user's access
  • L2TP parameters
  • VLAN parameters
  • Quality of Service (QoS) parameters

[edit] Accounting

Accounting is described in RFC 2866.

  • When network access is granted to the user by the NAS, an Accounting Start request is sent by the NAS to the RADIUS server to signal the start of the user's network access. "Start" records typically contain the user's identification, network address, point of attachment and a unique session identifier.
  • Periodically, Interim Accounting records may be sent by the NAS to the RADIUS server, to update it on the status of an active session. "Interim" records typically convey the current session duration and information on current data usage.
  • Finally, when the user's network access is closed, the NAS issues a final Accounting Stop record to the RADIUS server, providing information on the final usage in terms of time, packets transferred, data transferred, reason for disconnect and other information related to the user's network access.

The primary purpose of this data is that the user can be billed accordingly; the data is also commonly used for statistical purposes and for general network monitoring.

[edit] Properties of RADIUS

The RADIUS protocol does not transmit passwords in cleartext between the NAS and RADIUS server (not even with PAP protocol). Rather, a shared secret is used along with the MD5 hashing algorithm to obfuscate passwords. Because MD5 is not considered to be a very strong protection of the user's credentials, additional protection - such as IPsec tunnels - should be used to further encrypt the RADIUS traffic. The user's credentials are the only part protected by RADIUS itself, but other user-specific attributes passed by RADIUS may be considered sensitive or private information as well. Please refer to the references for more details on this subject.

RADIUS is a common authentication protocol utilized by the IEEE 802.1X security standard (often used in wireless networks). Although RADIUS was not initially intended to be a wireless security authentication method, it improves the WEP encryption key standard, in conjunction with other security methods such as EAP-PEAP.

RADIUS is extensible; many vendors of RADIUS hardware and software implement their own variants using Vendor-Specific Attributes (VSAs).

RADIUS has been officially assigned UDP ports 1812 for RADIUS Authentication and 1813 for RADIUS Accounting by the Internet Assigned Number Authority (IANA) however before IANA allocation ports 1645 - Authentication and 1646 - Accounting were used unofficially and became the default ports assigned by many RADIUS Client/Server implementations of the time. The tradition of using 1645 and 1646 for backwards compatibility continues to this day. For this reason many RADIUS Server implementations monitor both sets of UDP ports for RADIUS requests. Microsoft RADIUS servers default to 1812 and 1813 but Cisco devices default to the traditional 1645 and 1646 ports. Juniper Networks' RADIUS servers also default to 1645 and 1646.

RADIUS is used by RSA SecurID to enable strong authentication for access control; products such as PhoneFactor add two-factor authentication to legacy RADIUS applications that typically only support username and password authentication.

RADIUS is widely used by VoIP service providers. It is used to pass login credentials of a SIP end point (like a broadband phone) to a SIP registrar using digest authentication, and then to RADIUS server using RADIUS. Sometimes it is also used to collect call detail records (CDRs) later used, for instance, to bill customers for international long distance.

RADIUS was originally specified in an RFI by Merit Network in 1991 to control dial-in access to NSFnet. Livingston Enterprises responded to the RFI with a description of a RADIUS server. Merit Network awarded the contract to Livingston Enterprises that delivered their PortMaster series of Network Access Servers and the initial RADIUS server to Merit. RADIUS was later (1997) published as RFC 2058 and RFC 2059 (current versions are RFC 2865 and RFC 2866). Now, several commercial and open-source RADIUS servers exist. Features can vary, but most can look up the users in text files, LDAP servers, various databases, etc. Accounting records can be written to text files, various databases, forwarded to external servers, etc. SNMP is often used for remote monitoring. RADIUS proxy servers are used for centralized administration and can rewrite RADIUS packets on the fly (for security reasons, or to convert between vendor dialects).

The Diameter protocol is the planned replacement for RADIUS. Diameter uses SCTP or TCP while RADIUS uses UDP as the transport layer.

[edit] Roaming

RADIUS is commonly used to facilitate roaming between ISPs, for example by companies which provide a single global set of credentials that are usable on many public networks. RADIUS facilitates this by the use of realms, which identify where the RADIUS server should forward the AAA requests for processing.

[edit] Realms

A realm is commonly appended to a user's user name and delimited with an '@' sign, resembling an email address domain name. This is known a postfix notation for the realm. Another common usage is prefix notation, which involves prepending the realm to the username and using '\' as a delimiter. a Modern RADIUS servers allow any character to be used as a realm delimiter, although in practice '@' and '\' are usually used.

Realms can also be compounded using both prefix and postfix notation, to allow for complicated roaming scenarios; for example, somedomain.com\username@anotherdomain.com could be a valid username with two realms.

Although realms often resemble email domains, it is important to note that realms are in fact arbitrary text and need not contain real domain names.

[edit] Proxy operations

When a RADIUS server receives an AAA request for a user name containing a realm, the server will reference a table of configured realms. If the realm is known, the server will then proxy the request to the configured home server for that domain. The behaviour of the proxying server regarding the removal of the realm from the request ("stripping") is configuration-dependent on most servers. In addition, the proxying server can be configured to add, remove or rewrite AAA requests when they are proxied.

[edit] Security

Roaming with RADIUS exposes the users to various security and privacy concerns. Some EAP methods establish a secure tunnel between an authenticator and the home AAA server before the transmission of sensitive data, providing relief for most of those concerns. In these cases, there is sometimes an outer identity in clear text transmitted outside the EAP tunnel - visible to proxies so they can route packets - which doesn't have to reveal much about the user's true identity, and an inner identity that does, which is transmitted inside the secure EAP tunnel.

More generally, some roaming partners establish a secure tunnel between the RADIUS servers to ensure that users' credentials cannot be intercepted while being proxied across the internet. This is a concern as the encyption built into RADIUS is considered insecure.

[edit] Standards

The RADIUS protocol is currently defined in:

  • RFC 2865 Remote Authentication Dial In User Service (RADIUS)
  • RFC 2866 RADIUS Accounting

Other relevant RFCs are:

  • RFC 2548 Microsoft Vendor-specific RADIUS Attributes
  • RFC 2607 Proxy Chaining and Policy Implementation in Roaming
  • RFC 2618 RADIUS Authentication Client MIB
  • RFC 4668 RADIUS Authentication Client MIB for IPv6 (Obsoletes: RFC 2618)
  • RFC 2619 RADIUS Authentication Server MIB
  • RFC 4669 RADIUS Authentication Server MIB for IPv6 (Obsoletes: RFC 2619)
  • RFC 2620 RADIUS Accounting Client MIB
  • RFC 4670 RADIUS Accounting Client MIB for IPv6 (Obsoletes: RFC 2620)
  • RFC 2621 RADIUS Accounting Server MIB
  • RFC 4671 RADIUS Accounting Server MIB for IPv6 (Obsoletes: RFC 2621)
  • RFC 2809 Implementation of L2TP Compulsory Tunneling via RADIUS
  • RFC 2867 RADIUS Accounting Modifications for Tunnel Protocol Support
  • RFC 2868 RADIUS Attributes for Tunnel Protocol Support
  • RFC 2869 RADIUS Extensions
  • RFC 2882 Network Access Servers Requirements: Extended RADIUS Practices
  • RFC 3162 RADIUS and IPv6
  • RFC 3575 IANA Considerations for RADIUS
  • RFC 5176 Dynamic Authorization Extensions to RADIUS (Obsoletes: RFC 3576)
  • RFC 3579 RADIUS Support for EAP (Updates: RFC 2869)
  • RFC 3580 IEEE 802.1X RADIUS Usage Guidelines
  • RFC 4014 RADIUS Attributes Suboption for the DHCP Relay Agent Information Option
  • RFC 4372 Chargeable User Identity
  • RFC 5090 RADIUS Extension for Digest Authentication (Obsoletes: RFC 4590)
  • RFC 4675 RADIUS Attributes for Virtual LAN and Priority Support
  • RFC 4679 DSL Forum Vendor-Specific RADIUS Attributes
  • RFC 4818 RADIUS Delegated-IPv6-Prefix Attribute
  • RFC 4849 RADIUS Filter Rule Attribute
  • RFC 5080 Common RADIUS Implementation Issues and Suggested Fixes

[edit] External links

Personal tools