At the beginning of the year, I did something I've never done before: I made a new year's resolution. From here on out, I pledged, I would install only digitally signed software I could verify hadn't been tampered with by someone sitting between me and the website that made it available for download.

It seemed like a modest undertaking, but in practice, it has already cost me a few hours of lost time. With practice, it's no longer the productivity killer it was. Still, the experience left me smarting. In some cases, the extra time I spent verifying signatures did little or nothing to make me more secure. And too many times, the sites that took the time to provide digital signatures gave little guidance on how to use them. Even worse, in one case, subpar security practices of some software providers undercut the protection that's supposed to be provided with digitally signed code. And in one extreme case, I installed the Adium instant messaging program with no assurance at all, effectively crossing my fingers that it hadn't been maliciously modified by state-sponsored spies or criminally motivated hackers. More about those deficiencies later—let's begin first with an explanation of why digital signatures are necessary and how to go about verifying them.

By now, most people are familiar with man-in-the-middle attacks. They're waged by someone with the ability to monitor traffic passing between an end user and a website—for instance, a hacker sniffing an unsecured Wi-Fi connection or the National Security Agency sniffing the Internet backbone. When the data isn't encrypted, the attacker can not only read private communications but also replace legitimate software normally available for download with maliciously modified software. If the attack is done correctly, the end user will have no idea what's happening. Even when Web connections are encrypted with the HTTPS standard, highly skilled hackers still may be able to seed a website with malicious counterfeit downloads. That's where digital signatures come in.

A prime candidate for such an attack is the OTR plugin for the Pidgin instant messenger. It provides the means to encrypt messages so (1) they can't be read by anyone monitoring the traffic sent between two parties and (2) each party can know for sure that the person on the other end is, in fact, who she claims to be. Fortunately, the OTR installer is provided through an encrypted HTTPS connection, which goes a long way to thwarting would-be man-in-the-middle attackers. But strict security practices require more, especially for software as sensitive as OTR. That's why the developers included a GPG signature users can check to verify that the executable file hasn't been altered in any way.

I ended up burning about 90 minutes figuring out how to verify the signature using Gpg4win, the Windows-based e-mail encryption suite Ars wrote about almost two years ago. And then, it was only with the help of Morgan Marquis-Boire, aka Morgan Mayhem. No doubt, more technically adept people than me would have spent only a small fraction of the time I did, but that misses the point. In a post-Snowden era, encryption is no longer the exclusive domain of developers, hackers, and technology professionals. Increasingly, it's a prerequisite for lawyers, journalists, and anyone else duty-bound to keep secrets.

OTR didn't provide instructions, so I'll show how I did it, with the understanding that installation of Gpg4win, the Mac-based GnuPG, or a similar program for Linux is a prerequisite. (Fortunately, Gpg4win is digitally signed with a key that has been verified by a recognized certificate authority. The digital signature and checksums available online provide further verification.) First I downloaded the pidgin-otr-4.0.1.exe installer, the GPG signature for that file, and the public key the OTR developers used to generate the signature. I then opened Kleopatra, a key management program included with Gpg4win, clicked the Import button, and navigated to the directory storing the public key. (Alternatively, I could have right-clicked on the signature file and highlighted "More GpgEX options" and selected "Import keys.") Like magic, Kleopatra showed the key as belonging to the OTR Dev Team.

From there, I needed to certify the OTR public key with my private key, a step that effectively tells my system I'm sure the OTR key is genuine and not a counterfeit key generated by an attacker. To do that, I highligted the OTR key in Kleopatra, right-clicked, and chose "Certify certificate." I then clicked the OK buttons, but only after verifying that the fingerprint Kleopatra showed me was identical to the one shown on the OTR website. I was almost there.

Now, with a window open to the directory storing the executable and corresponding signature, I just needed to right-click on the pidgin-otr-4.0.1.exe.asc signature file and choose "verify" from the "more GpgEX options" menu that appeared.

Then it was a matter of clicking the Decrypt/Verify button on the bottom right on the next window that opened. If you're doing everything right, you'll get a confirmation window cryptographically verifying that that the file was signed with the OTR developers' private key.

Alas, part of the reason I spent 90 minutes trying to get this confirmation was that Kleopatra repeatedly threw me an error message. After much trial and error, I realized that my private key—the highly sensitive key I use to decrypt encrypted e-mails other people sent me and to sign files and e-mail—had originally been generated on a separate computer. In the process of transferring it to my current PC, my key lost an important attribute known as "ultimate trust." To fix this, I needed to modify the key. So I highlighted my key, chose Certificate Details from the view menu, and under the actions box in the next window that opened, I chose "Trust Certifications Made by This Certificate." I then selected the button that said "This is my Certificate." Then I used my private key again to certify the OTR Dev Team's public key. Voila, Kleopatra finally verified the signature.

Avoiding cryptography theater

What a lot of work! No wonder so many end users don't bother checking signatures. As crucial as these verifications are, they're frequently provided by technical people for technical people, with no guidance for non-geeks. The developers behind the Tor privacy service do a much better job explaining how non-technical people can verify sensitive files, and the people behind the excellent OnionShare tool for anonymous file sharing say they're in the process of providing similarly easy-to-follow instructions.

Equally problematic, there are plenty of end users whose poor practices undermine their good crypto intentions. In the several weeks that I've become a regular user of OTR, only one person who has initiated an encrypted chat session with me has asked that we take a couple minutes to verify each other's cryptographic fingerprint. Fewer than half of the people who ask me for my GPG e-mail key bother with this step. That omission largely undercuts the benefit of encrypted communications, since it's trivial for attackers to generate their own OTR or e-mail keys that masquerade as anyone they want to snoop on.

Revelations provided by former NSA subcontractor Edward Snowden are rapidly moving crypto out of the niche and into the mainstream. For this transition to be meaningful, though, developers and end users must put their crypto houses in order. For developers, that means using HTTPS, offering digital signatures, and most importantly, providing clear instructions for verifying them. OTR developers should also consider updating their key. The current one uses just 1,024 bits, a threshold many cryptographers believe is well within the ability of the NSA to break. For end users, it means learning how to use these new tools correctly and checking signatures each time new software is downloaded and each time we e-mail or chat with an unverified contact.

The purpose of this post isn't to single out the OTR dev team, since there are plenty of examples of security software that provide even fewer precautions. For instance, Adium, a Mac messaging app that comes bundled with OTR, downloads from an unencrypted SourceForge page. Almost as bad, the digital signature for verifying your download is buried so deep on the Adium website that it requires extensive digging to find. The difficulty of finding these things makes me wonder: How many Mac users who swear by the importance of OTR have actually taken the time to make sure it wasn't backdoored?

A few years ago, security expert Bruce Schneier coined the term "security theater." It describes measures governments and companies follow to give people the impression that they're more secure but that in reality fail to provide any meaningful protection. As encrypted communications move into the mainstream, we risk falling into a similar trap. Using Tor, encrypted mail, and OTR is meaningless if you haven't taken the time to make sure you're installing the official app rather than a counterfeit that contains a backdoor.

Post updated to mention Morgan Marquis-Boire.