Search squid archive

Re: kinda confused about Peek and Splice

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

 



On 18.09.2015 22:29, Alex Rousskov wrote:


acl nobumpSites ssl::server_name "/etc/squid3/allowed_SSL_sites.txt"
ssl_bump peek step1
ssl_bump splice step2 nobumpSites
ssl_bump bump all

I do not see the reason for the "step2" ACL in the above. Do you?

it should be either "ssl_bump splice nobumpSites" or peek at step 2 and splice it at step 3, right? (depending on how deep we want to check) e.g:

ssl_bump peek step1 all
ssl_bump peek step2 nobumpSites
ssl_bump splice step3 nobumpSites
ssl_bump bump all


So tell me what's the reason of peeking at step1 ? I suppose getting the
real server_name based on SNI instead of reading it from CONNECT
request?  (remember: all browsers are proxy aware)

Yes. Not all CONNECT requests have host names.

ok. got it.



I'm asking because when I change my configuration to this one:

--------------------------------------
acl allowed_https_sites dstdomain "/etc/squid3/allowed_SSL_sites.txt"
ssl_bump splice allowed_https_sites
ssl_bump bump all
--------------------------------------
It seems to work the same way.



Have you tested both configurations using a CONNECT request with an IP
address? Have you tested with a CONNECT request for a foo.example.com
domain when that domain responds with a bar.example.com certificate?

If not, your testing is not good enough to expose [at least two]
differences between the two configurations.

not yet , but I will :) and  now I know what you mean.

Is  'ssl::server_name' more reliable than 'dstdomain'?
"reliable" is an undefined term in this context.


ssl::server_name may use SNI (where available). Dstdomain does not know
about SNI. There are other important documented differences as well:


1. peek everything at step 1 (to get reliable server name by SNI ???)
2. splicing exceptions ("whitelist") at step 2
3. stare all at step 2  (or just bump the rest at step 2)
4. bump all at step 3


It depends how you want to identify whitelisted sites. For example, if
you want to validate the server certificate before splicing, then the
above will not work.

I got it! I was thinking all the time that action taken at step 1 and step 2 (peeking or staring) is common to all connections. That's why I considered peeking at step 2 as useless because if server_name will not match the whitelist (majority of webpages) it would be impossible to bump the connection. And that are separate rules!!! like this:

## peeking at first step is mostly/always good idea (to get the SNI)
ssl_bump peek step1 all

# we want to check deeply what we're gonna splice
ssl_bump peek step2 nobumpSites
ssl_bump splice step3 nobumpSites

### we're bumping the rest. Fake cert will be generated
### based on server's cert (that's why we want to bump at step 3)
ssl_bump stare step2 all
ssl_bump bump step3 all


Does it make some sense?


http://bugs.squid-cache.org/show_bug.cgi?id=4327

thanks a lot, it was very helpful!!

BTW my Squid v: 3.5.8 probably generates fake-certs based on server certificate even at bump step 2 (instead of client's SNI)

greetings Marek
_______________________________________________
squid-users mailing list
squid-users@xxxxxxxxxxxxxxxxxxxxx
http://lists.squid-cache.org/listinfo/squid-users




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

  Powered by Linux