<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">
<?rfc toc="yes"?>
<?rfc tocompact="yes"?>
<!-- <?rfc editing="yes"?> -->
<?rfc compact="yes"?>
<!-- <?rfc subcompact="no"?> -->
<?rfc symrefs="yes"?>
<?rfc rfcedstyle="yes" ?>
<rfc number="XXXX" category="info" >

<front>
  <title abbrev="">
  Chargeable User Identity
  </title>
    <author initials="F" surname="Adrangi" fullname="Farid Adrangi">
      <organization abbrev='Intel'>Intel Corporation</organization>
    <address>
      <postal>
        <street>2111 N.E. 25th Avenue</street>
        <city>Hillsboro</city>
        <region>OR</region>
        <code>97124</code>
        <country>USA</country>
      </postal>
      <phone>+1 503-712-1791</phone>
        <email>farid.adrangi@intel.com</email>
    </address>
    </author>

    <author initials="A" surname="Lior" fullname="Avi Lior">
    <organization abbrev='Bridgewater Systems'>Bridgewater Systems Corporation</organization>
    <address>
      <postal>
        <street>303 Terry Fox Drive</street>
        <city>Ottawa</city>
        <region>Ontario</region>
        <code>K2K 3J1</code>
        <country>Canada</country>
      </postal>
      <phone>+1 613-591-9104</phone>
        <email>avi@bridgewatersystems.com</email>
    </address>
    </author>


    <author initials="J" surname="Korhonen" fullname="Jouni Korhonen">
      <organization abbrev='Teliasonera'>Teliasonera Corporation</organization>
    <address>
      <postal>
        <street>P.O.Box 970</street>
        <city>FIN-00051</city>
        <region></region>
        <code>Sonera</code>
        <country>Finland</country>
      </postal>
      <phone>+358405344455</phone>
        <email>jouni.korhonen@teliasonera.com</email>
    </address>
    </author>


    <author initials="J" surname="Loughney" fullname="John Loughney">
      <organization abbrev='Nokia'>Nokia</organization>
    <address>
      <postal>
        <street>Itamerenkatu 11-13</street>
        <city>FIN-00180</city>
        <region></region>
        <code>Helsinki</code>
        <country>Finland</country>
      </postal>
      <phone>+358504836342</phone>
        <email>john.loughney@nokia.com</email>
    </address>
    </author>

    <date month="January" year="2006" />
    <abstract>

     <t>This document describes a new Remote Authentication Dial-In User Service (RADIUS) attribute, Chargeable-User-Identity.
        This attribute can be used by a home network to identify a user for the 
        purpose of roaming transactions that occur outside of the home network. </t>

    </abstract>

</front>
<middle>

<section title="Introduction">

     <t> Some authentication methods, including EAP-PEAP,  EAP-TTLS, 
     EAP-SIM and EAP-AKA, can hide the true identity of the user from RADIUS 
     servers outside of the user's home network.  In these methods, the 
     User-Name(1) attribute contains an anonymous identity (e.g., @example.com) 
     sufficient to route the RADIUS packets to the home network but otherwise 
     insufficient to identify the user.  While this mechanism is good practice 
     in some circumstances, there are problems if local and intermediate networks 
     require a surrogate identity to bind the current session. </t>

     <t> This document introduces an attribute that serves as an alias or handle 
     (hereafter, it is called Chargeable-User-Identity) to the real user's identity.
     Chargeable-User-Identity can be used outside the home network in scenarios 
     that traditionaly relied on User-Name(1) to correlate a session to a user. </t>

     <t> For example, local or intermediate networks may limit the number of 
     simultaneous sessions for specific users; they may require a Chargeable-User-Identity
     in order to demonstrate willingness to pay or otherwise limit the potential for fraud. </t>
 
     <t> This implies that a unique identity provided 
     by the home network should be able to be conveyed to all parties involved 
     in the roaming transaction for correlating the authentication and 
     accounting packets. </t>
      
     <t> Providing a unique identity, Chargeable-User-Identity (CUI), to
     intermediaries, is necessary to fulfill certain business needs.  This should not 
     undermine the anonymity of the user.  The mechanism provided by this draft 
     allows the home operator to meet these business requirements by 
     providing a temporary identity representing the user and at 
     the same time protecting the anonymity of the user. </t>

     <t> When the home network assigns a value to the CUI, 
     it asserts that this value represents a user in the home network.  The assertion should be 
     temporary -- long enough to be useful for the external applications 
     and not too long such that it can be used to identify the user. </t>

     <t> Several organizations, including WISPr, GSMA, 3GPP, Wi-Fi Alliance,
     and IRAP, have been studying mechanisms to provide roaming services,
     using RADIUS.  Missing elements include mechanisms for billing and
     fraud prevention. </t>

     <t> The CUI attribute is intended to close operational loopholes in
     RADIUS specifications that have impacted roaming solutions
     negatively.  Use of the CUI is geared toward EAP methods supporting
     privacy (such as PEAP and EAP-TTLS), which are, for the most part,
     recent deployments.  A chargeable identity reflecting the user
     profile by the home network is needed in such roaming
     scenarios. </t> 

<section title="Motivation">


     <t> Some other mechanisms have been proposed in place of the CUI attribute.  These
     mechanisms are insufficient or cause other problems. It has been suggested that 
     standard RADIUS Class(25) or User-Name(1) attributes could be used to indicate the 
     CUI.  However, in a complex global roaming 
     environment where there could be one or more intermediaries between 
     the NAS <xref target="RFC4282" /> and the home RADIUS server, the use of aforementioned 
     attributes could lead to problems as described below. </t>
      
<list style='hanging'> 
<t></t>
      
        <t> - On the use of RADIUS Class(25) attribute:</t>
<t></t>

	<t> <xref target='RFC2865' /> states: "This 
        Attribute is available to be sent by the server to the client 
        in an Access-Accept packet and SHOULD be sent unmodified by the client 
        to the accounting server as part of the Accounting-Request 
        packet if accounting is supported. The client MUST NOT 
        interpret the attribute locally."  So RADIUS clients or intermediaries MUST NOT 
        interpret the Class(25) attribute, which precludes determining 
        whether it contains a CUI.  Additionally, there could be multiple class 
        attributes in a RADIUS packet, and since the contents of Class(25) attribute is
        not to be interpreted by clients, this makes it hard for the
	entities outside the
        home network to determine which one contains the CUI. </t>

<t></t>      
        <t> - On the use of RADIUS User-Name(1) attribute:</t>
<t></t>

	<t> The User-Name(1) attribute included in the Access-Request packet may be used for the 
        purpose of routing the Access-Request packet, and in the process may be 
        rewritten by intermediaries.  As a result, a RADIUS server receiving an Access-Request
        packet relayed by a proxy cannot assume that the User-Name(1) attribute remained unmodified. </t>

        <t> On the other hand, rewriting of a User-Name(1) attribute sent within an Access-Accept
        packet occurs more rarely, since a Proxy-State(33) attribute can be used to route the
        Access-Accept packet without parsing the User-Name(1) attribute.  As a result, a RADIUS
        server cannot assume that a proxy stripping routing information from a User-Name(1)
        attribute within an Access-Request packet will add this information to a User-Name(1) attribute
        included within an Access-Accept packet.  The result is that when a User-Name(1) attribute is
        sent in an Access-Accept packet, it is possible that the Access-Request packet and Accounting-Request
        packets will follow different paths.  Where this outcome is undesirable, the RADIUS 
        client should use the original User-Name(1) in accounting packets.  Therefore, another
        mechanism is required to convey a CUI within an Access-Accept packet to
        the RADIUS client, so that the CUI can be included in the accounting packets. </t>

</list>

   <t> The CUI attribute provides a solution to the above problems and avoids
   overloading RADIUS User-Name(1) attribute or changing the usage of existing
   RADIUS Class(25) attribute.  The CUI therefore provides a standard
   approach to billing and fraud prevention when EAP methods supporting
   privacy are used.  It does not solve all related
   problems, but does provide for billing and fraud prevention. </t>


</section>
    

<section title="Terminology">

  <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL
  NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL"
  in this document are to be interpreted as described in <xref
  target="RFC2119"/>.</t>

<t>
The following acronyms are used:</t>
<t>
  <list style='hanging'>

  <t> 3GPP - Third Generation Partnership Project </t>
  <t> AAA - Authentication, Authorization, and Accounting </t>
<t> AKA - Authentication and Key Agreement</t>
  <t> CUI - Chargeable-User-Identity </t>
  <t> GSMA - GSM Association </t>
  <t> IRAP -  International Roaming Access Protocols Program </t>
  <t> NAS - Network Access Server</t>
  <t> PEAP - Protected Extensible Authentication Protocol </t> 
<t> SIM - Subscriber Identity Modules </t>
  <t> TTLS - Tunneled Transport Layer Security </t>
  <t> WISPr - Wireless ISP Roaming </t>
  <t> WPA -  Wi-Fi Protected Access </t>
 
  </list>
</t> 
</section>
</section>

<section title="Operation">

     <t> This document assumes that the RADIUS protocol operates as 
     specified in <xref target='RFC2865' /> and <xref target='RFC2866' />,  
     dynamic authorization as specified in <xref target='RFC3576' />,
     and the Diameter protocol as specified in <xref target='RFC3588' />. 
     </t>

<section title="Chargeable-User-Identity (CUI) Attribute">


     <t> The CUI attribute serves as an alias to the user's real identity, representing a
     chargeable identity as defined and provided by the home network as a supplemental or
     alternative information to User-Name(1).  Typically, the CUI represents the identity 
     of the actual user, but it may also indicate other chargeable identities such as a
     group of users. RADIUS clients (proxy or NAS) outside the home network MUST
     NOT modify the CUI attribute.</t>

     <t> The RADIUS server (a RADIUS proxy, home RADIUS server) may include the CUI
     attribute in the Access-Accept packet destined to a roaming partner.  The CUI
     support by RADIUS infrastructure is driven by the business requirements
     between roaming entities.  Therefore, a RADIUS server supporting this specification may choose
     not to send the CUI in response to an Access-Request packet from a given NAS, even
     if the NAS has indicated that it supports CUI.</t>

     <t>
     If an Access-Accept packet without the CUI attribute was received by
     a RADIUS client that requested the CUI attribute, then the
     Access-Accept packet MAY be treated as an Access-Reject.
     </t>
   
      <t>
     If the CUI was included in an Access-Accept packet, RADIUS clients
     supporting the CUI attribute MUST ensure that the CUI attribute
     appears in the RADIUS Accounting-Request (Start, Interim, and Stop).
     This requirement applies regardless of whether the RADIUS client
     requested the CUI attribute.
     </t>
   
     <t>
     RFC 2865 includes the following statements about behaviors of RADIUS client and 
     server with respect to unsupported attributes: </t>
<list style='hanging'>   
      <t></t>  
     <t> - "A RADIUS client MAY ignore Attributes with an unknown Type."</t>
     <t> - "A RADIUS server MAY ignore Attributes with an unknown Type."</t>
</list>
    <t>
    Therefore, RADIUS clients or servers that do not support the CUI
    may ignore the attribute. </t>

    <t> A RADIUS client requesting the CUI attribute in an Access-Accept packet MUST
    include within the Access-Request packet a CUI attribute.  For the initial 
    authentication, the CUI attribute will include a single NUL
    character (referred to as a nul CUI).
    And, during re-authentication, the CUI attribute will include a previously received 
    CUI value (referred to as a non-nul CUI value) in the Access-Accept. </t>

    <t> Upon receiving a non-nul CUI value in an Access-Request, the home RADIUS server MAY
    verify that the value of CUI matches the CUI from the previous
    Access-Accept. If the verification fails, then the RADIUS server SHOULD respond with
    an Access-Reject message. </t>

    <t> If a home RADIUS server that supports the CUI attribute receives an 
    Access-Request packet containing a CUI (set to nul or otherwise), it MUST
    include the CUI attribute in the Access-Accept packet.  Otherwise, if
    the Access-Request packet does not contain a CUI, the home RADIUS server
    SHOULD NOT include the CUI attribute in the Access-Accept packet.
    The Access-Request may be sent either in the initial authentication
    or during re-authentication. </t>

   <t> A NAS that requested the CUI during re-authentication by including the CUI
   in the Access-Request will receive the CUI in the Access-Accept. The NAS MUST 
   include the value of that CUI in all Accounting Messages. </t>



</section>

<section title="CUI Attribute">

      <t> A summary of the RADIUS CUI attribute is 
      given below. </t>
       
<figure>
  <artwork>

   0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1  
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |     Type      |    Length     | String...          
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
  </artwork>
</figure>
    
    <t>Type: TBD for Chargeable-User-Identity.</t>
 
    <t>Length: >= 3</t> 
         
         
    <t>String:</t> <t></t>
    <list style='hanging'>
 
           <t> The string identifies the CUI of the end-user and is of type 
           UTF8String.  This string value is a reference to a
           particular user.  The format and content of the string value are
           determined by the Home RADIUS server.  The binding lifetime of 
           the reference to the user is determined based on business agreements.
           For example, the lifetime can be set to one billing period.
           RADIUS entities other than the Home RADIUS server MUST treat the CUI
           content as an opaque token, and SHOULD NOT perform operations on its
           content other than a binary equality comparison test, between two 
           instances of CUI.  In cases where the attribute is used to indicate
           the NAS support for the CUI, the string value contains a nul character. </t>
    </list>
        
</section>
</section>

<section title="Attribute Table">
       
     <t>The following table provides a guide to which attribute(s) may be 
     found in which kinds of packets, and in what quantity.  </t> 
    
    <artwork>
Request Accept Reject Challenge Accounting  #  Attribute 
                                   Request 
  0-1     0-1     0       0        0-1       TBD   Chargeable-User-identity

    </artwork>

   <t> Note: If the Access-Accept packet contains CUI, then 
   the NAS MUST include the CUI in Accounting 
   Requests (Start, Interim, and Stop) packets. </t>
    
</section>



<section title='Diameter Consideration'>

   <t> Diameter needs to define an identical attribute with the same Type value. The CUI 
   should be available as part of the NASREQ application.</t>

</section>

<section title='IANA Considerations'>

<t>
   This document uses the RADIUS <xref target='RFC2865' /> namespace; see
   http://www.iana.org/assignments/radius-types.

   This document instructs IANA to assign a new RADIUS attribute number
   for the CUI attribute.
</t>
<t></t>
<t>
      CUI		   TBA
</t>
</section>


<section title='Security Considerations'>
 
     <t> It is strongly recommended that the CUI format used is such that the real user 
     identity is not revealed.  Furthermore, where a reference is used to a real 
     user identity, it is recommended that the binding lifetime of that reference to the real user be 
     kept as short as possible. </t>

    <t>
    The RADIUS entities (RADIUS proxies and clients) outside the home 
    network MUST NOT modify the CUI or insert a CUI in an Access-Accept.
    However, there is no way to detect or prevent this.  
    </t>
    
    <t>
    Attempting theft of service, a man-in-the-middle may try to insert,
    modify, or remove the CUI in the Access-Accept packets and Accounting
    packets.  However, RADIUS Access-Accept and Accounting packets already
    provide integrity protection.
    </t>

     <t> If the NAS includes CUI in an Access-Request packet, a man-in-the-middle
   may remove it.  This will cause the Access-Accept packet to not include
   a CUI attribute, which may cause the NAS to reject the session.
   To prevent such a denial of service (DoS) attack, the NAS SHOULD include a
   Message-Authenticator(80) attribute within Access-Request packets
   containing a CUI attribute. </t>

</section>

<section title='Acknowledgements'>

      <t> The authors would like to thank Jari Arkko, Bernard Aboba, David Nelson,
          Barney Wolff, Blair Bullock, Sami Ala-Luukko, Lothar Reith, David Mariblanca,
          Eugene Chang, Greg Weber, and Mark Grayson for their feedback and guidance.
      </t>

</section>


</middle>

<back>

<references title="Normative References">

  <?rfc include='reference.RFC.2865.xml'?>
  <?rfc include='reference.RFC.2866.xml'?>
  <?rfc include='reference.RFC.2119.xml'?>
  <?rfc include='reference.RFC.4282.xml'?>


</references>

<references title="Informative References">

  <?rfc include='reference.RFC.3576.xml'?>
  <?rfc include='reference.RFC.3588.xml'?>


</references>

</back>
</rfc>

                                    


