GNU Privacy Guard

GNU Privacy Guard
The GNU Privacy Guard logo
Original author(s) Werner Koch
Developer(s) GNU Project
Initial release 7 September 1999[1]
Stable release
  • "Stable": 2.0.27 (February 18, 2015[2]) [±]
  • "Modern": 2.1.3 (April 11, 2015[3]) [±]
  • "Classic": 1.4.19 (February 27, 2015[4]) [±]
Preview release

Stable: 2.1.0-beta864 (October 3, 2014[5]) [±]

Modern: 2.1.1-beta35 (November 24, 2014[6]) [±]
Written in C
Operating system Cross-platform
Type OpenPGP
License GNU GPLv3
Website gnupg.org

GNU Privacy Guard (GnuPG or GPG) is a GPL Licensed alternative to the PGP suite of cryptographic software. GnuPG is compliant with RFC 4880, which is the current IETF standards track specification of OpenPGP. Current versions of PGP (and Veridis' Filecrypt) are interoperable with GnuPG and other OpenPGP-compliant systems.

GnuPG is a part of the Free Software Foundation's GNU software project, and has received major funding from the German government.[7]

History

GnuPG was initially developed by Werner Koch.[8][9] Version 1.0.0, which was the first production version, was released on September 7, 1999, almost two years after the first GnuPG release (version 0.0.0).[1][8] The German Federal Ministry of Economics and Technology funded the documentation and the port to Microsoft Windows in 2000.[9]

GnuPG is a system compliant to the OpenPGP standard, thus the history of OpenPGP is of importance; it was designed to interoperate with PGP, the email encryption program initially designed and developed by Phil Zimmermann.[10][11]

On February 7, 2014, a GnuPG crowdfunding effort closed, raising 36,732 euros for a new web site and infrastructure improvements.[12]

Branches

As of November 2014, there are three branches of GnuPG:

"Modern" (2.1) and "stable" (2.0) can not be installed at the same time. However, it is possible to install "classic" (1.4) along with any of the other versions.[14]

There are two additional GnuPG branches, which are discontinued as of November 2014:

Platforms

Although the basic GnuPG program has a command-line interface, there exist various front-ends that provide it with a graphical user interface. For example, GnuPG encryption support has been integrated into KMail and Evolution, the graphical e-mail clients found in KDE and GNOME, the most popular Linux desktops. There are also graphical GnuPG front-ends (Seahorse for GNOME, KGPG for KDE). For Mac OS X, the Mac GPG project provides a number of Aqua front-ends for OS integration of encryption and key management as well as GnuPG installations via Installer packages.[19]

Furthermore, the GPGTools Installer[20] installs all related OpenPGP applications (GPG Keychain Access), plugins (GPGMail) and dependencies (MacGPG) to use GnuPG based encryption. Instant messaging applications such as Psi and Fire can automatically secure messages when GnuPG is installed and configured. Web-based software such as Horde also makes use of it. The cross-platform extension Enigmail provides GnuPG support for Mozilla Thunderbird and SeaMonkey. Similarly, Enigform provides GnuPG support for Mozilla Firefox. FireGPG was discontinued June 7, 2010.[21]

In 2005, G10 Code and Intevation released Gpg4win, a software suite that includes GnuPG for Windows, Gnu Privacy Assistant, and GnuPG plug-ins for Windows Explorer and Outlook. These tools are wrapped in a standard Windows installer, making it easier for GnuPG to be installed and used on Windows systems.

Other software wraps the command line in a Perl script (e.g. gpg-dialog) that is menu based.

Process

GnuPG is a hybrid encryption software program in that it uses a combination of conventional symmetric-key cryptography for speed, and public-key cryptography for ease of secure key exchange, typically by using the recipient's public key to encrypt a session key which is only used once. This mode of operation is part of the OpenPGP standard and has been part of PGP from its first version.

GnuPG 2.x series use Libgcrypt as an encryption library, while GnuPG 1.x series do not use it and use an integrated library.

GnuPG encrypts messages using asymmetric keypairs individually generated by GnuPG users. The resulting public keys may be exchanged with other users in a variety of ways, such as Internet key servers. They must always be exchanged carefully to prevent identity spoofing by corrupting public key ↔ "owner" identity correspondences. It is also possible to add a cryptographic digital signature to a message, so the message integrity and sender can be verified, if a particular correspondence relied upon has not been corrupted.

GnuPG also supports symmetric encryption algorithms. By default GnuPG uses the CAST5 symmetrical algorithm.

GnuPG does not use patented or otherwise restricted software or algorithms. Instead, GnuPG uses a variety of other, non-patented algorithms.[22]

For a long time it did not support the IDEA encryption algorithm used in PGP. It was in fact possible to use IDEA in GnuPG by downloading a plugin for it, however this might require a license for some uses in countries in which IDEA was patented. Starting with version 1.4.13/2.0.20, GnuPG supports IDEA because the last patent of IDEA expired in 2012 (Support of IDEA is "to get rid of all the questions from folks either trying to decrypt old data or migrating keys from PGP to GnuPG",[23] and is not recommended for normal use).

As of versions 2.0.26 and 1.4.18, GnuPG supports the following algorithms:

GnuPG 2.1 series will support elliptic curve cryptography (ECDSA, ECDH, EdDSA).[14]

Limitations

As a command-line based system, GnuPG is not written as an API that may be incorporated into other software. To overcome this, GPGME (abbreviated from GnuPG Made Easy) was created as an API wrapper around GnuPG that parses the output of GnuPG and provides a stable and maintainable API between the components.[24] This currently requires an out-of-process call to the GnuPG executable for many GPGME API calls; as a result, possible security problems in an application do not propagate to the actual crypto code due to the process barrier. Various graphical front-ends based on GPGME have been created.

Vulnerabilities

The OpenPGP standard specifies several methods of digitally signing messages. In 2003, due to an error in a change to GnuPG intended to make one of those methods more efficient, a security vulnerability was introduced.[25] It affected only one method of digitally signing messages, only for some releases of GnuPG (1.0.2 through 1.2.3), and there were fewer than 1000 such keys listed on the key servers.[26] Most people did not use this method, and were in any case discouraged from doing so, so the damage caused (if any, since none has been publicly reported) would appear to have been minimal. Support for this method has been removed from GnuPG versions released after this discovery (1.2.4 and later).

Two further vulnerabilities were discovered in early 2006; the first being that scripted uses of GnuPG for signature verification may result in false positives,[27] the second that non-MIME messages were vulnerable to the injection of data which while not covered by the digital signature, would be reported as being part of the signed message.[28] In both cases updated versions of GnuPG were made available at the time of the announcement.

Application support

Applications, frontends and browser extensions that support GPG include the following:

  • APG  a GPG for Android
  • Claws mail  an email client with GPG plugin
  • Enigform  a Firefox extension
  • Enigmail  a Mozilla Thunderbird plug-in
  • FireGPG[29]  a Firefox extension (discontinued)
  • Gpg4win  a Windows package with tools and manuals for email and file encryption
  • GPGMail  an OS X Mail.app plug-in
  • GPGServices  an OS X Services Menu plug-in
  • GPGTools  an OS X package with tools for email and file encryption (incl. GPGMail, GPG Keychain Access, MacGPG2, GPG Services, ...)
  • KGPG  a KDE graphical frontend for GnuPG
  • MCabber  a Jabber client
  • Mutt  an email client with PGP/GPG support built-in
  • Psi (instant messaging client)
  • WinPT  a graphical frontend to GPG for Windows

In popular culture

In May 2014, The Washington Post reported on a 12-minute video guide "GPG for Journalists" posted to Vimeo in January 2013 by a user named anon108. The Post identified anon108 as fugitive NSA leaker Edward Snowden, who it said made the tutorial—"narrated by a digitally disguised voice whose speech patterns sound similar to those of Snowden"—to teach journalist Glenn Greenwald email encryption. Greenwald said that he could not confirm the authorship of the video.[30]

See also

References

  1. 1.0 1.1 1.2 "Release Notes". GnuPG. Retrieved 2014-01-30.
  2. Werner Koch (2015-02-18). "[Announce] GnuPG 2.0.27 "stable" released". gnupg.org. Retrieved 2015-02-18.
  3. Werner Koch (2015-04-11). "[Announce] GnuPG 2.1.3 released". gnupg.org. Retrieved 2015-04-12.
  4. Werner Koch (2015-02-27). "[Announce] GnuPG 1.4.19 released (with SCA fix)". gnupg.org. Retrieved 2015-02-28.
  5. Werner Koch (2014-10-03). "[Announce] The maybe final Beta for GnuPG 2.1". gnupg.org. Retrieved 2014-10-03.
  6. Werner Koch (2014-11-24). "Beta for 2.1.1 available". gnupg.org. Retrieved 2014-11-24.
  7. "Bundesregierung fördert Open Source" (in German). Heise Online. 1999-11-15. Retrieved July 24, 2013.
  8. 8.0 8.1 Angwin, Julia (5 February 2015). "The World’s Email Encryption Software Relies on One Guy, Who is Going Broke". ProPublica. Retrieved 6 February 2015.
  9. 9.0 9.1 Wayner, Peter (19 November 1999). "Germany Awards Grant for Encryption". The New York Times. Retrieved 2014-08-08.
  10. "Gnu Privacy Guard". OpenPGP.org. Retrieved 2014-02-26.
  11. "Where to Get PGP". Philzimmermann.com. Retrieved 2014-02-26.
  12. "GnuPG: New web site and infrastructure". goteo.org. Retrieved 2014-03-09.
  13. Werner Koch (2006-11-13). "[Announce] GnuPG 2.0 released". gnupg.org. Retrieved 2014-01-30.
  14. 14.0 14.1 14.2 Werner Koch (2014-11-06). "[Announce] GnuPG 2.1.0 "modern" released". gnupg.org. Retrieved 2014-11-06.
  15. Werner Koch (2004-12-16). "[Announce] GnuPG stable 1.4 released". gnupg.org. Retrieved 2004-12-16.
  16. Werner Koch (2002-09-06). "[Announce]GnuPG 1.2 released". gnupg.org. Retrieved 2014-11-06.
  17. Werner Koch (2004-08-26). "[Announce] GnuPG 1.2.6 released". gnupg.org. Retrieved 2014-11-06.
  18. Werner Koch (2002-04-30). "[Announce] GnuPG 1.0.7 released". gnupg.org. Retrieved 2014-11-06.
  19. "Mac GNU Privacy Guard". sourceforge. Retrieved 2008-04-29.
  20. "GPGTools Installer". gpgtools. Retrieved 2011-03-22.
  21. "FireGPG’s developers blog". Retrieved July 24, 2013.
  22. "GnuPG Features". Retrieved October 1, 2009.
  23. Koch, Werner (2012-12-21). "GnuPG 1.4.13 released" (Mailing list). gnupg-users. Retrieved 2013-05-19.
  24. "GPGME (GnuPG Made Easy)". gnupg.org. February 11, 2015. Retrieved March 3, 2015.
  25. Phong Q. Nguyen "Can We Trust Cryptographic Software? Cryptographic Flaws in GNU Privacy Guard v1.2.3." EUROCRYPT 2004: 555570
  26. GnuPG's ElGamal signing keys compromised Werner Koch, November 27, 2003
  27. False positive signature verification in GnuPG Werner Koch, February 15, 2006
  28. GnuPG does not detect injection of unsigned data, Werner Koch, March 9, 2006
  29. getfiregpg.org
  30. "Edward Snowden sent Glenn Greenwald this video guide about encryption for journalists. Greenwald ignored it.". The Washington Post. May 14, 2014.

External links