Daniel Pocock wrote:
On 13/07/15 11:37, Daniel Pocock wrote:
> On 13/07/15 11:03, Michael Ströder wrote:
>> Daniel Pocock wrote:
>>> There are a few protocols that use a HA1 password hash, such as HTTP
>>> DIGEST, SIP DIGEST and TURN (which uses HMAC rather than DIGEST)
>>> Is there a standard LDAP attribute name for storing a HA1 value or
>>> should it be stored in a regular userPassword attribute as described in
>>> the manual?
>> Do you want to use the LDAP server only as dumb password store or do you also
>> want to use this attribute for LDAP bind operation?
> Good question
> For the DIGEST and HMAC algorithms, the most interesting possibility
> would be for OpenLDAP to perform validation:
> 1. HTTP server (or SIP proxy or whatever) creates a challenge header and
> sends it to the end user
> 2. User responds with an authorization token
> 3. HTTP server gives a copy of the challenge and the response to the
> OpenLDAP server
> 4. OpenLDAP gives a validation true/false response
> In this case, clients can't read the HA1 from LDAP
> Could that be done with a bind? Does it have any performance impact
> doing a bind or is there a more lightweight way to achieve this?
You can't pass all the necessary parameters (nonce, challenge, uri, etc.) to
the LDAP server using a Simple Bind request. But e.g. HTTP DIGEST is the same
as the SASL DIGEST-MD5 mechanism. You could pass thru the parameters from an
LDAP SASL Bind request, with the HTTP (or whatever) server just acting as a
MITM. Note that in that case, the LDAP server's SASL library generates the
challenge, the HTTP server must parse it and pass it on to the client.
There's no particular performance impact for Bind itself; whatever crypto the
underlying mechanism uses will have its own cost of course.
> There is already a similar solution for RADIUS, rlm_digest
I'm just wondering if anybody can give any more feedback about
issue before I look at coding anything for it?
-- Howard Chu
CTO, Symas Corp. http://www.symas.com
Director, Highland Sun http://highlandsun.com/hyc/
Chief Architect, OpenLDAP http://www.openldap.org/project/