[squid-dev] [PATCH] Support http_access denials of SslBump "peeked" connections.
Amos Jeffries
squid3 at treenet.co.nz
Mon Dec 15 00:20:35 UTC 2014
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
On 10/12/2014 5:30 a.m., Tsantilas Christos wrote:
> Hi all,
>
> If an SSL connection is "peeked", it is currently not possible to
> deny it with http_access. For example, the following configuration
> denies all plain HTTP requests as expected but allows all CONNECTs
> (and all subsequent encrypted/spliced HTTPS requests inside the
> allowed CONNECT tunnels):
>
> http_access deny all ssl_bump peek all ssl_bump splice all
I see two separate bugs in your description:
1) For plain HTTP requests the bug is how the client CONNECT request
is getting past "http_access deny all" in the first place before
bumping is even considered to be an option.
That config should never be getting anywhere near bumping for plain
HTTP requests until *after* the CONNECT has decided to be accepted.
The call chain should be:
httpAccept()->
while parseOne() {
processRequest() ->
doCallouts {
http_access ACLs,
adaptation,
etc
httpStart[ bump | tunnel ]
}
}
2) For intercepted traffic the bug is probably absence of
implicit/fake CONNECT wrapper around the whole connection traffic
content. The fake CONNECT should be passed through http_access before
any traffic is allowed to flow.
- if SNI is present, then fake with that otherwise fake with TCP dst-IP.
I think what we are missing for this #2 bug is really the earlier
proposed tcp_access (or a TLS equivalent).
>
> The bug results in insecure bumping configurations and/or forces
> admins to abuse ssl_bump directive (during step1 of bumping) for
> access control (as a partial workaround).
>
> This change sends all SSL tunnels (CONNECT and transparent)
> through http_access (and adaptation, etc.) checks during bumping
> step1. If (real or fake) CONNECT is denied during step1, then Squid
> does not connect to the SSL server, but bumps the client
> connection, and then delivers an error page (in response to the
> first decrypted GET). The behavior is similar to what Squid has
> already been doing for server certificate validation errors.
>
> Please read the Technical notes included in patch preamble.
While we are missing proper non-http_access ACL controls this change
is acceptible as a workaround for bug #2.
Can you check whether it also fixes bug #1 properly?
+1.
Amos
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.22 (MingW32)
iQEcBAEBAgAGBQJUjilTAAoJELJo5wb/XPRj5yYIAMvhz44CBbx9kVIEzoNOsY3T
QELsFQ/LTQ1r3CdV8i0EMCF06uL9GH592oHPNWbkXivRXLmMqo38wmviAQSnMH8b
B6n4y128l95PUPgUW4NnzdaYuH6Xn+E6Y23GLFGlvARjrTiELGaz/EwP36nhk8Kx
ZDBssyyAvEbkVMNqglyJ75ETLS59fMKC3BBzbNZ4ZOAPpeR5N6mKlmTxDgabnXup
KgpnSrXnH2g+JP/PTrde5+gyt3NJtg4j7pDgxYIvAcaFTLD4Ms2M6WqT5adLmXmc
uY/kZpD1a7tjGLc0259633HpLoaKsdupi1jlE9etdf5n4VosASNk8IOLGyeW7fo=
=s1ZX
-----END PGP SIGNATURE-----
More information about the squid-dev
mailing list