The Guardian and NDR are reporting allegations that Google handed over journalists’ private personal data en masse in response to “catch-all” warrants against WikiLeaks’ employees, and then was not allowed to inform its clients, the journalists, that it did so for more than two years. On the NDR article page you can watch an interview in English with Sarah Harrison, an editor at WikiLeaks.
WikiLeaks’ founder asserts that Google was complicit in the USA’s violation of its own constitution. I am not a lawyer, journalist, spy, political agitator, or hacker1. But the slippery slope facilitating that hand-over of data, irrespective of its legality, creeps me out.
I’ve written in the past about email encryption and encrypted instant messaging options on our phones. Since then, I’ve been using Threema on iOS and Android to keep prying eyes of all stripes away from my instant messages to and from my friends. That works easily when the sender and the recipient(s) are both on their phones, but not when one or both are on computers with full-sized, non-fiddly keyboards. I want to be able to chat on a computer running Linux, Mac OS X, or Windows with comparable security to what I get from Threema on our phones.2
Public Key-Based Instant Messaging?
I found Psi to be a reasonable instant messaging program that works with the computers I use, and the public keys I already use. I got started using it right away, and started my search for instant messaging software for our phones using the same concept. But I’ve found nothing, so far anyways, that does on a mobile platform what Psi does on a computer — using PGP public key cryptography to secure messages.
Most Secure Apps Use OTR
While searching, I found the EFF’s secure messaging scorecard3, and I think I figured out why none of the mobile apps secure messages with PGP public key cryptography: they’re striving for Perfect Forward Secrecy. That’s a way to encrypt your messages for the short-term only. With public key technology à la PGP and GPG, you keep your private key for the long haul. You will need it to decrypt any messages encrypted for you (either by someone using your public key, or by you yourself). But with Perfect Forward Secrecy, the messages you send are not retrievable later by any means, by anyone. This seems better suited for instant messaging anyways — it’s not supposed to be part of your permanent record. Threema addresses this point in their FAQ, too: it requires all parties to be online in the same “session,” so there’s no way to send an encrypted message to someone who’s not connected at the moment you send it. That’s why they don’t rely on OTR. In that sense, Threema’s product is just like PGP-encrypted email, except that you can’t use it on a desktop computer…yet.4
The mobile apps I found for secure instant messaging use OTR (“off-the-record”) as the protocol for PFS. This put me back to the drawing board in my hunt for an app I could use on my phone while my chat buddy (most frequently Sarah) is using her computer.
Putting It All Together
For secure messaging with other users, Threema seems to be the best if we’re all on mobile devices, or PGP/GPG if we want to do it via email on our desktops.5 But, for a secure mixed mobile+desktop environment, it’s clunky.
I hit upon the combination of running my own chat server — see this tutorial on arstechnica.com for hints — and XMPP chat clients on the desktop and mobile platforms using OTR. I had trouble setting up ChatSecure on our phones until I got the DNS entries working right, even though it was supposed to be able to let you override the DNS stuff and explicitly declare hosts and ports in the clients.
I guess running your own chat server is a bit of overkill if you’ve got OTR protecting the message contents, but it still was fun to set up. Here’s the setup:
- Prosody as the server to which our IM clients connect
- Pidgin with an OTR plugin on Linux (though presumably that would work just fine on Windows and Mac OS X as well)
- Adium on our Macs (supports OTR out-of-the-box, no plugin necessary)
- ChatSecure on iOS, and presumably also on Android
Yeah, OK, Geek Fun, What’s the Big Deal, Anyway?
Even before the Google-warrant-WikiLeaks news broke yesterday, I’d seen this WSJ article. The heads of the USA and the UK both want to be able to decrypt anything you have if they think it’s linked to a terrorist plot. Do you really trust them to keep their eyes off your non-terrorist, non-illegal, quite mundane stuff? Ask the WikiLeaks employees.
And if the government can get to your stuff, you can be sure that someone with impure motives, like an identity thief or a corporation whose revenue model depends on selling your details can, too.
It would seem that the writing is on the wall for electronic information that really only you control. Secure your stuff while you can.
- in the criminal sense. But I do try to make software do what I want it to do where I am allowed to, so I guess I am a hacker in that sense. [↩]
- Threema reports that a desktop version of their software is on the roadmap, but I’m not holding my breath. [↩]
- Update in 2020: since removed for obsolescence. Consider Comparitech’s list instead, but know that they get paid by affiliate links. [↩]
- Threema on the desktop would meet all my requirements: secure and cross-platform (mobile and desktop alike), and wouldn’t even require me to run any server. [↩]
- Next thought: why is GPG-style email such a PITA on mobile devices? I’d love something as slick as GPGMail for Apple Mail but on an iPhone or Android phone. There are programs that nominally do this, but they are painful to use beyond the decryption of plain text messages. Anything formatted with HTML in the message body, or an embedded MIME attachment just has to wait until I get back to a desktop, where I can read it properly. [↩]