Internet DRAFT - draft-kaaps-acp

draft-kaaps-acp



KAAPS                                                          K. Burda
Internet Draft                            Brno University of Technology
Intended status: Informational                               I. Strasil
Expires: June 2012                        Brno University of Technology
                                                               T. Pelka
                                          Brno University of Technology
                                                             P. Stancik
                                          Brno University of Technology
                                                       December 5, 2011


                       Access Control Protocol (ACP)
                          draft-kaaps-acp-01.txt


Status of this Memo

   This Internet-Draft is submitted in full conformance with the
   provisions of BCP 78 and BCP 79.

   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

   This Internet-Draft will expire on June 5, 2009.

Copyright Notice

   Copyright (c) 2011 IETF Trust and the persons identified as the
   document authors. All rights reserved.

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents
   (http://trustee.ietf.org/license-info) in effect on the date of
   publication of this document. Please review these documents




Burda                    Expires June 5, 2012                  [Page 1]

Internet-Draft      Access Control Protocol (ACP)         December 2011


   carefully, as they describe your rights and restrictions with respect
   to this document.

Abstract

Access Control Protocol (ACP) is a protocol for unified implementation
of various methods for computer device access control. The protocol
allows two devices to negotiate required assets, negotiate an
authentication method, do authentication, deliver the access parameters
and do accounting, all within one so called "transaction". Separate
transactions can be joined so that more devices can be added to the
access control operation.

Table of Contents


   1. Introduction...................................................3
   2. Conventions used in this document..............................3
   3. Messages of ACP protocol.......................................4
      3.1. ACP message structure.....................................4
      3.2. ACP message types.........................................8
   4. AVP formats and types.........................................10
      4.1. AVP formats..............................................10
      4.2. AVP types................................................11
         4.2.1. Entity names........................................11
         4.2.2. Device addresses....................................12
         4.2.3. Method codes........................................12
         4.2.4. Asset codes.........................................13
         4.2.5. Transaction outputs.................................14
         4.2.6. Interoperability....................................15
         4.2.7. Cryptographic primitives............................16
         4.2.8. Supplemental AVPs...................................17
   5. ACP protocol transactions.....................................19
      5.1. Transaction description..................................19
      5.2. Reduced transactions.....................................20
      5.3. Principles of communication..............................20
      5.4. ACP-VSA protocol.........................................22
      5.5. Joining transactions.....................................22
   6. Security Considerations.......................................24
   7. IANA Considerations...........................................25
   8. References....................................................25
   9. Acknowledgments...............................................25







Burda                    Expires June 5, 2012                  [Page 2]

Internet-Draft      Access Control Protocol (ACP)         December 2011


1. Introduction

   The ACP is a protocol for unified implementation of various methods
   for controlling the access to assets of network devices (such as data
   on servers or communication services on Access Points). The ACP is
   used for the access control by so called access control (AC) portals
   (portals for short). The A portal is a part of a network device which
   controls the access of other devices to the assets of that device or
   which negotiates the access of applications of the device to other
   devices.

   The protocol allows any pair of devices to determine required assets,
   determine an authentication method, do authentication, deliver
   authentication parameters and do accounting. A sequence of messages
   related to one concrete asset access control is called a transaction,
   the portal of applying device is called a Supplicant and the portal
   providing the assets is called a Provider.

   The Supplicant and the Provider can communicate directly or through
   more portals within one transaction. Different ACP transactions can
   be joined in various ways by which means it is possible to
   incorporate other portals to the access control process.

   The portal is composed of a core and additional optional modules. By
   the choice of modules, an administrator of a network device can set
   up the portal to enforce an access control policy working with
   particular available hardware. The modules are categorized as
   communication, authentication and policy modules. The communication
   module allows the communication between portals over a chosen
   communication channel (for example, UDP channel, TLS, USB, EAPoL
   etc.). The authentication module allows the execution of chosen
   authentication methods (for example, EAP-MD5, EAP-TLS etc.). The
   policy module allows the administrator to define an access control
   algorithm for controlling the assets of the device (for example, data
   on a hard drive). The portal can have more modules of the same type.

2. Conventions used in this document

   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 RFC-2119 [1].



Burda                    Expires June 5, 2012                  [Page 3]

Internet-Draft      Access Control Protocol (ACP)         December 2011



   The data types used in our specification are following:
   o  Octet: a data unit of eight bits.
   o  Text: a sequence of octets containing UTF-8 encoded characters
     [2].
   o  String: a sequence of octets containing binary data (values 0
     through 255 decimal, inclusive).
   All lengths are given in octets if not stated otherwise.


3. Messages of ACP protocol

3.1. ACP message structure

   The structure of an ACP message is illustrated in Fig. 1. The message
   is composed of a header and N attribute-value pairs (AVPs, see Chap.
   4), where N = 0, 1, 2, ....The message with N = 0 is called an empty
   message.



    +----------+-----------+-----------+---------------+-----------+
    |  HEADER  |   AVP_1   |   AVP_2   |      ....     |   AVP_N   |
    |  7       |           |           |               |           |
    +----------+-----------+-----------+---------------+-----------+

                     Figure 1  ACP message structure.



   The message header (see Fig. 2) is composed of CODE, IDENTIFIER and
   LENGTH fields.



    +------+------------+------------+
    | CODE | IDENTIFIER |   LENGTH   |
    | 1    | 3          |   3        |
    +------+------------+------------+

                      Figure 2  ACP header structure.


   CODE field (1 octet):


Burda                    Expires June 5, 2012                  [Page 4]

Internet-Draft      Access Control Protocol (ACP)         December 2011


   The CODE field determines the type of the message and indicates that
   the message is the ACP protocol message. Such indication enables the
   coexistence of the ACP protocol with the EAP [3] protocol in one
   channel. The bit structure is shown in Fig. 3.













































Burda                    Expires June 5, 2012                  [Page 5]

Internet-Draft      Access Control Protocol (ACP)         December 2011




   +------+------------+------------+
   | P    | R3 .. R0   | M2 .. M0   |
   | 1 b  | 4 b        | 3 b        |
   +------+------------+------------+

                      Figure 3  CODE field structure.



   The meaning of CODE field bits is following:

   P bit:

   The P bit distinguishes the message of the ACP protocol from messages
   of the EAP protocol. The value of the P bit MUST be 1.

   R3 .. R0 bits:

   These bits are reserved for future use. Values of all bits MUST be
   set to 0.

   M2 .. M0 bits:

   These bits determine the type of the message (see chapter 3.2). The
   M0 bit also specifies the direction of a transaction. The messages
   with M0 = 0 are sent from the Supplicant to the Provider and messages
   with M0 = 1 are sent from the Provider to the Supplicant.

   IDENTIFIER field (3 octets):

   The IDENTIFIER field contains a unique identifier which can be used
   to distinguish messages of a particular transaction from messages of
   other transactions. The value of the IDENTIFIER field is set within a
   channel by the portal which sends the first message, called START
   message, over that particular channel. The portals determine the
   INDETIFIER value independently from next portals. A possible
   collision, where two portals use the same IDENTIFIER value, can be
   resolved by the M0 bit as follows.

   Fig. 4 illustrates the setting of the IDENTIFIER value. The figure
   depicts four portals called A, B, C, and D. In the case of


Burda                    Expires June 5, 2012                  [Page 6]

Internet-Draft      Access Control Protocol (ACP)         December 2011


   transaction T_1, portal A is the Supplicant, portal D is the Provider
   and portals B, C are transit nodes. The IDENTIFIER value within the
   channel A-B is set by portal A, within the B-C channel by portal B
   and within the C-D channel by portal C. In the case of transaction
   T_2, portal D is the Supplicant, portal A is the Provider and portals
   B, C are transit nodes. The IDENTIFIER value within the channel C-D
   is set by portal D, within the B-C channel by portal C and within the
   A-B channel by portal B. Therefore, within the B-C channel, the
   IDENTIFIER might be for both transactions the same. Nevertheless, the
   transactions can be distinguished by the M0 bit value. For our
   example and node C, the M0 bit is set to 1 in T_1 transaction because
   A is the Supplicant and D is the Provider. In transaction T_2, A is
   the Provider and D is the Supplicant, therefore M0 = 0.



                T_1, M0=0           T_1, M0=1
                +------->           <-------+
   +-----+    +-----+                   +-----+     +-----+
   |  A  |----|  B  |-------------------|  C  |-----|  D  |
   +-----+    +-----+                   +-----+     +-----+

                T_2, M0=1           T_2, M0=0
                +------->           <-------+

                Figure 4  IDENTIFIER value setting example.



   LENGTH field (3 octets):

   The LENGTH field indicates the full length of the message in octets,
   including the header. If any portal receives a message with wrong
   length, the whole transaction MUST be canceled by the receiving
   portal. The cancelation is made by deleting all operational
   information related to that transaction. The portal does not react on
   further messages of that transaction. Such behavior closes the
   connection. The cancelation of the transaction in other portals is
   done by the expiration of timers (see 5.3). Also, the Provider can
   cancel the transaction by sending an empty message FINISH.






Burda                    Expires June 5, 2012                  [Page 7]

Internet-Draft      Access Control Protocol (ACP)         December 2011


3.2. ACP message types

   The ACP protocol defines 6 types of messages, named START, OFFER,
   SPECIFICATION, REQUEST, RESPONSE and FINISH. Using these messages,
   transactions are implemented. A transaction is an interchange of
   messages between a Supplicant and a Provider who controls the access
   of the Supplicant to a concrete asset of the Provider.

   In general, the transaction is composed of following stages:

   o  start of the transaction (message START),

   o  negotiation of transaction parameters (OFFER and SPECIFICATION
      messages),

   o  authentication (REQUEST and RESPONSE messages),

   o  termination of transaction (FINISH message).

   During the start of a transaction, the connection between the
   Supplicant and the Provider is established. In the next phase, the
   parameters of the transaction are set (usually the requested asset
   and authentication type). The identity of the Supplicant and in some
   cases the identity of the Provider are verified during the
   authentication phase. In the last phase of the transaction, the asset
   (for example, an authentication factor for another transaction) or
   access parameters (acceptance/denial of access, given IP) are sent.
   The connection between the Supplicant and the Provider is terminated
   in this phase.

   The transactions are distinguished in each portal by a unique
   transaction identifier which is an inner variable of portals. The
   transactions are distinguished in each connection by the unique
   variable IDENTIFIER in the message header and by the M0 bit (see
   3.1).

   A more detailed description of message types is given below.

   START message (M2 .. M0 = [000]):
   The START message is always sent by the Supplicant. The connection
   between the Supplicant and the Provider is built based on information
   in START. The information needed to establish the connection is
   provided by the device administrator for each portal. From the
   information in START message and the information given by the device


Burda                    Expires June 5, 2012                  [Page 8]

Internet-Draft      Access Control Protocol (ACP)         December 2011


   administrator, it is possible to choose a next portal and respective
   channel for forwarding the START message. By such a technique, the
   whole connection between the Supplicant and the Provider is built.
   With the arrival of the START message, each participating portal
   registers the transaction and fixes the IDENTIFIER value for the
   connection to a next portal. All following messages of given
   transaction are routed the same way as the START message.



   OFFER (M2 .. M0 = [001]) message:
   The OFFER message is the first one from the pair used for the
   parameter establishment. It is always sent by the Provider, who uses
   the message for offering a transaction parameter (an asset, an
   authentication type etc.) or for asking for some parameter.

   SPECIFICATION (M2 .. M0 = [110]) message:
   The SPECIFICATION message is the second one from the pair used for
   the parameter establishment. It is always sent by the Supplicant, as
   a mandatory response to the OFFER message. The Supplicant sends the
   value of the chosen or requested transaction parameter in it.

   The interchange of OFFER and SPECIFICATION messages creates the
   transaction parameter negotiation phase. There can be more OFFER-
   SPECIFICATION pairs sent if the parameters are negotiated one by one.
   The parameter negotiation phase can be omitted from the transaction
   if only one parameter is available or if the Supplicant specifies
   correct parameter values in the START message.

   REQUEST (M2 .. M0 = [101]) message:
   The REQUEST message is the first one from the pair used for the
   authentication phase. It is always sent by the Provider. The message
   contains data required for authentication (for example, the EAP
   message).

   RESPONSE (M2 .. M0 = [010]) message:
   The RESPONSE message is the second one from the pair used for the
   authentication. It is always sent by the Supplicant, as a mandatory
   response to the REQUEST message. The message contains data required
   for authentication.

   The interchange of REQUEST-RESPONSE messages forms the authentication
   phase. There can be more REQUEST-RESPONSE pairs sent, depending on
   the type of authentication.


Burda                    Expires June 5, 2012                  [Page 9]

Internet-Draft      Access Control Protocol (ACP)         December 2011


   FINISH (M2 .. M0 = [111]) message:
   The FINISH message is always sent by the Provider. The message
   contains either an asset (for example, an authentication factor for
   another transaction) or access parameters (acceptance/denial of
   access, given IP etc.). The FINISH message closes the transaction and
   terminates the connection between the Supplicant and the Provider.

4. AVP formats and types

4.1. AVP formats

Attribute-Value Pair (AVP) is a data structure depicted in Fig 5.



                 +-------+-------+--------------------------+
                 |Type   |Length |         Value            |
                 |       |       |                          |
                 |1      |x      |                          |
                 +-------+-------+--------------------------+

                         Figure 5  AVP Structure.


   Type (1 octet) field:
   The Type field defines the meaning of data in the Value field.

   Length (x octet) field:
   The Length field defines the length of the Value field in octets. For
   SAVP (see below), x = 1, and for LAVP and CAVP, x = 2.

   Value (< 256^x octet):
   The Value field contains the actual data.


   There are three AVP formats defined.

   o  Short AVP (SAVP): contains only one data type shorter than 2^8
      octets. This format is defined for the transport of short blocks
      of data and for the usage on systems with restricted computational
      resources. The Type value of SAVP is in the range 0-127.






Burda                    Expires June 5, 2012                 [Page 10]

Internet-Draft      Access Control Protocol (ACP)         December 2011


   o  Long AVP (LAVP): contains only one data type shorter than 2^16
      octets. This format is defined for the transport of longer blocks
      of data. The Type value of LAVP is in the range 128-191.

   o  Container AVP (CAVP): contains one or more AVPs of any types. CAVP
      can contain various SAVPs, LAVPs and CAVPs in any combination. The
      total length of all combined AVPs MUST be shorter than 2^16
      octets. CAVP is defined for combining more AVPs to a single AVP.
      The common criterion can be the same AVP type, the same
      authentication code of a group etc. The Type value of CAVP is in
      the range 192-255.

   If the Supplicant or the Provider receives an AVP of a type which
   cannot be processed, the transaction MUST be canceled. The
   cancelation is done by the deletion of all operational information
   related to the transaction. The cancelation of the transaction in
   other portals is made by the expiration of timers. Also, the Provider
   can cancel the transaction by sending an empty message FINISH.

4.2. AVP types

4.2.1. Entity names

   Following AVPs allow the transport of names of entities (persons or
   devices). Portals can identify Supplicants, Providers, Authenticators
   (devices which are able to authenticate the Supplicant) and
   Accountants (devices, to which the information about Supplicant
   access are sent) from these names. The format of notation of these
   AVPs is NAME_AAA_B, where AAA is the abbreviation of an entity role
   (SUP = Supplicant, PRO = Provider, AUT = Authenticator, ACC =
   Accountant). The letter on B position denotes whether the name is
   Local (L) or Global (G). The names can be, for example, of e-mail
   type (entity_name@domain_name) or of phone number type
   (+xyz123456789).

   Name           Meaning                          AVP Type Value Type

   NAME_SUP_G     Global name of Supplicant        0        Text
   NAME_PRO_G     Global name of Provider          1        Text
   NAME_AUT_G     Global name of Authenticator     2        Text
   NAME_ACC_G     Global name of Accountant        3        Text
   NAME_SUP_L     Local name of Supplicant         4        Text


Burda                    Expires June 5, 2012                 [Page 11]

Internet-Draft      Access Control Protocol (ACP)         December 2011


   Name           Meaning                          AVP Type Value Type

   NAME_PRO_L     Local name of Provider           5        Text
   NAME_AUT_L     Local name of Authenticator      6        Text
   NAME_ACC_L     Local name of Accountant         7        Text

4.2.2. Device addresses

   The following AVPs allow the transport of device addresses. The
   format of notation of these AVPs is ADDR_AAA_B, where AAA is the
   abbreviation of entity role (SUP = Supplicant, PRO = Provider, AUT =
   Authenticator, ACC = Accountant). The address is always numerical and
   its type is given by the length of the address. IPv6 is 16 octets
   long, MAC is 6 octets long, IPv4 is 4 octets long and TCP/UDP ports
   are 2 octets long. The letter on B position denotes whether the
   address is Local (L) or Global (G). Local addresses are defined by
   the administrator of the location.

   Name           Meaning                          AVP Type Value Type

   ADDR_SUP_G     Global address of Supplicant        16       String
   ADDR_PRO_G     Global address of Provider          17       String
   ADDR_AUT_G     Global address of Authenticator     18       String
   ADDR_ACC_G     Global address of Accountant        19       String
   ADDR_SUP_L     Local address of Supplicant         20       String
   ADDR_PRO_L     Local address of Provider           21       String
   ADDR_AUT_L     Local address of Authenticator      22       String
   ADDR_ACC_L     Local address of Accountant         23       String

4.2.3. Method codes

   The following AVPs allow the transport of authentication method
   codes. Globally, the EAP protocol methods are expected to be used,
   therefore SAVP of EAP type is defined. In the SAVP, the EAP Type (for
   example, 4 for the MD5-Challenge method) is the method code [3]. The
   length of the code is usually 1 octet. SAVP of the LAM type is
   defined for locally defined authentication methods. In that SAVP, the
   codes are defined by the administrator of the location.

   Name           Meaning                          AVP Type Value Type

   EAP            EAP authentication method           32       String
   LAM            Local authentication method         33       String



Burda                    Expires June 5, 2012                 [Page 12]

Internet-Draft      Access Control Protocol (ACP)         December 2011


   A concrete transcript of ACP messages with the definition of content
   of these messages is called a variant of the ACP protocol. The
   default variant of the ACP is the Variant of Single Answers (ACP-VSA,
   see 5.4). After mutual agreement, it is also possible to choose a
   different variant of ACP to get a more efficient protocol. The switch
   to a newly agreed variant of the protocol is done by sending and
   receiving a SPECIFICATION message, where the Supplicant chooses the
   variant.

   The variants of the ACP can be global and local. The code of a global
   variant is a six digit number. The first four digits represent the
   RFC number where the method is defined. The last two digits define
   the sequence number of the variant within the RFC. Variants are
   numbered starting with 1 according to their order in RFC. The ACP-VSA
   code is set to 000000. The local variant of the ACP protocol is
   defined by the administrator of the location.
   For each of ACP protocol variants, there are AVP types reserved. They
   can be used by the variant creators with respect to their needs. The
   reserved SAVP types are in the interval 96 - 127, LAVP types are in
   176 - 191 and CAVP types are in 240 - 255. The meaning of these AVPs
   depends on agreed ACP protocol variant.

   Following AVPs allow both sides to negotiate the variant of the ACP
   protocol.

   Name           Meaning                          AVP Type Value Type

   GVP            Global protocol variant             34       Text
   LVP            Local protocol variant              35       Text


4.2.4. Asset codes

   The following AVP codes allow the transport of asset codes. The
   assets can be encoded globally or locally. For the global asset
   encoding, there is no existing standard available and therefore it is
   here defined that the Value Type is an octet and assets have
   following values:

   o  0 = implicit asset. It is an asset implicitly provided by the
      Provider (for example, the access of users to a network in the
      case of an Access Point device).



Burda                    Expires June 5, 2012                 [Page 13]

Internet-Draft      Access Control Protocol (ACP)         December 2011


   o  1 = entity authentication. The Provider of this asset is able to
      authenticate an entity and the result of authentication can be
      sent in the FINISH message.

   The principle of local encoding is based on a hierarchical tree,
   where every node can be forked using a respective octet value into
   next 256 nodes. Every asset is linked to one node of the tree;
   therefore each asset can be encoded as a string of octets. The
   forking should be done by logical criterions. For example, the
   administrator can set in the first level that 1 = assets defined for
   the access of users and 2 = assets defined for the access of the
   administrator (for example, the configuration files of a computer).
   Further, the administrator defines that the users can access the
   services 1 = web server, 2 = mail server etc. The code for the mail
   server access is then 1.2.

   The Supplicant usually does not know the codes of assets in the
   location, but he or she can learn these codes form the OFFER message.
   In each OFFER message, more asset codes can be transferred. All
   assets should be from the same hierarchical level and should have a
   common parent node. The Supplicant chooses one concrete item from the
   SPECIFICATION message. This item can represent a concrete asset or a
   group of assets on a hierarchically lower level.

   Name           Meaning                          AVP Type Value Type

   ASSET_G        Global asset code                36       String
   ASSET_L        Local asset code                 37       String

4.2.5. Transaction outputs

   The following AVPs are related to the FINISH message. In this
   message, the Provider informs the Supplicant about the result of the
   transaction, states the parameters for the asset access and
   eventually sends the assets. The RESULT code contains the result of
   the transaction. Value 0 represents the state where the access is
   accepted and value 2 means that the access is denied. Value 1
   represent the state, where the transaction is finished but the access
   control process is still running. This value is defined for cases
   where the final result of the transaction is presented by other
   techniques (for example, door opening for an access card owner).

   Addresses are parameters required for the access to assets. To
   transfer addresses, already defined AVPs are used. The notation is
   ADDR_AAA_B, where AAA is the entity role (SUP = Supplicant, PRO =


Burda                    Expires June 5, 2012                 [Page 14]

Internet-Draft      Access Control Protocol (ACP)         December 2011


   Provider, AUT = Authenticator and ACC = Accountant). The letter on B
   position denotes whether the address is Local (L) or Global (G). In
   the context of the FINISH message type, SUP is the address given to
   the Supplicant, PRO is the address of the device providing the access
   to assets, AUT is the address of the device which can authenticate
   the Supplicant on behalf of other devices and ACC is the address of
   the device which is doing the evidence of Supplicant's accesses.

   Names, codes and authentication factors needed for other assets are
   also the assets of the FINISH message. To transfer names, the already
   defined AVPs are used. The notation is NAME_AAA_BC, where AAA is the
   entity role (SUP = Supplicant, PRO = Provider, AUT = Authenticator
   and ACC = Accountant). Meaning of abbreviations is the same as in the
   previous section. Already defined methods and assets are used for the
   transport of codes. In the case of further authentication, the
   Supplicant would need some secret information to prove his or her
   identity (so called proving factor) and eventually information for
   the verification of other side (so called verification factor). Both
   factors can be in the form of a password, cryptographic key etc. To
   transfer the authentication factors, the LAVPs of PROVE and VERIF
   types are used.

   A specific form of a START message can be required for later
   transactions. Therefore, a correctly created START message might be
   an asset. To transfer such asset, the CAVP of FORM_START type can be
   used.

   Name           Meaning                          AVP Type Value Type

   RESULT         Transaction result               38       String
   PROVE          Supplicant's proving factor      134      String
   VERIF          Supplicant's verification factor 135      String
   FORM_START     START message content            212      -


4.2.6. Interoperability

   The following AVPs allow the interoperability between the systems
   based on the ACP protocol and the systems based on RADIUS [4, 5],
   Diameter [6] or Kerberos [7] protocols. These AVPs contain either
   complete messages of those systems (MESS) or their particular AVPs.
   The inclusion of the AVPs from the RADIUS and Diameter protocols


Burda                    Expires June 5, 2012                 [Page 15]

Internet-Draft      Access Control Protocol (ACP)         December 2011


   significantly enhances the set of ACP AVPs. Therefore, if there is no
   suitable AVP defined in this standard, a respective AVP from the
   RADIUS or Diameter standard can be used.

   Name           Meaning                          AVP Type Value Type

   MESS_RADIUS    RADIUS protocol message          128      String
   MESS_DIAMETR   Diameter protocol message        129      String
   MESS_KERBER    Kerberos protocol message        130      String
   AVP_RADIUS     RADIUS protocol AVP              65       String
   AVP_DIAMETR    Diameter protocol AVP            131      String


4.2.7. Cryptographic primitives

   Confidentiality and authenticity of messages transferred by the ACP
   protocol can be provided externally or internally. The external
   protection is based on the usage of secure connections or encrypted
   connections (for example IPSec [8] or TLS [9]). The internal
   protection is based on autonomous cryptographic protection of ACP
   protocol messages. Such protection is based on cryptographic
   primitives from the mandatory cipher suite of the TLS protocol [9].

   Name           Meaning                          AVP Type Value Type

   INIT           Initiation Vector (IV)           48       String
   PMS            Premaster secret                 49       String
   CERT           Certificate                      160      String
   AES            Cryptogram encrypted by AES      161      String
   ENC            Cryptogram with IV               224      -
   HMAC           Hashed MAC                       50       String
   MAC            Data with HMAC                   225      -
   RSA            Cryptogram encrypted by RSA      162      String
   PSS            Digital signature PSS            163      String
   SIG            Data with PSS                    226      -
   CRYPT          Cryptographic container          227      -


   o  INIT (SAVP): contains the initiation vector. In a right context,
      it can contain nonce (a non-repeating random value).




Burda                    Expires June 5, 2012                 [Page 16]

Internet-Draft      Access Control Protocol (ACP)         December 2011


   o  PMS (SAVP): contains a premaster secret. In a right context, it
      can contain AES cryptographic key. This AVP is transported in an
      encrypted form in RSA LAVP.

   o  CERT (LAVP): contains a X.509 certificate [10].

   o  AES (LAVP): contains data (for example, AVP string) encrypted in
      CBC mode by AES cipher with a 128 b key.

   o  ENC (CAVP): contains INIT AVP followed by the AES AVP. INIT
      contains the initiation vector needed for the decryption of data
      in AES AVP.

   o  HMAC (SAVP): contains the authentication code of the chain of all
      AVPs which are ahead of this SAVP. HMAC is determined using the
      SHA1 function [11].

   o  MAC (CAVP): contains AVP string followed by a final HMAC AVP. HMAC
      contains the authentication code of the AVP string.

   o  RSA (LAVP): contains AVP string encrypted by the RSA cipher [12].

   o  PSS (LAVP): contains a digital signature of all AVPs placed ahead,
      within a given SIG. PSS is determined by [12].

   o  SIG (CAVP): contains AVP string followed by a final AVP of PSS
      type.

   o  CRYPT (CAVP): container reserved for future use in complex
      cryptographic securing of the ACP protocol.

4.2.8. Supplemental AVPs

   If the parameter negotiation phase expects an interaction with a
   person, the codes of authentication methods, assets etc. can be
   appended by a text description. SAVP of a TXT type, which is designed
   for the text description of AVPs standing in front of this AVP, can
   be used. To gather the code and its description, CAVP with an
   extension _TX can be used. This CAVP type is always composed of two
   AVPs. The first AVP contains the code and the second one contains the
   text description of the code.




Burda                    Expires June 5, 2012                 [Page 17]

Internet-Draft      Access Control Protocol (ACP)         December 2011


   Name           Meaning                          AVP Type Value Type

   TXT            Description of previous AVP         64       Text
   EAP_TX         EAP method code with description    192      -
   LAM_TX         LAP method code with description    193      -
   ASSET_G_TX     Global asset code with description  194      -
   ASSET_L_TX     Local asset code with description   195      -


   To make messages containing more SAVPs of the same type shorter, CAVP
   of a LIST type is defined.


   Name           Meaning                          AVP Type Value Type

   LIST           List of SAVPs of same type          196      -

   If the length (L) of gathered SAVPs is the same, the Value field
   structure of this CAVP for the case of N different SAVPs of the same
   type T can be depicted as in Fig. 6.



   +-----+-----+-------+-------+         +-------+
   |  T  |  L  | Val_1 | Val_2 | . . . . | Val_N |
   +-----+-----+-------+-------+         +-------+

     Figure 6  Value field for the CAVP LIST for the case of constant
                           length of all SAVPs.


   The description of fields is following.
   o  T (1 octet): The field contains the type of gathered SAVPs.
   o  L (1 octet): The field contains the length of the Value field of
     gathered SAVPs.
   o  Val_x (< 2^8 octet): The field contains the value of the Value                     th          field of x  SAVP.


   If gathered SAVPs are of different length, then the structure of the
   Value field of the LIST type CAVP for N different SAVPs of a same
   type T is illustrated in Fig. 7.



Burda                    Expires June 5, 2012                 [Page 18]

Internet-Draft      Access Control Protocol (ACP)         December 2011


   +-----+-----+-----+-----+-----+-----+         +-----+-----+
   |  T  |  L  |Len_1|Val_1|Len_1|Val_1| . . . . |Len_N|Val_N|
   +-----+-----+-----+-----+-----+-----+         +-----+-----+

       Figure 7  Value field for LIST CAVP for the case of SAVPs of
                             different length.


   The description of fields is following.
   o  T (1 octet): The field contains the type of gathered SAVPs.
   o  L (1 octet): The field contains the value 0. This value signals
     the variable-length SAVP list.
   o  Len_x (1 octet): The field contains the length of the Val_x field.                                                                 th        o  Val_x (< 2^8 octet): The field contains the value of x  SAVP
     Value field.

5. ACP protocol transactions

5.1. Transaction description

   The ACP protocol allows the Supplicant and the Provider to negotiate
   required assets, negotiate the authentication method, do
   authentication, deliver access parameters and do accounting. Both
   portals communicate by alternant message sending (so called lock-step
   protocol), which means, that the portal can send a new message only
   after receiving a message from a partner. Eventual segmentation,
   error correction etc. is resolved by a respective communication
   module.

   The interchange of messages for one transaction is following.

   1. The Supplicant sends the START message to the Provider.

   2. If the Provider does not know all parameters required for the
      transaction execution (typically the required asset and the type
      of authentication), then the Provider initiates the parameter
      negotiation phase represented by the interchange of OFFER-
      SPECIFICATION messages. After establishing all required
      parameters, the process continues with the following item.

   3. The Provider initiates the authentication phase represented by the
      interchange of REQUEST-RESPONSE messages.


Burda                    Expires June 5, 2012                 [Page 19]

Internet-Draft      Access Control Protocol (ACP)         December 2011


   4. Based on the result of the authentication phase, the Provider
      finishes the transaction with the FINISH message type.

   If the Provider does not receive a SPECIFICATION message after
   sending an OFFER message or if the Provider does not receive a
   RESPONSE message after sending a REQUEST message, the Provider MUST
   interrupt the transaction by sending an empty FINISH message.

5.2. Reduced transactions

   A transaction of the ACP can take place in a so called reduced form.
   If the Supplicant provides all required parameters in the START
   message, then the OFFER-SPECIFICATION message interchange is not
   necessary. If the Supplicant and the Provider are the end nodes of a
   secure channel (for example, a TLS channel), it is also possible to
   eliminate the REQUEST-RESPONSE message interchange. The reason is the
   fact that the authenticity of the partner is provided by the secure
   channel. In these cases, the ACP transaction can be reduced to a
   START - FINISH message interchange. This reduction is convenient for
   the communication between devices using a distributed access control
   system. The reduced ACP protocol transaction can be used for the
   communication between an AAA server (Supplicant) and a network Access
   Point (Provider). In that case, the START message contains the order
   for the Provider to allow an authenticated user to access a network.
   The FINISH message contains the acknowledgement of START message
   receiving. The same procedure can be used for accounting as well.

5.3. Principles of communication

   The progress of a transaction can be controlled by empty messages and
   empty AVPs which are the AVPs with zero length of the Value field
   (i.e. with missing Value field). Using an empty message, the
   Supplicant can preliminarily terminate the transaction. If the
   Supplicant sends an empty message any time after the start of a
   transaction (i.e. any time after sending the START message), the
   Provider MUST terminate the transaction by sending an empty FINISH
   message.

   Using an empty AVP, the Provider can ask the Supplicant about any
   parameter. For example, by sending an empty NAME_AUT_G type AVP, the
   Provider asks for the global name of an authenticator which can
   authenticate the Supplicant. If the Supplicant replies with



Burda                    Expires June 5, 2012                 [Page 20]

Internet-Draft      Access Control Protocol (ACP)         December 2011


   forwarding an empty AVP, it means that he or she does not know the
   information.

   The communication is controlled by the Provider in the ACP protocol.
   The Supplicant can request the required asset in the START message,
   propose a protocol variant etc., but the Provider can ignore this
   information and ask for it during a later phase of communication. The
   providing device administrator can also set the device in such a
   manner that the portal will react only on a START message with
   certain properties.

   There can be more assets in every network device. The transit of ACP
   messages to other devices, the change of device's configuration file,
   provided service, etc. can be all considered assets. The device
   administrator can control the access to each asset separately
   according to different access control policies. The access control
   policy for each asset is defined in a respective Policy Module. The
   Policy Module defines the behavior of the portal during the
   transaction with conformance to the access control method and
   contains information needed for running the transaction (for example,
   required authentication methods, routing information etc.). From this
   perspective, the ACP protocol can be viewed as a general framework
   usable for the realization of a modular access system of any size and
   complexity.

   The loss of any message or the transmission error should be resolved
   by respective communication modules of the portal and the ACP
   protocol therefore interprets all transmission errors as potential
   attacks. If the portal does not receive a correct answer within a
   given time interval, or if it receives multiple answers, the
   transaction is canceled. There is a timer started for each
   transaction in every portal after receiving a START message. The
   timer is reset after receiving next message of a transaction. The
   connection of each transaction of every portal is canceled after the
   expiration of its timer. The portal does not react on any next
   message. If any participating portal cancels the transaction, then
   the transaction is also canceled in all remaining portals due to the
   expiration of timers. The Provider can cancel the transaction by
   sending an empty FINISH message.





Burda                    Expires June 5, 2012                 [Page 21]

Internet-Draft      Access Control Protocol (ACP)         December 2011


5.4. ACP-VSA protocol

   Variant of Single Answers (ACP-VSA) is the default variant of the ACP
   protocol. The communication in this variant is following. If the
   START message contains all necessary parameters with correct values
   and the choice is allowed by the device administrator, the Provider
   switches to a transaction phase defined by the administrator, i.e. to
   the phase of authentication or to the phase of finish (see 5.2). In
   the opposite case, the AVPs from the START message are ignored and
   the Provider switches to the phase of negotiation. The communication
   is controlled by the Provider in such a manner that the Supplicant
   always answers with a single AVP. The procedure is following.

   The Provider sends an offer or a request in his OFFER message. The
   offer contains N different AVPs of the same type (for example,
   authentication methods) from which the Supplicant can choose one. The
   request contains one empty AVP and eventually other AVPs if they are
   needed to determine the answer. The Supplicant fills the empty AVP
   with a correct value in the Value field and sends it back. Therefore,
   the Supplicant sends only one AVP in his SPECIFICATION message. The
   returning AVP is a choice from a list or Supplicant's answer to a
   request. The Provider continues in sending next offers or requests
   according to a simple decision diagram, or executes actions.
   Provider's decision diagram is defined by the administrator of the
   device in the Policy Module. If the Supplicant puts two or more AVPs
   in his SPECIFICATION message, the Provider MUST terminate the
   transaction by sending an empty FINISH message.

   After parameter negotiation, the authentication message interchange
   takes place, followed by the FINISH message. The advantage of the
   ACP-VSA method is its universality and simplicity. To increase the
   security and speed of access control mechanism, it is possible to use
   specialized variants of the ACP protocol.

5.5. Joining transactions

   Elementary transactions of the ACP protocol can be joined to create
   more complex access control schemes with more participating network
   devices. The joining of transactions can be done by chaining or
   including.




Burda                    Expires June 5, 2012                 [Page 22]

Internet-Draft      Access Control Protocol (ACP)         December 2011


   The chaining of transactions is such joining, where accomplishing a
   T_i transaction is a condition or a reason for accomplishing a new
   transaction T_(i+1). An example of transaction chaining is a
   situation where the Supplicant receives an asset (for example, an
   authentication factor) in transaction T_i which allows him or her to
   receive another asset in next transaction T_(i+1) (for example access
   to data). Another example of transaction chaining is a situation
   where the Provider (for example, AAA server) negotiated access
   credentials (for example, cryptographic keys necessary for the
   network access) with the Supplicant in the transaction T_i and,
   through a transaction T_(i+1), these credentials are forwarded to a
   different network device (for example, a network Access Point).

   The transaction inclusion (see Fig. 8) is such joining where the new
   transaction T_(i+1) is started and finished during another
   transaction T_i for the reason of finishing the T_i transaction. Data
   of related transactions can be transited between these transactions.
   The transaction inclusion is typical in cases where the Provider must
   use another portal for Supplicant authentication. The transaction
   inclusion is depicted in Fig. 8. Portal A asks Portal B for an asset
   in the START_1 message. By this, the T_1 transaction is started.
   Let's assume that the START_1 message contains all correct
   transaction parameters. Under this assumption, it is not necessary to
   run the OFFER - SPECIFICATION message interchange and it is possible
   to proceed with authentication of Portal A. Portal B does not know
   the respective authentication factors and therefore it connects to
   Portal C which is able to authenticate Portal A. Let's assume that
   the B - C connection is of TLS type, i.e. both portals are
   authenticated during the connection set-up. Portal B opens a T_2
   transaction within the existing connection. The Provider from the T_1
   transaction is now in Supplicant's position and portal C is in
   Provider's position. Again, let's assume that the START message
   contains all correct transaction parameters needed for the required
   asset (i.e. for authentication of A and receiving the result). There
   is no need to send the OFFER-SPECIFICATION messages. Therefore,
   Portal C begins authentication by sending the message REQUEST_2.
   Portal B extracts respective AVPs from this message and places them
   to the REQUEST_1 message, which belongs to T_1 transaction. Portal A
   sends the RESPONSE_1 message; Portal B extracts the respective AVPs
   and puts them to the RESPONSE_2 message. RESPONSE_2 is sent to Portal
   C which does the verification check and sends the result of


Burda                    Expires June 5, 2012                 [Page 23]

Internet-Draft      Access Control Protocol (ACP)         December 2011


   authentication in the FINISH_2 message. This message also closes the
   T_2 transaction. Portal B decides about the result of T_1 based on
   the message FINISH_2 and resends the result to Portal A in FINISH_1
   message.



           Portal A             Portal B             Portal C
               |                   |                    |
               |+--Start_1-------->|                    |
               |                   |+--Start_2--------->|
               |                   |                    |
               |<--Request_1------+|<--Request_2-------+|
               |                   |                    |
               |                   |                    |
               |+--Response_1----->|+--Response_2------>|
               |                   |                    |
               |                   |                    |
               |                   |<--Finish_2--------+|
               |<--Finish_1-------+|                    |
               |                   |                    |
               |                   |                    |
               | -- transakce_1 -- | -- transakce_2 --  |
               |                   |                    |
               v                   v                    v

                Figure 8  Transaction inclusion principle.



   By joining the transactions, it is possible to create access control
   schemes of any complexity with any number of participating devices.
   The access of the Supplicant can be, for example, conditioned by his
   or her authentication by independent authenticators. By chaining of
   elementary transactions, it is also possible to create complex
   transactions for a conditional access of more entities to more assets
   (for example payment transactions).

6. Security Considerations

   A generic access control protocol framework is defined in this
   document. This framework allows designing different variants of


Burda                    Expires June 5, 2012                 [Page 24]

Internet-Draft      Access Control Protocol (ACP)         December 2011


   access control protocol from the viewpoint of both security
   requirements and security assurances. Therefore, the security aspects
   of each of these variants need to be approached individually.

7. IANA Considerations

   This document contains no identifiers to be assigned.

8. References

   [1]   S. Bradner: "Key words for use in RFCs to Indicate Requirement
         Levels", RFC 2119, March 1997.

   [2]   F. Yergeau: "UTF-8, a transformation format of ISO 10646", RFC
         2279, January 1998.

   [3]   B. Aboba, L. Blunk, J. Vollbrecht, J. Carlson, H. Levkowetz:
         "Extensible Authentication Protocol (EAP)", RFC 3748, June
         2004.

   [4]   C. Rigney, S. Willens, A. Rubens, W. Simpson: "Remote
         Authentication Dial In User Service", RFC 2865, June 2000.

   [5]   C. Rigney: "RADIUS Accounting", RFC 2866, June 2000.

   [6]   P. Calhoun, J. Loughney, E. Guttman, G. Zorn, J. Arkko:
         "Diameter Base Protocol", RFC 3588, September 2003.

   [7]   C. Neuman, T. Yu, S. Hartman, K. Raeburn: "The Kerberos Network
         Authentication Service (V5)", RFC 4120, July 2005.

   [8]   S. Kent, K. Seo: "Security Architecture for the Internet
         Protocol", RFC 4301, December 2005.

   [9]   T. Dierks, E. Rescorla: "The Transport Layer Security (TLS)
         Protocol Version 1.2", RFC 5246, August 2008.

   [10]  D. Cooper, S. Santesson, S. Farrell, S. Boeyen, R. Housley, W.
         Polk: "Internet X.509 Public Key Infrastructure Certificate and
         Certificate Revocation List (CRL) Profile", RFC 2459, May 2008.

9. Acknowledgments

   This document was prepared using 2-Word-v2.0.template.dot.





Burda                    Expires June 5, 2012                 [Page 25]