summaryrefslogtreecommitdiff
path: root/doc/rfc/rfc5021.txt
diff options
context:
space:
mode:
Diffstat (limited to 'doc/rfc/rfc5021.txt')
-rw-r--r--doc/rfc/rfc5021.txt395
1 files changed, 395 insertions, 0 deletions
diff --git a/doc/rfc/rfc5021.txt b/doc/rfc/rfc5021.txt
new file mode 100644
index 0000000..9e712e6
--- /dev/null
+++ b/doc/rfc/rfc5021.txt
@@ -0,0 +1,395 @@
+
+
+
+
+
+
+Network Working Group S. Josefsson
+Request for Comments: 5021 SJD
+Updates: 4120 August 2007
+Category: Standards Track
+
+
+ Extended Kerberos Version 5 Key Distribution Center (KDC)
+ Exchanges over TCP
+
+Status of This Memo
+
+ This document specifies an Internet standards track protocol for the
+ Internet community, and requests discussion and suggestions for
+ improvements. Please refer to the current edition of the "Internet
+ Official Protocol Standards" (STD 1) for the standardization state
+ and status of this protocol. Distribution of this memo is unlimited.
+
+Copyright Notice
+
+ Copyright (C) The IETF Trust (2007).
+
+Abstract
+
+ This document describes an extensibility mechanism for the Kerberos
+ V5 protocol when used over TCP transports. The mechanism uses the
+ reserved high-bit in the length field. It can be used to negotiate
+ TCP-specific Kerberos extensions.
+
+Table of Contents
+
+ 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 2
+ 2. Conventions Used in This Document . . . . . . . . . . . . . . . 2
+ 3. Extension Mechanism for TCP Transport . . . . . . . . . . . . . 2
+ 4. Interoperability Consideration . . . . . . . . . . . . . . . . 3
+ 5. Security Considerations . . . . . . . . . . . . . . . . . . . . 4
+ 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 4
+ 7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 5
+ 8. Normative References . . . . . . . . . . . . . . . . . . . . . 5
+ Appendix A. Copying Conditions . . . . . . . . . . . . . . . . . . 6
+
+
+
+
+
+
+
+
+
+
+
+
+Josefsson Standards Track [Page 1]
+
+RFC 5021 Kerberos V5 TCP Extension August 2007
+
+
+1. Introduction
+
+ The Kerberos V5 [3] specification, in section 7.2.2, reserves the
+ high order bit in the initial length field for TCP transport for
+ future expansion. This document updates [3] to describe the
+ behaviour when that bit is set. This mechanism is intended for
+ extensions that are specific for the TCP transport.
+
+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].
+
+3. Extension Mechanism for TCP Transport
+
+ The reserved high bit of the request length field is used to signal
+ the use of this extension mechanism. When the reserved high bit is
+ set in the length field, the remaining 31 bits of the initial 4
+ octets are interpreted as a bitmap. Each bit in the bitmask can be
+ used to request a particular extension. The 31 bits form the
+ "extension bitmask". It is expected that other documents will
+ describe the details associated with particular bits.
+
+ A 4-octet value with only the high bit set, and thus the extension
+ bitmask all zeros, is called a PROBE. A client may send a probe to
+ find out which extensions a KDC supports. A client may also set
+ particular bits in the extension bitmask directly, if it does not
+ need to query the KDC for available extensions before deciding which
+ extension to request.
+
+ Note that clients are not forced to use this extension mechanism, and
+ further, clients are expected to only use it when they wish to
+ negotiate a particular extension.
+
+ The protocol is as follows. The client MUST begin by sending a
+ 4-octet value with the high bit set. The packet is thus either a
+ PROBE or a specific request for some extension(s). The client MUST
+ NOT send additional data before the server has responded.
+
+ If a KDC receives a request for a set of extensions that it supports,
+ it MUST respond by sending a 4-octet zero value, i.e., 0x00000000.
+ The KDC MAY directly send additional data after the zero value,
+ without waiting for the client to respond, as specified by the
+ particular negotiated extension. (Note: A 4-octet zero value can
+ never be sent by an implementation that conforms to RFC 4120 and that
+ does not support this extension mechanism, because a KRB-ERROR is
+ always of non-zero size.)
+
+
+
+Josefsson Standards Track [Page 2]
+
+RFC 5021 Kerberos V5 TCP Extension August 2007
+
+
+ If a KDC receives a PROBE, or if a KDC does not support all
+ extensions corresponding to set bits in the extension bitmask, the
+ KDC MUST return 4 octets with the high bit set, and with the
+ remaining bitmask indicating which extensions it supports. The KDC
+ then MUST wait, and the client MUST send a second 4-octet value with
+ the high bit set. If the second 4-octet value is a PROBE or an
+ unsupported extension, the KDC MUST close the connection. This can
+ be used by the client to shut down a session when the KDC did not
+ support an extension that is required by the client. If the second
+ 4-octet value is a supported extension, the KDC MUST respond by
+ sending a 4-octet zero value, i.e., 0x00000000. The KDC MAY directly
+ send additional data after the zero value, as specified by the
+ particular negotiated extension.
+
+ The client and KDC SHOULD wait for the other side to respond
+ according to this protocol, and the client and KDC SHOULD NOT close
+ the connection prematurely. Resource availability considerations may
+ influence whether, and for how long, the client and KDC will wait for
+ the other side to respond to a request.
+
+ The KDC MUST NOT support the extension mechanism if it does not
+ support any extensions. If no extensions are supported, the KDC MUST
+ return a KRB-ERROR message with the error KRB_ERR_FIELD_TOOLONG and
+ MUST close the TCP stream, similar to what an implementation that
+ does not understand this extension mechanism would do.
+
+ The behaviour when more than one non-high bit is set depends on the
+ particular extension mechanisms. If a requested extension (bit X)
+ does not specify how it interacts with another requested extension
+ (bit Y), the KDC MUST treat the request as a PROBE or unsupported
+ extension, and proceed as above.
+
+ Each extension MUST describe the structure of protocol data beyond
+ the length field, and the behaviour of the client and KDC. In
+ particular, the structure may be a protocol with its own message
+ framing. If an extension mechanism reserves multiple bits, it MUST
+ describe how they interact.
+
+4. Interoperability Consideration
+
+ Implementations with support for TCP that do not claim to conform to
+ RFC 4120 may not handle the high bit correctly. The KDC behaviour
+ may include closing the TCP connection without any response, and
+ logging an error message in the KDC log. When this was written, this
+ problem existed in modern versions of popular KDC implementations.
+ Implementations experiencing trouble getting the expected responses
+ from a KDC might assume that the KDC does not support this extension
+ mechanism. A client might remember this semi-permanently, to avoid
+
+
+
+Josefsson Standards Track [Page 3]
+
+RFC 5021 Kerberos V5 TCP Extension August 2007
+
+
+ triggering the same problematic behaviour on the KDC every time.
+ Care should be taken to avoid unexpected behaviour for the user when
+ the KDC is eventually upgraded. Implementations might also provide a
+ way to enable and disable this extension on a per-realm basis. How
+ to handle these backwards compatibility quirks are in general left
+ unspecified.
+
+5. Security Considerations
+
+ Because the initial length field is not protected, it is possible for
+ an active attacker (i.e., one that is able to modify traffic between
+ the client and the KDC) to make it appear to the client that the
+ server does not support this extension mechanism (a downgrade
+ attack). Further, active attackers can also interfere with the
+ negotiation of which extensions are supported, which may also result
+ in a downgrade attack. This problem can be solved by having a policy
+ in the clients and in the KDC to reject connections that do not have
+ the desired properties. The problem can also be mitigated by having
+ the negotiated extension send a cryptographic checksum of the offered
+ extensions.
+
+6. IANA Considerations
+
+ IANA has created a new registry for "Kerberos TCP Extensions". The
+ initial contents of this registry are:
+
+ Bit # Reference
+ ----- ---------
+ 0..29 AVAILABLE for registration.
+ 30 RESERVED. RFC 5021
+
+ IANA will register values 0 to 29 after IESG Approval, as defined in
+ BCP 64 [2]. Assigning value 30 requires a Standards Action that
+ updates or obsoletes this document.
+
+ Registration policy: The IESG will act as a steward for the
+ namespace, considering whether the registration is justified given
+ the limited size of the namespace. The IESG will also confirm that
+ proposed registrations are not harmful to the Internet.
+
+
+
+
+
+
+
+
+
+
+
+
+Josefsson Standards Track [Page 4]
+
+RFC 5021 Kerberos V5 TCP Extension August 2007
+
+
+7. Acknowledgements
+
+ Nicolas Williams, Jeffrey Hutzelman, Sam Hartman, and Chris Newman
+ provided comments that improved the protocol and document.
+
+ Thanks to Andrew Bartlett who pointed out that some implementations
+ (MIT Kerberos and Heimdal) did not follow RFC 4120 properly with
+ regards to the high bit, which resulted in an Interoperability
+ Consideration.
+
+8. Normative References
+
+ [1] Bradner, S., "Key words for use in RFCs to Indicate Requirement
+ Levels", BCP 14, RFC 2119, March 1997.
+
+ [2] Narten, T. and H. Alvestrand, "Guidelines for Writing an IANA
+ Considerations Section in RFCs", BCP 26, RFC 2434, October 1998.
+
+ [3] Neuman, C., Yu, T., Hartman, S., and K. Raeburn, "The Kerberos
+ Network Authentication Service (V5)", RFC 4120, July 2005.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Josefsson Standards Track [Page 5]
+
+RFC 5021 Kerberos V5 TCP Extension August 2007
+
+
+Appendix A. Copying Conditions
+
+ Regarding this entire document or any portion of it, the author makes
+ no guarantees and is not responsible for any damage resulting from
+ its use. The author grants irrevocable permission to anyone to use,
+ modify, and distribute it in any way that does not diminish the
+ rights of anyone else to use, modify, and distribute it, provided
+ that redistributed derivative works do not contain misleading author
+ or version information. Derivative works need not be licensed under
+ similar terms.
+
+Author's Address
+
+ Simon Josefsson
+ SJD
+
+ EMail: simon@josefsson.org
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Josefsson Standards Track [Page 6]
+
+RFC 5021 Kerberos V5 TCP Extension August 2007
+
+
+Full Copyright Statement
+
+ Copyright (C) The IETF Trust (2007).
+
+ This document is subject to the rights, licenses and restrictions
+ contained in BCP 78, and except as set forth therein, the authors
+ retain all their rights.
+
+ This document and the information contained herein are provided on an
+ "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
+ OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND
+ THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS
+ OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF
+ THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
+ WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
+
+Intellectual Property
+
+ The IETF takes no position regarding the validity or scope of any
+ Intellectual Property Rights or other rights that might be claimed to
+ pertain to the implementation or use of the technology described in
+ this document or the extent to which any license under such rights
+ might or might not be available; nor does it represent that it has
+ made any independent effort to identify any such rights. Information
+ on the procedures with respect to rights in RFC documents can be
+ found in BCP 78 and BCP 79.
+
+ Copies of IPR disclosures made to the IETF Secretariat and any
+ assurances of licenses to be made available, or the result of an
+ attempt made to obtain a general license or permission for the use of
+ such proprietary rights by implementers or users of this
+ specification can be obtained from the IETF on-line IPR repository at
+ http://www.ietf.org/ipr.
+
+ The IETF invites any interested party to bring to its attention any
+ copyrights, patents or patent applications, or other proprietary
+ rights that may cover technology that may be required to implement
+ this standard. Please address the information to the IETF at
+ ietf-ipr@ietf.org.
+
+Acknowledgement
+
+ Funding for the RFC Editor function is currently provided by the
+ Internet Society.
+
+
+
+
+
+
+
+Josefsson Standards Track [Page 7]
+