PGP: The Cryptographic Relic That's Putting Security at Risk
Share this article
For over three decades, PGP (Pretty Good Privacy) has been a fixture in the world of encryption, touted for securing emails and files. Yet, among cryptography engineers, it's long been a source of frustration—a relic of the 1990s that predates modern cryptographic principles and refuses to fade away. As one expert puts it, "No competent crypto engineer would design a system that looked like PGP today, nor tolerate most of its defects." The reasons are manifold, and they expose critical risks for developers and security professionals who rely on it.
Outdated Design and Archaic Primitives
PGP's core flaws stem from its age. Designed in an era before authenticated encryption and forward secrecy were standard, it defaults to weak primitives like 2048-bit RSA, the CAST5 cipher with 64-bit blocks, and CFB mode—choices that fall short against today's threats. Modern systems prioritize simplicity and strength, such as AEAD (Authenticated Encryption with Associated Data) modes, but PGP's implementation is a patchwork. For instance, attempts to add AEAD via RFCs, like AES-EAX mode in Sequoia PGP, often fail in practice because most installations can't interpret them. As the source notes, "RFC’s don’t matter: only the installed base does."
Worse, PGP's packet-based structure is a nightmare for developers. Messages are archives of typed packets with at least eight ways to encode lengths, leading to parsing vulnerabilities. A recent denial-of-service attack exploited this, where GnuPG—the de facto reference implementation—accidentally went quadratic in key parsing. This complexity extends to key management, with subkeys, key rings, and revocation certificates creating a labyrinthine system that's prone to errors.
Cryptographic and Usability Failures
One glaring issue is PGP's approach to authentication. In 2000, OpenPGP introduced the MDC (Modification Detection Code) system as a band-aid: it appends a SHA-1 hash of the plaintext before encryption. But this is a "Rube Goldberg contraption" that can be stripped off or downgraded, as seen in attacks like Efail. Even when used, GnuPG releases unauthenticated plaintext if the MDC check fails, a critical flaw highlighted in the 2018 Efail vulnerability—one of the top cryptographic attacks of the past five years.
Usability is another Achilles' heel. PGP encourages long-term keys tied to identity through key signing parties and a "web of trust," but this model is fundamentally broken. Ordinary users struggle to verify keys, and experts rarely trust them without personal exchange. As Ted Unangst famously said, "You can have backwards compatibility with the 1990s or you can have sound cryptography; you can’t have both." Studies back this up; one usability test left technical users baffled after hours, underscoring PGP's impracticality for everyday security.
Metadata leakage and lack of forward secrecy compound the risks. PGP messages often include key identifiers linked to user identities, and keyservers can expose communication patterns. Against state-level adversaries with infinite storage, this is a recipe for disaster—forward secrecy is absent in most PGP setups, making breaches inevitable.
The Path Forward: Purpose-Built Alternatives
The solution isn't to fix PGP but to replace it with modern tools tailored to specific tasks. For secure messaging, Signal or WhatsApp (using the Signal protocol) offer end-to-end encryption with forward secrecy, repudiable messages, and minimal metadata—no key management headaches. Email encryption with PGP is particularly hazardous; it leaks subjects and plaintext, leading to calamities like accidental CCs of sensitive content. As the source asserts, "Recommending email encryption to at-risk users is malpractice."
For file transfers, Magic Wormhole provides a seamless, password-authenticated key exchange—"we haven’t introduced wormhole to anyone who didn’t start gleefully wormholing things immediately." Package signing? Use Minisign or Signify for simplicity and modern Ed25519 keys. Encrypted backups are better handled by Tarsnap or OS-level disk images, while Age, Filippo Valsorda's tool, excels for general file encryption with auditable Go and Rust code.
This shift isn't just about avoiding flaws; it's about embracing cryptography engineered for today's threats. As developers and security leaders, prioritizing tools like libsodium—with misuse-resistant interfaces—can prevent the next Efail. The era of PGP is over; the future lies in specialized, robust systems that learn from its mistakes.
Source: Based on analysis from Latacora's blog post, available at https://www.latacora.com/blog/2019/07/16/the-pgp-problem/#the-answers.