Adding key generation -- STILL DRAFT
[ach-master.git] / src / GPG.tex
1
2 %% TODO:
3 %% - complete with a list of implentations (Symantec, GnuPG)
4 %% - plugins for mails clients
5 %% - some pretty screenshots that show that it's less complicated that it appears ;)
6
7 \subsubsection{Introduction}
8
9 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.
10
11 Signing is the operation to digitally proove that the text received
12 \begin{itemize}
13     \item Has been signed by the one that own's the private key;
14     \item Was NOT altered since it was signed.
15 \end{itemize}
16
17 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.
18
19 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...).
20
21 The public key will be used by the one that receive your messages to
22 \begin{itemize}
23     \item Check the signature of messages you send him;
24     \item Cipher message that should be received by you and only you.
25 \end{itemize}
26
27 You will use your private key to
28 \begin{itemize}
29     \item Sign messages;
30     \item Uncopher messages you receive.
31 \end{itemize}
32
33
34 \subsubsection{Key Generation}
35
36 Before you start, you need a set of keys: a private and a public one.  Those are linked forever and you need both to be able to use PGP / GPG.
37 There a few good user interface to manipulate the keys on Microsoft Windows, Mac OS X, Linux or any other UNIX flavor.  We will give here a few command line samples with GnuPG\footnote{===INSERT HERE A LINK TO GnuPG website===}.
38
39 \begin{verbatim}
40 $ gpg --gen-key
41 gpg (GnuPG) 1.4.15; Copyright (C) 2013 Free Software Foundation, Inc.
42 This is free software: you are free to change and redistribute it.
43 There is NO WARRANTY, to the extent permitted by law.
44
45 Please select what kind of key you want:
46    (1) RSA and RSA (default)
47    (2) DSA and Elgamal
48    (3) DSA (sign only)
49    (4) RSA (sign only)
50 Your selection? 1
51 RSA keys may be between 1024 and 4096 bits long.
52 What keysize do you want? (2048) 4096
53 Requested keysize is 4096 bits
54 Please specify how long the key should be valid.
55          0 = key does not expire
56       <n>  = key expires in n days
57       <n>w = key expires in n weeks
58       <n>m = key expires in n months
59       <n>y = key expires in n years
60 Key is valid for? (0) 365
61 Key expires at Fri 14 Nov 2014 05:42:29 PM CET
62 Is this correct? (y/N) Y
63
64 You need a user ID to identify your key; the software constructs the user ID
65 from the Real Name, Comment and Email Address in this form:
66     "Heinrich Heine (Der Dichter) <heinrichh@duesseldorf.de>"
67
68 Real name: BetterCrypto.org
69 Email address: foobar@bettercrypto.org
70 Comment: This is a demo key
71 You selected this USER-ID:
72     "BetterCrypto.org (This is a demo key) <foobar@bettercrypto.org>"
73
74 Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? O
75 You need a Passphrase to protect your secret key.
76
77 gpg: checking the trustdb
78 gpg: 3 marginal(s) needed, 1 complete(s) needed, PGP trust model
79 gpg: depth: 0  valid:   4  signed:   2  trust: 0-, 0q, 0n, 0m, 0f, 4u
80 gpg: depth: 1  valid:   2  signed:   2  trust: 2-, 0q, 0n, 0m, 0f, 0u
81 gpg: next trustdb check due at 2014-11-14
82 pub   4096R/18C231C8 2013-11-14 [expires: 2014-11-14]
83       Key fingerprint = FB22 DE1F 7DF3 EC70 E948  1FBD 8127 FB7D 18C2 31C8
84 uid                  BetterCrypto.org (This is a demo key) <foobar@bettercrypto.org>
85 sub   4096R/2B1C3246 2013-11-14 [expires: 2014-11-14]
86 \end{verbatim}
87
88 When using \it{gpg} to generate your keys, you are requested a few questions:
89 \begin{itemize}
90     \item What will be usage of the key, RSA - RSA being the easiest and most generic choice;
91     \item How long the keys will be valid, from a day to the eternity  (can be extended);
92     \item Your name;
93     \item Your email address (other emails or aliases can be added later to the key);
94     \item Any comment you want.
95 \end{itemize}
96
97 The tool also ask you to pick up a password to protect your key.  That password will seve to unlock the key for signing, ciphering and unciphering operations.  Choose a strong password\footnote{===LINK TO HOW TO PICK SUCH A PASSWORD===} as it would otherwise allow someone to stole your digital capacity to proove who you are and put the privacy of your communications at risk.
98
99 \subsubsection{PGP / GPG Operations}
100
101 %% Ciphering - Unciphering operations
102
103 %% Signing / checking signatures
104
105 \subsubsection{Trusted Keys}
106
107 %%Explain that a key by himself is not trustable.  Chain of trust principle.
108
109 \subsection{Available implementations and mails plugins}
110
111 %% Microsoft Windows (Symantec for Outlook? GnuPG + ....)
112
113 %% Linux (GnuPG + Enigmail for Thunderbird)
114
115 %% Mac OS X (GnuPG + GPGMail)
116
117