| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755 | 
							
- Network Working Group                                           B. Aboba
 
- Request for Comments: 3748                                     Microsoft
 
- Obsoletes: 2284                                                 L. Blunk
 
- Category: Standards Track                             Merit Network, Inc
 
-                                                            J. Vollbrecht
 
-                                                Vollbrecht Consulting LLC
 
-                                                               J. Carlson
 
-                                                                      Sun
 
-                                                        H. Levkowetz, Ed.
 
-                                                              ipUnplugged
 
-                                                                June 2004
 
-                 Extensible Authentication Protocol (EAP)
 
- Status of this Memo
 
-    This document specifies an Internet standards track protocol for the
 
-    Internet community, and requests discussion and suggestions for
 
-    improvements.  Please refer to the current edition of the "Internet
 
-    Official Protocol Standards" (STD 1) for the standardization state
 
-    and status of this protocol.  Distribution of this memo is unlimited.
 
- Copyright Notice
 
-    Copyright (C) The Internet Society (2004).
 
- Abstract
 
-    This document defines the Extensible Authentication Protocol (EAP),
 
-    an authentication framework which supports multiple authentication
 
-    methods.  EAP typically runs directly over data link layers such as
 
-    Point-to-Point Protocol (PPP) or IEEE 802, without requiring IP.  EAP
 
-    provides its own support for duplicate elimination and
 
-    retransmission, but is reliant on lower layer ordering guarantees.
 
-    Fragmentation is not supported within EAP itself; however, individual
 
-    EAP methods may support this.
 
-    This document obsoletes RFC 2284.  A summary of the changes between
 
-    this document and RFC 2284 is available in Appendix A.
 
- Aboba, et al.               Standards Track                     [Page 1]
 
- RFC 3748                          EAP                          June 2004
 
- Table of Contents
 
-    1.   Introduction. . . . . . . . . . . . . . . . . . . . . . . . .  3
 
-         1.1.  Specification of Requirements . . . . . . . . . . . . .  4
 
-         1.2.  Terminology . . . . . . . . . . . . . . . . . . . . . .  4
 
-         1.3.  Applicability . . . . . . . . . . . . . . . . . . . . .  6
 
-    2.   Extensible Authentication Protocol (EAP). . . . . . . . . . .  7
 
-         2.1.  Support for Sequences . . . . . . . . . . . . . . . . .  9
 
-         2.2.  EAP Multiplexing Model. . . . . . . . . . . . . . . . . 10
 
-         2.3.  Pass-Through Behavior . . . . . . . . . . . . . . . . . 12
 
-         2.4.  Peer-to-Peer Operation. . . . . . . . . . . . . . . . . 14
 
-    3.   Lower Layer Behavior. . . . . . . . . . . . . . . . . . . . . 15
 
-         3.1.  Lower Layer Requirements. . . . . . . . . . . . . . . . 15
 
-         3.2.  EAP Usage Within PPP. . . . . . . . . . . . . . . . . . 18
 
-               3.2.1. PPP Configuration Option Format. . . . . . . . . 18
 
-         3.3.  EAP Usage Within IEEE 802 . . . . . . . . . . . . . . . 19
 
-         3.4.  Lower Layer Indications . . . . . . . . . . . . . . . . 19
 
-    4.   EAP Packet Format . . . . . . . . . . . . . . . . . . . . . . 20
 
-         4.1.  Request and Response. . . . . . . . . . . . . . . . . . 21
 
-         4.2.  Success and Failure . . . . . . . . . . . . . . . . . . 23
 
-         4.3.  Retransmission Behavior . . . . . . . . . . . . . . . . 26
 
-    5.   Initial EAP Request/Response Types. . . . . . . . . . . . . . 27
 
-         5.1.  Identity. . . . . . . . . . . . . . . . . . . . . . . . 28
 
-         5.2.  Notification. . . . . . . . . . . . . . . . . . . . . . 29
 
-         5.3.  Nak . . . . . . . . . . . . . . . . . . . . . . . . . . 31
 
-               5.3.1. Legacy Nak . . . . . . . . . . . . . . . . . . . 31
 
-               5.3.2. Expanded Nak . . . . . . . . . . . . . . . . . . 32
 
-         5.4.  MD5-Challenge . . . . . . . . . . . . . . . . . . . . . 35
 
-         5.5.  One-Time Password (OTP) . . . . . . . . . . . . . . . . 36
 
-         5.6.  Generic Token Card (GTC). . . . . . . . . . . . . . . . 37
 
-         5.7.  Expanded Types. . . . . . . . . . . . . . . . . . . . . 38
 
-         5.8.  Experimental. . . . . . . . . . . . . . . . . . . . . . 40
 
-    6.   IANA Considerations . . . . . . . . . . . . . . . . . . . . . 40
 
-         6.1.  Packet Codes. . . . . . . . . . . . . . . . . . . . . . 41
 
-         6.2.  Method Types. . . . . . . . . . . . . . . . . . . . . . 41
 
-    7.   Security Considerations . . . . . . . . . . . . . . . . . . . 42
 
-         7.1.  Threat Model. . . . . . . . . . . . . . . . . . . . . . 42
 
-         7.2.  Security Claims . . . . . . . . . . . . . . . . . . . . 43
 
-               7.2.1. Security Claims Terminology for EAP Methods. . . 44
 
-         7.3.  Identity Protection . . . . . . . . . . . . . . . . . . 46
 
-         7.4.  Man-in-the-Middle Attacks . . . . . . . . . . . . . . . 47
 
-         7.5.  Packet Modification Attacks . . . . . . . . . . . . . . 48
 
-         7.6.  Dictionary Attacks. . . . . . . . . . . . . . . . . . . 49
 
-         7.7.  Connection to an Untrusted Network. . . . . . . . . . . 49
 
-         7.8.  Negotiation Attacks . . . . . . . . . . . . . . . . . . 50
 
-         7.9.  Implementation Idiosyncrasies . . . . . . . . . . . . . 50
 
-         7.10. Key Derivation. . . . . . . . . . . . . . . . . . . . . 51
 
-         7.11. Weak Ciphersuites . . . . . . . . . . . . . . . . . . . 53
 
- Aboba, et al.               Standards Track                     [Page 2]
 
- RFC 3748                          EAP                          June 2004
 
-         7.12. Link Layer. . . . . . . . . . . . . . . . . . . . . . . 53
 
-         7.13. Separation of Authenticator and Backend Authentication
 
-               Server. . . . . . . . . . . . . . . . . . . . . . . . . 54
 
-         7.14. Cleartext Passwords . . . . . . . . . . . . . . . . . . 55
 
-         7.15. Channel Binding . . . . . . . . . . . . . . . . . . . . 55
 
-         7.16. Protected Result Indications. . . . . . . . . . . . . . 56
 
-    8.   Acknowledgements. . . . . . . . . . . . . . . . . . . . . . . 58
 
-    9.   References. . . . . . . . . . . . . . . . . . . . . . . . . . 59
 
-         9.1.  Normative References. . . . . . . . . . . . . . . . . . 59
 
-         9.2.  Informative References. . . . . . . . . . . . . . . . . 60
 
-    Appendix A. Changes from RFC 2284. . . . . . . . . . . . . . . . . 64
 
-    Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 66
 
-    Full Copyright Statement . . . . . . . . . . . . . . . . . . . . . 67
 
- 1.  Introduction
 
-    This document defines the Extensible Authentication Protocol (EAP),
 
-    an authentication framework which supports multiple authentication
 
-    methods.  EAP typically runs directly over data link layers such as
 
-    Point-to-Point Protocol (PPP) or IEEE 802, without requiring IP.  EAP
 
-    provides its own support for duplicate elimination and
 
-    retransmission, but is reliant on lower layer ordering guarantees.
 
-    Fragmentation is not supported within EAP itself; however, individual
 
-    EAP methods may support this.
 
-    EAP may be used on dedicated links, as well as 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
 
-    switches and access points using IEEE 802 [IEEE-802].  EAP
 
-    encapsulation on IEEE 802 wired media is described in [IEEE-802.1X],
 
-    and encapsulation on IEEE wireless LANs in [IEEE-802.11i].
 
-    One of the advantages of the EAP architecture is its flexibility.
 
-    EAP is used to select a specific authentication mechanism, typically
 
-    after the authenticator requests more information in order to
 
-    determine the specific authentication method to be used.  Rather than
 
-    requiring the authenticator to be updated to support each new
 
-    authentication method, EAP permits the use of a backend
 
-    authentication server, which may implement some or all authentication
 
-    methods, with the authenticator acting as a pass-through for some or
 
-    all methods and peers.
 
-    Within this document, authenticator requirements apply regardless of
 
-    whether the authenticator is operating as a pass-through or not.
 
-    Where the requirement is meant to apply to either the authenticator
 
-    or backend authentication server, depending on where the EAP
 
-    authentication is terminated, the term "EAP server" will be used.
 
- Aboba, et al.               Standards Track                     [Page 3]
 
- RFC 3748                          EAP                          June 2004
 
- 1.1.  Specification of Requirements
 
-    In this document, several words are used to signify the requirements
 
-    of the specification.  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 initiating EAP authentication.  The term
 
-       authenticator is used in [IEEE-802.1X], and has the same meaning
 
-       in this document.
 
-    peer
 
-       The end of the link that responds to the authenticator.  In
 
-       [IEEE-802.1X], this end is known as the Supplicant.
 
-    Supplicant
 
-       The end of the link that responds to the authenticator in [IEEE-
 
-       802.1X].  In this document, this end of the link is called the
 
-       peer.
 
-    backend authentication server
 
-       A backend authentication server is an entity that provides an
 
-       authentication service to an authenticator.  When used, this
 
-       server typically executes EAP methods for the authenticator.  This
 
-       terminology is also used in [IEEE-802.1X].
 
-    AAA
 
-       Authentication, Authorization, and Accounting.  AAA protocols with
 
-       EAP support include RADIUS [RFC3579] and Diameter [DIAM-EAP].  In
 
-       this document, the terms "AAA server" and "backend authentication
 
-       server" are used interchangeably.
 
-    Displayable Message
 
-       This is interpreted to be a human readable string of characters.
 
-       The message encoding MUST follow the UTF-8 transformation format
 
-       [RFC2279].
 
- Aboba, et al.               Standards Track                     [Page 4]
 
- RFC 3748                          EAP                          June 2004
 
-    EAP server
 
-       The entity that terminates the EAP authentication method with the
 
-       peer.  In the case where no backend authentication server is used,
 
-       the EAP server is part of the authenticator.  In the case where
 
-       the authenticator operates in pass-through mode, the EAP server is
 
-       located on the backend authentication server.
 
-    Silently Discard
 
-       This means the implementation discards the packet without further
 
-       processing.  The implementation SHOULD provide the capability of
 
-       logging the event, including the contents of the silently
 
-       discarded packet, and SHOULD record the event in a statistics
 
-       counter.
 
-    Successful Authentication
 
-       In the context of this document, "successful authentication" is an
 
-       exchange of EAP messages, as a result of which the authenticator
 
-       decides to allow access by the peer, and the peer decides to use
 
-       this access.  The authenticator's decision typically involves both
 
-       authentication and authorization aspects; the peer may
 
-       successfully authenticate to the authenticator, but access may be
 
-       denied by the authenticator due to policy reasons.
 
-    Message Integrity Check (MIC)
 
-       A keyed hash function used for authentication and integrity
 
-       protection of data.  This is usually called a Message
 
-       Authentication Code (MAC), but IEEE 802 specifications (and this
 
-       document) use the acronym MIC to avoid confusion with Medium
 
-       Access Control.
 
-    Cryptographic Separation
 
-       Two keys (x and y) are "cryptographically separate" if an
 
-       adversary that knows all messages exchanged in the protocol cannot
 
-       compute x from y or y from x without "breaking" some cryptographic
 
-       assumption.  In particular, this definition allows that the
 
-       adversary has the knowledge of all nonces sent in cleartext, as
 
-       well as all predictable counter values used in the protocol.
 
-       Breaking a cryptographic assumption would typically require
 
-       inverting a one-way function or predicting the outcome of a
 
-       cryptographic pseudo-random number generator without knowledge of
 
-       the secret state.  In other words, if the keys are
 
-       cryptographically separate, there is no shortcut to compute x from
 
-       y or y from x, but the work an adversary must do to perform this
 
-       computation is equivalent to performing an exhaustive search for
 
-       the secret state value.
 
- Aboba, et al.               Standards Track                     [Page 5]
 
- RFC 3748                          EAP                          June 2004
 
-    Master Session Key (MSK)
 
-       Keying material that is derived between the EAP peer and server
 
-       and exported by the EAP method.  The MSK is at least 64 octets in
 
-       length.  In existing implementations, a AAA server acting as an
 
-       EAP server transports the MSK to the authenticator.
 
-    Extended Master Session Key (EMSK)
 
-       Additional keying material derived between the EAP client and
 
-       server that is exported by the EAP method.  The EMSK is at least
 
-       64 octets in length.  The EMSK is not shared with the
 
-       authenticator or any other third party.  The EMSK is reserved for
 
-       future uses that are not defined yet.
 
-    Result indications
 
-       A method provides result indications if after the method's last
 
-       message is sent and received:
 
-       1) The peer is aware of whether it has authenticated the server,
 
-          as well as whether the server has authenticated it.
 
-       2) The server is aware of whether it has authenticated the peer,
 
-          as well as whether the peer has authenticated it.
 
-    In the case where successful authentication is sufficient to
 
-    authorize access, then the peer and authenticator will also know if
 
-    the other party is willing to provide or accept access.  This may not
 
-    always be the case.  An authenticated peer may be denied access due
 
-    to lack of authorization (e.g., session limit) or other reasons.
 
-    Since the EAP exchange is run between the peer and the server, other
 
-    nodes (such as AAA proxies) may also affect the authorization
 
-    decision.  This is discussed in more detail in Section 7.16.
 
- 1.3.  Applicability
 
-    EAP was designed for use in network access authentication, where IP
 
-    layer connectivity may not be available.  Use of EAP for other
 
-    purposes, such as bulk data transport, is NOT RECOMMENDED.
 
-    Since EAP does not require IP connectivity, it provides just enough
 
-    support for the reliable transport of authentication protocols, and
 
-    no more.
 
-    EAP is a lock-step protocol which only supports a single packet in
 
-    flight.  As a result, EAP cannot efficiently transport bulk data,
 
-    unlike transport protocols such as TCP [RFC793] or SCTP [RFC2960].
 
- Aboba, et al.               Standards Track                     [Page 6]
 
- RFC 3748                          EAP                          June 2004
 
-    While EAP provides support for retransmission, it assumes ordering
 
-    guarantees provided by the lower layer, so out of order reception is
 
-    not supported.
 
-    Since EAP does not support fragmentation and reassembly, EAP
 
-    authentication methods generating payloads larger than the minimum
 
-    EAP MTU need to provide fragmentation support.
 
-    While authentication methods such as EAP-TLS [RFC2716] provide
 
-    support for fragmentation and reassembly, the EAP methods defined in
 
-    this document do not.  As a result, if the EAP packet size exceeds
 
-    the EAP MTU of the link, these methods will encounter difficulties.
 
-    EAP authentication is initiated by the server (authenticator),
 
-    whereas many authentication protocols are initiated by the client
 
-    (peer).  As a result, it may be necessary for an authentication
 
-    algorithm to add one or two additional messages (at most one
 
-    roundtrip) in order to run over EAP.
 
-    Where certificate-based authentication is supported, the number of
 
-    additional roundtrips may be much larger due to fragmentation of
 
-    certificate chains.  In general, a fragmented EAP packet will require
 
-    as many round-trips to send as there are fragments.  For example, a
 
-    certificate chain 14960 octets in size would require ten round-trips
 
-    to send with a 1496 octet EAP MTU.
 
-    Where EAP runs over a lower layer in which significant packet loss is
 
-    experienced, or where the connection between the authenticator and
 
-    authentication server experiences significant packet loss, EAP
 
-    methods requiring many round-trips can experience difficulties.  In
 
-    these situations, use of EAP methods with fewer roundtrips is
 
-    advisable.
 
- 2.  Extensible Authentication Protocol (EAP)
 
-    The EAP authentication exchange proceeds as follows:
 
-    [1] The authenticator sends a Request to authenticate the peer.  The
 
-        Request has a Type field to indicate what is being requested.
 
-        Examples of Request Types include Identity, MD5-challenge, etc.
 
-        The MD5-challenge Type corresponds closely to the CHAP
 
-        authentication protocol [RFC1994].  Typically, the authenticator
 
-        will send an initial Identity Request; however, an initial
 
-        Identity Request is not required, and MAY be bypassed.  For
 
-        example, the identity may not be required where it is determined
 
-        by the port to which the peer has connected (leased lines,
 
- Aboba, et al.               Standards Track                     [Page 7]
 
- RFC 3748                          EAP                          June 2004
 
-        dedicated switch or dial-up ports), or where the identity is
 
-        obtained in another fashion (via calling station identity or MAC
 
-        address, in the Name field of the MD5-Challenge Response, etc.).
 
-    [2] The peer sends a Response packet in reply to a valid Request.  As
 
-        with the Request packet, the Response packet contains a Type
 
-        field, which corresponds to the Type field of the Request.
 
-    [3] The authenticator sends an additional Request packet, and the
 
-        peer replies with a Response.  The sequence of Requests and
 
-        Responses continues as long as needed.  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
 
-        authenticator is responsible for retransmitting requests as
 
-        described in Section 4.1.  After a suitable number of
 
-        retransmissions, the authenticator SHOULD end the EAP
 
-        conversation.  The authenticator MUST NOT send a Success or
 
-        Failure packet when retransmitting or when it fails to get a
 
-        response from the peer.
 
-    [4] The conversation continues until the authenticator cannot
 
-        authenticate the peer (unacceptable Responses to one or more
 
-        Requests), in which case the authenticator implementation MUST
 
-        transmit an EAP Failure (Code 4).  Alternatively, the
 
-        authentication conversation can continue until the authenticator
 
-        determines that successful authentication has occurred, in which
 
-        case the authenticator MUST transmit an EAP Success (Code 3).
 
-    Advantages:
 
-    o  The EAP protocol can support multiple authentication mechanisms
 
-       without having to pre-negotiate a particular one.
 
-    o  Network Access Server (NAS) devices (e.g., a switch or access
 
-       point) do not have to understand each authentication method and
 
-       MAY act as a pass-through agent for a backend authentication
 
-       server.  Support for pass-through is optional.  An authenticator
 
-       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.
 
-    o  Separation of the authenticator from the backend authentication
 
-       server simplifies credentials management and policy decision
 
-       making.
 
- Aboba, et al.               Standards Track                     [Page 8]
 
- RFC 3748                          EAP                          June 2004
 
-    Disadvantages:
 
-    o  For use in PPP, EAP requires the addition of a new authentication
 
-       Type to PPP LCP and thus PPP implementations will need to be
 
-       modified to use it.  It also strays from the previous PPP
 
-       authentication model of negotiating a specific authentication
 
-       mechanism during LCP.  Similarly, switch or access point
 
-       implementations need to support [IEEE-802.1X] in order to use EAP.
 
-    o  Where the authenticator is separate from the backend
 
-       authentication server, this complicates the security analysis and,
 
-       if needed, key distribution.
 
- 2.1.  Support for Sequences
 
-    An EAP conversation MAY utilize a sequence of methods.  A common
 
-    example of this is an Identity request followed by a single EAP
 
-    authentication method such as an MD5-Challenge.  However, the peer
 
-    and authenticator MUST utilize only one authentication method (Type 4
 
-    or greater) within an EAP conversation, after which the authenticator
 
-    MUST send a Success or Failure packet.
 
-    Once a peer has sent a Response of the same Type as the initial
 
-    Request, an authenticator MUST NOT send a Request of a different Type
 
-    prior to completion of the final round of a given method (with the
 
-    exception of a Notification-Request) and MUST NOT send a Request for
 
-    an additional method of any Type after completion of the initial
 
-    authentication method; a peer receiving such Requests MUST treat them
 
-    as invalid, and silently discard them.  As a result, Identity Requery
 
-    is not supported.
 
-    A peer MUST NOT send a Nak (legacy or expanded) in reply to a Request
 
-    after an initial non-Nak Response has been sent.  Since spoofed EAP
 
-    Request packets may be sent by an attacker, an authenticator
 
-    receiving an unexpected Nak SHOULD discard it and log the event.
 
-    Multiple authentication methods within an EAP conversation are not
 
-    supported due to their vulnerability to man-in-the-middle attacks
 
-    (see Section 7.4) and incompatibility with existing implementations.
 
-    Where a single EAP authentication method is utilized, but other
 
-    methods are run within it (a "tunneled" method), the prohibition
 
-    against multiple authentication methods does not apply.  Such
 
-    "tunneled" methods appear as a single authentication method to EAP.
 
-    Backward compatibility can be provided, since a peer not supporting a
 
-    "tunneled" method can reply to the initial EAP-Request with a Nak
 
- Aboba, et al.               Standards Track                     [Page 9]
 
- RFC 3748                          EAP                          June 2004
 
-    (legacy or expanded).  To address security vulnerabilities,
 
-    "tunneled" methods MUST support protection against man-in-the-middle
 
-    attacks.
 
- 2.2.  EAP Multiplexing Model
 
-    Conceptually, EAP implementations consist of the following
 
-    components:
 
-    [a] Lower layer.  The lower layer is responsible for transmitting and
 
-        receiving EAP frames between the peer and authenticator.  EAP has
 
-        been run over a variety of lower layers including PPP, wired IEEE
 
-        802 LANs [IEEE-802.1X], IEEE 802.11 wireless LANs [IEEE-802.11],
 
-        UDP (L2TP [RFC2661] and IKEv2 [IKEv2]), and TCP [PIC].  Lower
 
-        layer behavior is discussed in Section 3.
 
-    [b] EAP layer.  The EAP layer receives and transmits EAP packets via
 
-        the lower layer, implements duplicate detection and
 
-        retransmission, and delivers and receives EAP messages to and
 
-        from the EAP peer and authenticator layers.
 
-    [c] EAP peer and authenticator layers.  Based on the Code field, the
 
-        EAP layer demultiplexes incoming EAP packets to the EAP peer and
 
-        authenticator layers.  Typically, an EAP implementation on a
 
-        given host will support either peer or authenticator
 
-        functionality, but it is possible for a host to act as both an
 
-        EAP peer and authenticator.  In such an implementation both EAP
 
-        peer and authenticator layers will be present.
 
-    [d] EAP method layers.  EAP methods implement the authentication
 
-        algorithms and receive and transmit EAP messages via the EAP peer
 
-        and authenticator layers.  Since fragmentation support is not
 
-        provided by EAP itself, this is the responsibility of EAP
 
-        methods, which are discussed in Section 5.
 
-    The EAP multiplexing model is illustrated in Figure 1 below.  Note
 
-    that there is no requirement that an implementation conform to this
 
-    model, as long as the on-the-wire behavior is consistent with it.
 
- Aboba, et al.               Standards Track                    [Page 10]
 
- RFC 3748                          EAP                          June 2004
 
-          +-+-+-+-+-+-+-+-+-+-+-+-+  +-+-+-+-+-+-+-+-+-+-+-+-+
 
-          |           |           |  |           |           |
 
-          | EAP method| EAP method|  | EAP method| EAP method|
 
-          | Type = X  | Type = Y  |  | Type = X  | Type = Y  |
 
-          |       V   |           |  |       ^   |           |
 
-          +-+-+-+-!-+-+-+-+-+-+-+-+  +-+-+-+-!-+-+-+-+-+-+-+-+
 
-          |       !               |  |       !               |
 
-          |  EAP  ! Peer layer    |  |  EAP  ! Auth. layer   |
 
-          |       !               |  |       !               |
 
-          +-+-+-+-!-+-+-+-+-+-+-+-+  +-+-+-+-!-+-+-+-+-+-+-+-+
 
-          |       !               |  |       !               |
 
-          |  EAP  ! layer         |  |  EAP  ! layer         |
 
-          |       !               |  |       !               |
 
-          +-+-+-+-!-+-+-+-+-+-+-+-+  +-+-+-+-!-+-+-+-+-+-+-+-+
 
-          |       !               |  |       !               |
 
-          | Lower ! layer         |  | Lower ! layer         |
 
-          |       !               |  |       !               |
 
-          +-+-+-+-!-+-+-+-+-+-+-+-+  +-+-+-+-!-+-+-+-+-+-+-+-+
 
-                  !                          !
 
-                  !   Peer                   ! Authenticator
 
-                  +------------>-------------+
 
-                      Figure 1: EAP Multiplexing Model
 
-    Within EAP, the Code field functions much like a protocol number in
 
-    IP.  It is assumed that the EAP layer demultiplexes incoming EAP
 
-    packets according to the Code field.  Received EAP packets with
 
-    Code=1 (Request), 3 (Success), and 4 (Failure) are delivered by the
 
-    EAP layer to the EAP peer layer, if implemented.  EAP packets with
 
-    Code=2 (Response) are delivered to the EAP authenticator layer, if
 
-    implemented.
 
-    Within EAP, the Type field functions much like a port number in UDP
 
-    or TCP.  It is assumed that the EAP peer and authenticator layers
 
-    demultiplex incoming EAP packets according to their Type, and deliver
 
-    them only to the EAP method corresponding to that Type.  An EAP
 
-    method implementation on a host may register to receive packets from
 
-    the peer or authenticator layers, or both, depending on which role(s)
 
-    it supports.
 
-    Since EAP authentication methods may wish to access the Identity,
 
-    implementations SHOULD make the Identity Request and Response
 
-    accessible to authentication methods (Types 4 or greater), in
 
-    addition to the Identity method.  The Identity Type is discussed in
 
-    Section 5.1.
 
- Aboba, et al.               Standards Track                    [Page 11]
 
- RFC 3748                          EAP                          June 2004
 
-    A Notification Response is only used as confirmation that the peer
 
-    received the Notification Request, not that it has processed it, or
 
-    displayed the message to the user.  It cannot be assumed that the
 
-    contents of the Notification Request or Response are available to
 
-    another method.  The Notification Type is discussed in Section 5.2.
 
-    Nak (Type 3) or Expanded Nak (Type 254) are utilized for the purposes
 
-    of method negotiation.  Peers respond to an initial EAP Request for
 
-    an unacceptable Type with a Nak Response (Type 3) or Expanded Nak
 
-    Response (Type 254).  It cannot be assumed that the contents of the
 
-    Nak Response(s) are available to another method.  The Nak Type(s) are
 
-    discussed in Section 5.3.
 
-    EAP packets with Codes of Success or Failure do not include a Type
 
-    field, and are not delivered to an EAP method.  Success and Failure
 
-    are discussed in Section 4.2.
 
-    Given these considerations, the Success, Failure, Nak Response(s),
 
-    and Notification Request/Response messages MUST NOT be used to carry
 
-    data destined for delivery to other EAP methods.
 
- 2.3.  Pass-Through Behavior
 
-    When operating as a "pass-through authenticator", an authenticator
 
-    performs checks on the Code, Identifier, and Length fields as
 
-    described in Section 4.1.  It forwards EAP packets received from the
 
-    peer and destined to its authenticator layer to the backend
 
-    authentication server; packets received from the backend
 
-    authentication server destined to the peer are forwarded to it.
 
-    A host receiving an EAP packet may only do one of three things with
 
-    it: act on it, drop it, or forward it.  The forwarding decision is
 
-    typically based only on examination of the Code, Identifier, and
 
-    Length fields.  A pass-through authenticator implementation MUST be
 
-    capable of forwarding EAP packets received from the peer with Code=2
 
-    (Response) to the backend authentication server. It also MUST be
 
-    capable of receiving EAP packets from the backend authentication
 
-    server and forwarding EAP packets of Code=1 (Request), Code=3
 
-    (Success), and Code=4 (Failure) to the peer.
 
-    Unless the authenticator implements one or more authentication
 
-    methods locally which support the authenticator role, the EAP method
 
-    layer header fields (Type, Type-Data) are not examined as part of the
 
-    forwarding decision.  Where the authenticator supports local
 
-    authentication methods, it MAY examine the Type field to determine
 
-    whether to act on the packet itself or forward it.  Compliant pass-
 
-    through authenticator implementations MUST by default forward EAP
 
-    packets of any Type.
 
- Aboba, et al.               Standards Track                    [Page 12]
 
- RFC 3748                          EAP                          June 2004
 
-    EAP packets received with Code=1 (Request), Code=3 (Success), and
 
-    Code=4 (Failure) are demultiplexed by the EAP layer and delivered to
 
-    the peer layer.  Therefore, unless a host implements an EAP peer
 
-    layer, these packets will be silently discarded.  Similarly, EAP
 
-    packets received with Code=2 (Response) are demultiplexed by the EAP
 
-    layer and delivered to the authenticator layer.  Therefore, unless a
 
-    host implements an EAP authenticator layer, these packets will be
 
-    silently discarded.  The behavior of a "pass-through peer" is
 
-    undefined within this specification, and is unsupported by AAA
 
-    protocols such as RADIUS [RFC3579] and Diameter [DIAM-EAP].
 
-    The forwarding model is illustrated in Figure 2.
 
-         Peer         Pass-through Authenticator   Authentication
 
-                                                       Server
 
-    +-+-+-+-+-+-+                                   +-+-+-+-+-+-+
 
-    |           |                                   |           |
 
-    |EAP method |                                   |EAP method |
 
-    |     V     |                                   |     ^     |
 
-    +-+-+-!-+-+-+   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+   +-+-+-!-+-+-+
 
-    |     !     |   |EAP  |  EAP  |             |   |     !     |
 
-    |     !     |   |Peer |  Auth.| EAP Auth.   |   |     !     |
 
-    |EAP  ! peer|   |     | +-----------+       |   |EAP  !Auth.|
 
-    |     !     |   |     | !     |     !       |   |     !     |
 
-    +-+-+-!-+-+-+   +-+-+-+-!-+-+-+-+-+-!-+-+-+-+   +-+-+-!-+-+-+
 
-    |     !     |   |       !     |     !       |   |     !     |
 
-    |EAP  !layer|   |   EAP !layer| EAP !layer  |   |EAP  !layer|
 
-    |     !     |   |       !     |     !       |   |     !     |
 
-    +-+-+-!-+-+-+   +-+-+-+-!-+-+-+-+-+-!-+-+-+-+   +-+-+-!-+-+-+
 
-    |     !     |   |       !     |     !       |   |     !     |
 
-    |Lower!layer|   |  Lower!layer| AAA ! /IP   |   | AAA ! /IP |
 
-    |     !     |   |       !     |     !       |   |     !     |
 
-    +-+-+-!-+-+-+   +-+-+-+-!-+-+-+-+-+-!-+-+-+-+   +-+-+-!-+-+-+
 
-          !                 !           !                 !
 
-          !                 !           !                 !
 
-          +-------->--------+           +--------->-------+
 
-                    Figure 2: Pass-through Authenticator
 
-    For sessions in which the authenticator acts as a pass-through, it
 
-    MUST determine the outcome of the authentication solely based on the
 
-    Accept/Reject indication sent by the backend authentication server;
 
-    the outcome MUST NOT be determined by the contents of an EAP packet
 
-    sent along with the Accept/Reject indication, or the absence of such
 
-    an encapsulated EAP packet.
 
- Aboba, et al.               Standards Track                    [Page 13]
 
- RFC 3748                          EAP                          June 2004
 
- 2.4.  Peer-to-Peer Operation
 
-    Since EAP is a peer-to-peer protocol, an independent and simultaneous
 
-    authentication may take place in the reverse direction (depending on
 
-    the capabilities of the lower layer).  Both ends of the link may act
 
-    as authenticators and peers at the same time.  In this case, it is
 
-    necessary for both ends to implement EAP authenticator and peer
 
-    layers.  In addition, the EAP method implementations on both peers
 
-    must support both authenticator and peer functionality.
 
-    Although EAP supports peer-to-peer operation, some EAP
 
-    implementations, methods, AAA protocols, and link layers may not
 
-    support this.  Some EAP methods may support asymmetric
 
-    authentication, with one type of credential being required for the
 
-    peer and another type for the authenticator.  Hosts supporting peer-
 
-    to-peer operation with such a method would need to be provisioned
 
-    with both types of credentials.
 
-    For example, EAP-TLS [RFC2716] is a client-server protocol in which
 
-    distinct certificate profiles are typically utilized for the client
 
-    and server.  This implies that a host supporting peer-to-peer
 
-    authentication with EAP-TLS would need to implement both the EAP peer
 
-    and authenticator layers, support both peer and authenticator roles
 
-    in the EAP-TLS implementation, and provision certificates appropriate
 
-    for each role.
 
-    AAA protocols such as RADIUS/EAP [RFC3579] and Diameter EAP [DIAM-
 
-    EAP] only support "pass-through authenticator" operation.  As noted
 
-    in [RFC3579] Section 2.6.2, a RADIUS server responds to an Access-
 
-    Request encapsulating an EAP-Request, Success, or Failure packet with
 
-    an Access-Reject.  There is therefore no support for "pass-through
 
-    peer" operation.
 
-    Even where a method is used which supports mutual authentication and
 
-    result indications, several considerations may dictate that two EAP
 
-    authentications (one in each direction) are required.  These include:
 
-    [1] Support for bi-directional session key derivation in the lower
 
-        layer.  Lower layers such as IEEE 802.11 may only support uni-
 
-        directional derivation and transport of transient session keys.
 
-        For example, the group-key handshake defined in [IEEE-802.11i] is
 
-        uni-directional, since in IEEE 802.11 infrastructure mode, only
 
-        the Access Point (AP) sends multicast/broadcast traffic.  In IEEE
 
-        802.11 ad hoc mode, where either peer may send
 
-        multicast/broadcast traffic, two uni-directional group-key
 
- Aboba, et al.               Standards Track                    [Page 14]
 
- RFC 3748                          EAP                          June 2004
 
-        exchanges are required.  Due to limitations of the design, this
 
-        also implies the need for unicast key derivations and EAP method
 
-        exchanges to occur in each direction.
 
-    [2] Support for tie-breaking in the lower layer.  Lower layers such
 
-        as IEEE 802.11 ad hoc do not support "tie breaking" wherein two
 
-        hosts initiating authentication with each other will only go
 
-        forward with a single authentication.  This implies that even if
 
-        802.11 were to support a bi-directional group-key handshake, then
 
-        two authentications, one in each direction, might still occur.
 
-    [3] Peer policy satisfaction.  EAP methods may support result
 
-        indications, enabling the peer to indicate to the EAP server
 
-        within the method that it successfully authenticated the EAP
 
-        server, as well as for the server to indicate that it has
 
-        authenticated the peer.  However, a pass-through authenticator
 
-        will not be aware that the peer has accepted the credentials
 
-        offered by the EAP server, unless this information is provided to
 
-        the authenticator via the AAA protocol.  The authenticator SHOULD
 
-        interpret the receipt of a key attribute within an Accept packet
 
-        as an indication that the peer has successfully authenticated the
 
-        server.
 
-    However, it is possible that the EAP peer's access policy was not
 
-    satisfied during the initial EAP exchange, even though mutual
 
-    authentication occurred.  For example, the EAP authenticator may not
 
-    have demonstrated authorization to act in both peer and authenticator
 
-    roles.  As a result, the peer may require an additional
 
-    authentication in the reverse direction, even if the peer provided an
 
-    indication that the EAP server had successfully authenticated to it.
 
- 3.  Lower Layer Behavior
 
- 3.1.  Lower Layer Requirements
 
-    EAP makes the following assumptions about lower layers:
 
-    [1] Unreliable transport.  In EAP, the authenticator retransmits
 
-        Requests that have not yet received Responses so that EAP does
 
-        not assume that lower layers are reliable.  Since EAP defines its
 
-        own retransmission behavior, it is possible (though undesirable)
 
-        for retransmission to occur both in the lower layer and the EAP
 
-        layer when EAP is run over a reliable lower layer.
 
- Aboba, et al.               Standards Track                    [Page 15]
 
- RFC 3748                          EAP                          June 2004
 
-    Note that EAP Success and Failure packets are not retransmitted.
 
-    Without a reliable lower layer, and with a non-negligible error rate,
 
-    these packets can be lost, resulting in timeouts.  It is therefore
 
-    desirable for implementations to improve their resilience to loss of
 
-    EAP Success or Failure packets, as described in Section 4.2.
 
-    [2] Lower layer error detection.  While EAP does not assume that the
 
-        lower layer is reliable, it does rely on lower layer error
 
-        detection (e.g., CRC, Checksum, MIC, etc.).  EAP methods may not
 
-        include a MIC, or if they do, it may not be computed over all the
 
-        fields in the EAP packet, such as the Code, Identifier, Length,
 
-        or Type fields.  As a result, without lower layer error
 
-        detection, undetected errors could creep into the EAP layer or
 
-        EAP method layer header fields, resulting in authentication
 
-        failures.
 
-        For example, EAP TLS [RFC2716], which computes its MIC over the
 
-        Type-Data field only, regards MIC validation failures as a fatal
 
-        error.  Without lower layer error detection, this method, and
 
-        others like it, will not perform reliably.
 
-    [3] Lower layer security.  EAP does not require lower layers to
 
-        provide security services such as per-packet confidentiality,
 
-        authentication, integrity, and replay protection.  However, where
 
-        these security services are available, EAP methods supporting Key
 
-        Derivation (see Section 7.2.1) can be used to provide dynamic
 
-        keying material.  This makes it possible to bind the EAP
 
-        authentication to subsequent data and protect against data
 
-        modification, spoofing, or replay.  See Section 7.1 for details.
 
-    [4] Minimum MTU.  EAP is capable of functioning on lower layers that
 
-        provide an EAP MTU size of 1020 octets or greater.
 
-        EAP does not support path MTU discovery, and fragmentation and
 
-        reassembly is not supported by EAP, nor by the methods defined in
 
-        this specification: Identity (1), Notification (2), Nak Response
 
-        (3), MD5-Challenge (4), One Time Password (5), Generic Token Card
 
-        (6), and expanded Nak Response (254) Types.
 
-        Typically, the EAP peer obtains information on the EAP MTU from
 
-        the lower layers and sets the EAP frame size to an appropriate
 
-        value.  Where the authenticator operates in pass-through mode,
 
-        the authentication server does not have a direct way of
 
-        determining the EAP MTU, and therefore relies on the
 
-        authenticator to provide it with this information, such as via
 
-        the Framed-MTU attribute, as described in [RFC3579], Section 2.4.
 
- Aboba, et al.               Standards Track                    [Page 16]
 
- RFC 3748                          EAP                          June 2004
 
-        While methods such as EAP-TLS [RFC2716] support fragmentation and
 
-        reassembly, EAP methods originally designed for use within PPP
 
-        where a 1500 octet MTU is guaranteed for control frames (see
 
-        [RFC1661], Section 6.1) may lack fragmentation and reassembly
 
-        features.
 
-        EAP methods can assume a minimum EAP MTU of 1020 octets in the
 
-        absence of other information.  EAP methods SHOULD include support
 
-        for fragmentation and reassembly if their payloads can be larger
 
-        than this minimum EAP MTU.
 
-        EAP is a lock-step protocol, which implies a certain inefficiency
 
-        when handling fragmentation and reassembly.  Therefore, if the
 
-        lower layer supports fragmentation and reassembly (such as where
 
-        EAP is transported over IP), it may be preferable for
 
-        fragmentation and reassembly to occur in the lower layer rather
 
-        than in EAP.  This can be accomplished by providing an
 
-        artificially large EAP MTU to EAP, causing fragmentation and
 
-        reassembly to be handled within the lower layer.
 
-    [5] Possible duplication.  Where the lower layer is reliable, it will
 
-        provide the EAP layer with a non-duplicated stream of packets.
 
-        However,  while it is desirable that lower layers provide for
 
-        non-duplication, this is not a requirement.  The Identifier field
 
-        provides both the peer and authenticator with the ability to
 
-        detect duplicates.
 
-    [6] Ordering guarantees.  EAP does not require the Identifier to be
 
-        monotonically increasing, and so is reliant on lower layer
 
-        ordering guarantees for correct operation.  EAP was originally
 
-        defined to run on PPP, and [RFC1661] Section 1 has an ordering
 
-        requirement:
 
-            "The Point-to-Point Protocol is designed for simple links
 
-            which transport packets between two peers.  These links
 
-            provide full-duplex simultaneous bi-directional operation,
 
-            and are assumed to deliver packets in order."
 
-        Lower layer transports for EAP MUST preserve ordering between a
 
-        source and destination at a given priority level (the ordering
 
-        guarantee provided by [IEEE-802]).
 
-        Reordering, if it occurs, will typically result in an EAP
 
-        authentication failure, causing EAP authentication to be re-run.
 
-        In an environment in which reordering is likely, it is therefore
 
-        expected that EAP authentication failures will be common.  It is
 
-        RECOMMENDED that EAP only be run over lower layers that provide
 
-        ordering guarantees; running EAP over raw IP or UDP transport is
 
- Aboba, et al.               Standards Track                    [Page 17]
 
- RFC 3748                          EAP                          June 2004
 
-        NOT RECOMMENDED.  Encapsulation of EAP within RADIUS [RFC3579]
 
-        satisfies ordering requirements, since RADIUS is a "lockstep"
 
-        protocol that delivers packets in order.
 
- 3.2.  EAP Usage Within PPP
 
-    In order to establish communications over a point-to-point link, each
 
-    end of the PPP link first sends LCP packets to configure the data
 
-    link during the Link Establishment phase.  After the link has been
 
-    established, PPP provides for an optional Authentication phase before
 
-    proceeding to the Network-Layer Protocol phase.
 
-    By default, authentication is not mandatory.  If authentication of
 
-    the link is desired, an implementation MUST specify the
 
-    Authentication Protocol Configuration Option during the Link
 
-    Establishment phase.
 
-    If the identity of the peer has been established in the
 
-    Authentication phase, the server can use that identity in the
 
-    selection of options for the following network layer negotiations.
 
-    When implemented within PPP, EAP does not select a specific
 
-    authentication mechanism at the PPP Link Control Phase, but rather
 
-    postpones this until the Authentication Phase.  This allows the
 
-    authenticator to request more information before determining the
 
-    specific authentication mechanism.  This also permits the use of a
 
-    "backend" server which actually implements the various mechanisms
 
-    while the PPP authenticator merely passes through the authentication
 
-    exchange.  The PPP Link Establishment and Authentication phases, and
 
-    the Authentication Protocol Configuration Option, are defined in The
 
-    Point-to-Point Protocol (PPP) [RFC1661].
 
- 3.2.1.  PPP Configuration Option Format
 
-    A summary of the PPP Authentication Protocol Configuration Option
 
-    format to negotiate EAP follows.  The fields are transmitted from
 
-    left to right.
 
-    Exactly one EAP packet is encapsulated in the Information field of a
 
-    PPP Data Link Layer frame where the protocol field indicates type hex
 
-    C227 (PPP EAP).
 
- Aboba, et al.               Standards Track                    [Page 18]
 
- RFC 3748                          EAP                          June 2004
 
-     0                   1                   2                   3
 
-     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
 
-    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
-    |     Type      |    Length     |     Authentication Protocol   |
 
-    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
-    Type
 
-       3
 
-    Length
 
-       4
 
-    Authentication Protocol
 
-       C227 (Hex) for Extensible Authentication Protocol (EAP)
 
- 3.3.  EAP Usage Within IEEE 802
 
-    The encapsulation of EAP over IEEE 802 is defined in [IEEE-802.1X].
 
-    The IEEE 802 encapsulation of EAP does not involve PPP, and IEEE
 
-    802.1X does not include support for link or network layer
 
-    negotiations.  As a result, within IEEE 802.1X, it is not possible to
 
-    negotiate non-EAP authentication mechanisms, such as PAP or CHAP
 
-    [RFC1994].
 
- 3.4.  Lower Layer Indications
 
-    The reliability and security of lower layer indications is dependent
 
-    on the lower layer.  Since EAP is media independent, the presence or
 
-    absence of lower layer security is not taken into account in the
 
-    processing of EAP messages.
 
-    To improve reliability, if a peer receives a lower layer success
 
-    indication as defined in Section 7.2, it MAY conclude that a Success
 
-    packet has been lost, and behave as if it had actually received a
 
-    Success packet.  This includes choosing to ignore the Success in some
 
-    circumstances as described in Section 4.2.
 
-    A discussion of some reliability and security issues with lower layer
 
-    indications in PPP, IEEE 802 wired networks, and IEEE 802.11 wireless
 
-    LANs can be found in the Security Considerations, Section 7.12.
 
-    After EAP authentication is complete, the peer will typically
 
-    transmit and receive data via the authenticator.  It is desirable to
 
-    provide assurance that the entities transmitting data are the same
 
-    ones that successfully completed EAP authentication.  To accomplish
 
- Aboba, et al.               Standards Track                    [Page 19]
 
- RFC 3748                          EAP                          June 2004
 
-    this, it is necessary for the lower layer to provide per-packet
 
-    integrity, authentication and replay protection, and to bind these
 
-    per-packet services to the keys derived during EAP authentication.
 
-    Otherwise, it is possible for subsequent data traffic to be modified,
 
-    spoofed, or replayed.
 
-    Where keying material for the lower layer ciphersuite is itself
 
-    provided by EAP, ciphersuite negotiation and key activation are
 
-    controlled by the lower layer.  In PPP, ciphersuites are negotiated
 
-    within ECP so that it is not possible to use keys derived from EAP
 
-    authentication until the completion of ECP.  Therefore, an initial
 
-    EAP exchange cannot be protected by a PPP ciphersuite, although EAP
 
-    re-authentication can be protected.
 
-    In IEEE 802 media, initial key activation also typically occurs after
 
-    completion of EAP authentication.  Therefore an initial EAP exchange
 
-    typically cannot be protected by the lower layer ciphersuite,
 
-    although an EAP re-authentication or pre-authentication exchange can
 
-    be protected.
 
- 4.  EAP Packet Format
 
-    A summary of the EAP packet format is shown below.  The fields are
 
-    transmitted from left to right.
 
-     0                   1                   2                   3
 
-     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
 
-    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
-    |     Code      |  Identifier   |            Length             |
 
-    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
-    |    Data ...
 
-    +-+-+-+-+
 
-    Code
 
-       The Code field is one octet and identifies the Type of EAP packet.
 
-       EAP Codes are assigned as follows:
 
-          1       Request
 
-          2       Response
 
-          3       Success
 
-          4       Failure
 
-       Since EAP only defines Codes 1-4, EAP packets with other codes
 
-       MUST be silently discarded by both authenticators and peers.
 
- Aboba, et al.               Standards Track                    [Page 20]
 
- RFC 3748                          EAP                          June 2004
 
-    Identifier
 
-       The Identifier field is one octet and aids in matching Responses
 
-       with Requests.
 
-    Length
 
-       The Length field is two octets and indicates the length, in
 
-       octets, of the EAP packet including the Code, Identifier, Length,
 
-       and Data fields.  Octets outside the range of the Length field
 
-       should be treated as Data Link Layer padding and MUST be ignored
 
-       upon reception.  A message with the Length field set to a value
 
-       larger than the number of received octets MUST be silently
 
-       discarded.
 
-    Data
 
-       The Data field is zero or more octets.  The format of the Data
 
-       field is determined by the Code field.
 
- 4.1.  Request and Response
 
-    Description
 
-       The Request packet (Code field set to 1) is sent by the
 
-       authenticator to the peer.  Each Request has a Type field which
 
-       serves to indicate what is being requested.  Additional Request
 
-       packets MUST be sent until a valid Response packet is received, an
 
-       optional retry counter expires, or a lower layer failure
 
-       indication is received.
 
-       Retransmitted Requests MUST be sent with the same Identifier value
 
-       in order to distinguish them from new Requests.  The content of
 
-       the data field is dependent on the Request Type.  The peer MUST
 
-       send a Response packet in reply to a valid Request packet.
 
-       Responses MUST only be sent in reply to a valid Request and never
 
-       be retransmitted on a timer.
 
-       If a peer receives a valid duplicate Request for which it has
 
-       already sent a Response, it MUST resend its original Response
 
-       without reprocessing the Request.  Requests MUST be processed in
 
-       the order that they are received, and MUST be processed to their
 
-       completion before inspecting the next Request.
 
-    A summary of the Request and Response packet format follows.  The
 
-    fields are transmitted from left to right.
 
- Aboba, et al.               Standards Track                    [Page 21]
 
- RFC 3748                          EAP                          June 2004
 
-     0                   1                   2                   3
 
-     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
 
-    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
-    |     Code      |  Identifier   |            Length             |
 
-    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
-    |     Type      |  Type-Data ...
 
-    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
 
-    Code
 
-       1 for Request
 
-       2 for Response
 
-    Identifier
 
-       The Identifier field is one octet.  The Identifier field MUST be
 
-       the same if a Request packet is retransmitted due to a timeout
 
-       while waiting for a Response.  Any new (non-retransmission)
 
-       Requests MUST modify the Identifier field.
 
-       The Identifier field of the Response MUST match that of the
 
-       currently outstanding Request.  An authenticator receiving a
 
-       Response whose Identifier value does not match that of the
 
-       currently outstanding Request MUST silently discard the Response.
 
-       In order to avoid confusion between new Requests and
 
-       retransmissions, the Identifier value chosen for each new Request
 
-       need only be different from the previous Request, but need not be
 
-       unique within the conversation.  One way to achieve this is to
 
-       start the Identifier at an initial value and increment it for each
 
-       new Request.  Initializing the first Identifier with a random
 
-       number rather than starting from zero is recommended, since it
 
-       makes sequence attacks somewhat more difficult.
 
-       Since the Identifier space is unique to each session,
 
-       authenticators are not restricted to only 256 simultaneous
 
-       authentication conversations.  Similarly, with re-authentication,
 
-       an EAP conversation might continue over a long period of time, and
 
-       is not limited to only 256 roundtrips.
 
-    Implementation Note: The authenticator is responsible for
 
-    retransmitting Request messages.  If the Request message is obtained
 
-    from elsewhere (such as from a backend authentication server), then
 
-    the authenticator will need to save a copy of the Request in order to
 
-    accomplish this.  The peer is responsible for detecting and handling
 
-    duplicate Request messages before processing them in any way,
 
-    including passing them on to an outside party.  The authenticator is
 
-    also responsible for discarding Response messages with a non-matching
 
- Aboba, et al.               Standards Track                    [Page 22]
 
- RFC 3748                          EAP                          June 2004
 
-    Identifier value before acting on them in any way, including passing
 
-    them on to the backend authentication server for verification.  Since
 
-    the authenticator can retransmit before receiving a Response from the
 
-    peer, the authenticator can receive multiple Responses, each with a
 
-    matching Identifier.  Until a new Request is received by the
 
-    authenticator, the Identifier value is not updated, so that the
 
-    authenticator forwards Responses to the backend authentication
 
-    server, one at a time.
 
-    Length
 
-       The Length field is two octets and indicates the length of the EAP
 
-       packet including the Code, Identifier, Length, Type, and Type-Data
 
-       fields.  Octets outside the range of the Length field should be
 
-       treated as Data Link Layer padding and MUST be ignored upon
 
-       reception.  A message with the Length field set to a value larger
 
-       than the number of received octets MUST be silently discarded.
 
-    Type
 
-       The Type field is one octet.  This field indicates the Type of
 
-       Request or Response.  A single Type MUST be specified for each EAP
 
-       Request or Response.  An initial specification of Types follows in
 
-       Section 5 of this document.
 
-       The Type field of a Response MUST either match that of the
 
-       Request, or correspond to a legacy or Expanded Nak (see Section
 
-       5.3) indicating that a Request Type is unacceptable to the peer.
 
-       A peer MUST NOT send a Nak (legacy or expanded) in response to a
 
-       Request, after an initial non-Nak Response has been sent.  An EAP
 
-       server receiving a Response not meeting these requirements MUST
 
-       silently discard it.
 
-    Type-Data
 
-       The Type-Data field varies with the Type of Request and the
 
-       associated Response.
 
- 4.2.  Success and Failure
 
-    The Success packet is sent by the authenticator to the peer after
 
-    completion of an EAP authentication method (Type 4 or greater) to
 
-    indicate that the peer has authenticated successfully to the
 
-    authenticator.  The authenticator MUST transmit an EAP packet with
 
-    the Code field set to 3 (Success).  If the authenticator cannot
 
-    authenticate the peer (unacceptable Responses to one or more
 
-    Requests), then after unsuccessful completion of the EAP method in
 
-    progress, the implementation MUST transmit an EAP packet with the
 
- Aboba, et al.               Standards Track                    [Page 23]
 
- RFC 3748                          EAP                          June 2004
 
-    Code field set to 4 (Failure).  An authenticator MAY wish to issue
 
-    multiple Requests before sending a Failure response in order to allow
 
-    for human typing mistakes.  Success and Failure packets MUST NOT
 
-    contain additional data.
 
-    Success and Failure packets MUST NOT be sent by an EAP authenticator
 
-    if the specification of the given method does not explicitly permit
 
-    the method to finish at that point.  A peer EAP implementation
 
-    receiving a Success or Failure packet where sending one is not
 
-    explicitly permitted MUST silently discard it.  By default, an EAP
 
-    peer MUST silently discard a "canned" Success packet (a Success
 
-    packet sent immediately upon connection).  This ensures that a rogue
 
-    authenticator will not be able to bypass mutual authentication by
 
-    sending a Success packet prior to conclusion of the EAP method
 
-    conversation.
 
-    Implementation Note: Because the Success and Failure packets are not
 
-    acknowledged, they are not retransmitted by the authenticator, and
 
-    may be potentially lost.  A peer MUST allow for this circumstance as
 
-    described in this note.  See also Section 3.4 for guidance on the
 
-    processing of lower layer success and failure indications.
 
-    As described in Section 2.1, only a single EAP authentication method
 
-    is allowed within an EAP conversation.  EAP methods may implement
 
-    result indications.  After the authenticator sends a failure result
 
-    indication to the peer, regardless of the response from the peer, it
 
-    MUST subsequently send a Failure packet.  After the authenticator
 
-    sends a success result indication to the peer and receives a success
 
-    result indication from the peer, it MUST subsequently send a Success
 
-    packet.
 
-    On the peer, once the method completes unsuccessfully (that is,
 
-    either the authenticator sends a failure result indication, or the
 
-    peer decides that it does not want to continue the conversation,
 
-    possibly after sending a failure result indication), the peer MUST
 
-    terminate the conversation and indicate failure to the lower layer.
 
-    The peer MUST silently discard Success packets and MAY silently
 
-    discard Failure packets.  As a result, loss of a Failure packet need
 
-    not result in a timeout.
 
-    On the peer, after success result indications have been exchanged by
 
-    both sides, a Failure packet MUST be silently discarded.  The peer
 
-    MAY, in the event that an EAP Success is not received, conclude that
 
-    the EAP Success packet was lost and that authentication concluded
 
-    successfully.
 
- Aboba, et al.               Standards Track                    [Page 24]
 
- RFC 3748                          EAP                          June 2004
 
-    If the authenticator has not sent a result indication, and the peer
 
-    is willing to continue the conversation, the peer waits for a Success
 
-    or Failure packet once the method completes, and MUST NOT silently
 
-    discard either of them.  In the event that neither a Success nor
 
-    Failure packet is received, the peer SHOULD terminate the
 
-    conversation to avoid lengthy timeouts in case the lost packet was an
 
-    EAP Failure.
 
-    If the peer attempts to authenticate to the authenticator and fails
 
-    to do so, the authenticator MUST send a Failure packet and MUST NOT
 
-    grant access by sending a Success packet.  However, an authenticator
 
-    MAY omit having the peer authenticate to it in situations where
 
-    limited access is offered (e.g., guest access).  In this case, the
 
-    authenticator MUST send a Success packet.
 
-    Where the peer authenticates successfully to the authenticator, but
 
-    the authenticator does not send a result indication, the
 
-    authenticator MAY deny access by sending a Failure packet where the
 
-    peer is not currently authorized for network access.
 
-    A summary of the Success and Failure packet format is shown below.
 
-    The fields are transmitted from left to right.
 
-     0                   1                   2                   3
 
-     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
 
-    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
-    |     Code      |  Identifier   |            Length             |
 
-    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
-    Code
 
-       3 for Success
 
-       4 for Failure
 
-    Identifier
 
-       The Identifier field is one octet and aids in matching replies to
 
-       Responses.  The Identifier field MUST match the Identifier field
 
-       of the Response packet that it is sent in response to.
 
-    Length
 
-       4
 
- Aboba, et al.               Standards Track                    [Page 25]
 
- RFC 3748                          EAP                          June 2004
 
- 4.3.  Retransmission Behavior
 
-    Because the authentication process will often involve user input,
 
-    some care must be taken when deciding upon retransmission strategies
 
-    and authentication timeouts.  By default, where EAP is run over an
 
-    unreliable lower layer, the EAP retransmission timer SHOULD be
 
-    dynamically estimated.  A maximum of 3-5 retransmissions is
 
-    suggested.
 
-    When run over a reliable lower layer (e.g., EAP over ISAKMP/TCP, as
 
-    within [PIC]), the authenticator retransmission timer SHOULD be set
 
-    to an infinite value, so that retransmissions do not occur at the EAP
 
-    layer.  The peer may still maintain a timeout value so as to avoid
 
-    waiting indefinitely for a Request.
 
-    Where the authentication process requires user input, the measured
 
-    round trip times may be determined by user responsiveness rather than
 
-    network characteristics, so that dynamic RTO estimation may not be
 
-    helpful.  Instead, the retransmission timer SHOULD be set so as to
 
-    provide sufficient time for the user to respond, with longer timeouts
 
-    required in certain cases, such as where Token Cards (see Section
 
-    5.6) are involved.
 
-    In order to provide the EAP authenticator with guidance as to the
 
-    appropriate timeout value, a hint can be communicated to the
 
-    authenticator by the backend authentication server (such as via the
 
-    RADIUS Session-Timeout attribute).
 
-    In order to dynamically estimate the EAP retransmission timer, the
 
-    algorithms for the estimation of SRTT, RTTVAR, and RTO described in
 
-    [RFC2988] are RECOMMENDED, including use of Karn's algorithm, with
 
-    the following potential modifications:
 
-    [a] In order to avoid synchronization behaviors that can occur with
 
-        fixed timers among distributed systems, the retransmission timer
 
-        is calculated with a jitter by using the RTO value and randomly
 
-        adding a value drawn between -RTOmin/2 and RTOmin/2.  Alternative
 
-        calculations to create jitter MAY be used.  These MUST be
 
-        pseudo-random.  For a discussion of pseudo-random number
 
-        generation, see [RFC1750].
 
-    [b] When EAP is transported over a single link (as opposed to over
 
-        the Internet), smaller values of RTOinitial, RTOmin, and RTOmax
 
-        MAY be used.  Recommended values are RTOinitial=1 second,
 
-        RTOmin=200ms, and RTOmax=20 seconds.
 
- Aboba, et al.               Standards Track                    [Page 26]
 
- RFC 3748                          EAP                          June 2004
 
-    [c] When EAP is transported over a single link (as opposed to over
 
-        the Internet), estimates MAY be done on a per-authenticator
 
-        basis, rather than a per-session basis.  This enables the
 
-        retransmission estimate to make the most use of information on
 
-        link-layer behavior.
 
-    [d] An EAP implementation MAY clear SRTT and RTTVAR after backing off
 
-        the timer multiple times, as it is likely that the current SRTT
 
-        and RTTVAR are bogus in this situation.  Once SRTT and RTTVAR are
 
-        cleared, they should be initialized with the next RTT sample
 
-        taken as described in [RFC2988] equation 2.2.
 
- 5.  Initial EAP Request/Response Types
 
-    This section defines the initial set of EAP Types used in Request/
 
-    Response exchanges.  More Types may be defined in future documents.
 
-    The Type field is one octet and identifies the structure of an EAP
 
-    Request or Response packet.  The first 3 Types are considered special
 
-    case Types.
 
-    The remaining Types define authentication exchanges.  Nak (Type 3) or
 
-    Expanded Nak (Type 254) are valid only for Response packets, they
 
-    MUST NOT be sent in a Request.
 
-    All EAP implementations MUST support Types 1-4, which are defined in
 
-    this document, and SHOULD support Type 254.  Implementations MAY
 
-    support other Types defined here or in future RFCs.
 
-              1       Identity
 
-              2       Notification
 
-              3       Nak (Response only)
 
-              4       MD5-Challenge
 
-              5       One Time Password (OTP)
 
-              6       Generic Token Card (GTC)
 
-            254       Expanded Types
 
-            255       Experimental use
 
-    EAP methods MAY support authentication based on shared secrets.  If
 
-    the shared secret is a passphrase entered by the user,
 
-    implementations MAY support entering passphrases with non-ASCII
 
-    characters.  In this case, the input should be processed using an
 
-    appropriate stringprep [RFC3454] profile, and encoded in octets using
 
-    UTF-8 encoding [RFC2279].  A preliminary version of a possible
 
-    stringprep profile is described in [SASLPREP].
 
- Aboba, et al.               Standards Track                    [Page 27]
 
- RFC 3748                          EAP                          June 2004
 
- 5.1.  Identity
 
-    Description
 
-       The Identity Type is used to query the identity of the peer.
 
-       Generally, the authenticator will issue this as the initial
 
-       Request.  An optional displayable message MAY be included to
 
-       prompt the peer in the case where there is an expectation of
 
-       interaction with a user.  A Response of Type 1 (Identity) SHOULD
 
-       be sent in Response to a Request with a Type of 1 (Identity).
 
-       Some EAP implementations piggy-back various options into the
 
-       Identity Request after a NUL-character.  By default, an EAP
 
-       implementation SHOULD NOT assume that an Identity Request or
 
-       Response can be larger than 1020 octets.
 
-       It is RECOMMENDED that the Identity Response be used primarily for
 
-       routing purposes and selecting which EAP method to use.  EAP
 
-       Methods SHOULD include a method-specific mechanism for obtaining
 
-       the identity, so that they do not have to rely on the Identity
 
-       Response.  Identity Requests and Responses are sent in cleartext,
 
-       so an attacker may snoop on the identity, or even modify or spoof
 
-       identity exchanges.  To address these threats, it is preferable
 
-       for an EAP method to include an identity exchange that supports
 
-       per-packet authentication, integrity and replay protection, and
 
-       confidentiality.  The Identity Response may not be the appropriate
 
-       identity for the method; it may have been truncated or obfuscated
 
-       so as to provide privacy, or it may have been decorated for
 
-       routing purposes.  Where the peer is configured to only accept
 
-       authentication methods supporting protected identity exchanges,
 
-       the peer MAY provide an abbreviated Identity Response (such as
 
-       omitting the peer-name portion of the NAI [RFC2486]).  For further
 
-       discussion of identity protection, see Section 7.3.
 
-    Implementation Note: The peer MAY obtain the Identity via user input.
 
-    It is suggested that the authenticator retry the Identity Request in
 
-    the case of an invalid Identity or authentication failure to allow
 
-    for potential typos on the part of the user.  It is suggested that
 
-    the Identity Request be retried a minimum of 3 times before
 
-    terminating the authentication.  The Notification Request MAY be used
 
-    to indicate an invalid authentication attempt prior to transmitting a
 
-    new Identity Request (optionally, the failure MAY be indicated within
 
-    the message of the new Identity Request itself).
 
- Aboba, et al.               Standards Track                    [Page 28]
 
- RFC 3748                          EAP                          June 2004
 
-    Type
 
-       1
 
-    Type-Data
 
-       This field MAY contain a displayable message in the Request,
 
-       containing UTF-8 encoded ISO 10646 characters [RFC2279].  Where
 
-       the Request contains a null, only the portion of the field prior
 
-       to the null is displayed.  If the Identity is unknown, the
 
-       Identity Response field should be zero bytes in length.  The
 
-       Identity Response field MUST NOT be null terminated.  In all
 
-       cases, the length of the Type-Data field is derived from the
 
-       Length field of the Request/Response packet.
 
-    Security Claims (see Section 7.2):
 
-       Auth. mechanism:           None
 
-       Ciphersuite negotiation:   No
 
-       Mutual authentication:     No
 
-       Integrity protection:      No
 
-       Replay protection:         No
 
-       Confidentiality:           No
 
-       Key derivation:            No
 
-       Key strength:              N/A
 
-       Dictionary attack prot.:   N/A
 
-       Fast reconnect:            No
 
-       Crypt. binding:            N/A
 
-       Session independence:      N/A
 
-       Fragmentation:             No
 
-       Channel binding:           No
 
- 5.2.  Notification
 
-    Description
 
-       The Notification Type is optionally used to convey a displayable
 
-       message from the authenticator to the peer.  An authenticator MAY
 
-       send a Notification Request to the peer at any time when there is
 
-       no outstanding Request, prior to completion of an EAP
 
-       authentication method.  The peer MUST respond to a Notification
 
-       Request with a Notification Response unless the EAP authentication
 
-       method specification prohibits the use of Notification messages.
 
-       In any case, a Nak Response MUST NOT be sent in response to a
 
-       Notification Request.  Note that the default maximum length of a
 
-       Notification Request is 1020 octets.  By default, this leaves at
 
-       most 1015 octets for the human readable message.
 
- Aboba, et al.               Standards Track                    [Page 29]
 
- RFC 3748                          EAP                          June 2004
 
-       An EAP method MAY indicate within its specification that
 
-       Notification messages must not be sent during that method.  In
 
-       this case, the peer MUST silently discard Notification Requests
 
-       from the point where an initial Request for that Type is answered
 
-       with a Response of the same Type.
 
-       The peer SHOULD display this message to the user or log it if it
 
-       cannot be displayed.  The Notification Type is intended to provide
 
-       an acknowledged notification of some imperative nature, but it is
 
-       not an error indication, and therefore does not change the state
 
-       of the peer.  Examples include a password with an expiration time
 
-       that is about to expire, an OTP sequence integer which is nearing
 
-       0, an authentication failure warning, etc.  In most circumstances,
 
-       Notification should not be required.
 
-    Type
 
-       2
 
-    Type-Data
 
-       The Type-Data field in the Request contains a displayable message
 
-       greater than zero octets in length, containing UTF-8 encoded ISO
 
-       10646 characters [RFC2279].  The length of the message is
 
-       determined by the Length field of the Request packet.  The message
 
-       MUST NOT be null terminated.  A Response MUST be sent in reply to
 
-       the Request with a Type field of 2 (Notification).  The Type-Data
 
-       field of the Response is zero octets in length.  The Response
 
-       should be sent immediately (independent of how the message is
 
-       displayed or logged).
 
-    Security Claims (see Section 7.2):
 
-       Auth. mechanism:           None
 
-       Ciphersuite negotiation:   No
 
-       Mutual authentication:     No
 
-       Integrity protection:      No
 
-       Replay protection:         No
 
-       Confidentiality:           No
 
-       Key derivation:            No
 
-       Key strength:              N/A
 
-       Dictionary attack prot.:   N/A
 
-       Fast reconnect:            No
 
-       Crypt. binding:            N/A
 
-       Session independence:      N/A
 
-       Fragmentation:             No
 
-       Channel binding:           No
 
- Aboba, et al.               Standards Track                    [Page 30]
 
- RFC 3748                          EAP                          June 2004
 
- 5.3.  Nak
 
- 5.3.1.  Legacy Nak
 
-    Description
 
-       The legacy Nak Type is valid only in Response messages.  It is
 
-       sent in reply to a Request where the desired authentication Type
 
-       is unacceptable.  Authentication Types are numbered 4 and above.
 
-       The Response contains one or more authentication Types desired by
 
-       the Peer.  Type zero (0) is used to indicate that the sender has
 
-       no viable alternatives, and therefore the authenticator SHOULD NOT
 
-       send another Request after receiving a Nak Response containing a
 
-       zero value.
 
-       Since the legacy Nak Type is valid only in Responses and has very
 
-       limited functionality, it MUST NOT be used as a general purpose
 
-       error indication, such as for communication of error messages, or
 
-       negotiation of parameters specific to a particular EAP method.
 
-    Code
 
-       2 for Response.
 
-    Identifier
 
-       The Identifier field is one octet and aids in matching Responses
 
-       with Requests.  The Identifier field of a legacy Nak Response MUST
 
-       match the Identifier field of the Request packet that it is sent
 
-       in response to.
 
-    Length
 
-       >=6
 
-    Type
 
-       3
 
-    Type-Data
 
-       Where a peer receives a Request for an unacceptable authentication
 
-       Type (4-253,255), or a peer lacking support for Expanded Types
 
-       receives a Request for Type 254, a Nak Response (Type 3) MUST be
 
-       sent.  The Type-Data field of the Nak Response (Type 3) MUST
 
-       contain one or more octets indicating the desired authentication
 
-       Type(s), one octet per Type, or the value zero (0) to indicate no
 
-       proposed alternative.  A peer supporting Expanded Types that
 
- Aboba, et al.               Standards Track                    [Page 31]
 
- RFC 3748                          EAP                          June 2004
 
-       receives a Request for an unacceptable authentication Type (4-253,
 
-       255) MAY include the value 254 in the Nak Response (Type 3) to
 
-       indicate the desire for an Expanded authentication Type. If the
 
-       authenticator can accommodate this preference, it will respond
 
-       with an Expanded Type Request (Type 254).
 
-    Security Claims (see Section 7.2):
 
-       Auth. mechanism:           None
 
-       Ciphersuite negotiation:   No
 
-       Mutual authentication:     No
 
-       Integrity protection:      No
 
-       Replay protection:         No
 
-       Confidentiality:           No
 
-       Key derivation:            No
 
-       Key strength:              N/A
 
-       Dictionary attack prot.:   N/A
 
-       Fast reconnect:            No
 
-       Crypt. binding:            N/A
 
-       Session independence:      N/A
 
-       Fragmentation:             No
 
-       Channel binding:           No
 
- 5.3.2.  Expanded Nak
 
-    Description
 
-       The Expanded Nak Type is valid only in Response messages.  It MUST
 
-       be sent only in reply to a Request of Type 254 (Expanded Type)
 
-       where the authentication Type is unacceptable.  The Expanded Nak
 
-       Type uses the Expanded Type format itself, and the Response
 
-       contains one or more authentication Types desired by the peer, all
 
-       in Expanded Type format.  Type zero (0) is used to indicate that
 
-       the sender has no viable alternatives.  The general format of the
 
-       Expanded Type is described in Section 5.7.
 
-       Since the Expanded Nak Type is valid only in Responses and has
 
-       very limited functionality, it MUST NOT be used as a general
 
-       purpose error indication, such as for communication of error
 
-       messages, or negotiation of parameters specific to a particular
 
-       EAP method.
 
-    Code
 
-       2 for Response.
 
- Aboba, et al.               Standards Track                    [Page 32]
 
- RFC 3748                          EAP                          June 2004
 
-    Identifier
 
-       The Identifier field is one octet and aids in matching Responses
 
-       with Requests.  The Identifier field of an Expanded Nak Response
 
-       MUST match the Identifier field of the Request packet that it is
 
-       sent in response to.
 
-    Length
 
-       >=20
 
-    Type
 
-       254
 
-    Vendor-Id
 
-       0 (IETF)
 
-    Vendor-Type
 
-       3 (Nak)
 
-    Vendor-Data
 
-       The Expanded Nak Type is only sent when the Request contains an
 
-       Expanded Type (254) as defined in Section 5.7.  The Vendor-Data
 
-       field of the Nak Response MUST contain one or more authentication
 
-       Types (4 or greater), all in expanded format, 8 octets per Type,
 
-       or the value zero (0), also in Expanded Type format, to indicate
 
-       no proposed alternative.  The desired authentication Types may
 
-       include a mixture of Vendor-Specific and IETF Types.  For example,
 
-       an Expanded Nak Response indicating a preference for OTP (Type 5),
 
-       and an MIT (Vendor-Id=20) Expanded Type of 6 would appear as
 
-       follows:
 
- Aboba, et al.               Standards Track                    [Page 33]
 
- RFC 3748                          EAP                          June 2004
 
-     0                   1                   2                   3
 
-     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
 
-    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
-    |     2         |  Identifier   |           Length=28           |
 
-    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
-    |   Type=254    |                0 (IETF)                       |
 
-    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
-    |                                3 (Nak)                        |
 
-    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
-    |   Type=254    |                0 (IETF)                       |
 
-    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
-    |                                5 (OTP)                        |
 
-    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
-    |   Type=254    |                20 (MIT)                       |
 
-    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
-    |                                6                              |
 
-    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
-    An Expanded Nak Response indicating a no desired alternative would
 
-    appear as follows:
 
-     0                   1                   2                   3
 
-     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
 
-    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
-    |     2         |  Identifier   |           Length=20           |
 
-    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
-    |   Type=254    |                0 (IETF)                       |
 
-    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
-    |                                3 (Nak)                        |
 
-    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
-    |   Type=254    |                0 (IETF)                       |
 
-    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
-    |                                0 (No alternative)             |
 
-    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
-    Security Claims (see Section 7.2):
 
-       Auth. mechanism:           None
 
-       Ciphersuite negotiation:   No
 
-       Mutual authentication:     No
 
-       Integrity protection:      No
 
-       Replay protection:         No
 
-       Confidentiality:           No
 
-       Key derivation:            No
 
-       Key strength:              N/A
 
-       Dictionary attack prot.:   N/A
 
-       Fast reconnect:            No
 
-       Crypt. binding:            N/A
 
- Aboba, et al.               Standards Track                    [Page 34]
 
- RFC 3748                          EAP                          June 2004
 
-       Session independence:      N/A
 
-       Fragmentation:             No
 
-       Channel binding:           No
 
- 5.4.  MD5-Challenge
 
-    Description
 
-       The MD5-Challenge Type is analogous to the PPP CHAP protocol
 
-       [RFC1994] (with MD5 as the specified algorithm).  The Request
 
-       contains a "challenge" message to the peer.  A Response MUST be
 
-       sent in reply to the Request.  The Response MAY be either of Type
 
-       4 (MD5-Challenge), Nak (Type 3), or Expanded Nak (Type 254).  The
 
-       Nak reply indicates the peer's desired authentication Type(s).
 
-       EAP peer and EAP server implementations MUST support the MD5-
 
-       Challenge mechanism.  An authenticator that supports only pass-
 
-       through MUST allow communication with a backend authentication
 
-       server that is capable of supporting MD5-Challenge, although the
 
-       EAP authenticator implementation need not support MD5-Challenge
 
-       itself.  However, if the EAP authenticator can be configured to
 
-       authenticate peers locally (e.g., not operate in pass-through),
 
-       then the requirement for support of the MD5-Challenge mechanism
 
-       applies.
 
-       Note that the use of the Identifier field in the MD5-Challenge
 
-       Type is different from that described in [RFC1994].  EAP allows
 
-       for retransmission of MD5-Challenge Request packets, while
 
-       [RFC1994] states that both the Identifier and Challenge fields
 
-       MUST change each time a Challenge (the CHAP equivalent of the
 
-       MD5-Challenge Request packet) is sent.
 
-       Note: [RFC1994] treats the shared secret as an octet string, and
 
-       does not specify how it is entered into the system (or if it is
 
-       handled by the user at all).  EAP MD5-Challenge implementations
 
-       MAY support entering passphrases with non-ASCII characters.  See
 
-       Section 5 for instructions how the input should be processed and
 
-       encoded into octets.
 
-    Type
 
-       4
 
-    Type-Data
 
-       The contents of the Type-Data field is summarized below.  For
 
-       reference on the use of these fields, see the PPP Challenge
 
-       Handshake Authentication Protocol [RFC1994].
 
- Aboba, et al.               Standards Track                    [Page 35]
 
- RFC 3748                          EAP                          June 2004
 
-     0                   1                   2                   3
 
-     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
 
-    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
-    |  Value-Size   |  Value ...
 
-    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
-    |  Name ...
 
-    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
-    Security Claims (see Section 7.2):
 
-       Auth. mechanism:           Password or pre-shared key.
 
-       Ciphersuite negotiation:   No
 
-       Mutual authentication:     No
 
-       Integrity protection:      No
 
-       Replay protection:         No
 
-       Confidentiality:           No
 
-       Key derivation:            No
 
-       Key strength:              N/A
 
-       Dictionary attack prot.:   No
 
-       Fast reconnect:            No
 
-       Crypt. binding:            N/A
 
-       Session independence:      N/A
 
-       Fragmentation:             No
 
-       Channel binding:           No
 
- 5.5.  One-Time Password (OTP)
 
-    Description
 
-       The One-Time Password system is defined in "A One-Time Password
 
-       System" [RFC2289] and "OTP Extended Responses" [RFC2243].  The
 
-       Request contains an OTP challenge in the format described in
 
-       [RFC2289].  A Response MUST be sent in reply to the Request.  The
 
-       Response MUST be of Type 5 (OTP), Nak (Type 3), or Expanded Nak
 
-       (Type 254).  The Nak Response indicates the peer's desired
 
-       authentication Type(s).  The EAP OTP method is intended for use
 
-       with the One-Time Password system only, and MUST NOT be used to
 
-       provide support for cleartext passwords.
 
-    Type
 
-       5
 
- Aboba, et al.               Standards Track                    [Page 36]
 
- RFC 3748                          EAP                          June 2004
 
-    Type-Data
 
-       The Type-Data field contains the OTP "challenge" as a displayable
 
-       message in the Request.  In the Response, this field is used for
 
-       the 6 words from the OTP dictionary [RFC2289].  The messages MUST
 
-       NOT be null terminated.  The length of the field is derived from
 
-       the Length field of the Request/Reply packet.
 
-       Note: [RFC2289] does not specify how the secret pass-phrase is
 
-       entered by the user, or how the pass-phrase is converted into
 
-       octets.  EAP OTP implementations MAY support entering passphrases
 
-       with non-ASCII characters.  See Section 5 for instructions on how
 
-       the input should be processed and encoded into octets.
 
-    Security Claims (see Section 7.2):
 
-       Auth. mechanism:           One-Time Password
 
-       Ciphersuite negotiation:   No
 
-       Mutual authentication:     No
 
-       Integrity protection:      No
 
-       Replay protection:         Yes
 
-       Confidentiality:           No
 
-       Key derivation:            No
 
-       Key strength:              N/A
 
-       Dictionary attack prot.:   No
 
-       Fast reconnect:            No
 
-       Crypt. binding:            N/A
 
-       Session independence:      N/A
 
-       Fragmentation:             No
 
-       Channel binding:           No
 
- 5.6.  Generic Token Card (GTC)
 
-    Description
 
-       The Generic Token Card Type is defined for use with various Token
 
-       Card implementations which require user input.  The Request
 
-       contains a displayable message and the Response contains the Token
 
-       Card information necessary for authentication.  Typically, this
 
-       would be information read by a user from the Token card device and
 
-       entered as ASCII text.  A Response MUST be sent in reply to the
 
-       Request.  The Response MUST be of Type 6 (GTC), Nak (Type 3), or
 
-       Expanded Nak (Type 254).  The Nak Response indicates the peer's
 
-       desired authentication Type(s).  The EAP GTC method is intended
 
-       for use with the Token Cards supporting challenge/response
 
- Aboba, et al.               Standards Track                    [Page 37]
 
- RFC 3748                          EAP                          June 2004
 
-       authentication and MUST NOT be used to provide support for
 
-       cleartext passwords in the absence of a protected tunnel with
 
-       server authentication.
 
-    Type
 
-       6
 
-    Type-Data
 
-       The Type-Data field in the Request contains a displayable message
 
-       greater than zero octets in length.  The length of the message is
 
-       determined by the Length field of the Request packet.  The message
 
-       MUST NOT be null terminated.  A Response MUST be sent in reply to
 
-       the Request with a Type field of 6 (Generic Token Card).  The
 
-       Response contains data from the Token Card required for
 
-       authentication.  The length of the data is determined by the
 
-       Length field of the Response packet.
 
-       EAP GTC implementations MAY support entering a response with non-
 
-       ASCII characters.  See Section 5 for instructions how the input
 
-       should be processed and encoded into octets.
 
-    Security Claims (see Section 7.2):
 
-       Auth. mechanism:           Hardware token.
 
-       Ciphersuite negotiation:   No
 
-       Mutual authentication:     No
 
-       Integrity protection:      No
 
-       Replay protection:         No
 
-       Confidentiality:           No
 
-       Key derivation:            No
 
-       Key strength:              N/A
 
-       Dictionary attack prot.:   No
 
-       Fast reconnect:            No
 
-       Crypt. binding:            N/A
 
-       Session independence:      N/A
 
-       Fragmentation:             No
 
-       Channel binding:           No
 
- 5.7.  Expanded Types
 
-    Description
 
-       Since many of the existing uses of EAP are vendor-specific, the
 
-       Expanded method Type is available to allow vendors to support
 
-       their own Expanded Types not suitable for general usage.
 
- Aboba, et al.               Standards Track                    [Page 38]
 
- RFC 3748                          EAP                          June 2004
 
-       The Expanded Type is also used to expand the global Method Type
 
-       space beyond the original 255 values.  A Vendor-Id of 0 maps the
 
-       original 255 possible Types onto a space of 2^32-1 possible Types.
 
-       (Type 0 is only used in a Nak Response to indicate no acceptable
 
-       alternative).
 
-       An implementation that supports the Expanded attribute MUST treat
 
-       EAP Types that are less than 256 equivalently, whether they appear
 
-       as a single octet or as the 32-bit Vendor-Type within an Expanded
 
-       Type where Vendor-Id is 0.  Peers not equipped to interpret the
 
-       Expanded Type MUST send a Nak as described in Section 5.3.1, and
 
-       negotiate a more suitable authentication method.
 
-       A summary of the Expanded Type format is shown below.  The fields
 
-       are transmitted from left to right.
 
-     0                   1                   2                   3
 
-     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
 
-    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
-    |     Type      |               Vendor-Id                       |
 
-    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
-    |                          Vendor-Type                          |
 
-    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
-    |              Vendor data...
 
-    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
-    Type
 
-       254 for Expanded Type
 
-    Vendor-Id
 
-       The Vendor-Id is 3 octets and represents the SMI Network
 
-       Management Private Enterprise Code of the Vendor in network byte
 
-       order, as allocated by IANA.  A Vendor-Id of zero is reserved for
 
-       use by the IETF in providing an expanded global EAP Type space.
 
-    Vendor-Type
 
-       The Vendor-Type field is four octets and represents the vendor-
 
-       specific method Type.
 
-       If the Vendor-Id is zero, the Vendor-Type field is an extension
 
-       and superset of the existing namespace for EAP Types.  The first
 
-       256 Types are reserved for compatibility with single-octet EAP
 
-       Types that have already been assigned or may be assigned in the
 
-       future.  Thus, EAP Types from 0 through 255 are semantically
 
-       identical, whether they appear as single octet EAP Types or as
 
- Aboba, et al.               Standards Track                    [Page 39]
 
- RFC 3748                          EAP                          June 2004
 
-       Vendor-Types when Vendor-Id is zero.  There is one exception to
 
-       this rule: Expanded Nak and Legacy Nak packets share the same
 
-       Type, but must be treated differently because they have a
 
-       different format.
 
-    Vendor-Data
 
-       The Vendor-Data field is defined by the vendor.  Where a Vendor-Id
 
-       of zero is present, the Vendor-Data field will be used for
 
-       transporting the contents of EAP methods of Types defined by the
 
-       IETF.
 
- 5.8.  Experimental
 
-    Description
 
-       The Experimental Type has no fixed format or content.  It is
 
-       intended for use when experimenting with new EAP Types.  This Type
 
-       is intended for experimental and testing purposes.  No guarantee
 
-       is made for interoperability between peers using this Type, as
 
-       outlined in [RFC3692].
 
-    Type
 
-       255
 
-    Type-Data
 
-       Undefined
 
- 6.  IANA Considerations
 
-    This section provides guidance to the Internet Assigned Numbers
 
-    Authority (IANA) regarding registration of values related to the EAP
 
-    protocol, in accordance with BCP 26, [RFC2434].
 
-    There are two name spaces in EAP that require registration: Packet
 
-    Codes and method Types.
 
-    EAP is not intended as a general-purpose protocol, and allocations
 
-    SHOULD NOT be made for purposes unrelated to authentication.
 
-    The following terms are used here with the meanings defined in BCP
 
-    26: "name space", "assigned value", "registration".
 
-    The following policies are used here with the meanings defined in BCP
 
-    26: "Private Use", "First Come First Served", "Expert Review",
 
-    "Specification Required", "IETF Consensus", "Standards Action".
 
- Aboba, et al.               Standards Track                    [Page 40]
 
- RFC 3748                          EAP                          June 2004
 
-    For registration requests where a Designated Expert should be
 
-    consulted, the responsible IESG area director should appoint the
 
-    Designated Expert.  The intention is that any allocation will be
 
-    accompanied by a published RFC.  But in order to allow for the
 
-    allocation of values prior to the RFC being approved for publication,
 
-    the Designated Expert can approve allocations once it seems clear
 
-    that an RFC will be published.  The Designated expert will post a
 
-    request to the EAP WG mailing list (or a successor designated by the
 
-    Area Director) for comment and review, including an Internet-Draft.
 
-    Before a period of 30 days has passed, the Designated Expert will
 
-    either approve or deny the registration request and publish a notice
 
-    of the decision to the EAP WG mailing list or its successor, as well
 
-    as informing IANA.  A denial notice must be justified by an
 
-    explanation, and in the cases where it is possible, concrete
 
-    suggestions on how the request can be modified so as to become
 
-    acceptable should be provided.
 
- 6.1.  Packet Codes
 
-    Packet Codes have a range from 1 to 255, of which 1-4 have been
 
-    allocated.  Because a new Packet Code has considerable impact on
 
-    interoperability, a new Packet Code requires Standards Action, and
 
-    should be allocated starting at 5.
 
- 6.2.  Method Types
 
-    The original EAP method Type space has a range from 1 to 255, and is
 
-    the scarcest resource in EAP, and thus must be allocated with care.
 
-    Method Types 1-45 have been allocated, with 20 available for re-use.
 
-    Method Types 20 and 46-191 may be allocated on the advice of a
 
-    Designated Expert, with Specification Required.
 
-    Allocation of blocks of method Types (more than one for a given
 
-    purpose) should require IETF Consensus.  EAP Type Values 192-253 are
 
-    reserved and allocation requires Standards Action.
 
-    Method Type 254 is allocated for the Expanded Type.  Where the
 
-    Vendor-Id field is non-zero, the Expanded Type is used for functions
 
-    specific only to one vendor's implementation of EAP, where no
 
-    interoperability is deemed useful.  When used with a Vendor-Id of
 
-    zero, method Type 254 can also be used to provide for an expanded
 
-    IETF method Type space.  Method Type values 256-4294967295 may be
 
-    allocated after Type values 1-191 have been allocated, on the advice
 
-    of a Designated Expert, with Specification Required.
 
-    Method Type 255 is allocated for Experimental use, such as testing of
 
-    new EAP methods before a permanent Type is allocated.
 
- Aboba, et al.               Standards Track                    [Page 41]
 
- RFC 3748                          EAP                          June 2004
 
- 7.  Security Considerations
 
-    This section defines a generic threat model as well as the EAP method
 
-    security claims mitigating those threats.
 
-    It is expected that the generic threat model and corresponding
 
-    security claims will used to define EAP method requirements for use
 
-    in specific environments.  An example of such a requirements analysis
 
-    is provided in [IEEE-802.11i-req].  A security claims section is
 
-    required in EAP method specifications, so that EAP methods can be
 
-    evaluated against the requirements.
 
- 7.1.  Threat Model
 
-    EAP was developed for use with PPP [RFC1661] and was later adapted
 
-    for use in wired IEEE 802 networks [IEEE-802] in [IEEE-802.1X].
 
-    Subsequently, EAP has been proposed for use on wireless LAN networks
 
-    and over the Internet.  In all these situations, it is possible for
 
-    an attacker to gain access to links over which EAP packets are
 
-    transmitted.  For example, attacks on telephone infrastructure are
 
-    documented in [DECEPTION].
 
-    An attacker with access to the link may carry out a number of
 
-    attacks, including:
 
-    [1]  An attacker may try to discover user identities by snooping
 
-         authentication traffic.
 
-    [2]  An attacker may try to modify or spoof EAP packets.
 
-    [3]  An attacker may launch denial of service attacks by spoofing
 
-         lower layer indications or Success/Failure packets, by replaying
 
-         EAP packets, or by generating packets with overlapping
 
-         Identifiers.
 
-    [4]  An attacker may attempt to recover the pass-phrase by mounting
 
-         an offline dictionary attack.
 
-    [5]  An attacker may attempt to convince the peer to connect to an
 
-         untrusted network by mounting a man-in-the-middle attack.
 
-    [6]  An attacker may attempt to disrupt the EAP negotiation in order
 
-         cause a weak authentication method to be selected.
 
-    [7]  An attacker may attempt to recover keys by taking advantage of
 
-         weak key derivation techniques used within EAP methods.
 
- Aboba, et al.               Standards Track                    [Page 42]
 
- RFC 3748                          EAP                          June 2004
 
-    [8]  An attacker may attempt to take advantage of weak ciphersuites
 
-         subsequently used after the EAP conversation is complete.
 
-    [9]  An attacker may attempt to perform downgrading attacks on lower
 
-         layer ciphersuite negotiation in order to ensure that a weaker
 
-         ciphersuite is used subsequently to EAP authentication.
 
-    [10] An attacker acting as an authenticator may provide incorrect
 
-         information to the EAP peer and/or server via out-of-band
 
-         mechanisms (such as via a AAA or lower layer protocol).  This
 
-         includes impersonating another authenticator, or providing
 
-         inconsistent information to the peer and EAP server.
 
-    Depending on the lower layer, these attacks may be carried out
 
-    without requiring physical proximity.  Where EAP is used over
 
-    wireless networks, EAP packets may be forwarded by authenticators
 
-    (e.g., pre-authentication) so that the attacker need not be within
 
-    the coverage area of an authenticator in order to carry out an attack
 
-    on it or its peers.  Where EAP is used over the Internet, attacks may
 
-    be carried out at an even greater distance.
 
- 7.2.  Security Claims
 
-    In order to clearly articulate the security provided by an EAP
 
-    method, EAP method specifications MUST include a Security Claims
 
-    section, including the following declarations:
 
-    [a] Mechanism.  This is a statement of the authentication technology:
 
-        certificates, pre-shared keys, passwords, token cards, etc.
 
-    [b] Security claims.  This is a statement of the claimed security
 
-        properties of the method, using terms defined in Section 7.2.1:
 
-        mutual authentication, integrity protection, replay protection,
 
-        confidentiality, key derivation, dictionary attack resistance,
 
-        fast reconnect, cryptographic binding.  The Security Claims
 
-        section of an EAP method specification SHOULD provide
 
-        justification for the claims that are made.  This can be
 
-        accomplished by including a proof in an Appendix, or including a
 
-        reference to a proof.
 
-    [c] Key strength.  If the method derives keys, then the effective key
 
-        strength MUST be estimated.  This estimate is meant for potential
 
-        users of the method to determine if the keys produced are strong
 
-        enough for the intended application.
 
- Aboba, et al.               Standards Track                    [Page 43]
 
- RFC 3748                          EAP                          June 2004
 
-        The effective key strength SHOULD be stated as a number of bits,
 
-        defined as follows: If the effective key strength is N bits, the
 
-        best currently known methods to recover the key (with non-
 
-        negligible probability) require, on average, an effort comparable
 
-        to 2^(N-1) operations of a typical block cipher.  The statement
 
-        SHOULD be accompanied by a short rationale, explaining how this
 
-        number was derived.  This explanation SHOULD include the
 
-        parameters required to achieve the stated key strength based on
 
-        current knowledge of the algorithms.
 
-        (Note: Although it is difficult to define what "comparable
 
-        effort" and "typical block cipher" exactly mean, reasonable
 
-        approximations are sufficient here.  Refer to e.g. [SILVERMAN]
 
-        for more discussion.)
 
-        The key strength depends on the methods used to derive the keys.
 
-        For instance, if keys are derived from a shared secret (such as a
 
-        password or a long-term secret), and possibly some public
 
-        information such as nonces, the effective key strength is limited
 
-        by the strength of the long-term secret (assuming that the
 
-        derivation procedure is computationally simple).  To take another
 
-        example, when using public key algorithms, the strength of the
 
-        symmetric key depends on the strength of the public keys used.
 
-    [d] Description of key hierarchy.  EAP methods deriving keys MUST
 
-        either provide a reference to a key hierarchy specification, or
 
-        describe how Master Session Keys (MSKs) and Extended Master
 
-        Session Keys (EMSKs) are to be derived.
 
-    [e] Indication of vulnerabilities.  In addition to the security
 
-        claims that are made, the specification MUST indicate which of
 
-        the security claims detailed in Section 7.2.1 are NOT being made.
 
- 7.2.1.  Security Claims Terminology for EAP Methods
 
-    These terms are used to describe the security properties of EAP
 
-    methods:
 
-    Protected ciphersuite negotiation
 
-       This refers to the ability of an EAP method to negotiate the
 
-       ciphersuite used to protect the EAP conversation, as well as to
 
-       integrity protect the negotiation.  It does not refer to the
 
-       ability to negotiate the ciphersuite used to protect data.
 
- Aboba, et al.               Standards Track                    [Page 44]
 
- RFC 3748                          EAP                          June 2004
 
-    Mutual authentication
 
-       This refers to an EAP method in which, within an interlocked
 
-       exchange, the authenticator authenticates the peer and the peer
 
-       authenticates the authenticator.  Two independent one-way methods,
 
-       running in opposite directions do not provide mutual
 
-       authentication as defined here.
 
-    Integrity protection
 
-       This refers to providing data origin authentication and protection
 
-       against unauthorized modification of information for EAP packets
 
-       (including EAP Requests and Responses).  When making this claim, a
 
-       method specification MUST describe the EAP packets and fields
 
-       within the EAP packet that are protected.
 
-    Replay protection
 
-       This refers to protection against replay of an EAP method or its
 
-       messages, including success and failure result indications.
 
-    Confidentiality
 
-       This refers to encryption of EAP messages, including EAP Requests
 
-       and Responses, and success and failure result indications.  A
 
-       method making this claim MUST support identity protection (see
 
-       Section 7.3).
 
-    Key derivation
 
-       This refers to the ability of the EAP method to derive exportable
 
-       keying material, such as the Master Session Key (MSK), and
 
-       Extended Master Session Key (EMSK).  The MSK is used only for
 
-       further key derivation, not directly for protection of the EAP
 
-       conversation or subsequent data.  Use of the EMSK is reserved.
 
-    Key strength
 
-       If the effective key strength is N bits, the best currently known
 
-       methods to recover the key (with non-negligible probability)
 
-       require, on average, an effort comparable to 2^(N-1) operations of
 
-       a typical block cipher.
 
-    Dictionary attack resistance
 
-       Where password authentication is used, passwords are commonly
 
-       selected from a small set (as compared to a set of N-bit keys),
 
-       which raises a concern about dictionary attacks.  A method may be
 
-       said to provide protection against dictionary attacks if, when it
 
-       uses a password as a secret, the method does not allow an offline
 
-       attack that has a work factor based on the number of passwords in
 
-       an attacker's dictionary.
 
- Aboba, et al.               Standards Track                    [Page 45]
 
- RFC 3748                          EAP                          June 2004
 
-    Fast reconnect
 
-       The ability, in the case where a security association has been
 
-       previously established, to create a new or refreshed security
 
-       association more efficiently or in a smaller number of round-
 
-       trips.
 
-    Cryptographic binding
 
-       The demonstration of the EAP peer to the EAP server that a single
 
-       entity has acted as the EAP peer for all methods executed within a
 
-       tunnel method.  Binding MAY also imply that the EAP server
 
-       demonstrates to the peer that a single entity has acted as the EAP
 
-       server for all methods executed within a tunnel method.  If
 
-       executed correctly, binding serves to mitigate man-in-the-middle
 
-       vulnerabilities.
 
-    Session independence
 
-       The demonstration that passive attacks (such as capture of the EAP
 
-       conversation) or active attacks (including compromise of the MSK
 
-       or EMSK) does not enable compromise of subsequent or prior MSKs or
 
-       EMSKs.
 
-    Fragmentation
 
-       This refers to whether an EAP method supports fragmentation and
 
-       reassembly.  As noted in Section 3.1, EAP methods should support
 
-       fragmentation and reassembly if EAP packets can exceed the minimum
 
-       MTU of 1020 octets.
 
-    Channel binding
 
-       The communication within an EAP method of integrity-protected
 
-       channel properties such as endpoint identifiers which can be
 
-       compared to values communicated via out of band mechanisms (such
 
-       as via a AAA or lower layer protocol).
 
-    Note: This list of security claims is not exhaustive.  Additional
 
-    properties, such as additional denial-of-service protection, may be
 
-    relevant as well.
 
- 7.3.  Identity Protection
 
-    An Identity exchange is optional within the EAP conversation.
 
-    Therefore, it is possible to omit the Identity exchange entirely, or
 
-    to use a method-specific identity exchange once a protected channel
 
-    has been established.
 
-    However, where roaming is supported as described in [RFC2607], it may
 
-    be necessary to locate the appropriate backend authentication server
 
-    before the authentication conversation can proceed.  The realm
 
-    portion of the Network Access Identifier (NAI) [RFC2486] is typically
 
- Aboba, et al.               Standards Track                    [Page 46]
 
- RFC 3748                          EAP                          June 2004
 
-    included within the EAP-Response/Identity in order to enable the
 
-    authentication exchange to be routed to the appropriate backend
 
-    authentication server.  Therefore, while the peer-name portion of the
 
-    NAI may be omitted in the EAP-Response/Identity where proxies or
 
-    relays are present, the realm portion may be required.
 
-    It is possible for the identity in the identity response to be
 
-    different from the identity authenticated by the EAP method.  This
 
-    may be intentional in the case of identity privacy.  An EAP method
 
-    SHOULD use the authenticated identity when making access control
 
-    decisions.
 
- 7.4.  Man-in-the-Middle Attacks
 
-    Where EAP is tunneled within another protocol that omits peer
 
-    authentication, there exists a potential vulnerability to a man-in-
 
-    the-middle attack.  For details, see [BINDING] and [MITM].
 
-    As noted in Section 2.1, EAP does not permit untunneled sequences of
 
-    authentication methods.  Were a sequence of EAP authentication
 
-    methods to be permitted, the peer might not have proof that a single
 
-    entity has acted as the authenticator for all EAP methods within the
 
-    sequence.  For example, an authenticator might terminate one EAP
 
-    method, then forward the next method in the sequence to another party
 
-    without the peer's knowledge or consent.  Similarly, the
 
-    authenticator might not have proof that a single entity has acted as
 
-    the peer for all EAP methods within the sequence.
 
-    Tunneling EAP within another protocol enables an attack by a rogue
 
-    EAP authenticator tunneling EAP to a legitimate server.  Where the
 
-    tunneling protocol is used for key establishment but does not require
 
-    peer authentication, an attacker convincing a legitimate peer to
 
-    connect to it will be able to tunnel EAP packets to a legitimate
 
-    server, successfully authenticating and obtaining the key.  This
 
-    allows the attacker to successfully establish itself as a man-in-
 
-    the-middle, gaining access to the network, as well as the ability to
 
-    decrypt data traffic between the legitimate peer and server.
 
-    This attack may be mitigated by the following measures:
 
-    [a] Requiring mutual authentication within EAP tunneling mechanisms.
 
-    [b] Requiring cryptographic binding between the EAP tunneling
 
-        protocol and the tunneled EAP methods.  Where cryptographic
 
-        binding is supported, a mechanism is also needed to protect
 
-        against downgrade attacks that would bypass it.  For further
 
-        details on cryptographic binding, see [BINDING].
 
- Aboba, et al.               Standards Track                    [Page 47]
 
- RFC 3748                          EAP                          June 2004
 
-    [c] Limiting the EAP methods authorized for use without protection,
 
-        based on peer and authenticator policy.
 
-    [d] Avoiding the use of tunnels when a single, strong method is
 
-        available.
 
- 7.5.  Packet Modification Attacks
 
-    While EAP methods may support per-packet data origin authentication,
 
-    integrity, and replay protection, support is not provided within the
 
-    EAP layer.
 
-    Since the Identifier is only a single octet, it is easy to guess,
 
-    allowing an attacker to successfully inject or replay EAP packets.
 
-    An attacker may also modify EAP headers (Code, Identifier, Length,
 
-    Type) within EAP packets where the header is unprotected.  This could
 
-    cause packets to be inappropriately discarded or misinterpreted.
 
-    To protect EAP packets against modification, spoofing, or replay,
 
-    methods supporting protected ciphersuite negotiation, mutual
 
-    authentication, and key derivation, as well as integrity and replay
 
-    protection, are recommended.  See Section 7.2.1 for definitions of
 
-    these security claims.
 
-    Method-specific MICs may be used to provide protection.  If a per-
 
-    packet MIC is employed within an EAP method, then peers,
 
-    authentication servers, and authenticators not operating in pass-
 
-    through mode MUST validate the MIC.  MIC validation failures SHOULD
 
-    be logged.  Whether a MIC validation failure is considered a fatal
 
-    error or not is determined by the EAP method specification.
 
-    It is RECOMMENDED that methods providing integrity protection of EAP
 
-    packets include coverage of all the EAP header fields, including the
 
-    Code, Identifier, Length, Type, and Type-Data fields.
 
-    Since EAP messages of Types Identity, Notification, and Nak do not
 
-    include their own MIC, it may be desirable for the EAP method MIC to
 
-    cover information contained within these messages, as well as the
 
-    header of each EAP message.
 
-    To provide protection, EAP also may be encapsulated within a
 
-    protected channel created by protocols such as ISAKMP [RFC2408], as
 
-    is done in [IKEv2] or within TLS [RFC2246].  However, as noted in
 
-    Section 7.4, EAP tunneling may result in a man-in-the-middle
 
-    vulnerability.
 
- Aboba, et al.               Standards Track                    [Page 48]
 
- RFC 3748                          EAP                          June 2004
 
-    Existing EAP methods define message integrity checks (MICs) that
 
-    cover more than one EAP packet.  For example, EAP-TLS [RFC2716]
 
-    defines a MIC over a TLS record that could be split into multiple
 
-    fragments; within the FINISHED message, the MIC is computed over
 
-    previous messages.  Where the MIC covers more than one EAP packet, a
 
-    MIC validation failure is typically considered a fatal error.
 
-    Within EAP-TLS [RFC2716], a MIC validation failure is treated as a
 
-    fatal error, since that is what is specified in TLS [RFC2246].
 
-    However, it is also possible to develop EAP methods that support
 
-    per-packet MICs, and respond to verification failures by silently
 
-    discarding the offending packet.
 
-    In this document, descriptions of EAP message handling assume that
 
-    per-packet MIC validation, where it occurs, is effectively performed
 
-    as though it occurs before sending any responses or changing the
 
-    state of the host which received the packet.
 
- 7.6.  Dictionary Attacks
 
-    Password authentication algorithms such as EAP-MD5, MS-CHAPv1
 
-    [RFC2433], and Kerberos V [RFC1510] are known to be vulnerable to
 
-    dictionary attacks.  MS-CHAPv1 vulnerabilities are documented in
 
-    [PPTPv1]; MS-CHAPv2 vulnerabilities are documented in [PPTPv2];
 
-    Kerberos vulnerabilities are described in [KRBATTACK], [KRBLIM], and
 
-    [KERB4WEAK].
 
-    In order to protect against dictionary attacks, authentication
 
-    methods resistant to dictionary attacks (as defined in Section 7.2.1)
 
-    are recommended.
 
-    If an authentication algorithm is used that is known to be vulnerable
 
-    to dictionary attacks, then the conversation may be tunneled within a
 
-    protected channel in order to provide additional protection.
 
-    However, as noted in Section 7.4, EAP tunneling may result in a man-
 
-    in-the-middle vulnerability, and therefore dictionary attack
 
-    resistant methods are preferred.
 
- 7.7.  Connection to an Untrusted Network
 
-    With EAP methods supporting one-way authentication, such as EAP-MD5,
 
-    the peer does not authenticate the authenticator, making the peer
 
-    vulnerable to attack by a rogue authenticator.  Methods supporting
 
-    mutual authentication (as defined in Section 7.2.1) address this
 
-    vulnerability.
 
-    In EAP there is no requirement that authentication be full duplex or
 
-    that the same protocol be used in both directions.  It is perfectly
 
- Aboba, et al.               Standards Track                    [Page 49]
 
- RFC 3748                          EAP                          June 2004
 
-    acceptable for different protocols to be used in each direction.
 
-    This will, of course, depend on the specific protocols negotiated.
 
-    However, in general, completing a single unitary mutual
 
-    authentication is preferable to two one-way authentications, one in
 
-    each direction.  This is because separate authentications that are
 
-    not bound cryptographically so as to demonstrate they are part of the
 
-    same session are subject to man-in-the-middle attacks, as discussed
 
-    in Section 7.4.
 
- 7.8.  Negotiation Attacks
 
-    In a negotiation attack, the attacker attempts to convince the peer
 
-    and authenticator to negotiate a less secure EAP method.  EAP does
 
-    not provide protection for Nak Response packets, although it is
 
-    possible for a method to include coverage of Nak Responses within a
 
-    method-specific MIC.
 
-    Within or associated with each authenticator, it is not anticipated
 
-    that a particular named peer will support a choice of methods.  This
 
-    would make the peer vulnerable to attacks that negotiate the least
 
-    secure method from among a set.  Instead, for each named peer, there
 
-    SHOULD be an indication of exactly one method used to authenticate
 
-    that peer name.  If a peer needs to make use of different
 
-    authentication methods under different circumstances, then distinct
 
-    identities SHOULD be employed, each of which identifies exactly one
 
-    authentication method.
 
- 7.9.  Implementation Idiosyncrasies
 
-    The interaction of EAP with lower layers such as PPP and IEEE 802 are
 
-    highly implementation dependent.
 
-    For example, upon failure of authentication, some PPP implementations
 
-    do not terminate the link, instead limiting traffic in Network-Layer
 
-    Protocols to a filtered subset, which in turn allows the peer the
 
-    opportunity to update secrets or send mail to the network
 
-    administrator indicating a problem.  Similarly, while an
 
-    authentication failure will result in denied access to the controlled
 
-    port in [IEEE-802.1X], limited traffic may be permitted on the
 
-    uncontrolled port.
 
-    In EAP there is no provision for retries of failed authentication.
 
-    However, in PPP the LCP state machine can renegotiate the
 
-    authentication protocol at any time, thus allowing a new attempt.
 
-    Similarly, in IEEE 802.1X the Supplicant or Authenticator can re-
 
-    authenticate at any time.  It is recommended that any counters used
 
-    for authentication failure not be reset until after successful
 
-    authentication, or subsequent termination of the failed link.
 
- Aboba, et al.               Standards Track                    [Page 50]
 
- RFC 3748                          EAP                          June 2004
 
- 7.10.  Key Derivation
 
-    It is possible for the peer and EAP server to mutually authenticate
 
-    and derive keys.  In order to provide keying material for use in a
 
-    subsequently negotiated ciphersuite, an EAP method supporting key
 
-    derivation MUST export a Master Session Key (MSK) of at least 64
 
-    octets, and an Extended Master Session Key (EMSK) of at least 64
 
-    octets.  EAP Methods deriving keys MUST provide for mutual
 
-    authentication between the EAP peer and the EAP Server.
 
-    The MSK and EMSK MUST NOT be used directly to protect data; however,
 
-    they are of sufficient size to enable derivation of a AAA-Key
 
-    subsequently used to derive Transient Session Keys (TSKs) for use
 
-    with the selected ciphersuite.  Each ciphersuite is responsible for
 
-    specifying how to derive the TSKs from the AAA-Key.
 
-    The AAA-Key is derived from the keying material exported by the EAP
 
-    method (MSK and EMSK).  This derivation occurs on the AAA server.  In
 
-    many existing protocols that use EAP, the AAA-Key and MSK are
 
-    equivalent, but more complicated mechanisms are possible (see
 
-    [KEYFRAME] for details).
 
-    EAP methods SHOULD ensure the freshness of the MSK and EMSK, even in
 
-    cases where one party may not have a high quality random number
 
-    generator.  A RECOMMENDED method is for each party to provide a nonce
 
-    of at least 128 bits, used in the derivation of the MSK and EMSK.
 
-    EAP methods export the MSK and EMSK, but not Transient Session Keys
 
-    so as to allow EAP methods to be ciphersuite and media independent.
 
-    Keying material exported by EAP methods MUST be independent of the
 
-    ciphersuite negotiated to protect data.
 
-    Depending on the lower layer, EAP methods may run before or after
 
-    ciphersuite negotiation, so that the selected ciphersuite may not be
 
-    known to the EAP method.  By providing keying material usable with
 
-    any ciphersuite, EAP methods can used with a wide range of
 
-    ciphersuites and media.
 
-    In order to preserve algorithm independence, EAP methods deriving
 
-    keys SHOULD support (and document) the protected negotiation of the
 
-    ciphersuite used to protect the EAP conversation between the peer and
 
-    server.  This is distinct from the ciphersuite negotiated between the
 
-    peer and authenticator, used to protect data.
 
-    The strength of Transient Session Keys (TSKs) used to protect data is
 
-    ultimately dependent on the strength of keys generated by the EAP
 
-    method.  If an EAP method cannot produce keying material of
 
-    sufficient strength, then the TSKs may be subject to a brute force
 
- Aboba, et al.               Standards Track                    [Page 51]
 
- RFC 3748                          EAP                          June 2004
 
-    attack.  In order to enable deployments requiring strong keys, EAP
 
-    methods supporting key derivation SHOULD be capable of generating an
 
-    MSK and EMSK, each with an effective key strength of at least 128
 
-    bits.
 
-    Methods supporting key derivation MUST demonstrate cryptographic
 
-    separation between the MSK and EMSK branches of the EAP key
 
-    hierarchy.  Without violating a fundamental cryptographic assumption
 
-    (such as the non-invertibility of a one-way function), an attacker
 
-    recovering the MSK or EMSK MUST NOT be able to recover the other
 
-    quantity with a level of effort less than brute force.
 
-    Non-overlapping substrings of the MSK MUST be cryptographically
 
-    separate from each other, as defined in Section 7.2.1.  That is,
 
-    knowledge of one substring MUST NOT help in recovering some other
 
-    substring without breaking some hard cryptographic assumption.  This
 
-    is required because some existing ciphersuites form TSKs by simply
 
-    splitting the AAA-Key to pieces of appropriate length.  Likewise,
 
-    non-overlapping substrings of the EMSK MUST be cryptographically
 
-    separate from each other, and from substrings of the MSK.
 
-    The EMSK is reserved for future use and MUST remain on the EAP peer
 
-    and EAP server where it is derived; it MUST NOT be transported to, or
 
-    shared with, additional parties, or used to derive any other keys.
 
-    (This restriction will be relaxed in a future document that specifies
 
-    how the EMSK can be used.)
 
-    Since EAP does not provide for explicit key lifetime negotiation, EAP
 
-    peers, authenticators, and authentication servers MUST be prepared
 
-    for situations in which one of the parties discards the key state,
 
-    which remains valid on another party.
 
-    This specification does not provide detailed guidance on how EAP
 
-    methods derive the MSK and EMSK, how the AAA-Key is derived from the
 
-    MSK and/or EMSK, or how the TSKs are derived from the AAA-Key.
 
-    The development and validation of key derivation algorithms is
 
-    difficult, and as a result, EAP methods SHOULD re-use well
 
-    established and analyzed mechanisms for key derivation (such as those
 
-    specified in IKE [RFC2409] or TLS [RFC2246]), rather than inventing
 
-    new ones. EAP methods SHOULD also utilize well established and
 
-    analyzed mechanisms for MSK and EMSK derivation.  Further details on
 
-    EAP Key Derivation are provided within [KEYFRAME].
 
- Aboba, et al.               Standards Track                    [Page 52]
 
- RFC 3748                          EAP                          June 2004
 
- 7.11.  Weak Ciphersuites
 
-    If after the initial EAP authentication, data packets are sent
 
-    without per-packet authentication, integrity, and replay protection,
 
-    an attacker with access to the media can inject packets, "flip bits"
 
-    within existing packets, replay packets, or even hijack the session
 
-    completely.  Without per-packet confidentiality, it is possible to
 
-    snoop data packets.
 
-    To protect against data modification, spoofing, or snooping, it is
 
-    recommended that EAP methods supporting mutual authentication and key
 
-    derivation (as defined by Section 7.2.1) be used, along with lower
 
-    layers providing per-packet confidentiality, authentication,
 
-    integrity, and replay protection.
 
-    Additionally, if the lower layer performs ciphersuite negotiation, it
 
-    should be understood that EAP does not provide by itself integrity
 
-    protection of that negotiation.  Therefore, in order to avoid
 
-    downgrading attacks which would lead to weaker ciphersuites being
 
-    used, clients implementing lower layer ciphersuite negotiation SHOULD
 
-    protect against negotiation downgrading.
 
-    This can be done by enabling users to configure which ciphersuites
 
-    are acceptable as a matter of security policy, or the ciphersuite
 
-    negotiation MAY be authenticated using keying material derived from
 
-    the EAP authentication and a MIC algorithm agreed upon in advance by
 
-    lower-layer peers.
 
- 7.12.  Link Layer
 
-    There are reliability and security issues with link layer indications
 
-    in PPP, IEEE 802 LANs, and IEEE 802.11 wireless LANs:
 
-    [a] PPP.  In PPP, link layer indications such as LCP-Terminate (a
 
-        link failure indication) and NCP (a link success indication) are
 
-        not authenticated or integrity protected.  They can therefore be
 
-        spoofed by an attacker with access to the link.
 
-    [b] IEEE 802.  IEEE 802.1X EAPOL-Start and EAPOL-Logoff frames are
 
-        not authenticated or integrity protected.  They can therefore be
 
-        spoofed by an attacker with access to the link.
 
-    [c] IEEE 802.11.  In IEEE 802.11, link layer indications include
 
-        Disassociate and Deauthenticate frames (link failure
 
-        indications), and the first message of the 4-way handshake (link
 
-        success indication).  These messages are not authenticated or
 
-        integrity protected, and although they are not forwardable, they
 
-        are spoofable by an attacker within range.
 
- Aboba, et al.               Standards Track                    [Page 53]
 
- RFC 3748                          EAP                          June 2004
 
-    In IEEE 802.11, IEEE 802.1X data frames may be sent as Class 3
 
-    unicast data frames, and are therefore forwardable.  This implies
 
-    that while EAPOL-Start and EAPOL-Logoff messages may be authenticated
 
-    and integrity protected, they can be spoofed by an authenticated
 
-    attacker far from the target when "pre-authentication" is enabled.
 
-    In IEEE 802.11, a "link down" indication is an unreliable indication
 
-    of link failure, since wireless signal strength can come and go and
 
-    may be influenced by radio frequency interference generated by an
 
-    attacker.  To avoid unnecessary resets, it is advisable to damp these
 
-    indications, rather than passing them directly to the EAP.  Since EAP
 
-    supports retransmission, it is robust against transient connectivity
 
-    losses.
 
- 7.13.  Separation of Authenticator and Backend Authentication Server
 
-    It is possible for the EAP peer and EAP server to mutually
 
-    authenticate and derive a AAA-Key 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 client to derive the AAA-Key from the MSK and
 
-    EMSK exported by the EAP method, and to subsequently pass a Transient
 
-    Session Key (TSK) to the ciphersuite module.
 
-    However, in the case where the authenticator and authentication
 
-    server reside on different machines, there are several implications
 
-    for security.
 
-    [a] 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 authenticator that it is speaking to, using EAP alone.
 
-    [b] As discussed in [RFC3579], the authenticator is dependent on the
 
-        AAA protocol in order to know the outcome of an authentication
 
-        conversation, and does not look at the encapsulated EAP packet
 
-        (if one is present) to determine the outcome.  In practice, this
 
-        implies that the AAA protocol spoken between the authenticator
 
-        and authentication server MUST support per-packet authentication,
 
-        integrity, and replay protection.
 
-    [c] After completion of the EAP conversation, where lower layer
 
-        security services such as per-packet confidentiality,
 
-        authentication, integrity, and replay protection will be enabled,
 
-        a secure association protocol SHOULD be run between the peer and
 
-        authenticator in order to provide mutual authentication between
 
- Aboba, et al.               Standards Track                    [Page 54]
 
- RFC 3748                          EAP                          June 2004
 
-        the peer and authenticator, guarantee liveness of transient
 
-        session keys, provide protected ciphersuite and capabilities
 
-        negotiation for subsequent data, and synchronize key usage.
 
-    [d] A AAA-Key derived from the MSK and/or EMSK negotiated between the
 
-        peer and authentication server MAY be transmitted to the
 
-        authenticator.  Therefore, a mechanism needs to be provided to
 
-        transmit the AAA-Key from the authentication server to the
 
-        authenticator that needs it.  The specification of the AAA-key
 
-        derivation, transport, and wrapping mechanisms is outside the
 
-        scope of this document.  Further details on AAA-Key Derivation
 
-        are provided within [KEYFRAME].
 
- 7.14.  Cleartext Passwords
 
-    This specification does not define a mechanism for cleartext password
 
-    authentication.  The omission is intentional.  Use of cleartext
 
-    passwords would allow the password to be captured by an attacker with
 
-    access to a link over which EAP packets are transmitted.
 
-    Since protocols encapsulating EAP, such as RADIUS [RFC3579], may not
 
-    provide confidentiality, EAP packets may be subsequently encapsulated
 
-    for transport over the Internet where they may be captured by an
 
-    attacker.
 
-    As a result, cleartext passwords cannot be securely used within EAP,
 
-    except where encapsulated within a protected tunnel with server
 
-    authentication.  Some of the same risks apply to EAP methods without
 
-    dictionary attack resistance, as defined in Section 7.2.1.  For
 
-    details, see Section 7.6.
 
- 7.15.  Channel Binding
 
-    It is possible for a compromised or poorly implemented EAP
 
-    authenticator to communicate incorrect information to the EAP peer
 
-    and/or server.  This may enable an authenticator to impersonate
 
-    another authenticator or communicate incorrect information via out-
 
-    of-band mechanisms (such as via a AAA or lower layer protocol).
 
-    Where EAP is used in pass-through mode, the EAP peer typically does
 
-    not verify the identity of the pass-through authenticator, it only
 
-    verifies that the pass-through authenticator is trusted by the EAP
 
-    server.  This creates a potential security vulnerability.
 
-    Section 4.3.7 of [RFC3579] describes how an EAP pass-through
 
-    authenticator acting as a AAA client can be detected if it attempts
 
-    to impersonate another authenticator (such by sending incorrect NAS-
 
-    Identifier [RFC2865], NAS-IP-Address [RFC2865] or NAS-IPv6-Address
 
- Aboba, et al.               Standards Track                    [Page 55]
 
- RFC 3748                          EAP                          June 2004
 
-    [RFC3162] attributes via the AAA protocol).  However, it is possible
 
-    for a pass-through authenticator acting as a AAA client to provide
 
-    correct information to the AAA server while communicating misleading
 
-    information to the EAP peer via a lower layer protocol.
 
-    For example, it is possible for a compromised authenticator to
 
-    utilize another authenticator's Called-Station-Id or NAS-Identifier
 
-    in communicating with the EAP peer via a lower layer protocol, or for
 
-    a pass-through authenticator acting as a AAA client to provide an
 
-    incorrect peer Calling-Station-Id [RFC2865][RFC3580] to the AAA
 
-    server via the AAA protocol.
 
-    In order to address this vulnerability, EAP methods may support a
 
-    protected exchange of channel properties such as endpoint
 
-    identifiers, including (but not limited to): Called-Station-Id
 
-    [RFC2865][RFC3580], Calling-Station-Id [RFC2865][RFC3580], NAS-
 
-    Identifier [RFC2865], NAS-IP-Address [RFC2865], and NAS-IPv6-Address
 
-    [RFC3162].
 
-    Using such a protected exchange, it is possible to match the channel
 
-    properties provided by the authenticator via out-of-band mechanisms
 
-    against those exchanged within the EAP method.  Where discrepancies
 
-    are found, these SHOULD be logged; additional actions MAY also be
 
-    taken, such as denying access.
 
- 7.16.  Protected Result Indications
 
-    Within EAP, Success and Failure packets are neither acknowledged nor
 
-    integrity protected.  Result indications improve resilience to loss
 
-    of Success and Failure packets when EAP is run over lower layers
 
-    which do not support retransmission or synchronization of the
 
-    authentication state.  In media such as IEEE 802.11, which provides
 
-    for retransmission, as well as synchronization of authentication
 
-    state via the 4-way handshake defined in [IEEE-802.11i], additional
 
-    resilience is typically of marginal benefit.
 
-    Depending on the method and circumstances, result indications can be
 
-    spoofable by an attacker.  A method is said to provide protected
 
-    result indications if it supports result indications, as well as the
 
-    "integrity protection" and "replay protection" claims.  A method
 
-    supporting protected result indications MUST indicate which result
 
-    indications are protected, and which are not.
 
-    Protected result indications are not required to protect against
 
-    rogue authenticators.  Within a mutually authenticating method,
 
-    requiring that the server authenticate to the peer before the peer
 
-    will accept a Success packet prevents an attacker from acting as a
 
-    rogue authenticator.
 
- Aboba, et al.               Standards Track                    [Page 56]
 
- RFC 3748                          EAP                          June 2004
 
-    However, it is possible for an attacker to forge a Success packet
 
-    after the server has authenticated to the peer, but before the peer
 
-    has authenticated to the server.  If the peer were to accept the
 
-    forged Success packet and attempt to access the network when it had
 
-    not yet successfully authenticated to the server, a denial of service
 
-    attack could be mounted against the peer.  After such an attack, if
 
-    the lower layer supports failure indications, the authenticator can
 
-    synchronize state with the peer by providing a lower layer failure
 
-    indication.  See Section 7.12 for details.
 
-    If a server were to authenticate the peer and send a Success packet
 
-    prior to determining whether the peer has authenticated the
 
-    authenticator, an idle timeout can occur if the authenticator is not
 
-    authenticated by the peer.  Where supported by the lower layer, an
 
-    authenticator sensing the absence of the peer can free resources.
 
-    In a method supporting result indications, a peer that has
 
-    authenticated the server does not consider the authentication
 
-    successful until it receives an indication that the server
 
-    successfully authenticated it.  Similarly, a server that has
 
-    successfully authenticated the peer does not consider the
 
-    authentication successful until it receives an indication that the
 
-    peer has authenticated the server.
 
-    In order to avoid synchronization problems, prior to sending a
 
-    success result indication, it is desirable for the sender to verify
 
-    that sufficient authorization exists for granting access, though, as
 
-    discussed below, this is not always possible.
 
-    While result indications may enable synchronization of the
 
-    authentication result between the peer and server, this does not
 
-    guarantee that the peer and authenticator will be synchronized in
 
-    terms of their authorization or that timeouts will not occur.  For
 
-    example, the EAP server may not be aware of an authorization decision
 
-    made by a AAA proxy; the AAA server may check authorization only
 
-    after authentication has completed successfully, to discover that
 
-    authorization cannot be granted, or the AAA server may grant access
 
-    but the authenticator may be unable to provide it due to a temporary
 
-    lack of resources.  In these situations, synchronization may only be
 
-    achieved via lower layer result indications.
 
-    Success indications may be explicit or implicit.  For example, where
 
-    a method supports error messages, an implicit success indication may
 
-    be defined as the reception of a specific message without a preceding
 
-    error message.  Failures are typically indicated explicitly.  As
 
-    described in Section 4.2, a peer silently discards a Failure packet
 
-    received at a point where the method does not explicitly permit this
 
- Aboba, et al.               Standards Track                    [Page 57]
 
- RFC 3748                          EAP                          June 2004
 
-    to be sent.  For example, a method providing its own error messages
 
-    might require the peer to receive an error message prior to accepting
 
-    a Failure packet.
 
-    Per-packet authentication, integrity, and replay protection of result
 
-    indications protects against spoofing.  Since protected result
 
-    indications require use of a key for per-packet authentication and
 
-    integrity protection, methods supporting protected result indications
 
-    MUST also support the "key derivation", "mutual authentication",
 
-    "integrity protection", and "replay protection" claims.
 
-    Protected result indications address some denial-of-service
 
-    vulnerabilities due to spoofing of Success and Failure packets,
 
-    though not all.  EAP methods can typically provide protected result
 
-    indications only in some circumstances.  For example, errors can
 
-    occur prior to key derivation, and so it may not be possible to
 
-    protect all failure indications.  It is also possible that result
 
-    indications may not be supported in both directions or that
 
-    synchronization may not be achieved in all modes of operation.
 
-    For example, within EAP-TLS [RFC2716], in the client authentication
 
-    handshake, the server authenticates the peer, but does not receive a
 
-    protected indication of whether the peer has authenticated it.  In
 
-    contrast, the peer authenticates the server and is aware of whether
 
-    the server has authenticated it.  In the session resumption
 
-    handshake, the peer authenticates the server, but does not receive a
 
-    protected indication of whether the server has authenticated it.  In
 
-    this mode, the server authenticates the peer and is aware of whether
 
-    the peer has authenticated it.
 
- 8.  Acknowledgements
 
-    This protocol derives much of its inspiration from Dave Carrel's AHA
 
-    document, as well as the PPP CHAP protocol [RFC1994].  Valuable
 
-    feedback was provided by Yoshihiro Ohba of Toshiba America Research,
 
-    Jari Arkko of Ericsson, Sachin Seth of Microsoft, Glen Zorn of Cisco
 
-    Systems, Jesse Walker of Intel, Bill Arbaugh, Nick Petroni and Bryan
 
-    Payne of the University of Maryland, Steve Bellovin of AT&T Research,
 
-    Paul Funk of Funk Software, Pasi Eronen of Nokia, Joseph Salowey of
 
-    Cisco, Paul Congdon of HP, and members of the EAP working group.
 
-    The use of Security Claims sections for EAP methods, as required by
 
-    Section 7.2 and specified for each EAP method described in this
 
-    document, was inspired by Glen Zorn through [EAP-EVAL].
 
- Aboba, et al.               Standards Track                    [Page 58]
 
- RFC 3748                          EAP                          June 2004
 
- 9.  References
 
- 9.1.  Normative References
 
-    [RFC1661]          Simpson, W., "The Point-to-Point Protocol (PPP)",
 
-                       STD 51, RFC 1661, July 1994.
 
-    [RFC1994]          Simpson, W., "PPP Challenge Handshake
 
-                       Authentication Protocol (CHAP)", RFC 1994, August
 
-                       1996.
 
-    [RFC2119]          Bradner, S., "Key words for use in RFCs to
 
-                       Indicate Requirement Levels", BCP 14, RFC 2119,
 
-                       March 1997.
 
-    [RFC2243]          Metz, C., "OTP Extended Responses", RFC 2243,
 
-                       November 1997.
 
-    [RFC2279]          Yergeau, F., "UTF-8, a transformation format of
 
-                       ISO 10646", RFC 2279, January 1998.
 
-    [RFC2289]          Haller, N., Metz, C., Nesser, P. and M. Straw, "A
 
-                       One-Time Password System", RFC 2289, February
 
-                       1998.
 
-    [RFC2434]          Narten, T. and H. Alvestrand, "Guidelines for
 
-                       Writing an IANA Considerations Section in RFCs",
 
-                       BCP 26, RFC 2434, October 1998.
 
-    [RFC2988]          Paxson, V. and M. Allman, "Computing TCP's
 
-                       Retransmission Timer", RFC 2988, November 2000.
 
-    [IEEE-802]         Institute of Electrical and Electronics Engineers,
 
-                       "Local and Metropolitan Area Networks: Overview
 
-                       and Architecture", IEEE Standard 802, 1990.
 
-    [IEEE-802.1X]      Institute of Electrical and Electronics Engineers,
 
-                       "Local and Metropolitan Area Networks: Port-Based
 
-                       Network Access Control", IEEE Standard 802.1X,
 
-                       September 2001.
 
- Aboba, et al.               Standards Track                    [Page 59]
 
- RFC 3748                          EAP                          June 2004
 
- 9.2.  Informative References
 
-    [RFC793]           Postel, J., "Transmission Control Protocol", STD
 
-                       7, RFC 793, September 1981.
 
-    [RFC1510]          Kohl, J. and B. Neuman, "The Kerberos Network
 
-                       Authentication Service (V5)", RFC 1510, September
 
-                       1993.
 
-    [RFC1750]          Eastlake, D., Crocker, S. and J. Schiller,
 
-                       "Randomness Recommendations for Security", RFC
 
-                       1750, December 1994.
 
-    [RFC2246]          Dierks, T., Allen, C., Treese, W., Karlton, P.,
 
-                       Freier, A. and P. Kocher, "The TLS Protocol
 
-                       Version 1.0", RFC 2246, January 1999.
 
-    [RFC2284]          Blunk, L. and J. Vollbrecht, "PPP Extensible
 
-                       Authentication Protocol (EAP)", RFC 2284, March
 
-                       1998.
 
-    [RFC2486]          Aboba, B. and M. Beadles, "The Network Access
 
-                       Identifier", RFC 2486, January 1999.
 
-    [RFC2408]          Maughan, D., Schneider, M. and M. Schertler,
 
-                       "Internet Security Association and Key Management
 
-                       Protocol (ISAKMP)", RFC 2408, November 1998.
 
-    [RFC2409]          Harkins, D. and D. Carrel, "The Internet Key
 
-                       Exchange (IKE)", RFC 2409, November 1998.
 
-    [RFC2433]          Zorn, G. and S. Cobb, "Microsoft PPP CHAP
 
-                       Extensions", RFC 2433, October 1998.
 
-    [RFC2607]          Aboba, B. and J. Vollbrecht, "Proxy Chaining and
 
-                       Policy Implementation in Roaming", RFC 2607, June
 
-                       1999.
 
-    [RFC2661]          Townsley, W., Valencia, A., Rubens, A., Pall, G.,
 
-                       Zorn, G. and B. Palter, "Layer Two Tunneling
 
-                       Protocol "L2TP"", RFC 2661, August 1999.
 
-    [RFC2716]          Aboba, B. and D. Simon, "PPP EAP TLS
 
-                       Authentication Protocol", RFC 2716, October 1999.
 
-    [RFC2865]          Rigney, C., Willens, S., Rubens, A. and W.
 
-                       Simpson, "Remote Authentication Dial In User
 
-                       Service (RADIUS)", RFC 2865, June 2000.
 
- Aboba, et al.               Standards Track                    [Page 60]
 
- RFC 3748                          EAP                          June 2004
 
-    [RFC2960]          Stewart, R., Xie, Q., Morneault, K., Sharp, C.,
 
-                       Schwarzbauer, H., Taylor, T., Rytina, I., Kalla,
 
-                       M., Zhang, L. and V. Paxson, "Stream Control
 
-                       Transmission Protocol", RFC 2960, October 2000.
 
-    [RFC3162]          Aboba, B., Zorn, G. and D. Mitton, "RADIUS and
 
-                       IPv6", RFC 3162, August 2001.
 
-    [RFC3454]          Hoffman, P. and M. Blanchet, "Preparation of
 
-                       Internationalized Strings ("stringprep")", RFC
 
-                       3454, December 2002.
 
-    [RFC3579]          Aboba, B. and P. Calhoun, "RADIUS (Remote
 
-                       Authentication Dial In User Service) Support For
 
-                       Extensible Authentication Protocol (EAP)", RFC
 
-                       3579, September 2003.
 
-    [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.
 
-    [RFC3692]          Narten, T., "Assigning Experimental and Testing
 
-                       Numbers Considered Useful", BCP 82, RFC 3692,
 
-                       January 2004.
 
-    [DECEPTION]        Slatalla, M. and J. Quittner, "Masters of
 
-                       Deception", Harper-Collins, New York, 1995.
 
-    [KRBATTACK]        Wu, T., "A Real-World Analysis of Kerberos
 
-                       Password Security", Proceedings of the 1999 ISOC
 
-                       Network and Distributed System Security Symposium,
 
-                       http://www.isoc.org/isoc/conferences/ndss/99/
 
-                       proceedings/papers/wu.pdf.
 
-    [KRBLIM]           Bellovin, S. and M. Merrit, "Limitations of the
 
-                       Kerberos authentication system", Proceedings of
 
-                       the 1991 Winter USENIX Conference, pp. 253-267,
 
-                       1991.
 
-    [KERB4WEAK]        Dole, B., Lodin, S. and E. Spafford, "Misplaced
 
-                       trust:  Kerberos 4 session keys", Proceedings of
 
-                       the Internet Society Network and Distributed
 
-                       System Security Symposium, pp. 60-70, March 1997.
 
- Aboba, et al.               Standards Track                    [Page 61]
 
- RFC 3748                          EAP                          June 2004
 
-    [PIC]              Aboba, B., Krawczyk, H. and Y. Sheffer, "PIC, A
 
-                       Pre-IKE Credential Provisioning Protocol", Work in
 
-                       Progress, October 2002.
 
-    [IKEv2]            Kaufman, C., "Internet Key Exchange (IKEv2)
 
-                       Protocol", Work in Progress, January 2004.
 
-    [PPTPv1]           Schneier, B. and Mudge, "Cryptanalysis of
 
-                       Microsoft's Point-to- Point Tunneling Protocol",
 
-                       Proceedings of the 5th ACM Conference on
 
-                       Communications and Computer Security, ACM Press,
 
-                       November 1998.
 
-    [IEEE-802.11]      Institute of Electrical and Electronics Engineers,
 
-                       "Wireless LAN Medium Access Control (MAC) and
 
-                       Physical Layer (PHY) Specifications", IEEE
 
-                       Standard 802.11, 1999.
 
-    [SILVERMAN]        Silverman, Robert D., "A Cost-Based Security
 
-                       Analysis of Symmetric and Asymmetric Key Lengths",
 
-                       RSA Laboratories Bulletin 13, April 2000 (Revised
 
-                       November 2001),
 
-                       http://www.rsasecurity.com/rsalabs/bulletins/
 
-                       bulletin13.html.
 
-    [KEYFRAME]         Aboba, B., "EAP Key Management Framework", Work in
 
-                       Progress, October 2003.
 
-    [SASLPREP]         Zeilenga, K., "SASLprep: Stringprep profile for
 
-                       user names and passwords", Work in Progress, March
 
-                       2004.
 
-    [IEEE-802.11i]     Institute of Electrical and Electronics Engineers,
 
-                       "Unapproved Draft Supplement to Standard for
 
-                       Telecommunications and Information Exchange
 
-                       Between Systems - LAN/MAN Specific Requirements -
 
-                       Part 11: Wireless LAN Medium Access Control (MAC)
 
-                       and Physical Layer (PHY) Specifications:
 
-                       Specification for Enhanced Security", IEEE Draft
 
-                       802.11i (work in progress), 2003.
 
-    [DIAM-EAP]         Eronen, P., Hiller, T. and G. Zorn, "Diameter
 
-                       Extensible Authentication Protocol (EAP)
 
-                       Application", Work in Progress, February 2004.
 
-    [EAP-EVAL]         Zorn, G., "Specifying Security Claims for EAP
 
-                       Authentication Types", Work in Progress, October
 
-                       2002.
 
- Aboba, et al.               Standards Track                    [Page 62]
 
- RFC 3748                          EAP                          June 2004
 
-    [BINDING]          Puthenkulam, J., "The Compound Authentication
 
-                       Binding Problem", Work in Progress, October 2003.
 
-    [MITM]             Asokan, N., Niemi, V. and K. Nyberg, "Man-in-the-
 
-                       Middle in Tunneled Authentication Protocols", IACR
 
-                       ePrint Archive Report 2002/163, October 2002,
 
-                       <http://eprint.iacr.org/2002/163>.
 
-    [IEEE-802.11i-req] Stanley, D., "EAP Method Requirements for Wireless
 
-                       LANs", Work in Progress, February 2004.
 
-    [PPTPv2]           Schneier, B. and Mudge, "Cryptanalysis of
 
-                       Microsoft's PPTP Authentication Extensions (MS-
 
-                       CHAPv2)", CQRE 99, Springer-Verlag, 1999, pp.
 
-                       192-203.
 
- Aboba, et al.               Standards Track                    [Page 63]
 
- RFC 3748                          EAP                          June 2004
 
- Appendix A. Changes from RFC 2284
 
-    This section lists the major changes between [RFC2284] and this
 
-    document.  Minor changes, including style, grammar, spelling, and
 
-    editorial changes are not mentioned here.
 
-    o  The Terminology section (Section 1.2) has been expanded, defining
 
-       more concepts and giving more exact definitions.
 
-    o  The concepts of Mutual Authentication, Key Derivation, and Result
 
-       Indications are introduced and discussed throughout the document
 
-       where appropriate.
 
-    o In Section 2, it is explicitly specified that more than one
 
-       exchange of Request and Response packets may occur as part of the
 
-       EAP authentication exchange.  How this may be used and how it may
 
-       not be used is specified in detail in Section 2.1.
 
-    o  Also in Section 2, some requirements have been made explicit for
 
-       the authenticator when acting in pass-through mode.
 
-    o  An EAP multiplexing model (Section 2.2) has been added to
 
-       illustrate a typical implementation of EAP.  There is no
 
-       requirement that an implementation conform to this model, as long
 
-       as the on-the-wire behavior is consistent with it.
 
-    o  As EAP is now in use with a variety of lower layers, not just PPP
 
-       for which it was first designed, Section 3 on lower layer behavior
 
-       has been added.
 
-    o  In the description of the EAP Request and Response interaction
 
-       (Section 4.1), both the behavior on receiving duplicate requests,
 
-       and when packets should be silently discarded has been more
 
-       exactly specified.  The implementation notes in this section have
 
-       been substantially expanded.
 
-    o  In Section 4.2, it has been clarified that Success and Failure
 
-       packets must not contain additional data, and the implementation
 
-       note has been expanded.  A subsection giving requirements on
 
-       processing of success and failure packets has been added.
 
-    o  Section 5 on EAP Request/Response Types lists two new Type values:
 
-       the Expanded Type (Section 5.7), which is used to expand the Type
 
-       value number space, and the Experimental Type.  In the Expanded
 
-       Type number space, the new Expanded Nak (Section 5.3.2) Type has
 
-       been added.  Clarifications have been made in the description of
 
-       most of the existing Types.  Security claims summaries have been
 
-       added for authentication methods.
 
- Aboba, et al.               Standards Track                    [Page 64]
 
- RFC 3748                          EAP                          June 2004
 
-    o  In Sections 5, 5.1, and 5.2, a requirement has been added such
 
-       that fields with displayable messages should contain UTF-8 encoded
 
-       ISO 10646 characters.
 
-    o  It is now required in Section 5.1 that if the Type-Data field of
 
-       an Identity Request contains a NUL-character, only the part before
 
-       the null is displayed.  RFC 2284 prohibits the null termination of
 
-       the Type-Data field of Identity messages.  This rule has been
 
-       relaxed for Identity Request messages and the Identity Request
 
-       Type-Data field may now be null terminated.
 
-    o  In Section 5.5, support for OTP Extended Responses [RFC2243] has
 
-       been added to EAP OTP.
 
-    o  An IANA Considerations section (Section 6) has been added, giving
 
-       registration policies for the numbering spaces defined for EAP.
 
-    o  The Security Considerations (Section 7) have been greatly
 
-       expanded, giving a much more comprehensive coverage of possible
 
-       threats and other security considerations.
 
-    o  In Section 7.5, text has been added on method-specific behavior,
 
-       providing guidance on how EAP method-specific integrity checks
 
-       should be processed.  Where possible, it is desirable for a
 
-       method-specific MIC to be computed over the entire EAP packet,
 
-       including the EAP layer header (Code, Identifier, Length) and EAP
 
-       method layer header (Type, Type-Data).
 
-    o  In Section 7.14 the security risks involved in use of cleartext
 
-       passwords with EAP are described.
 
-    o  In Section 7.15 text has been added relating to detection of rogue
 
-       NAS behavior.
 
- Aboba, et al.               Standards Track                    [Page 65]
 
- RFC 3748                          EAP                          June 2004
 
- Authors' Addresses
 
-    Bernard Aboba
 
-    Microsoft Corporation
 
-    One Microsoft Way
 
-    Redmond, WA  98052
 
-    USA
 
-    Phone: +1 425 706 6605
 
-    Fax:   +1 425 936 6605
 
-    EMail: bernarda@microsoft.com
 
-    Larry J. Blunk
 
-    Merit Network, Inc
 
-    4251 Plymouth Rd., Suite 2000
 
-    Ann Arbor, MI  48105-2785
 
-    USA
 
-    Phone: +1 734-647-9563
 
-    Fax:   +1 734-647-3185
 
-    EMail: ljb@merit.edu
 
-    John R. Vollbrecht
 
-    Vollbrecht Consulting LLC
 
-    9682 Alice Hill Drive
 
-    Dexter, MI  48130
 
-    USA
 
-    EMail: jrv@umich.edu
 
-    James Carlson
 
-    Sun Microsystems, Inc
 
-    1 Network Drive
 
-    Burlington, MA  01803-2757
 
-    USA
 
-    Phone: +1 781 442 2084
 
-    Fax:   +1 781 442 1677
 
-    EMail: james.d.carlson@sun.com
 
-    Henrik Levkowetz
 
-    ipUnplugged AB
 
-    Arenavagen 33
 
-    Stockholm  S-121 28
 
-    SWEDEN
 
-    Phone: +46 708 32 16 08
 
-    EMail: henrik@levkowetz.com
 
- Aboba, et al.               Standards Track                    [Page 66]
 
- RFC 3748                          EAP                          June 2004
 
- Full Copyright Statement
 
-    Copyright (C) The Internet Society (2004).  This document is subject
 
-    to the rights, licenses and restrictions contained in BCP 78, and
 
-    except as set forth therein, the authors retain all their rights.
 
-    This document and the information contained herein are provided on an
 
-    "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
 
-    OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET
 
-    ENGINEERING TASK FORCE DISCLAIM 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.
 
- Intellectual Property
 
-    The IETF takes no position regarding the validity or scope of any
 
-    Intellectual Property Rights 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; nor does it represent that it has
 
-    made any independent effort to identify any such rights.  Information
 
-    on the procedures with respect to rights in RFC documents can be
 
-    found in BCP 78 and BCP 79.
 
-    Copies of IPR disclosures made to the IETF Secretariat 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 implementers or users of this
 
-    specification can be obtained from the IETF on-line IPR repository at
 
-    http://www.ietf.org/ipr.
 
-    The IETF invites any interested party to bring to its attention any
 
-    copyrights, patents or patent applications, or other proprietary
 
-    rights that may cover technology that may be required to implement
 
-    this standard.  Please address the information to the IETF at ietf-
 
-    ipr@ietf.org.
 
- Acknowledgement
 
-    Funding for the RFC Editor function is currently provided by the
 
-    Internet Society.
 
- Aboba, et al.               Standards Track                    [Page 67]
 
 
  |