Thunderbird 78.x is great but has issues for advanced PGP users
sindastra.de
sindastra.de
Honestly, I was really frustrated and disappointed by the upgrade. It’s not easy to roll it back, either, apparently. I haven’t risked it, but I sorely miss TB68 with Enigmail.
I'm obviously not happy for users who can't use TB now, but this external GPG-client stuff has to die. It never was userfriendly, and is only safe because the target audience is so small nobody bother. Passing around secrets on stdout?
Your first sentence was great, but the whole JS rant didn't land. I can't see how side-channels are relevant unless an attacker is already in the system, at which point they could just grab the plaintext.
So with evidence to the fact that TB does indeed execute attacker-supplied JS I would like to ask for a reference for your claim.
- The main issue is that your private key is supposed to be secret – not uploaded to a server you don't control. Of course Protonmail encrypts it, but passphrases are supposed to be an additional layer of security, not the only one. If Protonmail has a data breach, is compelled to surrender your keys or turns out to be untrustworthy, your messages are only as secure as your password.
- You cannot control when a web app is updated or verify that everyone else got the same update. So Protonmail – or an attacker that took control of their systems – could give you an update that gives them your unencrypted keys. That may be mostly a theoretical issue because few people do that with their local software either. Still, I'd trust the Debian/Ubuntu repositories more.
- Web apps have additional attack surfaces compared to local software. Malicious browser extensions can't access the data of local software, nor is local software suspectible to things like XHR attacks.
I initially tried to fix this by messing with my GPG keychain, because my underlying assumption was that they shared keychains. Imagine my shock when I realised my assumption was wrong! Fortunately I didn't lose anything important. Either way, having to maintain separate keychains is already enough of a deal-breaker for me... Maybe it will improve over time. I guess I'll have to wait and see, as I didn't back up my TB68 profile, so I can't downgrade :(
It's a small team, and this was announced I think nearly a year ago. It's a pity that apparently the import isn't without issue, but I can see how they expect expert users to be able to fix any problems they encounter.
The whole multiple keychain-thing is or was not communicated clearly anywhere ever, I've stumbled on this before. That's part of the bad design though, a keychain file would have made so much more sense and be easier to reason about than configuring it through arcane gpg incantations. I steered clear of it, but I'm surprised that Enigmail supported it (did it?).
Anyway, one 'internal' ring is a very good idea, and I'm happy TB went that way. That was a very conscious decision, as Openpgp.js development is much more active and open, so don't count on this changing.
The new UI could use some polishing (one or zero click encryption please!) but generally I am happy, and happy that I don't need Enigmail anymore.
And how is stdout not secure? We're talking about pipes here, not terminals.
Mozilla used a library called RNP instead of integrating GPG.
RNP does not support many GPG features, such as smartcards.
Enigmail, the old method of using GnuPG with Thunderbird, is broken in 78.x.
Author recommends downgrading to 68.x and using Enigmail for advanced users.
Thunderbird, years ago for me.
If a human acts abusive towards me, it is logical to end the relationship, even if it is years old.
I am a tolerant person, so once or twice I may accept excuses and justifications, but after that, it's time to distance myself.
I don't see why it should be any different from software. If I feel like I am dependent on it and "can't" move away, all the more reason to prioritize finding alternatives.
It is irrelevant whether the causes are incompetence, malice, or "accidental", the result is all the same, and I cannot allow it.
Worse still - even many of the proprietary ones now rely on 3rd party servers for "cloud" features, or are bloated and ugly electron apps.
For me TB just works (especially because I'm locked at the ESR version, 68), however, I've never been extremly happy of it.
No offense intended, that's what your comment sounds like.
If you start looking, I bet you will find some options.
- online services, which are way worse Re: auto-updates, they do not even ask.
- mail clients with limited HTML support, which are not usable with many online stores I want to use.
Which mail client are you using?
Evolution is possibly the only valid competitor, however, it's not cross-platform as Thunderbird.
GnuPG is a program, not a library, and attempts to use it as one involve parsing its stdout (e.g. using GPGME)
Thunderbird renders untrusted HTML content and therefore is subject to a steady stream of CVEs and must stay absolutely up-to-date with Gecko
Gecko scaled back XUL and extension support, and WebExtensions are not sufficient to allow an Enigmail extension to run an installed binary.
But, more recently, mail campaigns have instead targeted Gmail, so "whatever Gmail renders" (this is not everything a browser renders, but is close). It's not feasible to implement a subset for this and do parallel CVE fixes.
It's worse than IE6. And to help your sanity, use mjml.
There's been a couple of working groups that have attempted to standardize HTML support in email, but they don't get very far on account of having almost no representation from anyone who actually works on email clients (on account of most of the interest being email marketers who want to complain about HTML support).
The actual support for HTML is probably these days mostly HTML5 (in terms of the actual parsing algorithm), with several elements unsupported, and the CSS support being very spotty. Many MUAs are using whitelists of elements to support (don't expect <video> to make it through, and especially not <iframe>), and scrubbing CSS themselves with whitelists. In effect, this means that virtually everything added in HTML5 probably won't work, so the support is more akin to HTML4 in that regard. Infamously, Outlook uses the same HTML rendering engine as Word, which is (was?) based on the IE 5.5 rendering engine.
Thunderbird will prompt the user to decide whether they want to render remote content. I'm not sure if that's the default setting, but that's how it's worked for me for many years over multiple installations.
I don't know about the situation in thunderbird, but in firefox this isn't entirely true. It is possible to communicate with a native executable using a JSON protocol over IPC, if that native executable is registered using a manifest file (See https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/Web...). so it would be possible to use a wrapper executable that communicates with the extension using native messaging, and invokes gpg as needed. However, as I understand it, the native executable would need to be installed out-of-band (meaning it isn't part of the extension bundle itself).
Not directly related, but maybe Thunderbird shouldn't use Gecko to render emails. A smaller renderer with limited features may be sufficient and more secure.
Worst offense was when Outlook (and Express) used the IE rendering engine with JS in "local" (unrestricted) trust mode. Melissa/ILoveYou etc...
It’s useful for closed circuits though, where you have a group of correspondents needing to prove their authenticity. One company I use will sign their invoices, for example. I’ve never verified the signatures.
If you need to go to the technical effort of private group communication, running your own webmail service seems a lot easier and a lot more private.
I love PGP for other infra. I love my smartcards. But I can’t remember the last time I’ve used it for email :)
I bet most of the non-supporting clients are simply either a bit outdated or had it disabled (probably by the client local AV engine).
Firefox does support a draft, but since Firefox usage numbers are somewhat low depending on what statistic you believe, this amounts to not much.
There are more secure options of course, but none of them are compatible with each other, and the most popular ones are more like instant messaging than email.
I wish there was a secure communication channel similar to email, but as ubiquitous as https.
I gave up on Thunderbird with the release of 78. Previously Emigmail was just functional enough once I got its finicky settings all dialed in.
Now I’ve gone all in on [MailMate](https://freron.com/) on macOS. Out of the box PGP support was only one of many pleasantries I found when I first tried this a few weeks ago. It’s dramatically changed my idea of how well a GUI MUA can actually work. Money well spent!
Then I fell out of the habit, so I'm curious in what kinds of scenarios you envision in which your habitual use of email signatures would help?
I use my PGP key (on my Yubikey) for SSH now.
This is largely due to the fact that my mail clients don't support PGP.
The new implementation is disastrous. I cannot read some e-mails encrypted by Symantec Encryption Desktop and UX needs some improvements too. Enigmail showed the cryptographic status of an e-mail with a conspicuous colored tab, this implementation indicates it somewhere on the edge of the screen in small letters.
Verifying received email is more problematic. There are far more of them, it can't get them from the GPG database I trust, it can't get them from a key server and manually importing them is again ... novel.
I understand the reasons for not wanting to use GPG to verify emails as they come from an untrusted source, not using it to sign emails could possibly be justified for forwarding emails from untrusted sources with attachments, not having nice way to import your trusted keys and keys from key servers I hope is only because this is version 1.
In particular, institutional email is accessible to the company. I am conservative in my emails assuming that everyone sees the message. Some of us have PGP keys and feel better to gossip :)
I use it for various other tasks too (exchanging API tokens, passwords, emailing myself documents, etc ).
And I'm a big victim to the note-taking pattern of "mail to self" and that gets a huge feature boost if you can do encrypted mail to self. I like it as my main secrets store because it's almost natural there to add a layer of mild obfuscation to your PINs and the few major passwords that get this treatment.
https://latacora.micro.blog/2020/02/19/stop-using-encrypted....
In fairness I also had the requirement of "is not USB" - but this is reasonable IMO (don't train your users to plug in USB key like things)
/etc/apt/preferences.d/thunderbird68
Package: thunderbird
Pin: version 1:68.*
Pin-Priority: 1000If you added a version pin by adding a file... then remove the version pin by removing the file.
Now I have to keep track of a second key chain. And honestly I don’t trust an app that specializes in email and views security as an add on rather than a priority.
Dear Thunderbird developers, if someone uses gnupg assume they want to use gnupg and not some self-cooked, half-working solution.
Thunderbird is dead, has been dying for some time. Now that Mozilla is going bancrupt, users should rather look for alternatives and not waste time. Especially on a half-cooked encryption with obvious quality problems causing a possibly huge number of security problems.