Internet DRAFT - draft-howlett-radsec-knp

draft-howlett-radsec-knp






Network Working Group                                         J. Howlett
Internet-Draft                                                 JANET(UK)
Intended status: Informational                                S. Hartman
Expires: April 23, 2012                                Painless Security
                                                        October 21, 2011


                     Key Negotiation Protocol (KNP)
                      draft-howlett-radsec-knp-02

Abstract

   The Key Negotiation Protocol enables an untrusting RADIUS client and
   RADIUS server to derive a key by reference to a mutually trusted
   actor called the Introducer.  This key may subsequently be used for
   one of two purposes.  First, it can credential a TLS PSK ciphersuite
   applied to a RadSec connection between the RADIUS client and RADIUS
   server; or secondly, to establish a trust relationship between the
   RADIUS client and a second Introducer that is trusted by the first
   Introducer.

   The composition of these capabilities enables a RADIUS client to
   establish a RadSec connection with any RADIUS server with whom it
   shares a direct or indirect trust relationship via one or more
   Introducers.

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).  Note that other groups may also distribute
   working documents as Internet-Drafts.  The list of current Internet-
   Drafts is at http://datatracker.ietf.org/drafts/current/.

   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."

   This Internet-Draft will expire on April 23, 2012.

Copyright Notice

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




Howlett & Hartman        Expires April 23, 2012                 [Page 1]

Internet-Draft                     KNP                      October 2011


   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
   carefully, as they describe your rights and restrictions with respect
   to this document.  Code Components extracted from this document must
   include Simplified BSD License text as described in Section 4.e of
   the Trust Legal Provisions and are provided without warranty as
   described in the Simplified BSD License.

Table of Contents

   1.  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  3
   2.  Motivation . . . . . . . . . . . . . . . . . . . . . . . . . .  3
   3.  Overview . . . . . . . . . . . . . . . . . . . . . . . . . . .  4
   4.  Conventions used in this document  . . . . . . . . . . . . . .  5
   5.  The KNP Actors . . . . . . . . . . . . . . . . . . . . . . . .  5
   6.  Relationships With Other Protocols . . . . . . . . . . . . . .  6
     6.1.  Relationship to EAP  . . . . . . . . . . . . . . . . . . .  6
     6.2.  Relationship to RADIUS . . . . . . . . . . . . . . . . . .  7
     6.3.  Relationship to the GSS API  . . . . . . . . . . . . . . .  7
     6.4.  Relationship to the HTTP . . . . . . . . . . . . . . . . .  7
   7.  Key Negotiation Protocol . . . . . . . . . . . . . . . . . . .  7
     7.1.  Operation Independent Flow . . . . . . . . . . . . . . . .  8
     7.2.  The Credentialing Operation  . . . . . . . . . . . . . . . 10
     7.3.  The Introduction Operation . . . . . . . . . . . . . . . . 10
   8.  Security Considerations  . . . . . . . . . . . . . . . . . . . 11
   9.  IANA Considerations  . . . . . . . . . . . . . . . . . . . . . 11
   10. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 11
   11. Normative References . . . . . . . . . . . . . . . . . . . . . 11





















Howlett & Hartman        Expires April 23, 2012                 [Page 2]

Internet-Draft                     KNP                      October 2011


1.  Introduction

   TLS encryption for RADIUS (RadSec) [I-D.ietf-radext-radsec] provides
   a mechanism for securing the communication between a RADIUS [RFC2865]
   client and server on the transport layer by using TLS [RFC5246].

   RadSec mandates the use of one of the [RFC5246] ciphersuites and
   recommends the use of two other ciphersuites specified in that
   document.  However any ciphersuite, including the TLS Pre-Shared Key
   (PSK) ciphersuites [RFC4279], may be used providing that it supports
   encryption.

   The Key Negotiation Protocol enables an untrusting RADIUS client and
   RADIUS server to derive a key by means of a mutually trusted actor
   called the Introducer.  This key may subsequently for two purposes.

   First, the key can be used to credential a TLS PSK ciphersuite when
   applied to a RadSec connection between the RADIUS client and RADIUS
   server, permitting a trusted exchange of RADIUS messages in the
   absence of a pre-existing relationship between the RADIUS client and
   RADIUS server.  This is described as "Credentialing".

   Secondly, the key can used as a credential by a RADIUS client to
   establish a trust relationship with a second Introducer that happens
   to be trusted by the first Introducer.  This is described as
   "Introduction".

   The composition of Credentialing and Introduction enables a RADIUS
   client to establish a RadSec connection with any RADIUS server with
   whom it shares an indirect trust relationship via one or more
   Introducers.

2.  Motivation

   The KNP is motivated by the following requirements:

   o  In the case of a non-federated RADIUS environment where a RADIUS
      client and RADIUS AS.server shares a direct trust relationship, a
      shared secret credential is used as the trust anchor between these
      systems.  In transitioning to the use of RadSec, it may be more
      convenient if these systems are able to continue using the
      existing credential technology rather than introduce a new
      credential technology (such as X.509 certificates), as this may
      impose significant changes to operational practices (such as
      deploying a Public Key Infrastructure).

   o  In the case of a federated RADIUS environment where RADIUS clients
      and RADIUS servers are associated with different domains,



Howlett & Hartman        Expires April 23, 2012                 [Page 3]

Internet-Draft                     KNP                      October 2011


      transitioning to the use of RadSec may impose a requirement to
      distribute and manage multiple trust anchors.  It may be more
      convenient if the systems within these domains were able to use a
      single trust anchor for RADIUS systems in all other domains, in
      addition to those systems within its own domain.  This may
      facilitate the scaling of large heterogeneous RADIUS environments
      where it may be difficult - for technical and/or administrative
      reasons - to impose support for even a small set of trust anchors.

   o  The use of multiple trust anchors within complex federated
      environments may impede essential trust management functions such
      as timely revocation.  Reducing the number of trust anchors may
      therefore improve trust management within these environments,
      particularly if it can be reduced to a single trust anchor.

3.  Overview

   The Key Negotiation Protocol (KNP) enables a RADIUS client and RADIUS
   server that do not share a direct trust relationship to derive a
   shared key by virtue of both systems having a trust relationship with
   an EAP server called the Introducer.  This key may be used for the
   following purposes:

   1.  Credentialing: the RADIUS client and RADIUS server can use the
       key to credential a TLS PSK ciphersuite applied to a RadSec
       connection.

   2.  Introduction: a credential can be derived from the key that can
       be used to authenticate the RADIUS client against a second
       Introducer that is trusted by the first Introducer.

   The composition of these capabilities enables a RADIUS client to
   derive a key that can be used to credential a RadSec connection with
   any other RADIUS server with whom it shares a common Introducer and,
   through transitivity, any number of intermediate Introducers.

   This transitivity of trust between a RADIUS client and RADIUS server
   across a chain of intermediate Introducers may appear very similar to
   the use of RADIUS proxies to establish a chain of trust between a
   RADIUS client and RADIUS server.  There is however a very significant
   difference:

   o  In the case of RADIUS proxy, the RADIUS messages emitted by the
      RADIUS client and RADIUS server must transit through the
      intermediate RADIUS proxy(ies).  There is no end-to-end
      relationship between the RADIUS client and RADIUS server, either
      in terms of connectivity or trust.




Howlett & Hartman        Expires April 23, 2012                 [Page 4]

Internet-Draft                     KNP                      October 2011


   o  In the case of KNP, the RADIUS messages are able to transit
      directly between RADIUS client and RADIUS server.  The path of
      transmissions between these systems is therefore entirely
      decoupled from the path of trust .  There is an end-to-end
      relationship between the RADIUS client and RADIUS server, both in
      terms of connectivity and trust.

   The use of RADIUS Proxies and Introducers are not mutually exclusive;
   deployers may choose to use both.

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

5.  The KNP Actors

   In the KNP, the RADIUS client and RADIUS server do not initially
   share a trust relationship.  Instead, these actors share a trust
   relationship with a mutually trusted third party known as the
   "Introducer".

   Figure 1 below depicts the trust relationships for a RADIUS client,
   RADIUS server and Introducer before the KNP has been invoked.

                                   Introducer
                                       /\
                                      /  \
                                     /    \
                               RADIUS      RADIUS
                               Client      Server

                                   Figure 1

   Figure 2 below depicts the new trust relationship between the RADIUS
   client, RADIUS server and Introducer after the KNP has been invoked.

                                   Introducer
                                       /\
                                      /  \
                                     /    \
                               RADIUS------RADIUS
                               Client      Server

                                   Figure 2

   Figure 3 below depicts the flow of RADIUS packets from the RADIUS



Howlett & Hartman        Expires April 23, 2012                 [Page 5]

Internet-Draft                     KNP                      October 2011


   client to the RADIUS server using the new trust relationship.

                                   Introducer



                               RADIUS ---> RADIUS
                               Client      Server

                                   Figure 3

   Note that the RADIUS messages are not routed by the Introducer, as
   they would in the case of a RADIUS Proxy.  Instead, they flow
   directly from RADIUS client to RADIUS server.

6.  Relationships With Other Protocols

   The KNP builds on a variety of protocols.  This section describes the
   relationship of KNP to these.

6.1.  Relationship to EAP

   In the KNP the RADIUS client assumes the role of an EAP peer.  In
   this role, it attempts to authenticate against a RADIUS server that
   assumes the role of a pass-through EAP authenticator.  An EAP server
   acts as the Introducer.

   The KNP enables all three actors - RADIUS client (EAP peer), RADIUS
   server (EAP authenticator) and Introducer (EAP server) - to establish
   a common view of their mutual relationships as described by the EAP
   names and keys that the EAP exchange yields, using the norms
   established by the EAP Key Management Framework [RFC5247].

   The RADIUS client must possess an EAP credential for the Introducer,
   allowing mutual authentication of both parties.

   Figure 4 below depicts the relationships between these actors:

                                   Introducer
                                       /\
                                      /  \
                                     /    \
                               RADIUS      RADIUS
                               Client      Server
                   (possessing an EAP
                       credential for
                      the Introducer)




Howlett & Hartman        Expires April 23, 2012                 [Page 6]

Internet-Draft                     KNP                      October 2011


                                   Figure 4

6.2.  Relationship to RADIUS

   The RADIUS server uses the RADIUS protocol to forward the EAP
   transaction to the Introducer.

   The RADIUS server must share a RADIUS secret with the Introducer,
   allowing mutual authentication of both actors.

   Figure 5 below depicts the relationships between these actors:

                                  Introducer
                                       /\
                                      /  \
                                     /    \
                               RADIUS      RADIUS
                               Client      Server
                   (possessing an EAP      (possessing a RADIUS
                       credential for      secret for
                      the Introducer)      the Introducer)

                                   Figure 5

6.3.  Relationship to the GSS API

   The KNP builds on the GSS API [RFC2743] framework by using the GSS
   EAP mechanism [I-D.ietf-abfab-gss-eap] and EAP [RFC3748].  The GSS
   EAP tokens are transported between the RADIUS client and RADIUS
   server using the HTTP Negotiate authentication scheme [RFC4559].

6.4.  Relationship to the HTTP

   The KNP uses HTTP to transport its request and response protocol
   messages between the RADIUS Client and RADIUS server.

7.  Key Negotiation Protocol

   As described previously, the KNP provides two operations:
   Credentialing and Introduction.

   The KNP provides these operations using a common protocol pattern.
   This pattern is applied against two types of Target actor, depending
   on the operation in question:

   o  In the case of Credentialing, the Target actor is a RADIUS server.
      If Credentialing is successful, the RADIUS client and RADIUS
      server will derive a common PSK that can be applied with a TLS-PSK



Howlett & Hartman        Expires April 23, 2012                 [Page 7]

Internet-Draft                     KNP                      October 2011


      ciphersuite and RadSec.

   o  In the case of Introduction, the Target actor is an Introducer.
      If an Introduction is successful, the RADIUS client and Introducer
      will derive an EAP credential that can subsequently be used for
      subsequent Credentialing or Introduction operations.

   For both operations it is essential that all three actors - RADIUS
   Client, Introducer and Target (whether a RADIUS server, in the case
   of Credentialing, or another Introducer, in the case of Introduction)
   - are able to authorise the claims that the other actors make about
   their respective names.  These claims are validated using different
   processes for each relationship; these are summarised in Figure 6
   below.

   +===============+===============+==================+===============+
   |    Subject    | Relying Party |     Process      | Evidence from |
   +===============+===============+==================+===============+
   | RADIUS Client |  Introducer   |     GSS EAP      |  EAP method   |
   +---------------+---------------+  authentication  | w/ qualifying |
   |  Introducer   | RADIUS Client |                  |Security Claims|
   +===============+===============+==================+===============+
   |  Introducer   |     Target    |      RADIUS      |     RADIUS    |
   +---------------+---------------+  authentication  |     shared    |
   |    Target     |  Introducer   |                  |     secret    |
   +===============+===============+==================+===============+
   |    Target     |     RADIUS    | Channel bindings | Assertion by  |
   |               |     Client    |                  |  Introducer   |
   +---------------+---------------+------------------+---------------+
   |    RADIUS     |     Target    | RADIUS attribute | Assertion by  |
   |    Client     |               |                  |  Introducer   |
   +===============+===============+==================+===============+
                               Figure 6

7.1.  Operation Independent Flow

   The RADIUS Client invokes the KNP by establishing an HTTP connection
   with the Target's KNP end-point.

   The RADIUS Client MUST use the GSS EAP mechanism
   [I-D.ietf-abfab-gss-eap] to authenticate to the Introducer,
   requesting mutual authentication from the GSS layer.

   The RADIUS Client, Target and Introducer MUST support EAP channel
   bindings [I-D.ietf-emu-chbind].  The Introducer MUST use validate the
   EAP channel bindings [I-D.ietf-emu-chbind] provided by the RADIUS
   Client.  If the channel binding verification fails, the Introducer
   MUST reject the authentication.



Howlett & Hartman        Expires April 23, 2012                 [Page 8]

Internet-Draft                     KNP                      October 2011


   The completion of the EAP method exchange results in the derivation
   of an EAP MSK known only to the RADIUS Client and Introducer and
   Peer-Id(s) and Server-Id(s) identifying these respectively.  The
   Introducer MUST replicate the keying material and Server-Id to the
   Target.

   The RADIUS Client and Target, in possession of the EAP MSK, create a
   GSS-API security context as described in section 6 of
   [I-D.ietf-abfab-gss-eap].

   The RADIUS Client POSTs a key negotiation request, encoded as an HTML
   form dataset, to the Target.  This request contains a set of
   operation-specific controls that specifies key negotiation
   parameters.  A key negotiation request MUST contain the following
   controls:

   o  Version: the version of the KNP.

   o  Request-Identifier: a unique alphanumeric identifier for the
      request.

   o  Requestor-Name: the requestor's GSS EAP initiator name.

   o  Operation-Type: the type of operation.

   o  Authenticator-Type: message authentication algorithm.

   o  Authenticator-Value: message authenticator value.

   The Target extracts the key negotiation parameters and assesses their
   compliance to the Target's key negotiation policies.  The Target MUST
   return an operation-specific document providing information about the
   resulting key negotiation context.

   o  Version: the version of the KNP.

   o  Request-Identifier: the identifier for the request that this is a
      reponse to.

   o  Responder-Name: the requestor's GSS EAP acceptor name.

   o  Operation-Type: the type of operation.

   o  Status-Code: a status code.

   o  Expires-After: a timestamp indicating the time of expiration.





Howlett & Hartman        Expires April 23, 2012                 [Page 9]

Internet-Draft                     KNP                      October 2011


   o  Authenticator-Type: message authentication algorithm.

   o  Authenticator-Value: message authenticator value.

   TODO: consider use of SAML authentication assertion instead?

   The RADIUS server and client SHOULD cache the GSS context until
   expiry of the GSS context.  However, either party MAY delete a GSS
   context at any time.  If a GSS context is deleted, any operation-
   specific derived materials SHOULD also be deleted, although such
   materials MAY be retained for auditing purposes.

7.2.  The Credentialing Operation

   This section describes the Credentialing operation-specific
   extensions to the general KNP flow.

   The RADIUS Client MUST specify the following control values within
   the key negotiation request:

   o  Operation-Type: Credentialing

   The PSK identity and value shall be outputs of GSS_Pseudo_random()
   [RFC4401] using the Pseudo-Random Function defined for the GSS EAP
   mechanism [I-D.ietf-abfab-gss-eap].

   For the PSK identity, the prf_in input string MUST be prepended with
   the string "tls-psk-knp-identity"; desired_out_len MUST be set to 128
   octets.

   For the PSK value, the prf_in input string MUST be prepended with the
   string "tls-psk-knp-value"; desired_out_len MUST be set to 64 octets.

   Note: these output values should use base64 encoding

7.3.  The Introduction Operation

   This section describes the Introduction operation-specific extensions
   to the general KNP flow.

   The RADIUS Client MUST specify the following control values within
   the key negotiation request:

   o  Operation-Type: Introduction"

   The EAP identity and credential shall be outputs of
   GSS_Pseudo_random() [RFC4401] using the Pseudo-Random Function
   defined for the GSS EAP mechanism [I-D.ietf-abfab-gss-eap].



Howlett & Hartman        Expires April 23, 2012                [Page 10]

Internet-Draft                     KNP                      October 2011


   For the EAP identity, the prf_in input string MUST be prepended with
   the string "tls-psk-eap-identity"; desired_out_len MUST be set to 128
   octets.  The output string MUST be appended with the realm of the
   Introducer to form an NAI.

   For the EAP credential, the prf_in input string MUST be prepended
   with the string "tls-psk-eap-psk"; desired_out_len MUST be set to 64
   octets.

   Note: these output values should use base64 encoding.

8.  Security Considerations

   TODO

9.  IANA Considerations

   TODO

10.  Acknowledgements

   TODO

11.  Normative References

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

   [RFC2743]                 Linn, J., "Generic Security Service
                             Application Program Interface Version 2,
                             Update 1", RFC 2743, January 2000.

   [RFC2865]                 Rigney, C., Willens, S., Rubens, A., and W.
                             Simpson, "Remote Authentication Dial In
                             User Service (RADIUS)", RFC 2865,
                             June 2000.

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

   [RFC4279]                 Eronen, P. and H. Tschofenig, "Pre-Shared
                             Key Ciphersuites for Transport Layer
                             Security (TLS)", RFC 4279, December 2005.

   [RFC4401]                 Williams, N., "A Pseudo-Random Function



Howlett & Hartman        Expires April 23, 2012                [Page 11]

Internet-Draft                     KNP                      October 2011


                             (PRF) API Extension for the Generic
                             Security Service Application Program
                             Interface (GSS-API)", RFC 4401,
                             February 2006.

   [RFC4559]                 Jaganathan, K., Zhu, L., and J. Brezak,
                             "SPNEGO-based Kerberos and NTLM HTTP
                             Authentication in Microsoft Windows",
                             RFC 4559, June 2006.

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

   [RFC5247]                 Aboba, B., Simon, D., and P. Eronen,
                             "Extensible Authentication Protocol (EAP)
                             Key Management Framework", RFC 5247,
                             August 2008.

   [I-D.ietf-abfab-gss-eap]  Hartman, S. and J. Howlett, "A GSS-API
                             Mechanism for the Extensible Authentication
                             Protocol", draft-ietf-abfab-gss-eap-03
                             (work in progress), October 2011.

   [I-D.ietf-radext-radsec]  Winter, S., McCauley, M., Venaas, S., and
                             K. Wierenga, "TLS encryption for RADIUS",
                             draft-ietf-radext-radsec-09 (work in
                             progress), July 2011.

   [I-D.ietf-emu-chbind]     Hartman, S., Clancy, T., and K. Hoeper,
                             "Channel Binding Support for EAP Methods",
                             draft-ietf-emu-chbind-10 (work in
                             progress), October 2011.

Authors' Addresses

   Josh Howlett
   JANET(UK)
   Lumen House, Library Avenue, Harwell
   Oxford  OX11 0SG
   UK

   Phone: +44 1235 822363
   EMail: Josh.Howlett@ja.net







Howlett & Hartman        Expires April 23, 2012                [Page 12]

Internet-Draft                     KNP                      October 2011


   Sam Hartman
   Painless Security

   EMail: hartmans-ietf@mit.edu















































Howlett & Hartman        Expires April 23, 2012                [Page 13]