add quotation mark in add_header HSTS directive
[ach-master.git] / src / practical_settings / GPG.tex
1 % hack.
2 \gdef\currentsectionname{GPG}
3 \gdef\currentsubsectionname{GnuPG}
4
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.
6  
7 GnuPG signs a message, encrypts it symmetrically and encrpts the symmetric key and the hash with Bob's public key asymmetrically.
8
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. 
10
11 When using GnuPG, there are a couple of things to take care of:
12 \begin{itemize*}
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})
17 \end{itemize*}
18
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.
21
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
24 version 2.1 instead.
25
26 \subsubsection{Hashing}
27 Avoid SHA-1 by preferring better hashing methods. GnuPG. Edit \$HOME/.gnupg/gpg.conf:
28
29 \configfile{gpg.conf}{208-210}{Digest selection in GnuPG}
30
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}}.
36
37 \configfile{new-key-generation.txt}{}{New key generation with GnuPG version 2.1}
38
39 \configfile{params.txt}{}{Parameters for key generation with GnuPG version 2.1}
40
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.
43
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. 
46
47 %\subsubsection{PGP / GPG Operations}
48
49 %% Ciphering - Unciphering operations
50 %%% TOO COMPLEX. Make a pointer to a good GPG tutorial
51
52 %% Signing / checking signatures
53 %%% TOO COMPLEX. Make a pointer to a good GPG tutorial
54
55 %\subsubsection{Trusted Keys}
56
57 %%Explain that a key by himself is not trustable.  Chain of trust principle.
58
59 %%% TOO COMPLEX. Make a pointer to a good GPG tutorial
60
61 %\subsection{Available implementations and mails plugins}
62
63 %% Microsoft Windows (Symantec for Outlook? GnuPG + ....)
64 %%% TOO COMPLEX. Make a pointer to a good GPG tutorial
65
66 %% Linux (GnuPG + Enigmail for Thunderbird)
67
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
71
72