shishi-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

CVS shishi/doc/specifications


From: shishi-commit
Subject: CVS shishi/doc/specifications
Date: Mon, 25 Oct 2004 22:55:18 +0200

Update of /home/cvs/shishi/doc/specifications
In directory dopio:/tmp/cvs-serv12722

Added Files:
        draft-ietf-krb-wg-preauth-framework-02.txt 
Log Message:
Add.


--- 
/home/cvs/shishi/doc/specifications/draft-ietf-krb-wg-preauth-framework-02.txt  
    2004/10/25 20:55:18     NONE
+++ 
/home/cvs/shishi/doc/specifications/draft-ietf-krb-wg-preauth-framework-02.txt  
    2004/10/25 20:55:18     1.1



Kerberos Working Group                                        S. Hartman
Internet-Draft                                                       MIT
Expires: April 24, 2005                                 October 24, 2004


        A Generalized Framework for Kerberos Pre-Authentication
                 draft-ietf-krb-wg-preauth-framework-02

Status of this Memo

   This document is an Internet-Draft and is subject to all provisions
   of section 3 of RFC 3667.  By submitting this Internet-Draft, each
   author represents that any applicable patent or other IPR claims of
   which he or she is aware have been or will be disclosed, and any of
   which he or she become aware will be disclosed, in accordance with
   RFC 3668.

   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 April 24, 2005.

Copyright Notice

   Copyright (C) The Internet Society (2004).

Abstract

   Kerberos is a protocol for verifying the identity of principals
   (e.g., a workstation user or a network server) on an open network.
   The Kerberos protocol provides a mechanism called pre-authentication
   for proving the identity  of a principal and for better protecting
   the long-term secret of the principal.

   This document describes a model for Kerberos pre-authentication
   mechanisms.  The model describes what state in the Kerberos request a



Hartman                  Expires April 24, 2005                 [Page 1]

Internet-Draft        Kerberos Preauth Framework            October 2004


   pre-authentication mechanism is likely to change.  It also describes
   how multiple pre-authentication mechanisms used in the same request
   will interact.

   This document also provides common tools needed by multiple
   pre-authentication mechanisms.

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

Table of Contents

   1.  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  3
   2.  Model for Pre-Authentication . . . . . . . . . . . . . . . . .  4
     2.1   Information Managed by Model . . . . . . . . . . . . . . .  5
     2.2   The Initial Preauth_Required Error . . . . . . . . . . . .  7
     2.3   Client to KDC  . . . . . . . . . . . . . . . . . . . . . .  8
     2.4   KDC to Client  . . . . . . . . . . . . . . . . . . . . . .  8
   3.  Pre-Authentication Facilities  . . . . . . . . . . . . . . . . 10
     3.1   Client Authentication  . . . . . . . . . . . . . . . . . . 11
     3.2   Strengthen Reply Key . . . . . . . . . . . . . . . . . . . 11
     3.3   Replace Reply Key  . . . . . . . . . . . . . . . . . . . . 12
     3.4   Verify Response  . . . . . . . . . . . . . . . . . . . . . 12
   4.  Requirements for Pre-Authentication Mechanisms . . . . . . . . 14
   5.  Tools for Use in Pre-Authentication Mechanisms . . . . . . . . 15
     5.1   Combine Keys . . . . . . . . . . . . . . . . . . . . . . . 15
     5.2   Signing Requests/Responses . . . . . . . . . . . . . . . . 15
     5.3   Managing State for the KDC . . . . . . . . . . . . . . . . 15
     5.4   PA-AUTHENTICATION-SET  . . . . . . . . . . . . . . . . . . 15
   6.  IANA Considerations  . . . . . . . . . . . . . . . . . . . . . 16
   7.  Security Considerations  . . . . . . . . . . . . . . . . . . . 17
   8.  Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 18
   9.  References . . . . . . . . . . . . . . . . . . . . . . . . . . 19
   9.1   Normative References . . . . . . . . . . . . . . . . . . . . 19
   9.2   Informative References . . . . . . . . . . . . . . . . . . . 19
       Author's Address . . . . . . . . . . . . . . . . . . . . . . . 19
   A.  Todo List  . . . . . . . . . . . . . . . . . . . . . . . . . . 20
       Intellectual Property and Copyright Statements . . . . . . . . 21












Hartman                  Expires April 24, 2005                 [Page 2]

Internet-Draft        Kerberos Preauth Framework            October 2004


1.  Introduction

   The core Kerberos specification treats pre-authentication data as an
   opaque typed hole in the messages to the KDC that may influence the
   reply key used to encrypt the KDC response.  This generality has been
   useful: pre-authentication data is used for a variety of extensions
   to the protocol, many outside the expectations of the initial
   designers.  However, this generality makes designing the more common
   types of pre-authentication mechanisms difficult.  Each mechanism
   needs to specify how it interacts with other mechanisms.  Also,
   problems like combining a key with the long-term secret or proving
   the identity of the user are common to multiple mechanisms.  Where
   there are generally well-accepted solutions to these problems, it is
   desirable to standardize one of these solutions so mechanisms  can
   avoid duplication of work.  In other cases, a modular approach to
   these problems is appropriate.  The modular approach will allow new
   and better solutions to common pre-authentication problems to be used
   by existing mechanisms as they are developed.

   This document specifies a framework for Kerberos pre-authentication
   mechanisms.  IT defines the common set of functions
   pre-authentication mechanisms perform as well as how these functions
   affect the state of the request and response.  In addition several
   common tools needed by pre-authentication mechanisms are provided.
   Unlike [3], this framework is not complete--it does not describe all
   the inputs and outputs for the pre-authentication mechanisms.
   Mechanism designers should try to be consistent with this framework
   because doing so will make their mechanisms easier to implement.
   Kerberos implementations are likely to have plugin architectures  for
   pre-authentication; such architectures are likely to support
   mechanisms that follow this framework plus commonly used extensions.

   This document should be read only after reading the documents
   describing the Kerberos cryptography framework [3] and the core
   Kerberos protocol [2].  This document freely uses terminology and
   notation from these documents without reference or further
   explanation.














Hartman                  Expires April 24, 2005                 [Page 3]

Internet-Draft        Kerberos Preauth Framework            October 2004


2.  Model for Pre-Authentication

   when a Kerberos client wishes to obtain a ticket using the
   authentication server, it sends an initial AS request.  If
   pre-authentication is being used, then the KDC will respond with a
   KDC_ERR_PREAUTH_REQUIRED error.  Alternatively, if the client knows
   what pre-authentication to use, it MAY optimize a round-trip and send
   an initial request with padata included.  If the client includes the
   wrong padata, the server MAY return KDC_ERR_PREAUTH_FAILED with no
   indication of what padata should have been included.  For
   interoperability reasons, clients that include optimistic
   pre-authentication MUST retry with no padata and examine the
   KDC_ERR_PREAUTH_REQUIRED if they receive a KDC_ERR_PREAUTH_FAILED in
   response to their initial optimistic request.

   The KDC maintains no state between two requests; subsequent requests
   may even be processed by a different KDC.  On the other hand, the
   client treats a series of exchanges with KDCs as a single
   authentication session.  Each exchange accumulates state and
   hopefully brings the client closer to a successful authentication.

   These models for state management are in apparent conflict.  For many
   of the simpler pre-authentication scenarios,  the client uses one
   round trip to find out what mechanisms the KDC supports.  Then the
   next request contains sufficient pre-authentication for the KDC to be
   able to return a successful response.  For these simple scenarios,
   the client only sends one request with pre-authentication data and so
   the authentication session is trivial.  For more complex
   authentication sessions, the KDC needs to provide the client with a
   cookie to include in future requests to capture the current state of
   the authentication session.  Handling of multiple round-trip
   mechanisms is discussed in Section 5.3.

   This framework specifies the behavior of Kerberos pre-authentication
   mechanisms used to identify users or to modify the reply key used to
   encrypt the KDC response.  The padata typed hole may be used to carry
   extensions to Kerberos that have nothing to do with proving the
   identity of the user or establishing a reply key.  These extensions
   are outside the scope of this framework.  However mechanisms that do
   accomplish these goals should follow this framework.

   This framework specifies the minimum state that a Kerberos
   implementation needs to maintain while handling a request in order to
   process pre-authentication.  It also specifies how Kerberos
   implementations process the pre-authentication data at each step of
   the AS request process.





Hartman                  Expires April 24, 2005                 [Page 4]

Internet-Draft        Kerberos Preauth Framework            October 2004


2.1  Information Managed by Model

   The following information is maintained by the client and KDC as each
   request is being processed:
   o  The reply key used to encrypt the KDC response
   o  How strongly the identity of the client has been authenticated
   o  Whether the reply key has been used in this authentication session
   o  Whether the reply key has been replaced in this authentication
      session
   o  Whether the contents of the KDC response can be  verified by the
      client principal
   o  Whether the contents of the KDC response can be  verified by the
      client machine

   Conceptually, the reply key is initially the long-term key of the
   principal.  However, principals can have multiple long-term keys
   because of support for multiple encryption types, salts and
   string2key parameters.  As described in section 5.2.7.5 of the
   Kerberos protocol [2], the KDC sends PA-ETYPe-INFO2 to notify the
   client  what types of keys are available.  Thus in full generality,
   the reply key in the pre-authentication model is actually a set of
   keys.  At the beginning of a request, it is initialized to the set of
   long-term keys advertised in the PA-ETYPE-INFO2 element on the KDC.
   If multiple reply keys are available, the client chooses which one to
   use.  Thus the client does not need to treat the reply key as a set.
   At the beginning of a handling a request, the client picks a reply
   key to use.

   KDC implementations MAY choose to offer only one key in the
   PA-ETYPE-INFO2 element.  Since the KDC already knows the client's
   list of supported enctypes from the  request, no interoperability
   problems are created by choosing a single possible reply key.  This
   way, the KDC implementation avoids the complexity of treating the
   reply key as a set.

   At the beginning of handling a message on both the client and KDC,
   the client's identity is not authenticated.  A mechanism may indicate
   that it has successfully authenticated the client's identity.  This
   information is useful to keep track of on the client  in order to
   know what pre-authentication mechanisms should be used.  The KDC
   needs to keep track of whether the client is authenticated because
   the primary purpose of pre-authentication is to authenticate the
   client identity before issuing a ticket.  Implementations that have
   pre-authentication mechanisms offering significantly different
   strengths of client authentication MAY choose to keep track of the
   strength of the authentication used as an input into policy
   decisions.  For example, some principals might require strong
   pre-authentication, while less sensitive principals can use



Hartman                  Expires April 24, 2005                 [Page 5]

Internet-Draft        Kerberos Preauth Framework            October 2004


   relatively weak forms of pre-authentication like encrypted timestamp.

   Initially the reply key has not been used.  A pre-authentication
   mechanism that uses the reply key either directly to encrypt or
   checksum some data or indirectly in the generation of new keys MUST
   indicate that the reply key is used.  This state is maintained by the
   client and KDC to enforce the security requirement stated in Section
   3.3 that the reply key cannot be replaced after it is used.

   Initially the reply key has not been replaced.  If a mechanism
   implements the Replace Reply Key facility discussed in Section 3.3,
   then the state MUST be updated to indicate that the reply key has
   been replaced.  Once the reply key has been replaced, knowledge of
   the reply key is insufficient to authenticate the client.  The reply
   key is marked replaced in exactly the same situations as the KDC
   reply  is marked as not being verified to the client principal.
   However, while mechanisms can verify the KDC request to the client,
   once the reply key is replaced, then the reply key remains replaced
   for the remainder of the authentication session.

   Without pre-authentication, the client knows that the KDC request is
   authentic and has not been modified because it is encrypted in the
   long-term key of the client.  Only the KDC and client know that key.
   So at the start of handling any message the KDC request is presumed
   to be verified to the client principal.  Any pre-authentication
   mechanism that sets a new reply key not based on the principal's
   long-term secret MUST either verify the KDC response some other way
   or indicate that the response is not verified.  If a mechanism
   indicates that the response is not verified then the client
   implementation MUST return an error unless a subsequent mechanism
   verifies the response.  The KDC needs to track this state so it can
   avoid generating a response that is not verified.

   The typical Kerberos request does not provide a way for the client
   machine to know that it is talking to the correct KDC.  Someone who
   can inject packets into the network between the client machine and
   the KDC and who knows the password that the user will give to the
   client machine can generate a KDC response that will decrypt
   properly.  So, if the client machine needs to authenticate that the
   user is in fact the named principal, then the client machine needs to
   do a TGS request for itself as a service.  Some pre-authentication
   mechanisms may provide  a way for the client to authenticate the KDC.
   Examples of this include signing the response with a well-known
   public key or providing a ticket for the client machine as a service
   in addition to the requested ticket.






Hartman                  Expires April 24, 2005                 [Page 6]

Internet-Draft        Kerberos Preauth Framework            October 2004


2.2  The Initial Preauth_Required Error

   Typically a client starts an authentication session by sending  an
   initial request with no pre-authentication.  If the KDC requires
   pre-authentication, then it returns a KDC_ERR_PREAUTH_REQUIRED
   message.  This message MAY also be returned for pre-authentication
   configurations that use multi-round-trip mechanisms; see Section 2.4
   for details of that case.  This

   The KDC needs to choose which mechanisms to offer the client.  The
   client needs to be able to choose what mechanisms to use from the
   first message.  For example consider the KDC that will accept
   mechanism A followed by mechanism B or alternatively the single
   mechanism C.  A client that supports A and C needs to know that it
   should not bother trying A.

   Mechanisms can either be sufficient on their own or can be part of an
   authentication set--a group of mechanisms that all need to
   successfully complete in order to authenticate a client.  Some
   mechanisms may only be useful in authentication sets; others may be
   useful alone or in authentication sets.  For the second group of
   mechanisms, KDC policy dictates whether the mechanism will be part of
   an authentication set or offered alone.  For each mechanism that is
   offered alone, the KDC includes the pre-authentication type ID of the
   mechanism in the padata sequence returned in the
   KDC_ERR_PREAUTH_REQUIRED error.  The KDC MAY include any initial
   data for the mechanisms.

   The KDC includes a a PA-AUTHENTICATION-SET padata element for each
   authentication set; this element is defined in Section 5.4.  This
   element includes the pa-type and pa-value for the first mechanism in
   the authentication set.  It also includes the  pa-type for each of
   the other mechanisms.  Associated with the second and following
   pa-type is a pa-hint, which is an octet-string specified by the
   pre-authentication mechanism.  This hint may provide information for
   the client which helps it determine whether the mechanism can be
   used.  For example a public-key mechanism might include the
   certificate authorities it trusts in the hint info.  Most mechanisms
   today do not  specify hint info; if a mechanism does not specify hint
   info the KDC MUST not send a hint for that mechanism.  To allow
   future revisions of mechanism specifications to add hint info,
   clients MUST ignore hint info received for mechanisms that the client
   believes do not support hint info.

   The KDC SHOULD NOT send data that is encrypted in the long-term
   password-based key of the principal.  Doing so has the same security
   exposures as the Kerberos protocol without pre-authentication.  There
   are few situations where pre-authentication is desirable and where



Hartman                  Expires April 24, 2005                 [Page 7]

Internet-Draft        Kerberos Preauth Framework            October 2004


   the KDC needs to expose ciphertext encrypted in a weak key before the
   client has proven knowledge of that key.

2.3  Client to KDC

[778 lines skipped]




reply via email to

[Prev in Thread] Current Thread [Next in Thread]