The username/password pair is sent only once to the issuer machine and the follow-up authentications are performed using a self-certified, time-limited, hash. In fact, it is based on access-control, having nothing to do with Basic Authentication. This is discussed in detail in the Eagle book. I am not sure if NTLM is even better but for most applications, it is pretty secure.
Peter ----- Original Message ----- From: "Gerald Richter" <[EMAIL PROTECTED]> To: "Peter Bi" <[EMAIL PROTECTED]>; "Kaye-Smith Adam" <[EMAIL PROTECTED]> Cc: <[EMAIL PROTECTED]> Sent: Tuesday, August 13, 2002 12:29 PM Subject: Re: NTLM module > > > > if you check the source of the Smb implemenation of the module, you would > > see that it performs basically the same function as NTLM. I agree with you > > that it does not fit the Microsoft definition of NTLM, so it is not a NTLM > > implementation. If ones purpose is to pass the protection by providing a > > valid username/password pair in a NT domain, then one does not have to > > follow that definition and the current Smb implementation is one of the > > possible solutions. > > > > The point is not how the password is passed to the nt server, the point is > how the browser and the web server exchange the credenticals. With basic > auth and with your module the user enters a username and a password and you > use different backends to verify this. With NTLM authentication the Internet > Exploerer and the Web server uses a challange-response procdure to exchange > credenticals (and IE does this without asking the user, so you get logged on > with your windows username, which safes the user some extra typing). They > never send the password over the wire, so you don't have a password to > send/verify to your backend. > > What you talking about is the verification of the password between the web > server and the nt domain controller, thats something different. > > Gerald > > > > > > Peter > > > > ----- Original Message ----- > > From: "Gerald Richter" <[EMAIL PROTECTED]> > > To: "Peter Bi" <[EMAIL PROTECTED]>; "Kaye-Smith Adam" > > <[EMAIL PROTECTED]> > > Cc: <[EMAIL PROTECTED]> > > Sent: Tuesday, August 13, 2002 12:53 AM > > Subject: Re: NTLM module > > > > > > > > > > > > > > You may check Apache::Access module at http://modperl.home.att.net in > > > which > > > > I tried to provide a general solution to several popular > authentication > > > > issuers such as SMB, LDAP, IMAP, NIS, FTP, LWP and DBI etc. > > > > > > > > > > I think you missed the point (or I missunderstood your module): The > > problem > > > is not doing the authentication against whatever, but doing NTLM > > > authetication. With NTLM auth you don't get a password from the client, > so > > > how would compare the password that you don't have against "SMB, LDAP, > > IMAP, > > > NIS, FTP, LWP and DBI etc." ? > > > > > > The only solution is to reimplement the challage/response that NTLM > does. > > > (The module Authen::Perl::NTLM maybe helpfull here). To do this you need > > > either the password in clear text to compute the nt password hash (a > sort > > of > > > md4 hash) or the precomputed nt password hash. You won't have this with > > > LDAP, IMAP, NIS, FTP, LWP and DBI etc.... > > > > > > Gerald > > > > > > ------------------------------------------------------------- > > > Gerald Richter ecos electronic communication services gmbh > > > Internetconnect * Webserver/-design/-datenbanken * Consulting > > > > > > Post: Tulpenstrasse 5 D-55276 Dienheim b. Mainz > > > E-Mail: [EMAIL PROTECTED] Voice: +49 6133 925131 > > > WWW: http://www.ecos.de Fax: +49 6133 925152 > > > ------------------------------------------------------------- > > > > > > > > > > Cheers. > > > > > > > > > > > > Peter Bi > > > > > > > > ----- Original Message ----- > > > > From: "Gerald Richter" <[EMAIL PROTECTED]> > > > > To: "Kaye-Smith Adam" <[EMAIL PROTECTED]> > > > > Cc: <[EMAIL PROTECTED]> > > > > Sent: Monday, August 12, 2002 9:12 PM > > > > Subject: Re: NTLM module > > > > > > > > > > > > > > > > > > >According to the documentation, if you set NTMLauthoritative to > off, > > > > > >then if NTLM authorization fails, then it should pass it on to the > > > lower > > > > > >level modules. > > > > > > > > > > Yes, that's true and it works like you describe it. The point that > you > > > are > > > > > missing is (and that I have tried to show in my last mail), that > > during > > > > NTLM > > > > > authentication there is no password! NTLM never passes the password > to > > > the > > > > > server, so also the control gets passed to the lower level module, > > this > > > > > lower level module must be able to handle NTLM. The default Apache > > auth > > > > > handler isn't able to do so. It expects a password, which it doesn't > > > gets > > > > > because the client never has send it. > > > > > > > > > > Hope it's a little bit more clear now > > > > > > > > > > Gerald > > > > > > > > > > ------------------------------------------------------------- > > > > > Gerald Richter ecos electronic communication services gmbh > > > > > Internetconnect * Webserver/-design/-datenbanken * Consulting > > > > > > > > > > Post: Tulpenstrasse 5 D-55276 Dienheim b. Mainz > > > > > E-Mail: [EMAIL PROTECTED] Voice: +49 6133 925131 > > > > > WWW: http://www.ecos.de Fax: +49 6133 925152 > > > > > ------------------------------------------------------------- > > > > > > > > > > > > > > > > > > > > I have cut out the below section from the doco which > > > > > relates to the above functionality : > > > > > " > > > > > =head2 PerlSetVar ntlmauthoritative > > > > > > > > > > Setting the ntlmauthoritative directive explicitly to 'off' allows > > > > > authentication > > > > > to be passed on to lower level modules if AuthenNTLM cannot > > autheticate > > > > > the userand the NTLM authentication scheme is used. > > > > > If set to 'on', which is the default, AuthenNTLM will try to verify > > the > > > > > user andif it fails will give an Authorization Required reply. > > > > > > > > > > =head2 PerlSetVar basicauthoritative > > > > > > > > > > Setting the ntlmauthoritative directive explicitly to 'off' allows > > > > > authentication > > > > > to be passed on to lower level modules if AuthenNTLM cannot > > autheticate > > > > > the userand the Basic authentication scheme is used. > > > > > If set to 'on', which is the default, AuthenNTLM will try to verify > > the > > > > > user andif it fails will give an Authorization Required reply. > > > > > " > > > > > > > > > > > > > > > > > > > > From the above description, I am hoping for the following events to > > take > > > > > place > > > > > > > > > > > > > > > - ntlm authentication (if fail this level go to next > > authentication) > > > > > > > > > > - basic authentication (if fails this level go to other > > > > > authentication systems) > > > > > > > > > > - read passwords in htpasswd file ( if this fails, then access > not > > > > > granted) > > > > > > > > > > > > > > > > > > > > > > > > > To enable the following behaviour, I have included the following > > > > > directives in httpd.conf. > > > > > > > > > > - ntlmauthoritative off > > > > > - basicauthoritative off > > > > > > > > > > > > > > > I have also taken out the basic authentication to see if this works > ie > > > > > > > > > > Authtype ntlm (not basic) > > > > > > > > > > But this still does fail & allow the htpasswd system to verify > access. > > > > > > > > > > > > > > > > > > > > If there are changes that need to be made to the AuthenNTLM.pm, I > am > > > > > not very well read in this area - are there any goof references. > > > > > > > > > > From my novice perspective, it appears that when NTLM is included as > > > > > part of the authentication, the ability for normal modules to verify > > > > > access (ie htpasswd file) is no longer available ie the perl module > > does > > > > > not pass back what the standard modules are expecting. > > > > > > > > > > I am sorry to be a bit unclear in my analysis, but I am fairly new > to > > > > > apache & perl modules. > > > > > > > > > > > > > > > Many Thanks > > > > > > > > > > > > > > > Adam > > > > > > > > > > > > > > > original email attached > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > -----Original Message----- > > > > > From: Gerald Richter [mailto:[EMAIL PROTECTED]] > > > > > Sent: Monday, 12 August 2002 5:35 PM > > > > > To: Kaye-Smith Adam; [EMAIL PROTECTED] > > > > > Subject: Re: NTLM module > > > > > > > > > > > > > > > > > > > > ----- Original Message ----- > > > > > From: "Kaye-Smith Adam" <[EMAIL PROTECTED]> > > > > > To: <[EMAIL PROTECTED]> > > > > > Sent: Monday, August 12, 2002 4:51 AM > > > > > Subject: NTLM module > > > > > > > > > > > > > > > Hello , > > > > > > > > > > > > > > > >When I enter in an NT password it all works ok but when I use a > > > > > >user/pass from the htpasswd file, the only way it will work is that > I > > > > > >change the above line to > > > > > > > > > > > >AuthType Basic instead of > > > > > >AuthType ntlm,Basic. > > > > > > > > > > > > > > > > > >With this change I can access passwords in htpasswd & also > > authenticate > > > > > >from an NT server but I can no longer use NTLM. > > > > > > > > > > The problem is that Basic authentication requires a password from > the > > > > > client > > > > > which can be compared against your password file. In case of NTLM > > auth, > > > > > there is no password ever send over the wire, so Apache doesn't have > > > > > anything which it can compare against it's passwd file. > > > > > > > > > > The solution would be to derive a class from AuthenNTLM and do the > > > > > computation of the challage and response based on the secrets in the > > > > > passwd > > > > > file (you would need to store MD4 hashs of your passwords > somewhere). > > > > > There > > > > > is a module called Perl::AuthenNTLM which may be helpfull in doing > > this > > > > > task. > > > > > > > > > > Gerald > > > > > > > > > > > > > > > ------------------------------------------------------------- > > > > > Gerald Richter ecos electronic communication services gmbh > > > > > Internetconnect * Webserver/-design/-datenbanken * Consulting > > > > > > > > > > Post: Tulpenstrasse 5 D-55276 Dienheim b. Mainz > > > > > E-Mail: [EMAIL PROTECTED] Voice: +49 6133 925131 > > > > > WWW: http://www.ecos.de Fax: +49 6133 925152 > > > > > ------------------------------------------------------------- > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > ************************************************************************ > > > > > The information in this e-mail together with any attachments is > > > > > intended only for the person or entity to which it is addressed > > > > > and may contain confidential and/or privileged material. > > > > > > > > > > Any form of review, disclosure, modification, distribution > > > > > and/or publication of this e-mail message is prohibited. > > > > > > > > > > If you have received this message in error, you are asked to > > > > > inform the sender as quickly as possible and delete this message > > > > > and any copies of this message from your computer and/or your > > > > > computer system network. > > > > > > > ************************************************************************ > > > > > > > > > > > > > > > > > > > > ------------------------------------------------------------- > > > > > Gerald Richter ecos electronic communication services gmbh > > > > > Internetconnect * Webserver/-design/-datenbanken * Consulting > > > > > > > > > > Post: Tulpenstrasse 5 D-55276 Dienheim b. Mainz > > > > > E-Mail: [EMAIL PROTECTED] Voice: +49 6133 925131 > > > > > WWW: http://www.ecos.de Fax: +49 6133 925152 > > > > > ------------------------------------------------------------- > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >