NETWORK WORKING GROUP S. Emery Internet-Draft Oracle, Inc. Updates: 4121 (if approved) May 13, 2011 Intended status: Standards Track Expires: November 14, 2011 Kerberos Version 5 GSS-API Channel Binding Hash Agility draft-ietf-krb-wg-gss-cb-hash-agility-07.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 November 14, 2011. Copyright Notice Copyright (c) 2011 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 November 14, 2011 [Page 1] Internet-Draft Channel Binding Hash Agility May 2011 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 4. Security considerations . . . . . . . . . . . . . . . . . . . 7 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 8 6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 9 7. Normative References . . . . . . . . . . . . . . . . . . . . . 10 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 11 Emery Expires November 14, 2011 [Page 2] Internet-Draft Channel Binding Hash Agility May 2011 1. Introduction With the recently discovered weaknesses in the MD5 hash algorithm 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 November 14, 2011 [Page 3] Internet-Draft Channel Binding Hash Agility May 2011 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 November 14, 2011 [Page 4] Internet-Draft Channel Binding Hash Agility May 2011 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. All fields before "Exts" do not change from what is described in [RFC4121], they are listed for convenience. The 0x8003 GSS checksum MUST have the following structure: 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. When channel binding is used the Exts MUST include the following extension: Emery Expires November 14, 2011 [Page 5] Internet-Draft Channel Binding Hash Agility May 2011 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 ecryption 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 November 14, 2011 [Page 6] Internet-Draft Channel Binding Hash Agility May 2011 4. Security considerations Initiators do not know if the acceptor had ignored channel bindings or whether it validated the MD5 hash of the channel bindings [RFC4121]. Ultimately, it is up to the application whether to use channel binding or not. This is dependent upon the security policy of these applications. Emery Expires November 14, 2011 [Page 7] Internet-Draft Channel Binding Hash Agility May 2011 5. IANA Considerations The IANA is hereby requested to create a new 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," . Using the guidelines for allocation as described in [RFC5226], type number assignments are as follows: 0x00000000 - 0x000003FF IETF Consensus 0x00000400 - 0xFFFFF3FF Specification Required 0xFFFFF400 - 0xFFFFFFFF Private Use Emery Expires November 14, 2011 [Page 8] Internet-Draft Channel Binding Hash Agility May 2011 6. Acknowledgements 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 November 14, 2011 [Page 9] Internet-Draft Channel Binding Hash Agility May 2011 7. 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. Emery Expires November 14, 2011 [Page 10] Internet-Draft Channel Binding Hash Agility May 2011 Author's Address Shawn Emery Oracle, Inc. 500 Eldorado Blvd Building 1 Broomfield, CO 80021 US Email: shawn.emery@oracle.com Emery Expires November 14, 2011 [Page 11]