Include <com_err.h>
[heimdal.git] / doc / standardisation / draft-ietf-krb-wg-preauth-framework-00.txt
blob56d43df3a8bb27aaa1d42444eb261102a38d95d2
3 Kerberos Working Group                                        S. Hartman
4 Internet-Draft                                                       MIT
5 Expires: August 9, 2004                                 February 9, 2004
8          A Generalized Framework for Kerberos Preauthentication
9                  draft-ietf-krb-wg-preauth-framework-00
11 Status of this Memo
13    This document is an Internet-Draft and is in full conformance with
14    all provisions of Section 10 of RFC2026.
16    Internet-Drafts are working documents of the Internet Engineering
17    Task Force (IETF), its areas, and its working groups. Note that other
18    groups may also distribute working documents as Internet-Drafts.
20    Internet-Drafts are draft documents valid for a maximum of six months
21    and may be updated, replaced, or obsoleted by other documents at any
22    time. It is inappropriate to use Internet-Drafts as reference
23    material or to cite them other than as "work in progress."
25    The list of current Internet-Drafts can be accessed at http://
26    www.ietf.org/ietf/1id-abstracts.txt.
28    The list of Internet-Draft Shadow Directories can be accessed at
29    http://www.ietf.org/shadow.html.
31    This Internet-Draft will expire on August 9, 2004.
33 Copyright Notice
35    Copyright (C) The Internet Society (2004). All Rights Reserved.
37 Abstract
39    Kerberos is a protocol for verifying the identity of principals
40    (e.g., a workstation user or a network server) on an open network.
41    The Kerberos protocol provides a mechanism called preauthentication
42    for proving the identity  of a principal and for better protecting
43    the long-term secret of the principal.
45    This document describes a model for Kerberos preauthentication
46    mechanisms.  The model describes what state in the Kerberos request a
47    preauthentication mechanism is likely to change. It also describes
48    how multiple preauthentication mechanisms used in the same request
49    will interact.
51    This document also provides common tools needed by multiple
55 Hartman                  Expires August 9, 2004                 [Page 1]
57 Internet-Draft        Kerberos Preauth Framework           February 2004
60    preauthentication mechanisms.
62    The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
63    "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
64    document are to be interpreted as described in [1].
66 Table of Contents
68    1.  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  3
69    2.  Model for Preauthentication  . . . . . . . . . . . . . . . . .  4
70    2.1 Information Managed by Model . . . . . . . . . . . . . . . . .  5
71    2.2 The Preauth_Required Error . . . . . . . . . . . . . . . . . .  6
72    2.3 Client to KDC  . . . . . . . . . . . . . . . . . . . . . . . .  7
73    2.4 KDC to Client  . . . . . . . . . . . . . . . . . . . . . . . .  7
74    3.  Preauthentication Facilities . . . . . . . . . . . . . . . . .  9
75    3.1 Client Authentication  . . . . . . . . . . . . . . . . . . . . 10
76    3.2 Strengthen Reply Key . . . . . . . . . . . . . . . . . . . . . 10
77    3.3 Replace Reply Key  . . . . . . . . . . . . . . . . . . . . . . 11
78    3.4 Verify Response  . . . . . . . . . . . . . . . . . . . . . . . 11
79    4.  Requirements for Preauthentication Mechanisms  . . . . . . . . 12
80    5.  Tools for Use in Preauthentication Mechanisms  . . . . . . . . 13
81    5.1 Combine Keys . . . . . . . . . . . . . . . . . . . . . . . . . 13
82    5.2 Signing Requests/Responses . . . . . . . . . . . . . . . . . . 13
83    5.3 Managing State for the KDC . . . . . . . . . . . . . . . . . . 13
84    6.  IANA Considerations  . . . . . . . . . . . . . . . . . . . . . 14
85    7.  Security Considerations  . . . . . . . . . . . . . . . . . . . 15
86    8.  Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 16
87        Author's Address . . . . . . . . . . . . . . . . . . . . . . . 18
88        Normative References . . . . . . . . . . . . . . . . . . . . . 17
89        Informative References . . . . . . . . . . . . . . . . . . . . 18
90    A.  Todo List  . . . . . . . . . . . . . . . . . . . . . . . . . . 19
91        Intellectual Property and Copyright Statements . . . . . . . . 20
111 Hartman                  Expires August 9, 2004                 [Page 2]
113 Internet-Draft        Kerberos Preauth Framework           February 2004
116 1. Introduction
118    The core Kerberos specification treats preauthentication data as an
119    opaque typed hole in the messages to the KDC that may influence the
120    reply key used to encrypt the KDC response.  This generality has been
121    useful: preauthentication data is used for a variety of extensions to
122    the protocol, many outside the expectations of the initial designers.
123    However, this generality makes designing the more common types of
124    preauthentication mechanisms difficult. Each mechanism needs to
125    specify how it interacts with other mechanisms.  Also, problems like
126    combining a key with the long-term secret or proving the identity of
127    the user are common to multiple mechanisms.  Where there are
128    generally well-accepted solutions to these problems, it is desirable
129    to standardize one of these solutions so mechanisms  can avoid
130    duplication of work.  In other cases, a modular approach to these
131    problems is appropriate.  The modular approach will allow new  and
132    better solutions to common preauth problems to be used by existing
133    mechanisms as they are developed.
135    This document specifies a framework for Kerberos preauthentication
136    mechanisms.  IT defines the common set of functions preauthentication
137    mechanisms perform as well as how these functions affect the state of
138    the request and response.  In addition several common tools needed by
139    preauthentication mechanisms are provided.  Unlike [3], this
140    framework is not complete--it does not describe all the inputs and
141    outputs for the preauthentication mechanisms.  Mechanism designers
142    should try to be consistent with this framework because doing so will
143    make their mechanisms easier to implement.  Kerberos implementations
144    are likely to have plugin architectures  for preauthentication; such
145    architectures are likely to support mechanisms that follow this
146    framework plus commonly used extensions.
148    This document should be read only after reading the documents
149    describing the Kerberos cryptography framework [3] and the core
150    Kerberos protocol [2].  This document freely uses terminology and
151    notation from these documents without reference or further
152    explanation.
167 Hartman                  Expires August 9, 2004                 [Page 3]
169 Internet-Draft        Kerberos Preauth Framework           February 2004
172 2. Model for Preauthentication
174    when a Kerberos client wishes to obtain a ticket using the
175    authentication server, it sends an initial AS request.  If
176    preauthentication is being used, then the KDC will respond with a
177    KDC_ERR_PREAUTH_REQUIRED error.  Alternatively, if the client knows
178    what preauthentication to use, it MAY optimize a round-trip and send
179    an initial request with padata included.  If the client includes the
180    wrong padata, the server MAY return KDC_ERR_PREAUTH_FAILED with no
181    indication of what padata should have been included.  For
182    interoperability reasons, clients that include optimistic preauth
183    MUST retry with no padata and examine the KDC_ERR_PREAUTH_REQUIRED if
184    they receive a KDC_ERR_PREAUTH_FAILED in response to their initial
185    optimistic request.
187    The KDC maintains no state between two requests; subsequent requests
188    may even be processed by a different KDC. On the other hand, the
189    client treats a series of exchanges with KDCs as a single
190    authentication session.  Each exchange accumulates state and
191    hopefully brings the client closer to a successful authentication.
193    These models for state management are in apparent conflict. For many
194    of the simpler preauthentication scenarios,  the client uses one
195    round trip to find out what mechanisms the KDC supports.  Then the
196    next request contains sufficient preauthentication for the KDC to be
197    able to return a successful response.  For these simple scenarios,
198    the client only sends one request with preauthentication data and so
199    the authentication session is trivial.  For more complex
200    authentication sessions, the KDC needs to provide the client with a
201    cookie to include in future requests to capture the current state of
202    the authentication session.  Handling of multiple round-trip
203    mechanisms is discussed in Section 5.3.
205    This framework specifies the behavior of Kerberos preauthentication
206    mechanisms used to identify users or to modify the reply key used to
207    encrypt the KDC response.  The padata typed hole may be used to carry
208    extensions to Kerberos that have nothing to do with proving the
209    identity of the user or establishing a reply key.  These extensions
210    are outside the scope of this framework.  However mechanisms that do
211    accomplish these goals should follow this framework.
213    This framework specifies the minimum state that a Kerberos
214    implementation needs to maintain while handling a request in order to
215    process preauthentication.  It also specifies how Kerberos
216    implementations process the preauthentication data at each step of
217    the AS request process.
223 Hartman                  Expires August 9, 2004                 [Page 4]
225 Internet-Draft        Kerberos Preauth Framework           February 2004
228 2.1 Information Managed by Model
230    The following information is maintained by the client and KDC as each
231    request is being processed:
233    o  The reply key used to encrypt the KDC response
235    o  How strongly the identity of the client has been authenticated
237    o  Whether the reply key has been used in this authentication session
239    o  Whether the contents of the KDC response can be  verified by the
240       client principal
242    o  Whether the contents of the KDC response can be  verified by the
243       client machine
245    Conceptually, the reply key is initially the long-term key of the
246    principal.  However, principals can have multiple long-term keys
247    because of support for multiple encryption types, salts and
248    string2key parameters.  As described in section 5.2.7.5 of the
249    Kerberos protocol [2], the KDC sends PA-ETYPe-INFO2 to notify the
250    client  what types of keys are available.  Thus in full generality,
251    the reply key in the preauth model is actually a set of keys.  At the
252    beginning of a request, it is initialized to the set of long-term
253    keys advertised in the PA-ETYPE-INFO2 element on the KDC.  If
254    multiple reply keys are available, the client chooses which one to
255    use.  Thus the client does not need to treat the reply key as a set.
256    At the beginning of a handling a request, the client picks a reply
257    key to use.
259    KDC implementations MAY choose to offer only one key in the
260    PA-ETYPE-INFO2 element.  Since the KDC already knows the client's
261    list of supported enctypes from the  request, no interoperability
262    problems are created by choosing a single possible reply key.  This
263    way, the KDC implementation avoids the complexity of treating the
264    reply key as a set.
266    At the beginning of handling a message on both the client and KDC,
267    the client's identity is not authenticated.  A mechanism may indicate
268    that it has successfully authenticated the client's identity.  This
269    information is useful to keep track of on the client  in order to
270    know what preauthentication mechanisms should be used.  The KDC needs
271    to keep track of whether the client is authenticated because the
272    primary purpose of preauthentication is to authenticate the client
273    identity before issuing a ticket.  Implementations that have
274    preauthentication mechanisms offering significantly different
275    strengths of client authentication MAY choose to keep track of the
279 Hartman                  Expires August 9, 2004                 [Page 5]
281 Internet-Draft        Kerberos Preauth Framework           February 2004
284    strength of the authentication used as an input into policy
285    decisions.  For example, some principals might require strong
286    preauthentication, while less sensitive principals can use relatively
287    weak forms of preauthentication like encrypted timestamp.
289    Initially the reply key has not been used.  A preauthentication
290    mechanism that uses the reply key either directly to encrypt or
291    cheksum some data or indirectly in the generation of new keys MUST
292    indicate that the reply key is used.  This state is maintained by the
293    client and KDC to enforce the security requirement stated in Section
294    3.3 that the reply key cannot be replaced after it is used.
296    Without preauthentication, the client knows that the KDC request is
297    authentic and has not been modified because it is encrypted in the
298    long-term key of the client.  Only the KDC and client know that key.
299    So at the start of handling any message the KDC request is presumed
300    to be verified to the client principal.  Any preauthentication
301    mechanism that sets a new reply key not based on the principal's
302    long-term secret MUST either verify the KDC response some other way
303    or indicate that the response is not verified.  If a mechanism
304    indicates that the response is not verified then the client
305    implementation MUST return an error unless a subsequent mechanism
306    verifies the response.  The KDC needs to track this state so it can
307    avoid generating a response that is not verified.
309    The typical Kerberos request does not provide a way for the client
310    machine to know that it is talking to the correct KDC. Someone who
311    can inject packets into the network between the client machine and
312    the KDC and who knows the password that the user will give to the
313    client machine can generate a KDC response that will decrypt
314    properly.  So, if the client machine needs to authenticate that the
315    user is in fact the named principal, then the client machine needs to
316    do a TGS request for itself as a service.  Some preauthentication
317    mechanisms may provide  a way for the client to authenticate the KDC.
318    Examples of this include signing the response with a well-known
319    public key or providing a ticket for the client machine as a service
320    in addition to the requested ticket.
322 2.2 The Preauth_Required Error
324    Typically a client starts an authentication session by sending  an
325    initial request with no preauthentication.  If the KDC requires
326    preauthentication, then it returns a KDC_ERR_PREAUTH_REQUIRED
327    message.  This message MAY also be returned for preauthentication
328    configurations that use multi-round-trip mechanisms.  This error
329    contains a sequence of padata.  Typically the padata contains the
330    preauth type IDs of all the available preauthentication mechanisms.
331    IN the initial error response, most mechanisms do not contain data.
335 Hartman                  Expires August 9, 2004                 [Page 6]
337 Internet-Draft        Kerberos Preauth Framework           February 2004
340    If a mechanism requires multiple round trips or starts with a
341    challenge from the KDC to the client, then it will likely contain
342    data in the initial error response.
344    The KDC SHOULD NOT send data that is encrypted in the long-term
345    password-based key of the principal.  Doing so has the same security
346    exposures as the Kerberos protocol without preauthentication.  There
347    are few situations where preauthentication is desirable and where the
348    KDC needs to expose ciphertext encrypted in a weak key before the
349    client has proven knowledge of that key.
351    In order to generate the error response, the KDC first starts by
352    initializing the preauthentication state.  Then it processes any
353    padata in the client's request in the order provided by the client.
354    Mechanisms that are not understood by the KDC are ignored.
355    Mechanisms that are inappropriate for the client principal or request
356    SHOULD also be ignored.  Next, it generates padata for the error
357    response, modifying the preauthentication state appropriately as each
358    mechanism is processed.  The KDC chooses the order in which it will
359    generated padata (and thus the order of padata in the response), but
360    it needs to modify the preauthentication state consistently with the
361    choice of order.  For example, if some mechanism establishes an
362    authenticated client identity, then the mechanisms subsequent in the
363    generated response receive this state as input.  After the padata is
364    generated, the error response is sent.
366 2.3 Client to KDC
368    This description assumes a client has already received a
369    KDC_ERR_PREAUTH_REQUIRED from the KDC.  If the client performs
370    optimistic preauthentication then the client needs to optimisticly
371    choose the information it would normally receive from that error
372    response.
374    The client starts by initializing the preauthentication state as
375    specified.  It then processes the pdata in the
376    KDC_ERR_PREAUTH_REQUIRED.
378    After processing the pdata in the KDC error, the client generates a
379    new request.  It processes the preauthentication mechanisms in the
380    order in which they will appear in the next request, updating the
381    state as appropriate. When the request is complete it is sent.
383 2.4 KDC to Client
385    When a KDC receives an AS request from a client, it needs to
386    determine whether it will respond with an error or  a AS reply.
387    There are many causes for an error to be generated that have nothing
391 Hartman                  Expires August 9, 2004                 [Page 7]
393 Internet-Draft        Kerberos Preauth Framework           February 2004
396    to do with preauthentication; they are discussed in the Kerberos
397    specification.
399    From the standpoint of evaluating the preauthentication, the KDC
400    first starts by initializing the preauthentication state.  IT then
401    processes the padata in the request.  AS mentioned in Section 2.2,
402    the KDC MAY ignore padata that is inappropriate for the configuration
403    and MUST ignore padata of an unknown type.
405    At this point the KDC decides whether it will issue a
406    preauthentication required error or a reply.  Typically a KDC will
407    issue a reply if the client's identity has been authenticated to a
408    sufficient degree.  The processing of the preauthentication required
409    error is described in Section 2.2.
411    The KDC generates the pdata modifying the preauthentication state as
412    necessary.  Then it generates the final response, encrypting it in
413    the current preauthentication reply key.
447 Hartman                  Expires August 9, 2004                 [Page 8]
449 Internet-Draft        Kerberos Preauth Framework           February 2004
452 3. Preauthentication Facilities
454    Preauthentication mechanisms can be thought of as conceptually
455    providing various facilities.  This serves two useful purposes.
456    First, mechanism authors can choose only to solve one specific small
457    problem.  It is often useful for a mechanism designed to offer key
458    management not to directly provide client authentication but instead
459    to allow one or more other mechanisms to handle this need.  Secondly,
460    thinking about the  abstract services that a mechanism provides
461    yields a minimum set of security requirements that all mechanisms
462    providing that facility must meet. These security requirements are
463    not complete; mechanisms will have additional security requirements
464    based on the specific protocol they employ.
466    A mechanism is not constrained to only offering one of these
467    facilities.  While such mechanisms can be designed and are sometimes
468    useful, many preauthentication mechanisms implement several
469    facilities.  By combining multiple facilities in a single mechanism,
470    it is often easier to construct a secure, simple solution than  by
471    solving the problem in full generality.  Even when mechanisms provide
472    multiple facilities, they need to meet the security requirements for
473    all the facilities they provide.
475    According to Kerberos extensibility rules (section 1.4.2 of the
476    Kerberos specification [2]), an extension MUST NOT change the
477    semantics of a message unless a recipient is known to understand that
478    extension.  Because a client does not know that the KDC supports a
479    particular preauth mechanism when it sends an initial request, a
480    preauth mechanism MUST NOT change the semantics of the request in a
481    way that will break a KDC that does not understand that mechanism.
482    Similarly, KDCs MUST not send messages to clients that affect the
483    core semantics unless the clients have indicated support for the
484    message.
486    The only state in this model that would break the interpretation of a
487    message is changing the expected reply key.  If one mechanism changed
488    the reply key and a later mechanism used that reply key, then a KDC
489    that interpreted the second mechanism but not the first would fail to
490    interpret the request correctly.  In order to avoid this problem,
491    extensions that change core semantics are typically divided into two
492    parts.  The first part proposes a change to the core semantic--for
493    example proposes a new reply key.  The second part acknowledges that
494    the extension is understood and that the change takes effect. Section
495    3.2 discusses how to design mechanisms that modify the reply key to
496    be split into a proposal and acceptance without requiring additional
497    round trips to use the new reply key in subsiquent preauthentication.
498    Other changes in the state described in Section 2.1 can safely be
499    ignored by a KDC that does not understand a mechanism.  Mechanisms
503 Hartman                  Expires August 9, 2004                 [Page 9]
505 Internet-Draft        Kerberos Preauth Framework           February 2004
508    that modify the behavior of the request outside the scope of this
509    framework need to carefully consider the Kerberos extensibility rules
510    to avoid similar problems.
512 3.1 Client Authentication
514       Binding to reply key
516       Consider Secure ID case where you don't have anything to bind to
519 3.2 Strengthen Reply Key
521    Particularly, when dealing with keys based on passwords it is
522    desirable to increase the strength of the key by adding additional
523    secrets to it.  Examples of sources of additional secrets include the
524    results of a Diffie-Hellman key exchange or key bits from the output
525    of a smart card [5].  Typically these additional secrets are
526    converted into a Kerberos protocol key.  Then they are combined with
527    the existing reply key as discussed in Section 5.1.
529    If a mechanism implementing this facility wishes to modify the reply
530    key before knowing that the other party in the exchange supports the
531    mechanism, it proposes modifying the reply key.  The other party then
532    includes a message indicating that the proposal is accepted if it is
533    understood and meets policy.  In many cases it is desirable to use
534    the new reply key for client authentication and for other facilities.
535    Waiting for the other party to accept the proposal and actually
536    modify the reply key state would add an additional round trip to the
537    exchange.  Instead, mechanism designers  are encouraged to include a
538    typed hole for additional padata in the message that proposes the
539    reply key change.  The padata included in the typed hole are
540    generated assuming the new reply key. If the other party accepts the
541    proposal, then these padata are interpreted as if they were included
542    immediately following the proposal.  The party generating the
543    proposal can determine whether the padata were processed based on
544    whether the proposal for the reply key is accepted.
546    The specific formats of the proposal message, including where padata
547    are  are included is a matter for the mechanism specification.
548    Similarly, the format of the message accepting the proposal is
549    mechanism-specific.
551    Mechanisms implementing this facility and including a typed hole for
552    additional padata MUST checksum that padata using a keyed checksum or
553    encrypt the padata.  Typically the reply key is used to protect the
554    padata.  XXX If you are only minimally increasing the strength of the
555    reply key, this may give the attacker access to something too close
559 Hartman                  Expires August 9, 2004                [Page 10]
561 Internet-Draft        Kerberos Preauth Framework           February 2004
564    to the original reply key.  However, binding the padata to the new
565    reply key  seems potentially important from a security standpoint.
566    There may also be objections to this from a double encryption
567    standpoint because we also recommend client authentication facilities
568    be tied to the reply key.
570 3.3 Replace Reply Key
572       Containers to handle reply key when not sure whether other side
573       supports mech
575       Make sure reply key is not used previously
577       Interactions with client authentication
579       Reference to container argument
582 3.4 Verify Response
615 Hartman                  Expires August 9, 2004                [Page 11]
617 Internet-Draft        Kerberos Preauth Framework           February 2004
620 4. Requirements for Preauthentication Mechanisms
622       State management for multi-round-trip mechs
624       Security interactions with other mechs
671 Hartman                  Expires August 9, 2004                [Page 12]
673 Internet-Draft        Kerberos Preauth Framework           February 2004
676 5. Tools for Use in Preauthentication Mechanisms
678 5.1 Combine Keys
680 5.2 Signing Requests/Responses
682 5.3 Managing State for the KDC
727 Hartman                  Expires August 9, 2004                [Page 13]
729 Internet-Draft        Kerberos Preauth Framework           February 2004
732 6. IANA Considerations
783 Hartman                  Expires August 9, 2004                [Page 14]
785 Internet-Draft        Kerberos Preauth Framework           February 2004
788 7. Security Considerations
790       Very little of the AS request is authenticated.  Same for padata
791       in the reply or error.  Discuss implications
793       Table of security requirements stated elsewhere in the document
839 Hartman                  Expires August 9, 2004                [Page 15]
841 Internet-Draft        Kerberos Preauth Framework           February 2004
844 8. Acknowledgements
895 Hartman                  Expires August 9, 2004                [Page 16]
897 Internet-Draft        Kerberos Preauth Framework           February 2004
900 Normative References
902    [1]  Bradner, S., "Key words for use in RFCs to Indicate Requirement
903         Levels", RFC 2119, BCP 14, March 1997.
905    [2]  Neuman, C., Yu, T., Hartman, S. and K. Raeburn, "The Kerberos
906         Network Authentication Service (V5)",
907         draft-ietf-krb-wg-kerberos-clarifications-04.txt (work in
908         progress), June 2003.
910    [3]  Raeburn, K., "Encryption and Checksum Specifications for
911         Kerberos 5", draft-ietf-krb-wg-crypto-03.txt (work in progress).
913    [4]  Yergeau, F., "UTF-8, a transformation format of ISO 10646", RFC
914         2279, January 1998.
951 Hartman                  Expires August 9, 2004                [Page 17]
953 Internet-Draft        Kerberos Preauth Framework           February 2004
956 Informative References
958    [5]  Hornstein, K., Renard, K., Neuman, C. and G. Zorn, "Integrating
959         Single-use Authentication Mechanisms with Kerberos",
960         draft-ietf-krb-wg-kerberos-sam-02.txt (work in progress),
961         October 2003.
964 Author's Address
966    Sam hartman
967    MIT
969    EMail: hartmans@mit.edu
1007 Hartman                  Expires August 9, 2004                [Page 18]
1009 Internet-Draft        Kerberos Preauth Framework           February 2004
1012 Appendix A. Todo List
1014       Flesh out sections that are still outlines
1016       Discuss cookies and multiple-round-trip mechanisms.
1018       Talk about checksum contributions from each mechanism
1063 Hartman                  Expires August 9, 2004                [Page 19]
1065 Internet-Draft        Kerberos Preauth Framework           February 2004
1068 Intellectual Property Statement
1070    The IETF takes no position regarding the validity or scope of any
1071    intellectual property or other rights that might be claimed to
1072    pertain to the implementation or use of the technology described in
1073    this document or the extent to which any license under such rights
1074    might or might not be available; neither does it represent that it
1075    has made any effort to identify any such rights. Information on the
1076    IETF's procedures with respect to rights in standards-track and
1077    standards-related documentation can be found in BCP-11. Copies of
1078    claims of rights made available for publication and any assurances of
1079    licenses to be made available, or the result of an attempt made to
1080    obtain a general license or permission for the use of such
1081    proprietary rights by implementors or users of this specification can
1082    be obtained from the IETF Secretariat.
1084    The IETF invites any interested party to bring to its attention any
1085    copyrights, patents or patent applications, or other proprietary
1086    rights which may cover technology that may be required to practice
1087    this standard. Please address the information to the IETF Executive
1088    Director.
1091 Full Copyright Statement
1093    Copyright (C) The Internet Society (2004). All Rights Reserved.
1095    This document and translations of it may be copied and furnished to
1096    others, and derivative works that comment on or otherwise explain it
1097    or assist in its implementation may be prepared, copied, published
1098    and distributed, in whole or in part, without restriction of any
1099    kind, provided that the above copyright notice and this paragraph are
1100    included on all such copies and derivative works. However, this
1101    document itself may not be modified in any way, such as by removing
1102    the copyright notice or references to the Internet Society or other
1103    Internet organizations, except as needed for the purpose of
1104    developing Internet standards in which case the procedures for
1105    copyrights defined in the Internet Standards process must be
1106    followed, or as required to translate it into languages other than
1107    English.
1109    The limited permissions granted above are perpetual and will not be
1110    revoked by the Internet Society or its successors or assignees.
1112    This document and the information contained herein is provided on an
1113    "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
1114    TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
1115    BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
1119 Hartman                  Expires August 9, 2004                [Page 20]
1121 Internet-Draft        Kerberos Preauth Framework           February 2004
1124    HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
1125    MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
1128 Acknowledgment
1130    Funding for the RFC Editor function is currently provided by the
1131    Internet Society.
1175 Hartman                  Expires August 9, 2004                [Page 21]