Re: [ldapext] [ldap] Re: draft-stroeder-hashed-userpassword-values-01

Howard Chu <hyc@highlandsun.com> Fri, 15 March 2013 13:18 UTC

Return-Path: <hyc@highlandsun.com>
X-Original-To: ldapext@ietfa.amsl.com
Delivered-To: ldapext@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 21A3C21F913E for <ldapext@ietfa.amsl.com>; Fri, 15 Mar 2013 06:18:11 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.349
X-Spam-Level:
X-Spam-Status: No, score=-2.349 tagged_above=-999 required=5 tests=[AWL=-0.050, BAYES_00=-2.599, MIME_8BIT_HEADER=0.3]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id vrrE+8NiDgd2 for <ldapext@ietfa.amsl.com>; Fri, 15 Mar 2013 06:18:10 -0700 (PDT)
Received: from mail.highlandsun.com (mail.highlandsun.com [70.87.222.79]) by ietfa.amsl.com (Postfix) with ESMTP id 56FA221F8FA4 for <ldapext@ietf.org>; Fri, 15 Mar 2013 06:18:08 -0700 (PDT)
Received: from [127.0.0.1] (localhost [127.0.0.1]) by mail.highlandsun.com (Postfix) with ESMTP id 7731784ED5; Fri, 15 Mar 2013 09:18:06 -0400 (EDT)
Message-ID: <51431F8D.3030701@highlandsun.com>
Date: Fri, 15 Mar 2013 06:18:05 -0700
From: Howard Chu <hyc@highlandsun.com>
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:22.0) Gecko/20100101 Firefox/22.0 SeaMonkey/2.19a1
MIME-Version: 1.0
To: Michael Ströder <michael@stroeder.com>, ldapext <ldapext@ietf.org>
References: <5103F924.2070800@stroeder.com> <CABBgLkcnK7WfthFOBD5Esfz+g1izcKoGgtxzKKDntc0i=E7LOQ@mail.gmail.com> <510782A6.7050209@stroeder.com> <3ED81CD8-59DA-482E-8AFA-C68E53A62067@isode.com> <51410020.4020800@stroeder.com> <20130314001901.GN18706@slab.skills-1st.co.uk> <5141F560.6040805@highlandsun.com> <5142171C.6090807@stroeder.com> <51421EC9.6060502@highlandsun.com> <514222B0.9090107@stroeder.com>
In-Reply-To: <514222B0.9090107@stroeder.com>
Content-Type: text/plain; charset="ISO-8859-1"; format="flowed"
Content-Transfer-Encoding: 8bit
Cc: "ldap@umich.edu" <ldap@umich.edu>
Subject: Re: [ldapext] [ldap] Re: draft-stroeder-hashed-userpassword-values-01
X-BeenThere: ldapext@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: LDAP Extension Working Group <ldapext.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/ldapext>, <mailto:ldapext-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ldapext>
List-Post: <mailto:ldapext@ietf.org>
List-Help: <mailto:ldapext-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ldapext>, <mailto:ldapext-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 15 Mar 2013 13:18:11 -0000

Michael Ströder wrote:
> Howard Chu wrote:
>> Michael Ströder wrote:
>>> Howard Chu wrote:
>>>> Hashed userPassword values are strictly a server-internal implementation
>>>> detail, clients never need to know about them.
>>>
>>> Not true.
>>>
>>> 1. E.g. think of bulk sync processes where it's quite usual that you convert
>>> password hashes within the LDAP client - in some cases even salted.
>>
>> If you can convert from one hash to another, the hash is broken.
>
> Conversion in this context means converting string representations of (salted)
> hashes. Obviously the algorithm and order of password and salt has to be the same.
>
>>> 3. In some cases it's more appropriate that a LDAP client writes several
>>> attributes in a *single* LDAP write operation instead of using a add/modify
>>> with a subsequent Password Modify ext. op. E.g. when subschema has 'MUST
>>> userPassword' for an object class used.
>>
>> Perhaps so. But this requires the client (or admin running the client) to
>> already know what schemes the target server supports.
>
> We all know that clients have to use some a priori knowledge - most times
> called protocol. ;-)
>
> Another use-cases is dealing with data migration to server product of another
> vendor.

In which case the Admin must look up the documentation of the other vendor's 
product. It is not the IETF's job to serve as a clearinghouse for all 
vendor-specific implementation details, nor is it practical in the long run.

> => So I consider this draft to be useful.
>
>> Finally, an objectclass that defines "MUST userPassword" also has to be
>> considered broken. (Reminds me of groupOfNames / MUST member.)
>
> That's simply your personal opinion not a strong objecting argument.

You're obviously missing the bigger picture then. I shouldn't need to remind 
you of all the trouble that "MUST member" has caused. In this case, deleting a 
userPassword is a straightforward way of disabling authentication for an 
account. If your schema prevents this mechanism your schema is broken. That's 
not an opinion, that's fact.

>>>       userpasswordvalue  = cleartext-password / prefix hashed-password
>>
>> I think you should replace "hashed-password" with "scheme-specific data" and
>> stop there.
>
> That's a conclusion of your opinion. But I want to describe the *order* of
> password and salt used by any server I saw using the scheme.

You can describe those things separately, but this is as far as you should go 
with a formal syntax. Otherwise you will get sucked into the rathole of 
defining special cases for every currently known encoding, and you've already 
stated that you want to avoid that. So no, it's a logical conclusion from 
*your* opinion, not mine.

>> Provide examples for MD5/SHA/SHA-2 if you like, but emphasize that
>> these are just informal examples.
>
> The whole I-D has target "informational".
>
>> There's no reason someone can't come along
>> and use an unconstrained octet string after the scheme, if they really want to.
>
> Yes. But this would just be another scheme to be defined somewhere else.
> This draft does not claim to cover everything you could ever stuff into
> 'userPassword'.

But defining a formal syntax as you're doing *does* exactly that. Which is why 
I'm telling you you're making a mistake.

> Ciao, Michael.
>


-- 
   -- Howard Chu
   CTO, Symas Corp.           http://www.symas.com
   Director, Highland Sun     http://highlandsun.com/hyc/
   Chief Architect, OpenLDAP  http://www.openldap.org/project/