Criteria for Evaluating Network Access Server Protocols
A checklist of what an authentication, authorization and accounting protocol must do for network access servers.
Beadles, M. and D. Mitton, "Criteria for Evaluating Network Access Server Protocols", RFC 3169, DOI 10.17487/RFC3169, September 2001, <https://www.rfc-editor.org/info/rfc3169>.
@misc{rfc3169,
series = {Request for Comments},
number = 3169,
howpublished = {RFC 3169},
publisher = {RFC Editor},
doi = {10.17487/RFC3169},
url = {https://www.rfc-editor.org/info/rfc3169},
author = {M. Beadles and D. Mitton},
title = {{Criteria for Evaluating Network Access Server Protocols}},
pagetotal = 17,
year = 2001,
month = sep,
} RFC text
Contents
Network Working Group M. Beadles
Request for Comments: 3169 SmartPipes, Inc.
Category: Informational D. Mitton
Nortel Networks
September 2001
Criteria for Evaluating Network Access Server Protocols
Status of this Memo
This memo provides information for the Internet community. It does
not specify an Internet standard of any kind. Distribution of this
memo is unlimited.
Copyright Notice
Copyright (C) The Internet Society (2001). All Rights Reserved.
Abstract
This document defines requirements for protocols used by Network
Access Servers (NAS).
1. Requirements language
In this document, the key words "MAY", "MUST, "MUST NOT", "optional",
"recommended", "SHOULD", and "SHOULD NOT", are to be interpreted as
described in [KEYWORDS].
2. Introduction
This document defines requirements for protocols used by Network
Access Servers (NAS). Protocols used by NAS's may be divided into
four spaces: Access protocols, Network protocols, AAA protocols, and
Device Management protocols. The primary focus of this document is
on AAA protocols.
The reference model of a NAS used by this document, and the analysis
of the functions of a NAS which led to the development of these
requirements, may be found in [NAS-MODEL].
3. Access Protocol Requirements
There are three basic types of access protocols used by NAS's. First
are the traditional telephony-based access protocols, which interface
to the NAS via a modem or terminal adapter or similar device. These
protocols typically support asynchronous or synchronous PPP [PPP]
carried over a telephony protocol. Second are broadband pseudo-
telephony access protocols, which are carried over xDSL or cable
modems, for example. These protocols typically support an
encapsulation method such as PPP over Ethernet [PPPOE]. Finally are
the virtual access protocols used by NAS's that terminate tunnels.
One example of this type of protocol is L2TP [L2TP].
It is a central assumption of the NAS model used here that a NAS
accepts multiple point-to-point links via one of the above access
protocols. Therefore, at a minimum, any NAS access protocol MUST be
able to carry PPP. The exception to this requirement is for NAS's
that support legacy text login methods such as telnet [TELNET],
rlogin, or LAT. Only these access protocols are exempt from the
requirement to support PPP.
4. Network Protocol Requirements
The network protocols supported by a NAS depend entirely on the kind
of network to which a NAS is providing access. This document does
not impose any additional requirements on network protocols beyond
the protocol specifications themselves. For example, if a NAS that
serves a routed network includes internet routing functionality, then
that NAS must adhere to [ROUTING-REQUIREMENTS], but there are no
additional protocol requirements imposed by virtue of the device
being a NAS.
5. AAA Protocol Requirements
5.1. General protocol characteristics
There are certain general characteristics that any AAA protocol used
by NAS's must meet. Note that the transport requirements for
authentication/authorization are not necessarily the same as those
for accounting/auditing. An AAA protocol suite MAY use the same
transport and protocol for both functions, but this is not strictly
required.
5.1.1. Transport requirements
5.1.1.1. Transport independence
The design of the AAA protocol MUST be transport independent.
Existing infrastructures use UDP-based protocols [RADIUS], gateways
to new protocols must be practical to encourage migration. The
design MUST comply with congestion control recommendations in RFC
2914 [CONGEST].
5.1.1.2. Scalability
Very large scale NAS's that serve up to thousands of simultaneous
sessions are now being deployed. And a single server system may
service a large number of ports. This means that, in the extreme,
there may be an almost constant exchange of many small packets
between the NASes and the AAA server. An AAA protocol transport
SHOULD support being optimized for a long-term exchange of small
packets in a stream between a pair of hosts.
The protocol MUST be designed to support a large number of ports,
clients, and concurrent sessions. Examples of poor design would
include message identifiers which values are so small that queues and
reception windows wrap under load, unique session identifier ranges
that are so small that they wrap within the lifetime of potential
long sessions, counter values that cannot accommodate reasonable
current and future bandwidth usage, and computational processes with
high overhead that must be performed frequently.
5.1.1.3. Support for Multiple AAA Servers and Failure Recovery
In order to operationally support large loads, load balancing and
fail-over to multiple AAA servers will be required. The AAA protocol
MUST provide for NAS's to balance individual AAA requests between two
or more AAA servers. The load balancing mechanism SHOULD be built in
to the AAA protocol itself.
The AAA protocol MUST be able to detect a failure of the transport
protocol to deliver a message or messages within a known and
controllable time period, so it can engage retransmission or server
fail-over processes. The reliability and robustness of
authentication requests MUST be predictable and configurable.
The AAA protocol design MUST NOT introduce a single point of failure
during the AAA process. The AAA protocol MUST allow any sessions
between a NAS and a given AAA server to fail-over to a secondary
server without loss of state information. This fail-over mechanism
SHOULD be built in to the AAA protocol itself.
5.1.1.4. Support for Multiple Administrative Domains
NAS's operated by one authority provide network access services for
clients operated by another authority, to network destinations
operated by yet another authority. This type of arrangement is of
growing importance; for example, dial roaming is now a nearly
ubiquitous service. Therefore, the AAA protocol MUST support AAA
services that travel between multiple domains of authority. The AAA
protocol MUST NOT use a model that assumes a single domain of
authority.
The AAA protocol MUST NOT dictate particular business models for the
relationship between the administrative domains. The AAA protocol
MUST support proxy, and in addition SHOULD support other multi-domain
relationships such as brokering and referral.
The AAA protocol MUST also meet the protocol requirements specified
in [ROAMING-REQUIREMENTS].
5.1.2. Attribute-Value Protocol Model
Years of operational experience with AAA protocols and NAS's has
proven that the Attribute-Value protocol model is an optimal
representation of AAA data. The protocol SHOULD use an Attribute-
Value representation for AAA data. This document will assume such a
model. Even if the AAA protocol does not use this as an on-the-wire
data representation, Attribute-Value can serve as abstraction for
discussing AAA information.
Experience has also shown that attribute space tends to run out
quickly. In order to provide room for expansion in the attribute
space, the AAA protocol MUST support a minimum of 64K Attributes (16
bits), each with a minimum length of 64K (16 bits).
5.1.2.1. Attribute Data Types
The AAA protocol MUST support simple attribute data types, including
integer, enumeration, text string, IP address, and date/time. The
AAA protocol MUST also provide some support for complex structured
data types. Wherever IP addresses are carried within the AAA
protocol, the protocol MUST support both IPv4 and IPv6 [IPV6]
addresses. Wherever text information is carried within the AAA
protocol, the protocol MUST comply with the IETF Policy on Character
Sets and Languages [RFC 2277].
5.1.2.2. Minimum Set of Attributes
At a minimum, the AAA protocol MUST support, or be easily extended to
support, the set of attributes supported by RADIUS [RADIUS] and
RADIUS Accounting [RADIUS-ACCOUNTING]. If the base AAA protocol does
not support this complete set of attributes, then an extension to
that protocol MUST be defined which supports this set.
5.1.2.3. Attribute Extensibility
NAS and AAA development is always progressing. In order to prevent
the AAA protocol from being a limiting factor in NAS and AAA Server
development, the AAA protocol MUST provide a built-in extensibility
mechanism, which MUST include a means for adding new standard
attribute extensions. This MUST include a method for registering or
requesting extensions through IANA, so that long-term working group
involvement is not required to create new attribute types. Ideally,
the AAA protocol SHOULD separate specification of the transport from
specification of the attributes.
The AAA protocol MUST include a means for individual vendors to add
value through vendor-specific attributes and SHOULD include support
for vendor-specific data types.
5.1.3. Security Requirements
5.1.3.1. Mutual Authentication
It is poor security practice for a NAS to communicate with an AAA
server that is not trusted, and vice versa. The AAA protocol MUST
provide mutual authentication between AAA server and NAS.
5.1.3.2. Shared Secrets
At a minimum, the AAA protocol SHOULD support use of a secret shared
pairwise between each NAS and AAA server to mutually verify identity.
This is intended for small-scale deployments. The protocol MAY
provide stronger mutual security techniques.
5.1.3.3. Public Key Security
AAA server/NAS identity verification based solely on shared secrets
can be difficult to deploy properly at large scale, and it can be
tempting for NAS operators to use a single shared secret (that rarely
changes) across all NAS's. This can lead to an easy compromise of
the secret. Therefore, the AAA protocol MUST also support mutual
verification of identity using a public-key infrastructure that
supports expiration and revocation of keys.
5.1.3.4. Encryption of Attributes
Some attributes are more operationally sensitive than others. Also,
in a multi-domain scenario, attributes may be inserted by servers
from different administrative domains. Therefore, the AAA protocol
MUST support selective encryption of attributes on an attribute-by-
attribute basis, even within the same message. This requirement
applies equally to Authentication, Authorization, and Accounting
data.
5.2. Authentication and User Security Requirements
5.2.1. Authentication protocol requirements
End users who are requesting network access through a NAS will
present various types of credentials. It is the purpose of the AAA
protocol to transport these credentials between the NAS and the AAA
server.
5.2.1.1. Bi-directional Authentication
The AAA protocol MUST support transport of credentials from the AAA
server to the NAS, between the User and the NAS, and between the NAS
and the AAA server.
5.2.1.2. Periodic Re-Authentication
The AAA protocol MUST support re-authentication at any time during
the course of a session, initiated from either the NAS or the AAA
server. This is a requirement of CHAP [CHAP].
5.2.1.3. Multi-phase Authentication
The AAA protocol MUST be able to support multi-phase authentication
methods, including but not limited to support for:
- Text prompting from the NAS to the user
- A series of binary challenges and responses of arbitrary length
- An authentication failure reason to be transmitted from the NAS
to the user
- Callback to a pre-determined phone number
5.2.1.4. Extensible Authentication Types
Security protocol development is going on constantly as new threats
are identified and better cracking methods are developed. Today's
secure authentication methods may be proven insecure tomorrow. The
AAA protocol MUST provide some support for addition of new
authentication credential types.
5.2.2. Authentication Attribute Requirements
In addition to the minimum attribute set, the AAA protocol must
support and define attributes that provide the following functions:
5.2.2.1. PPP Authentication protocols
Many authentication protocols are defined within the framework of
PPP. The AAA protocol MUST be able to act as an intermediary
protocol between the authenticate and the authenticator for the
following authentication protocols:
- PPP Password Authentication Protocol [PPP]
- PPP Challenge Handshake Authentication Protocol [CHAP]
- PPP Extensible Authentication Protocol [EAP]
5.2.2.2. User Identification
The following are common types of credentials used for user
identification. The AAA protocol MUST be able to carry the following
types of identity credentials:
- A user name in the form of a Network Access Identifier [NAI].
- An Extensible Authentication Protocol [EAP] Identity Request
Type packet.
- Telephony dialing information such as Dialed Number
Identification Service (DNIS) and Caller ID.
If a particular type of authentication credential is not needed for a
particular user session, the AAA protocol MUST NOT require that dummy
credentials be filled in. That is, the AAA protocol MUST support
authorization by identification or assertion only.
5.2.2.3. Authentication Credentials
The following are common types of credentials used for
authentication. The AAA protocol MUST be able to carry the following
types of authenticating credentials at a minimum:
- A secret or password.
- A response to a challenge presented by the NAS to the user
- A one-time password
- An X.509 digital certificate [X.509]
- A Kerberos v5 ticket [KERBEROS]
5.2.3. Authentication Protocol Security Requirements
5.2.3.1. End-to-End Hiding of Credentials
Where passwords are used as authentication credentials, the AAA
protocol MUST provide a secure means of hiding the password from
intermediates in the AAA conversation. Where challenge/response
mechanisms are used, the AAA protocol MUST also prevent against
replay attacks.
5.3. Authorization, Policy, and Resource management
5.3.1. Authorization Protocol Requirements
In all cases, the protocol MUST specify that authorization data sent
from the NAS to the AAA server is to be regarded as information or
"hints", and not directives. The AAA protocol MUST be designed so
that the AAA server makes all final authorization decisions and does
not depend on a certain state being expected by the NAS.
5.3.1.1. Dynamic Authorization
The AAA protocol MUST support dynamic re-authorization at any time
during a user session. This re-authorization may be initiated in
either direction. This dynamic re-authorization capability MUST
include the capability to request a NAS to disconnect a user on
demand.
5.3.1.2. Resource Management
Resource Management MUST be supported on demand by the NAS or AAA
Server at any time during the course of a user session. This would
be the ability for the NAS to allocate and deallocate shared
resources from a AAA server servicing multiple NASes. These
resources may include, but are not limited to; IP addresses,
concurrent usage limits, port usage limits, and tunnel limits. This
capability should have error detection and synchronization features
that will recover state after network and system failures. This may
be accomplished by session information timeouts and explicit interim
status and disconnect messages. There should not be any dependencies
on the Accounting message stream, as per current practices.
This feature is primarily intended for NAS-local network resources.
In a proxy or multi-domain environment, resource information should
only be retained by the server doing the allocation, and perhaps it's
backups. Authorization resources in remote domains should use the
dynamic authorization features to change and revoke authorization
status.
5.3.2. Authorization Attribute Requirements
5.3.2.1. Authorization Attribute Requirements - Access Restrictions
The AAA protocol serves as a primary means of gathering data used for
making Policy decisions for network access. Therefore, the AAA
protocol MUST allow network operators to make policy decisions based
on the following parameters:
- Time/day restrictions. The AAA protocol MUST be able to
provide an unambiguous time stamp, NAS time zone indication,
and date indication to the AAA server in the Authorization
information.
- Location restrictions: The AAA protocol MUST be able to
provide an unambiguous location code that reflects the
geographic location of the NAS. Note that this is not the same
type of thing as either the dialing or dialed station.
- Dialing restrictions: The AAA protocol MUST be able to provide
accurate dialed and dialing station indications.
- Concurrent login limitations: The AAA protocol MUST allow an
AAA Server to limit concurrent logins by a particular user or
group of users. This mechanism does not need to be explicitly
built into the AAA protocol, but the AAA protocol must provide
sufficient authorization information for an AAA server to make
that determination through an out-of-band mechanism.
5.3.2.2. Authorization Attribute Requirements - Authorization Profiles
The AAA protocol is used to enforce policy at the NAS. Essentially,
on granting of access, a particular access profile is applied to the
user's session. The AAA protocol MUST at a minimum provide a means
of applying profiles containing the following types of information:
- IP Address assignment: The AAA protocol MUST provide a means of
assigning an IPv4 or IPv6 address to an incoming user.
- Protocol Filter application: The AAA protocol MUST provide a
means of applying IP protocol filters to user sessions. Two
different methods MUST be supported.
First, the AAA protocol MUST provide a means of selecting a
protocol filter by reference to an identifier, with the details
of the filter action being specified out of band. The AAA
protocol SHOULD define this out-of-band reference mechanism.
Second, the AAA protocol MUST provide a means of passing a
protocol filter by value. This means explicit passing of
pass/block information by address range, TCP/UDP port number,
and IP protocol number at a minimum.
- Compulsory Tunneling: The AAA protocol MUST provide a means of
directing a NAS to build a tunnel or tunnels to a specified
end- point. It MUST support creation of multiple simultaneous
tunnels in a specified order. The protocol MUST allow, at a
minimum, specification of the tunnel endpoints, tunneling
protocol type, underlying tunnel media type, and tunnel
authentication credentials (if required by the tunnel type).
The AAA protocol MUST support at least the creation of tunnels
using the L2TP [L2TP], ESP [ESP], and AH [AH] protocols. The
protocol MUST provide means of adding new tunnel types as they
are standardized.
- Routing: The AAA protocol MUST provide a means of assigning a
particular static route to an incoming user session.
- Expirations/timeouts: The AAA protocol MUST provide a means of
communication session expiration information to a NAS. Types
of expirations that MUST be supported are: total session time,
idle time, total bytes transmitted, and total bytes received.
- Quality of Service: The AAA protocol MUST provide a means for
supplying Quality of Service parameters to the NAS for
individual user sessions.
5.3.2.3. Resource Management Requirements
The AAA protocol is a means for network operators to perform
management of network resources. The AAA protocol MUST provide a
means of collecting resource state information, and controlling
resource allocation for the following types of network resources.
- Network bandwidth usage per session, including multilink
sessions.
- Access port usage, including concurrent usage and usage pools.
- Connect time.
- IP Addresses and pools.
- Compulsory tunnel limits.
5.3.3. Authorization Protocol Security Requirements
5.3.3.1. Security of Compulsory Tunnel Credentials
When an AAA protocol passes credentials that will be used to
authenticate compulsory tunnels, the AAA protocol MUST provide a
means of securing the credentials from end-to-end of the AAA
conversation. The AAA protocol MUST also provide protection against
replay attacks in this situation.
5.4. Accounting and Auditing Requirements
5.4.1. Accounting Protocol Requirements
5.4.1.1. Guaranteed Delivery
The accounting and auditing functions of the AAA protocol are used
for network planning, resource management, policy decisions, and
other functions that require accurate knowledge of the state of the
NAS. NAS operators need to be able to engineer their network usage
measurement systems to a predictable level of accuracy. Therefore,
an AAA protocol MUST provide a means of guaranteed delivery of
accounting information between the NAS and the AAA Server(s).
5.4.1.2. Real Time Accounting
NAS operators often require a real time view onto the status of
sessions served by a NAS. Therefore, the AAA protocol MUST support
real-time delivery of accounting and auditing information. In this
context, real time is defined as accounting information delivery
beginning within one second of the triggering event.
5.4.1.3. Batch Accounting
The AAA protocol SHOULD also support delivery of stored accounting
and auditing information in batches (non-real time).
5.4.1.4. Accounting Time Stamps
There may be delays associated with the delivery of accounting
information. The NAS operator will desire to know the time an event
actually occurred, rather than simply the time when notification of
the event was received. Therefore, the AAA protocol MUST carry an
unambiguous time stamp associated with each accounting event. This
time stamp MUST be unambiguous with regard to time zone. Note that
this assumes that the NAS has access to a reliable time source.
5.4.1.5. Accounting Events
At a minimum, the AAA protocol MUST support delivery of accounting
information triggered by the following events:
- Start of a user session
- End of a user session
- Expiration of a predetermined repeating time interval during a
user session. The AAA protocol MUST provide a means for the
AAA server to request that a NAS use a certain interval
accounting time.
- Dynamic re-authorization during a user session (e.g., new
resources being delivered to the user)
- Dynamic re-authentication during a user session
5.4.1.6. On-Demand Accounting
NAS operators need to maintain an accurate view onto the status of
sessions served by a NAS, even through failure of an AAA server.
Therefore, the AAA protocol MUST support a means of requesting
current session state and accounting from the NAS on demand.
5.4.2. Accounting Attribute Requirements
At a minimum, the AAA protocol MUST support delivery of the following
types of accounting/auditing data:
- All parameters used to authenticate a session.
- Details of the authorization profile that was applied to the
session.
- The duration of the session.
- The cumulative number of bytes sent by the user during the
session.
- The cumulative number of bytes received by the user during the
session.
- The cumulative number of packets sent by the user during the
session.
- The cumulative number of packets received by the user during
the session.
- Details of the access protocol used during the session (port
type, connect speeds, etc.)
5.4.3. Accounting Protocol Security Requirements
5.4.3.1. Integrity and Confidentiality
Note that accounting and auditing data are operationally sensitive
information. The AAA protocol MUST provide a means to assure end-
to-end integrity of this data. The AAA protocol SHOULD provide a
means of assuring the end-to-end confidentiality of this data.
5.4.3.2. Auditibility
Network operators use accounting data for network planning, resource
management, and other business-critical functions that require
confidence in the correctness of this data. The AAA protocol SHOULD
provide a mechanism to ensure that the source of accounting data
cannot easily repudiate this data after transmission.
6. Device Management Protocols
This document does not specify any requirements for device management
protocols.
7. Acknowledgments
Many of the requirements in this document first took form in Glen
Zorn's, "Yet Another Authentication Protocol (YAAP)" document, for
which grateful acknowledgment is made.
8. Security Considerations
See above for security requirements for the NAS AAA protocol.
Where an AAA architecture spans multiple domains of authority, AAA
information may need to cross trust boundaries. In this situation, a
NAS might operate as a shared device that services multiple
administrative domains. Network operators are advised take this into
consideration when deploying NAS's and AAA Servers.
9. IANA Considerations
This document does not directly specify any IANA considerations.
However, the following recommendations are made:
Future development and extension of an AAA protocol will be made much
easier if new attributes and values can be requested or registered
directly through IANA, rather than through an IETF Standardization
process.
The AAA protocol might use enumerated values for some attributes,
which enumerate already-defined IANA types (such as protocol number).
In these cases, the AAA protocol SHOULD use the IANA assigned numbers
as the enumerated values.
10. References
[AH] Kent, S. and R. Atkinson, "IP Authentication
Header (AH)", RFC 2402, November 1998.
[CHAP] Simpson, J., "PPP Challenge Handshake
Authentication Protocol (CHAP)", RFC 1994,
August 1996.
[CONGEST] Floyd, S., "Congestion Control Principles",
RFC 2914, Sept. 2000.
[EAP] Blunk, L. and J. Vollbrecht, "PPP Extensible
Authentication Protocol (EAP)", RFC 2284,
March 1998.
[ESP] Kent, S. and R. Atkinson, "IP Encapsulating
Security Payload (ESP)", RFC 2406, November
1998.
[KEYWORDS] Bradner, S., "Key words for use in RFCs to
Indicate Requirement Levels", BCP 14, RFC
2119, March 1997.
[KERBEROS] Kohl, J. and C. Neuman, "The Kerberos Network
Authentication Service (V5)", RFC 1510,
September 1993.
[IPV6] Deering, S. and R. Hinden, "Internet
Protocol, Version 6 (IPv6) Specification",
RFC 2460, December 1998.
[L2TP] Townsley, W., Valencia, A., Rubens, A., Pall,
G., Zorn, G. and B. Plater, "Layer Two
Tunneling Protocol (L2TP)", RFC 2661, August
1999.
[NAI] Aboba, B. and M. Beadles, "The Network Access
Identifier", RFC 2486, January 1999.
[NAS-MODEL] Mitton, D. and M. Beadles, "Network Access
Server Requirements Next Generation
(NASREQNG) NAS Model", RFC 2881, July 2000.
[NAS-EXT] Mitton, D., "Network Access Servers
Requirements: Extended RADIUS Practices", RFC
2882, July 2000.
[PPP] Simpson, W., "The Point-to-Point Protocol
(PPP)", STD 51, RFC 1661, July 1994.
[PPPOE] Mamakos, L., Lidl, K., Evarts, J., Carrel,
D., Simone, D. and R. Wheeler, "A Method for
Transmitting PPP Over Ethernet (PPPoE)", RFC
2516, February 1999.
[ROUTING-REQUIREMENTS] Baker, F., "Requirements for IP Version 4
Routers", RFC 1812, June 1995.
[TELNET] Postel, J. and J. Reynolds, "Telnet Protocol
Specification", STD 8, RFC 854, May 1983.
[RFC 2277] Alvestrand, H., "IETF Policy on Character
Sets and Languages", BCP 18, RFC 2277,
January 1998.
[X.509] ITU-T Recommendation X.509 (1997 E):
Information Technology - Open Systems
Interconnection - The Directory:
Authentication Framework, June 1997.
[RADIUS] Rigney, C., Rubens. A., Simpson, W. and S.
Willens, "Remote Authentication Dial In User
Service (RADIUS)", RFC 2138, April 1997.
[RADIUS-ACCOUNTING] Rigney, C., "RADIUS Accounting", RFC 2139,
April 1997.
[ROAMING-REQUIREMENTS] Aboba, B. and G. Zorn, "Criteria for
Evaluating Roaming Protocols", RFC 2477,
January 1999.
11. Authors' Addresses
Mark Anthony Beadles
SmartPipes, Inc.
565 Metro Place South Suite 300
Dublin, OH 43017
Phone: 614-923-6200
David Mitton
Nortel Networks
880 Technology Park Drive
Billerica, MA 01821
Phone: 978-288-4570
EMail: dmitton@nortelnetworks.com
12. Full Copyright Statement
Copyright (C) The Internet Society (2001). All Rights Reserved.
This document and translations of it may be copied and furnished to
others, and derivative works that comment on or otherwise explain it
or assist in its implementation may be prepared, copied, published
and distributed, in whole or in part, without restriction of any
kind, provided that the above copyright notice and this paragraph are
included on all such copies and derivative works. However, this
document itself may not be modified in any way, such as by removing
the copyright notice or references to the Internet Society or other
Internet organizations, except as needed for the purpose of
developing Internet standards in which case the procedures for
copyrights defined in the Internet Standards process must be
followed, or as required to translate it into languages other than
English.
The limited permissions granted above are perpetual and will not be
revoked by the Internet Society or its successors or assigns.
This document and the information contained herein is provided on an
"AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
Acknowledgement
Funding for the RFC Editor function is currently provided by the
Internet Society.
ISO Plain Language
On this page
§2The Four Spaces of NAS Protocols
The memo defines requirements for protocols used by Network Access Servers. The protocols used by a NAS may be divided into four spaces: access protocols, network protocols, AAA protocols and device management protocols. The primary focus of the document is on AAA protocols, which cover authentication, authorization and accounting. The reference model of a NAS used by the document, and the analysis of the functions of a NAS that led to these requirements, are in the NAS Model document.
The requirements language is the usual one: the key words MAY, MUST, MUST NOT, optional, recommended, SHOULD and SHOULD NOT are to be interpreted as described in RFC 2119.
Four kinds of protocol surround a network access server. The memo is mainly about the third one, the AAA protocol, which covers checking identity, deciding access and recording usage.
- Access protocolsHow the user's line reaches the server: modems, broadband, and tunnel termination.
- Network protocolsThe routing and addressing the server provides over the network it serves.
- AAA protocolsChecking who the user is, deciding what they may do, and recording what they used.
- Device management protocolsHow the server itself is configured and supervised.
§3Access and Network Protocol Requirements
There are three basic types of access protocol used by a NAS. First are the traditional telephony-based access protocols, which interface to the NAS via a modem or terminal adapter or similar device, and which typically support asynchronous or synchronous PPP carried over a telephony protocol. Second are broadband pseudo-telephony access protocols, carried over xDSL or cable modems, which typically support an encapsulation method such as PPP over Ethernet. Finally are the virtual access protocols used by NASs that terminate tunnels, one example of this type being L2TP.
It is a central assumption of the NAS model used here that a NAS accepts multiple point-to-point links via one of the above access protocols. So at a minimum, any NAS access protocol MUST be able to carry PPP. The exception to this requirement is for NASs that support legacy text login methods such as telnet, rlogin or LAT; only these access protocols are exempt from the requirement to support PPP.
The network protocols supported by a NAS depend entirely on the kind of network to which the NAS is providing access, and the document imposes no additional requirements beyond the protocol specifications themselves. For example, a NAS that serves a routed network and includes internet routing functionality must adhere to the requirements for IP version 4 routers, but there are no additional protocol requirements imposed by virtue of the device being a NAS.
Whatever the user's line looks like, the access protocol has to be able to carry PPP, because that is what the rest of the system expects. Only the old text-login style of access, such as telnet, is let off that hook.
§5.1General AAA Protocol Characteristics
Certain general characteristics apply to any AAA protocol used by NASs, and the transport requirements for authentication and authorization need not be the same as those for accounting and auditing. An AAA protocol suite MAY use the same transport and protocol for both functions, but this is not strictly required.
The design MUST be transport independent, because existing infrastructures use UDP-based protocols such as RADIUS and gateways to new protocols must be practical to encourage migration. It MUST comply with the congestion control recommendations in RFC 2914.
Very large scale NASs serving up to thousands of simultaneous sessions are now being deployed, and a single server system may service a large number of ports, so in the extreme there may be an almost constant exchange of many small packets between the NASs and the AAA server. The transport SHOULD therefore support being optimized for a long-term exchange of small packets in a stream between a pair of hosts. The protocol MUST be designed to support a large number of ports, clients and concurrent sessions. Examples of poor design are given: message identifiers whose values are so small that queues and reception windows wrap under load, unique session identifier ranges so small that they wrap within the lifetime of potential long sessions, counter values that cannot accommodate reasonable current and future bandwidth usage, and computational processes with high overhead that must be performed frequently.
To support large loads, load balancing and fail-over to multiple AAA servers will be required. The protocol MUST provide for NASs to balance individual AAA requests between two or more AAA servers, and the load balancing mechanism SHOULD be built into the protocol itself. It MUST be able to detect a failure of the transport to deliver a message or messages within a known and controllable time period, so it can engage retransmission or server fail-over processes, and the reliability and robustness of authentication requests MUST be predictable and configurable. The design MUST NOT introduce a single point of failure during the AAA process, and MUST allow sessions between a NAS and a given AAA server to fail over to a secondary server without loss of state information.
NASs operated by one authority may provide network access services for clients operated by another authority, to network destinations operated by yet another authority, and the memo notes that this arrangement is of growing importance, with dial roaming now a nearly ubiquitous service. The protocol MUST support AAA services that travel between multiple domains of authority and MUST NOT use a model that assumes a single domain of authority. It MUST NOT dictate particular business models for the relationship between the administrative domains, and it MUST support proxy, and SHOULD support other multi-domain relationships such as brokering and referral.
The protocol SHOULD use an Attribute-Value representation for AAA data, since years of operational experience have proven that model to be an optimal representation, though even if the on-the-wire representation is different, Attribute-Value can serve as an abstraction for discussing AAA information. The protocol MUST support a minimum of 64K attributes of 16 bits each, each with a minimum length of 64K of 16 bits, because attribute space tends to run out quickly. It MUST support simple attribute data types including integer, enumeration, text string, IP address and date and time, and MUST provide some support for complex structured data types. Wherever IP addresses are carried it MUST support both IPv4 and IPv6 addresses, and wherever text information is carried it MUST comply with the IETF policy on character sets and languages.
At a minimum the protocol MUST support, or be easily extended to support, the set of attributes supported by RADIUS and RADIUS Accounting; if the base protocol does not support the complete set, an extension to that protocol MUST be defined which does. It MUST provide a built-in extensibility mechanism, which MUST include a means for adding new standard attribute extensions and a method for registering or requesting extensions through IANA, so that long-term working group involvement is not required to create new attribute types, and it SHOULD separate the specification of the transport from the specification of the attributes. It MUST include a means for individual vendors to add value through vendor-specific attributes and SHOULD support vendor-specific data types.
The protocol must not be tied to one way of carrying messages, must cope with thousands of sessions at once, must spread the load over several AAA servers and survive one of them failing, and must not assume that the operator, the user and the destination all belong to the same organisation.
§5.2Authentication and User Security Requirements
The AAA protocol MUST provide mutual authentication between the AAA server and the NAS, because it is poor security practice for a NAS to communicate with an AAA server that is not trusted and vice versa. At a minimum the protocol SHOULD support a secret shared pairwise between each NAS and AAA server to mutually verify identity, which is intended for small-scale deployments, and it MAY provide stronger mutual security techniques. Because shared secrets are difficult to deploy properly at large scale and it is tempting for operators to use a single shared secret, which rarely changes, across all NASs, the protocol MUST also support mutual verification of identity using a public key infrastructure that supports expiration and revocation of keys. And because some attributes are more operationally sensitive than others, and in a multi-domain scenario attributes may be inserted by servers from different administrative domains, the protocol MUST support selective encryption of attributes on an attribute-by-attribute basis, even within the same message, for authentication, authorization and accounting data alike.
End users requesting network access present various types of credentials, and it is the purpose of the AAA protocol to transport these credentials between the NAS and the AAA server. The protocol MUST support transport of credentials from the AAA server to the NAS, between the user and the NAS, and between the NAS and the AAA server. It MUST support re-authentication at any time during a session, initiated from either side, which is a requirement of CHAP. It MUST be able to support multi-phase authentication methods, including text prompting from the NAS to the user, a series of binary challenges and responses of arbitrary length, an authentication failure reason transmitted from the NAS to the user, and callback to a pre-determined phone number. Because security protocol development is constant and today's secure methods may be proven insecure tomorrow, the protocol MUST provide some support for adding new authentication credential types.
Beyond the minimum attribute set, the protocol must support and define attributes providing further functions. It MUST be able to act as an intermediary protocol between the authenticator and the authenticatee for PPP Password Authentication, PPP Challenge Handshake and PPP Extensible Authentication. It MUST be able to carry a user name in the form of a Network Access Identifier, an EAP Identity Request Type packet, and telephony dialling information such as Dialed Number Identification Service and Caller ID. If a particular type of credential is not needed for a session, the protocol MUST NOT require that dummy credentials be filled in: it MUST support authorization by identification or assertion only. It MUST also be able to carry, at a minimum, a secret or password, a response to a challenge presented by the NAS to the user, a one-time password, an X.509 digital certificate, and a Kerberos v5 ticket.
Where passwords are used as authentication credentials, the protocol MUST provide a secure means of hiding the password from intermediates in the AAA conversation, and where challenge and response mechanisms are used it MUST also prevent against replay attacks.
The server and the access server must each be able to check the other's identity, and the protocol must be able to carry every kind of credential a user might have, from a password to a smart card certificate. Passwords must not be exposed to anything in between.
| Credential | What it is |
|---|---|
| Secret or password | The simplest form of credential |
| Response to a challenge | The user's answer to a challenge presented by the NAS |
| One-time password | A password that is used once |
| X.509 digital certificate | A certificate held by the user |
| Kerberos v5 ticket | A ticket issued by a Kerberos service |
§5.3Access Profiles and Resource Management
In all cases the protocol MUST specify that authorization data sent from the NAS to the AAA server is to be regarded as information or hints, and not directives. The protocol MUST be designed so that the AAA server makes all final authorization decisions and does not depend on a certain state being expected by the NAS.
The protocol MUST support dynamic re-authorization at any time during a user session, initiated in either direction, and that capability MUST include the ability to request a NAS to disconnect a user on demand. Resource management MUST be supported on demand by the NAS or the AAA server at any time during a session, meaning the ability for the NAS to allocate and deallocate shared resources from an AAA server servicing multiple NASes. Those resources may include IP addresses, concurrent usage limits, port usage limits and tunnel limits. The capability should have error detection and synchronization features that recover state after network and system failures, which may be accomplished by session information timeouts and explicit interim status and disconnect messages, and there should not be any dependencies on the Accounting message stream, as per current practices. This feature is primarily intended for NAS-local network resources; in a proxy or multi-domain environment, resource information should only be retained by the server doing the allocation and perhaps its backups, and authorization resources in remote domains should use the dynamic authorization features to change and revoke authorization status.
Because the AAA protocol is a primary means of gathering data used for making policy decisions, it MUST allow network operators to make policy decisions based on time and day restrictions, providing an unambiguous timestamp, NAS time zone indication and date indication; on location restrictions, providing an unambiguous location code that reflects the geographic location of the NAS, which is not the same type of thing as the dialling or dialled station; on dialling restrictions, providing accurate dialled and dialling station indications; and on concurrent login limitations, allowing the AAA server to limit concurrent logins by a particular user or group of users. The last mechanism need not be built into the protocol, but the protocol must provide sufficient authorization information for the AAA server to make that determination through an out-of-band mechanism.
When access is granted, a particular access profile is applied to the user's session, and the protocol MUST provide at least a means of applying profiles containing the following. IP address assignment, meaning a means of assigning an IPv4 or IPv6 address to an incoming user. Protocol filter application, by two different methods: selecting a protocol filter by reference to an identifier with the details of the filter action specified out of band, and passing a protocol filter by value, that is explicit passing of pass and block information by address range, TCP and UDP port number, and IP protocol number at a minimum. Compulsory tunnelling, meaning a means of directing a NAS to build a tunnel or tunnels to a specified endpoint, supporting creation of multiple simultaneous tunnels in a specified order, and specifying at a minimum the tunnel endpoints, tunnelling protocol type, underlying tunnel media type and tunnel authentication credentials; it MUST support at least the creation of tunnels using L2TP, ESP and AH, and MUST provide means of adding new tunnel types as they are standardized. Routing, meaning a means of assigning a particular static route to an incoming user session. Expirations and timeouts, of which total session time, idle time, total bytes transmitted and total bytes received MUST be supported. And quality of service parameters for the individual session.
The protocol MUST also provide a means of collecting resource state information and controlling resource allocation for network bandwidth usage per session, including multilink sessions, access port usage including concurrent usage and usage pools, connect time, IP addresses and pools, and compulsory tunnel limits. Where credentials used to authenticate compulsory tunnels are passed, the protocol MUST provide a means of securing them from end to end of the AAA conversation and MUST also provide protection against replay attacks.
The access server only makes suggestions; the AAA server decides. What it decides includes the address, the filters, the tunnel, the route, the time limits and the service quality for the session, and it can change any of that while the user is online.
| Profile element | What the protocol must carry |
|---|---|
| IP address assignment | An IPv4 or IPv6 address for the incoming user |
| Protocol filter | A filter chosen by identifier, or passed by value with address ranges, port numbers and IP protocol numbers |
| Compulsory tunnelling | The tunnel endpoints, tunnelling protocol type, media type and credentials, with support for L2TP, ESP and AH |
| Routing | A static route assigned to the session |
| Expirations and timeouts | Total session time, idle time, total bytes transmitted and total bytes received |
| Quality of service | Quality of Service parameters for the session |
§5.4Accounting and Auditing Requirements
The accounting and auditing functions of the AAA protocol are used for network planning, resource management, policy decisions and other functions that require accurate knowledge of the state of the NAS, so operators need to be able to engineer their network usage measurement systems to a predictable level of accuracy. The protocol MUST provide a means of guaranteed delivery of accounting information between the NAS and the AAA servers.
Operators often require a real time view onto the status of sessions served by a NAS, so the protocol MUST support real-time delivery of accounting and auditing information, and the memo defines real time as accounting information delivery beginning within one second of the triggering event. It SHOULD also support delivery of stored accounting and auditing information in batches. Because there may be delays associated with delivery, the protocol MUST carry an unambiguous time stamp associated with each accounting event, unambiguous with regard to time zone, which assumes the NAS has access to a reliable time source.
Delivery of accounting information MUST be supported when triggered by the following events: the start of a user session, the end of a user session, the expiration of a predetermined repeating time interval during a user session, for which the AAA server MUST be able to request that a NAS use a certain interval accounting time, dynamic re-authorization during a user session, and dynamic re-authentication during a user session. The protocol MUST also support a means of requesting current session state and accounting from the NAS on demand, so that operators maintain an accurate view even through the failure of an AAA server.
The accounting data itself MUST at a minimum cover all parameters used to authenticate a session, the details of the authorization profile that was applied to the session, the duration of the session, the cumulative number of bytes sent by the user during the session, the cumulative number of bytes received, the cumulative number of packets sent and received, and the details of the access protocol used during the session such as port type and connect speeds. Accounting and auditing data are operationally sensitive information, so the protocol MUST provide a means to assure end-to-end integrity of this data and SHOULD provide a means to assure the end-to-end confidentiality of it. Operators use accounting data for network planning, resource management and other business-critical functions that require confidence in the correctness of the data, so the protocol SHOULD provide a mechanism to ensure that the source of the data cannot easily repudiate it after transmission.
The record of what happened has to be reliable enough to plan a network and bill for it, so it must arrive, it must say when the event really happened rather than when the message was received, and the operator must be able to ask for the current state at any time.