[Privoxy-devel] HTTPS filtering in Privoxy

va.svec at gmail.com va.svec at gmail.com
Wed May 17 12:09:12 UTC 2017


Hello, 

I have implemented SSL filtering support, webserver certificate 
validation (and sending info about invalid certificate), host 
certificate generating and basic configuration for Privoxy. Library mbed 
TLS has been used for SSL connections. The implementation doesn't 
support (mainly due to lack of time): 

- certificate revocation - Not necessary for use and not a critical 
security error. 
- outgoing requests filtering - In my opinion, this functionality 
would require many changes in the chat function or the header parsing 
functions. I have decided not to implement this functionality yet. 
- SSL connections caching - Not necessary for use. 
- subject alternate name - This parameter is required by new version 
of Google Chrome web browser. mbed TLS doesn't support writing this 
parameter into generated certificates. Should be available in next 
library versions. 

My implementation changes the following files: jcc.c, jcc.h, parsers.c, 
project.h and loadcfg.c. New files ssl.c and ssl.h have been added. 

I'd be happy if you are interested in this implementation and its 
potential publication in official Privoxy sources. Please tell me what I 
should do next (How and in what form can I send you my source codes). 
I will be happy to answer any questions. 

Thank you for your answer. 

"<vasek.svec at email.cz> wrote: 

> I'm student of third year at Czech technical university in Prague and 
> I'm choosing topic for my bachelor thesis. My teacher has offered to me 
> this topic: 
> Study the current state of proxy servers with respect to the HTTPS 
> protocol. Analyze the available implementations and specify approaches 
> to filtering HTTPS communication; focus at the security issues related 
> to these approaches. Implement a module for Privoxy (www.privoxy.org) 
> which will add the support for filtering of the HTTPS communication 
> between a browser and a server. 
> 
> I'd like to ask you about your opinion on this topic. I'm not really 
> great C programmer, but I'm not C beginner and I have some small 
> experiences with OpenSSL library. I find this topic very interesting, 
> but I'm little bit scared of the programming part. Could you please say 
> me, how difficult would be this implementation. And could I ask you for 
> advice when I encountered some problem during implementation? 

I'd expect the programming part to be time consuming but not too 
difficult. Documenting it in a way a non-technical user understands 
is likely to be challenging, but this could be out of scope for your 
thesis anyway. 

One non-technical issue with using OpenSSL is that Privoxy is 
licensed under the GPLv2 which is incompatible with the OpenSSL 
license. This causes problems for platforms that don't contain 
OpenSSL as part of the base system and thus aren't covered by 
the system library exception in the GPLv2. 

Most GNU/Linux distributions probably would not be able to enable 
the OpenSSL support for their Privoxy packages and Windows users 
would have to compile it themselves as well. 

This doesn't mean that OpenSSL can't be used for this, but it's 
something you should be aware of from the beginning. 

Feel free to ask any additional questions you have about this. 

Fabian 
"


More information about the Privoxy-devel mailing list