idnits 2.17.1 draft-melnikov-sasl-scram-ldap-02.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- ** The document seems to lack a License Notice according IETF Trust Provisions of 28 Dec 2009, Section 6.b.ii or Provisions of 12 Sep 2009 Section 6.b -- however, there's a paragraph with a matching beginning. Boilerplate error? (You're using the IETF Trust Provisions' Section 6.b License Notice from 12 Feb 2009 rather than one of the newer Notices. See https://trustee.ietf.org/license-info/.) Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- ** The document seems to lack a both a reference to RFC 2119 and the recommended RFC 2119 boilerplate, even if it appears to use RFC 2119 keywords. RFC 2119 keyword, line 118: '... Servers MUST validate format of the...' Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year -- The document seems to lack a disclaimer for pre-RFC5378 work, but may have content which was first submitted before 10 November 2008. If you have contacted all the original authors and they are all willing to grant the BCP78 rights to the IETF Trust, then this is fine, and you can ignore this comment. If not, you may need to add the pre-RFC5378 disclaimer. (See the Legal Provisions document at https://trustee.ietf.org/license-info for more information.) -- The document date (July 30, 2009) is 5384 days in the past. Is this intentional? Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) == Unused Reference: 'RFC4422' is defined on line 156, but no explicit reference was found in the text ** Downref: Normative reference to an Informational RFC: RFC 3112 (ref. 'AUTHPASS') == Outdated reference: A later version (-13) exists of draft-newman-auth-scram-07 Summary: 3 errors (**), 0 flaws (~~), 3 warnings (==), 2 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 SASL Working Group A. Melnikov 3 Internet-Draft Isode Limited 4 Intended status: Standards Track July 30, 2009 5 Expires: January 31, 2010 7 LDAP schema for storing SCRAM secrets 8 draft-melnikov-sasl-scram-ldap-02 10 Status of this Memo 12 This Internet-Draft is submitted to IETF in full conformance with the 13 provisions of BCP 78 and BCP 79. 15 Internet-Drafts are working documents of the Internet Engineering 16 Task Force (IETF), its areas, and its working groups. Note that 17 other groups may also distribute working documents as Internet- 18 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 26 http://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 January 31, 2010. 33 Copyright Notice 35 Copyright (c) 2009 IETF Trust and the persons identified as the 36 document authors. All rights reserved. 38 This document is subject to BCP 78 and the IETF Trust's Legal 39 Provisions Relating to IETF Documents in effect on the date of 40 publication of this document (http://trustee.ietf.org/license-info). 41 Please review these documents carefully, as they describe your rights 42 and restrictions with respect to this document. 44 Abstract 46 This memo describes how authPassword LDAP attribute can be used for 47 storing secrets used by Salted Challenge Response (SCRAM) Simple 48 Authentication and Security Layer (SASL) Mechanism. 50 Note 52 A revised version of this draft document will be submitted to the RFC 53 editor as a Proposed Standard for the Internet Community. Discussion 54 and suggestions for improvement are requested, and should be sent to 55 ietf-sasl@imc.org. 57 Table of Contents 59 1. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . 3 61 2. Security Considerations . . . . . . . . . . . . . . . . . . . 3 63 3. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 4 65 4. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 4 67 5. References . . . . . . . . . . . . . . . . . . . . . . . . . 4 68 5.1. Normative References . . . . . . . . . . . . . . . . . . . . 4 69 5.2. Informative References . . . . . . . . . . . . . . . . . . . 4 71 Author's Address . . . . . . . . . . . . . . . . . . . . . . 4 73 1. Overview 75 This memo defines a family of schema for authPassword attribute 76 defined in [AUTHPASS]. Non terminal references in the following ABNF 77 are defined in either [AUTHPASS] or [RFC5234]. 79 The "scheme" part of the authPassword attribute is the SCRAM 80 mechanism name (always without the "-PLUS" suffix), e.g. "SCRAM- 81 SHA-1". See [SCRAM] for the exact syntax of SCRAM mechanism 82 names. 84 The "authInfo" part of the authPassword attribute is the iteration 85 count, followed by ":" and base-64 [BASE64] encoded salt. 87 The "authValue" part of the authPassword attribute is the base-64 88 [BASE64] encoded StoredKey [SCRAM], followed by ":" and base-64 89 [BASE64] encoded ServerKey [SCRAM]. 91 Syntax of the attribute can be expressed using ABNF [RFC5234]: 93 scram-mech = "SCRAM-SHA-1" 94 ;; Complies with ABNF for 96 scram-authInfo = iter-count ":" salt 97 ;; Complies with ABNF for 99 scram-authValue = stored-key ":" server-key 100 ;; Complies with ABNF for 102 iter-count = %x31-39 *DIGIT 103 ; a positive number without leading zeros 105 salt = <> 107 stored-key = <> 109 server-key = <> 111 [[anchor2: Add an example.]] 113 Note that the authPassword attribute is multivalued. For example, it 114 may contain multiple SCRAM hashes for different hashing algorithms. 116 2. Security Considerations 118 Servers MUST validate format of the authPassword attribute before 119 using it for performing a SCRAM authentication exchange. It is 120 possible that an attacker compromised the LDAP server or got access 121 to the entry containing the attribute in order to exploit a 122 vulnerability in the subsystem performing SCRAM authentication 123 exchange. Big iteration counts and invalid base-64 encoding are two 124 possible (but not the only) exploits in the format specified in the 125 document. 127 3. IANA Considerations 129 No action is required from IANA. 131 4. Acknowledgements 133 The author gratefully acknowledges the feedback provided by Chris 134 Newman and Kurt Zeilenga. 136 5. References 138 5.1. Normative References 140 [AUTHPASS] 141 Zeilenga, K., "LDAP Authentication Password Schema", 142 RFC 3112, May 2001. 144 [BASE64] Josefsson, S., "The Base16, Base32, and Base64 Data 145 Encodings", RFC 4648, October 2006. 147 [RFC5234] Crocker, D. and P. Overell, "Augmented BNF for Syntax 148 Specifications: ABNF", STD 68, RFC 5234, January 2008. 150 [SCRAM] Menon-Sen, A. and C. Newman, "Salted Challenge Response 151 (SCRAM) SASL Mechanism", draft-newman-auth-scram-07.txt 152 (work in progress), July 2008. 154 5.2. Informative References 156 [RFC4422] Melnikov, A. and K. Zeilenga, "Simple Authentication and 157 Security Layer (SASL)", RFC 4422, June 2006. 159 Author's Address 161 Alexey Melnikov 162 Isode Limited 163 5 Castle Business Village 164 36 Station Road 165 Hampton, Middlesex TW12 2BX 166 UK 168 Email: alexey.melnikov@isode.com 169 URI: http://www.melnikov.ca/