| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579 | 
							
- Network Working Group                                           B. Aboba
 
- Request for Comments: 3579                                     Microsoft
 
- Updates: 2869                                                 P. Calhoun
 
- Category: Informational                                        Airespace
 
-                                                           September 2003
 
-           RADIUS (Remote Authentication Dial In User Service)
 
-           Support For Extensible Authentication Protocol (EAP)
 
- 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 (2003).  All Rights Reserved.
 
- Abstract
 
-    This document defines Remote Authentication Dial In User Service
 
-    (RADIUS) support for the Extensible Authentication Protocol (EAP), an
 
-    authentication framework which supports multiple authentication
 
-    mechanisms.  In the proposed scheme, the Network Access Server (NAS)
 
-    forwards EAP packets to and from the RADIUS server, encapsulated
 
-    within EAP-Message attributes.  This has the advantage of allowing
 
-    the NAS to support any EAP authentication method, without the need
 
-    for method-specific code, which resides on the RADIUS server.  While
 
-    EAP was originally developed for use with PPP, it is now also in use
 
-    with IEEE 802.
 
-    This document updates RFC 2869.
 
- Aboba & Calhoun              Informational                      [Page 1]
 
- RFC 3579                      RADIUS & EAP                September 2003
 
- Table of Contents
 
-    1.  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  2
 
-        1.1.  Specification of Requirements. . . . . . . . . . . . . .  3
 
-        1.2.  Terminology. . . . . . . . . . . . . . . . . . . . . . .  3
 
-    2.  RADIUS Support for EAP . . . . . . . . . . . . . . . . . . . .  4
 
-        2.1.  Protocol Overview. . . . . . . . . . . . . . . . . . . .  5
 
-        2.2.  Invalid Packets. . . . . . . . . . . . . . . . . . . . .  9
 
-        2.3.  Retransmission . . . . . . . . . . . . . . . . . . . . . 10
 
-        2.4.  Fragmentation. . . . . . . . . . . . . . . . . . . . . . 10
 
-        2.5.  Alternative uses . . . . . . . . . . . . . . . . . . . . 11
 
-        2.6.  Usage Guidelines . . . . . . . . . . . . . . . . . . . . 11
 
-    3.  Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . 14
 
-        3.1.  EAP-Message. . . . . . . . . . . . . . . . . . . . . . . 15
 
-        3.2.  Message-Authenticator. . . . . . . . . . . . . . . . . . 16
 
-        3.3.  Table of Attributes. . . . . . . . . . . . . . . . . . . 18
 
-    4.  Security Considerations. . . . . . . . . . . . . . . . . . . . 19
 
-        4.1.  Security Requirements. . . . . . . . . . . . . . . . . . 19
 
-        4.2.  Security Protocol. . . . . . . . . . . . . . . . . . . . 20
 
-        4.3.  Security Issues. . . . . . . . . . . . . . . . . . . . . 22
 
-    5.  IANA Considerations. . . . . . . . . . . . . . . . . . . . . . 30
 
-    6.  References . . . . . . . . . . . . . . . . . . . . . . . . . . 30
 
-        6.1.  Normative References . . . . . . . . . . . . . . . . . . 30
 
-        6.2.  Informative References . . . . . . . . . . . . . . . . . 32
 
-    Appendix A - Examples. . . . . . . . . . . . . . . . . . . . . . . 34
 
-    Appendix B - Change Log. . . . . . . . . . . . . . . . . . . . . . 43
 
-    Intellectual Property Statement. . . . . . . . . . . . . . . . . . 44
 
-    Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . . 44
 
-    Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 45
 
-    Full Copyright Statement . . . . . . . . . . . . . . . . . . . . . 46
 
- 1.  Introduction
 
-    The Remote Authentication Dial In User Service (RADIUS) is an
 
-    authentication, authorization and accounting protocol used to control
 
-    network access.  RADIUS authentication and authorization is specified
 
-    in [RFC2865], and RADIUS accounting is specified in [RFC2866]; RADIUS
 
-    over IPv6 is specified in [RFC3162].
 
-    The Extensible Authentication Protocol (EAP), defined in [RFC2284],
 
-    is an authentication framework which supports multiple authentication
 
-    mechanisms.  EAP may be used on dedicated links, switched circuits,
 
-    and wired as well as wireless links.
 
-    To date, EAP has been implemented with hosts and routers that connect
 
-    via switched circuits or dial-up lines using PPP [RFC1661].  It has
 
-    also been implemented with bridges supporting [IEEE802].  EAP
 
-    encapsulation on IEEE 802 wired media is described in [IEEE8021X].
 
- Aboba & Calhoun              Informational                      [Page 2]
 
- RFC 3579                      RADIUS & EAP                September 2003
 
-    RADIUS attributes are comprised of variable length Type-Length-Value
 
-    3-tuples.  New attribute values can be added without disturbing
 
-    existing implementations of the protocol.  This specification
 
-    describes RADIUS attributes supporting the Extensible Authentication
 
-    Protocol (EAP): EAP-Message and Message-Authenticator.  These
 
-    attributes now have extensive field experience.  The purpose of this
 
-    document is to provide clarification and resolve interoperability
 
-    issues.
 
-    As noted in [RFC2865], a Network Access Server (NAS) that does not
 
-    implement a given service MUST NOT implement the RADIUS attributes
 
-    for that service.  This implies that a NAS that is unable to offer
 
-    EAP service MUST NOT implement the RADIUS attributes for EAP.  A NAS
 
-    MUST treat a RADIUS Access-Accept requesting an unavailable service
 
-    as an Access-Reject instead.
 
- 1.1.  Specification of Requirements
 
-    In this document, several words are used to signify the requirements
 
-    of the specification.  These words are often capitalized.  The key
 
-    words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD",
 
-    "SHOULD NOT", "RECOMMENDED",  "MAY", and "OPTIONAL" in this document
 
-    are to be interpreted as described in [RFC2119].
 
- 1.2.  Terminology
 
-    This document frequently uses the following terms:
 
-    authenticator
 
-              The end of the link requiring the authentication.  Also
 
-              known as the Network Access Server (NAS) or RADIUS client.
 
-              Within IEEE 802.1X terminology, the term Authenticator is
 
-              used.
 
-    peer      The other end of the point-to-point link (PPP),
 
-              point-to-point LAN segment (IEEE 802.1X) or wireless link,
 
-              which is being authenticated by the authenticator.  In IEEE
 
-              802.1X, this end is known as the Supplicant.
 
-    authentication server
 
-              An authentication server is an entity that provides an
 
-              authentication service to an authenticator (NAS).  This
 
-              service verifies from the credentials provided by the peer,
 
-              the claim of identity made by the peer; it also may provide
 
-              credentials allowing the peer to verify the identity of the
 
-              authentication server.  Within this document it is assumed
 
-              that the NAS operates as a pass-through, forwarding EAP
 
-              packets between the RADIUS server and the EAP peer.
 
- Aboba & Calhoun              Informational                      [Page 3]
 
- RFC 3579                      RADIUS & EAP                September 2003
 
-              Therefore the RADIUS server operates as an authentication
 
-              server.
 
-    silently discard
 
-              This means the implementation discards the packet without
 
-              further processing.  The implementation SHOULD provide the
 
-              capability of logging the error, including the contents of
 
-              the silently discarded packet, and SHOULD record the event
 
-              in a statistics counter.
 
-    displayable message
 
-              This is interpreted to be a human readable string of
 
-              characters, and MUST NOT affect operation of the protocol.
 
-              The message encoding MUST follow the UTF-8 transformation
 
-              format [RFC2279].
 
-    Network Access Server (NAS)
 
-              The device providing access to the network.  Also known as
 
-              the Authenticator (IEEE 802.1X or EAP terminology) or
 
-              RADIUS client.
 
-    service   The NAS provides a service to the user, such as IEEE 802 or
 
-              PPP.
 
-    session   Each service provided by the NAS to a peer constitutes a
 
-              session, with the beginning of the session defined as the
 
-              point where service is first provided and the end of the
 
-              session defined as the point where service is ended.  A
 
-              peer may have multiple sessions in parallel or series if
 
-              the NAS supports that, with each session generating a
 
-              separate start and stop accounting record.
 
- 2.  RADIUS Support for EAP
 
-    The Extensible Authentication Protocol (EAP), described in [RFC2284],
 
-    provides a standard mechanism for support of additional
 
-    authentication methods without the NAS to be upgraded to support each
 
-    new method.  Through the use of EAP, support for a number of
 
-    authentication schemes may be added, including smart cards, Kerberos
 
-    [RFC1510], Public Key [RFC2716], One Time Passwords [RFC2284], and
 
-    others.
 
-    One of the advantages of the EAP architecture is its flexibility.
 
-    EAP is used to select a specific authentication mechanism.  Rather
 
-    than requiring the NAS to be updated to support each new
 
-    authentication method, EAP permits the use of an authentication
 
-    server implementing authentication methods, with the NAS acting as a
 
-    pass-through for some or all methods and peers.
 
- Aboba & Calhoun              Informational                      [Page 4]
 
- RFC 3579                      RADIUS & EAP                September 2003
 
-    A NAS MAY authenticate local peers while at the same time acting as a
 
-    pass-through for non-local peers and authentication methods it does
 
-    not implement locally.  A NAS implementing this specification is not
 
-    required to use RADIUS to authenticate every peer.  However, once the
 
-    NAS begins acting as a pass-through for a particular session, it can
 
-    no longer perform local authentication for that session.
 
-    In order to support EAP within RADIUS, two new attributes,
 
-    EAP-Message and Message-Authenticator, are introduced in this
 
-    document.  This section describes how these new attributes may be
 
-    used for providing EAP support within RADIUS.
 
- 2.1.  Protocol Overview
 
-    In RADIUS/EAP, RADIUS is used to shuttle RADIUS-encapsulated EAP
 
-    Packets between the NAS and an authentication server.
 
-    The authenticating peer and the NAS begin the EAP conversation by
 
-    negotiating use of EAP.  Once EAP has been negotiated, the NAS SHOULD
 
-    send an initial EAP-Request message to the authenticating peer.  This
 
-    will typically be an EAP-Request/Identity, although it could be an
 
-    EAP-Request for an authentication method (Types 4 and greater).  A
 
-    NAS MAY be configured to initiate with a default authentication
 
-    method.  This is useful in cases where the identity is determined by
 
-    another means (such as Called-Station-Id, Calling-Station-Id and/or
 
-    Originating-Line-Info); where a single authentication method is
 
-    required, which includes its own identity exchange; where identity
 
-    hiding is desired, so that the identity is not requested until after
 
-    a protected channel has been set up.
 
-    The peer replies with an EAP-Response.  The NAS MAY determine from
 
-    the Response that it should proceed with local authentication.
 
-    Alternatively, the NAS MAY act as a pass-through, encapsulating the
 
-    EAP-Response within EAP-Message attribute(s) sent to the RADIUS
 
-    server within a RADIUS Access-Request packet.  If the NAS sends an
 
-    EAP-Request/Identity message as the initial packet, the peer responds
 
-    with an EAP-Response/Identity.  The NAS may determine that the peer
 
-    is local and proceed with local authentication.  If no match is found
 
-    against the list of local users, the NAS encapsulates the
 
-    EAP-Response/Identity message within an EAP-Message attribute,
 
-    enclosed within an Access-Request packet.
 
-    On receiving a valid Access-Request packet containing EAP-Message
 
-    attribute(s), a RADIUS server compliant with this specification and
 
-    wishing to authenticate with EAP MUST respond with an
 
-    Access-Challenge packet containing EAP-Message attribute(s).  If the
 
-    RADIUS server does not support EAP or does not wish to authenticate
 
-    with EAP, it MUST respond with an Access-Reject.
 
- Aboba & Calhoun              Informational                      [Page 5]
 
- RFC 3579                      RADIUS & EAP                September 2003
 
-    EAP-Message attribute(s) encapsulate a single EAP packet which the
 
-    NAS decapsulates and passes on to the authenticating peer.  The peer
 
-    then responds with an EAP-Response packet, which the NAS encapsulates
 
-    within an Access-Request containing EAP-Message attribute(s).  EAP is
 
-    a 'lock step' protocol, so that other than the initial Request, a new
 
-    Request cannot be sent prior to receiving a valid Response.
 
-    The conversation continues until either a RADIUS Access-Reject or
 
-    Access-Accept packet is received from the RADIUS server.  Reception
 
-    of a RADIUS Access-Reject packet MUST result in the NAS denying
 
-    access to the authenticating peer.  A RADIUS Access-Accept packet
 
-    successfully ends the authentication phase.  The NAS MUST NOT
 
-    "manufacture" a Success or Failure packet as the result of a timeout.
 
-    After a suitable number of timeouts have elapsed, the NAS SHOULD
 
-    instead end the EAP conversation.
 
-    Using RADIUS, the NAS can act as a pass-through for an EAP
 
-    conversation between the peer and authentication server, without
 
-    needing to implement the EAP method used between them.  Where the NAS
 
-    initiates the conversation by sending an EAP-Request for an
 
-    authentication method, it may not be required that the NAS fully
 
-    implement the EAP method reflected in the initial EAP-Request.
 
-    Depending on the initial method, it may be sufficient for the NAS to
 
-    be configured with the initial packet to be sent to the peer, and for
 
-    the NAS to act as a pass-through for subsequent messages.  Note that
 
-    since the NAS only encapsulates the EAP-Response in its initial
 
-    Access-Request, the initial EAP-Request within the authentication
 
-    method is not available to the RADIUS server.  For the RADIUS server
 
-    to be able to continue the conversation, either the initial
 
-    EAP-Request is vestigial, so that the RADIUS server need not be aware
 
-    of it, or the relevant information from the initial EAP-Request (such
 
-    as a nonce) is reflected in the initial EAP-Response, so that the
 
-    RADIUS server can obtain it without having received the initial
 
-    EAP-Request.
 
-    Where the initial EAP-Request sent by the NAS is for an
 
-    authentication Type (4 or greater), the peer MAY respond with a Nak
 
-    indicating that it would prefer another authentication method that is
 
-    not implemented locally.  In this case, the NAS SHOULD send
 
-    Access-Request encapsulating the received EAP-Response/Nak.  This
 
-    provides the RADIUS server with a hint about the authentication
 
-    method(s) preferred by the peer, although it does not provide
 
-    information on the Type of the original Request.  It also provides
 
-    the server with the Identifier used in the initial EAP-Request, so
 
-    that Identifier conflicts can be avoided.
 
- Aboba & Calhoun              Informational                      [Page 6]
 
- RFC 3579                      RADIUS & EAP                September 2003
 
-    In order to evaluate whether the alternatives preferred by the
 
-    authenticating peer are allowed, the RADIUS server will typically
 
-    respond with an Access-Challenge containing EAP-Message attribute(s)
 
-    encapsulating an EAP-Request/Identity (Type 1).  This allows the
 
-    RADIUS server to determine the peer identity, so as to be able to
 
-    retrieve the associated authentication policy.  Alternatively, an
 
-    EAP-Request for an authentication method (Type 4 or greater) could be
 
-    sent.  Since the RADIUS server may not be aware of the Type of the
 
-    initial EAP-Request, it is possible for the RADIUS server to choose
 
-    an unacceptable method, and for the peer to respond with another Nak.
 
-    In order to permit non-EAP aware RADIUS proxies to forward the
 
-    Access-Request packet, if the NAS initially sends an
 
-    EAP-Request/Identity message to the peer, the NAS MUST copy the
 
-    contents of the Type-Data field of the EAP-Response/Identity received
 
-    from the peer into the User-Name attribute and MUST include the
 
-    Type-Data field of the EAP-Response/Identity in the User-Name
 
-    attribute in every subsequent Access-Request.  Since RADIUS proxies
 
-    are assumed to act as a pass-through, they cannot be expected to
 
-    parse an EAP-Response/Identity encapsulated within EAP-Message
 
-    attribute(s).  If the NAS initially sends an EAP-Request for an
 
-    authentication method, and the peer identity cannot be determined
 
-    from the EAP-Response, then the User-Name attribute SHOULD be
 
-    determined by another means.  As noted in [RFC2865] Section 5.6, it
 
-    is recommended that Access-Requests use the value of the
 
-    Calling-Station-Id as the value of the User-Name attribute.
 
-    Having the NAS send the initial EAP-Request packet has a number of
 
-    advantages:
 
-    [1]  It saves a round trip between the NAS and RADIUS server.
 
-    [2]  An Access-Request is only sent to the RADIUS server if the
 
-         authenticating peer sends an EAP-Response, confirming that it
 
-         supports EAP.  In situations where peers may be EAP unaware,
 
-         initiating a RADIUS Access-Request on a "carrier sense" or
 
-         "media up" indication may result in many authentication
 
-         exchanges that cannot complete successfully.  For example, on
 
-         wired networks [IEEE8021X] Supplicants typically do not initiate
 
-         the 802.1X conversation with an EAPOL-Start.  Therefore an IEEE
 
-         802.1X-enabled bridge may not be able to determine whether the
 
-         peer supports EAP until it receives a Response to the initial
 
-         EAP-Request.
 
-    [3]  It allows some peers to be authenticated locally.
 
- Aboba & Calhoun              Informational                      [Page 7]
 
- RFC 3579                      RADIUS & EAP                September 2003
 
-    Although having the NAS send the initial EAP-Request packet has
 
-    substantial advantages, this technique cannot be universally
 
-    employed.  There are circumstances in which the peer identity is
 
-    already known (such as when authentication and accounting is handled
 
-    based on Called-Station-Id, Calling-Station-Id and/or
 
-    Originating-Line-Info), but where the appropriate EAP method may vary
 
-    based on that identity.
 
-    Rather than sending an initial EAP-Request packet to the
 
-    authenticating peer, on detecting the presence of the peer, the NAS
 
-    MAY send an Access-Request packet to the RADIUS server containing an
 
-    EAP-Message attribute signifying EAP-Start.  The RADIUS server will
 
-    typically respond with an Access-Challenge containing EAP-Message
 
-    attribute(s) encapsulating an EAP-Request/Identity (Type 1).
 
-    However, an EAP-Request for an authentication method (Type 4 or
 
-    greater) can also be sent by the server.
 
-    EAP-Start is indicated by sending an EAP-Message attribute with a
 
-    length of 2 (no data).  The Calling-Station-Id SHOULD be included in
 
-    the User-Name attribute.  This may result in a RADIUS Access-Request
 
-    being sent by the NAS to the RADIUS server without first confirming
 
-    that the peer supports EAP.  Since this technique can result in a
 
-    large number of uncompleted RADIUS conversations, in situations where
 
-    EAP unaware peers are common, or where peer support for EAP cannot be
 
-    determined on initial contact (e.g. [IEEE8021X] Supplicants not
 
-    initiating the conversation with an EAPOL-Start) it SHOULD NOT be
 
-    employed by default.
 
-    For proxied RADIUS requests, there are two methods of processing.  If
 
-    the domain is determined based on the Calling-Station-Id,
 
-    Called-Station-Id and/or Originating-Line-Info, the RADIUS server may
 
-    proxy the initial RADIUS Access-Request/EAP-Start.  If the realm is
 
-    determined based on the peer identity, the local RADIUS server MUST
 
-    respond with a RADIUS Access-Challenge including an EAP-Message
 
-    attribute encapsulating an EAP-Request/Identity packet.  The response
 
-    from the authenticating peer SHOULD be proxied to the final
 
-    authentication server.
 
-    If an Access-Request is sent to a RADIUS server which does not
 
-    support the EAP-Message attribute, then an Access-Reject MUST be sent
 
-    in response.  On receiving an Access-Reject, the NAS MUST deny access
 
-    to the authenticating peer.
 
- Aboba & Calhoun              Informational                      [Page 8]
 
- RFC 3579                      RADIUS & EAP                September 2003
 
- 2.2.  Invalid Packets
 
-    While acting as a pass-through, the NAS MUST validate the EAP header
 
-    fields (Code, Identifier, Length) prior to forwarding an EAP packet
 
-    to or from the RADIUS server.  On receiving an EAP packet from the
 
-    peer, the NAS checks the Code (2) and Length fields, and matches the
 
-    Identifier value against the current Identifier, supplied by the
 
-    RADIUS server in the most recently validated EAP-Request.  On
 
-    receiving an EAP packet from the RADIUS server (encapsulated within
 
-    an Access-Challenge), the NAS checks the Code (1) and Length fields,
 
-    then updates the current Identifier value.  Pending EAP Responses
 
-    that do not match the current Identifier value are silently discarded
 
-    by the NAS.
 
-    Since EAP method fields (Type, Type-Data) are typically not validated
 
-    by a NAS operating as a pass-through, despite these checks it is
 
-    possible for a NAS to forward an invalid EAP packet to or from the
 
-    RADIUS server.  A RADIUS server receiving EAP-Message attribute(s) it
 
-    does not understand SHOULD make the determination of whether the
 
-    error is fatal or non-fatal based on the EAP Type.  A RADIUS server
 
-    determining that a fatal error has occurred MUST send an
 
-    Access-Reject containing an EAP-Message attribute encapsulating
 
-    EAP-Failure.
 
-    A RADIUS server determining that a non-fatal error has occurred MAY
 
-    send an Access-Challenge to the NAS including EAP-Message
 
-    attribute(s) as well as an Error-Cause attribute [RFC3576] with value
 
-    202 (decimal), "Invalid EAP Packet (Ignored)".  The Access-Challenge
 
-    SHOULD encapsulate within EAP-Message attribute(s) the most recently
 
-    sent EAP-Request packet (including the same Identifier value).  On
 
-    receiving such an Access-Challenge, a NAS implementing previous
 
-    versions of this specification will decapsulate the EAP-Request and
 
-    send it to the peer, which will retransmit the EAP-Response.
 
-    A NAS compliant with this specification, on receiving an
 
-    Access-Challenge with an Error-Cause attribute of value 202 (decimal)
 
-    SHOULD discard the EAP-Response packet most recently transmitted to
 
-    the RADIUS server and check whether additional EAP-Response packets
 
-    have been received matching the current Identifier value.  If so, a
 
-    new EAP-Response packet, if available, MUST be sent to the RADIUS
 
-    server within an Access-Request, and the EAP-Message attribute(s)
 
-    included within the Access-Challenge are silently discarded.  If no
 
-    EAP-Response packet is available, then the EAP-Request encapsulated
 
-    within the Access-Challenge is sent to the peer, and the
 
-    retransmission timer is reset.
 
- Aboba & Calhoun              Informational                      [Page 9]
 
- RFC 3579                      RADIUS & EAP                September 2003
 
-    In order to provide protection against Denial of Service (DoS)
 
-    attacks, it is advisable for the NAS to allocate a finite buffer for
 
-    EAP packets received from the peer, and to discard packets according
 
-    to an appropriate policy once that buffer has been exceeded.  Also,
 
-    the RADIUS server is advised to permit only a modest number of
 
-    invalid EAP packets within a single session, prior to terminating the
 
-    session with an Access-Reject.  By default a value of 5 invalid EAP
 
-    packets is recommended.
 
- 2.3.  Retransmission
 
-    As noted in [RFC2284], if an EAP packet is lost in transit between
 
-    the authenticating peer and the NAS (or vice versa), the NAS will
 
-    retransmit.
 
-    It may be necessary to adjust retransmission strategies and
 
-    authentication timeouts in certain cases.  For example, when a token
 
-    card is used additional time may be required to allow the user to
 
-    find the card and enter the token.  Since the NAS will typically not
 
-    have knowledge of the required parameters, these need to be provided
 
-    by the RADIUS server.  This can be accomplished by inclusion of
 
-    Session-Timeout attribute within the Access-Challenge packet.
 
-    If Session-Timeout is present in an Access-Challenge packet that also
 
-    contains an EAP-Message, the value of the Session-Timeout is used to
 
-    set the EAP retransmission timer for that EAP Request, and that
 
-    Request alone.  Once the EAP-Request has been sent, the NAS sets the
 
-    retransmission timer, and if it expires without having received an
 
-    EAP-Response corresponding to the Request, then the EAP-Request is
 
-    retransmitted.
 
- 2.4.  Fragmentation
 
-    Using the EAP-Message attribute, it is possible for the RADIUS server
 
-    to encapsulate an EAP packet that is larger than the MTU on the link
 
-    between the NAS and the peer.  Since it is not possible for the
 
-    RADIUS server to use MTU discovery to ascertain the link MTU, the
 
-    Framed-MTU attribute may be included in an Access-Request packet
 
-    containing an EAP-Message attribute so as to provide the RADIUS
 
-    server with this information.  A RADIUS server having received a
 
-    Framed-MTU attribute in an Access-Request packet MUST NOT send any
 
-    subsequent packet in this EAP conversation containing EAP-Message
 
-    attributes whose values, when concatenated, exceed the length
 
-    specified by the Framed-MTU value, taking the link type (specified by
 
-    the NAS-Port-Type attribute) into account.  For example, as noted in
 
-    [RFC3580] Section 3.10, for a NAS-Port-Type value of IEEE 802.11, the
 
- Aboba & Calhoun              Informational                     [Page 10]
 
- RFC 3579                      RADIUS & EAP                September 2003
 
-    RADIUS server may send an EAP packet as large as Framed-MTU minus
 
-    four (4) octets, taking into account the additional overhead for the
 
-    IEEE 802.1X Version (1), Type (1) and Body Length (2) fields.
 
- 2.5.  Alternative Uses
 
-    Currently the conversation between security servers and the RADIUS
 
-    server is often proprietary because of lack of standardization.  In
 
-    order to increase standardization and provide interoperability
 
-    between RADIUS vendors and  security vendors, it is recommended that
 
-    RADIUS- encapsulated EAP be used for this conversation.
 
-    This has the advantage of allowing the RADIUS server to support EAP
 
-    without the need for authentication-specific code within the RADIUS
 
-    server.  Authentication-specific code can then reside on a security
 
-    server instead.
 
-    In the case where RADIUS-encapsulated EAP is used in a conversation
 
-    between a RADIUS server and a security server, the security server
 
-    will typically return an Access-Accept message without inclusion of
 
-    the expected attributes currently returned in an Access-Accept.  This
 
-    means that the RADIUS server MUST add these attributes prior to
 
-    sending an Access-Accept message to the NAS.
 
- 2.6.  Usage Guidelines
 
- 2.6.1.  Identifier Space
 
-    In EAP, each session has its own unique Identifier space.  RADIUS
 
-    server implementations MUST be able to distinguish between EAP
 
-    packets with the same Identifier existing within distinct sessions,
 
-    originating on the same NAS.  For this purpose, sessions can be
 
-    distinguished based on NAS and session identification attributes.
 
-    NAS identification attributes include NAS-Identifier,
 
-    NAS-IPv6-Address and NAS-IPv4-Address.  Session identification
 
-    attributes include User-Name, NAS-Port, NAS-Port-Type, NAS-Port-Id,
 
-    Called-Station-Id, Calling-Station-Id and Originating-Line-Info.
 
- 2.6.2.  Role Reversal
 
-    Since EAP is a peer-to-peer protocol, an independent and simultaneous
 
-    authentication may take place in the reverse direction.  Both peers
 
-    may act as authenticators and authenticatees at the same time.
 
-    However, role reversal is not supported by this specification.  A
 
-    RADIUS server MUST respond to an Access-Request encapsulating an
 
-    EAP-Request with an Access-Reject.  In order to avoid retransmissions
 
- Aboba & Calhoun              Informational                     [Page 11]
 
- RFC 3579                      RADIUS & EAP                September 2003
 
-    by the peer, the Access-Reject SHOULD include an EAP-Response/Nak
 
-    packet indicating no preferred method, encapsulated within
 
-    EAP-Message attribute(s).
 
- 2.6.3.  Conflicting Messages
 
-    The NAS MUST make its access control decision based solely on the
 
-    RADIUS Packet Type (Access-Accept/Access-Reject).  The access control
 
-    decision MUST NOT be based on the contents of the EAP packet
 
-    encapsulated in one or more EAP-Message attributes, if present.
 
-    Access-Accept packets SHOULD have only one EAP-Message attribute in
 
-    them, containing EAP Success; similarly, Access-Reject packets SHOULD
 
-    have only one EAP-Message attribute in them, containing EAP Failure.
 
-    Where the encapsulated EAP packet does not match the result implied
 
-    by the RADIUS Packet Type, the combination is likely to cause
 
-    confusion, because the NAS and peer will arrive at different
 
-    conclusions as to the outcome of the authentication.
 
-    For example, if the NAS receives an Access-Reject with an
 
-    encapsulated EAP Success, it will not grant access to the peer.
 
-    However, on receiving the EAP Success, the peer will be lead to
 
-    believe that it authenticated successfully.
 
-    If the NAS receives an Access-Accept with an encapsulated EAP
 
-    Failure, it will grant access to the peer.  However, on receiving an
 
-    EAP Failure, the peer will be lead to believe that it failed
 
-    authentication.  If no EAP-Message attribute is included within an
 
-    Access-Accept or Access-Reject, then the peer may not be informed as
 
-    to the outcome of the authentication, while the NAS will take action
 
-    to allow or deny access.
 
-    As described in [RFC2284], the EAP Success and Failure packets are
 
-    not acknowledged, and these packets terminate the EAP conversation.
 
-    As a result, if these packets are encapsulated within an
 
-    Access-Challenge, no response will be received, and therefore the NAS
 
-    will send no further Access-Requests to the RADIUS server for the
 
-    session.  As a result, the RADIUS server will not indicate to the NAS
 
-    whether to allow or deny access, while the peer will be informed as
 
-    to the outcome of the authentication.
 
- Aboba & Calhoun              Informational                     [Page 12]
 
- RFC 3579                      RADIUS & EAP                September 2003
 
-    To avoid these conflicts, the following combinations SHOULD NOT be
 
-    sent by a RADIUS server:
 
-       Access-Accept/EAP-Message/EAP Failure
 
-       Access-Accept/no EAP-Message attribute
 
-       Access-Accept/EAP-Start
 
-       Access-Reject/EAP-Message/EAP Success
 
-       Access-Reject/no EAP-Message attribute
 
-       Access-Reject/EAP-Start
 
-       Access-Challenge/EAP-Message/EAP Success
 
-       Access-Challenge/EAP-Message/EAP Failure
 
-       Access-Challenge/no EAP-Message attribute
 
-       Access-Challenge/EAP-Start
 
-    Since the responsibility for avoiding conflicts lies with the RADIUS
 
-    server, the NAS MUST NOT "manufacture" EAP packets in order to
 
-    correct contradictory messages that it receives.  This behavior,
 
-    originally mandated within [IEEE8021X], will be deprecated in the
 
-    future.
 
- 2.6.4.  Priority
 
-    A RADIUS Access-Accept or Access-Reject packet may contain EAP-
 
-    Message attribute(s). In order to ensure the correct processing of
 
-    RADIUS packets, the NAS MUST first process the attributes, including
 
-    the EAP-Message attribute(s), prior to processing the Accept/Reject
 
-    indication.
 
- 2.6.5.  Displayable Messages
 
-    The Reply-Message attribute, defined in [RFC2865], Section 5.18,
 
-    indicates text which may be displayed to the peer.  This is similar
 
-    in concept to EAP Notification, defined in [RFC2284].  When sending a
 
-    displayable message to a NAS during an EAP conversation, the RADIUS
 
-    server MUST encapsulate displayable messages within
 
-    EAP-Message/EAP-Request/Notification attribute(s).  Reply-Message
 
-    attribute(s) MUST NOT be included in any RADIUS message containing an
 
-    EAP-Message attribute.  An EAP-Message/EAP-Request/Notification
 
-    SHOULD NOT be included within an Access-Accept or Access-Reject
 
-    packet.
 
-    In some existing implementations, a NAS receiving Reply-Message
 
-    attribute(s) copies the Text field(s) into the Type-Data field of an
 
-    EAP-Request/Notification packet, fills in the Identifier field, and
 
-    sends this to the peer.  However, several issues arise from this:
 
- Aboba & Calhoun              Informational                     [Page 13]
 
- RFC 3579                      RADIUS & EAP                September 2003
 
-    [1]  Unexpected Responses.  On receiving an EAP-Request/Notification,
 
-         the peer will send an EAP-Response/Notification, and the NAS
 
-         will pass this on to the RADIUS server, encapsulated within
 
-         EAP-Message attribute(s).  However, the RADIUS server may not be
 
-         expecting an Access-Request containing an
 
-         EAP-Message/EAP-Response/Notification attribute.
 
-         For example, consider what happens when a Reply-Message is
 
-         included within an Access-Accept or Access-Reject packet with no
 
-         EAP-Message attribute(s) present.  If the value of the
 
-         Reply-Message attribute is copied into the Type-Data of an
 
-         EAP-Request/Notification and sent to the peer, this will result
 
-         in an Access-Request containing an
 
-         EAP-Message/EAP-Response/Notification attribute being sent by
 
-         the NAS to the RADIUS server.  Since an Access-Accept or
 
-         Access-Reject packet terminates the RADIUS conversation, such an
 
-         Access-Request would not be expected, and could be interpreted
 
-         as the start of another conversation.
 
-    [2]  Identifier conflicts.  While the EAP-Request/Notification is an
 
-         EAP packet containing an Identifier field, the Reply-Message
 
-         attribute does not contain an Identifier field.  As a result, a
 
-         NAS receiving a Reply-Message attribute and wishing to translate
 
-         this to an EAP-Request/Notification will need to choose an
 
-         Identifier value.  It is possible that the chosen Identifier
 
-         value will conflict with a value chosen by the RADIUS server for
 
-         another packet within the EAP conversation, potentially causing
 
-         confusion between a new packet and a retransmission.
 
-    To avoid these problems, a NAS receiving a Reply-Message attribute
 
-    from the RADIUS server SHOULD silently discard the attribute, rather
 
-    than attempting to translate it to an EAP Notification Request.
 
- 3.  Attributes
 
-    The NAS-Port or NAS-Port-Id attributes SHOULD be included by the NAS
 
-    in Access-Request packets, and either NAS-Identifier, NAS-IP-Address
 
-    or NAS-IPv6-Address attributes MUST be included.  In order to permit
 
-    forwarding of the Access-Reply by EAP-unaware proxies, if a User-Name
 
-    attribute was included in an Access-Request, the RADIUS server MUST
 
-    include the User-Name attribute in subsequent Access-Accept packets.
 
-    Without the User-Name attribute, accounting and billing becomes
 
-    difficult to manage.  The User-Name attribute within the Access-
 
-    Accept packet need not be the same as the User-Name attribute in the
 
-    Access-Request.
 
- Aboba & Calhoun              Informational                     [Page 14]
 
- RFC 3579                      RADIUS & EAP                September 2003
 
- 3.1.  EAP-Message
 
-    Description
 
-       This attribute encapsulates EAP [RFC2284] packets so as to allow
 
-       the NAS to authenticate peers via EAP without having to understand
 
-       the EAP method it is passing through.
 
-       The NAS places EAP messages received from the authenticating peer
 
-       into one or more EAP-Message attributes and forwards them to the
 
-       RADIUS server within an Access-Request message.  If multiple
 
-       EAP-Message attributes are contained within an Access-Request or
 
-       Access-Challenge packet, they MUST be in order and they MUST be
 
-       consecutive attributes in the Access-Request or Access-Challenge
 
-       packet.  The RADIUS server can return EAP-Message attributes in
 
-       Access-Challenge, Access-Accept and Access-Reject packets.
 
-       When RADIUS is used to enable EAP authentication, Access-Request,
 
-       Access-Challenge, Access-Accept, and Access-Reject packets SHOULD
 
-       contain one or more EAP-Message attributes.  Where more than one
 
-       EAP-Message attribute is included, it is assumed that the
 
-       attributes are to be concatenated to form a single EAP packet.
 
-       Multiple EAP packets MUST NOT be encoded within EAP-Message
 
-       attributes contained within a single Access-Challenge,
 
-       Access-Accept, Access-Reject or Access-Request packet.
 
-       It is expected that EAP will be used to implement a variety of
 
-       authentication methods, including methods involving strong
 
-       cryptography.  In order to prevent attackers from subverting EAP
 
-       by attacking RADIUS/EAP, (for example, by modifying EAP Success or
 
-       EAP Failure packets) it is necessary that RADIUS provide
 
-       per-packet authentication and integrity protection.
 
-       Therefore the Message-Authenticator attribute MUST be used to
 
-       protect all Access-Request, Access-Challenge, Access-Accept, and
 
-       Access-Reject packets containing an EAP-Message attribute.
 
-       Access-Request packets including EAP-Message attribute(s) without
 
-       a Message-Authenticator attribute SHOULD be silently discarded by
 
-       the RADIUS server.  A RADIUS server supporting the EAP-Message
 
-       attribute MUST calculate the correct value of the
 
-       Message-Authenticator and MUST silently discard the packet if it
 
-       does not match the value sent.  A RADIUS server not supporting the
 
-       EAP-Message attribute MUST return an Access-Reject if it receives
 
-       an Access-Request containing an EAP-Message attribute.
 
- Aboba & Calhoun              Informational                     [Page 15]
 
- RFC 3579                      RADIUS & EAP                September 2003
 
-       Access-Challenge, Access-Accept, or Access-Reject packets
 
-       including EAP-Message attribute(s) without a Message-Authenticator
 
-       attribute SHOULD be silently discarded by the NAS.  A NAS
 
-       supporting the EAP-Message attribute MUST calculate the correct
 
-       value of the Message-Authenticator and MUST silently discard the
 
-       packet if it does not match the value sent.
 
-       A summary of the EAP-Message 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
 
-       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
-       |     Type      |    Length     |     String...
 
-       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
-    Type
 
-       79 for EAP-Message
 
-    Length
 
-       >= 3
 
-    String
 
-       The String field contains an EAP packet, as defined in [RFC2284].
 
-       If multiple EAP-Message attributes are present in a packet their
 
-       values should be concatenated; this allows EAP packets longer than
 
-       253 octets to be transported by RADIUS.
 
- 3.2.  Message-Authenticator
 
-    Description
 
-       This attribute MAY be used to authenticate and integrity-protect
 
-       Access-Requests in order to prevent spoofing.  It MAY be used in
 
-       any Access-Request.  It MUST be used in any Access-Request,
 
-       Access-Accept, Access-Reject or Access-Challenge that includes an
 
-       EAP-Message attribute.
 
-       A RADIUS server receiving an Access-Request with a
 
-       Message-Authenticator attribute present MUST calculate the correct
 
-       value of the Message-Authenticator and silently discard the packet
 
-       if it does not match the value sent.
 
- Aboba & Calhoun              Informational                     [Page 16]
 
- RFC 3579                      RADIUS & EAP                September 2003
 
-       A RADIUS client receiving an Access-Accept, Access-Reject or
 
-       Access-Challenge with a Message-Authenticator attribute present
 
-       MUST calculate the correct value of the Message-Authenticator and
 
-       silently discard the packet if it does not match the value sent.
 
-       This attribute is not required in Access-Requests which include
 
-       the User-Password attribute, but is useful for preventing attacks
 
-       on other types of authentication.  This attribute is intended to
 
-       thwart attempts by an attacker to setup a "rogue" NAS, and perform
 
-       online dictionary attacks against the RADIUS server.  It does not
 
-       afford protection against "offline" attacks where the attacker
 
-       intercepts packets containing (for example) CHAP challenge and
 
-       response, and performs a dictionary attack against those packets
 
-       offline.
 
-       A summary of the Message-Authenticator 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
 
-       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
-       |     Type      |    Length     |     String...
 
-       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
-    Type
 
-       80 for Message-Authenticator
 
-    Length
 
-       18
 
-    String
 
-       When present in an Access-Request packet, Message-Authenticator is
 
-       an HMAC-MD5 [RFC2104] hash of the entire Access-Request packet,
 
-       including Type, ID, Length and Authenticator, using the shared
 
-       secret as the key, as follows.
 
-       Message-Authenticator = HMAC-MD5 (Type, Identifier, Length,
 
-       Request Authenticator, Attributes)
 
-       When the message integrity check is calculated the signature
 
-       string should be considered to be sixteen octets of zero.
 
- Aboba & Calhoun              Informational                     [Page 17]
 
- RFC 3579                      RADIUS & EAP                September 2003
 
-       For Access-Challenge, Access-Accept, and Access-Reject packets,
 
-       the Message-Authenticator is calculated as follows, using the
 
-       Request-Authenticator from the Access-Request this packet is in
 
-       reply to:
 
-       Message-Authenticator = HMAC-MD5 (Type, Identifier, Length,
 
-       Request Authenticator, Attributes)
 
-       When the message integrity check is calculated the signature
 
-       string should be considered to be sixteen octets of zero.  The
 
-       shared secret is used as the key for the HMAC-MD5 message
 
-       integrity check.  The Message-Authenticator is calculated and
 
-       inserted in the packet before the Response Authenticator is
 
-       calculated.
 
- 3.3.  Table of Attributes
 
-    The following table provides a guide to which attributes may be found
 
-    in packets including EAP-Message attribute(s), and in what quantity.
 
-    The EAP-Message and Message-Authenticator attributes specified in
 
-    this document MUST NOT be present in an Accounting-Request.  If a
 
-    table entry is omitted, the values found in [RFC2548], [RFC2865],
 
-    [RFC2868], [RFC2869] and [RFC3162] should be assumed.
 
- Request  Accept  Reject  Challenge   #    Attribute
 
- 0-1      0-1     0       0            1   User-Name
 
- 0        0       0       0            2   User-Password [Note 1]
 
- 0        0       0       0            3   CHAP-Password [Note 1]
 
- 0        0       0       0           18   Reply-Message
 
- 0        0       0       0           60   CHAP-Challenge
 
- 0        0       0       0           70   ARAP-Password [Note 1]
 
- 0        0       0       0           75   Password-Retry
 
- 1+       1+      1+      1+          79   EAP-Message [Note 1]
 
- 1        1       1       1           80   Message-Authenticator [Note 1]
 
- 0-1      0       0       0           94   Originating-Line-Info [Note 3]
 
- 0        0       0-1     0-1        101   Error-Cause [Note 2]
 
- Request  Accept  Reject  Challenge   #    Attribute
 
-    [Note 1] An Access-Request that contains either a User-Password or
 
-    CHAP-Password or ARAP-Password or one or more EAP-Message attributes
 
-    MUST NOT contain more than one type of those four attributes.  If it
 
-    does not contain any of those four attributes, it SHOULD contain a
 
-    Message-Authenticator.  If any packet type contains an EAP-Message
 
-    attribute it MUST also contain a Message-Authenticator.  A RADIUS
 
-    server receiving an Access-Request not containing any of those four
 
-    attributes and also not containing a Message-Authenticator attribute
 
-    SHOULD silently discard it.
 
- Aboba & Calhoun              Informational                     [Page 18]
 
- RFC 3579                      RADIUS & EAP                September 2003
 
-    [Note 2] The Error-Cause attribute is defined in [RFC3576].
 
-    [Note 3] The Originating-Line-Info attribute is defined in [NASREQ].
 
-    The following table defines the meaning of the above table entries.
 
-    0     This attribute MUST NOT be present.
 
-    0+    Zero or more instances of this attribute MAY be present.
 
-    0-1   Zero or one instance of this attribute MAY be present.
 
-    1     Exactly one instance of this attribute MUST be present.
 
-    1+    One or more of these attributes MUST be present.
 
- 4.  Security Considerations
 
- 4.1.  Security Requirements
 
-    RADIUS/EAP is used in order to provide authentication and
 
-    authorization for network access.  As a result, both the RADIUS and
 
-    EAP portions of the conversation are potential targets of an attack.
 
-    Threats are discussed in [RFC2607], [RFC2865], and [RFC3162].
 
-    Examples include:
 
-    [1]  An adversary may attempt to acquire confidential data and
 
-         identities by snooping RADIUS packets.
 
-    [2]  An adversary may attempt to modify packets containing RADIUS
 
-         messages.
 
-    [3]  An adversary may attempt to inject packets into a RADIUS
 
-         conversation.
 
-    [4]  An adversary may launch a dictionary attack against the RADIUS
 
-         shared secret.
 
-    [5]  An adversary may launch a known plaintext attack, hoping to
 
-         recover the key stream corresponding to a Request Authenticator.
 
-    [6]  An adversary may attempt to replay a RADIUS exchange.
 
-    [7]  An adversary may attempt to disrupt the EAP negotiation, in
 
-         order to weaken the authentication, or gain access to peer
 
-         passwords.
 
-    [8]  An authenticated NAS may attempt to forge NAS or session
 
-         identification attributes,
 
-    [9]  A rogue (unauthenticated) NAS may attempt to impersonate a
 
-         legitimate NAS.
 
- Aboba & Calhoun              Informational                     [Page 19]
 
- RFC 3579                      RADIUS & EAP                September 2003
 
-    [10] An attacker may attempt to act as a man-in-the-middle.
 
-    To address these threats, it is necessary to support confidentiality,
 
-    data origin authentication, integrity, and replay protection on a
 
-    per-packet basis.  Bi-directional authentication between the RADIUS
 
-    client and server also needs to be provided.  There is no requirement
 
-    that the identities of RADIUS clients and servers be kept
 
-    confidential (e.g., from a passive eavesdropper).
 
- 4.2.  Security Protocol
 
-    To address the security vulnerabilities of RADIUS/EAP,
 
-    implementations of this specification SHOULD support IPsec [RFC2401]
 
-    along with IKE [RFC2409] for key management.  IPsec ESP [RFC2406]
 
-    with non-null transform SHOULD be supported, and IPsec ESP with a
 
-    non-null encryption transform and authentication support SHOULD be
 
-    used to provide per-packet confidentiality, authentication, integrity
 
-    and replay protection.  IKE SHOULD be used for key management.
 
-    Within RADIUS [RFC2865], a shared secret is used for hiding of
 
-    attributes such as User-Password, as well as in computation of the
 
-    Response Authenticator.  In RADIUS accounting [RFC2866], the shared
 
-    secret is used in computation of both the Request Authenticator and
 
-    the Response Authenticator.
 
-    Since in RADIUS a shared secret is used to provide confidentiality as
 
-    well as integrity protection and authentication, only use of IPsec
 
-    ESP with a non-null transform can provide security services
 
-    sufficient to substitute for RADIUS application-layer security.
 
-    Therefore, where IPSEC AH or ESP null is used, it will typically
 
-    still be necessary to configure a RADIUS shared secret.
 
-    Where RADIUS is run over IPsec ESP with a non-null transform, the
 
-    secret shared between the NAS and the RADIUS server MAY NOT be
 
-    configured.  In this case, a shared secret of zero length MUST be
 
-    assumed.  However, a RADIUS server that cannot know whether incoming
 
-    traffic is IPsec-protected MUST be configured with a non-null RADIUS
 
-    shared secret.
 
-    When IPsec ESP is used with RADIUS, per-packet authentication,
 
-    integrity and replay protection MUST be used.  3DES-CBC MUST be
 
-    supported as an encryption transform and AES-CBC SHOULD be supported.
 
-    AES-CBC SHOULD be offered as a preferred encryption transform if
 
-    supported.  HMAC-SHA1-96 MUST be supported as an authentication
 
-    transform.  DES-CBC SHOULD NOT be used as the encryption transform.
 
- Aboba & Calhoun              Informational                     [Page 20]
 
- RFC 3579                      RADIUS & EAP                September 2003
 
-    A typical IPsec policy for an IPsec-capable RADIUS client is
 
-    "Initiate IPsec, from me to any destination port UDP 1812".  This
 
-    causes an IPsec SA to be set up by the RADIUS client prior to sending
 
-    RADIUS traffic.  If some RADIUS servers contacted by the client do
 
-    not support IPsec, then a more granular policy will be required:
 
-    "Initiate IPsec, from me to IPsec-Capable-RADIUS-Server, destination
 
-    port UDP 1812".
 
-    For an IPsec-capable RADIUS server, a typical IPsec policy is "Accept
 
-    IPsec, from any to me, destination port 1812".  This causes the
 
-    RADIUS server to accept (but not require) use of IPsec.  It may not
 
-    be appropriate to require IPsec for all RADIUS clients connecting to
 
-    an IPsec-enabled RADIUS server, since some RADIUS clients may not
 
-    support IPsec.
 
-    Where IPsec is used for security, and no RADIUS shared secret is
 
-    configured, it is important that the RADIUS client and server perform
 
-    an authorization check.  Before enabling a host to act as a RADIUS
 
-    client, the RADIUS server SHOULD check whether the host is authorized
 
-    to provide network access.  Similarly, before enabling a host to act
 
-    as a RADIUS server, the RADIUS client SHOULD check whether the host
 
-    is authorized for that role.
 
-    RADIUS servers can be configured with the IP addresses (for IKE
 
-    Aggressive Mode with pre-shared keys) or FQDNs (for certificate
 
-    authentication) of RADIUS clients.  Alternatively, if a separate
 
-    Certification Authority (CA) exists for RADIUS clients, then the
 
-    RADIUS server can configure this CA as a trust anchor [RFC3280] for
 
-    use with IPsec.
 
-    Similarly, RADIUS clients can be configured with the IP addresses
 
-    (for IKE Aggressive Mode with pre-shared keys) or FQDNs (for
 
-    certificate authentication) of RADIUS servers.  Alternatively, if a
 
-    separate CA exists for RADIUS servers, then the RADIUS client can
 
-    configure this CA as a trust anchor for use with IPsec.
 
-    Since unlike SSL/TLS, IKE does not permit certificate policies to be
 
-    set on a per-port basis, certificate policies need to apply to all
 
-    uses of IPsec on RADIUS clients and servers.  In IPsec deployments
 
-    supporting only certificate authentication, a management station
 
-    initiating an IPsec-protected telnet session to the RADIUS server
 
-    would need to obtain a certificate chaining to the RADIUS client CA.
 
-    Issuing such a certificate might not be appropriate if the management
 
-    station was not authorized as a RADIUS client.
 
-    Where RADIUS clients may obtain their IP address dynamically (such as
 
-    an Access Point supporting DHCP), IKE Main Mode with pre-shared keys
 
-    [RFC2409] SHOULD NOT be used, since this requires use of a group
 
- Aboba & Calhoun              Informational                     [Page 21]
 
- RFC 3579                      RADIUS & EAP                September 2003
 
-    pre-shared key; instead, Aggressive Mode SHOULD be used.  IKEv2, a
 
-    work in progress, may address this issue in the future.  Where RADIUS
 
-    client addresses are statically assigned, either Aggressive Mode or
 
-    Main Mode MAY be used.  With certificate authentication, Main Mode
 
-    SHOULD be used.
 
-    Care needs to be taken with IKE Phase 1 Identity Payload selection in
 
-    order to enable mapping of identities to pre-shared keys even with
 
-    Aggressive Mode.  Where the ID_IPV4_ADDR or ID_IPV6_ADDR Identity
 
-    Payloads are used and addresses are dynamically assigned, mapping of
 
-    identities to keys is not possible, so that group pre-shared keys are
 
-    still a practical necessity.  As a result, the ID_FQDN identity
 
-    payload SHOULD be employed in situations where Aggressive mode is
 
-    utilized along with pre-shared keys and IP addresses are dynamically
 
-    assigned.  This approach also has other advantages, since it allows
 
-    the RADIUS server and client to configure themselves based on the
 
-    fully qualified domain name of their peers.
 
-    Note that with IPsec, security services are negotiated at the
 
-    granularity of an IPsec SA, so that RADIUS exchanges requiring a set
 
-    of security services different from those negotiated with existing
 
-    IPsec SAs will need to negotiate a new IPsec SA.  Separate IPsec SAs
 
-    are also advisable where quality of service considerations dictate
 
-    different handling RADIUS conversations.  Attempting to apply
 
-    different quality of service to connections handled by the same IPsec
 
-    SA can result in reordering, and falling outside the replay window.
 
-    For a discussion of the issues, see [RFC2983].
 
- 4.3.  Security Issues
 
-    This section provides more detail on the vulnerabilities identified
 
-    in Section 4.1., and how they may be mitigated.  Vulnerabilities
 
-    include:
 
-    Privacy issues
 
-    Spoofing and hijacking
 
-    Dictionary attacks
 
-    Known plaintext attacks
 
-    Replay attacks
 
-    Negotiation attacks
 
-    Impersonation
 
-    Man in the middle attacks
 
-    Separation of authenticator and authentication server
 
-    Multiple databases
 
- Aboba & Calhoun              Informational                     [Page 22]
 
- RFC 3579                      RADIUS & EAP                September 2003
 
- 4.3.1.  Privacy Issues
 
-    Since RADIUS messages may contain the User-Name attribute as well as
 
-    NAS-IP-Address or NAS-Identifier attributes, an attacker snooping on
 
-    RADIUS traffic may be able to determine the geographic location of
 
-    peers in real time.  In wireless networks, it is often assumed that
 
-    RADIUS traffic is physically secure, since it typically travels over
 
-    the wired network and that this limits the release of location
 
-    information.
 
-    However, it is possible for an authenticated attacker to spoof ARP
 
-    packets [RFC826] so as to cause diversion of RADIUS traffic onto the
 
-    wireless network.  In this way an attacker may obtain RADIUS packets
 
-    from which it can glean peer location information, or which it can
 
-    subject to a known plaintext or offline dictionary attack.  To
 
-    address these vulnerabilities, implementations of this specification
 
-    SHOULD use IPsec ESP with non-null transform and per-packet
 
-    encryption, authentication, integrity and replay protection to
 
-    protect both RADIUS authentication [RFC2865] and accounting [RFC2866]
 
-    traffic, as described in Section 4.2.
 
- 4.3.2.  Spoofing and Hijacking
 
-    Access-Request packets with a User-Password attribute establish the
 
-    identity of both the user and the NAS sending the Access-Request,
 
-    because of the way the shared secret between the NAS and RADIUS
 
-    server is used.  Access-Request packets with CHAP-Password or
 
-    EAP-Message attributes do not have a User-Password attribute.  As a
 
-    result, the Message-Authenticator attribute SHOULD be used in
 
-    Access-Request packets that do not have a User-Password attribute, in
 
-    order to establish the identity of the NAS sending the request.
 
-    An attacker may attempt to inject packets into the conversation
 
-    between the NAS and the RADIUS server, or between the RADIUS server
 
-    and the security server.  RADIUS [RFC2865] does not support
 
-    encryption other than attribute hiding.  As described in [RFC2865],
 
-    only Access-Reply and Access-Challenge packets are integrity
 
-    protected.  Moreover, the per-packet authentication and integrity
 
-    protection mechanism described in [RFC2865] has known weaknesses
 
-    [MD5Attack], making it a tempting target for attackers looking to
 
-    subvert RADIUS/EAP.
 
-    To provide stronger security, the Message-Authenticator attribute
 
-    MUST be used in all RADIUS packets containing an EAP-Message
 
-    attribute.  Implementations of this specification SHOULD use IPsec
 
-    ESP with non-null transform and per-packet encryption,
 
-    authentication, integrity and replay protection, as described in
 
-    Section 4.2.
 
- Aboba & Calhoun              Informational                     [Page 23]
 
- RFC 3579                      RADIUS & EAP                September 2003
 
- 4.3.3.  Dictionary Attacks
 
-    The RADIUS shared secret is vulnerable to offline dictionary attack,
 
-    based on capture of the Response Authenticator or
 
-    Message-Authenticator attribute.  In order to decrease the level of
 
-    vulnerability, [RFC2865] recommends:
 
-       The secret (password shared between the client and the RADIUS
 
-       server) SHOULD be at least as large and unguessable as a
 
-       well-chosen password.  It is preferred that the secret be at least
 
-       16 octets.
 
-    The risk of an offline dictionary attack can be further reduced by
 
-    employing IPsec ESP with non-null transform in order to encrypt the
 
-    RADIUS conversation, as described in Section 4.2.
 
- 4.3.4.  Known Plaintext Attacks
 
-    Since EAP [RFC2284] does not support PAP, the RADIUS User-Password
 
-    attribute is not used to carry hidden user passwords within
 
-    RADIUS/EAP conversations.  The User-Password hiding mechanism,
 
-    defined in [RFC2865] utilizes MD5, defined in [RFC1321], in order to
 
-    generate a key stream based on the RADIUS shared secret and the
 
-    Request  Authenticator.  Where PAP is in use, it is possible to
 
-    collect key streams corresponding to a given Request Authenticator
 
-    value, by capturing RADIUS conversations corresponding to a PAP
 
-    authentication attempt, using a known password.  Since the
 
-    User-Password is known, the key stream corresponding to a given
 
-    Request Authenticator can be determined and stored.
 
-    Since the key stream may have been determined previously from a known
 
-    plaintext attack, if the Request Authenticator repeats, attributes
 
-    encrypted using the RADIUS attribute hiding mechanism should be
 
-    considered compromised.  In addition to the User-Password attribute,
 
-    which is not used with EAP, this includes attributes such as
 
-    Tunnel-Password [RFC2868, section 3.5] and MS-MPPE-Send-Key and
 
-    MS-MPPE-Recv-Key attributes [RFC2548, section 2.4], which include a
 
-    Salt field as part of the hiding algorithm.
 
-    To avoid this, [RFC2865], Section 3 advises:
 
-       Since it is expected that the same secret MAY be used to
 
-       authenticate with servers in disparate geographic regions, the
 
-       Request Authenticator field SHOULD exhibit global and temporal
 
-       uniqueness.
 
- Aboba & Calhoun              Informational                     [Page 24]
 
- RFC 3579                      RADIUS & EAP                September 2003
 
-    Where the Request Authenticator repeats, the Salt field defined in
 
-    [RFC2548], Section 2.4 does not provide protection against
 
-    compromise.  This is because MD5 [RFC1321], rather than HMAC-MD5
 
-    [RFC2104], is used to generate the key stream, which is calculated
 
-    from the 128-bit RADIUS shared secret (S), the  128-bit Request
 
-    Authenticator (R), and the Salt field (A), using the formula b(1) =
 
-    MD5(S + R + A).  Since the Salt field is placed at the end, if the
 
-    Request Authenticator were to repeat on a network where PAP is in
 
-    use, then the salted keystream could be calculated from the
 
-    User-Password keystream by continuing the MD5 calculation based on
 
-    the Salt field (A), which is sent in the clear.
 
-    Even though EAP does not support PAP authentication, a security
 
-    vulnerability can still exist where the same RADIUS shared secret is
 
-    used for hiding User-Password as well as other attributes.  This can
 
-    occur, for example, if the same RADIUS proxy handles authentication
 
-    requests for both EAP and PAP.
 
-    The threat can be mitigated by protecting RADIUS with IPsec ESP with
 
-    non-null transform, as described in Section 4.2.  Where RADIUS shared
 
-    secrets are configured, the RADIUS shared secret used by a NAS
 
-    supporting EAP MUST NOT be reused by a NAS utilizing the
 
-    User-Password attribute, since improper shared secret hygiene could
 
-    lead to compromise of hidden attributes.
 
- 4.3.5.  Replay Attacks
 
-    The RADIUS protocol provides only limited support for replay
 
-    protection.  RADIUS Access-Requests include liveness via the 128-bit
 
-    Request Authenticator.  However, the Request Authenticator is not a
 
-    replay counter.  Since RADIUS servers may not maintain a cache of
 
-    previous Request Authenticators, the Request Authenticator does not
 
-    provide replay protection.
 
-    RADIUS accounting [RFC2866] does not support replay protection at the
 
-    protocol level.  Due to the need to support failover between RADIUS
 
-    accounting servers, protocol-based replay protection is not
 
-    sufficient to prevent duplicate accounting records.  However, once
 
-    accepted by the accounting server, duplicate accounting records can
 
-    be detected by use of the the Acct-Session-Id [RFC2866, section 5.5]
 
-    and Event-Timestamp [RFC2869, section 5.3] attributes.
 
-    Unlike RADIUS authentication, RADIUS accounting does not use the
 
-    Request Authenticator as a nonce.  Instead, the Request Authenticator
 
-    contains an MD5 hash calculated over the Code, Identifier, Length,
 
-    and request attributes of the Accounting Request packet, plus the
 
-    shared secret.  The Response Authenticator also contains an MD5 hash
 
-    calculated over the Code, Identifier and Length, the Request
 
- Aboba & Calhoun              Informational                     [Page 25]
 
- RFC 3579                      RADIUS & EAP                September 2003
 
-    Authenticator field from the Accounting-Request packet being replied
 
-    to, the response attributes and the shared secret.
 
-    Since the Accounting Response Authenticator depends in part on the
 
-    Accounting Request Authenticator, it is not possible to replay an
 
-    Accounting-Response unless the Request Authenticator repeats.  While
 
-    it is possible to utilize EAP methods such as EAP TLS [RFC2716] which
 
-    include liveness checks on both sides, not all EAP messages will
 
-    include liveness so that this provides incomplete protection.
 
-    Strong replay protection for RADIUS authentication and accounting can
 
-    be provided by enabling IPsec replay protection with RADIUS, as
 
-    described in Section 4.2.
 
- 4.3.6.  Negotiation Attacks
 
-    In a negotiation attack a rogue NAS, tunnel server, RADIUS proxy or
 
-    RADIUS server attempts to cause the authenticating peer to choose a
 
-    less secure authentication method.  For example, a session that would
 
-    normally be authenticated with EAP would instead be authenticated via
 
-    CHAP or PAP; alternatively, a connection that would normally be
 
-    authenticated via a more secure EAP method such as EAP-TLS [RFC2716]
 
-    might be made to occur via a less secure EAP method, such as
 
-    MD5-Challenge.  The threat posed by rogue devices, once thought to be
 
-    remote, has gained currency given compromises of telephone company
 
-    switching systems, such as those described in [Masters].
 
-    Protection against negotiation attacks requires the elimination of
 
-    downward negotiations.  The RADIUS exchange may be further protected
 
-    by use of IPsec, as described in Section 4.2.  Alternatively, where
 
-    IPsec is not used, the vulnerability can be mitigated via
 
-    implementation of per-connection policy on the part of the
 
-    authenticating peer, and per-peer policy on the part of the RADIUS
 
-    server.  For the authenticating peer, authentication policy should be
 
-    set on a per-connection basis.  Per-connection policy allows an
 
-    authenticating peer to negotiate a strong EAP method when connecting
 
-    to one service, while negotiating a weaker EAP method for another
 
-    service.
 
-    With per-connection policy, an authenticating peer will only attempt
 
-    to negotiate EAP for a session in which EAP support is expected.  As
 
-    a result, there is a presumption that an authenticating peer
 
-    selecting EAP requires that level of security.  If it cannot be
 
-    provided, it is likely that there is some kind of misconfiguration,
 
-    or even that the authenticating peer is contacting the wrong server.
 
-    Should the NAS not be able to negotiate EAP, or should the
 
-    EAP-Request sent by the NAS be of a different EAP type than what is
 
-    expected, the authenticating peer MUST disconnect.  An authenticating
 
- Aboba & Calhoun              Informational                     [Page 26]
 
- RFC 3579                      RADIUS & EAP                September 2003
 
-    peer expecting EAP to be negotiated for a session MUST NOT negotiate
 
-    a weaker method, such as CHAP or PAP.  In wireless networks, the
 
-    service advertisement itself may be spoof-able, so that an attacker
 
-    could fool the peer into negotiating an authentication method
 
-    suitable for a less secure network.
 
-    For a NAS, it may not be possible to determine whether a peer is
 
-    required to authenticate with EAP until the peer's identity is known.
 
-    For example, for shared-uses NASes it is possible for one reseller to
 
-    implement EAP while another does not.  Alternatively, some peer might
 
-    be authenticated locally by the NAS while other peers are
 
-    authenticated via RADIUS.  In such cases, if any peers of the NAS
 
-    MUST do EAP, then the NAS MUST attempt to negotiate EAP for every
 
-    session.  This avoids forcing a peer to support more than one
 
-    authentication type, which could weaken security.
 
-    If CHAP is negotiated, the NAS will pass the User-Name and
 
-    CHAP-Password attributes to the RADIUS server in an Access-Request
 
-    packet.  If the peer is not required to use EAP, then the RADIUS
 
-    server will respond with an Access-Accept or Access-Reject packet as
 
-    appropriate.  However, if CHAP has been negotiated but EAP is
 
-    required, the RADIUS server MUST respond with an Access-Reject,
 
-    rather than an Access-Challenge/EAP-Message/EAP-Request packet.  The
 
-    authenticating peer MUST refuse to renegotiate authentication, even
 
-    if the renegotiation is from CHAP to EAP.
 
-    If EAP is negotiated but is not supported by the RADIUS proxy or
 
-    server, then the server or proxy MUST respond with an Access-Reject.
 
-    In these cases, a PPP NAS MUST send an LCP-Terminate and disconnect
 
-    the peer.  This is the correct behavior since the authenticating peer
 
-    is expecting EAP to be negotiated, and that expectation cannot be
 
-    fulfilled.  An EAP-capable authenticating peer MUST refuse to
 
-    renegotiate the authentication protocol if EAP had initially been
 
-    negotiated.  Note that problems with a non-EAP capable RADIUS proxy
 
-    could prove difficult to diagnose, since a peer connecting from one
 
-    location (with an EAP-capable proxy) might be able to successfully
 
-    authenticate via EAP, while the same peer connecting at another
 
-    location (and encountering an EAP-incapable proxy) might be
 
-    consistently disconnected.
 
- 4.3.7.  Impersonation
 
-    [RFC2865] Section 3 states:
 
-       A RADIUS server MUST use the source IP address of the RADIUS UDP
 
-       packet to decide which shared secret to use, so that RADIUS
 
-       requests can be proxied.
 
- Aboba & Calhoun              Informational                     [Page 27]
 
- RFC 3579                      RADIUS & EAP                September 2003
 
-    When RADIUS requests are forwarded by a proxy, the NAS-IP-Address or
 
-    NAS-IPv6-Address attributes may not match the source address.  Since
 
-    the NAS-Identifier attribute need not contain an FQDN, this attribute
 
-    also may not correspond to the source address, even indirectly, with
 
-    or without a proxy present.
 
-    As a result, the authenticity check performed by a RADIUS server or
 
-    proxy does not verify the correctness of NAS identification
 
-    attributes.  This makes it possible for a rogue NAS to forge
 
-    NAS-IP-Address, NAS-IPv6-Address or NAS-Identifier attributes within
 
-    a RADIUS Access-Request in order to impersonate another NAS.  It is
 
-    also possible for a rogue NAS to forge session identification
 
-    attributes such as Called-Station-Id, Calling-Station-Id, and
 
-    Originating-Line-Info.
 
-    This could fool the RADIUS server into subsequently sending
 
-    Disconnect or CoA-Request messages [RFC3576] containing forged
 
-    session identification attributes to a NAS targeted by an attacker.
 
-    To address these vulnerabilities RADIUS proxies SHOULD check whether
 
-    NAS identification attributes (NAS-IP-Address, NAS-IPv6-Address,
 
-    NAS-Identifier) match the source address of packets originating from
 
-    the NAS.  Where a match is not found, an Access-Reject SHOULD be
 
-    sent, and an error SHOULD be logged.
 
-    However, such a check may not always be possible.  Since the
 
-    NAS-Identifier attribute need not correspond to an FQDN, it may not
 
-    be resolvable to an IP address to be matched against the source
 
-    address.  Also, where a NAT exists between the RADIUS client and
 
-    proxy, checking the NAS-IP-Address or NAS-IPv6-Address attributes may
 
-    not be feasible.
 
-    To allow verification of NAS and session identification parameters,
 
-    EAP methods can support the secure exchange of these parameters
 
-    between the EAP peer and EAP server.  NAS identification attributes
 
-    include NAS-IP-Address, NAS-IPv6-Address and Called-Station-Id;
 
-    session identification attributes include User-Name and
 
-    Calling-Station-Id.  The secure exchange of these parameters between
 
-    the EAP peer and server enables the RADIUS server to check whether
 
-    the attributes provided by the NAS match those provided by the peer;
 
-    similarly, the peer can check the parameters provided by the NAS
 
-    against those provided by the EAP server.  This enables detection of
 
-    a rogue NAS.
 
- Aboba & Calhoun              Informational                     [Page 28]
 
- RFC 3579                      RADIUS & EAP                September 2003
 
- 4.3.8.  Man in the Middle Attacks
 
-    RADIUS only provides security on a hop-by-hop basis, even where IPsec
 
-    is used.  As a result, an attacker gaining control of a RADIUS proxy
 
-    could attempt to modify EAP packets in transit.  To protect against
 
-    this, EAP methods SHOULD incorporate their own per-packet integrity
 
-    protection and authentication mechanisms.
 
- 4.3.9.  Separation of Authenticator and Authentication Server
 
-    As noted in [RFC2716], it is possible for the EAP peer and
 
-    authenticator to mutually authenticate, and derive a Master Session
 
-    Key (MSK) for a ciphersuite used to protect subsequent data traffic.
 
-    This does not present an issue on the peer, since the peer and EAP
 
-    client reside on the same machine; all that is required is for the
 
-    EAP client module to derive and pass a Transient Session Key (TSK) to
 
-    the ciphersuite module.
 
-    The situation is more complex when EAP is used with RADIUS, since the
 
-    authenticator and authentication server may not reside on the same
 
-    host.
 
-    In the case where the authenticator and authentication server reside
 
-    on different machines, there are several implications for security.
 
-    First, mutual authentication will occur between the peer and the
 
-    authentication server, not between the peer and the authenticator.
 
-    This means that it is not possible for the peer to validate the
 
-    identity of the NAS or tunnel server that it is speaking to, using
 
-    EAP alone.
 
-    As described in Section 4.2, when RADIUS/EAP is used to encapsulate
 
-    EAP packets, IPsec SHOULD be used to provide per-packet
 
-    authentication, integrity, replay protection and confidentiality.
 
-    The Message-Authenticator attribute is also required in RADIUS
 
-    Access-Requests containing an EAP-Message attribute sent from the NAS
 
-    or tunnel server to the RADIUS server.  Since the
 
-    Message-Authenticator attribute involves an HMAC-MD5 message
 
-    integrity check, it is possible for the RADIUS server to verify the
 
-    integrity of the Access-Request as well as the NAS or tunnel server's
 
-    identity, even where IPsec is not used.  Similarly, Access-Challenge
 
-    packets containing an EAP-Message attribute sent from the RADIUS
 
-    server to the NAS are also authenticated and integrity protected
 
-    using an HMAC-MD5 message integrity check, enabling the NAS or tunnel
 
-    server to determine the integrity of the packet and verify the
 
-    identity of the RADIUS server, even where IPsec is not used.
 
-    Moreover, EAP packets sent using methods that contain their own
 
-    integrity protection cannot be successfully modified by a rogue NAS
 
-    or tunnel server.
 
- Aboba & Calhoun              Informational                     [Page 29]
 
- RFC 3579                      RADIUS & EAP                September 2003
 
-    The second issue that arises where the authenticator and
 
-    authentication server reside on separate hosts is that the EAP Master
 
-    Session Key (MSK) negotiated between the peer and authentication
 
-    server will need to be transmitted to the authenticator.  Therefore a
 
-    mechanism needs to be provided to transmit the MSK from the
 
-    authentication server to the NAS or tunnel server that needs it.  The
 
-    specification of the key transport and wrapping mechanism is outside
 
-    the scope of this document.  However, it is expected that the
 
-    wrapping mechanism will provide confidentiality, integrity and replay
 
-    protection, and data origin authentication.
 
- 4.3.10.  Multiple Databases
 
-    In many cases a security server will be deployed along with a RADIUS
 
-    server in order to provide EAP services.  Unless the security server
 
-    also functions as a RADIUS server, two separate user databases will
 
-    exist, each containing information about the security requirements
 
-    for the user.  This represents a weakness, since security may be
 
-    compromised by a successful attack on either of the servers, or their
 
-    databases.  With multiple user databases, adding a new user may
 
-    require multiple operations, increasing the chances for error.  The
 
-    problems are further magnified in the case where user information is
 
-    also being kept in an LDAP server.  In this case, three stores of
 
-    user information may exist.
 
-    In order to address these threats, consolidation of databases is
 
-    recommended.  This can be achieved by having both the RADIUS server
 
-    and security server store information in the same database; by having
 
-    the security server provide a full RADIUS implementation; or by
 
-    consolidating both the  security server and the RADIUS server onto
 
-    the same machine.
 
- 5.  IANA Considerations
 
-    This specification does not create any new registries, or define any
 
-    new RADIUS attributes or values.
 
- 6.  References
 
- 6.1.  Normative References
 
-    [RFC1321]      Rivest, R., "The MD5 Message-Digest Algorithm", RFC
 
-                   1321, April 1992.
 
-    [RFC2104]      Krawczyk, H., Bellare, M. and R. Canetti, "HMAC:
 
-                   Keyed-Hashing for Message Authentication", RFC 2104,
 
-                   February 1997.
 
- Aboba & Calhoun              Informational                     [Page 30]
 
- RFC 3579                      RADIUS & EAP                September 2003
 
-    [RFC2119]      Bradner, S., "Key words for use in RFCs to Indicate
 
-                   Requirement Levels", BCP 14, RFC 2119, March 1997.
 
-    [RFC2279]      Yergeau, F., "UTF-8, a transformation format of ISO
 
-                   10646", RFC 2279, January 1998.
 
-    [RFC2284]      Blunk, L. and J. Vollbrecht, "PPP Extensible
 
-                   Authentication Protocol (EAP)", RFC 2284, March 1998.
 
-    [RFC2401]      Atkinson, R. and S. Kent, "Security Architecture for
 
-                   the Internet Protocol", RFC 2401, November 1998.
 
-    [RFC2406]      Kent, S. and R. Atkinson, "IP Encapsulating Security
 
-                   Payload (ESP)", RFC 2406, November 1998.
 
-    [RFC2409]      Harkins, D. and D. Carrel, "The Internet Key Exchange
 
-                   (IKE)", RFC 2409, November 1998.
 
-    [RFC2486]      Aboba, B. and M. Beadles, "The Network Access
 
-                   Identifier", RFC 2486, January 1999.
 
-    [RFC2865]      Rigney, C., Willens, S., Rubens, A. and W. Simpson,
 
-                   "Remote Authentication Dial In User Service (RADIUS)",
 
-                   RFC 2865, June 2000.
 
-    [RFC2988]      Paxson, V. and M. Allman, "Computing TCP's
 
-                   Retransmission Timer", RFC 2988, November 2000.
 
-    [RFC3162]      Aboba, B., Zorn, G. and D. Mitton, "RADIUS and IP6",
 
-                   RFC 3162, August 2001.
 
-    [RFC3280]      Housley, R., Polk, W., Ford, W. and D. Solo, "Internet
 
-                   X.509 Public Key Infrastructure Certificate and
 
-                   Certificate Revocation List (CRL) Profile", RFC 3280,
 
-                   April 2002.
 
-    [RFC3576]      Chiba, M., Dommety, G., Eklund, M., Mitton, D. and B.
 
-                   Aboba, "Dynamic Authorization Extensions to Remote
 
-                   Authentication Dial In User Service (RADIUS)", RFC
 
-                   3576, July 2003.
 
- Aboba & Calhoun              Informational                     [Page 31]
 
- RFC 3579                      RADIUS & EAP                September 2003
 
- 6.2.  Informative References
 
-    [RFC826]       Plummer, D., "An Ethernet Address Resolution
 
-                   Protocol", STD 37, RFC 826, November 1982.
 
-    [RFC1510]      Kohl, J. and C. Neuman, "The Kerberos Network
 
-                   Authentication Service (V5)", RFC 1510, September
 
-                   1993.
 
-    [RFC1661]      Simpson, W., "The Point-to-Point Protocol (PPP)", STD
 
-                   51, RFC 1661, July 1994.
 
-    [RFC2548]      Zorn, G., "Microsoft Vendor-specific RADIUS
 
-                   Attributes", RFC 2548, March 1999.
 
-    [RFC2607]      Aboba, B. and J. Vollbrecht, "Proxy Chaining and
 
-                   Policy Implementation in Roaming", RFC 2607, June
 
-                   1999.
 
-    [RFC2716]      Aboba, B. and D. Simon,"PPP EAP TLS Authentication
 
-                   Protocol", RFC 2716, October 1999.
 
-    [RFC2866]      Rigney, C., "RADIUS Accounting", RFC 2866, June 2000.
 
-    [RFC2867]      Zorn, G., Aboba, B. and D. Mitton, "RADIUS Accounting
 
-                   Modifications for Tunnel Protocol Support", RFC 2867,
 
-                   June 2000.
 
-    [RFC2868]      Zorn, G., Leifer, D., Rubens, A., Shriver, J.,
 
-                   Holdrege, M. and I. Goyret, "RADIUS Attributes for
 
-                   Tunnel Protocol Support", RFC 2868, June 2000.
 
-    [RFC2869]      Rigney, C., Willats, W. and P. Calhoun, "RADIUS
 
-                   Extensions", RFC 2869, June 2000.
 
-    [RFC2983]      Black, D. "Differentiated Services and Tunnels", RFC
 
-                   2983, October 2000.
 
-    [RFC3580]      Congdon, P., Aboba, B., Smith, A., Zorn, G. and J.
 
-                   Roese, "IEEE 802.1X Remote Authentication Dial In User
 
-                   Service (RADIUS) Usage Guidelines", RFC 3580,
 
-                   September 2003.
 
-    [IEEE802]      IEEE Standards for Local and Metropolitan Area
 
-                   Networks:  Overview and Architecture, ANSI/IEEE Std
 
-                   802, 1990.
 
- Aboba & Calhoun              Informational                     [Page 32]
 
- RFC 3579                      RADIUS & EAP                September 2003
 
-    [IEEE8021X]    IEEE Standards for Local and Metropolitan Area
 
-                   Networks:  Port based Network Access Control, IEEE Std
 
-                   802.1X-2001, June 2001.
 
-    [MD5Attack]    Dobbertin, H., "The Status of MD5 After a Recent
 
-                   Attack", CryptoBytes Vol.2 No.2, Summer 1996.
 
-    [Masters]      Slatalla, M. and  J. Quittner, "Masters of Deception."
 
-                   HarperCollins, New York, 1995.
 
-    [NASREQ]       Calhoun, P., et al., "Diameter Network Access Server
 
-                   Application", Work in Progress.
 
- Aboba & Calhoun              Informational                     [Page 33]
 
- RFC 3579                      RADIUS & EAP                September 2003
 
- Appendix A - Examples
 
-    The examples below illustrate conversations between an authenticating
 
-    peer, NAS, and RADIUS server.  The OTP and EAP-TLS protocols are used
 
-    only for illustrative purposes; other authentication protocols could
 
-    also have been used, although they might show somewhat different
 
-    behavior.
 
-    Where the NAS sends an EAP-Request/Identity as the initial packet,
 
-    the exchange appears as follows:
 
- Authenticating peer     NAS                    RADIUS server
 
- -------------------     ---                    -------------
 
-                         <- EAP-Request/
 
-                         Identity
 
- EAP-Response/
 
- Identity (MyID) ->
 
-                         RADIUS Access-Request/
 
-                         EAP-Message/EAP-Response/
 
-                         (MyID) ->
 
-                                                <- RADIUS
 
-                                                Access-Challenge/
 
-                                                EAP-Message/EAP-Request
 
-                                                OTP/OTP Challenge
 
-                         <- EAP-Request/
 
-                         OTP/OTP Challenge
 
- EAP-Response/
 
- OTP, OTPpw ->
 
-                         RADIUS Access-Request/
 
-                         EAP-Message/EAP-Response/
 
-                         OTP, OTPpw ->
 
-                                                 <- RADIUS
 
-                                                 Access-Accept/
 
-                                                 EAP-Message/EAP-Success
 
-                                                 (other attributes)
 
-                         <- EAP-Success
 
- Aboba & Calhoun              Informational                     [Page 34]
 
- RFC 3579                      RADIUS & EAP                September 2003
 
-    In the case where the NAS initiates with an EAP-Request for EAP TLS
 
-    [RFC2716], and the identity is determined based on the contents of
 
-    the client certificate, the exchange will appear as follows:
 
- Authenticating peer     NAS                    RADIUS server
 
- -------------------     ---                    -------------
 
-                         <- EAP-Request/
 
-                         EAP-Type=EAP-TLS
 
-                         (TLS Start, S bit set)
 
- EAP-Response/
 
- EAP-Type=EAP-TLS
 
- (TLS client_hello)->
 
-                         RADIUS Access-Request/
 
-                         EAP-Message/EAP-Response/
 
-                         EAP-Type=EAP-TLS->
 
-                                               <-RADIUS Access-Challenge/
 
-                                               EAP-Message/
 
-                                               EAP-Request/
 
-                                               EAP-Type=EAP-TLS
 
-                          <- EAP-Request/
 
-                          EAP-Type=EAP-TLS
 
-                          (TLS server_hello,
 
-                          TLS certificate,
 
-                    [TLS server_key_exchange,]
 
-                    [TLS certificate_request,]
 
-                        TLS server_hello_done)
 
- EAP-Response/
 
- EAP-Type=EAP-TLS
 
- (TLS certificate,
 
- TLS client_key_exchange,
 
- [TLS certificate_verify,]
 
- TLS change_cipher_spec,
 
- TLS finished)->
 
-                         RADIUS Access-Request/
 
-                         EAP-Message/EAP-Response/
 
-                         EAP-Type=EAP-TLS->
 
-                                               <-RADIUS Access-Challenge/
 
-                                               EAP-Message/
 
-                                               EAP-Request/
 
-                                               EAP-Type=EAP-TLS
 
-                         <- EAP-Request/
 
-                         EAP-Type=EAP-TLS
 
-                         (TLS change_cipher_spec,
 
-                         TLS finished)
 
- Aboba & Calhoun              Informational                     [Page 35]
 
- RFC 3579                      RADIUS & EAP                September 2003
 
- EAP-Response/
 
- EAP-Type=EAP-TLS ->
 
-                         RADIUS Access-Request/
 
-                         EAP-Message/EAP-Response/
 
-                         EAP-Type=EAP-TLS->
 
-                                               <-RADIUS Access-Accept/
 
-                                               EAP-Message/EAP-Success
 
-                                               (other attributes)
 
-                         <- EAP-Success
 
-    In the case where the NAS first sends an EAP-Start packet to the
 
-    RADIUS server,  the conversation would appear as follows:
 
- Authenticating peer     NAS                    RADIUS server
 
- -------------------     ---                    -------------
 
-                         RADIUS Access-Request/
 
-                         EAP-Message/Start ->
 
-                                                <- RADIUS
 
-                                                Access-Challenge/
 
-                                                EAP-Message/EAP-Request/
 
-                                                Identity
 
-                         <- EAP-Request/
 
-                         Identity
 
- EAP-Response/
 
- Identity (MyID) ->
 
-                         RADIUS Access-Request/
 
-                         EAP-Message/EAP-Response/
 
-                         Identity (MyID) ->
 
-                                                 <- RADIUS
 
-                                                 Access-Challenge/
 
-                                                 EAP-Message/EAP-Request/
 
-                                                 OTP/OTP Challenge
 
-                         <- EAP-Request/
 
-                         OTP/OTP Challenge
 
- EAP-Response/
 
- OTP, OTPpw ->
 
-                         RADIUS Access-Request/
 
-                         EAP-Message/EAP-Response/
 
-                         OTP, OTPpw ->
 
-                                                 <- RADIUS
 
-                                                 Access-Accept/
 
-                                                 EAP-Message/EAP-Success
 
-                                                 (other attributes)
 
-                         <- EAP-Success
 
- Aboba & Calhoun              Informational                     [Page 36]
 
- RFC 3579                      RADIUS & EAP                September 2003
 
-    In the case where the NAS initiates with an EAP-Request for EAP TLS
 
-    [RFC2716], but the peer responds with a Nak, indicating that it would
 
-    prefer another method not implemented locally on the NAS, the
 
-    exchange will appear as follows:
 
- Authenticating peer     NAS                    RADIUS server
 
- -------------------     ---                    -------------
 
-                         <- EAP-Request/
 
-                         EAP-Type=EAP-TLS
 
-                         (TLS Start, S bit set)
 
- EAP-Response/
 
- EAP-Type=Nak
 
- (Alternative(s))->
 
-                         RADIUS Access-Request/
 
-                         EAP-Message/EAP-Response/
 
-                         Nak ->
 
-                                                <- RADIUS
 
-                                                Access-Challenge/
 
-                                                EAP-Message/EAP-Request/
 
-                                                Identity
 
-                         <- EAP-Request/
 
-                         Identity
 
- EAP-Response/
 
- Identity (MyID) ->
 
-                         RADIUS Access-Request/
 
-                         EAP-Message/EAP-Response/
 
-                         (MyID) ->
 
-                                                <- RADIUS
 
-                                                Access-Challenge/
 
-                                                EAP-Message/EAP-Request
 
-                                                OTP/OTP Challenge
 
-                         <- EAP-Request/
 
-                         OTP/OTP Challenge
 
- EAP-Response/
 
- OTP, OTPpw ->
 
-                         RADIUS Access-Request/
 
-                         EAP-Message/EAP-Response/
 
-                         OTP, OTPpw ->
 
-                                                 <- RADIUS
 
-                                                 Access-Accept/
 
-                                                 EAP-Message/EAP-Success
 
-                                                 (other attributes)
 
-                         <- EAP-Success
 
- Aboba & Calhoun              Informational                     [Page 37]
 
- RFC 3579                      RADIUS & EAP                September 2003
 
-    In the case where the authenticating peer attempts to authenticate
 
-    the NAS, the conversation would appear as follows:
 
- Authenticating peer     NAS                    RADIUS Server
 
- -------------------     ---                    -------------
 
- EAP-Request/
 
- Challenge, MD5 ->
 
-                         RADIUS Access-Request/
 
-                         EAP-Message/EAP-Request/
 
-                         Challenge, MD5 ->
 
-                                                 <- RADIUS
 
-                                                 Access-Reject/
 
-                                                 EAP-Message/
 
-                                                 EAP-Response/
 
-                                                 Nak (no alternative)
 
-                         <- EAP-Response/Nak
 
-                          (no alternative)
 
- EAP-Failure ->
 
- Aboba & Calhoun              Informational                     [Page 38]
 
- RFC 3579                      RADIUS & EAP                September 2003
 
-    In the case where an invalid EAP Response is inserted by an attacker,
 
-    the conversation would appear as follows:
 
- Authenticating peer     NAS                    RADIUS server
 
- -------------------     ---                    -------------
 
-                         <- EAP-Request/
 
-                         EAP-Type=Foo
 
- EAP-Response/
 
- EAP-Type=Foo ->
 
-                         RADIUS Access-Request/
 
-                         EAP-Message/EAP-Response/
 
-                         EAP-Type=Foo ->
 
-                                                <- RADIUS
 
-                                                Access-Challenge/
 
-                                                EAP-Message/EAP-Request/
 
-                                                EAP-Type=Foo
 
-                         <- EAP-Request/
 
-                         EAP-Type=Foo
 
- Attacker spoof:
 
- EAP-Response/
 
- EAP-Type=Bar ->
 
- Good guy:
 
- EAP-Response/
 
- EAP-Type=Foo ->
 
-                         RADIUS Access-Request/
 
-                         EAP-Message/EAP-Response/
 
-                         EAP-Type=Bar ->
 
-                                                <- RADIUS
 
-                                                Access-Challenge/
 
-                                                EAP-Message/EAP-Request/
 
-                                                EAP-Type=Foo,
 
-                                                Error-Cause="Invalid EAP
 
-                                                 Packet (Ignored)"
 
-                         RADIUS Access-Request/
 
-                         EAP-Message/EAP-Response/
 
-                         EAP-Type=Foo ->
 
-                                                <- Access-Accept/
 
-                                                EAP-Message/Success
 
-                         <- EAP Success
 
- Aboba & Calhoun              Informational                     [Page 39]
 
- RFC 3579                      RADIUS & EAP                September 2003
 
-    In the case where the client fails EAP authentication, and an error
 
-    message is sent prior to disconnection, the conversation would appear
 
-    as follows:
 
- Authenticating peer     NAS                    RADIUS server
 
- -------------------     ---                    -------------
 
-                         RADIUS Access-Request/
 
-                         EAP-Message/Start ->
 
-                                                <- RADIUS
 
-                                                Access-Challenge/
 
-                                                EAP-Message/EAP-Response/
 
-                                                Identity
 
-                         <- EAP-Request/
 
-                         Identity
 
- EAP-Response/
 
- Identity (MyID) ->
 
-                         RADIUS Access-Request/
 
-                         EAP-Message/EAP-Response/
 
-                         (MyID) ->
 
-                                                 <- RADIUS
 
-                                                 Access-Challenge/
 
-                                                 EAP-Message/EAP-Request
 
-                                                 OTP/OTP Challenge
 
-                         <- EAP-Request/
 
-                         OTP/OTP Challenge
 
- EAP-Response/
 
- OTP, OTPpw ->
 
-                         RADIUS Access-Request/
 
-                         EAP-Message/EAP-Response/
 
-                         OTP, OTPpw ->
 
-                                                 <- RADIUS
 
-                                                 Access-Challenge/
 
-                                                 EAP-Message/EAP-Request/
 
-                                                 Notification
 
-                         <- EAP-Request/
 
-                            Notification
 
- EAP-Response/
 
- Notification ->
 
-                         RADIUS Access-Request/
 
-                         EAP-Message/EAP-Response/
 
-                         Notification ->
 
-                                                  <- RADIUS
 
-                                                  Access-Reject/
 
-                                                  EAP-Message/EAP-Failure
 
-                         <- EAP-Failure
 
-                         (client disconnected)
 
- Aboba & Calhoun              Informational                     [Page 40]
 
- RFC 3579                      RADIUS & EAP                September 2003
 
-    In the case that the RADIUS server or proxy does not support EAP-
 
-    Message, but no error message is sent, the conversation would appear
 
-    as follows:
 
- Authenticating peer     NAS                       RADIUS server
 
- -------------------     ---                       -------------
 
-                         RADIUS Access-Request/
 
-                         EAP-Message/Start ->
 
-                                                   <- RADIUS
 
-                                                   Access-Reject
 
-                         (User Disconnected)
 
- In the case where the local RADIUS server does support EAP-Message, but
 
- the remote RADIUS server does not, the conversation would appear as
 
- follows:
 
- Authenticating peer     NAS                       RADIUS server
 
- -------------------     ---                       -------------
 
-                         RADIUS Access-Request/
 
-                         EAP-Message/Start ->
 
-                                                   <- RADIUS
 
-                                                   Access-Challenge/
 
-                                                   EAP-Message/
 
-                                                   EAP-Response/
 
-                                                   Identity
 
-                         <- EAP-Request/
 
-                         Identity
 
- EAP-Response/
 
- Identity
 
- (MyID) ->
 
-                         RADIUS Access-Request/
 
-                         EAP-Message/EAP-Response/
 
-                         (MyID) ->
 
-                                                   <- RADIUS
 
-                                                   Access-Reject
 
-                                                   (proxied from remote
 
-                                                    RADIUS server)
 
-                         (User Disconnected)
 
- Aboba & Calhoun              Informational                     [Page 41]
 
- RFC 3579                      RADIUS & EAP                September 2003
 
-    In the case where PPP is the link and the authenticating peer does
 
-    not support EAP, but where EAP is required for that user, the
 
-    conversation would appear as follows:
 
- Authenticating peer     NAS                       RADIUS server
 
- -------------------     ---                       -------------
 
-                         <- PPP LCP Request-EAP
 
-                         auth
 
- PPP LCP NAK-EAP
 
- auth ->
 
-                         <- PPP LCP Request-CHAP
 
-                         auth
 
- PPP LCP ACK-CHAP
 
- auth ->
 
-                         <- PPP CHAP Challenge
 
- PPP CHAP Response ->
 
-                         RADIUS Access-Request/
 
-                         User-Name,
 
-                         CHAP-Password ->
 
-                                                   <- RADIUS
 
-                                                   Access-Reject
 
-                         <-  PPP LCP Terminate
 
-                         (User Disconnected)
 
- In the case where PPP is the link, the NAS does not support EAP, but
 
- where EAP is required for that user, the conversation would appear as
 
- follows:
 
- Authenticating peer     NAS                       RADIUS server
 
- -------------------     ---                       -------------
 
-                         <- PPP LCP Request-CHAP
 
-                         auth
 
- PP LCP ACK-CHAP
 
- auth ->
 
-                         <- PPP CHAP Challenge
 
- PPP CHAP Response ->
 
-                         RADIUS Access-Request/
 
-                         User-Name,
 
-                         CHAP-Password ->
 
-                                                  <- RADIUS
 
-                                                  Access-Reject
 
-                         <-  PPP LCP Terminate
 
-                         (User Disconnected)
 
- Aboba & Calhoun              Informational                     [Page 42]
 
- RFC 3579                      RADIUS & EAP                September 2003
 
- Appendix B - Change Log
 
-    The following changes have been made from RFC 2869:
 
-    A NAS may simultaneously support both local authentication and
 
-    pass-through; once the NAS enters pass-through mode within a session,
 
-    it cannot revert back to local authentication.  Also EAP is
 
-    explicitly described as a 'lock step' protocol. (Section 2).
 
-    The NAS may initiate with an EAP-Request for an authentication Type.
 
-    If the Request is NAK'd, the NAS should send an initial
 
-    Access-Request with an EAP-Message attribute containing an
 
-    EAP-Response/Nak.
 
-    The RADIUS server may treat an invalid EAP Response as a non-fatal
 
-    error (Section 2.2)
 
-    For use with RADIUS/EAP, the Password-Retry (Section 2.3) and
 
-    Reply-Message (2.6.5) attributes are deprecated.
 
-    Each EAP session has a unique Identifier space (Section 2.6.1).
 
-    Role reversal is not supported (Section 2.6.2).
 
-    Message combinations (e.g. Access-Accept/EAP-Failure) that conflict
 
-    are discouraged (Section 2.6.3).
 
-    Only a single EAP packet may be encapsulated within a RADIUS message
 
-    (Section 3.1).
 
-    An Access-Request lacking explicit authentication as well as a
 
-    Message- Authenticator attribute SHOULD be silently discarded
 
-    (Section 3.3).
 
-    The Originating-Line-Info attribute is supported (Section 3.3).
 
-    IPsec ESP with non-null transform SHOULD be used and the usage model
 
-    is described in detail (Section 4.2).
 
-    Additional discussion of security vulnerabilities (Section 4.1) and
 
-    potential fixes (Section 4.3).
 
-    Separated normative (Section 6.1) and informative (Section 6.2)
 
-    references.
 
- Aboba & Calhoun              Informational                     [Page 43]
 
- RFC 3579                      RADIUS & EAP                September 2003
 
-    Added additional examples (Appendix A): a NAS initiating with an
 
-    EAP-Request for an authentication Type; attempted role reversal.
 
- Intellectual Property Statement
 
-    The IETF takes no position regarding the validity or scope of any
 
-    intellectual property or other rights that might be claimed to
 
-    pertain to the implementation or use of the technology described in
 
-    this document or the extent to which any license under such rights
 
-    might or might not be available; neither does it represent that it
 
-    has made any effort to identify any such rights.  Information on the
 
-    IETF's procedures with respect to rights in standards-track and
 
-    standards-related documentation can be found in BCP-11.  Copies of
 
-    claims of rights made available for publication and any assurances of
 
-    licenses to be made available, or the result of an attempt made to
 
-    obtain a general license or permission for the use of such
 
-    proprietary rights by implementors or users of this specification can
 
-    be obtained from the IETF Secretariat.
 
-    The IETF invites any interested party to bring to its attention any
 
-    copyrights, patents or patent applications, or other proprietary
 
-    rights which may cover technology that may be required to practice
 
-    this standard.  Please address the information to the IETF Executive
 
-    Director.
 
- Acknowledgments
 
-    Thanks to Dave Dawson and Karl Fox of Ascend, Glen Zorn of Cisco
 
-    Systems, Jari Arkko of Ericsson and Ashwin Palekar, Tim Moore and
 
-    Narendra Gidwani of Microsoft for useful discussions of this problem
 
-    space.  The authors would also like to acknowledge Tony Jeffree,
 
-    Chair of IEEE 802.1 for his assistance in resolving RADIUS/EAP issues
 
-    in IEEE 802.1X-2001.
 
- Aboba & Calhoun              Informational                     [Page 44]
 
- RFC 3579                      RADIUS & EAP                September 2003
 
- Authors' Addresses
 
-    Bernard Aboba
 
-    Microsoft Corporation
 
-    One Microsoft Way
 
-    Redmond, WA 98052
 
-    Phone:  +1 425 706 6605
 
-    Fax:    +1 425 936 7329
 
-    EMail:   bernarda@microsoft.com
 
-    Pat R. Calhoun
 
-    Airespace
 
-    110 Nortech Parkway
 
-    San Jose, California, 95134
 
-    USA
 
-    Phone:  +1 408 635 2023
 
-    Fax:    +1 408 635 2020
 
-    EMail:  pcalhoun@airespace.com
 
- Aboba & Calhoun              Informational                     [Page 45]
 
- RFC 3579                      RADIUS & EAP                September 2003
 
- Full Copyright Statement
 
-    Copyright (C) The Internet Society (2003).  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 assignees.
 
-    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.
 
- Aboba & Calhoun              Informational                     [Page 46]
 
 
  |