[tor-talk] Tor Browser Bundle: PGP encryption built-in?
Kyle L. Huff
kyle.huff at curetheitch.com
Mon Oct 10 20:49:50 UTC 2011
On 10/10/2011 01:07 PM, Mike Perry wrote:
> The problem with a browser extension is that the very thing that makes
> it useful is what makes it so risky. A GPG plugin of any kind becomes
> a vector for all sorts of nasty web attacks that would have normally
> been stopped by the server, such as XSS, XSRF, and various sorts of
> webbugs. On top of that, you need to protect against XUL XSS (which
> yields arbitrary code exec), as well as the privacy issues of
> leaking side-channels about the existence of certain keys in an
> otherwise anonymous browsing session.
The plug-in (basically, an API to GnuPG) should never be exposed to
anything other than the extension that provides it; there should be
a separation between the plug-in, and the web page. I spoke about
this in my prior email that I believe was forwarded to this list, as
I was not yet subscribed.
> I'm not sure exactly what the FireGPG author expects to gain my moving
> all of this stuff to NPAPI. A naive use of his NPAPI code could easily
> lead to an *increase* in the vulnerability surface, not a decrease.
> And that's even assuming he codes the NPAPI bits safely.
I was never the author of FireGPG, I was a contributor to a specific
module for FireGPG; My intention for moving to NPAPI is to make a
more portable browser interface to GnuPG (FireGPG used an IPC
library that was not portable to other browsers) that can be used
on any browser/email client that supports NPAPI.
A naive use of JS+XPCOM IPC library could equally (if not more so)
compromise a system if used incorrectly. This is true for anything.
Care must be given to these subjects regardless of the language/
tools used.
The source of my NPAPI plugin is freely available for anyone to
review, so you can see for yourself if I have coded the NPAPI bits
safely, and I gladly accept bug reports! =c )
> I think your first task is to find out exactly what this guy thinks he
> did wrong in JS+XPCOM, and why moving to a more complicated language
> like C++ will make it better, and not worse.
I didn't write FireGPG, but I will say the first place FireGPG went wrong
was when it directly queried users for their passphrase. This should
be delegated to the gpg-agent and in my opinion should never be
requested by the browser.
I would argue that C++ is less complicated than JS+XPCOM, but we
are getting into personal perception here...
> If he won't answer or won't tell you, stay the hell away from his
> code.
Agreed. Feel free to ask me questions regarding the plug-in code and
design decisions.
> I definitely agree that this doesn't make the idea not worth doing.
> Personally, I think it would be way easier and safer to devote the
> effort into securing Thunderbird for GPG and Tor so we could just
> bundle that, but I understand the benefits and appeal of having
> everything in the browser.
Technically, webpg-npapi should work with thunderbird, as I believe it
supports bundled NPAPI plug-ins.
> But man, tread with care. GPG-in-a-browser is like a minefield of
> killer beehives in a jungle filled with wild dogs. Oh yeah, and when
> the dogs bark, they shoot bees at you.
Too true!
Here is a link to the official source that I mentioned:
https://github.com/kylehuff/webpg-npapi
Please note; I am *not* advocating that my NPAPI plug-in be packaged
into a Firefox extension for use with Tor. I was asked by a Tor-talk
mailing-list user what I thought about the possibility of including it, and
I made my concerns known. I have no dog in this fight, use the module
or don't, it makes no difference to me. I will gladly assist in any changes
that are deemed necessary in order to make it more secure, but
otherwise I have nothing to do with it, so please don't misunderstand
my response as anything other than an attempt to answer questions.
More information about the tor-talk
mailing list