plug memory leak
[heimdal.git] / doc / standardisation / draft-ietf-krb-wg-tcp-expansion-00.txt
blobabb6787b2501b196940b5178bd5fc6793576b5af
4 Network Working Group                                       S. Josefsson
5 Internet-Draft                                                       SJD
6 Updates: 4120 (if approved)                                 May 10, 2006
7 Expires: November 11, 2006
10 Extended Kerberos Version 5 Key Distribution Center (KDC) Exchanges Over
11                                   TCP
12                    draft-ietf-krb-wg-tcp-expansion-00
14 Status of this Memo
16    By submitting this Internet-Draft, each author represents that any
17    applicable patent or other IPR claims of which he or she is aware
18    have been or will be disclosed, and any of which he or she becomes
19    aware will be disclosed, in accordance with Section 6 of BCP 79.
21    Internet-Drafts are working documents of the Internet Engineering
22    Task Force (IETF), its areas, and its working groups.  Note that
23    other groups may also distribute working documents as Internet-
24    Drafts.
26    Internet-Drafts are draft documents valid for a maximum of six months
27    and may be updated, replaced, or obsoleted by other documents at any
28    time.  It is inappropriate to use Internet-Drafts as reference
29    material or to cite them other than as "work in progress."
31    The list of current Internet-Drafts can be accessed at
32    http://www.ietf.org/ietf/1id-abstracts.txt.
34    The list of Internet-Draft Shadow Directories can be accessed at
35    http://www.ietf.org/shadow.html.
37    This Internet-Draft will expire on November 11, 2006.
39 Copyright Notice
41    Copyright (C) The Internet Society (2006).
43 Abstract
45    This document describes an extensibility mechanism for the Kerberos
46    v5 protocol when used over TCP transports.
55 Josefsson               Expires November 11, 2006               [Page 1]
57 Internet-Draft          Kerberos V5 TCP extension               May 2006
60 Table of Contents
62    1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . . . 3
63    2.  Conventions used in this document . . . . . . . . . . . . . . . 3
64    3.  Extension Mechanism for TCP transport . . . . . . . . . . . . . 3
65    4.  Interoperability Consideration  . . . . . . . . . . . . . . . . 4
66    5.  Security Considerations . . . . . . . . . . . . . . . . . . . . 4
67    6.  IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 4
68    7.  Acknowledgements  . . . . . . . . . . . . . . . . . . . . . . . 5
69    8.  Normative References  . . . . . . . . . . . . . . . . . . . . . 5
70    Appendix A.  Copying conditions . . . . . . . . . . . . . . . . . . 5
71    Author's Address  . . . . . . . . . . . . . . . . . . . . . . . . . 6
72    Intellectual Property and Copyright Statements  . . . . . . . . . . 7
111 Josefsson               Expires November 11, 2006               [Page 2]
113 Internet-Draft          Kerberos V5 TCP extension               May 2006
116 1.  Introduction
118    The Kerberos 5 [3] specification, in section 7.2.2, reserve the high
119    order bit in the initial length field for TCP transport for future
120    expansion.  This document update [3] to describe the behaviour when
121    that bit is set.  This mechanism is intended for extensions that are
122    specific for the TCP transport.
125 2.  Conventions used in this document
127    The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
128    "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
129    document are to be interpreted as described in RFC 2119 [1].
132 3.  Extension Mechanism for TCP transport
134    The reserved high bit of the request length field is used to signal
135    the use of this extension mechanism.  When the reserved high bit is
136    set, the remaining 31 bits of the initial 4 octets are interpreted as
137    a bitmap.  Each bit in the bitmask can be used to request a
138    particular extension.  The 31 bits form the "extension bitmask".  It
139    is expected that other documents will describe the details associated
140    with particular bits.
142    A 4-octet value with only the high bit set, and thus the extension
143    bitmask all zeros, is called a PROBE.  A client may send a probe to
144    find out which extensions a KDC support.  A client may also set
145    particular bits in the extension bitmask directly, if it does not
146    need to query the KDC for available extensions before deciding which
147    extension to request.
149    If a KDC receive a PROBE, or if a KDC does not support all extensions
150    corresponding to set bits in the extension bitmask, the KDC MUST
151    return 4 octets with the high bit set, and with the remaining bitmask
152    indicate which extensions it supports.  The KDC SHOULD NOT close the
153    connection, and SHOULD wait for the client to then send a second
154    4-octet value, with the high bit set and the remaining bits as the
155    bitmask, to request a particular extension.  If the second 4-octet
156    value is a PROBE or an unsupported extension, the KDC MUST close the
157    connection.  This is used by the client to shutdown a session when
158    the KDC did not support a, by the client, required extension.
160    Resource avaibility considerations may influence whether, and for how
161    long, the KDC will wait for the client to send requests.
163    The behaviour when more than one non-high bit is set depends on the
167 Josefsson               Expires November 11, 2006               [Page 3]
169 Internet-Draft          Kerberos V5 TCP extension               May 2006
172    particular extension mechanisms.  If a requested extension (bit X)
173    does not specify how it interact with another requested extensions
174    (bit Y), the KDC MUST treat the request as a PROBE or unsupported
175    extension, and proceed as above.
177    Each extension MUST describe the structure of protocol data beyond
178    the length field, and the behaviour of the client and KDC.  If an
179    extension mechanism reserve multiple bits, it MUST describe how they
180    interact.
183 4.  Interoperability Consideration
185    Implementations with support for TCP that do not claim to conform to
186    RFC 4120 may not handle the high bit correctly.  Behaviour may
187    include closing the TCP connection without any response, and logging
188    an error message in the KDC log.  When this was written, this problem
189    existed in modern versions of popular implementations.
190    Implementations experiencing trouble getting the expected responses
191    from a server SHOULD assume that it does not support this extension
192    mechanism.  Clients MAY remember this semi-permanently, to avoid
193    excessive logging in the server.  Care should be taken to avoid
194    unexpected behaviour for the user when the KDC is eventually
195    upgraded.  Implementations MAY also provide a way to enable and
196    disable this extension on a per-realm basis.  How to handle these
197    backwards compatibility quirks are in general left unspecified.
200 5.  Security Considerations
202    Because the initial length field is not protected, it is possible for
203    an active attacker (i.e., one that is able to modify traffic between
204    the client and the KDC) to make it appear to the client that the
205    server does not support this extension mechanism.  Client and KDC
206    policies can be used to reject connections that does not use any
207    expansion.
210 6.  IANA Considerations
212    IANA needs to create a new registry for "Kerberos 5 TCP Extensions".
213    The initial contents of this registry should be:
215    [[RFC Editor: Replace xxxx below with the number of this RFC.]]
217    Bit #         Meaning                             Reference
218    -----         -------                             ---------
219    0..29         AVAILABLE for registration.
223 Josefsson               Expires November 11, 2006               [Page 4]
225 Internet-Draft          Kerberos V5 TCP extension               May 2006
228    30            RESERVED.                           RFC XXXX
230    IANA will register values 0 to 29 after IESG Approval, as defined in
231    BCP 64 [2].  Assigning value 30 requires a Standards Action that
232    update or obsolete this document.
235 7.  Acknowledgements
237    Thanks to Andrew Bartlett who pointed out that some implementations
238    (MIT Kerberos and Heimdal) did not follow RFC 4120 properly with
239    regards to the high bit, which resulted in an Interoperability
240    Consideration.
242    Nicolas Williams and Jeffrey Hutzelman provided comments that
243    improved the document.
245 8.  Normative References
247    [1]  Bradner, S., "Key words for use in RFCs to Indicate Requirement
248         Levels", BCP 14, RFC 2119, March 1997.
250    [2]  Narten, T. and H. Alvestrand, "Guidelines for Writing an IANA
251         Considerations Section in RFCs", BCP 26, RFC 2434, October 1998.
253    [3]  Neuman, C., Yu, T., Hartman, S., and K. Raeburn, "The Kerberos
254         Network Authentication Service (V5)", RFC 4120, July 2005.
257 Appendix A.  Copying conditions
259    Copyright (C) 2005, 2006 Simon Josefsson
261    Regarding this entire document or any portion of it, the author makes
262    no guarantees and is not responsible for any damage resulting from
263    its use.  The author grants irrevocable permission to anyone to use,
264    modify, and distribute it in any way that does not diminish the
265    rights of anyone else to use, modify, and distribute it, provided
266    that redistributed derivative works do not contain misleading author
267    or version information.  Derivative works need not be licensed under
268    similar terms.
279 Josefsson               Expires November 11, 2006               [Page 5]
281 Internet-Draft          Kerberos V5 TCP extension               May 2006
284 Author's Address
286    Simon Josefsson
287    SJD
289    Email: simon@josefsson.org
335 Josefsson               Expires November 11, 2006               [Page 6]
337 Internet-Draft          Kerberos V5 TCP extension               May 2006
340 Intellectual Property Statement
342    The IETF takes no position regarding the validity or scope of any
343    Intellectual Property Rights or other rights that might be claimed to
344    pertain to the implementation or use of the technology described in
345    this document or the extent to which any license under such rights
346    might or might not be available; nor does it represent that it has
347    made any independent effort to identify any such rights.  Information
348    on the procedures with respect to rights in RFC documents can be
349    found in BCP 78 and BCP 79.
351    Copies of IPR disclosures made to the IETF Secretariat and any
352    assurances of licenses to be made available, or the result of an
353    attempt made to obtain a general license or permission for the use of
354    such proprietary rights by implementers or users of this
355    specification can be obtained from the IETF on-line IPR repository at
356    http://www.ietf.org/ipr.
358    The IETF invites any interested party to bring to its attention any
359    copyrights, patents or patent applications, or other proprietary
360    rights that may cover technology that may be required to implement
361    this standard.  Please address the information to the IETF at
362    ietf-ipr@ietf.org.
365 Disclaimer of Validity
367    This document and the information contained herein are provided on an
368    "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
369    OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET
370    ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED,
371    INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
372    INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
373    WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
376 Copyright Statement
378    Copyright (C) The Internet Society (2006).  This document is subject
379    to the rights, licenses and restrictions contained in BCP 78, and
380    except as set forth therein, the authors retain all their rights.
383 Acknowledgment
385    Funding for the RFC Editor function is currently provided by the
386    Internet Society.
391 Josefsson               Expires November 11, 2006               [Page 7]