Merge pull request #48 from vszakats/use-more-https-urls
[ach-master.git] / src / practical_settings / GPG.tex
1 The OpenPGP protocol
2 \footnote{\url{https://tools.ietf.org/search/rfc4880}}
3  uses asymmetric encryption to protect a session key which is used to encrypt a message. Additionally, it signs messages via asymmetric encryption and hash functions. %% what? - azet
4 Research on SHA-1 conducted back in 2005\footnote{\url{https://www.schneier.com/blog/archives/2005/02/sha1\_broken.html}} has made clear that collision attacks are a real threat to the security of the SHA-1 hash function. PGP settings should be adapted to avoid using SHA-1.
5
6
7 When using PGP, there are a couple of things to take care of:
8 \begin{itemize*}
9   \item keylengths (see section \ref{section:keylengths})
10   \item randomness (see section \ref{section:RNGs})
11   \item preference of symmetric encryption algorithm (see section \ref{section:CipherSuites})
12   \item preference of hash function (see section \ref{section:CipherSuites})
13 \end{itemize*}
14
15 Properly dealing with key material, passphrases and the web-of-trust is outside of the scope of this document. The GnuPG website\footnote{\url{http://www.gnupg.org/}} has a good tutorial on PGP.
16
17 This \href{https://www.debian-administration.org/users/dkg/weblog/48}{Debian How-to} is a great resource on upgrading your old PGP key as well as on safe default settings. This section is built based on the Debian How-to.
18
19 \subsubsection{Hashing}
20 Avoid SHA-1 in GnuPG. Edit \$HOME/.gnupg/gpg.conf:
21
22 \begin{lstlisting}
23 personal-digest-preferences SHA256
24 cert-digest-algo SHA256
25 default-preference-list SHA512 SHA384 SHA256 SHA224 AES256 AES192 AES CAST5 ZLIB BZIP2 ZIP Uncompressed
26 \end{lstlisting}
27
28 Before you generate a new PGP key, make sure there is enough entropy available (see subsection \ref{subsec:RNG-linux}).
29
30 %\subsubsection{PGP / GPG Operations}
31
32 %% Ciphering - Unciphering operations
33 %%% TOO COMPLEX. Make a pointer to a good GPG tutorial
34
35 %% Signing / checking signatures
36 %%% TOO COMPLEX. Make a pointer to a good GPG tutorial
37
38 %\subsubsection{Trusted Keys}
39
40 %%Explain that a key by himself is not trustable.  Chain of trust principle.
41
42 %%% TOO COMPLEX. Make a pointer to a good GPG tutorial
43
44 %\subsection{Available implementations and mails plugins}
45
46 %% Microsoft Windows (Symantec for Outlook? GnuPG + ....)
47 %%% TOO COMPLEX. Make a pointer to a good GPG tutorial
48
49 %% Linux (GnuPG + Enigmail for Thunderbird)
50
51 %%% TOO COMPLEX. Make a pointer to a good GPG tutorial
52 %% Mac OS X (GnuPG + GPGMail)
53 %%% TOO COMPLEX. Make a pointer to a good GPG tutorial
54
55