[JDEV] digest and ldap and authentication

mark at mjwilcox.com mark at mjwilcox.com
Sun Jul 30 09:42:55 CDT 2000


On 30 Jul 00, at 14:44, Max Horn wrote:

> I have to admit that I have little to no knowledge about LDAP, so 
> please forgive my ignorance.
> 
> 
> As I understand it, you have to authenticate with LDAP. To do so, you 
> need a plaintext password in any case.

> 
> So there are exactly two options if one wants to achieve this:
> 
> 1) Force the user to send his LDAP password *in plaintext* to the 
> server. Whether it is equal to the jabber password or not doesn't 
> matter at this point.
If you mean on registration, yes. Otherwise Jabber only does this if 
you don't want to use digest authentication.

For the record, LDAP could support any number of different 
authentication schemes, such as SSL client certificates, CRAM-
MD5 & Kerberos. 

> 
> 2) The LDAP db has to store the LDAP password for an entry *in* that 
> entry in *plaintext*, too
It would if you want to do Jabber digest authentication. However, I'd 
never allow this in my LDAP server. And while LDAP can store 
multiple passwords in an entry (in a number of different formats if 
you want :), this problem is going to be there when you try to 
integrate jabber with any other authentication system. Outside of 
homegrown authentication systems (such as what Jabber uses by 
default), nobody stores their passwords in plaintext in the 
password database.

> 
> 
> to 1) of course one could say that for a secure connection the user 
> just has to establish a SSL connection. Doing this is only possible 
> when a) servers support SSL (a vast majority doesn't; it's not that 
> easy anyway, the admins have to find out the steps anyway, due to the 
> lack of documentation). And b), it'll require a certification system, 
> otherwise it's prone to fall to DNS spoof attacks.
> So, we need certs. The server gotta have a cert, and the clients need 
> to ask the user for trust into that cert, then they have to store the 
> cert locally to use it for future server verification.
> On unix it might be possible to achieve this via stunnel, but I can't 
> they as I'm not a unix man... Anyone can clarify this?

You have this procedure right (and at least the hooks for eventually 
adding SSL are already there in Jabber, just nobody has 
implemented it yet) :).

However, Stunnel works on UNIX and Windows ;). 

SSL is a much better solution because it's a known standard & 
would encrypt the entire session, not just the password. If you're 
using Jabber to do company meetings, you should want the entire 
conversation encrypted, not just the password (then again people 
make business decisions via email all of the time & that's not 
usually encrypted ;). It also would protect the password during user 
registration, which digest authentication does not do (thus IMHO, 
it's not really any more secure than traditional authentication 
because it can be sniffed during registration)

Eventually if SSL support was built in (e.g. not just stunnel)  to the 
client, then you could add in SSL client certificates which would 
allow for a much more secure form of authentication.

Mark

> 
> 
> 
> to 2): I agree to mark, this is not a realistic approach. Forget it I'd say.
> 
> 
> 
> >sheath and I are going to concentrate on getting the plaintext
> >authentication to work first and worry about the digest password
> >later.
> 
> Wise decision :)
> 
> 
> Bye,
> 
> Max
> -- 
> -----------------------------------------------------------
> Max "The Black Fingolfin" Horn
> <mailto:max at quendi.de>
> <http://www.quendi.de> - please use my guestbook!
> 
> _______________________________________________
> jdev mailing list
> jdev at jabber.org
> http://mailman.jabber.org/listinfo/jdev
> 
> 


Mark Wilcox
mark at mjwilcox.com
Got LDAP?




More information about the JDev mailing list