[squid-users] Removing cache credentials
Victor Sudakov
sudakov at sibptus.tomsk.ru
Mon Nov 17 08:52:30 UTC 2014
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Amos Jeffries wrote:
[dd]
> >
> > As far as I understood you, there would be a "407 Proxy
> > Authentication Required" and "Proxy-Authorization: Negotiate" pair
> > in each TCP connection between browser and proxy.
>
> 407 is repeated as many times as necesary until the client starts
> sending valid credentials. Proxy-Authorization is used on every
> request containing any credentials. That is the basic requirement for
> any HTTP auth schemes.
During one TCP session from browser to Squid, I see requests both with
and without the Proxy-Authorization header. The requests without the
Proxy-Authorization header are also satisfied by the proxy. I don't
understand the logic behind this, that's why I am asking.
If there were a Proxy-Authorization header on every request, or only
on the first request in a TCP session, or if every credentialless
request were followed by a 407, I would not be surprised.
> They are not a pair. Since there is no requirement for anything to
> follow the 407. Nor is there even a requirement for the two messages
> to be sent on the same TCP connection (eg "auth_param ... keep_alive
> off"). Statelessness is fun sometimes.
>
> >
> > If the connection is used for several requests, only the first
> > HTTP request in the connection would contain authentication info.
>
> No. Once authentication is accepted on a connection the credentials
> token MUST be sent on all following requests.
However, as I am looking at a single TCP session between squid and browser
(filtered out by WireShark), I don't see this happening. The 407 reply is sent
only once, and then there are some requests following, some of them
contain the Proxy-Authorization header but most don't.
>
> - So far that is basic HTTP auth requirements. Now things get weird...
>
> Lack of Negotiate credentials on any request is a sign of injection
> attack being performed and the TCP connection must be torn down.
There are plenty of such requests in the packet dump, and they are
happily answered with a "200 OK" and relevant content.
>
> To do that tear-down Squid can send 407 challenge with
> Connection:close such that the client can resume with
> re-authentication on new TCP connection(s) without waiting for any 407.
>
>
> > But each new TCP connection is re-authenticated by HTTP. Is this
> > correct?
>
> Not really. A TCP connection may be used for multiple requests before
> one needs to authenticate and kicks out a 407.
But each request, you say, must contain the credentials? Well, it does
not seem to be happening.
- --
Victor Sudakov, VAS4-RIPE, VAS47-RIPN
sip:sudakov at sibptus.tomsk.ru
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
iQEcBAEBAgAGBQJUabdOAAoJEA2k8lmbXsY02GYH/iYQDJwXd/2iQlBEbCMA5EUN
2ou/0fIkiQkbtcZtln38AbIzzP70/9TNXRfaRnGJYpPr28jKhxbXEWLDStL4ZgV0
TCocf8OGJb1Y16GPjuO+w004dCiQsqibY1pf3WYU0Ru7sAqtmpvkIBh+3I+I3+yo
KOh4onzALSj4A26pi3VIEtYv/4I/ufOibO1gJU43W9RcR9E33Cb3WZUTVeBniMkN
gIfW7+87iOQtln3oI2SJhr5jegH/bR0H+kAimQGMfqTNh9Rgs3cDVNIcf0KmAdGh
09p3vgnZWTY+wvnCe2g37NBlsZk1DIyw8nD0oEIlolMWdi53tU8XtMDZI1FuiG4=
=HcLA
-----END PGP SIGNATURE-----
More information about the squid-users
mailing list