home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1997 December / Internet_Info_CD-ROM_Walnut_Creek_December_1997.iso / drafts / draft_ietf_q_t / draft-ietf-roamops-auth-02.txt < prev    next >
Text File  |  1997-07-23  |  40KB  |  988 lines

  1.  
  2.  
  3.  
  4.      ROAMOPS Working Group                                    Bernard Aboba
  5.      INTERNET-DRAFT                                   Microsoft Corporation
  6.      Category: Standards Track                           John R. Vollbrecht
  7.      <draft-ietf-roamops-auth-02.txt >                 Merit Networks, Inc.
  8.      21 July 1997                                                 Glen Zorn
  9.                                                                   Microsoft
  10.  
  11.  
  12.         Guidelines for the Secure Operation of RADIUS Proxies in Roaming
  13.  
  14.  
  15.      1.  Status of this Memo
  16.  
  17.      This document is an Internet-Draft.  Internet-Drafts are working docu-
  18.      ments of the Internet Engineering Task Force (IETF),  its  areas,  and
  19.      its  working groups.  Note that other groups may also distribute work-
  20.      ing documents as Internet-Drafts.
  21.  
  22.      Internet-Drafts are draft documents valid for a maximum of six  months
  23.      and  may  be updated, replaced, or obsoleted by other documents at any
  24.      time.  It is inappropriate to use Internet-Drafts as  reference  mate-
  25.      rial or to cite them other than as "work in progress."
  26.  
  27.      To  learn  the  current status of any Internet-Draft, please check the
  28.      "1id-abstracts.txt" listing contained in  the  Internet-Drafts  Shadow
  29.      Directories   on   ds.internic.net   (US  East  Coast),  nic.nordu.net
  30.      (Europe), ftp.isi.edu (US West Coast), or munnari.oz.au (Pacific Rim).
  31.  
  32.      The  distribution  of  this memo is unlimited.  It is filed as <draft-
  33.      ietf-roamops-auth-02.txt>, and  expires February 1, 1998.  Please send
  34.      comments to the authors.
  35.  
  36.  
  37.      2.  Abstract
  38.  
  39.      Today,  RADIUS  proxy  chaining is widely deployed for the purposes of
  40.      providing roaming services. This document provides guidelines for  the
  41.      secure operation of RADIUS proxies within roaming systems.
  42.  
  43.  
  44.      2.1.  Terminology
  45.  
  46.      This document frequently uses the following terms:
  47.  
  48.      Network Access Server
  49.                The  Network  Access Server (NAS) is the device that clients
  50.                contact in order to get access to the network.
  51.  
  52.      RADIUS server
  53.                This is a server which  provides  for  authentication/autho-
  54.                rization via the protocol described in [3], and for account-
  55.                ing as described in [4].
  56.  
  57.  
  58.  
  59.  
  60.  
  61.      Aboba, Vollbrecht & Zorn                                      [Page 1]
  62.  
  63.  
  64.  
  65.  
  66.  
  67.      INTERNET-DRAFT                                            21 July 1997
  68.  
  69.  
  70.      RADIUS proxy
  71.                In order to provide for the routing of RADIUS authentication
  72.                and  accounting requests, a RADIUS proxy can be employed. To
  73.                the NAS, the RADIUS proxy appears to act as a RADIUS server,
  74.                and  to  the  RADIUS  server,  the proxy appears to act as a
  75.                RADIUS client.
  76.  
  77.      Network Access Identifier
  78.                In order to provide for the routing of RADIUS authentication
  79.                and accounting requests, the userID field used in PPP (known
  80.                as the Network Access Identifier or NAI) and in  the  subse-
  81.                quent  RADIUS  authentication  and  accounting requests, can
  82.                contain structure. This structure provides a means by  which
  83.                the  RADIUS  proxy  will locate the RADIUS server that is to
  84.                receive the request.
  85.  
  86.      Roaming relationships
  87.                Roaming relationships include relationships  between  compa-
  88.                nies  and ISPs, relationships among peer ISPs within a roam-
  89.                ing association, and relationships  between  an  ISP  and  a
  90.                roaming  consortia. Together, the set of relationships form-
  91.                ing a path between a local ISP's  authentication  proxy  and
  92.                the home authentication server is known as the roaming rela-
  93.                tionship path.
  94.  
  95.  
  96.      3.  Introduction
  97.  
  98.      Today, as described in [1], RADIUS proxy chaining is  widely  deployed
  99.      for  the  purposes  of  providing  roaming  services. In such systems,
  100.      RADIUS authentication and accounting packets are routed between a  NAS
  101.      device  and  a  home RADIUS server through a series of RADIUS proxies.
  102.      The purpose of this document is to provide guidelines for  the  secure
  103.      operation of such systems.
  104.  
  105.      An example of such a proxy chaining system is shown below.
  106.  
  107.            (request)          (request)          (request)
  108.        NAS ----------> Proxy1 ----------> Proxy2 ----------> Home RADIUS
  109.            (reply)            (reply)            (reply)     Server
  110.            <---------         <---------         <---------
  111.  
  112.      In  the above diagram, the NAS generates a RADIUS request and sends it
  113.      to Proxy1.  Proxy1 forwards the request to Proxy2 and Proxy2  forwards
  114.      the request to the Home Server.  The Home Server generates a reply and
  115.      returns it to Proxy2.  Proxy2 receives the reply, matches it with  the
  116.      request  it  had sent, and forwards a reply to Proxy1.  Proxy1 matches
  117.      the reply with the request it sent earlier and forwards a reply to the
  118.      NAS.   This  model  applies  to  all RADIUS requests, including Access
  119.      Requests and Accounting Requests.
  120.  
  121.      RADIUS proxies implementing policy MAY send a reply without forwarding
  122.      the  request.  An  example of this would be when the proxy refuses all
  123.      connections from a particular realm during prime time.  In  this  case
  124.  
  125.  
  126.  
  127.      Aboba, Vollbrecht & Zorn                                      [Page 2]
  128.  
  129.  
  130.  
  131.  
  132.  
  133.      INTERNET-DRAFT                                            21 July 1997
  134.  
  135.  
  136.      the  home server will never receive the Access-Request. This situation
  137.      is shown below:
  138.  
  139.  
  140.            (request)          (request)
  141.        NAS ----------> Proxy1 ----------> Proxy2             Home RADIUS
  142.            (reply)            (reply)                        Server
  143.            <---------         <---------
  144.  
  145.  
  146.      The proxy SHOULD reply directly only to Access-Requests and SHOULD NOT
  147.      reply  directly  to  Accounting-Requests. When replying directly to an
  148.      Access-Request, the proxy MUST reply either with an  Access-Reject  or
  149.      an  Access-Challenge  packet.  A  RADIUS proxy MUST NOT reply directly
  150.      with an Access-Accept.
  151.  
  152.      A proxy forwarding a request SHOULD NOT send  a  reply  to  a  request
  153.      until  it  has  received  a reply from the server or proxy to which it
  154.      sent the corresponding request.  The effect of this is  that  the  NAS
  155.      will  never  see a reply which was not initiated by the home server. A
  156.      less pleasant consequence is that the delay between request and  reply
  157.      at the NAS will be longer than if the reply were "faked" by a proxy.
  158.  
  159.      A  proxy  MAY decide to Reject a Request that has been accepted by the
  160.      home server.  This could be based on the set of attributes returned by
  161.      the  home server.  In this case the Proxy SHOULD send an Access-Reject
  162.      to the NAS and an Accounting message with  Acct-Status-Type=Proxy-Stop
  163.      to  the  home server.  This lets the Home Server know that the Session
  164.      it approved has been denied downstream by the Proxy. However, a  proxy
  165.      MUST  NOT  send an Access-Accept after receiving an Access-Reject from
  166.      the home server.
  167.  
  168.  
  169.            (AccReq)           (AccReq)            (AccReq)
  170.        NAS ----------> Proxy1 ----------> Proxy2 ----------> Home RADIUS
  171.            (AccRejct)         (AccAccpt)          (AccAccpt) Server
  172.            <---------         <---------          <---------
  173.                               (AcctPxStop)        (AcctPxStop)
  174.                                ---------->         ---------->
  175.  
  176.  
  177.      Home servers SHOULD insert a unique session identifier  in  the  Class
  178.      attribute in an Access-Accept and Access-Challenge.  Proxies and NASes
  179.      MUST forward the Class attribute.  The  NAS  MUST  include  the  Class
  180.      attribute  in  subsequent  requests,  in  particular  for  Accounting-
  181.      Requests.
  182.  
  183.      The Class attribute can be used  to  match  accounting  requests  with
  184.      prior  access  requests.   It  can  also  be used to match session log
  185.      records between the home Server, proxies, and NAS.
  186.  
  187.      The sequence of events is shown below:
  188.  
  189.            -------->         -------->          --------->
  190.  
  191.  
  192.  
  193.      Aboba, Vollbrecht & Zorn                                      [Page 3]
  194.  
  195.  
  196.  
  197.  
  198.  
  199.      INTERNET-DRAFT                                            21 July 1997
  200.  
  201.  
  202.       NAS            Proxy1              Proxy2             Home (add class)
  203.           <-class--          <-class-           <-class--
  204.  
  205.  
  206.      In RADIUS proxy chaining, the forwarding function is carried out based
  207.      on  the  realm portion of the Network Access Identifier (NAI), defined
  208.      in [9]. While the mechanism by which the path is selected is implemen-
  209.      tation  dependent,  existing implementations typically use static for-
  210.      warding tables set in their configuration files.
  211.  
  212.      While the RADIUS protocol described  in   [3]  does  not  provide  for
  213.      authentication  of  Access-Requests,  such  authentication is possible
  214.      using the Signature attribute described in [5].  Proxies MUST  include
  215.      the Signature attribute in all Access-Requests.  Since the RADIUS pro-
  216.      tocol, described in [3], does support authentication  of  Access-Reply
  217.      packets, the Signature attribute is not required in an Access-Reply.
  218.  
  219.  
  220.      4.  Trust models
  221.  
  222.      In  conventional  ISP  application,  the NAS, RADIUS proxy, and RADIUS
  223.      server typically exist within a single  administrative  entity.  As  a
  224.      result,  the  RADUS  proxy  and  RADIUS server may be considered to be
  225.      trusted components.
  226.  
  227.      However, in a roaming system implemented with proxy chaining, the NAS,
  228.      RADIUS proxies, and RADIUS server may be managed by different adminis-
  229.      trative entities. Through the use of shared secrets it is possible for
  230.      RADIUS  proxies  operating  in  different domains to establish a trust
  231.      relationship. However, since RADIUS packets are only authenticated  on
  232.      a hop-by-hop basis, proxy chaining systems deployed in roaming operate
  233.      without end-to-end authentication. This means  that  in  such  systems
  234.      security is only as strong as the weakest link in the proxy chain.
  235.  
  236.      Among  other  things,  this  implies  that it is advisable to keep the
  237.      chain as short as possible. To date, as  described  in  [1],  existing
  238.      roaming  implementations have been limited in scale, forwarding RADIUS
  239.      packets over a maximum of two hops, or  implementing  star  configura-
  240.      tions  with  all  systems  connecting to a single trusted entity. Such
  241.      configurations minimize trust issues.
  242.  
  243.  
  244.      5.  Security issues
  245.  
  246.      Since current roaming implementations operate in more than  150  coun-
  247.      tries  and service millions of users, it is critical that RADIUS proxy
  248.      chaining implementations be secure. In particular, protection must  be
  249.      provided against the following attacks:
  250.  
  251.         Theft of passwords
  252.         Replay attacks
  253.         Attribute editing
  254.         Connection hijacking
  255.         Authentication routing attacks
  256.  
  257.  
  258.  
  259.      Aboba, Vollbrecht & Zorn                                      [Page 4]
  260.  
  261.  
  262.  
  263.  
  264.  
  265.      INTERNET-DRAFT                                            21 July 1997
  266.  
  267.  
  268.         Fraudulent accounting records
  269.  
  270.  
  271.      5.1.  Theft of passwords
  272.  
  273.      In  the  case  where clients authenticate using PAP, each RADIUS proxy
  274.      along the path between the local NAS and the home RADIUS  server  will
  275.      have  access  to  the  cleartext password. In many circumstances, this
  276.      represents an unacceptable security risk, and as a result, it is  rec-
  277.      ommended  that PAP SHOULD NOT be used in roaming. A possible exception
  278.      to this recommendation occurs in situations where PAP is used in order
  279.      to pass a one time password or token.
  280.  
  281.  
  282.      5.2.  Replay attacks
  283.  
  284.      In  this  attack,  a  man in the middle or rogue RADIUS proxy collects
  285.      CHAP-Challenge and CHAP-Response attributes, and later  replays  them.
  286.      If this attack is performed in collaboration with an unscrupulous ISP,
  287.      it can be used to subsequently submit fraudulent accounting records to
  288.      the  accounting  agent  for payment.  The system performing the replay
  289.      need not necessarily be the one that initially captured the CHAP Chal-
  290.      lenge/Response pair.
  291.  
  292.      While  such  an  attack  has always been possible, without roaming the
  293.      threat is restricted to RADIUS proxies operating in the home  server's
  294.      domain.  With  roaming,  such  an  attack can be mounted by any RADIUS
  295.      proxy capable of reaching the home RADIUS server.
  296.  
  297.      In order to detect replay attacks,  RADIUS  servers  used  in  roaming
  298.      SHOULD  keep  a  log  of CHAP challenges, so as to allow the log to be
  299.      checked for replays.
  300.  
  301.      CHAP replay attacks can be defeated by means of  an  end-to-end  chal-
  302.      lenge-response  exchange.   For  example,  if  the  home RADIUS server
  303.      returns  an  Access-Challenge  packet  containing   a   CHAP-Challenge
  304.      attribute  and maintains state with respect to outstanding challenges,
  305.      replay attacks will not work.
  306.  
  307.      However, it should also be noted that end-to-end challenges (as  prac-
  308.      ticed  within  the EAP MD5 authentication method, or in the CHAP-Chal-
  309.      lenge method described above) are subject to attacks by  rogue  RADIUS
  310.      proxies.  In  such an attack a RADIUS proxy substitutes a static chal-
  311.      lenge for the challenge sent by the home RADIUS server, and on receiv-
  312.      ing  the  response,  checks  it  against a databases of hashes applied
  313.      against a dictionary.
  314.  
  315.      Use of the CHAP and PAP authentication methods may be avoided entirely
  316.      by instructing the PPP authenticating peer to refuse these authentica-
  317.      tion methods if offered.
  318.  
  319.  
  320.  
  321.  
  322.  
  323.  
  324.  
  325.      Aboba, Vollbrecht & Zorn                                      [Page 5]
  326.  
  327.  
  328.  
  329.  
  330.  
  331.      INTERNET-DRAFT                                            21 July 1997
  332.  
  333.  
  334.      5.3.  Attribute editing
  335.  
  336.      In this attack, a RADIUS proxy modifies an Access-Accept sent  by  the
  337.      RADIUS server so as to lessen the security obtained by the client. For
  338.      example, EAP attributes might be removed or modified so as to cause  a
  339.      client  to  authenticate  with  EAP  MD5 or PAP, instead of a stronger
  340.      authentication  method.  Alternatively,  tunnel  attributes  might  be
  341.      removed or modified so as to remove encryption, redirect the tunnel to
  342.      a rogue tunnel server, or otherwise lessen the  security  provided  to
  343.      the client.
  344.  
  345.      In  order  to  prevent inappropriate modification of RADIUS attributes
  346.      the table in Appendix A describe what attributes may be added, edited,
  347.      deleted, or processed by authentication and accounting proxies.
  348.  
  349.      Inappropriate  attribute  editing need not occur du to acts of malice.
  350.      The vast majority of such problems are likely to result  from  miscon-
  351.      figuration  of RADIUS proxies. In fact, it is expected that as roaming
  352.      grows  in  popularity,  attribute   editing   problems   will   become
  353.      widespread.  This is likely since several proxy implementations remove
  354.      attributes that they do not understand, or can be set  up  to  replace
  355.      attribute  sets  sent  in  the  Access-Accept  with sets of attributes
  356.      appropriate for a particular network.
  357.  
  358.      Since RADIUS only provides for hop-by-hop authentication,  it  is  not
  359.      possible  to provide end-to-end integrity checks within proxy chaining
  360.      systems. However, in order to provide for detection  of  inappropriate
  361.      attribute editing, local RADIUS proxies and home RADIUS servers SHOULD
  362.      implement auditing functionality.
  363.  
  364.      For example, the local RADIUS proxy SHOULD include  RADIUS  attributes
  365.      received in the Access-Accept within the session record or Accounting-
  366.      Start message for the session.  Similarly, home RADIUS servers  SHOULD
  367.      log  the  contents  of RADIUS Access-Replies sent, and SHOULD periodi-
  368.      cally check  for  discrepancies  between  attributes  sent  in  RADIUS
  369.      Access-Replies, and attributes received by local proxies.  In order to
  370.      prevent  intermediate  proxies  from  modifying  accounting   records,
  371.      accounting  records  SHOULD  NOT  travel the same path taken by RADIUS
  372.      authentication. Instead, accounting records SHOULD  be  sent  directly
  373.      between  the  local  proxy  and  the  systems  requiring copies of the
  374.      accounting records.
  375.  
  376.  
  377.      5.4.  Connection hijacking
  378.  
  379.      In this form of attack, the attacker attempts to inject  packets  into
  380.      the conversation between the NAS and the home RADIUS server. RADIUS as
  381.      described in [3] is vulnerable to such attacks since only Access-Reply
  382.      and Access-Challenge packets are authenticated.
  383.  
  384.      In  order  to  provide  for  authentication of Access-Request packets,
  385.      RADIUS proxies operating in roaming systems MUST support the Signature
  386.      attribute,  as  decribed in [9]. RADIUS proxies used in roaming imple-
  387.      mentations MUST check for the presence of the Signature  attribute  in
  388.  
  389.  
  390.  
  391.      Aboba, Vollbrecht & Zorn                                      [Page 6]
  392.  
  393.  
  394.  
  395.  
  396.  
  397.      INTERNET-DRAFT                                            21 July 1997
  398.  
  399.  
  400.      Access-Requests  forwarded  to  them  from  other  proxies,  and  MUST
  401.      silently  discard  Access-Request  packets   missing   the   Signature
  402.      attribute or failing authentication. RADIUS proxies operating in roam-
  403.      ing systems also MUST include a Signature attribute in  all  forwarded
  404.      Access-Request packets.
  405.  
  406.  
  407.      5.5.  Authentication routing attacks
  408.  
  409.      In  roaming,  one  of  the  functions  of the RADIUS proxy is to route
  410.      authentications  between  domains.   Authentication  routing   attacks
  411.      affect  the core of a roaming system by modifying authentication rout-
  412.      ing information, thus disabling the system or causing  RADIUS  packets
  413.      to be routed inappropriately.
  414.  
  415.      Since  to  date  roaming  has  been  implemented on a relatively small
  416.      scale, existing implementations perform authentication  routing  based
  417.      on  local  knowledge  expressed  in proxy configuration files. To date
  418.      implementations have not found a need for dynamic  routing  protocols,
  419.      or propagation of global routing information.
  420.  
  421.      Since  authentication routing information is fundamental to the opera-
  422.      tional of a roaming system, routing information SHOULD  be  propagated
  423.      using  an  transfer  method  supporting mutual authentication, such as
  424.      Kerberized rcp, SSH or TLS.
  425.  
  426.      Since all RADIUS packets used in  roaming  are  secured  by  a  shared
  427.      secret,  such attacks will not rsult in more than a denial of service,
  428.      as long as the attacker did not also obtain the shared secrets.
  429.  
  430.      As with attribute editing, it is expected that most problems  of  this
  431.      type  will result from misconfiguration of RADIUS proxies. In order to
  432.      detect such misconfigurations, RADIUS proxies participating in roaming
  433.      MUST   implement  the  Route  attribute  described  below.  The  Route
  434.      attribute provides trace route and/or source route capabilities.  This
  435.      allows  a  local  RADIUS  proxy  to  specify  a route through which an
  436.      Access-Request must travel, or for a home RADIUS server  to  determine
  437.      whether  to  authorize Access-Requests routed on a given roaming rela-
  438.      tionship path.
  439.  
  440.      A RADIUS proxy receiving a Route attribute with the Trace  option  set
  441.      MUST append the domain of the system from which it received the packet
  442.      to the end of the Route attribute prior to forwarding it.
  443.  
  444.  
  445.      5.6.  Fraudulent accounting records
  446.  
  447.      In this form of attack, a  local  RADIUS  proxy  transmits  fraudulent
  448.      accounting  packets  or  session records to the accounting agent in an
  449.      effort to collect fees to which they are not entitled.
  450.  
  451.      In order to detect submission of fraudulent accounting records  by  an
  452.      unscrupulous  ISP,  the  the  accounting gateway SHOULD send copies of
  453.      session records to all  parties  with  a  financial  interest  in  the
  454.  
  455.  
  456.  
  457.      Aboba, Vollbrecht & Zorn                                      [Page 7]
  458.  
  459.  
  460.  
  461.  
  462.  
  463.      INTERNET-DRAFT                                            21 July 1997
  464.  
  465.  
  466.      session.   Parties  receiving  copies  of these session records SHOULD
  467.      reconcile them with logs of proxied authentications.
  468.  
  469.      In order to make it easier to match RADIUS  authentication  logs  with
  470.      accounting  records, RADIUS servers involved in roaming SHOULD include
  471.      a Class attribute in the Access-Accept.  The  Class  attribute  should
  472.      uniquely  identify  a  session,  so  as to allow an authentication log
  473.      entry to be matched with a corresponding accounting record.
  474.  
  475.      In order to be able to  match accounting records with logs of  proxied
  476.      RADIUS authentications, accounting agents SHOULD require that they act
  477.      as an authentication proxy for all sessions for  which  an  accounting
  478.      record will subsequently be submitted.
  479.  
  480.  
  481.      6.  Proposed RADIUS attributes for use in roaming
  482.  
  483.  
  484.  
  485.      6.1.  Route
  486.  
  487.      Description
  488.  
  489.         In a roaming implementation based on proxy chaining, RADIUS packets
  490.         are routed between the NAS and RADIUS server through  a  series  of
  491.         RADIUS proxies.  This attribute allows for the authentication route
  492.         taken by a RADIUS Access-Request, Access-Challenge, or Access-Reply
  493.         packet  to  be  recorded within the packet, or alternatively, for a
  494.         source-route to be specified. RADIUS proxies receiving  an  Access-
  495.         Request message with a Source-Route attribute MUST either honor the
  496.         attribute or return an Access-Reject.
  497.  
  498.         A summary of the Route attribute format is shown below.  The fields
  499.         are transmitted from left to right.
  500.  
  501.         0                   1                   2                   3
  502.         0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2
  503.         +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  504.         |      Type     |    Length     |    Flags      |   String
  505.         +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  506.         |      String...
  507.         +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  508.  
  509.         Type
  510.  
  511.            ? for Route
  512.  
  513.         Length
  514.  
  515.            >=3
  516.  
  517.         Flags
  518.  
  519.            The  Flags  field  indicates  the  intended purpose of the Route
  520.  
  521.  
  522.  
  523.      Aboba, Vollbrecht & Zorn                                      [Page 8]
  524.  
  525.  
  526.  
  527.  
  528.  
  529.      INTERNET-DRAFT                                            21 July 1997
  530.  
  531.  
  532.            attribute:
  533.            0
  534.            0 1 2 3 4 5 6 7 8
  535.            +-+-+-+-+-+-+-+-+
  536.            |T S L D R R R R|
  537.            +-+-+-+-+-+-+-+-+
  538.  
  539.            T = Trace. If T=1, then the string represents a trace route request, and
  540.                a RADIUS proxy receiving a Route option set MUST append the domain of
  541.                system from which it received the packet to the end of the Route
  542.                prior to forwarding it.
  543.            S = Source route. If S=1 then the string field represents a source route.
  544.            L = Loose. If L=1 and S=1, then the string field represents a loose
  545.                source route. If L=0 and S=1, then the route represents a strict source
  546.                route. The combinations S=0, L=1 and T=1, S=1 are not permitted.
  547.            R = Reserved.
  548.            D = Direction. If D=1, the Route attribute is relevant to an Access-Request or
  549.                Accounting-Request packet; if D=0, the Route attribute is relevant to an
  550.                Access-Reply, Access-Challenge or Accounting-Reply packet.
  551.  
  552.         String
  553.  
  554.            The String field includes the route, which is represented  as  a
  555.            series of domains separated by the "/" character. For example, a
  556.            valid source route is ispb.com/ispgroup.com/ispa.com/bigco.com/.
  557.  
  558.            If trace routing is used, then a RADIUS proxy receiving a packet
  559.            from another proxy MUST append the domain of the sender onto the
  560.            end  of  the  Route attribute, prior to forwarding it. Note that
  561.            the Route attribute is represented as a domain path, NOT a  path
  562.            comprised of the IP addresses or fully qualified domain names of
  563.            the RADIUS proxies themselves. Thus, it is expected that  RADIUS
  564.            proxies  implementing the Route attribute will be able to trans-
  565.            late the IP address of the sending proxy  into  the  appropriate
  566.            domain  for use in the Route attribute. This is typically accom-
  567.            plished through proxy configuration files.
  568.  
  569.            Since a single RADIUS  attribute  may  only  be  253  octets  in
  570.            length,  if  the  Route attribute is larger than this, it may be
  571.            necessary  to  split  the   contents   across   multiple   Route
  572.            attributes.  In  order  to permit Route attributes to exceed 253
  573.            octets, Route attributes with  identical  values  of  the  Flags
  574.            field are to be concatenated prior to interpretation.
  575.  
  576.            However,  Route  attributes  with  different values of the Flags
  577.            field MUST NOT be concatenated, since it is possible for  multi-
  578.            ple  Route  attributes to be required within a packet. For exam-
  579.            ple, it is possible for a packet to contain one Route  attribute
  580.            with  T=1,S=0  indicating  a  trace  request,  and another Route
  581.            attribute with T=0, S=1, L=1, indicating the presence of a Loose
  582.            Source route. In this case, a Loose Source Route is presented at
  583.            the same time that it is requested  that  the  actual  route  be
  584.            recorded and returned.
  585.  
  586.  
  587.  
  588.  
  589.      Aboba, Vollbrecht & Zorn                                      [Page 9]
  590.  
  591.  
  592.  
  593.  
  594.  
  595.      INTERNET-DRAFT                                            21 July 1997
  596.  
  597.  
  598.      7.  Appendix A: Allowable Proxy Behavior
  599.  
  600.      Proxies  MAY  interpret attributes they receive and MAY add attributes
  601.      to Access-Request,  Access-Reply,  Access-Challenge,  and  Accounting-
  602.      Request  messages, as described below. Proxies MUST maintain attribute
  603.      order when forwarding. A Proxy that adds attributes MUST  precede  the
  604.      additional attributes with a "Proxy-State" attribute containing as its
  605.      leading string the IP-Address of the Proxy.
  606.  
  607.      A Proxy may need to translate some attributes to support a  particular
  608.      service.  Translation should be done only to support a common service,
  609.      and only at the Proxy closest to the NAS.  Translation could  be  done
  610.      to  support a common set of IP filters on NASs from different vendors.
  611.  
  612.      A local proxy (a proxy downstream from  a  NAS)  MAY  edit  or  delete
  613.      attributes  within Access-Requests, as provided below. An intermediate
  614.      proxy (a proxy downstream from  another  proxy)  SHOULD  NOT  edit  or
  615.      delete  attributes  when forwarding Access-Requests. Local proxies MAY
  616.      edit or delete attributes in an Access-Reply, as  provided  below,  if
  617.      the  downstream  server  is  a NAS which is not able to interpret some
  618.      attributes. Intermediate proxies SHOULD NOT edit or delete  attributes
  619.      in an Access-Reply.
  620.  
  621.                   AUTHENTICATION
  622.  
  623.      Request   Accept   Reject   Challenge   #    Attribute
  624.      E                           A            1   User-Name [note 1]
  625.      PD                                       2   User-Password [note 2]
  626.      A                                        3   CHAP-Password [note 2]
  627.      AED                                      4   NAS-IP-Address
  628.      AED                                      5   NAS-Port
  629.      AE        AE                             6   Service-Type
  630.      AE        AE                             7   Framed-Protocol
  631.      AED       AED                            8   Framed-IP-Address
  632.      AED       AED                            9   Framed-IP-Netmask
  633.                AED                           10   Framed-Routing
  634.                AE                            11   Filter-Id
  635.                AED                           12   Framed-MTU
  636.      AED       AED                           13   Framed-Compression
  637.      AE        AE                            14   Login-IP-Host
  638.                AE                            15   Login-Service
  639.                AE                            16   Login-TCP-Port
  640.                AE       AE       AE          18   Reply-Message
  641.      AE        AE                            19   Callback-Number [note 3]
  642.                A                             20   Callback-Id
  643.                AED                           22   Framed-Route
  644.                AED                           23   Framed-IPX-Network
  645.      AE        AE                AE          24   State
  646.                AE                            25   Class
  647.      AED       AED               AED         26   Vendor-Specific
  648.                AE                AE          27   Session-Timeout
  649.                AE                AE          28   Idle-Timeout
  650.                AE                            29   Termination-Action
  651.      AE                                      30   Called-Station-Id [note 3]
  652.  
  653.  
  654.  
  655.      Aboba, Vollbrecht & Zorn                                     [Page 10]
  656.  
  657.  
  658.  
  659.  
  660.  
  661.      INTERNET-DRAFT                                            21 July 1997
  662.  
  663.  
  664.      AED                                     31   Calling-Station-Id [note 4]
  665.      AED                                     32   NAS-Identifier
  666.      AP        AP       AP       AP          33   Proxy-State
  667.      AE        AE                            34   Login-LAT-Service
  668.      AE        AE                            35   Login-LAT-Node
  669.      AE        AE                            36   Login-LAT-Group
  670.                AE                            37   Framed-AppleTalk-Link
  671.                AED                           38   Framed-AppleTalk-Network
  672.                AED                           39   Framed-AppleTalk-Zone
  673.                                              60   CHAP-Challenge
  674.      AE                                      61   NAS-Port-Type
  675.      AE        AE                            62   Port-Limit
  676.      AE        AE                            63   Login-LAT-Port
  677.                                              64   Tunnel-Type
  678.                                              65   Tunnel-Medium-Type
  679.                                              67   Tunnel-Server-Endpoint
  680.                P                             69   Tunnel-Password
  681.      AP                                      70   ARAP-Password
  682.                AE                AE          71   ARAP-Features
  683.                AE                            72   ARAP-Zone-Access
  684.      A                           A           73   ARAP-Security
  685.      A                           A           74   ARAP-Security-Data
  686.                         ED                   75   Password-Retry
  687.                                  AE          76   Prompt
  688.                                              77   Connect-Info
  689.                AED                           78   Configuration-Token
  690.                                              79   EAP-Message
  691.      AP                                      80   Signature
  692.      Request   Accept   Reject   Challenge   #    Attribute
  693.  
  694.      1.  A  proxy  may strip the realm from the User-Name, so as to provide
  695.      compatibiltiy with proxies that cannot handle this.
  696.  
  697.      2. Use of PAP is considered undesirable in roaming, since each  RADIUS
  698.      proxy  handling  the  Access-Request will have access to the cleartext
  699.      password. As a result, if the user uses PAP to authenticate  with  the
  700.      NAS, and the NAS sends the User-Password to the proxy (secure network)
  701.      the proxy may convert it to CHAP before sending it to the home  server
  702.      (insecure  network). In some situations this would be desirable (fewer
  703.      proxies would have access to the password), and in others it would  be
  704.      undesirable (the home NAS has no way to know that it was only PAP that
  705.      was done).
  706.  
  707.  
  708.      3. A proxy may edit these attributes in order to make them  more  spe-
  709.      cific.  For  example, the proxy might need to change Callback-Number =
  710.      "7771111" to Callback-Number = "5107771111".
  711.  
  712.      4. A proxy may wish to delete the Calling-Station-ID so as to  protect
  713.      the privacy of the caller. As with note 2 above, this attribute may be
  714.      edited to make it more specific.
  715.  
  716.             ACCOUNTING
  717.  
  718.  
  719.  
  720.  
  721.      Aboba, Vollbrecht & Zorn                                     [Page 11]
  722.  
  723.  
  724.  
  725.  
  726.  
  727.      INTERNET-DRAFT                                            21 July 1997
  728.  
  729.  
  730.      Request      Reply         #    Attribute
  731.                                 1   User-Name
  732.                                 2   User-Password
  733.                                 3   CHAP-Password
  734.      AE                         4   NAS-IP-Address
  735.      AE                         5   NAS-Port
  736.      AE                         6   Service-Type
  737.      AE                         7   Framed-Protocol
  738.      AED                        8   Framed-IP-Address
  739.      AED                        9   Framed-IP-Netmask
  740.      AED                       10   Framed-Routing
  741.      AE                        11   Filter-Id
  742.      AED                       12   Framed-MTU
  743.      AED                       13   Framed-Compression
  744.      AE                        14   Login-IP-Host
  745.      AE                        15   Login-Service
  746.      AE                        16   Login-TCP-Port
  747.                                18   Reply-Message
  748.      A                         19   Callback-Number
  749.      A                         20   Callback-Id
  750.      AED                       22   Framed-Route
  751.      AED                       23   Framed-IPX-Network
  752.                                24   State
  753.      AE                        25   Class
  754.      AED                       26   Vendor-Specific
  755.      AE                        27   Session-Timeout
  756.      AE                        28   Idle-Timeout
  757.      AE                        29   Termination-Action
  758.      AED                       30   Called-Station-Id
  759.      AED                       31   Calling-Station-Id
  760.      AED                       32   NAS-Identifier
  761.      AP                        33   Proxy-State
  762.      AE                        34   Login-LAT-Service
  763.      AE                        35   Login-LAT-Node
  764.      AE                        36   Login-LAT-Group
  765.      AE                        37   Framed-AppleTalk-Link
  766.      AED                       38   Framed-AppleTalk-Network
  767.      AED                       39   Framed-AppleTalk-Zone
  768.                                40   Acct-Status-Type
  769.                                41   Acct-Delay-Time [note 1]
  770.                                42   Acct-Input-Octets
  771.                                43   Acct-Output-Octets
  772.      E                         44   Acct-Session-Id [note 2]
  773.                                45   Acct-Authentic
  774.                                46   Acct-Session-Time
  775.                                47   Acct-Input-Packets
  776.                                48   Acct-Output-Packets
  777.                                49   Acct-Terminate-Cause
  778.      E                         50   Acct-Multi-Session-Id [note 2]
  779.                                51   Acct-Link-Count
  780.                                60   CHAP-Challenge
  781.      AE                        61   NAS-Port-Type
  782.      AE                        62   Port-Limit
  783.      AE                        63   Login-LAT-Port
  784.  
  785.  
  786.  
  787.      Aboba, Vollbrecht & Zorn                                     [Page 12]
  788.  
  789.  
  790.  
  791.  
  792.  
  793.      INTERNET-DRAFT                                            21 July 1997
  794.  
  795.  
  796.                                64   Tunnel-Type
  797.                                65   Tunnel-Medium-Type
  798.                                66   Acct-Tunnel-Client-Endpoint
  799.                                67   Tunnel-Server-Endpoint
  800.                                68   Acct-Tunnel-Connection-ID
  801.                                69   Tunnel-Password
  802.                                70   ARAP-Password
  803.      AE                        71   ARAP-Features
  804.      AE                        72   ARAP-Zone-Access
  805.      A                         73   ARAP-Security
  806.      A                         74   ARAP-Security-Data
  807.      ED                        75   Password-Retry
  808.                                76   Prompt
  809.                                77   Connect-Info
  810.                                78   Configuration-Token
  811.                                79   EAP-Message
  812.                                80   Signature
  813.      Accounting  Accounting
  814.      Request      Reply         #    Attribute
  815.  
  816.      1. If the proxy can calculate the additional delay it is  introducing,
  817.      it should increment this.
  818.  
  819.      2. The proxy may need to modify the NAS identification to hide private
  820.      network information.  In that case, it may forward packets with itself
  821.      as  the  NAS,  and  will  need to construct an Acct-Session-Id that is
  822.      guaranteed to be unique. For example, if the proxy gets  packets  from
  823.      16 NASs, session '3478617' on the 11th NAS might be given the new ses-
  824.      sion ID 'A3478617'.
  825.  
  826.  
  827.      The following table defines the meaning of the above table entries.
  828.  
  829.      A     This attribute MAY be added
  830.      E     This attribute MAY be edited. Editing is defined as a change
  831.            beyond that required in hop-by-hop processing as described
  832.            in [3]-[5].
  833.      D     This attribute MAY be deleted.
  834.      P     This attribute MUST be processed as described in [3]-[5].
  835.  
  836.  
  837.  
  838.      8.  Acknowledgments
  839.  
  840.      Thanks to Pat Calhoun of  3COM,  Mark  Beadles  of  CompuServe,  Aydin
  841.      Edguer  of  Morningstar,  and  Steven P. Crain of Shore.Net for useful
  842.      discussions of this problem space.
  843.  
  844.  
  845.      9.  References
  846.  
  847.      [1]  B. Aboba, J. Lu, J. Alsop, J. Ding, W. Wang.  "Review of  Roaming
  848.      Implementations."  Internet  draft  (work  in  progress),  draft-ietf-
  849.      roamops-imprev-04.txt, Microsoft, Aimnet, i-Pass  Alliance,  Asiainfo,
  850.  
  851.  
  852.  
  853.      Aboba, Vollbrecht & Zorn                                     [Page 13]
  854.  
  855.  
  856.  
  857.  
  858.  
  859.      INTERNET-DRAFT                                            21 July 1997
  860.  
  861.  
  862.      Merit, June, 1997.
  863.  
  864.      [2]   B.  Aboba,  G.  Zorn.   "Dialing Roaming Requirements." Internet
  865.      draft   (work   in    progress),    draft-ietf-roamops-roamreq-04.txt,
  866.      Microsoft, June, 1997.
  867.  
  868.      [3]   C. Rigney, A. Rubens, W. Simpson, S. Willens.  "Remote Authenti-
  869.      cation Dial In User Service (RADIUS)." RFC  2058,  Livingston,  Merit,
  870.      Daydreamer, January, 1997.
  871.  
  872.      [4]   C.  Rigney.  "RADIUS Accounting." RFC 2059, Livingston, January,
  873.      1997.
  874.  
  875.      [5] C. Rigney, W. Willats.  "RADIUS Extensions." Internet draft  (work
  876.      in progress), draft-ietf-radius-ext-00.txt, Livingston, January, 1997.
  877.  
  878.      [6] R. Fielding, et al.  "Hypertext Transfer Protocol - HTTP/1.1." RFC
  879.      2068, UC Irvine, January, 1997.
  880.  
  881.      [7]  R.  Rivest,  S.  Dusse.   "The MD5 Message-Digest Algorithm", RFC
  882.      1321, MIT Laboratory for Computer Science,  RSA  Data  Security  Inc.,
  883.      April 1992.
  884.  
  885.      [8]  S.  Bradner.   "Key words for use in RFCs to Indicate Requirement
  886.      Levels."  RFC 2119, Harvard University, March, 1997.
  887.  
  888.      [9]  B. Aboba.  "The Network Access Identifier." Internet draft  (work
  889.      in progress), draft-ietf-roamops-nai-06.txt, Microsoft, July 1997.
  890.  
  891.  
  892.      10.  Authors' Addresses
  893.  
  894.      Bernard Aboba
  895.      Microsoft Corporation
  896.      One Microsoft Way
  897.      Redmond, WA 98052
  898.  
  899.      Phone: 425-936-6605
  900.      EMail: bernarda@microsoft.com
  901.  
  902.      John R. Vollbrecht
  903.      Merit Network, Inc.
  904.      4251 Plymouth Rd.
  905.      Ann Arbor, MI 48105-2785
  906.  
  907.      Phone: 313-763-1206
  908.      EMail: jrv@merit.edu
  909.  
  910.      Glen Zorn
  911.      Microsoft Corporation
  912.      One Microsoft Way
  913.      Redmond, WA 98052
  914.  
  915.      Phone: 425-703-1559
  916.  
  917.  
  918.  
  919.      Aboba, Vollbrecht & Zorn                                     [Page 14]
  920.  
  921.  
  922.  
  923.  
  924.  
  925.      INTERNET-DRAFT                                            21 July 1997
  926.  
  927.  
  928.      EMail: glennz@microsoft.com
  929.  
  930.  
  931.  
  932.  
  933.  
  934.  
  935.  
  936.  
  937.  
  938.  
  939.  
  940.  
  941.  
  942.  
  943.  
  944.  
  945.  
  946.  
  947.  
  948.  
  949.  
  950.  
  951.  
  952.  
  953.  
  954.  
  955.  
  956.  
  957.  
  958.  
  959.  
  960.  
  961.  
  962.  
  963.  
  964.  
  965.  
  966.  
  967.  
  968.  
  969.  
  970.  
  971.  
  972.  
  973.  
  974.  
  975.  
  976.  
  977.  
  978.  
  979.  
  980.  
  981.  
  982.  
  983.  
  984.  
  985.      Aboba, Vollbrecht & Zorn                                     [Page 15]
  986.  
  987.  
  988.