Submitted to AAA Working Group                        Charles E. Perkins
INTERNET DRAFT                                              Ernie Tacsik
1 May 2003                                                         Nokia
                                                           Thomas Eklund
                                                      Xelerated Networks


                      AAA for IPv6 Network Access
                       draft-perkins-aaav6-06.txt


Status of This Memo

   Distribution of this memo is unlimited.

   This document is an Internet-Draft and is in full conformance with
   all provisions of Section 10 of RFC2026.  Internet-Drafts are working
   documents of the Internet Engineering Task Force (IETF), its areas,
   and its working groups.  Note that other groups may also distribute
   working 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
   material or to cite them other than as "work in progress."

   The list of current Internet-Drafts can be accessed at:
        http://www.ietf.org/ietf/1id-abstracts.txt
   The list of Internet-Draft Shadow Directories can be accessed at:
        http://www.ietf.org/shadow.html.


Abstract

   IPv6 nodes (clients) need a way to offer credentials to the AAA
   infrastructure in order to be granted access to the local network.
   For IPv6, it will be more efficient and thus reasonable to expect
   such access controls to be exerted by IPv6 routers, possibly as
   part of performing their role as DHCPv6 relays.  Routers and DHCPv6
   servers are expected to work in conjunction with AAA servers to
   determine whether or not the client's credentials are valid.  Routers
   can exert such network access control by the device of carefully
   controlling entries in their packet filter and Neighbor Cache.











Perkins, Tacsik, Eklund         Expires 1 November 2003         [Page i]


Internet Draft                 AAA for IPv6                   1 May 2003


                                Contents


Status of This Memo                                                    i

Abstract                                                               i

 1. Introduction                                                       1

 2. Terminology                                                        2

 3. General Framework                                                  4
     3.1. Protocol Description  . . . . . . . . . . . . . . . . . .    4
     3.2. Client Identifier . . . . . . . . . . . . . . . . . . . .    6
     3.3. Replay Protection . . . . . . . . . . . . . . . . . . . .    6
     3.4. AAA Credential  . . . . . . . . . . . . . . . . . . . . .    7

 4. Instantiation with Stateless Address Autoconfiguration             7
     4.1. Structure of Protocol Messages  . . . . . . . . . . . . .    7
           4.1.1. AAAv6 Protocol Message types  . . . . . . . . . .    7
           4.1.2. AAA Protocol Message options  . . . . . . . . . .    8

 5. Protocol Overview                                                  9
     5.1. Basic operation . . . . . . . . . . . . . . . . . . . . .    9
     5.2. Challenge Request . . . . . . . . . . . . . . . . . . . .   11
     5.3. Initiation of the AAA Process . . . . . . . . . . . . . .   11
     5.4. Termination . . . . . . . . . . . . . . . . . . . . . . .   11

 6. Instantiation with Mobile IPv6                                    12

 7. Instantiation with DHCPv6                                         12
     7.1. Mapping the general protocol  . . . . . . . . . . . . . .   12
     7.2. Mapping the message options . . . . . . . . . . . . . . .   13
     7.3. Protocol Overview . . . . . . . . . . . . . . . . . . . .   14
           7.3.1. Basic operation . . . . . . . . . . . . . . . . .   14
           7.3.2. Termination . . . . . . . . . . . . . . . . . . .   16
     7.4. Access Control  . . . . . . . . . . . . . . . . . . . . .   16

 8. Requesting a Home Challenge                                       16

 9. Message Formats for Stateless Address Autoconfiguration           17
     9.1. AAA Challenge Option  . . . . . . . . . . . . . . . . . .   17
     9.2. AAA Protocol Messages . . . . . . . . . . . . . . . . . .   17
     9.3. AAA Protocol Message Options  . . . . . . . . . . . . . .   19
           9.3.1. Client Identifier option  . . . . . . . . . . . .   19
           9.3.2. Security Data . . . . . . . . . . . . . . . . . .   20
           9.3.3. Challenge . . . . . . . . . . . . . . . . . . . .   21
           9.3.4. Generalized Key Reply . . . . . . . . . . . . . .   21
           9.3.5. Timestamp . . . . . . . . . . . . . . . . . . . .   23


Perkins, Tacsik, Eklund         Expires 1 November 2003         [Page ii]


Internet Draft                 AAA for IPv6                   1 May 2003


           9.3.6. IPv6 Address  . . . . . . . . . . . . . . . . . .   23
           9.3.7. Lifetime  . . . . . . . . . . . . . . . . . . . .   24
           9.3.8. Embedded Data . . . . . . . . . . . . . . . . . .   24

10. Message Formats for Stateful Address Autoconfiguration with
   DHCPv6                                                             26
    10.1. Challenge option  . . . . . . . . . . . . . . . . . . . .   26
    10.2. Client NAI option . . . . . . . . . . . . . . . . . . . .   27
    10.3. Timestamp option  . . . . . . . . . . . . . . . . . . . .   27
    10.4. Lifetime option . . . . . . . . . . . . . . . . . . . . .   28
    10.5. Security Data option  . . . . . . . . . . . . . . . . . .   28
    10.6. Generalized Key Reply option  . . . . . . . . . . . . . .   29

11. Security Considerations                                           30

12. Open Issues and Discussion                                        30
    12.1. Packet Service Filter . . . . . . . . . . . . . . . . . .   30
    12.2. Use of Destination Options  . . . . . . . . . . . . . . .   30
    12.3. AAAL  . . . . . . . . . . . . . . . . . . . . . . . . . .   30
    12.4. Other . . . . . . . . . . . . . . . . . . . . . . . . . .   30

Contributors                                                          31

References                                                            31

Addresses                                                             32


1. Introduction

   This document proposes a way for IPv6 nodes (clients) to offer
   credentials to a local AAA server in order to be granted access to
   the local network.  Whereas for IPv4 it is not clear that routers and
   DHCP will be equipped to handle such functions, we believe that it is
   more efficient and thus reasonable to expect such access controls to
   be exerted by IPv6 routers, possibly as part of performing their role
   as DHCPv6 relays.  Routers and DHCPv6 servers are expected to work in
   conjunction with AAA servers to determine whether or not the client's
   credentials are valid.

   Routers can exert such network access control by carefully
   controlling entries in their packet filter and Neighbor Cache [8].
   If a client does not supply verifiable credentials, then the router
   SHOULD NOT forward packets to that client.  Furthermore, such
   uncredentialed devices should have no access (or perhaps only very
   limited access) to the other network links adjacent to the router.
   Only in this way can a new client be prevented from abusing network
   connectivity before its authorization is complete.



Perkins, Tacsik, Eklund         Expires 1 November 2003         [Page 1]


Internet Draft                 AAA for IPv6                   1 May 2003


2. Terminology

   This document makes use of many terms defined in recent AAA
   requirements documents (for example, [6], [5]).  The general
   framework consists of nodes in the following general relationship:

                Local Domain                      Home Domain
              +------------------------+        +--------------+
              |   +-------------+      |        |   +------+   |
              |   |             |      |        |   |      |   |
              |   |    AAAL     |      |        |   | AAAH |   |
              |   |             +---------------+   |      |   |
              |   +----+---+----+      |        |   +------+   |
              |        |   |  +------+ |        |              |
              |        |   |  | other| |        +--------------+
   +------+   |   +----+-+-+----+    | |
   |      |   |   |      |      |    | |    C     =  client
   |   C  |- -|- -|  A   |  F   |----+ |    A     =  attendant
   |      |   |   |      |      |      |    F     =  packet filter
   +------+   |   +------+------+      |    other =  other AAA clients
              |                        |    AAAL  =  local authority
              +------------------------+    AAAH  =  home authority

   From a system point of view:
                     +--------------------------+   +----------------+
                     |       Router System      |   |   AAA Server   |
   +--------------+  |                          |   | Infrastructure |
   | Client System|  | +--------+   +---------+ |   | +------------+ |
   |              |  | |   F    |   |    A    +-------+    AAAL    | |
   |              |  | +--------+   +---------+ |   | |            | |
   |  +------+    |  |     |             |      |   | +-----+------+ |
   |  |  C   |    |  |     +------+------+      |   |       |        |
   |  +------+    |  | Controlled | Uncontrolled|   ==================
   +------|-------+  +------------|-------------+   |       |        |
          |                       |                 | +-----+------+ |
          +-----------------------+                 | |    AAAH    | |
                                                    | |            | |
                                                    | +------------+ |
                                                    +----------------+

   The entities in the pictures above are defined as follows:

      Client System:
                  The client system is the node requesting access to the
                  network.

      Client:
                  The client is the entity whose authorization is
                  checked.  The client resides on the client system.


Perkins, Tacsik, Eklund         Expires 1 November 2003         [Page 2]


Internet Draft                 AAA for IPv6                   1 May 2003


      Router System:
                  The router is the node that provides network access
                  to the client.  In addition to the usual packet
                  forwarding functionality, the router system typically
                  consists of other functional blocks like the attendant
                  and the packet filter.

      Attendant:
                  The attendant is the entity that extracts
                  identification and authorization data sent by the
                  client and forwards them to AAAL for verification.
                  It is also responsible for making the necessary
                  configuration updates (e.g., to the packet filter, and
                  the router's Neighbor Cache) so that only authorized
                  clients can access the network.

      Packet filter:
                  A packet filter/firewall/security gateway is the
                  entity responsible for disallowing unauthorized
                  datagram traffic.  When a client is authorized, the
                  access control list of the filter is updated with the
                  corresponding client's IP address(es).

      Controlled and uncontrolled access:
                  Each network interface of the router can be configured
                  to provide AAA services.  When an interface is
                  so configured, all transiting packets are subject
                  to controlled access.  If a packet does not pass
                  access control, but is an AAA message addressed to
                  the router, it is given to the Attendant in the
                  uncontrolled access part.

      AAAL:
                  The AAA server in the foreign domain that mediates
                  local access to the AAA infrastructure.

      AAAH:
                  The AAA server in the home domain which is able to
                  authorize each of its clients.

      Other nodes:
                  Other clients that perform some function as a result
                  of the policy received from AAAH, e.g.  accounting,
                  QoS, etc.

      AAA credential:
                  Data provided by a client to the AAA server in an
                  authorization request.  For example, this can be a



Perkins, Tacsik, Eklund         Expires 1 November 2003         [Page 3]


Internet Draft                 AAA for IPv6                   1 May 2003


                  message authentication code constructed using a secret
                  shared between the client and AAAH.

   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 [4].


3. General Framework

   Using the terminology just introduced, in this section we describe
   the general framework for our proposals.


3.1. Protocol Description

   The client solicits access to the network in conjunction with some
   protocol.  Protocols considered in this document include Stateless
   Address Autoconfiguration [10] Mobile IPv6 [7], and DHCPv6 [3], as an
   example of a stateful autoconfiguration service.

   If the router has AAA service enabled, a packet received on the
   interface is made available to the controlled part.  The controlled
   part will only forward traffic that corresponds to an authorized
   client.  All other packets will be dropped except for upstream AAA
   authorization protocol packets (sent by the client to the router).
   Such packets are made available to the attendant in the uncontrolled
   part.  The attendant may extract the relevant AAA data and forward
   them to AAAL. The overall protocol is depicted below.






















Perkins, Tacsik, Eklund         Expires 1 November 2003         [Page 4]


Internet Draft                 AAA for IPv6                   1 May 2003



                            Router system
                      +.......................+
   Client             .  UCP              CP  .            AAAL    AAAH
    |    LC           .   |                |  .              |       |
    |<--------------------|                |  .              |       |
    |AAA Req: LC,RPI,ID,CR|                |  .              |       |
    |-------------------->|                |  .              |       |
    |                 .   |      ACR       |  .              |       |
    |                 .   |- - - - - - - - |- - - - - - - - >|  ACR  |
    |                 .   |                |  .              |- - - >|
    |                 .   |                |  .              |  ACA  |
    |                 .   |      ACA       |  .              |< - - -|
    |                 .   |<- - - - - - - -| -.- - - - - - - |       |
    |                 .   |                |  .              |       |
    |                 .   |--------------->|  .              |       |
    |                 .   |  Update config |  .              |       |
    |                 .   |                |  .              |       |
    |                 .   |                |  .              |       |
    |AAA Rep: stat,RPI,KR |                |  .              |       |
    |<--------------------|                |  .              |       |
    |                 .   |                |  .              |       |
                      +.......................+

    LC = Local AAA Challenge
    RPI = Replay Protection Indicator used between client and AAAH
    CR = AAA Credential
    ID = Client Identifier
    KR = Key Reply
    UCP = Uncontrolled part
    CP  = Controlled part
    ACR = AAA Client Request (using an AAA protocol)
    ACA = AAA Client Answer (using an AAA protocol)

   The figure describes the authorization protocol exchanges in the
   generic case.  The operation of this protocol is initiated by either
   the attendant or the client.  First, the attendant (uncontrolled part
   in the router) sends a local challenge to the client.  The client
   then constructs an AAA credential which securely binds the local
   challenge, the client identifier, any replay protection indicator
   used between the client and AAAH, and other necessary information.
   The credential is such that it can be verified by AAAH. The client
   then sends an ``AAA Request'' message containing the credential
   and the information necessary to verify it.  The attendant checks
   that the local challenge included in the AAA Request is valid,
   extracts the AAA related information and sends them to AAAL using an
   appropriate AAA protocol.  We label this message, AAA Client Request
   (ACR). AAAL forwards ACR to AAAH, which verifies the credential
   and sends back the result, and any necessary keys.  We label this


Perkins, Tacsik, Eklund         Expires 1 November 2003         [Page 5]


Internet Draft                 AAA for IPv6                   1 May 2003


   reply message AAA Client Answer (ACA). The AAAL forwards ACA to the
   attendant.  AAAL may also forward any necessary keys.  The attendant
   extracts the relevant data from ACA and forwards them to the client.
   The attendant updates configuration of the packet filter (controlled
   part in the router) so that traffic to and from the client is allowed
   to pass through.


3.2. Client Identifier

   The client identifier has to be in some format that will enable
   AAAL to identify a suitable AAAH for carrying out all necessary
   authorization steps.

   A Network Access Identifier (NAI) [1] is often used to convey user
   identity, but IPv6 networks may well be constructed to determine the
   user's identity based only on the IPv6 address of the user's host.
   Therefore, the client identifier MAY be a NAI or an IPv6 address.
   The NAI MAY also identify the user to AAAL, although this is not
   necessary (e.g., the user part of the NAI may be intelligible only to
   AAAH).


3.3. Replay Protection

   Each participant in the protocol SHOULD verify the freshness of the
   protocol messages in order to protect itself from replay attacks.
   Replay protection between AAAL and AAAH, and between AAAL and
   attendant are handled by the AAA protocol.  Therefore, we only need
   to consider replay protection between the client and the other
   entities.

   The attendant ensures freshness of an AAA Request message from the
   client by verifying that the local challenge included in the Request
   is a recent one.

   The client and AAAH may use either timestamps or random challenges
   (nonces) for replay protection.  The former is straightforward.
   The latter is as follows.  In the AAA Reply, AAAH sends an AAAH
   challenge.  When the client makes the next AAA Request, it includes
   this AAAH challenge.  It also includes its own client challenge.
   When AAAH receives this request, it verifies that the AAAH challenge
   is current.  In the reply, AAAH copies the client challenge, and
   includes a new AAAH challenge.  This way, the client can verify the
   freshness of the reply from AAAH.

   If the AAAH challenge in an AAA Request is not valid, or if the
   client sends an explicit request for an AAAH challenge, AAAH will



Perkins, Tacsik, Eklund         Expires 1 November 2003         [Page 6]


Internet Draft                 AAA for IPv6                   1 May 2003


   reply with a new AAAH challenge.  This operation is similar to that
   for nonces as specified for Mobile IP [9].


3.4. AAA Credential

   An AAA credential is created by the client and is verified by AAAH.
   The creation and verification is based on a security association
   shared between the client and AAAH. The credential SHOULD securely
   bind the following pieces of information:

    -  Client identifier,

    -  Local AAA challenge, if one was provided by the attendant, and

    -  Depending on the style of replay protection being used between
       the client and AAAH, either a timestamp or a pair of challenges.

   In certain applications, additional data may be included in the
   computation of the AAA Credential.

   The exact algorithm used to compute the AAA Credential depends on
   the security association between the client and AAAH. HMAC_MD5 is a
   suitable algorithm, based on a shared secret between the client and
   AAAH.


4. Instantiation with Stateless Address Autoconfiguration

   In this section, we describe how the general protocol sketched in
   Section 3 can be used with Stateless Address Autoconfiguration [10].


4.1. Structure of Protocol Messages

   We define new ICMPv6 messages to transport AAA data between the
   client and the attendant.  In addition, we defined several options
   that can be embedded in a AAAv6 Protocol Message.  Detailed
   definitions of these messages are given in Section 9.  Here we give a
   brief description of each AAAv6 protocol message type, and each AAAv6
   option.  In addition, we also defined an AAAv6 Challenge option to
   Router Advertisement, enabling the attendant to send a challenge to
   the client.


4.1.1. AAAv6 Protocol Message types

   From client to attendant:



Perkins, Tacsik, Eklund         Expires 1 November 2003         [Page 7]


Internet Draft                 AAA for IPv6                   1 May 2003


      AAA Request: Request for client authorization.

      AAA Home Challenge Request: Request for a new challenge from AAAH.

   From attendant to client:

      AAA Reply: Reply to AAA Request.

      AAA Teardown: Indication of termination of the currently active
         AAA registration.  This message is always sent unsolicited to
         the registered AAA client.


4.1.2. AAA Protocol Message options

   Each AAA Protocol Message specifies the AAA options that may
   accompany it.  Currently, the following options are defined.

      Security Data: This option is intended to carry security data.
         Currently, two subtypes are defined.

            AAA Credential: Sent by the client; used by AAAH to verify
               the authorization of the client.

            AAAH Authenticator: Sent by AAAH; used by the client to
               verify the authenticity of AAA Reply.

      Client Identifier: This option should enable AAAL to determine the
         AAAH to which an AAA Request is to be forwarded.  Currently,
         two subtypes are defined:  NAI, and IPv6 address.

      Generalized Key Reply: This option is used to distribute session
         keys to be used by the client.  Currently several subtypes
         are defined for both stateless and stateful operation (see
         sections 9.3.4, 10.6).

      Challenge: This option is used to carry nonces used for replay
         protection.  Currently three subtypes are defined:

            Local Challenge: Challenge issued by the attendant to the
               client.

            Home Challenge: Challenge issued by AAAH to the client.

            Client Challenge: Challenge issued by the client to AAAH.

      Timestamp: This option is used to carry timestamp information used
         for replay protection.



Perkins, Tacsik, Eklund         Expires 1 November 2003         [Page 8]


Internet Draft                 AAA for IPv6                   1 May 2003


      IPv6 Address: This option is used to carry IP address information.

      Lifetime: This option indicates the lifetime of an AAA
         authorization.


5. Protocol Overview

5.1. Basic operation

   The basic operation follows the model described in Section 3.1.  When
   an IPv6 client starts up or enter a new subnet, it receives a Router
   Advertisement with a AAA Challenge option.  As is usual, this Router
   Advertisement is either broadcast periodically, or MAY be sent in
   response to a Router Solicitation by the client.

   The client will construct a tentative IP address and MAY reply with
   an AAA Request ICMPv6 message with the following options:

    -  Local Challenge option into which the challenge from the Router
       Advertisement is copied.

    -  Either Timestamp option or both AAAH Challenge and Client
       Challenge options

    -  Client Identifier option consisting of the client's NAI or some
       long term IPv6 address, such as the client's home address.

    -  AAA Credential option constructed by concatenating all of the
       preceding options and applying the algorithm specified by the
       security association between the client and AAAH.

   When challenges are used for replay protection, the client MUST
   include the currently advertised AAAH challenge (perhaps as received
   from AAAH via a previous AAA Reply message) in the AAAH Challenge
   option, and a random number in the Client Challenge option.  If the
   client does not have an AAAH challenge, it SHOULD send an AAA Home
   Challenge Request message first (see Section 5.2).

   The client MUST perform Duplicate Address Detection (DAD) before
   sending the AAA Request.  The source address of AAA Request MUST be
   the chosen IPv6 address.

   On receiving the Request, the attendant MUST check if the chosen
   address is already in use.  If it is, the attendant MUST send an AAA
   Reply with code ADDRESS_IN_USE.

   Otherwise, the attendant will extract the AAA field values and
   forward them to AAAL in an ACR message using an AAA protocol, which


Perkins, Tacsik, Eklund         Expires 1 November 2003         [Page 9]


Internet Draft                 AAA for IPv6                   1 May 2003


   is then forwarded to AAAH. The data in each AAA option MUST be
   conveyed to AAAH by the ACR message.  In return, AAAH will construct
   an ACA message containing information in a suitable form that can be
   be extracted by the attendant and conveyed to the client in an AAA
   Reply message with appropriate options.  The following options are
   discussed in this document:

    -  Either Timestamp option or both AAAH Challenge and Client
       Challenge options

    -  One or more Key Reply options

    -  Lifetime option

    -  AAAH Authenticator option

   For error conditions other than those specifically identified in
   this document, the attendant or the AAA servers can cause the AAAv6
   Request to be denied, by returning the code AAAV6_FAILURE in the AAA
   Reply message.

   We describe AAAH behavior in terms of what the client should
   eventually receive in the AAA Reply.  If the AAA Credential
   is incorrect, the client MUST receive an AAA Reply with code
   INVALID_CREDENTIAL. If challenges are used for replay protection,
   and if the AAAH challenge is absent or invalid, the AAA Reply SHOULD
   have a code NEW_CHALLENGE, and SHOULD contain an AAAH Challenge
   option.  If timestamps are used for replay protection, and the
   Timestamp option is absent or invalid, the AAA Reply SHOULD have code
   INVALID_TIMESTAMP.

   AAAH SHOULD choose a validity period for the verification which
   should be included in the Lifetime option of AAA Reply.  If AAAL
   proposes its own lifetime value (in the ACR message), then the
   Lifetime option MUST contain the lower of the two values.  If AAAH
   chooses a key to be used between the attendant and the client, that
   key SHOULD be encoded in a Client-Attendant Key Reply option.  If
   timestamps are used for replay protection, there MUST be a timestamp
   option.  If challenges are used for replay protection, AAAH MUST copy
   the Client Challenge, and include a new random number in the AAAH
   Challenge.  Finally, AAAH should compute an authenticator, to be
   included in an AAAH Authenticator option, by concatenating all the
   preceding options intended for the client, and applying the algorithm
   specified by the security association between the client and AAAH. In
   addition, AAAH MAY include information in the ACA message intended
   for AAAL.

   If the status of the request is successful, AAAH will send back an
   ACA message indicating success to AAAL. AAAL will forward this to


Perkins, Tacsik, Eklund         Expires 1 November 2003         [Page 10]


Internet Draft                 AAA for IPv6                   1 May 2003


   the attendant.  If there are any keys distributed by AAAH, AAAL MUST
   re-encode those keys for the attendant.

   The attendant MUST add an entry for the client in its Neighbor Cache
   and at the same time update the packet filter with the client's IPv6
   address when the AAA verification for the client has been successful.
   The lifetime of these entries MUST be set to the value specified in
   the ACA message.  The attendant will extract all information in the
   ACA message intended for the client and send them back in an AAA
   Reply ICMPv6 message.  If, in the case of stateful address allocation
   (e.g., DHCPv6 [3]; see section 7), the source address of the AAA
   Request was the unspecified address, the corresponding AAA Reply MUST
   be sent to the all-nodes multicast address.  Otherwise the AAA Reply
   MUST be sent to the source address of the corresponding AAA Request.

   The attendant MUST create security associations for the client
   corresponding to any keys distributed to it by AAAL.

   When the client receives an AAA Reply indicating success, it
   MUST verify the AAAH authenticator and the validity of the replay
   protection indicator.  If verification succeeds, and key reply
   extensions have been included in the Reply, the client MUST create
   security associations for the attendant.  The client MUST associate
   the lifetime specified in the Lifetime option with the address that
   was authorized.  When the lifetime is close to expiration, the client
   SHOULD re-initiate the AAA process.


5.2. Challenge Request

   If the client does not have a valid AAAH challenge, it SHOULD send an
   AAA Home Challenge Request message.  This SHOULD include the Client
   Challenge option and MAY include the Client Identifier option.  The
   AAA Reply SHOULD have code NEW_CHALLENGE, and SHOULD include an AAAH
   Authenticator option.


5.3. Initiation of the AAA Process

   The AAA process can be initiated either from the client or from the
   attendant.  The attendant can initiate the process by sending a
   Router Advertisement with the AAA Challenge option.  The client can
   initiate the process by sending a Router Solicitation.


5.4. Termination

   It is also possible to terminate valid sessions.  To terminate a
   session, the attendant clears the packet filter and sends a AAA


Perkins, Tacsik, Eklund         Expires 1 November 2003         [Page 11]


Internet Draft                 AAA for IPv6                   1 May 2003


   Teardown message to the client which invalidates the IP address.  A
   typical scenario for termination would be in a pre-paid service when
   the pre-paid amount is used up.  The client may request termination
   by sending an AAA Request message with a zero lifetime.


6. Instantiation with Mobile IPv6

   There are two ways to handle Mobile IPv6.  First, the client could
   do the AAA processing when it obtains a care-of address, and then it
   could send a binding update to the home agent, and possibly to the
   previous router and other correspondents.

   If the home agent and AAAH belong to the same domain, it may be more
   efficient to bundle the binding update to the home agent in the AAA
   Request message so that the delay is minimized.  We support this
   possibility by defining a new option called Embedded Data option.
   The client generates an IPv6 packet containing the binding update to
   the home agent, but instead of sending it directly, it includes it in
   the AAA Request as the payload of an Embedded Data option.  AAAH will
   extract the binding update IPv6 packet and send it to the home agent.
   The home agent SHOULD send the binding acknowledgement back to AAAH
   so that it can be similarly transported to the client as part of the
   AAA Reply.

   In addition, we define new subtypes to the AAA Generalized Key Reply
   option so that AAAH could distribute authentication keys for use
   between the home agent and the mobile node.


7. Instantiation with DHCPv6

   In this section we describe how the general protocol sketched in
   Section 3 can be used with DHCPv6 [3].

   Between the client and the server there may also be a DHCP Relay
   which together with the DHCP server MAY be used to restrict access.
   The exact behavior of the relay is described in Section 7.4


7.1. Mapping the general protocol

   The general protocol messages in Section 3 and the instantiation with
   stateless autoconfiguration in Section 4 are mapped to DHCP in the
   following fashion.

    -  The Local Challenge is sent as an option in the DHCP Advertise
       message.



Perkins, Tacsik, Eklund         Expires 1 November 2003         [Page 12]


Internet Draft                 AAA for IPv6                   1 May 2003

    -  The AAA Request and the Home Challenge Request are sent as
       options in the DHCP Request message.

    -  The AAA Reply is sent as options in the DHCP Reply message.

    -  The AAA Teardown messages is not explicitly sent in any message.
       Instead the DHCP Reconfigure-init and the DHCP Release messages
       will be used.

   In addition to these two new error values called AAA_Failed
   indicating failure of the AAA registration attempt and
   AAA_New_Home_Challenge indicating that a new challenge has
   been sent to the DHCP client will be defined.


7.2. Mapping the message options

   Most of the Protocol Message options in Section 4.1.2 are mapped to
   DHCP options.  The following list specifies which options are needed
   for DHCP.

    -  Security Data:  As described in Section 4.1.2.

    -  Client Identifier:  This option contains the NAI used by the
       client.  The IPv6 address subtype, since that information is
       already supplied by DHCPv6.

    -  Generalized Key Reply:  As described in Section 4.1.2.

    -  Challenge:  As described in Section 4.1.2.

    -  Timestamp:  As described in Section 4.1.2.

    -  Lifetime:  As described in Section 4.1.2.

   The detailed option formats are described in Section 10.
















Perkins, Tacsik, Eklund         Expires 1 November 2003         [Page 13]


Internet Draft                 AAA for IPv6                   1 May 2003



                     DHCP     DHCP
   Client            relay    server                 AAAL    AAAH
    |                  |        |                     |       |
    | DS                        |                     |       |
    |------------------|------->|                     |       |
    | DA: LC                    |                     |       |
    |<-----------------|--------|                     |       |
    | DReq: LC, RPI, CR, ID     |                     |       |
    |------------------|------->|                     |       |
    |                           |                     |       |
    |                  |        |  ACR                |       |
    |                           |- - - - - - - - - - >| ACR   |
    |                  |        |                     |- - - >|
    |                           |                     | ACA   |
    |                  |        |  ACA                |< - - -|
    |                           |<- - - - - - - - - - |       |
    | DRep, RPI, KR, L |        |                     |       |
    |<--------------------------|                     |       |
    |                  |        |                     |       |
    |                           |                     |       |
    |                  |        |                     |       |

    DS = DHCP Solicit
    DA = DHCP Advertise
    DReq = DHCP Request
    DRep = DHCP Reply
    LC = Local AAA Challenge
    RPI = Replay Protection Indicator used between client and AAAH
    CR = AAA Credential
    ID = Client Identifier
    KR = Key Reply
    L = Lifetime
    ACR = AAA Client Request (using an AAA protocol)
    ACA = AAA Client Answer (using an AAA protocol)


7.3. Protocol Overview

7.3.1. Basic operation

   The basic operation follows the model outlined in Section 3.

   When the DHCP client starts up in the subnet, it will send a DHCP
   Solicit as described in the DHCPv6 draft [3].  The DHCP servers
   receiving the DHCPV6 Solicit reply by sending DHCP Advertise messages
   containing the Local Challenge option.  Either all or none of the
   DHCP servers MUST include a Local Challenge option in order to avoid
   any ambiguities.


Perkins, Tacsik, Eklund         Expires 1 November 2003         [Page 14]


Internet Draft                 AAA for IPv6                   1 May 2003


   The DHCP client will construct a DHCP Request message with the
   following options added before any authentication option:

    -  Local Challenge option into which the challenge in the DHCP
       Advertise message is copied.

    -  Either Timestamp option or both Home Challenge and Client
       Challenge options.

    -  Client Identifier option.

    -  AAA Credential option.

   When challenges are used for replay protection, the DHCP client MUST
   include its current home challenge in the Home Challenge option, and
   a random number in the Client Challenge option.  If the DHCP client
   does not have an Home Challenge, it SHOULD request a Home Challenge
   first as described in Section 8.

   On receiving a valid DHCP Request the DHCP server will extract the
   relevant data and forward them to the AAAL in the ACR message using
   the AAA protocol.  The ACR is then forwarded to the AAAH via the AAA
   network.  In addition to the options relating to AAA sent in the DHCP
   Request message, the IPv6 address that will be assigned to the DHCP
   client might be relevant to the AAAH.

   In return, AAAH will construct an ACA message and send it to the
   AAAL via the AAA infrastructure.  The AAAL will then forward the ACA
   message to the DHCP server.

   If the ACA message indicates failure the value of the DHCP Reply will
   be set to AAA_Failed and the DHCP server denies the DHCP address
   acquisition.

   If the ACA message indicates success it will contain information to
   allow the following DHCP options to be attached to the DHCP Reply
   message:

    -  Either Timestamp option or both Home Challenge and Client
       Challenge options.

    -  One or more Key Reply options.

    -  Lifetime option.

    -  AAAH Authenticator option.

   In addition to these options the DHCP server will attach those
   options needed to satisfy the DHCP client's request.


Perkins, Tacsik, Eklund         Expires 1 November 2003         [Page 15]


Internet Draft                 AAA for IPv6                   1 May 2003


7.3.2. Termination

   The lease can be terminated either by the DHCP client or the DHCP
   server.  The DHCP client terminates the lease by sending a DHCP
   Release message and waiting for a DHCP Reply.  Alternatively,
   the DHCP server MAY terminate the address lease by sending an
   Reconfigure-init message by unicast to the DHCP client.  The DHCP
   client will try to reacquire its address lease which the DHCP server
   then will deny.


7.4. Access Control

   The access to the controlled part (CP) of the network can be carried
   out in three different ways.

   In a subnetwork using a DHCP Relay to forward messages between
   the client and the server the access control MAY be located in
   the DHCP Relay if the default router and the DHCP relay are also
   co-located.  The DHCP Relay MUST add an entry in its Neighbor Cache
   when forwarding a DHCP Replay indicating successful allocation of an
   address.  In addition to adding an entry in the Neighbor Cache subnet
   or site specific filtering rules MAY also be added.

   In small sites where there is one DHCP server co-located in the
   default router the DHCP server MUST add the entries in its neighbor
   cache and MAY also add subnet or site specific filtering rules.

   The filtering rules MAY also be added to suitable locations in the
   accessed network by some other means, e.g.  through AAA interaction.


8. Requesting a Home Challenge

   If the AAAv6 client does not have a Home Challenge, it SHOULD request
   one by sending a AAAv6 Home Challenge Request message.  This request
   message contains authentication data so that the AAAH can eventually
   ensure that the request comes from an authorized client.  The
   attendant SHOULD relay this request to the AAAL in an extension to
   a ACR message.  The AAAL, if it does not have any challenge values
   buffered for the AAAv6 client, SHOULD relay the ACR and the request
   extension to the AAAH.

   If the AAAH decides to honor the request, it formulates one or more
   random challenges, each of which MAY be required to meet certain test
   conditions agreed upon beforehand between the AAAv6 client and the
   AAAH. The random challenges are gathered into an extension to an ACA
   message which is sent to the AAAL. The AAAL then transmits (to the
   attendant) an ACA containing no more than one of the Home Challenge


Perkins, Tacsik, Eklund         Expires 1 November 2003         [Page 16]


Internet Draft                 AAA for IPv6                   1 May 2003


   values in an ACA challenge reply extension.  Finally, the attendant
   transmits an AAAv6 Home Challenge Reply message to the AAAv6 client.

   This additional mechanism is intended to enable use with EAP, which
   requires a challenge value to be acted on by the EAP client.  This
   challenge value has to be generated by the AAAH, and is not available
   to the client until requested.  Thus, it is not possible with this
   mechanism to handle all authentication signaling needs in a single
   round trip.

   However, depending on the security association between the AAAv6
   client and the AAAH, the Home Challenge Request may be used to
   acquire challenge values for security protocols other than EAP.


9. Message Formats for Stateless Address Autoconfiguration

9.1. AAA Challenge Option

   The AAA challenge option is applied to Router Advertisements.  If
   the only purpose is to indicate support for AAAv6 in the router
   advertisement, the option contains only the type and a length field
   set to zero.

    0                   1                   2                   3
    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 = TBD   |    Length     |          Reserved             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                           Challenge   .....
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

      Type        The Type field identifies the option as being an AAA
                  challenge option and has a value of TBD.

      Length      The Length field gives the length measured in octets
                  of this option, including the Type and Length fields.

      Reserved    Ignored on reception; sent as 0.

      Challenge   This field contains a challenge.


9.2. AAA Protocol Messages

   AAA Messages are new ICMPv6 messages.  They have the following
   general structure.




Perkins, Tacsik, Eklund         Expires 1 November 2003         [Page 17]


Internet Draft                 AAA for IPv6                   1 May 2003



    0                   1                   2                   3
    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 = TBD   |     Code      |         Checksum              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                         Message body  ..........
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-

      Type   The following new types are defined:

                AAA Request: TBD

                AAA Home Challenge Request: TBD

                AAA Reply: TBD

                AAA Teardown: TBD

      Code   The code field depends on the message type.  Currently the
             following Code fields are defined:


             For AAA Reply

                SUCCESS: 0

                NEW_CHALLENGE: 1

                ADDRESS_IN_USE: 20

                INVALID_CREDENTIAL: 50

                INVALID_TIMESTAMP: 51

                AAAV6_FAILURE: 52

             For AAA Teardown

                SUCCESS: 0

             No Code values are defined for the remaining AAA message
             types.  The Code field MUST be set to zero.

      Message body The message body may consist of one or more options.






Perkins, Tacsik, Eklund         Expires 1 November 2003         [Page 18]


Internet Draft                 AAA for IPv6                   1 May 2003


9.3. AAA Protocol Message Options

   The general structure of an AAA Protocol Message Option is as
   follows.

    0                   1                   2                   3
    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 = TBD  |    Subtype    |            Length             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                          Option data .......
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

      Type          The Type field identifies the option.  Currently,
                    the following types are supported.  The most
                    significant bit of the Type indicates if the option
                    is unskippable (0) or skippable (1).

      Subtype       Each option type may be further subdivided.  The
                    Subtype field identifies option at the next level of
                    granularity.

      Length        The Length field indicates the size of the Option
                    data in octets.

      Option data   The format of option data is depends on the type and
                    subtype, and is defined below.


9.3.1. Client Identifier option

   The Client Identifier option is used by AAAL to determine the
   appropriate realm towards which to route the AAA request, and by AAAH
   in verifying the AAA Credential.

















Perkins, Tacsik, Eklund         Expires 1 November 2003         [Page 19]


Internet Draft                 AAA for IPv6                   1 May 2003



   0                   1                   2                   3
    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 = TBD  |    Subtype    |            Length             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                          Identifier                           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

      Type         1 (unskippable)

      Subtype      Currently two subtypes are defined:  NAI (0) and IPv6
                   address (1)

      Length       For subtype 1, the Length should be 16.

      Identifier   For subtype 0, this field contains a NAI formatted
                   according to RFC2486 [1].  For subtype 1, this field
                   contains an IPv6 address.


9.3.2. Security Data

   0                   1                   2                   3
    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 = TBD  |    Subtype    |            Length             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                              SPI                              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                        Security Data ...
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

      Type            2 (unskippable)

      Subtype         Currently two subtypes are defined:  AAA
                      Credential (0) and AAAH Authenticator (1)

      Length          Length of the option in octets, not including the
                      first four octets.

      SPI             The security parameter index to be used in
                      interpreting the Security Data.

      Security Data   The actual payload.






Perkins, Tacsik, Eklund         Expires 1 November 2003         [Page 20]


Internet Draft                 AAA for IPv6                   1 May 2003


9.3.3. Challenge

   The Challenge option is used to convey nonces for replay protection
   between various pairs of entities.

   0                   1                   2                   3
    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 = TBD  |    Subtype    |           Length              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                           Challenge   .......
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

      Type        3 (unskippable)

      Subtype     Currently three subtypes are defined:

                   -  Local Challenge:  Challenge issued by the
                      attendant to the client (0)

                   -  Home Challenge:  Challenge issued by AAAH to the
                      client (1)

                   -  Client Challenge:  Challenge issued by the client
                      to AAAH (2)

      Length      Length of the challenge in octets.

      Challenge   The actual challenge data.


9.3.4. Generalized Key Reply

   This option is used to convey keys distributed by AAAH for use
   between the client and other entities.
















Perkins, Tacsik, Eklund         Expires 1 November 2003         [Page 21]


Internet Draft                 AAA for IPv6                   1 May 2003



   0                   1                   2                   3
    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 = TBD  |    Subtype    |            Length             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                           AAAH SPI                            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                            Key SPI                            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               |
   |                        Peer IPv6 Address                      |
   |                                                               |
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                   Encoded Key Data  .........
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

      Type                4 (unskippable)

      Subtype             Currently subtypes are defined for three
                          entity pairs:

                           -  Client-Attendant authentication key:  Key
                              to be used between the current attendant
                              and the client for IPSec authentication
                              (1)

                           -  Client-Attendant encryption key:  Key to
                              be used between the current attendant and
                              the client for IPsec encryption (2)

                           -  MN-HA authentication key:  Key to be used
                              between the home agent and the client for
                              IPsec authentication (4)

                          If the most significant bit of the Subtype
                          value is 1, the ``Peer IPv6 Address'' field is
                          present.  Otherwise, it is absent.

      Length              Length of the option in octets except the
                          first four octets.

      AAAH SPI            This field indicates the security association
                          between the client and AAAH which should be
                          used by the client to interpret the Encoded
                          Key Data field.




Perkins, Tacsik, Eklund         Expires 1 November 2003         [Page 22]


Internet Draft                 AAA for IPv6                   1 May 2003


      Key SPI             This field indicates the SPI value for the new
                          security association into which the key should
                          be inserted.

      Peer IPv6 Address   When present, this field indicates the IPv6
                          address of the peer.  This is useful when the
                          client does not already know the address to be
                          used.  This field is present in subtypes 128
                          and above.

      Encoded Key Data    This field contains the key, along with any
                          other information required by the client to
                          create the security association.  The contents
                          of the field MUST be encrypted by AAAH as
                          specified by AAAH SPI.


9.3.5. Timestamp

   Timestamp field may be used for replay protection between the client
   and AAAH.

   0                   1                   2                   3
    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 = TBD  |    Subtype    |           Length              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                          Timestamp ...
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

      Type        5 (unskippable)

      Subtype     Currently no subtypes are defined.  Should be zero.

      Length      Length of the Timestamp in octets.

      Timestamp   Timestamp value in some format mutually intelligible
                  to the client and AAAH


9.3.6. IPv6 Address

   This option is used by the client to convey the IPv6 address it has
   chosen.  There may be other uses for this option, too.







Perkins, Tacsik, Eklund         Expires 1 November 2003         [Page 23]


Internet Draft                 AAA for IPv6                   1 May 2003



   0                   1                   2                   3
    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 = TBD   |    Subtype    |           Length              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               |
   |                        IPv6 Address                           |
   |                                                               |
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

      Type           6 (unskippable)

      Subtype        Currently no subtypes are defined.  Should be zero.

      Length         16

      IPv6 Address   A valid IPv6 address.


9.3.7. Lifetime

   This option is used to indicate the validity period of a successful
   AAA verification.

   0                   1                   2                   3
    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 = TBD   |    Subtype    |           Length              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                           Lifetime                            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

      Type       7 (unskippable)

      Subtype    Currently no subtypes are defined.  Should be zero.

      Length     4

      Lifetime   Lifetime in seconds.


9.3.8. Embedded Data

   This option is used to transport specific kinds of embedded data in
   the AAA messages.




Perkins, Tacsik, Eklund         Expires 1 November 2003         [Page 24]


Internet Draft                 AAA for IPv6                   1 May 2003



   0                   1                   2                   3
    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 = TBD   |WHO|  Subtype  |           Length              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                       Embedded Data ........
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

      Type   8 (unskippable)

      WHO    This field indicates who should process the embedded data.
             It is interpreted as follows (values in binary)


             00 - Recipient of the AAA Protocol message (i.e., either
             the client or the attendant)
             01 - AAAL
             10 - AAAH
             11 - reserved

      Subtype Currently two subtypes are defined:
             (0) -- MN-HA binding update
             (1) -- HA-MN binding acknowledgement
             (2) -- EAP Request [2]
             (3) -- EAP Response [2]

      Data   The actual embedded data itself.  For subtype 0, this MUST
             be an IPv6 packet addressed to the HA, and containing
             a binding update.  For subtype 1, this MUST be an IPv6
             packet addressed to the CoA, and containing a binding
             acknowledgement from the HA.

   For example, to bundle the HA binding update with AAA processing,
   the client will first generate a binding update, and insert it into
   an embedded data option of the AAA Request message, with WH = 10
   (binary) and Subtype = 0.  Based on the value of WH, the attendant
   will extract the Embedded Data and forward it to AAAH via AAAL. Based
   on the Subtype, AAAH will forward the binding update to the home
   agent, and will receive a binding acknowledgement in reply.  The
   attendant will forward the binding acknowledgement in an Embedded
   Data option to the AAA Reply message, with WH - 00 (binary) and
   Subtype = 1.








Perkins, Tacsik, Eklund         Expires 1 November 2003         [Page 25]


Internet Draft                 AAA for IPv6                   1 May 2003


10. Message Formats for Stateful Address Autoconfiguration with DHCPv6

10.1. Challenge option

    0                   1                   2                   3
    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 = TBD          |             Length            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |            Subtype            |            reserved           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                           Challenge...
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

      Type               The Type field identifies the option as a Local
                         Challenge option.

      Length             The Length of the option in octets not
                         including the Type and Length fields.

      Subtype            The Subtype field identifies the type of the
                         challenge.  Currently defined subtypes are:

                          -  Local Challenge:  Challenge issued by the
                             DHCP server to the client, 0

                          -  Home Challenge:  Challenge issued by AAAH
                             to the client, 1

                          -  Client Challenge:  Challenge issued by the
                             client to AAAH, 2

      reserved           0, used for aligning the Challenge field.

      Challenge          The actual challenge data.
















Perkins, Tacsik, Eklund         Expires 1 November 2003         [Page 26]


Internet Draft                 AAA for IPv6                   1 May 2003


10.2. Client NAI option

    0                   1                   2                   3
    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 = TBD          |             Length            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |            Client Network Access Identifer (NAI) ...
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

      Type                The Type field identifies the option as a
                          Client Identifier option.

      Length              The Length of the option in octets not
                          including the Type and Length fields.

      Client NAI          The client NAI formatted according to
                          RFC2486 [1]


10.3. Timestamp option

    0                   1                   2                   3
    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 = TBD          |             Length            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                        Timestamp ...
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

      Type               The Type field identifies the option as a
                         Timestamp option.

      Length             The Length of the option in octets not
                         including the Type and Length fields.

      Timestamp          Timestamp value in some format mutually
                         intelligible to the client and AAAH.













Perkins, Tacsik, Eklund         Expires 1 November 2003         [Page 27]


Internet Draft                 AAA for IPv6                   1 May 2003


10.4. Lifetime option

    0                   1                   2                   3
    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 = TBD          |             Length            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                           Lifetime                            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

      Type              The Type field identifies the option as a
                        Timestamp option.

      Length            4

      Lifetime          Lifetime in seconds indicating the validity
                        period of a successful AAA verification.


10.5. Security Data option

    0                   1                   2                   3
    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 = TBD          |             Length            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |            Subtype            |            reserved           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                              SPI                              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                         Security Data...
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

      Type                   The Type field identifies the option as a
                             Timestamp option.

      Length                 The Length of the option in octets not
                             including the Type and Length fields.

      Subtype                Currently two subtypes are defined:  AAA
                             Credential (0) and AAAH Authenticator (1).

      reserved               0, used for aligning the Challenge field.

      Security Data          The actual payload.






Perkins, Tacsik, Eklund         Expires 1 November 2003         [Page 28]


Internet Draft                 AAA for IPv6                   1 May 2003


10.6. Generalized Key Reply option

   0                   1                   2                   3
   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 = TBD          |             Length            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |            Subtype            |            reserved           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                           AAAH SPI                            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                            Key SPI                            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                          Encoded Key...
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

      Type          The Type field identifies the option as a Timestamp
                    option.

      Length        The Length of the option in octets not including
                    The Type and Length fields.

      Subtype       Currently three pairs of subtypes are defined:

                    Client-Attendant authentication key: Key to be used
                    between the current attendant and the client for
                    IPSec authentication (1)

                    Client-Attendant encryption key: Key to be used
                    between the current attendant and the client for
                    IPsec encryption (2)

                    MN-HA authentication key: Key to be used between
                    The home agent and the client for Ipsec
                    authentication (4)

      reserved      0, used for aligning the next field.

      AAAH SPI      This field indicates the security association
                    between the client and AAAH which should be used by
                    the client to interpret the Encoded Key Data field.

      Key SPI       This field indicates the SPI value for the new
                    security association into which the key should be
                    inserted.

      Encoded Key   This field contains the key, along with any other
                    information required by the client to create the
                    security association.  The contents of the field
                    MUST be encrypted by AAAH as specified by AAAH SPI.

Perkins, Tacsik, Eklund         Expires 1 November 2003         [Page 29]


Internet Draft                 AAA for IPv6                   1 May 2003


11. Security Considerations

   Source address based packet filtering does not guarantee that only
   authorized clients will be able to send out traffic through the
   router.  An attacker can fake the source address of IP packets.  In
   situations where strong protection is needed, clients should be
   required to use an IPSec AH tunnel to the router.


12. Open Issues and Discussion

12.1. Packet Service Filter

   Future work may be needed to determine how services can be
   updated dynamically based on the authorized services.  A typical
   service filter will permit/deny a filter rule based on upper layer
   information for the authenticated IP address.

   The attendant could prepare an ACL with service filters based on the
   AAA response for the authenticated services for the different UDP/TCP
   ports.


12.2. Use of Destination Options

   An alternative to defining new ICMPv6 messages and associated options
   will be to define new IPv6 destination options for all AAA related
   payload.  One disadvantage is that the length of destination options
   is limited by the 8-bit length field.  An advantage is that embedded
   data may be transported more naturally using either a Routing Header
   or IP-in-IP encapsulation, thereby avoiding the need for something
   like the Embedded Data option.


12.3. AAAL

   If QoS or other traffic parameters affecting the whole site are
   received from the AAAH, the AAAL SHOULD have some means to enforce
   these.  In this case the AAAL SHOULD also enforce some form of
   filtering separate from the DHCP infrastructure.


12.4. Other

   How are the AAA Credentials computed?

   Do we need the padding in the DHCPv6 options?




Perkins, Tacsik, Eklund         Expires 1 November 2003         [Page 30]


Internet Draft                 AAA for IPv6                   1 May 2003


Contributors

   Patrik Flykt (Nokia)


References

    [1] B. Aboba and M. Beadles.  The Network Access Identifier.
        Request for Comments (Proposed Standard) 2486, Internet
        Engineering Task Force, January 1999.

    [2] L. Blunk and J. Vollbrecht.  PPP Extensible Authentication
        Protocol (EAP).  Request for Comments (Proposed Standard) 2284,
        Internet Engineering Task Force, March 1998.

    [3] J. Bound, C. Perkins, M. Carney, and R. Droms.  Dynamic Host
        Configuration Protocol for IPv6 (DHCPv6) (work in progress).
        Internet Draft, Internet Engineering Task Force, January 2001.

    [4] S. Bradner.  Key words for use in RFCs to Indicate Requirement
        Levels.  Request for Comments (Best Current Practice) 2119,
        Internet Engineering Task Force, March 1997.

    [5] B. Aboba et al.  Criteria for Evaluating AAA Protocols for
        Network Access.  Request for Comments (Proposed Standard) 2989,
        Internet Engineering Task Force, November 2000.

    [6] S. Glass, T. Hiller, S. Jacobs, and C. Perkins.  Mobile IP
        Authentication, Authorization, and Accounting Requirements.
        Request for Comments (Proposed Standard) 2977, Internet
        Engineering Task Force, October 2000.

    [7] D. Johnson and C. Perkins.  Mobility Support in IPv6 (work in
        progress).
        draft-ietf-mobileip-ipv6-15.txt, October 2001.

    [8] T. Narten, E. Nordmark, and W. Simpson.  Neighbor Discovery for
        IP Version 6 (IPv6).  Request for Comments (Draft Standard)
        2461, Internet Engineering Task Force, December 1998.

    [9] C. Perkins.  IP Mobility Support.  Request for Comments
        (Proposed Standard) 3220, Internet Engineering Task Force,
        December 2001.

   [10] S. Thomson and T. Narten.  IPv6 Stateless Address
        Autoconfiguration.  Request for Comments (Draft Standard) 2462,
        Internet Engineering Task Force, December 1998.




Perkins, Tacsik, Eklund         Expires 1 November 2003         [Page 31]


Internet Draft                 AAA for IPv6                   1 May 2003


Addresses

   Questions about this memo can be directed to the authors:


     Ernie Tacsik                     Thomas Eklund
     Nokia Inc.                       Xelerated Networks
     6000 Connection Drive 3:1000     Regeringsgatan 67
     Irving, Texas 75039
     USA                              103 86 Stockholm
                                      Sweden
     Phone:  +1 972 894 4044          Phone:  +46 8 50625753
     E-mail: ernie.tacsik@nokia.com   E-mail: thomas.eklund@xelerated.com
     Fax:  +1 972 894 5525            Fax:  +46 8 54553211



     Charles E. Perkins
     Communications Systems Lab
     Nokia Research Center
     313 Fairchild Drive
     Mountain View, California 94043
     USA
     Phone:  +1-650 625-2986
     EMail:  charliep@iprg.nokia.com
     Fax:  +1 650 625-2502

























Perkins, Tacsik, Eklund         Expires 1 November 2003         [Page 32]