Internet DRAFT - draft-ietf-krb-wg-gss-cb-hash-agility
draft-ietf-krb-wg-gss-cb-hash-agility
NETWORK WORKING GROUP S. Emery
Internet-Draft Oracle
Updates: 4121 (if approved) January 6, 2012
Intended status: Standards Track
Expires: July 9, 2012
Kerberos Version 5 GSS-API Channel Binding Hash Agility
draft-ietf-krb-wg-gss-cb-hash-agility-10.txt
Abstract
Currently, channel bindings are implemented using a MD5 hash in the
Kerberos Version 5 Generic Security Services Application Programming
Interface (GSS-API) mechanism [RFC4121]. This document updates
RFC4121 to allow channel bindings using algorithms negotiated based
on Kerberos crypto framework as defined in RFC3961. In addition,
because this update makes use of the last extensible field in the
Kerberos client-server exchange message, extensions are defined to
allow future protocol extensions.
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 July 9, 2012.
Copyright Notice
Copyright (c) 2012 IETF Trust and the persons identified as the
document authors. All rights reserved.
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
Emery Expires July 9, 2012 [Page 1]
Internet-Draft Channel Binding Hash Agility January 2012
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. Conventions Used in This Document . . . . . . . . . . . . . . 4
3. Channel Binding Hash Agility . . . . . . . . . . . . . . . . . 5
3.1. Structure of the Exts Field . . . . . . . . . . . . . . . 5
3.2. The Channel Binding Extension . . . . . . . . . . . . . . 6
4. Security Considerations . . . . . . . . . . . . . . . . . . . 7
5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 8
6. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 9
7. References . . . . . . . . . . . . . . . . . . . . . . . . . . 10
7.1. Normative References . . . . . . . . . . . . . . . . . . . 10
7.2. Informative References . . . . . . . . . . . . . . . . . . 10
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 11
Emery Expires July 9, 2012 [Page 2]
Internet-Draft Channel Binding Hash Agility January 2012
1. Introduction
With the recently discovered weaknesses in the MD5 hash algorithm,
see [RFC6151], there is a need to use stronger hash algorithms.
Kerberos Version 5 Generic Security Services Application Programming
Interface (GSS-API) mechanism [RFC4121] uses MD5 to calculate channel
binding verifiers. This document specifies an update to the
mechanism that allows it to create channel binding information based
on negotiated algorithms. This will allow deploying new algorithms
incrementally without breaking interoperability with older
implementations, when new attacks arise in the future.
Emery Expires July 9, 2012 [Page 3]
Internet-Draft Channel Binding Hash Agility January 2012
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 [RFC2119].
The term "little endian order" is used for brevity to refer to the
least-significant-octet-first encoding, while the term "big endian
order" is for the most-significant-octet-first encoding.
Emery Expires July 9, 2012 [Page 4]
Internet-Draft Channel Binding Hash Agility January 2012
3. Channel Binding Hash Agility
When generating a channel binding verifier, Bnd, a hash is computed
from the channel binding fields. Initiators MUST populate the Bnd
field in order to maintain interoperability with existing acceptors.
In addition, initiators MUST populate the extension field, Exts,
defined below.
3.1. Structure of the Exts Field
The 0x8003 GSS checksum has the same structure described in [RFC4121]
except that the "Exts" field is now defined; the entire structure of
the 0x8003 checksum including the now defined "Exts" field follows:
Octet Name Description
-----------------------------------------------------------------
0..3 Lgth Number of octets in Bnd field; Represented
in little-endian order; Currently contains
hex value 10 00 00 00 (16).
4..19 Bnd Channel binding information, as described in
section 4.1.1.2 [RFC4121].
20..23 Flags Four-octet context-establishment flags in
little-endian order as described in section
4.1.1.1 [RFC4121].
24..25 DlgOpt The delegation option identifier (=1) in
little-endian order [optional]. This field
and the next two fields are present if and
only if GSS_C_DELEG_FLAG is set as described
in section 4.1.1.1 [RFC4121].
26..27 Dlgth The length of the Deleg field in
little-endian order [optional].
28..(n-1) Deleg KRB_CRED message (n = Dlgth + 28) [optional].
n..last Exts Extensions
where Exts is the concatenation of zero, one or more individual
extensions, each of which consists of, in order:
type -- big endian order unsigned integer, 32-bits, which
contains the type of extension
length -- big endian order unsigned integer, 32-bits, which
contains the length, in octets, of the extension data
encoded as an array of octets immediately following this
field
data -- octet string of extension information
If multiple extensions are present then there MUST be at most one
instance of a given extension type.
Emery Expires July 9, 2012 [Page 5]
Internet-Draft Channel Binding Hash Agility January 2012
3.2. The Channel Binding Extension
When channel binding is used the Exts MUST include the following
extension:
data-type 0x00000000
data-value
The output obtained by applying the Kerberos V get_mic
operation [RFC3961] with key usage number 43, to the channel
binding data as described in [RFC4121], section 4.1.1.2 (using
get_mic instead of MD5). The key used is the sub-session key
from the authenticator, if it is present, otherwise the key
used is the session key from the ticket. The get_mic algorithm
is chosen as the "required checksum mechanism" for the
encryption type of the key used.
Initiators that are unwilling to use a MD5 hash of the channel
bindings MUST set the Bnd field to sixteen octets of hex value FF.
Emery Expires July 9, 2012 [Page 6]
Internet-Draft Channel Binding Hash Agility January 2012
4. Security Considerations
With this mechanism initiators get no indication as to whether the
acceptors check or ignore channel bindings.
It is up to the application whether to enforce the use of channel
bindings or not. [RFC5056] and [RFC5554] give guidance for
application developers on channel bindings usage.
Emery Expires July 9, 2012 [Page 7]
Internet-Draft Channel Binding Hash Agility January 2012
5. IANA Considerations
The IANA is hereby requested to create a new top-level registry
titled "Kerberos V GSS-API Mechanism Parameters," separate from the
existing Kerberos parameters registry. Within this registry, IANA is
requested to create a sub-registry of "Kerberos V GSS-API mechanism
extension types" with four-field entries (type number, type name,
description, and normative reference) and, initially, a single
registration: 0x00000000, "Channel Binding MIC," "Extension for the
verifier of the channel bindings," <this RFC>.
Using the guidelines for allocation as described in [RFC5226], type
number assignments are as follows:
0x00000000 - 0x000003FF IETF Review
0x00000400 - 0xFFFFF3FF Specification Required
0xFFFFF400 - 0xFFFFFFFF Private Use
Emery Expires July 9, 2012 [Page 8]
Internet-Draft Channel Binding Hash Agility January 2012
6. Acknowledgments
The author would like to thank Larry Zhu, Nicolas Williams, Sam
Hartman, Jeffrey Hutzelman, and Simon Josefsson for their help in
reviewing and providing valuable feed-back of the draft.
Emery Expires July 9, 2012 [Page 9]
Internet-Draft Channel Binding Hash Agility January 2012
7. References
7.1. Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC3961] Raeburn, K., "Encryption and Checksum Specifications for
Kerberos 5", RFC 3961, February 2005.
[RFC4121] Zhu, L., Jaganathan, K., and S. Hartman, "The Kerberos
Version 5 Generic Security Service Application Program
Interface (GSS-API) Mechanism: Version 2", RFC 4121,
July 2005.
[RFC5226] Narten, T. and H. Alvestrand, "Guidelines for Writing an
IANA Considerations Section in RFCs", BCP 26, RFC 5226,
May 2008.
7.2. Informative References
[RFC5056] Williams, N., "On the Use of Channel Bindings to Secure
Channels", RFC 5056, November 2007.
[RFC5554] Williams, N., "Clarifications and Extensions to the
Generic Security Service Application Program Interface
(GSS-API) for the Use of Channel Bindings", RFC 5554,
May 2009.
[RFC6151] Turner, S. and L. Chen, "Updated Security Considerations
for the MD5 Message-Digest and the HMAC-MD5 Algorithms",
RFC 6151, March 2011.
Emery Expires July 9, 2012 [Page 10]
Internet-Draft Channel Binding Hash Agility January 2012
Author's Address
Shawn Emery
Oracle
500 Eldorado Blvd
Building 1
Broomfield, CO 80021
USA
Email: shawn.emery@oracle.com
Emery Expires July 9, 2012 [Page 11]