ROAMOPS Working Group                                    Bernard Aboba
     INTERNET-DRAFT                                   Microsoft Corporation
     Category: Standards Track                                 Dave Lidyard
     <draft-ietf-roamops-actng-03.txt>           Telco Research Corporation
     28 July 1997                                        John R. Vollbrecht
                                                        Merit Network, Inc.
     
     
     
                      Session Record Accounting in Roaming
     
     
     1.  Status of this Memo
     
     This document is an Internet-Draft.  Internet-Drafts are working docu-
     ments of the Internet Engineering Task Force (IETF),  its  areas,  and
     its  working groups.  Note that other groups may also distribute work-
     ing documents as Internet-Drafts.
     
     Internet-Drafts are draft documents valid for a maximum of six  months
     and  may  be updated, replaced, or obsoleted by other documents at any
     time.  It is inappropriate to use Internet-Drafts as  reference  mate-
     rial or to cite them other than as ``work in progress.''
     
     To  learn  the  current status of any Internet-Draft, please check the
     ``1id-abstracts.txt'' listing contained in the Internet-Drafts  Shadow
     Directories   on   ds.internic.net   (US  East  Coast),  nic.nordu.net
     (Europe), ftp.isi.edu (US West Coast), or munnari.oz.au (Pacific Rim).
     
     The  distribution  of  this memo is unlimited.  It is filed as <draft-
     ietf-roamops-actng-03.txt>, and  expires  February  1,  1998.   Please
     send comments to the authors.
     
     2.  Abstract
     
     This  document  describes  the  problems  arising  in  session  record
     accounting in roaming systems,  and  proposes  a  standard  accounting
     record format.
     
     
     3.  Introduction
     
     As  detailed  in  [2],  solution  of the accounting problem in roaming
     requires several elements to be put in place:
     
        1. Mechanisms for real-time accounting should be provided in  order
        to  support  those  ISPs  who use these mechanisms for simultaneous
        session control, fraud detection, and risk management.
     
        2. A standardized accounting record  format  must  be  provided  in
        order  to  allow ISPs to communicate session accounting information
        to the roaming consortia as well as to each other.
     
     Mechanisms for  real-time  accounting  are  addressed  in  [24].  This
     
     
     
     Aboba, Lidyard & Vollbrecht                                   [Page 1]


     INTERNET-DRAFT                                            28 July 1997
     
     
     document concentrates on issues relating to session record accounting.
     
     
     3.1.  Terminology
     
     This document frequently uses the following terms:
     
     Network Access Server
               The Network Access Server (NAS) is the device  that  clients
               contact in order to get access to the network.
     
     Accounting
               The  goal of network accounting is to accurately measure and
               record metrics relevant to the analysis  of  usage  and  the
               billing of users and organizations.
     
     Interim accounting
               An  interim  accounting  packet provides a snapshot of usage
               during a user's session.  It  is  typically  implemented  in
               order  to provide for partial accounting of a user's session
               in the event of a NAS reboot or other network  problem  that
               prevents  the  reception of a session summary packet or ses-
               sion record.
     
     Session record
               A session record represents a summary of the  resource  con-
               sumption of a user over the entire session. Accounting gate-
               ways creating the session record may  do  so  by  processing
               interim accounting events.
     
     Accounting Protocol
               A  protocol used for the communication of accounting events.
     
     Intra-organizational accounting event
               An intra-organizational accounting event  is  one  which  is
               generated by the local ISP's customers.
     
     Inter-organizational accounting event
               An  inter-organizational  accounting  event  is one which is
               generated by customers of other ISPs.
     
     Accounting Gateway
               The accounting gateway is a server which receives accounting
               protocol  packets  from  network devices such as a NASes and
               routers and produces session  records.  In  the  case  where
               accounting packets describe an intra-organizational account-
               ing event, accounting gateways handle  the  transmission  of
               accounting  data  to  other  accounting  gateways or billing
               servers. In the case  where  accounting  data  describes  an
               inter-organizational  accounting  event, accounting gateways
               transmit  session  records  to  the  organizational  billing
               server.   Accounting Gateways providing real-time accounting
               services proxy inter-organizational  accounting  packets  to
               other  accounting  gateways.  Accounting  gateways providing
     
     
     
     Aboba, Lidyard & Vollbrecht                                   [Page 2]


     INTERNET-DRAFT                                            28 July 1997
     
     
               session record accounting services transmit  inter-organiza-
               tional session records to other accounting gateways.
     
     Billing Server
               The  Billing  Server  is  a server which receives accounting
               data from accounting gateways, and translates this  informa-
               tion into bills.
     
     Accounting Agent
               The  function  of the accounting agent is to compute charges
               owed by member organizations. While a roaming consortium may
               act as the accounting agent, it is also possible for ISPs to
               settle among themselves.
     
     
     4.  Overview
     
     The goal of accounting in roaming is to enable ISPs to be  compensated
     for  use  of their network infrastructure by roaming users, as well as
     to control fraud and audit usage.
     
     The roaming accounting architecture supports both  real-time  account-
     ing,  and session record accounting. It is expected that real-time and
     session record accounting will  be  simultaneously  deployed  in  some
     roaming  implementations,  and  therefore these accounting methods are
     not mutually exclusive.
     
     Real-time accounting is a practical necessity in many roaming systems,
     since it provides for simultaneous session control and real-time moni-
     toring of funds balances, allowing roaming consortia  participants  to
     better manage risk. The real-time accounting architecture requires use
     of the RADIUS accounting protocol, described in [4]. As  described  in
     [24], when real-time accounting is used, RADIUS accounting packets are
     proxied between the local ISP's NAS and  the  home  RADIUS  accounting
     server,  on  the same path as RADIUS authentication packets. This path
     is known as the roaming relationship path.
     
     However, real-time accounting does not satisfy all accounting require-
     ments  in  roaming  systems.  Currently,  there  is no standards-track
     accounting protocol. In situations where ISPs within a roaming consor-
     tium do not support RADIUS, it may be desirable to exchange accounting
     information via use of a standard accounting record format. Due to the
     limitations  of RADIUS accounting, real-time accounting cannot provide
     end-to-end security. As a result, it may be desirable to deploy a ses-
     sion-record  accounting  mechanism in concert with a secure accounting
     record transfer method  so  as  to  provide  end-to-end  security  for
     accounting information.
     
     When  session record accounting is used, session records are submitted
     by the local ISP to the accounting agent, and subsequently  copied  to
     the  other  entities on the roaming relationship path, typically being
     transferred  in  batches.  This  reduces  the  overhead  of  providing
     improved  security,  making  it  possible to digitally sign accounting
     record bundles, and transmit them in encrypted form.  The  subject  of
     
     
     
     Aboba, Lidyard & Vollbrecht                                   [Page 3]


     INTERNET-DRAFT                                            28 July 1997
     
     
     signed  and encrypted transfers, while outside the scope of this docu-
     ment, is addressed in references [6]-[12].
     
     
     4.1.  Session record accounting
     
     The  session  record  accounting  architecture  involves  interactions
     between  network  devices  such as NASes and routers, accounting gate-
     ways, billing servers, and accounting servers.
     
     Accounting data received by the accounting gateway fall into two cate-
     gories:  intra-organizational accounting events, which are events gen-
     erated by local customers; and inter-organizational accounting events,
     which  are  events  generated  by  customers from other members of the
     roaming consortia. One of the functions of the accounting  gateway  is
     to  distinguish  between the two types of events and route them appro-
     priately.  For accounting events originating on a  local  ISP,  intra-
     organizational  accounting  events  are  routed  to  the local billing
     server, while inter-organizational accounting events will be routed to
     accounting gateways operating at other organizations.  While it is not
     required that session record formats used in inter and intra-organiza-
     tional  accounting  transfers  be  the same, this is highly desirable,
     since this eliminates translations that would otherwise be required.
     
     When the accounting agent's accounting gateway receives  inter-organi-
     zational  events  from a local ISP's accounting gateway, it routes the
     events to the billing server, and in addition may send copies  to  the
     home ISP. Copies are provided in order to enable the home ISP to audit
     accounting agent charges, as well to  bill  back  to  the  originating
     domain.  It should be noted that it is also possible for local ISPs to
     send copies directly, rather than relying on the accounting agent  for
     this function.
     
     Once  received  by the home ISP, the copied accounting records will be
     processed by the home ISP's billing server, and will also typically be
     copied to the originating organization.
     
     The  purpose  of  a  billing server is to provide billing and auditing
     services. In order to provide this services,  billing  servers  import
     session records provided to them by the accounting gateway.
     
     In  order to provide accounting capabilities, accounting gateways must
     support session record accounting and may support  real-time  account-
     ing.  Accounting gateways supporting real-time accounting must support
     the RADIUS accounting protocol, described in [4]. Accounting  gateways
     supporting  session record accounting must send and receive accounting
     records in a standardized format, described in this document.
     
     Required support for session record accounting allows ISPs  not  using
     RADIUS  accounting  to  participate  in  roaming.  Today  there  is no
     accounting protocol on the standards track, and as a result, a variety
     of  accounting  protocols have been deployed, including SNMP, TACACS+,
     RADIUS, and SYSLOG.
     
     
     
     
     Aboba, Lidyard & Vollbrecht                                   [Page 4]


     INTERNET-DRAFT                                            28 July 1997
     
     
     The diagram below  illustrates  the  architecture  for  session-record
     accounting:
     
          +------------+      +------------+          +------------+
          |            |      |            |          |            |
          |    ISPB    |      |  ISPA      |          |    ISPA    |
          |   Router   |      |  Billing   |<---------|   Acctg.   |
          |            |      |  Server    |          |   Gateway  |
          |            |      |            |          |            |
          +------------+      +------------+          +------------+
                |                                            ^
     Accounting |                                            |
     Protocol   |                     Inter-organizational   |
     (RADIUS,   |                       Accounting Events    |
     SNMP,      |                                            |
     Syslog,    |                                            |
     TACACS+,   |                                            |
     etc.)      |                                            |
                V                                            V
          +------------+                               +------------+
          |            |                               |            |
          |    ISPB    |      Inter-organizational     |  ISPGROUP  |
          |   Acctg.   |<----------------------------->|   Acctg.   |
          |   Gateway  |\       Accounting Events      |  Gateway   |
          |            | \                             |            |
          |            |  \                            |            |
          +------------+   \                          +------------+
                ^           \                                |
                |            \ Intra-organizational          |
     Accounting |             \   Accounting Events          |
     Protocol   |              \                             |
     (RADIUS,   |               \                            |
     SNMP,      |                \                           |
     Syslog,    |                 \                          |
     TACACS+,   |                  \                         |
     etc.)      |                   \                        |
                |                    \                       V
          +------------+      +------------+           +------------+
          |            |      |            |           |            |
          |     ISPB   |      |    ISPB    |           |  ISPGROUP  |
          |     NAS    |      |  Billing   |           |   Billing  |
          |            |      |   Server   |           |   Server   |
          |            |      |            |           |            |
          +------------+      +------------+           +------------+
                ^
     PPP        |
     Protocol   |
                |
                V
          +------------+
          |            |
          |    Fred    |
          |            |
          +------------+
     
     
     
     Aboba, Lidyard & Vollbrecht                                   [Page 5]


     INTERNET-DRAFT                                            28 July 1997
     
     
     4.2.  Example
     
     Let  us  assume  that we have a roaming user Fred, who works at BIGCO.
     BIGCO has established a relationship with ISPA,  who  has  joined  the
     roaming  consortia  ISPGROUP.  Fred now travels to another part of the
     world and wishes to dial in to the network provided by ISPB.
     
     ISPB will account for Fred's resource usage, and will submit a session
     record  to ISPGROUP for compensation. ISPGROUP will in turn bill ISPA,
     who will bill BIGCO. Eventually BIGCO will pay  ISPA,  ISPA  will  pay
     ISPGROUP,  and  ISPGROUP  will  pay ISPB.  In order for all parties to
     verify that they have been properly charged or compensated for  Fred's
     session, the following events must occur:
     
        ISPB:      Network devices generate accounting data for Fred
        ISPB:      Accounting gateway generates a session record for Fred
        ISPB:      Accounting gateway routes the session record to
                   ISPGROUP and to the local billing server
        ISPB:      Billing server processes the session record,
                   credits ISPGROUP account
        ISPGROUP:  Accounting gateway routes the session record to the
                   accounting server and to ISPA
        ISPGROUP:  Accounting server processes the session record,
                   credits ISPA account, debits ISPB account
        ISPA:      Accounting gateway routes the session record to the
                   local billing server and to BIGCO
        ISPA:      Billing server processes the session record,
                   credits BIGCO account, debits ISPGROUP account
        BIGCO:     Accounting gateway routes the session record to the
                   local billing server
        BIGCO:     Billing server processes the session record,
                   credits Fred's account, credits ISPA account.
     
     Each of these events is discussed below.
     
     4.3.  ISPB network devices generate accounting data for Fred
     
     In  order  to keep track of network resources consumed by Fred, ISPB's
     accounting gateway will collect accounting data  produced  by  network
     devices  such  as routers and NASes. This data may be produced in many
     forms, and may be communicated via a variety of  protocols,  including
     RADIUS,  TACACS+,  SNMP, and SYSLOG. The accounting data may be trans-
     mitted from network devices to the accounting gateway (as  in  RADIUS,
     TACACS+,  SYSLOG,  or  SNMP traps), or the accounting gateway may poll
     for the data (via SNMP GETs).
     
     Accounting data may refer to resources consumed over  the  life  of  a
     session,  or  it may be a checkpoint event. Checkpoint events refer to
     resource consumption at a specific point in time, rather  than  repre-
     senting  a  summary  of  resources  consumed  over a session. Prior to
     transfer to a billing server or accounting  agent,  checkpoint  events
     are typically summarized into a session record.
     
     
     
     
     
     Aboba, Lidyard & Vollbrecht                                   [Page 6]


     INTERNET-DRAFT                                            28 July 1997
     
     
     4.4.  ISPB accounting gateway generates a session record for Fred
     
     Since  there is currently no standards-track network accounting proto-
     col, ISP accounting practices vary  more  widely  than  authentication
     practices,  where  RADIUS authentication is very widely deployed. As a
     result, it appears difficult to standardize on an accounting  protocol
     that  can  be  used  for  communication  between ISPs and a accounting
     agent. Therefore, the roaming accounting architecture anticipates that
     while ISPs will use an accounting protocol of their choice to communi-
     cate accounting information between network devices and the accounting
     gateway,  a  standardized accounting record format and transfer method
     will be used for communication between accounting gateways.
     
     In order to allow for transmission of accounting  information  to  the
     accounting  agent,  ISPB  will  summarize  the  accounting information
     relating to Fred's session in a standard session record format.
     
     4.5.  ISPB accounting gateway routes the session  record  to  ISPGROUP
     and to the local billing server
     
     ISPB's  accounting  gateway examines Fred's session record, and routes
     it to the appropriate destinations. It does this based on whether  the
     accounting  records  refer  to transactions occurring within the ISP's
     organization, or whether they refer to transactions occurring  between
     organizations.  In this case, since Fred is a roaming user, this is an
     inter-organizational accounting event, and the accounting gateway will
     send  session  record to the accounting agent, as well as to the local
     biling server. In this example, the accounting agent is  run  by  ISP-
     GROUP,  but  it could just as easily be run by ISPA, in which case the
     two ISPs would settle directly.
     
     When routing accounting  record  bundles,  ISPB's  accounting  gateway
     machine  will operate as an S/MIME or PGP/MIME-enabled SMTP server. In
     order to improve efficiency, the accounting gateway will sort account-
     ing  records  into bundles prior to mailing them to their destination.
     When a suitable bundle of accounting records has been accumulated, the
     accounting  gateway  will  initiate the transfer. In this case, Fred's
     accounting record will be sent to multiple destinations.
     
     While intra-organizational accounting  transfers  typically  will  not
     require  signed  accounting  bundles  or signed receipts, it still may
     prove useful to request that a receipt be generated  in  order  to  be
     able  to  confirm  the  success  of the transfer. Use of receipts will
     allow an accounting gateway to keep track of discrepancies between the
     number of accounting record bundles it believes were successfully sent
     to the local billing server, and the  number  of  receipts  collected.
     These discrepancies can be used to detect partially completed account-
     ing record transfers and to retransmit them.
     
     When used to transfer an accounting record bundle  to  the  accounting
     agent,  ISPB  will encrypt the bundle, as well as signing it, and will
     request a signed receipt.
     
     
     
     
     
     Aboba, Lidyard & Vollbrecht                                   [Page 7]


     INTERNET-DRAFT                                            28 July 1997
     
     
     4.6.  ISPB billing server processes the session record,  credits  ISP-
     GROUP account
     
     In  order  to  allow  itself  to audit the charges and/or compensation
     offered by ISPGROUP, ISPB's billing server will process Fred's session
     record  and credit the ISPGROU account (an asset).  If SMTP is used to
     transmit the session record between the accounting gateway and billing
     server,  then  the billing server will need to retrieve the accounting
     record bundle from its mailbox and process it, sending  a  receipt  in
     response to the accounting gateway's request.
     
     4.7.   ISPGROUP  accounting  gateway  routes the session record to the
     accounting server and to ISPA
     
     Once ISPGROUP receives the signed and encrypted accounting record bun-
     dle from ISPB, it will send back a signed receipt as requested, and in
     addition will verify the signature, decrypt the bundle, and then  send
     copies  to  the  accounting server as well as to ISPA. This is done in
     order to enable ISPA to audit the bill received from ISPGROUP, as well
     as  to bill back BIGCO for the charges. In transferring the accounting
     record bundle to ISPA, ISPGROUP will encrypt it, and sign it, in addi-
     tion to requesting a receipt.
     
     4.8.  ISPGROUP accounting server processes the session record, credits
     ISPA account, debits ISPB account
     
     ISPGROUP's accounting server processes the session record,  and  as  a
     result,  ISPA's account (an asset) is credited, and ISPB's account (an
     asset) is debited. If SMTP is used  to  transmit  the  session  record
     between  ISPGROUP's accounting gateway and the accounting server, then
     the accounting server will need to retrieve the accounting record bun-
     dle  from its mailbox and process it, sending a receipt in response to
     the accounting gateway's request.
     
     4.9.  ISPA accounting gateway routes the session record to  the  local
     billing server and to BIGCO
     
     Once  ISPA  has received the signed accounting record bundle from ISP-
     GROUP, it will send back a signed receipt as requested, and  in  addi-
     tion  will  verify  the  signature,  decrypt the bundle, and then send
     copies to the local billing server as well as to BIGCO. This  is  done
     in  order to enable BIGCO to audit the bill for Fred's usage.In trans-
     ferring the accounting record bundle to BIGCO, ISPA will  encrypt  it,
     and sign it, in addition to requesting a receipt.
     
     4.10.  ISPA billing server processes the session record, credits BIGCO
     account, debits ISPGROUP account
     
     ISPA's billing server processes the session record, and as  a  result,
     BIGCO's  account  (an  asset)  is credited, and ISPGROUP's account (an
     asset) is debited.  If SMTP is used to send the session record between
     ISPA's  accounting  gateway  and  the billing server, then the billing
     server will need to retrieve the accounting  record  bundle  from  its
     mailbox  and  process  it,  sending  a  receipt  in  response  to  the
     
     
     
     Aboba, Lidyard & Vollbrecht                                   [Page 8]


     INTERNET-DRAFT                                            28 July 1997
     
     
     accounting gateway's request.
     
     4.11.  BIGCO accounting gateway routes the session record to the local
     billing server
     
     Once BIGCO has received the signed accounting record bundle from ISPA,
     it will send back a signed receipt as requested, and in addition  will
     verify the signature, decrypt the bundle, and then forward the message
     to the local billing server.
     
     4.12.  BIGCO billing server  processes  the  session  record,  credits
     Fred's account, credits ISPA account
     
     BIGCO's  billing server processes the session record, and as a result,
     Fred's account (an asset) is credited, as is ISPA's account (a liabil-
     ity).  If  SMTP  is used to transit the session record between BIGCO's
     accounting gateway and the billing server,  then  the  billing  server
     will  need  to  retrieve the accounting record bundle from its mailbox
     and process it, sending a receipt in response to the accounting  gate-
     way's request.
     
     
     4.13.  Accounting transfer protocols
     
     In  order  for  session  records  to be transmitted between accounting
     gateways, a transfer protocol is required.  While  the  discussion  of
     transfer protocols is outside the scope of this document, roaming con-
     sortia concerned about securing the transport of accounting  data  are
     advised  to  consult the documents under development within the EDIINT
     Working Group.
     
     As described in [12], Internet Electronic Document  Interchange  (EDI)
     provides for encryption and digital signatures as well as requests for
     signed receipts. Since these features are also of interest in  a  wide
     variety  of  EDI and Electronic Commerce (EC) applications, the EDIINT
     working group has been chartered to standardize  their  use  over  the
     Internet.   For  further  information  on  the mechanisms proposed for
     secure EDI over the Internet, please consult references [6] - [12].
     
     It should be noted that in order to make use of  the  techniques  pro-
     posed  in [11], it is not required that accounting record formats con-
     form to EDI standards such as UN/EDIFACT or EDI  X.12,  although  this
     may  be  desirable  in some circumstances.  What is required is that a
     MIME type be defined for the accounting record format.
     
     
     4.14.  Accounting metrics
     
     Accounting in a roaming environment requires  adherence  to  standards
     which  allow  access to be measured, rated, assigned, and communicated
     between appropriate service providers.  In this  inter-provider  envi-
     ronment,  there  is  a  need for a set of controls that can be used to
     audit billing practices and to mediate billing disputes.  The  founda-
     tion   for  satisfying  these  requirements  is  the  content  of  the
     
     
     
     Aboba, Lidyard & Vollbrecht                                   [Page 9]


     INTERNET-DRAFT                                            28 July 1997
     
     
     accounting record. The goal of the accounting record  is  to  identify
     who  is  accessing  the  network, who is providing the access service,
     from what location is access being provided,  and  when  the  accesses
     occur.
     
     The  identity  of the user, their home ISP, and service privileges are
     the key elements for authenticating, authorizing, and assigning  cost.
     These components allow the local service provider to authorize service
     and understand to whom accounting information should  be  sent.  These
     same  components provide the home authenticating party with the infor-
     mation to identify the originating user, their roaming consortium, and
     the applicable service level agreements.
     
     The local ISP provides access. Since the home ISP presents the bill to
     the customer, in most cases they will be responsible for sales  taxes,
     but  this  may  not universally be the case. It is possible that there
     will be taxes or other charges  mandated  by  local  governing  bodies
     which  need to be absorbed and rebilled.  As a result, it is necessary
     for the identity of both the local and home ISP  to  be  included,  as
     well  as the location of the called POP to be included in the account-
     ing record.  Including this information also allows roaming  consortia
     to  evaluate  access patterns and trends in an effort to leverage high
     service areas for better rates and/or service.
     
     It is also useful for the accounting record to include  the  date  and
     time of access, in order to make it possible to analyze diurnal curves
     and devise programs oriented toward load leveling.  Including  session
     duration  is  useful  as an input to the rating process as well as for
     capacity planning and fraud detection.  The type of access and  access
     speed may also be relevant in rating.
     
     Suggested accounting metrics include:
     
     Session ID               Unique ID identifying the session
     Multi-Session ID         For linking of multiple related sessions
     NAI                      Network Access Identifier (NAI), the userID that is
                              presented during the authentication process.
     Peer Network Address     The IP address assigned to the user
     Home ISP                 Identity of the home ISP.
     Local ISP                The local ISP providing access.
     NAS Host Name            The name of the NAS providing access.
     NAS IP address           The IP address of the NAS providing access.
     NAS Port                 The physical port of the NAS providing access.
     Call Type                Indicates type of call, i.e. async vs. Sync ISDN, V.120, etc.
     Service Type             Type of service provided to the user
     Call Direction           Indicates inbound or outbound call
     B Channel interface name Indicates name of B channel interface
     Link Count               Number of links up when record was generated
     Local Time Zone          Time zone where access was provided.
     Start Date & Time        Session starting date and time (at source)
     Disconnect Date & Time   Session ending date and time (at source)
     Elapsed Duration         Seconds of received service
     Method of Access
     Disconnect Cause Code    The reason the call was disconnected
     
     
     
     Aboba, Lidyard & Vollbrecht                                  [Page 10]


     INTERNET-DRAFT                                            28 July 1997
     
     
     Originating Number       Enables the computation of access charges in a toll area.
     Access Number            The phone number dialed to reach the local ISP.
     
     Packets Transmitted      Packets sent to port
     Packets Received         Packets received from port
     OCTETS Transmitted       Octets sent to port
     OCTETS Received          Octets received from port
     Summary Charge           Aggregated charge of this accounting record.
     Charge detail            Entries for each type of charge and the amount used to
                              compute the summary charge. This includes access service
                              fees, usage related charges, and taxes. Other
                              charge detail may be applicable.
     Currency code            Currency in which the charges are expressed.
     Memo Data                General area for ISPs to communicate additional
                              information related to each accounting record.
     Authorization Code       Digitally signed token included to ensure legitimacy.
                              Form TBD.
     Roaming Rel. Path        The path of roaming relationships connecting the local ISP
                              to the home authentication server..NH 2
     
     4.15.  Accounting record format requirements
     
     In order to allow for accounting record bundles between organizations,
     it is necessary to provide for a standard  accounting  record  format.
     Desirable qualities for an accounting record format include:
     
     Compactness
               Given  the  growth  of  the Internet, today's ISPs process a
               large number of accounting records every day. Not only  does
               processing  of  the  records  require  many  CPU cycles, but
               transmitting the records can consume considerable bandwidth.
               Therefore  it  is desirable for the accounting record format
               to be as compact as possible, and to contribute to efficient
               processing.
     
     Extensibility
               While  the standard accounting record format must be able to
               encode metrics commonly used by ISPs in determining a user's
               bill,  it  must also be extensible so that other metrics can
               be added in the future. Traditionally, session records  have
               used  fixed  record formats, which while being compact, have
               limited extensibility. In this application,  the  accounting
               data  to  be exchanged may be interim accounting information
               or session records; it may  represent  standard  metrics  or
               vendor-specific   information;   it   may  need  to  express
               attributes of arbitrary size; it may be called upon to  rep-
               resent  data from any of the commonly used accounting proto-
               cols including RADIUS, TACACS+, SNMP or SYSLOG.
     
     
     4.16.  Definition of the Accounting Data Interchange Format (ADIF)
     
     ADIF, which is similar to the  LDAP  Data  Interchange  Format  (LDIF)
     specified  in   [23],  is extensible as well as compact. While ADIF is
     
     
     
     Aboba, Lidyard & Vollbrecht                                  [Page 11]


     INTERNET-DRAFT                                            28 July 1997
     
     
     capable of expressing a wide variety of accounting data,  most  appli-
     cations  are  expected  to  use  only  a small subset of capabilities.
     Therefore, prior to exchanging accounting data, it  is  expected  that
     ISPs  will consult with the accounting agent so as to understand which
     metrics are required in a given situation. For example, an  accounting
     agent  may  require  a  small set of RADIUS attributes, with all other
     attributes ignored. In this case, participating ISPs will need to pro-
     vide  ADIF  records  with  these  required attributes in order to have
     their accounting data processed correctly.
     
     Since the decision on required versus optional accounting data is typ-
     ically  made  by  the accounting agent rather than the submitting ISP,
     ADIF does not provide the ability to mark accounting data  as  "manda-
     tory",  as is done in L2TP, described in [19]. It is felt that provid-
     ing this capability  would  result  in  increased  complexity  without
     adding  much in the way of error detection. However, requirements from
     a given accounting protocol do carry over to  ADIF.  For  example,  in
     RADIUS  accounting  as  described  in [4] it is required that a RADIUS
     Accounting-Request contain an Acct-Status-Type  attribute,  and  these
     same  requirements would apply to an ADIF accounting record expressing
     information obtained from RADIUS accounting packets.
     
     Accounting records have traditionally been human-readable,  so  as  to
     allow  them  to be more easily debugged. ADIF permits attributes to be
     expressed either in NVT ASCII (characters 32 through 126) or  if  non-
     printable characters are required, in base64.
     
     An ADIF file consists of a series of records separated by a separator,
     and each record may consist of one  or  more  lines.   As  with  MIME,
     described  in  [20],  lines may be continued by putting a space or tab
     character on the succeeding line, and thus attributes may be of  arbi-
     trary  length.  A  version number (1 for this document), and a default
     attribute type may be optionally included at the beginning of the ADIF
     file. Lines beginning with the "#" character are taken as comments and
     ignored.
     
     In order to allow ADIF to be used to communicate accounting data  from
     a  variety of sources, ADIF includes support for attribute types. This
     specification  includes  support  for  RADIUS,   SNMP,   and   TACACS+
     attributes,  and  other  types may be added as needed. Attribute types
     may be indicated by prepending the attribute type, and a "//"  to  the
     attribute name, i.e. RADIUS//Acct-Session-Time.
     
     In  order  to  provide the maximum degree of compactness, ADIF permits
     attribute  numbers  to  be  used  instead  of  names.   For   example,
     RADIUS//46: may be used instead of RADIUS//Acct-Session-Time.
     
     Since  it  is  expected  that  most accounting record batches will use
     attributes of a single type, a default attribute type may be indicated
     at  the  beginning  of  an ADIF file. When a default attribute type is
     used, attributes of the default type do not need to include their type
     along with the attribute name.  For example, if defaultType: RADIUS is
     indicated at the beginning of the ADIF file,  then  Acct-Session-Time:
     or   46:   may   be  used  instead  of  RADIUS//Acct-Session-Time:  or
     
     
     
     Aboba, Lidyard & Vollbrecht                                  [Page 12]


     INTERNET-DRAFT                                            28 July 1997
     
     
     RADIUS//46:.
     
     
     4.16.1.  Vendor-specific attributes
     
     ADIF supports vendor-specific metrics in several ways. It is  possible
     for  a  vendor to define their own attribute type (i.e. BIGCO//). How-
     ever, this should only be done in cases where there are limited inter-
     operability requirements.
     
     In  most  cases, vendor-specific attributes can be accommodated within
     existing attribute types, such as RADIUS or SNMP, through the encoding
     of  vendor-specific  attributes.  In  RADIUS, this is typically accom-
     plished using the Vendor-Specific attribute;  in  SNMP  it  is  accom-
     plished  by  definition  of  a MIB variable within the vendor area. In
     both RADIUS and SNMP, vendors are identified  using  the  SMI  Network
     Management  Private  Enterprise Code, as given in [22]. In the case of
     RADIUS as described in [3], servers not equipped  to  support  vendor-
     specific attributes MUST ignore them.
     
     Since vendor-specific attributes may be expressed in a variety of for-
     mats, it is not possible to specify how they are to be represented  in
     general.  However,  in order to make vendor-specific attributes easier
     to debug, it is recommended that RADIUS Vendor-Specific attributes  be
     encoded  so  as  to  break  out the Vendor-Id and Vendor-Type from the
     attribute-specific data. This may be accomplished  by  using  a  semi-
     colon as a separator, as follows:
     
     Vendor-Specific: Vendor-Id: <SMI Network Management Private Enterprise Code>;
       <Type>: <Value>
     
     
     4.16.2.  ADIF Examples
     
     Example  1:  An  ADIF  file  encoding  RADIUS  accounting  data, using
     attribute names:
     
     version: 1
     defaultType: RADIUS
     
     NAS-IP-Address: 204.45.34.12
     NAS-Port: 12
     NAS-Port-Type: 2
     User-Name: fred@bigco.com
     Acct-Status-Type: 2
     Acct-Delay-Time: 2
     Acct-Input-Octets: 234732
     Acct-Output-Octets: 15439
     Acct-Session-Id: 185
     Acct-Authentic: 1
     Acct-Session-Time: 1238
     Acct-Input-Packets: 153
     Acct-Output-Packets: 148
     Acct-Terminate-Cause: 11
     
     
     
     Aboba, Lidyard & Vollbrecht                                  [Page 13]


     INTERNET-DRAFT                                            28 July 1997
     
     
     Acct-Multi-Session-Id: 73
     Acct-Link-Count: 2
     
     Example 2:  An  ADIF  file  encoding  RADIUS  accounting  data,  using
     attribute numbers:
     
     version: 1
     defaultType: RADIUS
     
     4: 204.45.34.12
     5: 12
     61: 2
     1: fred@bigco.com
     40: 2
     41: 2
     42: 234732
     43: 15439
     44: 185
     45: 1
     46: 1238
     47: 153
     48: 148
     49: 11
     50: 73
     51: 2
     
     Example 3: An ADIF file with vendor-specific data:
     
     version: 1
     defaultType: RADIUS
     
     4: 204.45.34.12
     5: 12
     61: 2
     26: Vendor-Id: 311; dialClass: 1
     1: fred@bigco.com
     40: 2
     41: 2
     42: 234732
     43: 15439
     44: 185
     45: 1
     46: 1238
     47: 153
     48: 148
     49: 11
     50: 73
     51: 2
     
     
     
     
     
     
     
     
     
     Aboba, Lidyard & Vollbrecht                                  [Page 14]


     INTERNET-DRAFT                                            28 July 1997
     
     
     4.16.3.  Grammar
     
     The following definition uses the augmented Backus-Naur Form specified
     in [13].
     
     adif-file            = [version-spec SEP] [type-spec SEP] adif-record *(SEP adif-record)
     version-spec         = "version:" *SPACE version-number
     version-number       = 1*DIGIT
     type-spec            = "defaultType:" *SPACE attr-type
     attr-type            = "RADIUS" | "SNMP" | "TACACS+"
     adif-record          = 1*(attrval-series SEP)
     attrval-series       = 1*(attrval-spec)
     attrval-spec         = attr ( (":" *SPACE value) |
                            ("::" *SPACE base64-value) )
     attr                 = radattr | snmpattr | tacacsplusattr
     radattr              = ["RADIUS//"] radattrname
     radattrname          = <a RADIUS attribute name, as defined in [3],[4],[7]> |
                            <a RADIUS attribute number, as defined in [3],[4],[7]>
     snmpattr             = ["SNMP//"] snmpattrname
     snmpattrname         = <an SNMP object ID> | <an SNMP attribute name>
     tacacsplusattr       = ["TACACS+//"] tacacsplusattrname
     tacacsplusattrname   = <a TACACS+ attribute name, as defined in [11]>
     value                = 1*safe-initval *safe
     safe                 = <ASCII values 040 - 0176 octal (32 - 126 decimal)
     safe-initval         = <ASCII values 040 - 0176 octal (32 - 126 decimal),
                            excluding colon (":", ASCII 58 decimal), SPACE,
                            and semi-colon (";", ASCII 59 decimal)
     base64-value         = <base-64-encoded value, defined in [10]>
     SPACE                = <ASCII SP, space>
     SEP                  = (CR LF) | LF
     CR                   = <ASCII CR, carriage return>
     LF                   = <ASCII LF, line feed>
     DIGIT                = <any ASCII decimal digit (60 - 71 decimal) >
     
     
     5.  Security issues
     
     When session record accounting is employed, protection  must  be  pro-
     vided against the following attacks:
     
        Theft of accounting data
        Submission of fraudulent accounting records
     
     
     5.1.  Theft of accounting data
     
     Since  RADIUS accounting does not provide for encryption of accounting
     data, when real-time accounting is used, it is possible for an  inter-
     mediate  system  to gain access to accounting information passing over
     the wire. Such access may or may not be possible when  session  record
     accounting  is  used,  depending  on whether encryption is used in the
     accounting record transfer.
     
     
     
     
     
     Aboba, Lidyard & Vollbrecht                                  [Page 15]


     INTERNET-DRAFT                                            28 July 1997
     
     
     5.2.  Submission of fraudulent accounting records
     
     When session record accounting is used, it is possible for a local ISP
     to submit a fraudulent accounting record to the accounting agent. This
     includes submission of records for non-existent sessions,  or  submis-
     sion  of  exaggerated session times for actual sessions. Such behavior
     will only be easily detectable in the event  that  roaming  users  are
     making  use  of  voluntary  or compulsory tunneling, in which case the
     tunnel server (presumed to exist  at  BIGCO)  will  generate  its  own
     accounting  record,  which  may  be  compared to that generated by the
     local ISP. However, tunneling is expected to represent  only  a  small
     percentage of roaming use.
     
     With  respect to submission of inaccurate accounting records, it makes
     little difference whether the local ISP submits accounting records, or
     proxies  accounting  protocol  packets to the accounting agent. Either
     accounting records or accounting protocol packets may be forged by the
     local  ISP;  for  example,  an  accounting gateway could hold incoming
     RADIUS accounting packets and retransmit them later, making it  appear
     that the session was longer than it actually was.
     
     Requiring  the  NAS  to communicate directly with the accounting agent
     provides little extra security. Aside from  the  scalability  problems
     that would result from this when a shared-secret authentication scheme
     is used, the local ISP has access to all the  NAS  shared  secrets  or
     private  keys,  and  therefore has at its disposal all the information
     necessary to forge authentication and accounting packets.
     
     In order to detect changes in behavior by the local ISP,  where  real-
     time  accounting is used the accounting agent SHOULD carefully monitor
     the balance of each local ISP so as to ensure that it  remains  within
     normal limits.
     
     Where  hierarchical authentication routing is used, the parties on the
     roaming relationship path will also typically have proxied the  RADIUS
     Access-Request  and  Access-Accept packets resulting in authentication
     and authorization. As a result, each of the parties will  be  able  to
     match  up  the  received  accounting  records  with  an event in their
     authentication logs. This provides for a limited degree  of  auditing.
     To  enable  the matching of authentication and accounting packets, the
     Class attribute SHOULD be included in the RADIUS Access-Reply.
     
     Where hierarchical authentication  routing  is  employed,  having  the
     accounting  agent  on  the  authentication  route  as the first hop is
     highly desirable, since this makes it more difficult for the local ISP
     to submit accounting records for fictitious sessions. If the authenti-
     cation and accounting routes are aligned, this type of fraud  requires
     cooperation of one of the intermediate proxies.
     
     
     6.  Acknowledgements
     
     Thanks  to  Pat Calhoun of 3Com for useful discussions of this problem
     space.
     
     
     
     Aboba, Lidyard & Vollbrecht                                  [Page 16]


     INTERNET-DRAFT                                            28 July 1997
     
     
     7.  References
     
     [1]  B. Aboba, J. Lu, J. Alsop, J. Ding, W. Wang.  "Review of  Roaming
     Implementations."  Internet  draft  (work  in  progress),  draft-ietf-
     roamops-imprev-04.txt, Microsoft, Aimnet, i-Pass  Alliance,  Asiainfo,
     Merit Network, June, 1997.
     
     [2]  B. Aboba, G. Zorn.  "Dialup Roaming Requirements." Internet draft
     (work  in  progress),  draft-ietf-roamops-roamreq-05.txt,   Microsoft,
     June, 1997.
     
     [3]   C. Rigney, A. Rubens, W. Simpson, S. Willens.  "Remote Authenti-
     cation Dial In User Service (RADIUS)." RFC  2138,  Livingston,  Merit,
     Daydreamer, April, 1997.
     
     [4]   C.  Rigney.   "RADIUS  Accounting." RFC 2139, Livingston, April,
     1997.
     
     [5]  J. Gray, A. Reuter. Transaction Processing:  Concepts  and  Tech-
     niques, Morgan Kaufmann Publishers, San Francisco, California, 1993.
     
     [6]   R. Fajman. "An Extensible Message Format for Message Disposition
     Notifications."   Internet  draft  (work  in  progress),   draft-ietf-
     receipt-mdn-02.txt, National Institute of Health, November, 1996.
     
     [7]  M.  Elkins.  "MIME  Security with Pretty Good Privacy (PGP)." RFC
     2015, The Aerospace Corporation, October, 1996.
     
     [8] G. Vaudreuil. "The Multipart/Report Content Type for the Reporting
     of  Mail System Administrative Messages." RFC 1892, Octel Network Ser-
     vices, January, 1996.
     
     [9]  J.  Galvin.,  et  al.   "Security  Multiparts  for  MIME:  Multi-
     part/Signed  and  Multipart/Encrypted."  RFC 1847, Trusted Information
     Systems, October, 1995.
     
     [10] D. Crocker. "MIME Encapsulation of EDI Objects." RFC 1767,  Bran-
     denburg Consulting, March, 1995.
     
     [11]  M.  Jansson,  C. Shih, N. Turaj, R. Drummond. "MIME-based Secure
     EDI."   Internet  draft   (work   in   progress),   draft-ietf-ediint-
     as1-02.txt, LiNK, Actra, Mitre Corp, Drummond Group, November, 1996.
     
     [12] C. Shih, M. Jansson, R. Drummond, L. Yarbrough. "Requirements for
     Inter-operable Internet EDI."   Internet  draft  (work  in  progress),
     draft-ietf-ediint-req-01.txt,  Actra, LiNK, Drummond Group, May, 1995.
     
     [13] R. Fielding, et al.  "Hypertext Transfer  Protocol  -  HTTP/1.1."
     RFC 2068, UC Irvine, January, 1997.
     
     [14]  A. Gulbrandsen, P. Vixie.  "A DNS RR for specifying the location
     of services (DNS SRV)." RFC 2052,  Troll  Technologies,  Vixie  Enter-
     prises, October 1996.
     
     
     
     
     Aboba, Lidyard & Vollbrecht                                  [Page 17]


     INTERNET-DRAFT                                            28 July 1997
     
     
     [15]  D.  Eastlake,  3rd, C. W. Kaufman.  "Domain Name System Security
     Extensions." Internet draft  (work  in  progress),  draft-ietf-dnnsec-
     secext-10.txt, CyberCash, Iris, August, 1996.
     
     [16] C. Rigney, W. Willats.  "RADIUS Extensions." Internet draft (work
     in progress), draft-ietf-radius-ext-00.txt, Livingston, January, 1997.
     
     [17]  R.  Rivest,  S.  Dusse.  "The MD5 Message-Digest Algorithm", RFC
     1321, MIT Laboratory for Computer Science,  RSA  Data  Security  Inc.,
     April 1992.
     
     [18]  S.  Bradner.  "Key words for use in RFCs to Indicate Requirement
     Levels."  RFC 2119, Harvard University, March, 1997.
     
     [19] K. Hamzeh, T. Kolar, M. Littlewood, G. S. Pall,  J.  Taarud,   A.
     J.   Valencia,  W.  Verthein.  "Layer Two Tunneling Protocol -- L2TP."
     Work in  progress,  Internet draft  (work  in  progress),  draft-ietf-
     pppext-l2tp-03.txt,   Ascend   Communications, Microsoft, Copper Moun-
     tain Networks, U.S. Robotics, March, 1997.
     
     [20] Borenstein, N.,  Freed,  N.  "MIME  (Multipurpose  Internet  Mail
     Extensions)  Part  One:  Mechanisms  for Specifying and Describing the
     Format of Internet Message  Bodies",  RFC  1521,  Bellcore,  Innosoft,
     December 1993.
     
     [21]  D.  Carrel, L. Grant. "The TACACS+ Protocol Version 1.75."  Work
     in progress, draft-grant-tacacs-00.txt, Cisco Systems, October,  1996.
     
     [22] Reynolds, J., and J. Postel, "Assigned Numbers", STD 2, RFC 1340,
     USC/Information Sciences Institute, July 1992.
     
     [23] G. Good.  "The LDAP Data Interchange  Format  (LDIF)."   Internet
     draft   (work  in  progress),  draft-ietf-asid-ldif-00.txt,  Netscape,
     November, 1996.
     
     [24] B. Aboba, J.R. Vollbrecht, and  G.  Zorn.   "Guidelines  for  the
     Secure  Operation of RADIUS Proxies in Roaming."  Internet draft (work
     in progress), draft-ietf-roamops-auth-02.txt, Microsoft, Merit,  July,
     1997.
     
     
     8.  Authors' Addresses
     
     Bernard Aboba
     Microsoft Corporation
     One Microsoft Way
     Redmond, WA 98052
     
     Phone: 425-936-6605
     EMail: bernarda@microsoft.com
     
     Dave Lidyard
     Telco Research Corporation
     616 Marriott Drive
     
     
     
     Aboba, Lidyard & Vollbrecht                                  [Page 18]


     INTERNET-DRAFT                                            28 July 1997
     
     
     Nashville, TN 37214
     
     Phone: 615-231-6110
     EMail: dave@telcores.com
     
     John R. Vollbrecht
     Merit Network, Inc.
     4251 Plymouth Rd.
     Ann Arbor, MI 48105-2785
     
     Phone: 313-763-1206
     EMail: jrv@merit.edu
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     Aboba, Lidyard & Vollbrecht                                  [Page 19]