GPG section: fix spelling
[ach-master.git] / src / GPG.tex
index 565d4b1..3193048 100644 (file)
@@ -1,40 +1,63 @@
-\section{GPG/PGP - The Privacy XXX}
 
-Welcome in the family for asymetric protocols!  GPG (the GNU version) or PGP (the commercial version) are actually the same protocol that allows you to perform 2 operations: sign and/or encrypt.
+PGP uses assymetric encryption to protecte a sesion key which is used to encipher a message . Additionally, it signs messages via assymetric encryption and hash functions.
+Since SHA-1 as hash function has been broken already in 2005\footnote{\url{https://www.schneier.com/blog/archives/2005/02/sha1\_broken.html}}, there are a couple of settings a PGP user can change to use different hashes.
 
-Signing is the operation to digitally proove that the text received
+When using PGP, there are a couple of things to take care of:
 \begin{itemize}
-    \item Has been signed by the one that own's the private key;
-    \item Was NOT altered since it was signed.
+\item keylengths (see the section \ref{section:keylengths})
+\item randomness (see the section \ref{section:RNGs})
+\item the choice of RSA vs. DSA 
+\item preferences for symmetric ciphers
+\item preferences for hashing
 \end{itemize}
 
-Ciphering is the operation to apply an mathematical operation that will prevent anybody except the one owning the private key corresponding to the public key used to cipher the text.
+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.
 
-With algorithm with GPG/PGP we are not using one key but actually two!  The public key and the private key.  Those key are glued forever.  One doesn't work with the other one.  Shoud you need to remember only one stuff, keep your private key top secret.  Never share it, never publish it, use a strong password to protect it.  On the contratry, share your public key as much as you can (website, business cards...).
+\subsubsection{keylengths}
+We do not recommend any key length $\le$ 2048 bits. In fact, 4096 bits are probabaly a good choice at the time of this writing.
 
-The public key will be used by the one that receive your messages to
-\begin{itemize}
-    \item Check the signature of messages you send him;
-    \item Cipher message that should be received by you and only you.
-\end{itemize}
+\subsubsection{RSA vs. DSA}
+\todo{sure?}
+RSA%%\footnote{}
 
-You will use your private key to
-\begin{itemize}
-    \item Sign messages;
-    \item Uncopher messages you receive.
-\end{itemize}
+\subsubsection{Symmetric ciphers}
+
+
+\subsubsection{Hashing}
+Tell GnuPG to not use SHA-1.
+
+Edit \$HOME/.gnupg/gpg.conf:
+
+\begin{lstlisting}[breaklines]
+# according to:  https://www.debian-administration.org/users/dkg/weblog/48
+personal-digest-preferences SHA256
+cert-digest-algo SHA256
+default-preference-list SHA512 SHA384 SHA256 SHA224 AES256 AES192 AES CAST5 ZLIB BZIP2 ZIP Uncompressed
+\end{lstlisting}
+
+%\subsubsection{PGP / GPG Operations}
+
+%% Ciphering - Unciphering operations
+%%% TOO COMPLEX. Make a pointer to a good GPG tutorial
+
+%% Signing / checking signatures
+%%% TOO COMPLEX. Make a pointer to a good GPG tutorial
 
+%\subsubsection{Trusted Keys}
 
-\subsection{Introduction}
+%%Explain that a key by himself is not trustable.  Chain of trust principle.
 
-\subsubsection{Ciphering}
+%%% TOO COMPLEX. Make a pointer to a good GPG tutorial
 
-\subsubsection{Signing}
+%\subsection{Available implementations and mails plugins}
 
-\subsection{Key Generation}
+%% Microsoft Windows (Symantec for Outlook? GnuPG + ....)
+%%% TOO COMPLEX. Make a pointer to a good GPG tutorial
 
-\subsection{Operations}
+%% Linux (GnuPG + Enigmail for Thunderbird)
 
-\subsection{Trusted Keys}
+%%% TOO COMPLEX. Make a pointer to a good GPG tutorial
+%% Mac OS X (GnuPG + GPGMail)
+%%% TOO COMPLEX. Make a pointer to a good GPG tutorial