I think the HTTP proxy is only used for HTTP related things - the question is - what happens when it has no HTTP proxy? Do HTTPrelated things simply leak out?
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Child items ...
Show closed items
Linked items 0
Link issues together to show that they're related.
Learn more.
I propose that we call gpg with usewithtor in Enigmail as a temporary work around for those with torsocks/usewithtor - I wonder how to make Enigmail do this?
I propose that we call gpg with usewithtor in Enigmail as a temporary work around for those with torsocks/usewithtor - I wonder how to make Enigmail do this?
I propose that we call gpg with usewithtor in Enigmail as a temporary work around for those with torsocks/usewithtor - I wonder how to make Enigmail do this?
We can't do this through Enigmail.
Are you sure? Enigmail creates the process - why can't it have a command prefix?
I understand that currently we can't do it - what if we extend Enigmail to be Tor aware?
Are you sure? Enigmail creates the process - why can't it have a command prefix?
I understand that currently we can't do it - what if we extend Enigmail to be Tor aware?
Yes, I meant currently :) If we were to extend Enigmail, sure, it is possible. But then it depends on which route do we want to take -- get this done through the gpg folks or through Enigmail or with Moxie's solution. Let's see...
Are you sure? Enigmail creates the process - why can't it have a command prefix?
I understand that currently we can't do it - what if we extend Enigmail to be Tor aware?
Yes, I meant currently :) If we were to extend Enigmail, sure, it is possible. But then it depends on which route do we want to take -- get this done through the gpg folks or through Enigmail or with Moxie's solution. Let's see...
I think it would be easy to ask for a command line prefix as a feature - unrelated to anything else - it would even be a good idea.
At the moment, I think we should set the proxy in Enigmail and let it fail as it has always been failing. Hopefully we can find a solution such as using Moxie's code later. This should allow us to unset the HTTP proxy for the rest of Thunderbird and things should be OK, more functional, even.
At the moment, I think we should set the proxy in Enigmail and let it fail as it has always been failing.
Done.
Hopefully we can find a solution such as using Moxie's code later. This should allow us to unset the HTTP proxy for the rest of Thunderbird and things should be OK, more functional, even.
At the moment, I think we should set the proxy in Enigmail and let it fail as it has always been failing.
Done.
Hopefully we can find a solution such as using Moxie's code later. This should allow us to unset the HTTP proxy for the rest of Thunderbird and things should be OK, more functional, even.
Yup.
Moxie is a hero and thinks that the local JavaScript proxy hack is actually possible.
I've opened a ticket about the HTTP proxy in javascript: #6958 (closed)
I agree that Moxie needs mad props for bending XPCOM to his will with that JS HTTP proxy thing. However, I think a direct SOCKS patch for GPG (#2846 (closed)) has less vulnerability surface and should be simpler code in total.
The reason I think that the direct SOCKS patch reduces the vulnerability surface is nuanced. It probably doesn't matter unless we actually disable jsctypes in our own builds of Thunderbird (#6152 (moved)).
So for now, my recommendation is:
Disable GPG network activity by setting the proxy to garbage for now.
Try Moxie's code from #6958 (closed). If you can get it to work out of the box within an hour, use it for now
If Moxie's code takes more than an hour to get it to work, you should try to provide a patch for SOCKS support to GPG (#2846 (closed)). It's possible someone may have already written one already, somewhere...
I've opened a ticket about the HTTP proxy in javascript: #6958 (closed)
I agree that Moxie needs mad props for bending XPCOM to his will with that JS HTTP proxy thing. However, I think a direct SOCKS patch for GPG (#2846 (closed)) has less vulnerability surface and should be simpler code in total.
We don't ship GPG as part of TorBirdy - we have to go with what we have and that is an older gpg, without a currently non-existent SOCKS patch or SOCKS support.
The reason I think that the direct SOCKS patch reduces the vulnerability surface is nuanced. It probably doesn't matter unless we actually disable jsctypes in our own builds of Thunderbird (#6152 (moved)).
So for now, my recommendation is:
Disable GPG network activity by setting the proxy to garbage for now.
That will break Enigmail for everyone. We're setting it to what should be a Torified HTTP proxy and if it fails, it fails. We won't break it for everyone.
Try Moxie's code from #6958 (closed). If you can get it to work out of the box within an hour, use it for now
That is the goal.
If Moxie's code takes more than an hour to get it to work, you should try to provide a patch for SOCKS support to GPG (#2846 (closed)). It's possible someone may have already written one already, somewhere...
Such a patch is worthwhile but it will not help us until it is tested, merged, and then deployed to everyone. Thus, we'll still be waiting for a long long time. We should do both but first, we'll make a local HTTP proxy somehow.
gpg --keyserver-options http-proxy=socks5://127.0.0.1:9050,debug,verbose --search jacob@appelbaum.netgpg: searching for "jacob@appelbaum.net" from hkp server pool.sks-keyservers.netgpgkeys: curl version = GnuPG curl-shimgpgkeys: search type is 0, and key is "jacob@appelbaum.net"* HTTP proxy is "socks5://127.0.0.1:9050"* HTTP URL is "http://pool.sks-keyservers.net:11371/pks/lookup?op=index&options=mr&search=jacob%40appelbaum%2Enet"* HTTP auth is "null"* HTTP method is GET?: invalid HTTP proxy (socks5://127.0.0.1:9050): unsupported URIgpgkeys: HTTP search error 7: couldn't connect: Successgpg: key "jacob@appelbaum.net" not found on keyservergpg: keyserver internal errorgpg: keyserver search failed: keyserver error
I'm not clear that it is supposed to work that way - I think rather we'd need to write a patch to add a SOCKS5 proxy option. Is that incorrect?
gpg2 on Ubuntu seems to support things a little better but it still doesn't work:
gpg2 --keyserver-options http-proxy=socks5://127.0.0.1:9050,debug,verbose --search jacob@appelbaum.netgpg: searching for "jacob@appelbaum.net" from hkp server pool.sks-keyservers.netgpgkeys: curl version = libcurl/7.21.3 GnuTLS/2.8.6 zlib/1.2.3.4 libidn/1.18gpgkeys: search type is 0, and key is "jacob@appelbaum.net"* About to connect() to proxy 127.0.0.1 port 9050 (#0)* Trying 127.0.0.1... * connected* Connected to 127.0.0.1 (127.0.0.1) port 9050 (#0)> GET http://pool.sks-keyservers.net:11371/pks/lookup?op=index&options=mr&search=jacob%40appelbaum.net HTTP/1.1Host: pool.sks-keyservers.net:11371Accept: */*Proxy-Connection: Keep-AlivePragma: no-cacheCache-Control: no-cache* HTTP 1.0, assume close after body< HTTP/1.0 501 Tor is not an HTTP Proxy< Content-Type: text/html; charset=iso-8859-1< * Closing connection #0gpg: key "jacob@appelbaum.net" not found on keyserver
Make sure you are using a recent curl version as David pointed out.
There are a few things at play here - a major one is that gpg must be actually using curl (!) and when it does, it must be the right version. Sadly, curl appears to see the right proxy with gpg2 but then it doesn't do the right thing at all.
I've committed a change to how we call gpg in [master cc60822]
In theory we now have working Thunderbird without an HTTP proxy and with a new enough gpg, we're using Tor directly; if gpg is older, I believe it will simply fail.
The only testing left is to see how it fails. Oh and Windows.
So if anything, I think TorBirdy should set:
{{{
--keyserver-options http-proxy=socks5-hostname://127.0.0.1:9050,debug,verbose
}}}
Or
{{{
--keyserver-options http-proxy=socks5-hostname://127.0.0.1:9050,debug,verbose
}}}
I don't see any difference in the first and second options? Do you think we need debug and verbose too?
I suppose we shouldn't use them statically there.