Search squid archive

RE: problem fakeauth_auth

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Amos
 
 
I'll post this issue to squid-dev, but fyi, here is the change I made(FOR TESTE ONLY).
 

-----------------
*** /root/src/squid-3.0.STABLE14-20090424/helpers/ntlm_auth/fakeauth/fakeauth_auth.c    2009-04-24 06:21:00.000000000 -0300
--- /root/squid-3.0.STABLE14-20090424/helpers/ntlm_auth/fakeauth/fakeauth_auth.c        2009-04-24 11:19:28.000000000 -0300
***************
*** 158,163 ****
--- 158,164 ----
        NEGOTIATE_REQUEST_TARGET |
        (NEGOTIATE_UNICODE & flags ? NEGOTIATE_UNICODE : NEGOTIATE_ASCII)
        );
+     chal->flags = flags;
      chal->hdr.type = htole32(NTLM_CHALLENGE);
      chal->unknown[6] = htole16(0x003a);
--------------------
 
Regards
 
Joao

> Date: Mon, 27 Apr 2009 14:41:39 +1200
> From: squid3@xxxxxxxxxxxxx
> To: alves_joao@xxxxxxxxxxx
> CC: squid-users@xxxxxxxxxxxxxxx
> Subject: Re:  problem fakeauth_auth
> 
>>
>> Hi there
>>
>> We are facing a problem with squid/fakeauth_auth helper, after change in
>> NTLM parameters of our stations(Require Message Integrity, Message
>> Confidentiality, NTLMv2 Session Security, 128-bit Encryption).
>>
>> I made some tests and realized that NTLMSSP Flags returned in
>> NTLMSSP_CHALLENGE to station is wrong:
>>
>>
>> 1 - Success Authentication (ntlm_auth)
>>
>>     1 - HTTP/1.0 407 Proxy Authentication Required  (text/html)
>>
>>
>>     2 - GET http:/// HTTP/1.1 , NTLMSSP_NEGOTIATE
>>      -Proxy-Authorization: NTLM
>> Taldjfpoa\sdfalsdmflasdflafajsdfjajasldjJAJA\r\n   - EXAMPLE
>>           - NTLMSSP
>>             NTLMSSP identifier: NTLMSSP
>>             NTLM Message Type: NTLMSSP_NEGOTIATE (0x00000001)
>>           -Flags: 0xa208b207 - estation send this flag
>>
>>
>>     3 - HTTP/1.0 407 Proxy Authentication Required , NTLMSSP_CHALLENGE
>> (text/html)
>>      Proxy-Authenticate: NTLM
>> TaljdflasjdfljasdlfjoqAJDFJQOWEURPOQWEURPQWEJKROQWEUFÇLAJSLFJASDLFJKQWEO........................
>>      NTLMSSP
>>         NTLMSSP identifier: NTLMSSP
>>         NTLM Message Type: NTLMSSP_CHALLENGE (0x00000002)
>>         .....
>>         Flags: 0xa2898205 - estation receive these flag from squid.
>>
>>     4 - HTTP/1.1 , NTLMSSP_AUTH, User: Domain\User
>>
>>
>>
>> 2 - Unssucess Authentication (fakeauth_auth)
>>
>>     1 - HTTP/1.0 407 Proxy Authentication Required  (text/html)
>>
>>
>>     2 - GET http:/// HTTP/1.1 , NTLMSSP_NEGOTIATE
>>      -Proxy-Authorization: NTLM
>> Taldjfpoa\sdfalsdmflasdflafajsdfjajasldjJAJA\r\n   - EXAMPLE
>>           - NTLMSSP
>>             NTLMSSP identifier: NTLMSSP
>>             NTLM Message Type: NTLMSSP_NEGOTIATE (0x00000001)
>>           -Flags: 0xa208b207 - estation send this flag
>>
>>
>>     3 - HTTP/1.0 407 Proxy Authentication Required , NTLMSSP_CHALLENGE
>> (text/html)
>>      Proxy-Authenticate: NTLM
>> TaljdflasjdfljasdlfjoqAJDFJQOWEURPOQWEURPQWEJKROQWEUFÇLAJSLFJASDLFJKQWEO........................
>>      NTLMSSP
>>         NTLMSSP identifier: NTLMSSP
>>         NTLM Message Type: NTLMSSP_CHALLENGE (0x00000002)
>>         .....
>>         Flags: 0x00018205 - estation receive this flag from
>> squid/fakeauth_auth.
>>
>>
>>     4 - Authetication Failed
>>
>>
>>
>>
>> As a test, I forced NTLMSSP_CHALLENGE FLAGS to be equal
>> NTLMSSP_NEGOTIATE(0xa208b207) then it worked fine.
>>
>> fakeauth_auth.c
>>
>> void ntlmMakeChallenge(struct ntlm_challenge *chal, int32_t flags)
>> {
>>     static unsigned hash;
>>     int r;
>>     char *d;
>>     int i;
>>
>>     debug("ntlmMakeChallenge: flg %08x\n", flags);
>>
>>     memset(chal, 0, sizeof(*chal));
>>     memcpy(chal->hdr.signature, "NTLMSSP", 8);
>>     chal->flags = htole32(CHALLENGE_TARGET_IS_DOMAIN |
>>     NEGOTIATE_ALWAYS_SIGN |
>>     NEGOTIATE_USE_NTLM |
>>     NEGOTIATE_REQUEST_TARGET |
>>     (NEGOTIATE_UNICODE & flags ? NEGOTIATE_UNICODE : NEGOTIATE_ASCII)
>>     );
>>     // Testing purpose
>>     chal->flags = flags;
>>
>>     chal->hdr.type = htole32(NTLM_CHALLENGE);
>>     chal->unknown[6] = htole16(0x003a);
>>
>>     d = (char *) chal + 48;
>>     i = 0;
>>
>>     if (authenticate_ntlm_domain != NULL)
>>     while (authenticate_ntlm_domain[i++]);
>>
>>
>>     chal->target.offset = htole32(48);
>>     chal->target.maxlen = htole16(i);
>>     chal->target.len = chal->target.maxlen;
>>
>>     r = (int) rand();
>>     r = (hash ^ r) + r;
>>
>>     for (i = 0; i < 8; i++) {
>>     chal->challenge[i] = r;
>>     r = (r>> 2) ^ r;
>>     }
>>
>>     hash = r;
>> }
>>
>>
>> any idea?
> 
> First idea is that you should be sending code issues to squid-dev where we
> who fix the code hang out.
> 
> Secondly, what exactly did you change to make it work? diff patch is
> required please along with the info as to what version of squid it is made
> from.
> 
> Thirdly, note that NTLMv2 is not really NTLM any more. The fakeauth helper
> needs to handle both these days. Either with command line switches to
> configure the auth type in use or automatic sensing.
> see http://en.wikipedia.org/wiki/NTLM for some details of the differences.
> If we can make this helper cope without losing the old protocol I will
> commit for you.
> 
> Thanks
> Amos
> 

_________________________________________________________________
Rediscover Hotmail®: Get e-mail storage that grows with you. 
http://windowslive.com/RediscoverHotmail?ocid=TXT_TAGLM_WL_HM_Rediscover_Storage2_042009

[Index of Archives]     [Linux Audio Users]     [Samba]     [Big List of Linux Books]     [Linux USB]     [Yosemite News]

  Powered by Linux