Internet DRAFT - draft-aboba-radius-eap
draft-aboba-radius-eap
HTTP/1.1 200 OK
Date: Mon, 08 Apr 2002 22:25:07 GMT
Server: Apache/1.3.20 (Unix)
Last-Modified: Fri, 17 Jan 1997 15:18:00 GMT
ETag: "3dde65-4e3c-32df9828"
Accept-Ranges: bytes
Content-Length: 20028
Connection: close
Content-Type: text/plain
Network Working Group Bernard Aboba
INTERNET-DRAFT Microsoft Corporation
<draft-aboba-radius-eap-00.txt> Glen Zorn
17 January 1997 Microsoft Corporation
Extensible Authentication Protocol Support in RADIUS
1. Status of this Memo
This document is an Internet-Draft. Internet-Drafts are working docu-
ments of the Internet Engineering Task Force (IETF), its areas, and
its working groups. Note that other groups may also distribute work-
ing documents as Internet-Drafts.
Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference mate-
rial or to cite them other than as ``work in progress.''
To learn the current status of any Internet-Draft, please check the
``1id-abstracts.txt'' listing contained in the Internet-Drafts Shadow
Directories on ds.internic.net (US East Coast), nic.nordu.net
(Europe), ftp.isi.edu (US West Coast), or munnari.oz.au (Pacific Rim).
The distribution of this memo is unlimited. It is filed as <draft-
aboba-radius-eap-00.txt>, and expires July 1, 1997. Please send com-
ments to the authors.
2. Abstract
The Enhanced Authentication Protocol (EAP) is a PPP extension that
provides support for additional authentication methods within PPP.
Currently, the RADIUS protocol only supports conventional PPP authen-
tication methods such as PAP and CHAP. This document describes two new
attributes, EAP-Authentication-Type and EAP-Authentication-Server-End-
point, and how they may be used for providing EAP support within
RADIUS.
3. Introduction
The Extensible Authentication Protocol (EAP), described in [1], pro-
vides a standard mechanism for support of additional authentication
methods within PPP. Through the use of EAP, support for a number of
authentication schemes may be added, including token cards, Kerberos,
Public Key, S/Key, and others. However, the RADIUS protocol, described
in [4], currently only supports CHAP and PAP authentication. This doc-
ument describes two new attributes, EAP-Authentication-Type, and EAP-
Authentication-Server-Endpoint, and how they may be used for providing
EAP support within RADIUS.
Aboba & Zorn [Page 1]
INTERNET-DRAFT 17 January 1997
The scheme described here differs from that proposed in [2], in that
rather than shuttling RADIUS-encapsulated EAP Packets between the NAS
and a backend security server, the RADIUS server instead returns the
type of EAP authentication desired, and the address and port of the
backend authentication server to be contacted. The NAS device then
uses this information to contact the backend security server directly.
Due to the 253 octet limitation in the size of a RADIUS attribute, the
scheme described in [2] could not be easily implemented on existing
RADIUS servers, and was dependent on deployment of an expanded version
of the RADIUS protocol. Since the scheme described here does not
encapsulate EAP packets in RADIUS, it may be implemented within RADIUS
as described in [3] and [4].
While the conversation between the NAS and backend security server
will typically occur using a proprietary protocol developed by the
backend security server vendor, it is also possible to encapsulate EAP
in UDP or TCP. This has the advantage of allowing the NAS to support
EAP without the need for authentication-specific code, which can
instead reside on a backend security server.
4. Protocol overview
The EAP conversation between the authenticating peer and the NAS
begins with the negotiation of EAP within LCP. Once EAP has been nego-
tiated, if the NAS is set up for RADIUS authentication, it will initi-
ate an EAP-identity request. While use of the identity request is not
required by EAP, without knowledge of the identity, RADIUS would not
be capable of returning user-specific connection setup attributes, or
accounting for resource usage. Since these are the main benefits of
the RADIUS protocol, if an identity request were not required, the NAS
should be set up to operate with a local profile rather than using
RADIUS.
Since the purpose of EAP is to authenticate the user, prior to sending
the Access-Request the RADIUS client has obtained the user's identity,
but no authentication can be assumed to have taken place. Therefore
with EAP it is typically not possible to include a conventional User-
Password or CHAP-Password attribute within the Access-Request.
Instead, after obtaining the user's identity, the RADIUS client gener-
ates an Access-request containing the following attributes: User-Name
(filled in with the identity), EAP-Authentication-Server-Endpoint
(with an address of 0.0.0.0, and port of 0x0000), EAP-Authentication-
Type (with type 0) and a User-Password attribute which contains an MD5
hash of the Access-Request concatenated with the shared secret (i.e.
User-Password=MD5(Code+ID+Length+RequestAuth+Attributes+Secret)). This
amounts to a null password, but authenticates that the request came
from a known NAS. The user's connection is only set up by the NAS
should the EAP authentication succeed.
It is also possible for the NAS to carry out an MD5 authentication
prior to sending the Access-Request. In this case, the NAS will
Aboba & Zorn [Page 2]
INTERNET-DRAFT 17 January 1997
include a CHAP-Password attribute in the Access-Request, along with
the null EAP-Authentication-Server-Endpoint and EAP-Authentication-
Type attributes, and as a result, the RADIUS server is able to verify
the user password. However, use of multiple authentications may not be
desirable in many applications.
On receiving the Access-Request, the RADIUS server checks the validity
of the User-Password or CHAP-Password attributes, and if this check is
successful, the RADIUS server returns connection-related attributes in
the Access-Reply, along with the EAP-Authentication-Type and EAP-
Authentication-Server-Endpoint attributes. Although use of multiple
EAP authentications is typically not desirable, it is possible for the
RADIUS server to return more than one set of EAP-Authentication-Type
and EAP-Authentication-Server-Endpoint attributes; in this case the
NAS will carry out the authentications in the indicated order.
If the authenticating peer is successful in completing the EAP authen-
tication, then the NAS grants access to the network, and sends a
RADIUS Accounting-Request/START packet to the RADIUS server, including
the EAP-Authentication-Type and EAP-Authentication-Server-Endpoint
attributes. The RADIUS server replies with an Accounting-Reply packet.
Similarly, when the connection is terminated, the NAS sends a RADIUS
Accounting-Request/STOP packet to the RADIUS server, including the
EAP-Authentication-Type and EAP-Authentication-Server-Endpoint
attributes, and the RADIUS server replies with an Accounting-Reply
packet.
The conversation between the authenticating peer, NAS, and RADIUS
server is summarized below:
Authenticating Peer NAS RADIUS Server
------------------- --- -------------
<- LCP EAP-Request
LCP EAP ACK ->
<- PPP EAP-Request/Identity
PPP EAP-Response/Identity
(MyID) ->
RADIUS Access-Request
Username (MyID),
User-Password,
EAP-Authentication-Type(0)
EAP-Authentication-Server-
Endpoint (0) ->
<-RADIUS Access-Accept
(Referral)
EAP-Authentication-Type:S-Key,
EAP-Authentication-Server-Endpoint,
(Other attributes)
<- PPP EAP-Request/S-Key
S-Key Challenge
PPP EAP-Response/S-Key,
S-Keypw ->
EAP-Request/S-Key
S-Keypw (to security server)
Aboba & Zorn [Page 3]
INTERNET-DRAFT 17 January 1997
EAP-Success
(from security server)
<- PPP EAP-Success
IPCP phase starts
IPCP phase completes
RADIUS Accounting-Request
with Acct-Status-Type=Start,
EAP-Authentication-Server-Endpoint
EAP-Authentication-Type ->
<- RADIUS Accounting-Reply
RADIUS Accounting-Request
with Acct-Status-Type=Stop,
EAP-Authentication-Server-Endpoint
EAP-Authentication-Type ->
<- RADIUS Accounting-Reply
4.1. Backward compatibility
It is conceivable that the RADIUS server to which the initial Access-
Reqest is directed will not support EAP. In this case, the User-Pass-
word attribute will not match, and the RADIUS server will respond with
a RADIUS Access-Reject. The NAS will then NAK the Authenticating Peer,
and will request CHAP or PAP authentication.
5. Attributes
5.1. EAP-Authentication-Type
Description
When included in an Access-Request message, this attribute MUST
contain a value of 0, used to indicate a request for an EAP authen-
tication type.
When returned in an Access-Accept message, this attribute indicates
the authentication protocol to be used. A NAS is not required to
implement all of these authentication types, and MUST treat unknown
or unsupported EAP-Authentication-Types as though an Access-Reject
had been received instead.
A summary of the EAP-Authentication-Type Attribute format is shown
below. The fields are transmitted from left to right.
0 1 2
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length | Value |
Aboba & Zorn [Page 4]
INTERNET-DRAFT 17 January 1997
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Type
69 for EAP-Authentication-Type
Length
3
Value
The Value field is a single octet.
0 Request for EAP redirection (Access-Request only)
1 Identity
2 Notification
3 Nak (Response only)
4 MD5-Challenge
5 S/Key (RFC 1760)
6 Generic Token Card
5.2. EAP-Authentication-Server-Endpoint
Description
When included in an Access-Request message, this attribute MUST
contain a value of 0, used to indicate a request for an EAP authen-
tication server endpoint address and port. If this attribute is not
included in the Access-Request, it When returned in an Access-
Reply/Accept message, this Attribute indicates the address of the
backend security server.
A summary of the Authentication-Server-Endpoint Attribute format is
shown below. The fields are transmitted from left to right.
0 1 2
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
| Type | Length | String ...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Type
70 for EAP-Authentication-Server-Endpoint.
Length
=8 for IPv4, 20 for IPv6
String
Aboba & Zorn [Page 5]
INTERNET-DRAFT 17 January 1997
The structure of the string field is as follows:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Port | Address ...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Address ... |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
The string field consists of a two-octet port field, as well as an
address field. The length of the address depends on whether we are
using IPv4 or IPv6. In IPv4, the attribute is 8 octets in length,
and in IPv6, it is 20 octets in length. length.
6. Security Issues
This specification raises two major security issues: the use of a mod-
ified User-Password attribute in the Access-Request, and the use of an
EAP encapsulation over the Internet.
In a conventional RADIUS conversation, user attributes are sent by the
RADIUS server to the NAS only after the user password has been veri-
fied. In the protocol specified in this document, the attributes are
sent on verification of the secret shared between the NAS and the
RADIUS server. While the User-Password scheme described here protects
against modification of the Access-Request message, which standard
RADIUS does not, it makes it more likely that an attacker obtaining
the shared secret would then also be able to obtain user attribute
information. The most important such information is the knowledge that
an account exists for a given userID, although other attributes (such
as the user's IP address or framing) may also be of interest.
While this risk can be mitigated by requiring an MD5 authentication
prior to release of the connection setup information, and including
the CHAP-Password attribute in the Access-Request, use of multiple
authentications may not be desirable in many applications.
The scheme described in this document results in the NAS entering to a
direct conversation with a backend security server, while in the
scheme described in [2], the RADIUS server shuttles EAP packets back
and forth between the NAS and the backend security server. In the sit-
uation where the RADIUS server is located close to the backend secu-
rity server, the conversation between the NAS and RADIUS server or
backend security server will typically occur over the Internet, while
a conversation between a RADIUS server and backend security server
will typically occur over a local LAN or other private network.
Since the security of an EAP authentication is only as good as the
weakest link, it is worthwhile to examine the security aspects of
these conversations. In the conversation between the NAS and the back-
end security server or RADIUS server, it is desirable for mutual
Aboba & Zorn [Page 6]
INTERNET-DRAFT 17 January 1997
authentication to be provided. However, typically encryption of the
EAP conversation is not required, since EAP authentication protocols
have already taken the possibility of snooping into account.
In the scheme described here, the conversation between the NAS and
backend security server can either occur via a proprietary protocol,
or via an EAP encapsulation. Assuming that the EAP encapsulation is
secured (via SSL or IP Sec), then mutual authentication can be pro-
vided, as well as encryption. As described earlier, the use of a modi-
fied User-Password attribute provides assurance to the RADIUS server
that the Access-Request comes from a legitimate NAS device, and the
Authenticator provided in the Access-Reply provides assurance to the
RADIUS client that the reply comes from a legitimate RADIUS server.
The scheme described in [2] provides for mutual authentication between
the NAS and RADIUS server. This is handled via a message integrity
check (MIC) included within the Access-Request. As a result, expanded
RADIUS provides assurance of the authenticity and integrity of both
EAP requests and responses.
While [2] does not describe the communication mechanisms between the
RADIUS server and backend security server, it can be assumed that this
also occurs either via a proprietary protocol, or via an EAP encapsu-
lation. However, since the conversation between the RADIUS server and
backend security server is likely to occur over a LAN or private net-
work, security concerns are typically not as severe.
7. Acknowledgements
Thanks to Gurdeep Singh Pall, Peter Ford, and Narendra Gidwani of
Microsoft for useful discussions of this problem space.
8. References
[1] L. J. Blunk, J. R. Vollbrecht. "PPP Extensible Authentication
Protocol (EAP)." draft-ietf-pppext-eap-auth-02.txt, Merit Network,
Inc., June, 1996.
[2] A. Rubens, P.R. Calhoun. "Enhanced Remote Authentication Dial In
User Service (RADIUS) Extensible Authentication Protocol Support."
draft-calhoun-enh-radius-eap-00.txt, Merit Network, Inc., US Robotics
Access Crop., June, 1996.
[3] C. Rigney, A. Rubens, W. A. Simpson, S. Willens. "Remote Authen-
tication Dial In User Service (RADIUS)." draft-ietf-radius-
radius-05.txt, Livingston, Merit, Daydreamer, July 1996.
[4] C. Rigney. "RADIUS Accounting." draft-ietf-radius-account-
ing-05.txt, Livingston, July 1996.
Aboba & Zorn [Page 7]
INTERNET-DRAFT 17 January 1997
9. Authors' Addresses
Bernard Aboba
Microsoft Corporation
One Microsoft Way
Redmond, WA 98052
Phone: 206-936-6605
EMail: bernarda@microsoft.com
Glen Zorn
Microsoft Corporation
One Microsoft Way
Redmond, WA 98052
Phone: 206-703-1559
EMail: glennz@microsoft.com
Aboba & Zorn [Page 8]