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]
|