rfc2865.txt 143 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259
  1. Network Working Group C. Rigney
  2. Request for Comments: 2865 S. Willens
  3. Obsoletes: 2138 Livingston
  4. Category: Standards Track A. Rubens
  5. Merit
  6. W. Simpson
  7. Daydreamer
  8. June 2000
  9. Remote Authentication Dial In User Service (RADIUS)
  10. Status of this Memo
  11. This document specifies an Internet standards track protocol for the
  12. Internet community, and requests discussion and suggestions for
  13. improvements. Please refer to the current edition of the "Internet
  14. Official Protocol Standards" (STD 1) for the standardization state
  15. and status of this protocol. Distribution of this memo is unlimited.
  16. Copyright Notice
  17. Copyright (C) The Internet Society (2000). All Rights Reserved.
  18. IESG Note:
  19. This protocol is widely implemented and used. Experience has shown
  20. that it can suffer degraded performance and lost data when used in
  21. large scale systems, in part because it does not include provisions
  22. for congestion control. Readers of this document may find it
  23. beneficial to track the progress of the IETF's AAA working group,
  24. which may develop a successor protocol that better addresses the
  25. scaling and congestion control issues.
  26. Abstract
  27. This document describes a protocol for carrying authentication,
  28. authorization, and configuration information between a Network Access
  29. Server which desires to authenticate its links and a shared
  30. Authentication Server.
  31. Implementation Note
  32. This memo documents the RADIUS protocol. The early deployment of
  33. RADIUS was done using UDP port number 1645, which conflicts with the
  34. "datametrics" service. The officially assigned port number for
  35. RADIUS is 1812.
  36. Rigney, et al. Standards Track [Page 1]
  37. RFC 2865 RADIUS June 2000
  38. Table of Contents
  39. 1. Introduction .......................................... 3
  40. 1.1 Specification of Requirements ................... 4
  41. 1.2 Terminology ..................................... 5
  42. 2. Operation ............................................. 5
  43. 2.1 Challenge/Response .............................. 7
  44. 2.2 Interoperation with PAP and CHAP ................ 8
  45. 2.3 Proxy ........................................... 8
  46. 2.4 Why UDP? ........................................ 11
  47. 2.5 Retransmission Hints ............................ 12
  48. 2.6 Keep-Alives Considered Harmful .................. 13
  49. 3. Packet Format ......................................... 13
  50. 4. Packet Types .......................................... 17
  51. 4.1 Access-Request .................................. 17
  52. 4.2 Access-Accept ................................... 18
  53. 4.3 Access-Reject ................................... 20
  54. 4.4 Access-Challenge ................................ 21
  55. 5. Attributes ............................................ 22
  56. 5.1 User-Name ....................................... 26
  57. 5.2 User-Password ................................... 27
  58. 5.3 CHAP-Password ................................... 28
  59. 5.4 NAS-IP-Address .................................. 29
  60. 5.5 NAS-Port ........................................ 30
  61. 5.6 Service-Type .................................... 31
  62. 5.7 Framed-Protocol ................................. 33
  63. 5.8 Framed-IP-Address ............................... 34
  64. 5.9 Framed-IP-Netmask ............................... 34
  65. 5.10 Framed-Routing .................................. 35
  66. 5.11 Filter-Id ....................................... 36
  67. 5.12 Framed-MTU ...................................... 37
  68. 5.13 Framed-Compression .............................. 37
  69. 5.14 Login-IP-Host ................................... 38
  70. 5.15 Login-Service ................................... 39
  71. 5.16 Login-TCP-Port .................................. 40
  72. 5.17 (unassigned) .................................... 41
  73. 5.18 Reply-Message ................................... 41
  74. 5.19 Callback-Number ................................. 42
  75. 5.20 Callback-Id ..................................... 42
  76. 5.21 (unassigned) .................................... 43
  77. 5.22 Framed-Route .................................... 43
  78. 5.23 Framed-IPX-Network .............................. 44
  79. 5.24 State ........................................... 45
  80. 5.25 Class ........................................... 46
  81. 5.26 Vendor-Specific ................................. 47
  82. 5.27 Session-Timeout ................................. 48
  83. 5.28 Idle-Timeout .................................... 49
  84. 5.29 Termination-Action .............................. 49
  85. Rigney, et al. Standards Track [Page 2]
  86. RFC 2865 RADIUS June 2000
  87. 5.30 Called-Station-Id ............................... 50
  88. 5.31 Calling-Station-Id .............................. 51
  89. 5.32 NAS-Identifier .................................. 52
  90. 5.33 Proxy-State ..................................... 53
  91. 5.34 Login-LAT-Service ............................... 54
  92. 5.35 Login-LAT-Node .................................. 55
  93. 5.36 Login-LAT-Group ................................. 56
  94. 5.37 Framed-AppleTalk-Link ........................... 57
  95. 5.38 Framed-AppleTalk-Network ........................ 58
  96. 5.39 Framed-AppleTalk-Zone ........................... 58
  97. 5.40 CHAP-Challenge .................................. 59
  98. 5.41 NAS-Port-Type ................................... 60
  99. 5.42 Port-Limit ...................................... 61
  100. 5.43 Login-LAT-Port .................................. 62
  101. 5.44 Table of Attributes ............................. 63
  102. 6. IANA Considerations ................................... 64
  103. 6.1 Definition of Terms ............................. 64
  104. 6.2 Recommended Registration Policies ............... 65
  105. 7. Examples .............................................. 66
  106. 7.1 User Telnet to Specified Host ................... 66
  107. 7.2 Framed User Authenticating with CHAP ............ 67
  108. 7.3 User with Challenge-Response card ............... 68
  109. 8. Security Considerations ............................... 71
  110. 9. Change Log ............................................ 71
  111. 10. References ............................................ 73
  112. 11. Acknowledgements ...................................... 74
  113. 12. Chair's Address ....................................... 74
  114. 13. Authors' Addresses .................................... 75
  115. 14. Full Copyright Statement .............................. 76
  116. 1. Introduction
  117. This document obsoletes RFC 2138 [1]. A summary of the changes
  118. between this document and RFC 2138 is available in the "Change Log"
  119. appendix.
  120. Managing dispersed serial line and modem pools for large numbers of
  121. users can create the need for significant administrative support.
  122. Since modem pools are by definition a link to the outside world, they
  123. require careful attention to security, authorization and accounting.
  124. This can be best achieved by managing a single "database" of users,
  125. which allows for authentication (verifying user name and password) as
  126. well as configuration information detailing the type of service to
  127. deliver to the user (for example, SLIP, PPP, telnet, rlogin).
  128. Rigney, et al. Standards Track [Page 3]
  129. RFC 2865 RADIUS June 2000
  130. Key features of RADIUS are:
  131. Client/Server Model
  132. A Network Access Server (NAS) operates as a client of RADIUS. The
  133. client is responsible for passing user information to designated
  134. RADIUS servers, and then acting on the response which is returned.
  135. RADIUS servers are responsible for receiving user connection
  136. requests, authenticating the user, and then returning all
  137. configuration information necessary for the client to deliver
  138. service to the user.
  139. A RADIUS server can act as a proxy client to other RADIUS servers
  140. or other kinds of authentication servers.
  141. Network Security
  142. Transactions between the client and RADIUS server are
  143. authenticated through the use of a shared secret, which is never
  144. sent over the network. In addition, any user passwords are sent
  145. encrypted between the client and RADIUS server, to eliminate the
  146. possibility that someone snooping on an unsecure network could
  147. determine a user's password.
  148. Flexible Authentication Mechanisms
  149. The RADIUS server can support a variety of methods to authenticate
  150. a user. When it is provided with the user name and original
  151. password given by the user, it can support PPP PAP or CHAP, UNIX
  152. login, and other authentication mechanisms.
  153. Extensible Protocol
  154. All transactions are comprised of variable length Attribute-
  155. Length-Value 3-tuples. New attribute values can be added without
  156. disturbing existing implementations of the protocol.
  157. 1.1. Specification of Requirements
  158. The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
  159. "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
  160. document are to be interpreted as described in BCP 14 [2]. These key
  161. words mean the same thing whether capitalized or not.
  162. An implementation is not compliant if it fails to satisfy one or more
  163. of the must or must not requirements for the protocols it implements.
  164. An implementation that satisfies all the must, must not, should and
  165. Rigney, et al. Standards Track [Page 4]
  166. RFC 2865 RADIUS June 2000
  167. should not requirements for its protocols is said to be
  168. "unconditionally compliant"; one that satisfies all the must and must
  169. not requirements but not all the should or should not requirements
  170. for its protocols is said to be "conditionally compliant".
  171. A NAS that does not implement a given service MUST NOT implement the
  172. RADIUS attributes for that service. For example, a NAS that is
  173. unable to offer ARAP service MUST NOT implement the RADIUS attributes
  174. for ARAP. A NAS MUST treat a RADIUS access-accept authorizing an
  175. unavailable service as an access-reject instead.
  176. 1.2. Terminology
  177. This document frequently uses the following terms:
  178. service The NAS provides a service to the dial-in user, such as PPP
  179. or Telnet.
  180. session Each service provided by the NAS to a dial-in user
  181. constitutes a session, with the beginning of the session
  182. defined as the point where service is first provided and
  183. the end of the session defined as the point where service
  184. is ended. A user may have multiple sessions in parallel or
  185. series if the NAS supports that.
  186. silently discard
  187. This means the implementation discards the packet without
  188. further processing. The implementation SHOULD provide the
  189. capability of logging the error, including the contents of
  190. the silently discarded packet, and SHOULD record the event
  191. in a statistics counter.
  192. 2. Operation
  193. When a client is configured to use RADIUS, any user of the client
  194. presents authentication information to the client. This might be
  195. with a customizable login prompt, where the user is expected to enter
  196. their username and password. Alternatively, the user might use a
  197. link framing protocol such as the Point-to-Point Protocol (PPP),
  198. which has authentication packets which carry this information.
  199. Once the client has obtained such information, it may choose to
  200. authenticate using RADIUS. To do so, the client creates an "Access-
  201. Request" containing such Attributes as the user's name, the user's
  202. password, the ID of the client and the Port ID which the user is
  203. accessing. When a password is present, it is hidden using a method
  204. based on the RSA Message Digest Algorithm MD5 [3].
  205. Rigney, et al. Standards Track [Page 5]
  206. RFC 2865 RADIUS June 2000
  207. The Access-Request is submitted to the RADIUS server via the network.
  208. If no response is returned within a length of time, the request is
  209. re-sent a number of times. The client can also forward requests to
  210. an alternate server or servers in the event that the primary server
  211. is down or unreachable. An alternate server can be used either after
  212. a number of tries to the primary server fail, or in a round-robin
  213. fashion. Retry and fallback algorithms are the topic of current
  214. research and are not specified in detail in this document.
  215. Once the RADIUS server receives the request, it validates the sending
  216. client. A request from a client for which the RADIUS server does not
  217. have a shared secret MUST be silently discarded. If the client is
  218. valid, the RADIUS server consults a database of users to find the
  219. user whose name matches the request. The user entry in the database
  220. contains a list of requirements which must be met to allow access for
  221. the user. This always includes verification of the password, but can
  222. also specify the client(s) or port(s) to which the user is allowed
  223. access.
  224. The RADIUS server MAY make requests of other servers in order to
  225. satisfy the request, in which case it acts as a client.
  226. If any Proxy-State attributes were present in the Access-Request,
  227. they MUST be copied unmodified and in order into the response packet.
  228. Other Attributes can be placed before, after, or even between the
  229. Proxy-State attributes.
  230. If any condition is not met, the RADIUS server sends an "Access-
  231. Reject" response indicating that this user request is invalid. If
  232. desired, the server MAY include a text message in the Access-Reject
  233. which MAY be displayed by the client to the user. No other
  234. Attributes (except Proxy-State) are permitted in an Access-Reject.
  235. If all conditions are met and the RADIUS server wishes to issue a
  236. challenge to which the user must respond, the RADIUS server sends an
  237. "Access-Challenge" response. It MAY include a text message to be
  238. displayed by the client to the user prompting for a response to the
  239. challenge, and MAY include a State attribute.
  240. If the client receives an Access-Challenge and supports
  241. challenge/response it MAY display the text message, if any, to the
  242. user, and then prompt the user for a response. The client then re-
  243. submits its original Access-Request with a new request ID, with the
  244. User-Password Attribute replaced by the response (encrypted), and
  245. including the State Attribute from the Access-Challenge, if any.
  246. Only 0 or 1 instances of the State Attribute SHOULD be
  247. Rigney, et al. Standards Track [Page 6]
  248. RFC 2865 RADIUS June 2000
  249. present in a request. The server can respond to this new Access-
  250. Request with either an Access-Accept, an Access-Reject, or another
  251. Access-Challenge.
  252. If all conditions are met, the list of configuration values for the
  253. user are placed into an "Access-Accept" response. These values
  254. include the type of service (for example: SLIP, PPP, Login User) and
  255. all necessary values to deliver the desired service. For SLIP and
  256. PPP, this may include values such as IP address, subnet mask, MTU,
  257. desired compression, and desired packet filter identifiers. For
  258. character mode users, this may include values such as desired
  259. protocol and host.
  260. 2.1. Challenge/Response
  261. In challenge/response authentication, the user is given an
  262. unpredictable number and challenged to encrypt it and give back the
  263. result. Authorized users are equipped with special devices such as
  264. smart cards or software that facilitate calculation of the correct
  265. response with ease. Unauthorized users, lacking the appropriate
  266. device or software and lacking knowledge of the secret key necessary
  267. to emulate such a device or software, can only guess at the response.
  268. The Access-Challenge packet typically contains a Reply-Message
  269. including a challenge to be displayed to the user, such as a numeric
  270. value unlikely ever to be repeated. Typically this is obtained from
  271. an external server that knows what type of authenticator is in the
  272. possession of the authorized user and can therefore choose a random
  273. or non-repeating pseudorandom number of an appropriate radix and
  274. length.
  275. The user then enters the challenge into his device (or software) and
  276. it calculates a response, which the user enters into the client which
  277. forwards it to the RADIUS server via a second Access-Request. If the
  278. response matches the expected response the RADIUS server replies with
  279. an Access-Accept, otherwise an Access-Reject.
  280. Example: The NAS sends an Access-Request packet to the RADIUS Server
  281. with NAS-Identifier, NAS-Port, User-Name, User-Password (which may
  282. just be a fixed string like "challenge" or ignored). The server
  283. sends back an Access-Challenge packet with State and a Reply-Message
  284. along the lines of "Challenge 12345678, enter your response at the
  285. prompt" which the NAS displays. The NAS prompts for the response and
  286. sends a NEW Access-Request to the server (with a new ID) with NAS-
  287. Identifier, NAS-Port, User-Name, User-Password (the response just
  288. entered by the user, encrypted), and the same State Attribute that
  289. Rigney, et al. Standards Track [Page 7]
  290. RFC 2865 RADIUS June 2000
  291. came with the Access-Challenge. The server then sends back either an
  292. Access-Accept or Access-Reject based on whether the response matches
  293. the required value, or it can even send another Access-Challenge.
  294. 2.2. Interoperation with PAP and CHAP
  295. For PAP, the NAS takes the PAP ID and password and sends them in an
  296. Access-Request packet as the User-Name and User-Password. The NAS MAY
  297. include the Attributes Service-Type = Framed-User and Framed-Protocol
  298. = PPP as a hint to the RADIUS server that PPP service is expected.
  299. For CHAP, the NAS generates a random challenge (preferably 16 octets)
  300. and sends it to the user, who returns a CHAP response along with a
  301. CHAP ID and CHAP username. The NAS then sends an Access-Request
  302. packet to the RADIUS server with the CHAP username as the User-Name
  303. and with the CHAP ID and CHAP response as the CHAP-Password
  304. (Attribute 3). The random challenge can either be included in the
  305. CHAP-Challenge attribute or, if it is 16 octets long, it can be
  306. placed in the Request Authenticator field of the Access-Request
  307. packet. The NAS MAY include the Attributes Service-Type = Framed-
  308. User and Framed-Protocol = PPP as a hint to the RADIUS server that
  309. PPP service is expected.
  310. The RADIUS server looks up a password based on the User-Name,
  311. encrypts the challenge using MD5 on the CHAP ID octet, that password,
  312. and the CHAP challenge (from the CHAP-Challenge attribute if present,
  313. otherwise from the Request Authenticator), and compares that result
  314. to the CHAP-Password. If they match, the server sends back an
  315. Access-Accept, otherwise it sends back an Access-Reject.
  316. If the RADIUS server is unable to perform the requested
  317. authentication it MUST return an Access-Reject. For example, CHAP
  318. requires that the user's password be available in cleartext to the
  319. server so that it can encrypt the CHAP challenge and compare that to
  320. the CHAP response. If the password is not available in cleartext to
  321. the RADIUS server then the server MUST send an Access-Reject to the
  322. client.
  323. 2.3. Proxy
  324. With proxy RADIUS, one RADIUS server receives an authentication (or
  325. accounting) request from a RADIUS client (such as a NAS), forwards
  326. the request to a remote RADIUS server, receives the reply from the
  327. remote server, and sends that reply to the client, possibly with
  328. changes to reflect local administrative policy. A common use for
  329. proxy RADIUS is roaming. Roaming permits two or more administrative
  330. entities to allow each other's users to dial in to either entity's
  331. network for service.
  332. Rigney, et al. Standards Track [Page 8]
  333. RFC 2865 RADIUS June 2000
  334. The NAS sends its RADIUS access-request to the "forwarding server"
  335. which forwards it to the "remote server". The remote server sends a
  336. response (Access-Accept, Access-Reject, or Access-Challenge) back to
  337. the forwarding server, which sends it back to the NAS. The User-Name
  338. attribute MAY contain a Network Access Identifier [8] for RADIUS
  339. Proxy operations. The choice of which server receives the forwarded
  340. request SHOULD be based on the authentication "realm". The
  341. authentication realm MAY be the realm part of a Network Access
  342. Identifier (a "named realm"). Alternatively, the choice of which
  343. server receives the forwarded request MAY be based on whatever other
  344. criteria the forwarding server is configured to use, such as Called-
  345. Station-Id (a "numbered realm").
  346. A RADIUS server can function as both a forwarding server and a remote
  347. server, serving as a forwarding server for some realms and a remote
  348. server for other realms. One forwarding server can act as a
  349. forwarder for any number of remote servers. A remote server can have
  350. any number of servers forwarding to it and can provide authentication
  351. for any number of realms. One forwarding server can forward to
  352. another forwarding server to create a chain of proxies, although care
  353. must be taken to avoid introducing loops.
  354. The following scenario illustrates a proxy RADIUS communication
  355. between a NAS and the forwarding and remote RADIUS servers:
  356. 1. A NAS sends its access-request to the forwarding server.
  357. 2. The forwarding server forwards the access-request to the remote
  358. server.
  359. 3. The remote server sends an access-accept, access-reject or
  360. access-challenge back to the forwarding server. For this example,
  361. an access-accept is sent.
  362. 4. The forwarding server sends the access-accept to the NAS.
  363. The forwarding server MUST treat any Proxy-State attributes already
  364. in the packet as opaque data. Its operation MUST NOT depend on the
  365. content of Proxy-State attributes added by previous servers.
  366. If there are any Proxy-State attributes in the request received from
  367. the client, the forwarding server MUST include those Proxy-State
  368. attributes in its reply to the client. The forwarding server MAY
  369. include the Proxy-State attributes in the access-request when it
  370. forwards the request, or MAY omit them in the forwarded request. If
  371. the forwarding server omits the Proxy-State attributes in the
  372. forwarded access-request, it MUST attach them to the response before
  373. sending it to the client.
  374. Rigney, et al. Standards Track [Page 9]
  375. RFC 2865 RADIUS June 2000
  376. We now examine each step in more detail.
  377. 1. A NAS sends its access-request to the forwarding server. The
  378. forwarding server decrypts the User-Password, if present, using
  379. the shared secret it knows for the NAS. If a CHAP-Password
  380. attribute is present in the packet and no CHAP-Challenge attribute
  381. is present, the forwarding server MUST leave the Request-
  382. Authenticator untouched or copy it to a CHAP-Challenge attribute.
  383. '' The forwarding server MAY add one Proxy-State attribute to the
  384. packet. (It MUST NOT add more than one.) If it adds a Proxy-
  385. State, the Proxy-State MUST appear after any other Proxy-States in
  386. the packet. The forwarding server MUST NOT modify any other
  387. Proxy-States that were in the packet (it may choose not to forward
  388. them, but it MUST NOT change their contents). The forwarding
  389. server MUST NOT change the order of any attributes of the same
  390. type, including Proxy-State.
  391. 2. The forwarding server encrypts the User-Password, if present,
  392. using the secret it shares with the remote server, sets the
  393. Identifier as needed, and forwards the access-request to the
  394. remote server.
  395. 3. The remote server (if the final destination) verifies the user
  396. using User-Password, CHAP-Password, or such method as future
  397. extensions may dictate, and returns an access-accept, access-
  398. reject or access-challenge back to the forwarding server. For
  399. this example, an access-accept is sent. The remote server MUST
  400. copy all Proxy-State attributes (and only the Proxy-State
  401. attributes) in order from the access-request to the response
  402. packet, without modifying them.
  403. 4. The forwarding server verifies the Response Authenticator using
  404. the secret it shares with the remote server, and silently discards
  405. the packet if it fails verification. If the packet passes
  406. verification, the forwarding server removes the last Proxy-State
  407. (if it attached one), signs the Response Authenticator using the
  408. secret it shares with the NAS, restores the Identifier to match
  409. the one in the original request by the NAS, and sends the access-
  410. accept to the NAS.
  411. A forwarding server MAY need to modify attributes to enforce local
  412. policy. Such policy is outside the scope of this document, with the
  413. following restrictions. A forwarding server MUST not modify existing
  414. Proxy-State, State, or Class attributes present in the packet.
  415. Rigney, et al. Standards Track [Page 10]
  416. RFC 2865 RADIUS June 2000
  417. Implementers of forwarding servers should consider carefully which
  418. values it is willing to accept for Service-Type. Careful
  419. consideration must be given to the effects of passing along Service-
  420. Types of NAS-Prompt or Administrative in a proxied Access-Accept, and
  421. implementers may wish to provide mechanisms to block those or other
  422. service types, or other attributes. Such mechanisms are outside the
  423. scope of this document.
  424. 2.4. Why UDP?
  425. A frequently asked question is why RADIUS uses UDP instead of TCP as
  426. a transport protocol. UDP was chosen for strictly technical reasons.
  427. There are a number of issues which must be understood. RADIUS is a
  428. transaction based protocol which has several interesting
  429. characteristics:
  430. 1. If the request to a primary Authentication server fails, a
  431. secondary server must be queried.
  432. To meet this requirement, a copy of the request must be kept above
  433. the transport layer to allow for alternate transmission. This
  434. means that retransmission timers are still required.
  435. 2. The timing requirements of this particular protocol are
  436. significantly different than TCP provides.
  437. At one extreme, RADIUS does not require a "responsive" detection
  438. of lost data. The user is willing to wait several seconds for the
  439. authentication to complete. The generally aggressive TCP
  440. retransmission (based on average round trip time) is not required,
  441. nor is the acknowledgement overhead of TCP.
  442. At the other extreme, the user is not willing to wait several
  443. minutes for authentication. Therefore the reliable delivery of
  444. TCP data two minutes later is not useful. The faster use of an
  445. alternate server allows the user to gain access before giving up.
  446. 3. The stateless nature of this protocol simplifies the use of UDP.
  447. Clients and servers come and go. Systems are rebooted, or are
  448. power cycled independently. Generally this does not cause a
  449. problem and with creative timeouts and detection of lost TCP
  450. connections, code can be written to handle anomalous events. UDP
  451. however completely eliminates any of this special handling. Each
  452. client and server can open their UDP transport just once and leave
  453. it open through all types of failure events on the network.
  454. Rigney, et al. Standards Track [Page 11]
  455. RFC 2865 RADIUS June 2000
  456. 4. UDP simplifies the server implementation.
  457. In the earliest implementations of RADIUS, the server was single
  458. threaded. This means that a single request was received,
  459. processed, and returned. This was found to be unmanageable in
  460. environments where the back-end security mechanism took real time
  461. (1 or more seconds). The server request queue would fill and in
  462. environments where hundreds of people were being authenticated
  463. every minute, the request turn-around time increased to longer
  464. than users were willing to wait (this was especially severe when a
  465. specific lookup in a database or over DNS took 30 or more
  466. seconds). The obvious solution was to make the server multi-
  467. threaded. Achieving this was simple with UDP. Separate processes
  468. were spawned to serve each request and these processes could
  469. respond directly to the client NAS with a simple UDP packet to the
  470. original transport of the client.
  471. It's not all a panacea. As noted, using UDP requires one thing which
  472. is built into TCP: with UDP we must artificially manage
  473. retransmission timers to the same server, although they don't require
  474. the same attention to timing provided by TCP. This one penalty is a
  475. small price to pay for the advantages of UDP in this protocol.
  476. Without TCP we would still probably be using tin cans connected by
  477. string. But for this particular protocol, UDP is a better choice.
  478. 2.5. Retransmission Hints
  479. If the RADIUS server and alternate RADIUS server share the same
  480. shared secret, it is OK to retransmit the packet to the alternate
  481. RADIUS server with the same ID and Request Authenticator, because the
  482. content of the attributes haven't changed. If you want to use a new
  483. Request Authenticator when sending to the alternate server, you may.
  484. If you change the contents of the User-Password attribute (or any
  485. other attribute), you need a new Request Authenticator and therefore
  486. a new ID.
  487. If the NAS is retransmitting a RADIUS request to the same server as
  488. before, and the attributes haven't changed, you MUST use the same
  489. Request Authenticator, ID, and source port. If any attributes have
  490. changed, you MUST use a new Request Authenticator and ID.
  491. A NAS MAY use the same ID across all servers, or MAY keep track of
  492. IDs separately for each server, it is up to the implementer. If a
  493. NAS needs more than 256 IDs for outstanding requests, it MAY use
  494. Rigney, et al. Standards Track [Page 12]
  495. RFC 2865 RADIUS June 2000
  496. additional source ports to send requests from, and keep track of IDs
  497. for each source port. This allows up to 16 million or so outstanding
  498. requests at one time to a single server.
  499. 2.6. Keep-Alives Considered Harmful
  500. Some implementers have adopted the practice of sending test RADIUS
  501. requests to see if a server is alive. This practice is strongly
  502. discouraged, since it adds to load and harms scalability without
  503. providing any additional useful information. Since a RADIUS request
  504. is contained in a single datagram, in the time it would take you to
  505. send a ping you could just send the RADIUS request, and getting a
  506. reply tells you that the RADIUS server is up. If you do not have a
  507. RADIUS request to send, it does not matter if the server is up or
  508. not, because you are not using it.
  509. If you want to monitor your RADIUS server, use SNMP. That's what
  510. SNMP is for.
  511. 3. Packet Format
  512. Exactly one RADIUS packet is encapsulated in the UDP Data field [4],
  513. where the UDP Destination Port field indicates 1812 (decimal).
  514. When a reply is generated, the source and destination ports are
  515. reversed.
  516. This memo documents the RADIUS protocol. The early deployment of
  517. RADIUS was done using UDP port number 1645, which conflicts with the
  518. "datametrics" service. The officially assigned port number for
  519. RADIUS is 1812.
  520. Rigney, et al. Standards Track [Page 13]
  521. RFC 2865 RADIUS June 2000
  522. A summary of the RADIUS data format is shown below. The fields are
  523. transmitted from left to right.
  524. 0 1 2 3
  525. 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
  526. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  527. | Code | Identifier | Length |
  528. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  529. | |
  530. | Authenticator |
  531. | |
  532. | |
  533. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  534. | Attributes ...
  535. +-+-+-+-+-+-+-+-+-+-+-+-+-
  536. Code
  537. The Code field is one octet, and identifies the type of RADIUS
  538. packet. When a packet is received with an invalid Code field, it
  539. is silently discarded.
  540. RADIUS Codes (decimal) are assigned as follows:
  541. 1 Access-Request
  542. 2 Access-Accept
  543. 3 Access-Reject
  544. 4 Accounting-Request
  545. 5 Accounting-Response
  546. 11 Access-Challenge
  547. 12 Status-Server (experimental)
  548. 13 Status-Client (experimental)
  549. 255 Reserved
  550. Codes 4 and 5 are covered in the RADIUS Accounting document [5].
  551. Codes 12 and 13 are reserved for possible use, but are not further
  552. mentioned here.
  553. Identifier
  554. The Identifier field is one octet, and aids in matching requests
  555. and replies. The RADIUS server can detect a duplicate request if
  556. it has the same client source IP address and source UDP port and
  557. Identifier within a short span of time.
  558. Rigney, et al. Standards Track [Page 14]
  559. RFC 2865 RADIUS June 2000
  560. Length
  561. The Length field is two octets. It indicates the length of the
  562. packet including the Code, Identifier, Length, Authenticator and
  563. Attribute fields. Octets outside the range of the Length field
  564. MUST be treated as padding and ignored on reception. If the
  565. packet is shorter than the Length field indicates, it MUST be
  566. silently discarded. The minimum length is 20 and maximum length
  567. is 4096.
  568. Authenticator
  569. The Authenticator field is sixteen (16) octets. The most
  570. significant octet is transmitted first. This value is used to
  571. authenticate the reply from the RADIUS server, and is used in the
  572. password hiding algorithm.
  573. Request Authenticator
  574. In Access-Request Packets, the Authenticator value is a 16
  575. octet random number, called the Request Authenticator. The
  576. value SHOULD be unpredictable and unique over the lifetime of a
  577. secret (the password shared between the client and the RADIUS
  578. server), since repetition of a request value in conjunction
  579. with the same secret would permit an attacker to reply with a
  580. previously intercepted response. Since it is expected that the
  581. same secret MAY be used to authenticate with servers in
  582. disparate geographic regions, the Request Authenticator field
  583. SHOULD exhibit global and temporal uniqueness.
  584. The Request Authenticator value in an Access-Request packet
  585. SHOULD also be unpredictable, lest an attacker trick a server
  586. into responding to a predicted future request, and then use the
  587. response to masquerade as that server to a future Access-
  588. Request.
  589. Although protocols such as RADIUS are incapable of protecting
  590. against theft of an authenticated session via realtime active
  591. wiretapping attacks, generation of unique unpredictable
  592. requests can protect against a wide range of active attacks
  593. against authentication.
  594. The NAS and RADIUS server share a secret. That shared secret
  595. followed by the Request Authenticator is put through a one-way
  596. MD5 hash to create a 16 octet digest value which is xored with
  597. the password entered by the user, and the xored result placed
  598. Rigney, et al. Standards Track [Page 15]
  599. RFC 2865 RADIUS June 2000
  600. in the User-Password attribute in the Access-Request packet.
  601. See the entry for User-Password in the section on Attributes
  602. for a more detailed description.
  603. Response Authenticator
  604. The value of the Authenticator field in Access-Accept, Access-
  605. Reject, and Access-Challenge packets is called the Response
  606. Authenticator, and contains a one-way MD5 hash calculated over
  607. a stream of octets consisting of: the RADIUS packet, beginning
  608. with the Code field, including the Identifier, the Length, the
  609. Request Authenticator field from the Access-Request packet, and
  610. the response Attributes, followed by the shared secret. That
  611. is, ResponseAuth =
  612. MD5(Code+ID+Length+RequestAuth+Attributes+Secret) where +
  613. denotes concatenation.
  614. Administrative Note
  615. The secret (password shared between the client and the RADIUS
  616. server) SHOULD be at least as large and unguessable as a well-
  617. chosen password. It is preferred that the secret be at least 16
  618. octets. This is to ensure a sufficiently large range for the
  619. secret to provide protection against exhaustive search attacks.
  620. The secret MUST NOT be empty (length 0) since this would allow
  621. packets to be trivially forged.
  622. A RADIUS server MUST use the source IP address of the RADIUS UDP
  623. packet to decide which shared secret to use, so that RADIUS
  624. requests can be proxied.
  625. When using a forwarding proxy, the proxy must be able to alter the
  626. packet as it passes through in each direction - when the proxy
  627. forwards the request, the proxy MAY add a Proxy-State Attribute,
  628. and when the proxy forwards a response, it MUST remove its Proxy-
  629. State Attribute if it added one. Proxy-State is always added or
  630. removed after any other Proxy-States, but no other assumptions
  631. regarding its location within the list of attributes can be made.
  632. Since Access-Accept and Access-Reject replies are authenticated on
  633. the entire packet contents, the stripping of the Proxy-State
  634. attribute invalidates the signature in the packet - so the proxy
  635. has to re-sign it.
  636. Further details of RADIUS proxy implementation are outside the
  637. scope of this document.
  638. Rigney, et al. Standards Track [Page 16]
  639. RFC 2865 RADIUS June 2000
  640. 4. Packet Types
  641. The RADIUS Packet type is determined by the Code field in the first
  642. octet of the Packet.
  643. 4.1. Access-Request
  644. Description
  645. Access-Request packets are sent to a RADIUS server, and convey
  646. information used to determine whether a user is allowed access to
  647. a specific NAS, and any special services requested for that user.
  648. An implementation wishing to authenticate a user MUST transmit a
  649. RADIUS packet with the Code field set to 1 (Access-Request).
  650. Upon receipt of an Access-Request from a valid client, an
  651. appropriate reply MUST be transmitted.
  652. An Access-Request SHOULD contain a User-Name attribute. It MUST
  653. contain either a NAS-IP-Address attribute or a NAS-Identifier
  654. attribute (or both).
  655. An Access-Request MUST contain either a User-Password or a CHAP-
  656. Password or a State. An Access-Request MUST NOT contain both a
  657. User-Password and a CHAP-Password. If future extensions allow
  658. other kinds of authentication information to be conveyed, the
  659. attribute for that can be used in an Access-Request instead of
  660. User-Password or CHAP-Password.
  661. An Access-Request SHOULD contain a NAS-Port or NAS-Port-Type
  662. attribute or both unless the type of access being requested does
  663. not involve a port or the NAS does not distinguish among its
  664. ports.
  665. An Access-Request MAY contain additional attributes as a hint to
  666. the server, but the server is not required to honor the hint.
  667. When a User-Password is present, it is hidden using a method based
  668. on the RSA Message Digest Algorithm MD5 [3].
  669. Rigney, et al. Standards Track [Page 17]
  670. RFC 2865 RADIUS June 2000
  671. A summary of the Access-Request packet format is shown below. The
  672. fields are transmitted from left to right.
  673. 0 1 2 3
  674. 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
  675. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  676. | Code | Identifier | Length |
  677. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  678. | |
  679. | Request Authenticator |
  680. | |
  681. | |
  682. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  683. | Attributes ...
  684. +-+-+-+-+-+-+-+-+-+-+-+-+-
  685. Code
  686. 1 for Access-Request.
  687. Identifier
  688. The Identifier field MUST be changed whenever the content of the
  689. Attributes field changes, and whenever a valid reply has been
  690. received for a previous request. For retransmissions, the
  691. Identifier MUST remain unchanged.
  692. Request Authenticator
  693. The Request Authenticator value MUST be changed each time a new
  694. Identifier is used.
  695. Attributes
  696. The Attribute field is variable in length, and contains the list
  697. of Attributes that are required for the type of service, as well
  698. as any desired optional Attributes.
  699. 4.2. Access-Accept
  700. Description
  701. Access-Accept packets are sent by the RADIUS server, and provide
  702. specific configuration information necessary to begin delivery of
  703. service to the user. If all Attribute values received in an
  704. Access-Request are acceptable then the RADIUS implementation MUST
  705. transmit a packet with the Code field set to 2 (Access-Accept).
  706. Rigney, et al. Standards Track [Page 18]
  707. RFC 2865 RADIUS June 2000
  708. On reception of an Access-Accept, the Identifier field is matched
  709. with a pending Access-Request. The Response Authenticator field
  710. MUST contain the correct response for the pending Access-Request.
  711. Invalid packets are silently discarded.
  712. A summary of the Access-Accept packet format is shown below. The
  713. fields are transmitted from left to right.
  714. 0 1 2 3
  715. 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
  716. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  717. | Code | Identifier | Length |
  718. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  719. | |
  720. | Response Authenticator |
  721. | |
  722. | |
  723. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  724. | Attributes ...
  725. +-+-+-+-+-+-+-+-+-+-+-+-+-
  726. Code
  727. 2 for Access-Accept.
  728. Identifier
  729. The Identifier field is a copy of the Identifier field of the
  730. Access-Request which caused this Access-Accept.
  731. Response Authenticator
  732. The Response Authenticator value is calculated from the Access-
  733. Request value, as described earlier.
  734. Attributes
  735. The Attribute field is variable in length, and contains a list of
  736. zero or more Attributes.
  737. Rigney, et al. Standards Track [Page 19]
  738. RFC 2865 RADIUS June 2000
  739. 4.3. Access-Reject
  740. Description
  741. If any value of the received Attributes is not acceptable, then
  742. the RADIUS server MUST transmit a packet with the Code field set
  743. to 3 (Access-Reject). It MAY include one or more Reply-Message
  744. Attributes with a text message which the NAS MAY display to the
  745. user.
  746. A summary of the Access-Reject packet format is shown below. The
  747. fields are transmitted from left to right.
  748. 0 1 2 3
  749. 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
  750. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  751. | Code | Identifier | Length |
  752. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  753. | |
  754. | Response Authenticator |
  755. | |
  756. | |
  757. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  758. | Attributes ...
  759. +-+-+-+-+-+-+-+-+-+-+-+-+-
  760. Code
  761. 3 for Access-Reject.
  762. Identifier
  763. The Identifier field is a copy of the Identifier field of the
  764. Access-Request which caused this Access-Reject.
  765. Response Authenticator
  766. The Response Authenticator value is calculated from the Access-
  767. Request value, as described earlier.
  768. Attributes
  769. The Attribute field is variable in length, and contains a list of
  770. zero or more Attributes.
  771. Rigney, et al. Standards Track [Page 20]
  772. RFC 2865 RADIUS June 2000
  773. 4.4. Access-Challenge
  774. Description
  775. If the RADIUS server desires to send the user a challenge
  776. requiring a response, then the RADIUS server MUST respond to the
  777. Access-Request by transmitting a packet with the Code field set to
  778. 11 (Access-Challenge).
  779. The Attributes field MAY have one or more Reply-Message
  780. Attributes, and MAY have a single State Attribute, or none.
  781. Vendor-Specific, Idle-Timeout, Session-Timeout and Proxy-State
  782. attributes MAY also be included. No other Attributes defined in
  783. this document are permitted in an Access-Challenge.
  784. On receipt of an Access-Challenge, the Identifier field is matched
  785. with a pending Access-Request. Additionally, the Response
  786. Authenticator field MUST contain the correct response for the
  787. pending Access-Request. Invalid packets are silently discarded.
  788. If the NAS does not support challenge/response, it MUST treat an
  789. Access-Challenge as though it had received an Access-Reject
  790. instead.
  791. If the NAS supports challenge/response, receipt of a valid
  792. Access-Challenge indicates that a new Access-Request SHOULD be
  793. sent. The NAS MAY display the text message, if any, to the user,
  794. and then prompt the user for a response. It then sends its
  795. original Access-Request with a new request ID and Request
  796. Authenticator, with the User-Password Attribute replaced by the
  797. user's response (encrypted), and including the State Attribute
  798. from the Access-Challenge, if any. Only 0 or 1 instances of the
  799. State Attribute can be present in an Access-Request.
  800. A NAS which supports PAP MAY forward the Reply-Message to the
  801. dialing client and accept a PAP response which it can use as
  802. though the user had entered the response. If the NAS cannot do
  803. so, it MUST treat the Access-Challenge as though it had received
  804. an Access-Reject instead.
  805. Rigney, et al. Standards Track [Page 21]
  806. RFC 2865 RADIUS June 2000
  807. A summary of the Access-Challenge packet format is shown below. The
  808. fields are transmitted from left to right.
  809. 0 1 2 3
  810. 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
  811. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  812. | Code | Identifier | Length |
  813. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  814. | |
  815. | Response Authenticator |
  816. | |
  817. | |
  818. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  819. | Attributes ...
  820. +-+-+-+-+-+-+-+-+-+-+-+-+-
  821. Code
  822. 11 for Access-Challenge.
  823. Identifier
  824. The Identifier field is a copy of the Identifier field of the
  825. Access-Request which caused this Access-Challenge.
  826. Response Authenticator
  827. The Response Authenticator value is calculated from the Access-
  828. Request value, as described earlier.
  829. Attributes
  830. The Attributes field is variable in length, and contains a list of
  831. zero or more Attributes.
  832. 5. Attributes
  833. RADIUS Attributes carry the specific authentication, authorization,
  834. information and configuration details for the request and reply.
  835. The end of the list of Attributes is indicated by the Length of the
  836. RADIUS packet.
  837. Some Attributes MAY be included more than once. The effect of this
  838. is Attribute specific, and is specified in each Attribute
  839. description. A summary table is provided at the end of the
  840. "Attributes" section.
  841. Rigney, et al. Standards Track [Page 22]
  842. RFC 2865 RADIUS June 2000
  843. If multiple Attributes with the same Type are present, the order of
  844. Attributes with the same Type MUST be preserved by any proxies. The
  845. order of Attributes of different Types is not required to be
  846. preserved. A RADIUS server or client MUST NOT have any dependencies
  847. on the order of attributes of different types. A RADIUS server or
  848. client MUST NOT require attributes of the same type to be contiguous.
  849. Where an Attribute's description limits which kinds of packet it can
  850. be contained in, this applies only to the packet types defined in
  851. this document, namely Access-Request, Access-Accept, Access-Reject
  852. and Access-Challenge (Codes 1, 2, 3, and 11). Other documents
  853. defining other packet types may also use Attributes described here.
  854. To determine which Attributes are allowed in Accounting-Request and
  855. Accounting-Response packets (Codes 4 and 5) refer to the RADIUS
  856. Accounting document [5].
  857. Likewise where packet types defined here state that only certain
  858. Attributes are permissible in them, future memos defining new
  859. Attributes should indicate which packet types the new Attributes may
  860. be present in.
  861. A summary of the Attribute format is shown below. The fields are
  862. transmitted from left to right.
  863. 0 1 2
  864. 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0
  865. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
  866. | Type | Length | Value ...
  867. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
  868. Type
  869. The Type field is one octet. Up-to-date values of the RADIUS Type
  870. field are specified in the most recent "Assigned Numbers" RFC [6].
  871. Values 192-223 are reserved for experimental use, values 224-240
  872. are reserved for implementation-specific use, and values 241-255
  873. are reserved and should not be used.
  874. A RADIUS server MAY ignore Attributes with an unknown Type.
  875. A RADIUS client MAY ignore Attributes with an unknown Type.
  876. Rigney, et al. Standards Track [Page 23]
  877. RFC 2865 RADIUS June 2000
  878. This specification concerns the following values:
  879. 1 User-Name
  880. 2 User-Password
  881. 3 CHAP-Password
  882. 4 NAS-IP-Address
  883. 5 NAS-Port
  884. 6 Service-Type
  885. 7 Framed-Protocol
  886. 8 Framed-IP-Address
  887. 9 Framed-IP-Netmask
  888. 10 Framed-Routing
  889. 11 Filter-Id
  890. 12 Framed-MTU
  891. 13 Framed-Compression
  892. 14 Login-IP-Host
  893. 15 Login-Service
  894. 16 Login-TCP-Port
  895. 17 (unassigned)
  896. 18 Reply-Message
  897. 19 Callback-Number
  898. 20 Callback-Id
  899. 21 (unassigned)
  900. 22 Framed-Route
  901. 23 Framed-IPX-Network
  902. 24 State
  903. 25 Class
  904. 26 Vendor-Specific
  905. 27 Session-Timeout
  906. 28 Idle-Timeout
  907. 29 Termination-Action
  908. 30 Called-Station-Id
  909. 31 Calling-Station-Id
  910. 32 NAS-Identifier
  911. 33 Proxy-State
  912. 34 Login-LAT-Service
  913. 35 Login-LAT-Node
  914. 36 Login-LAT-Group
  915. 37 Framed-AppleTalk-Link
  916. 38 Framed-AppleTalk-Network
  917. 39 Framed-AppleTalk-Zone
  918. 40-59 (reserved for accounting)
  919. 60 CHAP-Challenge
  920. 61 NAS-Port-Type
  921. 62 Port-Limit
  922. 63 Login-LAT-Port
  923. Rigney, et al. Standards Track [Page 24]
  924. RFC 2865 RADIUS June 2000
  925. Length
  926. The Length field is one octet, and indicates the length of this
  927. Attribute including the Type, Length and Value fields. If an
  928. Attribute is received in an Access-Request but with an invalid
  929. Length, an Access-Reject SHOULD be transmitted. If an Attribute
  930. is received in an Access-Accept, Access-Reject or Access-Challenge
  931. packet with an invalid length, the packet MUST either be treated
  932. as an Access-Reject or else silently discarded.
  933. Value
  934. The Value field is zero or more octets and contains information
  935. specific to the Attribute. The format and length of the Value
  936. field is determined by the Type and Length fields.
  937. Note that none of the types in RADIUS terminate with a NUL (hex
  938. 00). In particular, types "text" and "string" in RADIUS do not
  939. terminate with a NUL (hex 00). The Attribute has a length field
  940. and does not use a terminator. Text contains UTF-8 encoded 10646
  941. [7] characters and String contains 8-bit binary data. Servers and
  942. servers and clients MUST be able to deal with embedded nulls.
  943. RADIUS implementers using C are cautioned not to use strcpy() when
  944. handling strings.
  945. The format of the value field is one of five data types. Note
  946. that type "text" is a subset of type "string".
  947. text 1-253 octets containing UTF-8 encoded 10646 [7]
  948. characters. Text of length zero (0) MUST NOT be sent;
  949. omit the entire attribute instead.
  950. string 1-253 octets containing binary data (values 0 through
  951. 255 decimal, inclusive). Strings of length zero (0)
  952. MUST NOT be sent; omit the entire attribute instead.
  953. address 32 bit value, most significant octet first.
  954. integer 32 bit unsigned value, most significant octet first.
  955. time 32 bit unsigned value, most significant octet first --
  956. seconds since 00:00:00 UTC, January 1, 1970. The
  957. standard Attributes do not use this data type but it is
  958. presented here for possible use in future attributes.
  959. Rigney, et al. Standards Track [Page 25]
  960. RFC 2865 RADIUS June 2000
  961. 5.1. User-Name
  962. Description
  963. This Attribute indicates the name of the user to be authenticated.
  964. It MUST be sent in Access-Request packets if available.
  965. It MAY be sent in an Access-Accept packet, in which case the
  966. client SHOULD use the name returned in the Access-Accept packet in
  967. all Accounting-Request packets for this session. If the Access-
  968. Accept includes Service-Type = Rlogin and the User-Name attribute,
  969. a NAS MAY use the returned User-Name when performing the Rlogin
  970. function.
  971. A summary of the User-Name Attribute format is shown below. The
  972. fields are transmitted from left to right.
  973. 0 1 2
  974. 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  975. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
  976. | Type | Length | String ...
  977. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
  978. Type
  979. 1 for User-Name.
  980. Length
  981. >= 3
  982. String
  983. The String field is one or more octets. The NAS may limit the
  984. maximum length of the User-Name but the ability to handle at least
  985. 63 octets is recommended.
  986. The format of the username MAY be one of several forms:
  987. text Consisting only of UTF-8 encoded 10646 [7] characters.
  988. network access identifier
  989. A Network Access Identifier as described in RFC 2486
  990. [8].
  991. distinguished name
  992. A name in ASN.1 form used in Public Key authentication
  993. systems.
  994. Rigney, et al. Standards Track [Page 26]
  995. RFC 2865 RADIUS June 2000
  996. 5.2. User-Password
  997. Description
  998. This Attribute indicates the password of the user to be
  999. authenticated, or the user's input following an Access-Challenge.
  1000. It is only used in Access-Request packets.
  1001. On transmission, the password is hidden. The password is first
  1002. padded at the end with nulls to a multiple of 16 octets. A one-
  1003. way MD5 hash is calculated over a stream of octets consisting of
  1004. the shared secret followed by the Request Authenticator. This
  1005. value is XORed with the first 16 octet segment of the password and
  1006. placed in the first 16 octets of the String field of the User-
  1007. Password Attribute.
  1008. If the password is longer than 16 characters, a second one-way MD5
  1009. hash is calculated over a stream of octets consisting of the
  1010. shared secret followed by the result of the first xor. That hash
  1011. is XORed with the second 16 octet segment of the password and
  1012. placed in the second 16 octets of the String field of the User-
  1013. Password Attribute.
  1014. If necessary, this operation is repeated, with each xor result
  1015. being used along with the shared secret to generate the next hash
  1016. to xor the next segment of the password, to no more than 128
  1017. characters.
  1018. The method is taken from the book "Network Security" by Kaufman,
  1019. Perlman and Speciner [9] pages 109-110. A more precise
  1020. explanation of the method follows:
  1021. Call the shared secret S and the pseudo-random 128-bit Request
  1022. Authenticator RA. Break the password into 16-octet chunks p1, p2,
  1023. etc. with the last one padded at the end with nulls to a 16-octet
  1024. boundary. Call the ciphertext blocks c(1), c(2), etc. We'll need
  1025. intermediate values b1, b2, etc.
  1026. b1 = MD5(S + RA) c(1) = p1 xor b1
  1027. b2 = MD5(S + c(1)) c(2) = p2 xor b2
  1028. . .
  1029. . .
  1030. . .
  1031. bi = MD5(S + c(i-1)) c(i) = pi xor bi
  1032. The String will contain c(1)+c(2)+...+c(i) where + denotes
  1033. concatenation.
  1034. Rigney, et al. Standards Track [Page 27]
  1035. RFC 2865 RADIUS June 2000
  1036. On receipt, the process is reversed to yield the original
  1037. password.
  1038. A summary of the User-Password Attribute format is shown below. The
  1039. fields are transmitted from left to right.
  1040. 0 1 2
  1041. 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  1042. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
  1043. | Type | Length | String ...
  1044. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
  1045. Type
  1046. 2 for User-Password.
  1047. Length
  1048. At least 18 and no larger than 130.
  1049. String
  1050. The String field is between 16 and 128 octets long, inclusive.
  1051. 5.3. CHAP-Password
  1052. Description
  1053. This Attribute indicates the response value provided by a PPP
  1054. Challenge-Handshake Authentication Protocol (CHAP) user in
  1055. response to the challenge. It is only used in Access-Request
  1056. packets.
  1057. The CHAP challenge value is found in the CHAP-Challenge Attribute
  1058. (60) if present in the packet, otherwise in the Request
  1059. Authenticator field.
  1060. A summary of the CHAP-Password Attribute format is shown below. The
  1061. fields are transmitted from left to right.
  1062. 0 1 2
  1063. 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
  1064. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
  1065. | Type | Length | CHAP Ident | String ...
  1066. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
  1067. Rigney, et al. Standards Track [Page 28]
  1068. RFC 2865 RADIUS June 2000
  1069. Type
  1070. 3 for CHAP-Password.
  1071. Length
  1072. 19
  1073. CHAP Ident
  1074. This field is one octet, and contains the CHAP Identifier from the
  1075. user's CHAP Response.
  1076. String
  1077. The String field is 16 octets, and contains the CHAP Response from
  1078. the user.
  1079. 5.4. NAS-IP-Address
  1080. Description
  1081. This Attribute indicates the identifying IP Address of the NAS
  1082. which is requesting authentication of the user, and SHOULD be
  1083. unique to the NAS within the scope of the RADIUS server. NAS-IP-
  1084. Address is only used in Access-Request packets. Either NAS-IP-
  1085. Address or NAS-Identifier MUST be present in an Access-Request
  1086. packet.
  1087. Note that NAS-IP-Address MUST NOT be used to select the shared
  1088. secret used to authenticate the request. The source IP address of
  1089. the Access-Request packet MUST be used to select the shared
  1090. secret.
  1091. A summary of the NAS-IP-Address Attribute format is shown below. The
  1092. fields are transmitted from left to right.
  1093. 0 1 2 3
  1094. 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
  1095. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  1096. | Type | Length | Address
  1097. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  1098. Address (cont) |
  1099. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  1100. Type
  1101. 4 for NAS-IP-Address.
  1102. Rigney, et al. Standards Track [Page 29]
  1103. RFC 2865 RADIUS June 2000
  1104. Length
  1105. 6
  1106. Address
  1107. The Address field is four octets.
  1108. 5.5. NAS-Port
  1109. Description
  1110. This Attribute indicates the physical port number of the NAS which
  1111. is authenticating the user. It is only used in Access-Request
  1112. packets. Note that this is using "port" in its sense of a
  1113. physical connection on the NAS, not in the sense of a TCP or UDP
  1114. port number. Either NAS-Port or NAS-Port-Type (61) or both SHOULD
  1115. be present in an Access-Request packet, if the NAS differentiates
  1116. among its ports.
  1117. A summary of the NAS-Port Attribute format is shown below. The
  1118. fields are transmitted from left to right.
  1119. 0 1 2 3
  1120. 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
  1121. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  1122. | Type | Length | Value
  1123. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  1124. Value (cont) |
  1125. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  1126. Type
  1127. 5 for NAS-Port.
  1128. Length
  1129. 6
  1130. Value
  1131. The Value field is four octets.
  1132. Rigney, et al. Standards Track [Page 30]
  1133. RFC 2865 RADIUS June 2000
  1134. 5.6. Service-Type
  1135. Description
  1136. This Attribute indicates the type of service the user has
  1137. requested, or the type of service to be provided. It MAY be used
  1138. in both Access-Request and Access-Accept packets. A NAS is not
  1139. required to implement all of these service types, and MUST treat
  1140. unknown or unsupported Service-Types as though an Access-Reject
  1141. had been received instead.
  1142. A summary of the Service-Type Attribute format is shown below. The
  1143. fields are transmitted from left to right.
  1144. 0 1 2 3
  1145. 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
  1146. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  1147. | Type | Length | Value
  1148. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  1149. Value (cont) |
  1150. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  1151. Type
  1152. 6 for Service-Type.
  1153. Length
  1154. 6
  1155. Value
  1156. The Value field is four octets.
  1157. 1 Login
  1158. 2 Framed
  1159. 3 Callback Login
  1160. 4 Callback Framed
  1161. 5 Outbound
  1162. 6 Administrative
  1163. 7 NAS Prompt
  1164. 8 Authenticate Only
  1165. 9 Callback NAS Prompt
  1166. 10 Call Check
  1167. 11 Callback Administrative
  1168. Rigney, et al. Standards Track [Page 31]
  1169. RFC 2865 RADIUS June 2000
  1170. The service types are defined as follows when used in an Access-
  1171. Accept. When used in an Access-Request, they MAY be considered to
  1172. be a hint to the RADIUS server that the NAS has reason to believe
  1173. the user would prefer the kind of service indicated, but the
  1174. server is not required to honor the hint.
  1175. Login The user should be connected to a host.
  1176. Framed A Framed Protocol should be started for the
  1177. User, such as PPP or SLIP.
  1178. Callback Login The user should be disconnected and called
  1179. back, then connected to a host.
  1180. Callback Framed The user should be disconnected and called
  1181. back, then a Framed Protocol should be started
  1182. for the User, such as PPP or SLIP.
  1183. Outbound The user should be granted access to outgoing
  1184. devices.
  1185. Administrative The user should be granted access to the
  1186. administrative interface to the NAS from which
  1187. privileged commands can be executed.
  1188. NAS Prompt The user should be provided a command prompt
  1189. on the NAS from which non-privileged commands
  1190. can be executed.
  1191. Authenticate Only Only Authentication is requested, and no
  1192. authorization information needs to be returned
  1193. in the Access-Accept (typically used by proxy
  1194. servers rather than the NAS itself).
  1195. Callback NAS Prompt The user should be disconnected and called
  1196. back, then provided a command prompt on the
  1197. NAS from which non-privileged commands can be
  1198. executed.
  1199. Call Check Used by the NAS in an Access-Request packet to
  1200. indicate that a call is being received and
  1201. that the RADIUS server should send back an
  1202. Access-Accept to answer the call, or an
  1203. Access-Reject to not accept the call,
  1204. typically based on the Called-Station-Id or
  1205. Calling-Station-Id attributes. It is
  1206. Rigney, et al. Standards Track [Page 32]
  1207. RFC 2865 RADIUS June 2000
  1208. recommended that such Access-Requests use the
  1209. value of Calling-Station-Id as the value of
  1210. the User-Name.
  1211. Callback Administrative
  1212. The user should be disconnected and called
  1213. back, then granted access to the
  1214. administrative interface to the NAS from which
  1215. privileged commands can be executed.
  1216. 5.7. Framed-Protocol
  1217. Description
  1218. This Attribute indicates the framing to be used for framed access.
  1219. It MAY be used in both Access-Request and Access-Accept packets.
  1220. A summary of the Framed-Protocol Attribute format is shown below.
  1221. The fields are transmitted from left to right.
  1222. 0 1 2 3
  1223. 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
  1224. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  1225. | Type | Length | Value
  1226. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  1227. Value (cont) |
  1228. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  1229. Type
  1230. 7 for Framed-Protocol.
  1231. Length
  1232. 6
  1233. Value
  1234. The Value field is four octets.
  1235. 1 PPP
  1236. 2 SLIP
  1237. 3 AppleTalk Remote Access Protocol (ARAP)
  1238. 4 Gandalf proprietary SingleLink/MultiLink protocol
  1239. 5 Xylogics proprietary IPX/SLIP
  1240. 6 X.75 Synchronous
  1241. Rigney, et al. Standards Track [Page 33]
  1242. RFC 2865 RADIUS June 2000
  1243. 5.8. Framed-IP-Address
  1244. Description
  1245. This Attribute indicates the address to be configured for the
  1246. user. It MAY be used in Access-Accept packets. It MAY be used in
  1247. an Access-Request packet as a hint by the NAS to the server that
  1248. it would prefer that address, but the server is not required to
  1249. honor the hint.
  1250. A summary of the Framed-IP-Address Attribute format is shown below.
  1251. The fields are transmitted from left to right.
  1252. 0 1 2 3
  1253. 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
  1254. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  1255. | Type | Length | Address
  1256. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  1257. Address (cont) |
  1258. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  1259. Type
  1260. 8 for Framed-IP-Address.
  1261. Length
  1262. 6
  1263. Address
  1264. The Address field is four octets. The value 0xFFFFFFFF indicates
  1265. that the NAS Should allow the user to select an address (e.g.
  1266. Negotiated). The value 0xFFFFFFFE indicates that the NAS should
  1267. select an address for the user (e.g. Assigned from a pool of
  1268. addresses kept by the NAS). Other valid values indicate that the
  1269. NAS should use that value as the user's IP address.
  1270. 5.9. Framed-IP-Netmask
  1271. Description
  1272. This Attribute indicates the IP netmask to be configured for the
  1273. user when the user is a router to a network. It MAY be used in
  1274. Access-Accept packets. It MAY be used in an Access-Request packet
  1275. as a hint by the NAS to the server that it would prefer that
  1276. netmask, but the server is not required to honor the hint.
  1277. Rigney, et al. Standards Track [Page 34]
  1278. RFC 2865 RADIUS June 2000
  1279. A summary of the Framed-IP-Netmask Attribute format is shown below.
  1280. The fields are transmitted from left to right.
  1281. 0 1 2 3
  1282. 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
  1283. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  1284. | Type | Length | Address
  1285. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  1286. Address (cont) |
  1287. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  1288. Type
  1289. 9 for Framed-IP-Netmask.
  1290. Length
  1291. 6
  1292. Address
  1293. The Address field is four octets specifying the IP netmask of the
  1294. user.
  1295. 5.10. Framed-Routing
  1296. Description
  1297. This Attribute indicates the routing method for the user, when the
  1298. user is a router to a network. It is only used in Access-Accept
  1299. packets.
  1300. A summary of the Framed-Routing Attribute format is shown below. The
  1301. fields are transmitted from left to right.
  1302. 0 1 2 3
  1303. 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
  1304. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  1305. | Type | Length | Value
  1306. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  1307. Value (cont) |
  1308. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  1309. Type
  1310. 10 for Framed-Routing.
  1311. Rigney, et al. Standards Track [Page 35]
  1312. RFC 2865 RADIUS June 2000
  1313. Length
  1314. 6
  1315. Value
  1316. The Value field is four octets.
  1317. 0 None
  1318. 1 Send routing packets
  1319. 2 Listen for routing packets
  1320. 3 Send and Listen
  1321. 5.11. Filter-Id
  1322. Description
  1323. This Attribute indicates the name of the filter list for this
  1324. user. Zero or more Filter-Id attributes MAY be sent in an
  1325. Access-Accept packet.
  1326. Identifying a filter list by name allows the filter to be used on
  1327. different NASes without regard to filter-list implementation
  1328. details.
  1329. A summary of the Filter-Id Attribute format is shown below. The
  1330. fields are transmitted from left to right.
  1331. 0 1 2
  1332. 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  1333. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
  1334. | Type | Length | Text ...
  1335. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
  1336. Type
  1337. 11 for Filter-Id.
  1338. Length
  1339. >= 3
  1340. Text
  1341. The Text field is one or more octets, and its contents are
  1342. implementation dependent. It is intended to be human readable and
  1343. MUST NOT affect operation of the protocol. It is recommended that
  1344. the message contain UTF-8 encoded 10646 [7] characters.
  1345. Rigney, et al. Standards Track [Page 36]
  1346. RFC 2865 RADIUS June 2000
  1347. 5.12. Framed-MTU
  1348. Description
  1349. This Attribute indicates the Maximum Transmission Unit to be
  1350. configured for the user, when it is not negotiated by some other
  1351. means (such as PPP). It MAY be used in Access-Accept packets. It
  1352. MAY be used in an Access-Request packet as a hint by the NAS to
  1353. the server that it would prefer that value, but the server is not
  1354. required to honor the hint.
  1355. A summary of the Framed-MTU Attribute format is shown below. The
  1356. fields are transmitted from left to right.
  1357. 0 1 2 3
  1358. 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
  1359. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  1360. | Type | Length | Value
  1361. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  1362. Value (cont) |
  1363. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  1364. Type
  1365. 12 for Framed-MTU.
  1366. Length
  1367. 6
  1368. Value
  1369. The Value field is four octets. Despite the size of the field,
  1370. values range from 64 to 65535.
  1371. 5.13. Framed-Compression
  1372. Description
  1373. This Attribute indicates a compression protocol to be used for the
  1374. link. It MAY be used in Access-Accept packets. It MAY be used in
  1375. an Access-Request packet as a hint to the server that the NAS
  1376. would prefer to use that compression, but the server is not
  1377. required to honor the hint.
  1378. More than one compression protocol Attribute MAY be sent. It is
  1379. the responsibility of the NAS to apply the proper compression
  1380. protocol to appropriate link traffic.
  1381. Rigney, et al. Standards Track [Page 37]
  1382. RFC 2865 RADIUS June 2000
  1383. A summary of the Framed-Compression Attribute format is shown below.
  1384. The fields are transmitted from left to right.
  1385. 0 1 2 3
  1386. 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
  1387. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  1388. | Type | Length | Value
  1389. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  1390. Value (cont) |
  1391. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  1392. Type
  1393. 13 for Framed-Compression.
  1394. Length
  1395. 6
  1396. Value
  1397. The Value field is four octets.
  1398. 0 None
  1399. 1 VJ TCP/IP header compression [10]
  1400. 2 IPX header compression
  1401. 3 Stac-LZS compression
  1402. 5.14. Login-IP-Host
  1403. Description
  1404. This Attribute indicates the system with which to connect the user,
  1405. when the Login-Service Attribute is included. It MAY be used in
  1406. Access-Accept packets. It MAY be used in an Access-Request packet as
  1407. a hint to the server that the NAS would prefer to use that host, but
  1408. the server is not required to honor the hint.
  1409. A summary of the Login-IP-Host Attribute format is shown below. The
  1410. fields are transmitted from left to right.
  1411. Rigney, et al. Standards Track [Page 38]
  1412. RFC 2865 RADIUS June 2000
  1413. 0 1 2 3
  1414. 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
  1415. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  1416. | Type | Length | Address
  1417. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  1418. Address (cont) |
  1419. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  1420. Type
  1421. 14 for Login-IP-Host.
  1422. Length
  1423. 6
  1424. Address
  1425. The Address field is four octets. The value 0xFFFFFFFF indicates
  1426. that the NAS SHOULD allow the user to select an address. The
  1427. value 0 indicates that the NAS SHOULD select a host to connect the
  1428. user to. Other values indicate the address the NAS SHOULD connect
  1429. the user to.
  1430. 5.15. Login-Service
  1431. Description
  1432. This Attribute indicates the service to use to connect the user to
  1433. the login host. It is only used in Access-Accept packets.
  1434. A summary of the Login-Service Attribute format is shown below. The
  1435. fields are transmitted from left to right.
  1436. 0 1 2 3
  1437. 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
  1438. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  1439. | Type | Length | Value
  1440. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  1441. Value (cont) |
  1442. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  1443. Type
  1444. 15 for Login-Service.
  1445. Rigney, et al. Standards Track [Page 39]
  1446. RFC 2865 RADIUS June 2000
  1447. Length
  1448. 6
  1449. Value
  1450. The Value field is four octets.
  1451. 0 Telnet
  1452. 1 Rlogin
  1453. 2 TCP Clear
  1454. 3 PortMaster (proprietary)
  1455. 4 LAT
  1456. 5 X25-PAD
  1457. 6 X25-T3POS
  1458. 8 TCP Clear Quiet (suppresses any NAS-generated connect string)
  1459. 5.16. Login-TCP-Port
  1460. Description
  1461. This Attribute indicates the TCP port with which the user is to be
  1462. connected, when the Login-Service Attribute is also present. It
  1463. is only used in Access-Accept packets.
  1464. A summary of the Login-TCP-Port Attribute format is shown below. The
  1465. fields are transmitted from left to right.
  1466. 0 1 2 3
  1467. 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
  1468. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  1469. | Type | Length | Value
  1470. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  1471. Value (cont) |
  1472. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  1473. Type
  1474. 16 for Login-TCP-Port.
  1475. Length
  1476. 6
  1477. Value
  1478. The Value field is four octets. Despite the size of the field,
  1479. values range from 0 to 65535.
  1480. Rigney, et al. Standards Track [Page 40]
  1481. RFC 2865 RADIUS June 2000
  1482. 5.17. (unassigned)
  1483. Description
  1484. ATTRIBUTE TYPE 17 HAS NOT BEEN ASSIGNED.
  1485. 5.18. Reply-Message
  1486. Description
  1487. This Attribute indicates text which MAY be displayed to the user.
  1488. When used in an Access-Accept, it is the success message.
  1489. When used in an Access-Reject, it is the failure message. It MAY
  1490. indicate a dialog message to prompt the user before another
  1491. Access-Request attempt.
  1492. When used in an Access-Challenge, it MAY indicate a dialog message
  1493. to prompt the user for a response.
  1494. Multiple Reply-Message's MAY be included and if any are displayed,
  1495. they MUST be displayed in the same order as they appear in the
  1496. packet.
  1497. A summary of the Reply-Message Attribute format is shown below. The
  1498. fields are transmitted from left to right.
  1499. 0 1 2
  1500. 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  1501. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
  1502. | Type | Length | Text ...
  1503. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
  1504. Type
  1505. 18 for Reply-Message.
  1506. Length
  1507. >= 3
  1508. Text
  1509. The Text field is one or more octets, and its contents are
  1510. implementation dependent. It is intended to be human readable,
  1511. and MUST NOT affect operation of the protocol. It is recommended
  1512. that the message contain UTF-8 encoded 10646 [7] characters.
  1513. Rigney, et al. Standards Track [Page 41]
  1514. RFC 2865 RADIUS June 2000
  1515. 5.19. Callback-Number
  1516. Description
  1517. This Attribute indicates a dialing string to be used for callback.
  1518. It MAY be used in Access-Accept packets. It MAY be used in an
  1519. Access-Request packet as a hint to the server that a Callback
  1520. service is desired, but the server is not required to honor the
  1521. hint.
  1522. A summary of the Callback-Number Attribute format is shown below.
  1523. The fields are transmitted from left to right.
  1524. 0 1 2
  1525. 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  1526. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
  1527. | Type | Length | String ...
  1528. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
  1529. Type
  1530. 19 for Callback-Number.
  1531. Length
  1532. >= 3
  1533. String
  1534. The String field is one or more octets. The actual format of the
  1535. information is site or application specific, and a robust
  1536. implementation SHOULD support the field as undistinguished octets.
  1537. The codification of the range of allowed usage of this field is
  1538. outside the scope of this specification.
  1539. 5.20. Callback-Id
  1540. Description
  1541. This Attribute indicates the name of a place to be called, to be
  1542. interpreted by the NAS. It MAY be used in Access-Accept packets.
  1543. Rigney, et al. Standards Track [Page 42]
  1544. RFC 2865 RADIUS June 2000
  1545. A summary of the Callback-Id Attribute format is shown below. The
  1546. fields are transmitted from left to right.
  1547. 0 1 2
  1548. 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  1549. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
  1550. | Type | Length | String ...
  1551. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
  1552. Type
  1553. 20 for Callback-Id.
  1554. Length
  1555. >= 3
  1556. String
  1557. The String field is one or more octets. The actual format of the
  1558. information is site or application specific, and a robust
  1559. implementation SHOULD support the field as undistinguished octets.
  1560. The codification of the range of allowed usage of this field is
  1561. outside the scope of this specification.
  1562. 5.21. (unassigned)
  1563. Description
  1564. ATTRIBUTE TYPE 21 HAS NOT BEEN ASSIGNED.
  1565. 5.22. Framed-Route
  1566. Description
  1567. This Attribute provides routing information to be configured for
  1568. the user on the NAS. It is used in the Access-Accept packet and
  1569. can appear multiple times.
  1570. A summary of the Framed-Route Attribute format is shown below. The
  1571. fields are transmitted from left to right.
  1572. 0 1 2
  1573. 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3
  1574. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
  1575. | Type | Length | Text ...
  1576. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
  1577. Rigney, et al. Standards Track [Page 43]
  1578. RFC 2865 RADIUS June 2000
  1579. Type
  1580. 22 for Framed-Route.
  1581. Length
  1582. >= 3
  1583. Text
  1584. The Text field is one or more octets, and its contents are
  1585. implementation dependent. It is intended to be human readable and
  1586. MUST NOT affect operation of the protocol. It is recommended that
  1587. the message contain UTF-8 encoded 10646 [7] characters.
  1588. For IP routes, it SHOULD contain a destination prefix in dotted
  1589. quad form optionally followed by a slash and a decimal length
  1590. specifier stating how many high order bits of the prefix to use.
  1591. That is followed by a space, a gateway address in dotted quad
  1592. form, a space, and one or more metrics separated by spaces. For
  1593. example, "192.168.1.0/24 192.168.1.1 1 2 -1 3 400". The length
  1594. specifier may be omitted, in which case it defaults to 8 bits for
  1595. class A prefixes, 16 bits for class B prefixes, and 24 bits for
  1596. class C prefixes. For example, "192.168.1.0 192.168.1.1 1".
  1597. Whenever the gateway address is specified as "0.0.0.0" the IP
  1598. address of the user SHOULD be used as the gateway address.
  1599. 5.23. Framed-IPX-Network
  1600. Description
  1601. This Attribute indicates the IPX Network number to be configured
  1602. for the user. It is used in Access-Accept packets.
  1603. A summary of the Framed-IPX-Network Attribute format is shown below.
  1604. The fields are transmitted from left to right.
  1605. 0 1 2 3
  1606. 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
  1607. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  1608. | Type | Length | Value
  1609. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  1610. Value (cont) |
  1611. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  1612. Rigney, et al. Standards Track [Page 44]
  1613. RFC 2865 RADIUS June 2000
  1614. Type
  1615. 23 for Framed-IPX-Network.
  1616. Length
  1617. 6
  1618. Value
  1619. The Value field is four octets. The value 0xFFFFFFFE indicates
  1620. that the NAS should select an IPX network for the user (e.g.
  1621. assigned from a pool of one or more IPX networks kept by the NAS).
  1622. Other values should be used as the IPX network for the link to the
  1623. user.
  1624. 5.24. State
  1625. Description
  1626. This Attribute is available to be sent by the server to the client
  1627. in an Access-Challenge and MUST be sent unmodified from the client
  1628. to the server in the new Access-Request reply to that challenge,
  1629. if any.
  1630. This Attribute is available to be sent by the server to the client
  1631. in an Access-Accept that also includes a Termination-Action
  1632. Attribute with the value of RADIUS-Request. If the NAS performs
  1633. the Termination-Action by sending a new Access-Request upon
  1634. termination of the current session, it MUST include the State
  1635. attribute unchanged in that Access-Request.
  1636. In either usage, the client MUST NOT interpret the attribute
  1637. locally. A packet must have only zero or one State Attribute.
  1638. Usage of the State Attribute is implementation dependent.
  1639. A summary of the State Attribute format is shown below. The fields
  1640. are transmitted from left to right.
  1641. 0 1 2
  1642. 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  1643. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
  1644. | Type | Length | String ...
  1645. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
  1646. Type
  1647. 24 for State.
  1648. Rigney, et al. Standards Track [Page 45]
  1649. RFC 2865 RADIUS June 2000
  1650. Length
  1651. >= 3
  1652. String
  1653. The String field is one or more octets. The actual format of the
  1654. information is site or application specific, and a robust
  1655. implementation SHOULD support the field as undistinguished octets.
  1656. The codification of the range of allowed usage of this field is
  1657. outside the scope of this specification.
  1658. 5.25. Class
  1659. Description
  1660. This Attribute is available to be sent by the server to the client
  1661. in an Access-Accept and SHOULD be sent unmodified by the client to
  1662. the accounting server as part of the Accounting-Request packet if
  1663. accounting is supported. The client MUST NOT interpret the
  1664. attribute locally.
  1665. A summary of the Class Attribute format is shown below. The fields
  1666. are transmitted from left to right.
  1667. 0 1 2
  1668. 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  1669. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
  1670. | Type | Length | String ...
  1671. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
  1672. Type
  1673. 25 for Class.
  1674. Length
  1675. >= 3
  1676. String
  1677. The String field is one or more octets. The actual format of the
  1678. information is site or application specific, and a robust
  1679. implementation SHOULD support the field as undistinguished octets.
  1680. The codification of the range of allowed usage of this field is
  1681. outside the scope of this specification.
  1682. Rigney, et al. Standards Track [Page 46]
  1683. RFC 2865 RADIUS June 2000
  1684. 5.26. Vendor-Specific
  1685. Description
  1686. This Attribute is available to allow vendors to support their own
  1687. extended Attributes not suitable for general usage. It MUST not
  1688. affect the operation of the RADIUS protocol.
  1689. Servers not equipped to interpret the vendor-specific information
  1690. sent by a client MUST ignore it (although it may be reported).
  1691. Clients which do not receive desired vendor-specific information
  1692. SHOULD make an attempt to operate without it, although they may do
  1693. so (and report they are doing so) in a degraded mode.
  1694. A summary of the Vendor-Specific Attribute format is shown below.
  1695. The fields are transmitted from left to right.
  1696. 0 1 2 3
  1697. 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
  1698. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  1699. | Type | Length | Vendor-Id
  1700. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  1701. Vendor-Id (cont) | String...
  1702. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
  1703. Type
  1704. 26 for Vendor-Specific.
  1705. Length
  1706. >= 7
  1707. Vendor-Id
  1708. The high-order octet is 0 and the low-order 3 octets are the SMI
  1709. Network Management Private Enterprise Code of the Vendor in
  1710. network byte order, as defined in the "Assigned Numbers" RFC [6].
  1711. String
  1712. The String field is one or more octets. The actual format of the
  1713. information is site or application specific, and a robust
  1714. implementation SHOULD support the field as undistinguished octets.
  1715. The codification of the range of allowed usage of this field is
  1716. outside the scope of this specification.
  1717. Rigney, et al. Standards Track [Page 47]
  1718. RFC 2865 RADIUS June 2000
  1719. It SHOULD be encoded as a sequence of vendor type / vendor length
  1720. / value fields, as follows. The Attribute-Specific field is
  1721. dependent on the vendor's definition of that attribute. An
  1722. example encoding of the Vendor-Specific attribute using this
  1723. method follows:
  1724. 0 1 2 3
  1725. 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
  1726. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  1727. | Type | Length | Vendor-Id
  1728. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  1729. Vendor-Id (cont) | Vendor type | Vendor length |
  1730. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  1731. | Attribute-Specific...
  1732. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
  1733. Multiple subattributes MAY be encoded within a single Vendor-
  1734. Specific attribute, although they do not have to be.
  1735. 5.27. Session-Timeout
  1736. Description
  1737. This Attribute sets the maximum number of seconds of service to be
  1738. provided to the user before termination of the session or prompt.
  1739. This Attribute is available to be sent by the server to the client
  1740. in an Access-Accept or Access-Challenge.
  1741. A summary of the Session-Timeout Attribute format is shown below.
  1742. The fields are transmitted from left to right.
  1743. 0 1 2 3
  1744. 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
  1745. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  1746. | Type | Length | Value
  1747. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  1748. Value (cont) |
  1749. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  1750. Type
  1751. 27 for Session-Timeout.
  1752. Length
  1753. 6
  1754. Rigney, et al. Standards Track [Page 48]
  1755. RFC 2865 RADIUS June 2000
  1756. Value
  1757. The field is 4 octets, containing a 32-bit unsigned integer with
  1758. the maximum number of seconds this user should be allowed to
  1759. remain connected by the NAS.
  1760. 5.28. Idle-Timeout
  1761. Description
  1762. This Attribute sets the maximum number of consecutive seconds of
  1763. idle connection allowed to the user before termination of the
  1764. session or prompt. This Attribute is available to be sent by the
  1765. server to the client in an Access-Accept or Access-Challenge.
  1766. A summary of the Idle-Timeout Attribute format is shown below. The
  1767. fields are transmitted from left to right.
  1768. 0 1 2 3
  1769. 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
  1770. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  1771. | Type | Length | Value
  1772. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  1773. Value (cont) |
  1774. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  1775. Type
  1776. 28 for Idle-Timeout.
  1777. Length
  1778. 6
  1779. Value
  1780. The field is 4 octets, containing a 32-bit unsigned integer with
  1781. the maximum number of consecutive seconds of idle time this user
  1782. should be permitted before being disconnected by the NAS.
  1783. 5.29. Termination-Action
  1784. Description
  1785. This Attribute indicates what action the NAS should take when the
  1786. specified service is completed. It is only used in Access-Accept
  1787. packets.
  1788. Rigney, et al. Standards Track [Page 49]
  1789. RFC 2865 RADIUS June 2000
  1790. A summary of the Termination-Action Attribute format is shown below.
  1791. The fields are transmitted from left to right.
  1792. 0 1 2 3
  1793. 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
  1794. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  1795. | Type | Length | Value
  1796. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  1797. Value (cont) |
  1798. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  1799. Type
  1800. 29 for Termination-Action.
  1801. Length
  1802. 6
  1803. Value
  1804. The Value field is four octets.
  1805. 0 Default
  1806. 1 RADIUS-Request
  1807. If the Value is set to RADIUS-Request, upon termination of the
  1808. specified service the NAS MAY send a new Access-Request to the
  1809. RADIUS server, including the State attribute if any.
  1810. 5.30. Called-Station-Id
  1811. Description
  1812. This Attribute allows the NAS to send in the Access-Request packet
  1813. the phone number that the user called, using Dialed Number
  1814. Identification (DNIS) or similar technology. Note that this may
  1815. be different from the phone number the call comes in on. It is
  1816. only used in Access-Request packets.
  1817. A summary of the Called-Station-Id Attribute format is shown below.
  1818. The fields are transmitted from left to right.
  1819. 0 1 2
  1820. 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  1821. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
  1822. | Type | Length | String ...
  1823. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
  1824. Rigney, et al. Standards Track [Page 50]
  1825. RFC 2865 RADIUS June 2000
  1826. Type
  1827. 30 for Called-Station-Id.
  1828. Length
  1829. >= 3
  1830. String
  1831. The String field is one or more octets, containing the phone
  1832. number that the user's call came in on.
  1833. The actual format of the information is site or application
  1834. specific. UTF-8 encoded 10646 [7] characters are recommended, but
  1835. a robust implementation SHOULD support the field as
  1836. undistinguished octets.
  1837. The codification of the range of allowed usage of this field is
  1838. outside the scope of this specification.
  1839. 5.31. Calling-Station-Id
  1840. Description
  1841. This Attribute allows the NAS to send in the Access-Request packet
  1842. the phone number that the call came from, using Automatic Number
  1843. Identification (ANI) or similar technology. It is only used in
  1844. Access-Request packets.
  1845. A summary of the Calling-Station-Id Attribute format is shown below.
  1846. The fields are transmitted from left to right.
  1847. 0 1 2
  1848. 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  1849. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
  1850. | Type | Length | String ...
  1851. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
  1852. Type
  1853. 31 for Calling-Station-Id.
  1854. Length
  1855. >= 3
  1856. Rigney, et al. Standards Track [Page 51]
  1857. RFC 2865 RADIUS June 2000
  1858. String
  1859. The String field is one or more octets, containing the phone
  1860. number that the user placed the call from.
  1861. The actual format of the information is site or application
  1862. specific. UTF-8 encoded 10646 [7] characters are recommended, but
  1863. a robust implementation SHOULD support the field as
  1864. undistinguished octets.
  1865. The codification of the range of allowed usage of this field is
  1866. outside the scope of this specification.
  1867. 5.32. NAS-Identifier
  1868. Description
  1869. This Attribute contains a string identifying the NAS originating
  1870. the Access-Request. It is only used in Access-Request packets.
  1871. Either NAS-IP-Address or NAS-Identifier MUST be present in an
  1872. Access-Request packet.
  1873. Note that NAS-Identifier MUST NOT be used to select the shared
  1874. secret used to authenticate the request. The source IP address of
  1875. the Access-Request packet MUST be used to select the shared
  1876. secret.
  1877. A summary of the NAS-Identifier Attribute format is shown below. The
  1878. fields are transmitted from left to right.
  1879. 0 1 2
  1880. 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  1881. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
  1882. | Type | Length | String ...
  1883. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
  1884. Type
  1885. 32 for NAS-Identifier.
  1886. Length
  1887. >= 3
  1888. Rigney, et al. Standards Track [Page 52]
  1889. RFC 2865 RADIUS June 2000
  1890. String
  1891. The String field is one or more octets, and should be unique to
  1892. the NAS within the scope of the RADIUS server. For example, a
  1893. fully qualified domain name would be suitable as a NAS-Identifier.
  1894. The actual format of the information is site or application
  1895. specific, and a robust implementation SHOULD support the field as
  1896. undistinguished octets.
  1897. The codification of the range of allowed usage of this field is
  1898. outside the scope of this specification.
  1899. 5.33. Proxy-State
  1900. Description
  1901. This Attribute is available to be sent by a proxy server to
  1902. another server when forwarding an Access-Request and MUST be
  1903. returned unmodified in the Access-Accept, Access-Reject or
  1904. Access-Challenge. When the proxy server receives the response to
  1905. its request, it MUST remove its own Proxy-State (the last Proxy-
  1906. State in the packet) before forwarding the response to the NAS.
  1907. If a Proxy-State Attribute is added to a packet when forwarding
  1908. the packet, the Proxy-State Attribute MUST be added after any
  1909. existing Proxy-State attributes.
  1910. The content of any Proxy-State other than the one added by the
  1911. current server should be treated as opaque octets and MUST NOT
  1912. affect operation of the protocol.
  1913. Usage of the Proxy-State Attribute is implementation dependent. A
  1914. description of its function is outside the scope of this
  1915. specification.
  1916. A summary of the Proxy-State Attribute format is shown below. The
  1917. fields are transmitted from left to right.
  1918. 0 1 2
  1919. 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  1920. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
  1921. | Type | Length | String ...
  1922. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
  1923. Type
  1924. 33 for Proxy-State.
  1925. Rigney, et al. Standards Track [Page 53]
  1926. RFC 2865 RADIUS June 2000
  1927. Length
  1928. >= 3
  1929. String
  1930. The String field is one or more octets. The actual format of the
  1931. information is site or application specific, and a robust
  1932. implementation SHOULD support the field as undistinguished octets.
  1933. The codification of the range of allowed usage of this field is
  1934. outside the scope of this specification.
  1935. 5.34. Login-LAT-Service
  1936. Description
  1937. This Attribute indicates the system with which the user is to be
  1938. connected by LAT. It MAY be used in Access-Accept packets, but
  1939. only when LAT is specified as the Login-Service. It MAY be used
  1940. in an Access-Request packet as a hint to the server, but the
  1941. server is not required to honor the hint.
  1942. Administrators use the service attribute when dealing with
  1943. clustered systems, such as a VAX or Alpha cluster. In such an
  1944. environment several different time sharing hosts share the same
  1945. resources (disks, printers, etc.), and administrators often
  1946. configure each to offer access (service) to each of the shared
  1947. resources. In this case, each host in the cluster advertises its
  1948. services through LAT broadcasts.
  1949. Sophisticated users often know which service providers (machines)
  1950. are faster and tend to use a node name when initiating a LAT
  1951. connection. Alternately, some administrators want particular
  1952. users to use certain machines as a primitive form of load
  1953. balancing (although LAT knows how to do load balancing itself).
  1954. A summary of the Login-LAT-Service Attribute format is shown below.
  1955. The fields are transmitted from left to right.
  1956. 0 1 2
  1957. 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  1958. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
  1959. | Type | Length | String ...
  1960. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
  1961. Rigney, et al. Standards Track [Page 54]
  1962. RFC 2865 RADIUS June 2000
  1963. Type
  1964. 34 for Login-LAT-Service.
  1965. Length
  1966. >= 3
  1967. String
  1968. The String field is one or more octets, and contains the identity
  1969. of the LAT service to use. The LAT Architecture allows this
  1970. string to contain $ (dollar), - (hyphen), . (period), _
  1971. (underscore), numerics, upper and lower case alphabetics, and the
  1972. ISO Latin-1 character set extension [11]. All LAT string
  1973. comparisons are case insensitive.
  1974. 5.35. Login-LAT-Node
  1975. Description
  1976. This Attribute indicates the Node with which the user is to be
  1977. automatically connected by LAT. It MAY be used in Access-Accept
  1978. packets, but only when LAT is specified as the Login-Service. It
  1979. MAY be used in an Access-Request packet as a hint to the server,
  1980. but the server is not required to honor the hint.
  1981. A summary of the Login-LAT-Node Attribute format is shown below. The
  1982. fields are transmitted from left to right.
  1983. 0 1 2
  1984. 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  1985. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
  1986. | Type | Length | String ...
  1987. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
  1988. Type
  1989. 35 for Login-LAT-Node.
  1990. Length
  1991. >= 3
  1992. Rigney, et al. Standards Track [Page 55]
  1993. RFC 2865 RADIUS June 2000
  1994. String
  1995. The String field is one or more octets, and contains the identity
  1996. of the LAT Node to connect the user to. The LAT Architecture
  1997. allows this string to contain $ (dollar), - (hyphen), . (period),
  1998. _ (underscore), numerics, upper and lower case alphabetics, and
  1999. the ISO Latin-1 character set extension. All LAT string
  2000. comparisons are case insensitive.
  2001. 5.36. Login-LAT-Group
  2002. Description
  2003. This Attribute contains a string identifying the LAT group codes
  2004. which this user is authorized to use. It MAY be used in Access-
  2005. Accept packets, but only when LAT is specified as the Login-
  2006. Service. It MAY be used in an Access-Request packet as a hint to
  2007. the server, but the server is not required to honor the hint.
  2008. LAT supports 256 different group codes, which LAT uses as a form
  2009. of access rights. LAT encodes the group codes as a 256 bit
  2010. bitmap.
  2011. Administrators can assign one or more of the group code bits at
  2012. the LAT service provider; it will only accept LAT connections that
  2013. have these group codes set in the bit map. The administrators
  2014. assign a bitmap of authorized group codes to each user; LAT gets
  2015. these from the operating system, and uses these in its requests to
  2016. the service providers.
  2017. A summary of the Login-LAT-Group Attribute format is shown below.
  2018. The fields are transmitted from left to right.
  2019. 0 1 2
  2020. 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  2021. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
  2022. | Type | Length | String ...
  2023. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
  2024. Type
  2025. 36 for Login-LAT-Group.
  2026. Length
  2027. 34
  2028. Rigney, et al. Standards Track [Page 56]
  2029. RFC 2865 RADIUS June 2000
  2030. String
  2031. The String field is a 32 octet bit map, most significant octet
  2032. first. A robust implementation SHOULD support the field as
  2033. undistinguished octets.
  2034. The codification of the range of allowed usage of this field is
  2035. outside the scope of this specification.
  2036. 5.37. Framed-AppleTalk-Link
  2037. Description
  2038. This Attribute indicates the AppleTalk network number which should
  2039. be used for the serial link to the user, which is another
  2040. AppleTalk router. It is only used in Access-Accept packets. It
  2041. is never used when the user is not another router.
  2042. A summary of the Framed-AppleTalk-Link Attribute format is shown
  2043. below. The fields are transmitted from left to right.
  2044. 0 1 2 3
  2045. 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
  2046. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  2047. | Type | Length | Value
  2048. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  2049. Value (cont) |
  2050. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  2051. Type
  2052. 37 for Framed-AppleTalk-Link.
  2053. Length
  2054. 6
  2055. Value
  2056. The Value field is four octets. Despite the size of the field,
  2057. values range from 0 to 65535. The special value of 0 indicates
  2058. that this is an unnumbered serial link. A value of 1-65535 means
  2059. that the serial line between the NAS and the user should be
  2060. assigned that value as an AppleTalk network number.
  2061. Rigney, et al. Standards Track [Page 57]
  2062. RFC 2865 RADIUS June 2000
  2063. 5.38. Framed-AppleTalk-Network
  2064. Description
  2065. This Attribute indicates the AppleTalk Network number which the
  2066. NAS should probe to allocate an AppleTalk node for the user. It
  2067. is only used in Access-Accept packets. It is never used when the
  2068. user is another router. Multiple instances of this Attribute
  2069. indicate that the NAS may probe using any of the network numbers
  2070. specified.
  2071. A summary of the Framed-AppleTalk-Network Attribute format is shown
  2072. below. The fields are transmitted from left to right.
  2073. 0 1 2 3
  2074. 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
  2075. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  2076. | Type | Length | Value
  2077. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  2078. Value (cont) |
  2079. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  2080. Type
  2081. 38 for Framed-AppleTalk-Network.
  2082. Length
  2083. 6
  2084. Value
  2085. The Value field is four octets. Despite the size of the field,
  2086. values range from 0 to 65535. The special value 0 indicates that
  2087. the NAS should assign a network for the user, using its default
  2088. cable range. A value between 1 and 65535 (inclusive) indicates
  2089. the AppleTalk Network the NAS should probe to find an address for
  2090. the user.
  2091. 5.39. Framed-AppleTalk-Zone
  2092. Description
  2093. This Attribute indicates the AppleTalk Default Zone to be used for
  2094. this user. It is only used in Access-Accept packets. Multiple
  2095. instances of this attribute in the same packet are not allowed.
  2096. Rigney, et al. Standards Track [Page 58]
  2097. RFC 2865 RADIUS June 2000
  2098. A summary of the Framed-AppleTalk-Zone Attribute format is shown
  2099. below. The fields are transmitted from left to right.
  2100. 0 1 2
  2101. 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
  2102. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
  2103. | Type | Length | String ...
  2104. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
  2105. Type
  2106. 39 for Framed-AppleTalk-Zone.
  2107. Length
  2108. >= 3
  2109. String
  2110. The name of the Default AppleTalk Zone to be used for this user.
  2111. A robust implementation SHOULD support the field as
  2112. undistinguished octets.
  2113. The codification of the range of allowed usage of this field is
  2114. outside the scope of this specification.
  2115. 5.40. CHAP-Challenge
  2116. Description
  2117. This Attribute contains the CHAP Challenge sent by the NAS to a
  2118. PPP Challenge-Handshake Authentication Protocol (CHAP) user. It
  2119. is only used in Access-Request packets.
  2120. If the CHAP challenge value is 16 octets long it MAY be placed in
  2121. the Request Authenticator field instead of using this attribute.
  2122. A summary of the CHAP-Challenge Attribute format is shown below. The
  2123. fields are transmitted from left to right.
  2124. 0 1 2
  2125. 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3
  2126. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
  2127. | Type | Length | String...
  2128. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
  2129. Rigney, et al. Standards Track [Page 59]
  2130. RFC 2865 RADIUS June 2000
  2131. Type
  2132. 60 for CHAP-Challenge.
  2133. Length
  2134. >= 7
  2135. String
  2136. The String field contains the CHAP Challenge.
  2137. 5.41. NAS-Port-Type
  2138. Description
  2139. This Attribute indicates the type of the physical port of the NAS
  2140. which is authenticating the user. It can be used instead of or in
  2141. addition to the NAS-Port (5) attribute. It is only used in
  2142. Access-Request packets. Either NAS-Port (5) or NAS-Port-Type or
  2143. both SHOULD be present in an Access-Request packet, if the NAS
  2144. differentiates among its ports.
  2145. A summary of the NAS-Port-Type Attribute format is shown below. The
  2146. fields are transmitted from left to right.
  2147. 0 1 2 3
  2148. 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
  2149. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  2150. | Type | Length | Value
  2151. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  2152. Value (cont) |
  2153. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  2154. Type
  2155. 61 for NAS-Port-Type.
  2156. Length
  2157. 6
  2158. Value
  2159. The Value field is four octets. "Virtual" refers to a connection
  2160. to the NAS via some transport protocol, instead of through a
  2161. physical port. For example, if a user telnetted into a NAS to
  2162. Rigney, et al. Standards Track [Page 60]
  2163. RFC 2865 RADIUS June 2000
  2164. authenticate himself as an Outbound-User, the Access-Request might
  2165. include NAS-Port-Type = Virtual as a hint to the RADIUS server
  2166. that the user was not on a physical port.
  2167. 0 Async
  2168. 1 Sync
  2169. 2 ISDN Sync
  2170. 3 ISDN Async V.120
  2171. 4 ISDN Async V.110
  2172. 5 Virtual
  2173. 6 PIAFS
  2174. 7 HDLC Clear Channel
  2175. 8 X.25
  2176. 9 X.75
  2177. 10 G.3 Fax
  2178. 11 SDSL - Symmetric DSL
  2179. 12 ADSL-CAP - Asymmetric DSL, Carrierless Amplitude Phase
  2180. Modulation
  2181. 13 ADSL-DMT - Asymmetric DSL, Discrete Multi-Tone
  2182. 14 IDSL - ISDN Digital Subscriber Line
  2183. 15 Ethernet
  2184. 16 xDSL - Digital Subscriber Line of unknown type
  2185. 17 Cable
  2186. 18 Wireless - Other
  2187. 19 Wireless - IEEE 802.11
  2188. PIAFS is a form of wireless ISDN commonly used in Japan, and
  2189. stands for PHS (Personal Handyphone System) Internet Access Forum
  2190. Standard (PIAFS).
  2191. 5.42. Port-Limit
  2192. Description
  2193. This Attribute sets the maximum number of ports to be provided to
  2194. the user by the NAS. This Attribute MAY be sent by the server to
  2195. the client in an Access-Accept packet. It is intended for use in
  2196. conjunction with Multilink PPP [12] or similar uses. It MAY also
  2197. be sent by the NAS to the server as a hint that that many ports
  2198. are desired for use, but the server is not required to honor the
  2199. hint.
  2200. A summary of the Port-Limit Attribute format is shown below. The
  2201. fields are transmitted from left to right.
  2202. Rigney, et al. Standards Track [Page 61]
  2203. RFC 2865 RADIUS June 2000
  2204. 0 1 2 3
  2205. 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
  2206. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  2207. | Type | Length | Value
  2208. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  2209. Value (cont) |
  2210. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  2211. Type
  2212. 62 for Port-Limit.
  2213. Length
  2214. 6
  2215. Value
  2216. The field is 4 octets, containing a 32-bit unsigned integer with
  2217. the maximum number of ports this user should be allowed to connect
  2218. to on the NAS.
  2219. 5.43. Login-LAT-Port
  2220. Description
  2221. This Attribute indicates the Port with which the user is to be
  2222. connected by LAT. It MAY be used in Access-Accept packets, but
  2223. only when LAT is specified as the Login-Service. It MAY be used
  2224. in an Access-Request packet as a hint to the server, but the
  2225. server is not required to honor the hint.
  2226. A summary of the Login-LAT-Port Attribute format is shown below. The
  2227. fields are transmitted from left to right.
  2228. 0 1 2
  2229. 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  2230. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
  2231. | Type | Length | String ...
  2232. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
  2233. Type
  2234. 63 for Login-LAT-Port.
  2235. Length
  2236. >= 3
  2237. Rigney, et al. Standards Track [Page 62]
  2238. RFC 2865 RADIUS June 2000
  2239. String
  2240. The String field is one or more octets, and contains the identity
  2241. of the LAT port to use. The LAT Architecture allows this string
  2242. to contain $ (dollar), - (hyphen), . (period), _ (underscore),
  2243. numerics, upper and lower case alphabetics, and the ISO Latin-1
  2244. character set extension. All LAT string comparisons are case
  2245. insensitive.
  2246. 5.44. Table of Attributes
  2247. The following table provides a guide to which attributes may be found
  2248. in which kinds of packets, and in what quantity.
  2249. Request Accept Reject Challenge # Attribute
  2250. 0-1 0-1 0 0 1 User-Name
  2251. 0-1 0 0 0 2 User-Password [Note 1]
  2252. 0-1 0 0 0 3 CHAP-Password [Note 1]
  2253. 0-1 0 0 0 4 NAS-IP-Address [Note 2]
  2254. 0-1 0 0 0 5 NAS-Port
  2255. 0-1 0-1 0 0 6 Service-Type
  2256. 0-1 0-1 0 0 7 Framed-Protocol
  2257. 0-1 0-1 0 0 8 Framed-IP-Address
  2258. 0-1 0-1 0 0 9 Framed-IP-Netmask
  2259. 0 0-1 0 0 10 Framed-Routing
  2260. 0 0+ 0 0 11 Filter-Id
  2261. 0-1 0-1 0 0 12 Framed-MTU
  2262. 0+ 0+ 0 0 13 Framed-Compression
  2263. 0+ 0+ 0 0 14 Login-IP-Host
  2264. 0 0-1 0 0 15 Login-Service
  2265. 0 0-1 0 0 16 Login-TCP-Port
  2266. 0 0+ 0+ 0+ 18 Reply-Message
  2267. 0-1 0-1 0 0 19 Callback-Number
  2268. 0 0-1 0 0 20 Callback-Id
  2269. 0 0+ 0 0 22 Framed-Route
  2270. 0 0-1 0 0 23 Framed-IPX-Network
  2271. 0-1 0-1 0 0-1 24 State [Note 1]
  2272. 0 0+ 0 0 25 Class
  2273. 0+ 0+ 0 0+ 26 Vendor-Specific
  2274. 0 0-1 0 0-1 27 Session-Timeout
  2275. 0 0-1 0 0-1 28 Idle-Timeout
  2276. 0 0-1 0 0 29 Termination-Action
  2277. 0-1 0 0 0 30 Called-Station-Id
  2278. 0-1 0 0 0 31 Calling-Station-Id
  2279. 0-1 0 0 0 32 NAS-Identifier [Note 2]
  2280. 0+ 0+ 0+ 0+ 33 Proxy-State
  2281. 0-1 0-1 0 0 34 Login-LAT-Service
  2282. 0-1 0-1 0 0 35 Login-LAT-Node
  2283. Rigney, et al. Standards Track [Page 63]
  2284. RFC 2865 RADIUS June 2000
  2285. 0-1 0-1 0 0 36 Login-LAT-Group
  2286. 0 0-1 0 0 37 Framed-AppleTalk-Link
  2287. 0 0+ 0 0 38 Framed-AppleTalk-Network
  2288. 0 0-1 0 0 39 Framed-AppleTalk-Zone
  2289. 0-1 0 0 0 60 CHAP-Challenge
  2290. 0-1 0 0 0 61 NAS-Port-Type
  2291. 0-1 0-1 0 0 62 Port-Limit
  2292. 0-1 0-1 0 0 63 Login-LAT-Port
  2293. Request Accept Reject Challenge # Attribute
  2294. [Note 1] An Access-Request MUST contain either a User-Password or a
  2295. CHAP-Password or State. An Access-Request MUST NOT contain both a
  2296. User-Password and a CHAP-Password. If future extensions allow other
  2297. kinds of authentication information to be conveyed, the attribute for
  2298. that can be used in an Access-Request instead of User-Password or
  2299. CHAP-Password.
  2300. [Note 2] An Access-Request MUST contain either a NAS-IP-Address or a
  2301. NAS-Identifier (or both).
  2302. The following table defines the meaning of the above table entries.
  2303. 0 This attribute MUST NOT be present in packet.
  2304. 0+ Zero or more instances of this attribute MAY be present in packet.
  2305. 0-1 Zero or one instance of this attribute MAY be present in packet.
  2306. 1 Exactly one instance of this attribute MUST be present in packet.
  2307. 6. IANA Considerations
  2308. This section provides guidance to the Internet Assigned Numbers
  2309. Authority (IANA) regarding registration of values related to the
  2310. RADIUS protocol, in accordance with BCP 26 [13].
  2311. There are three name spaces in RADIUS that require registration:
  2312. Packet Type Codes, Attribute Types, and Attribute Values (for certain
  2313. Attributes).
  2314. RADIUS is not intended as a general-purpose Network Access Server
  2315. (NAS) management protocol, and allocations should not be made for
  2316. purposes unrelated to Authentication, Authorization or Accounting.
  2317. 6.1. Definition of Terms
  2318. The following terms are used here with the meanings defined in
  2319. BCP 26: "name space", "assigned value", "registration".
  2320. Rigney, et al. Standards Track [Page 64]
  2321. RFC 2865 RADIUS June 2000
  2322. The following policies are used here with the meanings defined in
  2323. BCP 26: "Private Use", "First Come First Served", "Expert Review",
  2324. "Specification Required", "IETF Consensus", "Standards Action".
  2325. 6.2. Recommended Registration Policies
  2326. For registration requests where a Designated Expert should be
  2327. consulted, the IESG Area Director for Operations should appoint the
  2328. Designated Expert.
  2329. For registration requests requiring Expert Review, the ietf-radius
  2330. mailing list should be consulted.
  2331. Packet Type Codes have a range from 1 to 254, of which 1-5,11-13 have
  2332. been allocated. Because a new Packet Type has considerable impact on
  2333. interoperability, a new Packet Type Code requires Standards Action,
  2334. and should be allocated starting at 14.
  2335. Attribute Types have a range from 1 to 255, and are the scarcest
  2336. resource in RADIUS, thus must be allocated with care. Attributes
  2337. 1-53,55,60-88,90-91 have been allocated, with 17 and 21 available for
  2338. re-use. Attributes 17, 21, 54, 56-59, 89, 92-191 may be allocated
  2339. following Expert Review, with Specification Required. Release of
  2340. blocks of Attribute Types (more than 3 at a time for a given purpose)
  2341. should require IETF Consensus. It is recommended that attributes 17
  2342. and 21 be used only after all others are exhausted.
  2343. Note that RADIUS defines a mechanism for Vendor-Specific extensions
  2344. (Attribute 26) and the use of that should be encouraged instead of
  2345. allocation of global attribute types, for functions specific only to
  2346. one vendor's implementation of RADIUS, where no interoperability is
  2347. deemed useful.
  2348. As stated in the "Attributes" section above:
  2349. "[Attribute Type] Values 192-223 are reserved for experimental
  2350. use, values 224-240 are reserved for implementation-specific use,
  2351. and values 241-255 are reserved and should not be used."
  2352. Therefore Attribute values 192-240 are considered Private Use, and
  2353. values 241-255 require Standards Action.
  2354. Certain attributes (for example, NAS-Port-Type) in RADIUS define a
  2355. list of values to correspond with various meanings. There can be 4
  2356. billion (2^32) values for each attribute. Adding additional values to
  2357. the list can be done on a First Come, First Served basis by the IANA.
  2358. Rigney, et al. Standards Track [Page 65]
  2359. RFC 2865 RADIUS June 2000
  2360. 7. Examples
  2361. A few examples are presented to illustrate the flow of packets and
  2362. use of typical attributes. These examples are not intended to be
  2363. exhaustive, many others are possible. Hexadecimal dumps of the
  2364. example packets are given in network byte order, using the shared
  2365. secret "xyzzy5461".
  2366. 7.1. User Telnet to Specified Host
  2367. The NAS at 192.168.1.16 sends an Access-Request UDP packet to the
  2368. RADIUS Server for a user named nemo logging in on port 3 with
  2369. password "arctangent".
  2370. The Request Authenticator is a 16 octet random number generated by
  2371. the NAS.
  2372. The User-Password is 16 octets of password padded at end with nulls,
  2373. XORed with MD5(shared secret|Request Authenticator).
  2374. 01 00 00 38 0f 40 3f 94 73 97 80 57 bd 83 d5 cb
  2375. 98 f4 22 7a 01 06 6e 65 6d 6f 02 12 0d be 70 8d
  2376. 93 d4 13 ce 31 96 e4 3f 78 2a 0a ee 04 06 c0 a8
  2377. 01 10 05 06 00 00 00 03
  2378. 1 Code = Access-Request (1)
  2379. 1 ID = 0
  2380. 2 Length = 56
  2381. 16 Request Authenticator
  2382. Attributes:
  2383. 6 User-Name = "nemo"
  2384. 18 User-Password
  2385. 6 NAS-IP-Address = 192.168.1.16
  2386. 6 NAS-Port = 3
  2387. The RADIUS server authenticates nemo, and sends an Access-Accept UDP
  2388. packet to the NAS telling it to telnet nemo to host 192.168.1.3.
  2389. The Response Authenticator is a 16-octet MD5 checksum of the code
  2390. (2), id (0), Length (38), the Request Authenticator from above, the
  2391. attributes in this reply, and the shared secret.
  2392. Rigney, et al. Standards Track [Page 66]
  2393. RFC 2865 RADIUS June 2000
  2394. 02 00 00 26 86 fe 22 0e 76 24 ba 2a 10 05 f6 bf
  2395. 9b 55 e0 b2 06 06 00 00 00 01 0f 06 00 00 00 00
  2396. 0e 06 c0 a8 01 03
  2397. 1 Code = Access-Accept (2)
  2398. 1 ID = 0 (same as in Access-Request)
  2399. 2 Length = 38
  2400. 16 Response Authenticator
  2401. Attributes:
  2402. 6 Service-Type (6) = Login (1)
  2403. 6 Login-Service (15) = Telnet (0)
  2404. 6 Login-IP-Host (14) = 192.168.1.3
  2405. 7.2. Framed User Authenticating with CHAP
  2406. The NAS at 192.168.1.16 sends an Access-Request UDP packet to the
  2407. RADIUS Server for a user named flopsy logging in on port 20 with PPP,
  2408. authenticating using CHAP. The NAS sends along the Service-Type and
  2409. Framed-Protocol attributes as a hint to the RADIUS server that this
  2410. user is looking for PPP, although the NAS is not required to do so.
  2411. The Request Authenticator is a 16 octet random number generated by
  2412. the NAS, and is also used as the CHAP Challenge.
  2413. The CHAP-Password consists of a 1 octet CHAP ID, in this case 22,
  2414. followed by the 16 octet CHAP response.
  2415. 01 01 00 47 2a ee 86 f0 8d 0d 55 96 9c a5 97 8e
  2416. 0d 33 67 a2 01 08 66 6c 6f 70 73 79 03 13 16 e9
  2417. 75 57 c3 16 18 58 95 f2 93 ff 63 44 07 72 75 04
  2418. 06 c0 a8 01 10 05 06 00 00 00 14 06 06 00 00 00
  2419. 02 07 06 00 00 00 01
  2420. 1 Code = 1 (Access-Request)
  2421. 1 ID = 1
  2422. 2 Length = 71
  2423. 16 Request Authenticator
  2424. Attributes:
  2425. 8 User-Name (1) = "flopsy"
  2426. 19 CHAP-Password (3)
  2427. 6 NAS-IP-Address (4) = 192.168.1.16
  2428. 6 NAS-Port (5) = 20
  2429. 6 Service-Type (6) = Framed (2)
  2430. 6 Framed-Protocol (7) = PPP (1)
  2431. Rigney, et al. Standards Track [Page 67]
  2432. RFC 2865 RADIUS June 2000
  2433. The RADIUS server authenticates flopsy, and sends an Access-Accept
  2434. UDP packet to the NAS telling it to start PPP service and assign an
  2435. address for the user out of its dynamic address pool.
  2436. The Response Authenticator is a 16-octet MD5 checksum of the code
  2437. (2), id (1), Length (56), the Request Authenticator from above, the
  2438. attributes in this reply, and the shared secret.
  2439. 02 01 00 38 15 ef bc 7d ab 26 cf a3 dc 34 d9 c0
  2440. 3c 86 01 a4 06 06 00 00 00 02 07 06 00 00 00 01
  2441. 08 06 ff ff ff fe 0a 06 00 00 00 02 0d 06 00 00
  2442. 00 01 0c 06 00 00 05 dc
  2443. 1 Code = Access-Accept (2)
  2444. 1 ID = 1 (same as in Access-Request)
  2445. 2 Length = 56
  2446. 16 Response Authenticator
  2447. Attributes:
  2448. 6 Service-Type (6) = Framed (2)
  2449. 6 Framed-Protocol (7) = PPP (1)
  2450. 6 Framed-IP-Address (8) = 255.255.255.254
  2451. 6 Framed-Routing (10) = None (0)
  2452. 6 Framed-Compression (13) = VJ TCP/IP Header Compression (1)
  2453. 6 Framed-MTU (12) = 1500
  2454. 7.3. User with Challenge-Response card
  2455. The NAS at 192.168.1.16 sends an Access-Request UDP packet to the
  2456. RADIUS Server for a user named mopsy logging in on port 7. The user
  2457. enters the dummy password "challenge" in this example. The challenge
  2458. and response generated by the smart card for this example are
  2459. "32769430" and "99101462".
  2460. The Request Authenticator is a 16 octet random number generated by
  2461. the NAS.
  2462. The User-Password is 16 octets of password, in this case "challenge",
  2463. padded at the end with nulls, XORed with MD5(shared secret|Request
  2464. Authenticator).
  2465. 01 02 00 39 f3 a4 7a 1f 6a 6d 76 71 0b 94 7a b9
  2466. 30 41 a0 39 01 07 6d 6f 70 73 79 02 12 33 65 75
  2467. 73 77 82 89 b5 70 88 5e 15 08 48 25 c5 04 06 c0
  2468. a8 01 10 05 06 00 00 00 07
  2469. Rigney, et al. Standards Track [Page 68]
  2470. RFC 2865 RADIUS June 2000
  2471. 1 Code = Access-Request (1)
  2472. 1 ID = 2
  2473. 2 Length = 57
  2474. 16 Request Authenticator
  2475. Attributes:
  2476. 7 User-Name (1) = "mopsy"
  2477. 18 User-Password (2)
  2478. 6 NAS-IP-Address (4) = 192.168.1.16
  2479. 6 NAS-Port (5) = 7
  2480. The RADIUS server decides to challenge mopsy, sending back a
  2481. challenge string and looking for a response. The RADIUS server
  2482. therefore and sends an Access-Challenge UDP packet to the NAS.
  2483. The Response Authenticator is a 16-octet MD5 checksum of the code
  2484. (11), id (2), length (78), the Request Authenticator from above, the
  2485. attributes in this reply, and the shared secret.
  2486. The Reply-Message is "Challenge 32769430. Enter response at prompt."
  2487. The State is a magic cookie to be returned along with user's
  2488. response; in this example 8 octets of data (33 32 37 36 39 34 33 30
  2489. in hex).
  2490. 0b 02 00 4e 36 f3 c8 76 4a e8 c7 11 57 40 3c 0c
  2491. 71 ff 9c 45 12 30 43 68 61 6c 6c 65 6e 67 65 20
  2492. 33 32 37 36 39 34 33 30 2e 20 20 45 6e 74 65 72
  2493. 20 72 65 73 70 6f 6e 73 65 20 61 74 20 70 72 6f
  2494. 6d 70 74 2e 18 0a 33 32 37 36 39 34 33 30
  2495. 1 Code = Access-Challenge (11)
  2496. 1 ID = 2 (same as in Access-Request)
  2497. 2 Length = 78
  2498. 16 Response Authenticator
  2499. Attributes:
  2500. 48 Reply-Message (18)
  2501. 10 State (24)
  2502. The user enters his response, and the NAS send a new Access-Request
  2503. with that response, and includes the State Attribute.
  2504. The Request Authenticator is a new 16 octet random number.
  2505. The User-Password is 16 octets of the user's response, in this case
  2506. "99101462", padded at the end with nulls, XORed with MD5(shared
  2507. secret|Request Authenticator).
  2508. Rigney, et al. Standards Track [Page 69]
  2509. RFC 2865 RADIUS June 2000
  2510. The state is the magic cookie from the Access-Challenge packet,
  2511. unchanged.
  2512. 01 03 00 43 b1 22 55 6d 42 8a 13 d0 d6 25 38 07
  2513. c4 57 ec f0 01 07 6d 6f 70 73 79 02 12 69 2c 1f
  2514. 20 5f c0 81 b9 19 b9 51 95 f5 61 a5 81 04 06 c0
  2515. a8 01 10 05 06 00 00 00 07 18 10 33 32 37 36 39
  2516. 34 33 30
  2517. 1 Code = Access-Request (1)
  2518. 1 ID = 3 (Note that this changes.)
  2519. 2 Length = 67
  2520. 16 Request Authenticator
  2521. Attributes:
  2522. 7 User-Name = "mopsy"
  2523. 18 User-Password
  2524. 6 NAS-IP-Address (4) = 192.168.1.16
  2525. 6 NAS-Port (5) = 7
  2526. 10 State (24)
  2527. The Response was incorrect (for the sake of example), so the RADIUS
  2528. server tells the NAS to reject the login attempt.
  2529. The Response Authenticator is a 16 octet MD5 checksum of the code
  2530. (3), id (3), length(20), the Request Authenticator from above, the
  2531. attributes in this reply (in this case, none), and the shared secret.
  2532. 03 03 00 14 a4 2f 4f ca 45 91 6c 4e 09 c8 34 0f
  2533. 9e 74 6a a0
  2534. 1 Code = Access-Reject (3)
  2535. 1 ID = 3 (same as in Access-Request)
  2536. 2 Length = 20
  2537. 16 Response Authenticator
  2538. Attributes:
  2539. (none, although a Reply-Message could be sent)
  2540. Rigney, et al. Standards Track [Page 70]
  2541. RFC 2865 RADIUS June 2000
  2542. 8. Security Considerations
  2543. Security issues are the primary topic of this document.
  2544. In practice, within or associated with each RADIUS server, there is a
  2545. database which associates "user" names with authentication
  2546. information ("secrets"). It is not anticipated that a particular
  2547. named user would be authenticated by multiple methods. This would
  2548. make the user vulnerable to attacks which negotiate the least secure
  2549. method from among a set. Instead, for each named user there should
  2550. be an indication of exactly one method used to authenticate that user
  2551. name. If a user needs to make use of different authentication
  2552. methods under different circumstances, then distinct user names
  2553. SHOULD be employed, each of which identifies exactly one
  2554. authentication method.
  2555. Passwords and other secrets should be stored at the respective ends
  2556. such that access to them is as limited as possible. Ideally, the
  2557. secrets should only be accessible to the process requiring access in
  2558. order to perform the authentication.
  2559. The secrets should be distributed with a mechanism that limits the
  2560. number of entities that handle (and thus gain knowledge of) the
  2561. secret. Ideally, no unauthorized person should ever gain knowledge
  2562. of the secrets. It is possible to achieve this with SNMP Security
  2563. Protocols [14], but such a mechanism is outside the scope of this
  2564. specification.
  2565. Other distribution methods are currently undergoing research and
  2566. experimentation. The SNMP Security document [14] also has an
  2567. excellent overview of threats to network protocols.
  2568. The User-Password hiding mechanism described in Section 5.2 has not
  2569. been subjected to significant amounts of cryptanalysis in the
  2570. published literature. Some in the IETF community are concerned that
  2571. this method might not provide sufficient confidentiality protection
  2572. [15] to passwords transmitted using RADIUS. Users should evaluate
  2573. their threat environment and consider whether additional security
  2574. mechanisms should be employed.
  2575. 9. Change Log
  2576. The following changes have been made from RFC 2138:
  2577. Strings should use UTF-8 instead of US-ASCII and should be handled as
  2578. 8-bit data.
  2579. Integers and dates are now defined as 32 bit unsigned values.
  2580. Rigney, et al. Standards Track [Page 71]
  2581. RFC 2865 RADIUS June 2000
  2582. Updated list of attributes that can be included in Access-Challenge
  2583. to be consistent with the table of attributes.
  2584. User-Name mentions Network Access Identifiers.
  2585. User-Name may now be sent in Access-Accept for use with accounting
  2586. and Rlogin.
  2587. Values added for Service-Type, Login-Service, Framed-Protocol,
  2588. Framed-Compression, and NAS-Port-Type.
  2589. NAS-Port can now use all 32 bits.
  2590. Examples now include hexadecimal displays of the packets.
  2591. Source UDP port must be used in conjunction with the Request
  2592. Identifier when identifying duplicates.
  2593. Multiple subattributes may be allowed in a Vendor-Specific attribute.
  2594. An Access-Request is now required to contain either a NAS-IP-Address
  2595. or NAS-Identifier (or may contain both).
  2596. Added notes under "Operations" with more information on proxy,
  2597. retransmissions, and keep-alives.
  2598. If multiple Attributes with the same Type are present, the order of
  2599. Attributes with the same Type MUST be preserved by any proxies.
  2600. Clarified Proxy-State.
  2601. Clarified that Attributes must not depend on position within the
  2602. packet, as long as Attributes of the same type are kept in order.
  2603. Added IANA Considerations section.
  2604. Updated section on "Proxy" under "Operations".
  2605. Framed-MTU can now be sent in Access-Request as a hint.
  2606. Updated Security Considerations.
  2607. Text strings identified as a subset of string, to clarify use of
  2608. UTF-8.
  2609. Rigney, et al. Standards Track [Page 72]
  2610. RFC 2865 RADIUS June 2000
  2611. 10. References
  2612. [1] Rigney, C., Rubens, A., Simpson, W. and S. Willens, "Remote
  2613. Authentication Dial In User Service (RADIUS)", RFC 2138, April
  2614. 1997.
  2615. [2] Bradner, S., "Key words for use in RFCs to Indicate Requirement
  2616. Levels", BCP 14, RFC 2119, March, 1997.
  2617. [3] Rivest, R. and S. Dusse, "The MD5 Message-Digest Algorithm",
  2618. RFC 1321, April 1992.
  2619. [4] Postel, J., "User Datagram Protocol", STD 6, RFC 768, August
  2620. 1980.
  2621. [5] Rigney, C., "RADIUS Accounting", RFC 2866, June 2000.
  2622. [6] Reynolds, J. and J. Postel, "Assigned Numbers", STD 2, RFC
  2623. 1700, October 1994.
  2624. [7] Yergeau, F., "UTF-8, a transformation format of ISO 10646", RFC
  2625. 2279, January 1998.
  2626. [8] Aboba, B. and M. Beadles, "The Network Access Identifier", RFC
  2627. 2486, January 1999.
  2628. [9] Kaufman, C., Perlman, R., and Speciner, M., "Network Security:
  2629. Private Communications in a Public World", Prentice Hall, March
  2630. 1995, ISBN 0-13-061466-1.
  2631. [10] Jacobson, V., "Compressing TCP/IP headers for low-speed serial
  2632. links", RFC 1144, February 1990.
  2633. [11] ISO 8859. International Standard -- Information Processing --
  2634. 8-bit Single-Byte Coded Graphic Character Sets -- Part 1: Latin
  2635. Alphabet No. 1, ISO 8859-1:1987.
  2636. [12] Sklower, K., Lloyd, B., McGregor, G., Carr, D. and T.
  2637. Coradetti, "The PPP Multilink Protocol (MP)", RFC 1990, August
  2638. 1996.
  2639. [13] Alvestrand, H. and T. Narten, "Guidelines for Writing an IANA
  2640. Considerations Section in RFCs", BCP 26, RFC 2434, October
  2641. 1998.
  2642. [14] Galvin, J., McCloghrie, K. and J. Davin, "SNMP Security
  2643. Protocols", RFC 1352, July 1992.
  2644. Rigney, et al. Standards Track [Page 73]
  2645. RFC 2865 RADIUS June 2000
  2646. [15] Dobbertin, H., "The Status of MD5 After a Recent Attack",
  2647. CryptoBytes Vol.2 No.2, Summer 1996.
  2648. 11. Acknowledgements
  2649. RADIUS was originally developed by Steve Willens of Livingston
  2650. Enterprises for their PortMaster series of Network Access Servers.
  2651. 12. Chair's Address
  2652. The working group can be contacted via the current chair:
  2653. Carl Rigney
  2654. Livingston Enterprises
  2655. 4464 Willow Road
  2656. Pleasanton, California 94588
  2657. Phone: +1 925 737 2100
  2658. EMail: cdr@telemancy.com
  2659. Rigney, et al. Standards Track [Page 74]
  2660. RFC 2865 RADIUS June 2000
  2661. 13. Authors' Addresses
  2662. Questions about this memo can also be directed to:
  2663. Carl Rigney
  2664. Livingston Enterprises
  2665. 4464 Willow Road
  2666. Pleasanton, California 94588
  2667. Phone: +1 925 737 2100
  2668. EMail: cdr@telemancy.com
  2669. Allan C. Rubens
  2670. Merit Network, Inc.
  2671. 4251 Plymouth Road
  2672. Ann Arbor, Michigan 48105-2785
  2673. EMail: acr@merit.edu
  2674. William Allen Simpson
  2675. Daydreamer
  2676. Computer Systems Consulting Services
  2677. 1384 Fontaine
  2678. Madison Heights, Michigan 48071
  2679. EMail: wsimpson@greendragon.com
  2680. Steve Willens
  2681. Livingston Enterprises
  2682. 4464 Willow Road
  2683. Pleasanton, California 94588
  2684. EMail: steve@livingston.com
  2685. Rigney, et al. Standards Track [Page 75]
  2686. RFC 2865 RADIUS June 2000
  2687. 14. Full Copyright Statement
  2688. Copyright (C) The Internet Society (2000). All Rights Reserved.
  2689. This document and translations of it may be copied and furnished to
  2690. others, and derivative works that comment on or otherwise explain it
  2691. or assist in its implementation may be prepared, copied, published
  2692. and distributed, in whole or in part, without restriction of any
  2693. kind, provided that the above copyright notice and this paragraph are
  2694. included on all such copies and derivative works. However, this
  2695. document itself may not be modified in any way, such as by removing
  2696. the copyright notice or references to the Internet Society or other
  2697. Internet organizations, except as needed for the purpose of
  2698. developing Internet standards in which case the procedures for
  2699. copyrights defined in the Internet Standards process must be
  2700. followed, or as required to translate it into languages other than
  2701. English.
  2702. The limited permissions granted above are perpetual and will not be
  2703. revoked by the Internet Society or its successors or assigns.
  2704. This document and the information contained herein is provided on an
  2705. "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
  2706. TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
  2707. BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
  2708. HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
  2709. MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
  2710. Acknowledgement
  2711. Funding for the RFC Editor function is currently provided by the
  2712. Internet Society.
  2713. Rigney, et al. Standards Track [Page 76]