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-03.txt < prev    next >
Text File  |  1997-09-10  |  47KB  |  1,052 lines

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