2 \gdef\currentsectionname{GPG}
3 \gdef\currentsubsectionname{GnuPG}
5 The OpenPGP protocol\footnote{\url{https://tools.ietf.org/search/rfc4880}} defines a set of asymmetric- and symmetric encryption algorithms, signature methods and compression protocols. GnuPG\footnote{\url{https://gnupg.org/}}, a FOSS implementation of the OpenPGP standard, is widely used for mail encryption.
7 GnuPG signs a message, encrypts it symmetrically and encrpts the symmetric key and the hash with Bob's public key asymmetrically.
9 Research on SHA-1 conducted back in 2005\footnote{\url{https://www.schneier.com/blog/archives/2005/02/sha1\_broken.html}} as well as the first practical successful collision in early 2017\footnote{\url{https://shattered.io/}} has made clear that collision attacks are a real threat to the security of the SHA-1 hash function. Since SHA-1 is defined as a must implementation by the OpenPGP specification, GnuPG is still using it. Currently settings should be adapted to preferably avoid using SHA-1.
11 When using GnuPG, there are a couple of things to take care of:
13 \item keylengths (see section \ref{section:keylengths})
14 \item randomness (see section \ref{section:RNGs})
15 \item preference of symmetric encryption algorithm (see section \ref{section:CipherSuites})
16 \item preference of hash function (see section \ref{section:CipherSuites})
19 Properly dealing with key material, passphrases and the web-of-trust is outside of the scope of this document. The GnuPG
20 website\footnote{\url{http://www.gnupg.org}} has a good tutorial on GnuPG.
22 After 31 December 2017 GnuPG version 2.0.x is no longer supported and shall not be used
23 anymore\footnote{\url{https://lists.gnupg.org/pipermail/gnupg-announce/2017q3/000413.html}}. Use the new long term
26 \subsubsection{Hashing}
27 Avoid SHA-1 by preferring better hashing methods. GnuPG. Edit \$HOME/.gnupg/gpg.conf:
29 \configfile{gpg.conf}{208-210}{Digest selection in GnuPG}
31 \subsection{Key Generation}
32 \gdef\currentsectionname{GPG}
33 \gdef\currentsubsectionname{GnuPG}
34 Because of lack of forward secrecy \ref{subsection:PFS} in OpenPGP it is preferable to use large asymmetric keys for long term
35 communication protection. A RSA key of 4096 bits should provide enough confidentiality for the next 10 years\footnote{\url{https://www.keylength.com}}.
37 \configfile{new-key-generation.txt}{}{New key generation with GnuPG version 2.1}
39 \configfile{params.txt}{}{Parameters for key generation with GnuPG version 2.1}
41 The preferences parameters S9 to Z1 correspond to AES256, CAMELLIA256, AES192, CAMELLIA192, AES, CAMELLIA128, TWOFISH,
42 SHA512, SHA384, SHA256, BZIP2, ZLIB and ZIP. The parameters 3DES, SHA-1 and uncompressed are set automatically by GnuPG.
44 \subsection{ECC - Elliptic Curve Cryptography}
45 Since the release of GnuPG version 2.1 end-2014\footnote{\url{https://www.gnupg.org/faq/whats-new-in-2.1.html}} ECC is supported. Older versions though are still widely used therefore ECC is not yet applicable in practice.
47 %\subsubsection{PGP / GPG Operations}
49 %% Ciphering - Unciphering operations
50 %%% TOO COMPLEX. Make a pointer to a good GPG tutorial
52 %% Signing / checking signatures
53 %%% TOO COMPLEX. Make a pointer to a good GPG tutorial
55 %\subsubsection{Trusted Keys}
57 %%Explain that a key by himself is not trustable. Chain of trust principle.
59 %%% TOO COMPLEX. Make a pointer to a good GPG tutorial
61 %\subsection{Available implementations and mails plugins}
63 %% Microsoft Windows (Symantec for Outlook? GnuPG + ....)
64 %%% TOO COMPLEX. Make a pointer to a good GPG tutorial
66 %% Linux (GnuPG + Enigmail for Thunderbird)
68 %%% TOO COMPLEX. Make a pointer to a good GPG tutorial
69 %% Mac OS X (GnuPG + GPGMail)
70 %%% TOO COMPLEX. Make a pointer to a good GPG tutorial